MDF4 Lib Produktinformation - Vector

Die Seite wird erstellt Hauke Schenk
 
WEITER LESEN
MDF4 Lib
Produktinformation
MDF4 Lib

1       Übersicht .................................................................................................................................................................................... 3
1.1     Einführung.................................................................................................................................................................................. 3
1.2     Anwendungsgebiete ................................................................................................................................................................. 3
1.3     Die Vorteile im Überblick .......................................................................................................................................................... 3

2       Eigenschaften und Vorteile ...................................................................................................................................................... 4
2.1     Unterstützte MDF-Versionen .................................................................................................................................................. 5

3       Funktionsumfang beim Lesen von MDF-Dateien ................................................................................................................... 5
3.1     Funktionen zum Lesen der Signaldaten .................................................................................................................................. 5

4       Funktionsumfang beim Erzeugen von MDF-Dateien* ........................................................................................................... 6
4.1     Funktionen zum Schreiben der Signaldaten* ......................................................................................................................... 6

5       Funktionsumfang beim Ändern von MDF-Dateien* ............................................................................................................... 6

6       Weitere Funktionen** ............................................................................................................................................................... 6

7       Weitere Informationen ............................................................................................................................................................. 7
7.1     Pflegevertrag............................................................................................................................................................................. 7
7.2     Lieferumfang für Windows ...................................................................................................................................................... 7
7.3     Lieferumfang für Linux ............................................................................................................................................................. 7
7.4     Systemvoraussetzungen für Windows ................................................................................................................................... 7
7.5     Systemvoraussetzungen für Linux .......................................................................................................................................... 7

 V 2.3 4/2021

 Gültig für MDF4 Lib ab Version 1.8.

                                                                                                                                                                                                      2
MDF4 Lib

1     Übersicht

1.1    Einführung

MDF (Measurement Data Format) ist ein binäres Dateiformat für Messdaten, das 1991 von Vector in Zusammenarbeit mit
der Robert Bosch GmbH entwickelt wurde. Nachdem das MDF-Format sich schnell zum Defacto-Standard in der
Automobilindustrie entwickelte, wurde die überarbeitete Version 4.0 im Jahr 2009 schließlich als offizieller ASAM-Standard
veröffentlicht. Der aktuelle Stand mit Version 4.2 ist seit 2019 verfügbar.

MDF wird vor allem zum Speichern von Messdaten in der Automobilindustrie eingesetzt. Mit dem kompakten Binärformat lässt
sich sowohl beim Schreiben als auch beim Lesen eine sehr gute Performance erreichen, selbst bei enorm großen Datenmengen.
MDF-Dateien enthalten die während einer Messung anfallenden Roh-Messdaten sowie alle Zusatzinformationen, die zur
Interpretation der Rohdaten notwendig sind.

Die Messdaten können in verschiedenen, auch nicht-äquidistanten Rastern gespeichert werden. Durch die Erweiterbarkeit
können besonders ab MDF Version 4.x sehr einfach weitere Informationen in derselben Datei mit abgelegt werden, z.B. zur
Protokollierung der Messbedingungen.

1.2    Anwendungsgebiete

MDF4 Lib ist eine leistungsfähige und einfach anzuwendende Funktionsbibliothek, mit der Sie in der Basisvariante MDF-
Dateien validieren, sortieren und in eigene Anwendungen einlesen können. Es werden die Versionen MDF 3.x und MDF 4.x
unterstützt. Die Bibliothek bietet eine komfortable Schnittstelle, mit der Sie auf die Signaldaten und Zusatzinformationen in
MDF-Dateien zugreifen können. Unabhängig von der MDF-Version. Die Schnittstelle ist sowohl für C++ und Python unter
Windows und Linux als auch für .NET unter Windows verfügbar.

Die Basisvariante der MDF4 Lib lässt sich durch den Erwerb einer „Schreib-Option“ erweitern, so dass neben dem Lesen auch
das Erzeugen von MDF-Dateien ermöglicht wird. Wie beim Lesen werden auch beim Schreiben alle MDF-Versionen unterstützt,
wobei beim Schreiben einer älteren MDF-Version einige Features formatbedingt nicht möglich sind. Die MDF4 Lib schreibt
immer sortierte MDF-Dateien (Offline Use Case).

Mit * wird im weiteren Verlauf die Funktionalität gekennzeichnet, welche eine „Schreib-Option“ voraussetzt,
mit ** Funktionalität, die nur unter Windows verfügbar ist.

1.3    Die Vorteile im Überblick

    > Einfach anzuwendende Funktionsbibliothek zum Erzeugen*, Validieren**, Sortieren und Einlesen von MDF-Dateien

    > Versionsunabhängiger Zugriff auf die Formate MDF3 und MDF4

    > Schnelles und speicheroptimiertes Öffnen mehrerer MDF-Dateien

    > Effizientes Lesen von Signaldaten für sortierte Dateien

    > Einfaches Erzeugen von MDF-Objekten und Schreiben von Signaldaten im Offline Use Case*

    > Komfortabler Zugriff auf verschiedene MDF-Zusatzinformationen

    > Umwandlung* einer MDF 4.x Datei in MDF 4.1 mit verlustfreier Komprimierung aller Signaldaten

    > Nahtlose Datenübernahme aus Vector Tools und Datenloggern, die MDF als Ausgabe- oder Export-Format anbieten

    > Der Einsatz einer geprüften und praxiserprobten Standardkomponente reduziert den Aufwand für Einarbeitung,
      Entwicklung, Test und Wartung

                                                                                                                           3
MDF4 Lib

2   Eigenschaften und Vorteile
Ausgehend von einem zentralen File-Manager-Objekt können mehrere MDF-Dateien gleichzeitig geöffnet oder erzeugt*
werden. Je nach gewünschter Information können entsprechende Unterobjekte gelesen oder geschrieben werden. Der Zugriff
auf die Elemente und Daten in der Datei erfolgt dabei über Objekte (Python, .NET) bzw. Interface-Pointer (C++) und deren
Eigenschaften und Methoden. Damit lassen sich die MDF-Features unabhängig von der MDF-Version auswerten.

Für den schnellen Zugriff auf Signalwerte lassen sich die MDF-Dateien vor dem Öffnen sortieren**. Beim Schreiben* werden
immer sortierte Dateien erzeugt. Dabei wird immer nur ein Messraster zur gleichen Zeit geschrieben (Offline Use Case).

MDF-Dateien können mit der MDF4 Lib auch validiert**, d.h. auf mögliche Formatfehler oder Inkonsistenzen überprüft werden
z.B. vor dem Import in ein Archivierungs-System.

Durch die Objektorientierung und hierarchische Strukturierung der Schnittstelle (API) ist die zur Verfügung stehende
Funktionalität schnell erfassbar und intuitiv anwendbar. Eine ausführliche Online-Hilfe und Beispielprojekte mit
dokumentiertem Quellcode erlauben eine schnelle Einarbeitung ohne Detailkenntnisse des MDF-Formats. Das in modernen
Entwicklungsumgebungen wie MS Visual Studio verfügbare IntelliSense unterstützt Sie zudem bei der schnellen und bequemen
Codierung.

Die Erzeugung der Objekte „on demand“ und deren Verwaltung mittels „reference counting“ ermöglichen eine effiziente und
ressourcenschonende Implementierung. Zur Vermeidung von Ressource-Leaks in C++ kann bei Verwendung der mitgelieferten
„Smart-Pointer“-Klasse auf eine explizite Freigabe der Objekte verzichtet werden. Dies verringert zudem den Umfang und die
Komplexität Ihres Codes, wodurch sich i.d.R. auch die Wartbarkeit und Lesbarkeit verbessern.

Alle Aufrufe der Bibliothek sind thread-sicher. Für den optionalen Multi-Threading Use Case können zusätzlich Optimierungen
aktiviert werden. Damit steht der parallelen Abarbeitung von Aufgaben nichts im Weg, z.B. zur Auswertung jeder MDF-Datei
in einem eigenen Thread.

Zur Fehlerdiagnose lassen sich über die Logging-Möglichkeiten eventuelle Fehler- und Warnmeldungen oder optional alle
Bibliotheksaufrufe in eine Datei protokollieren. Alternativ können die Meldungen per CallBack zusätzlich auch selbst erfasst
werden, z.B. zur eigenen Auswertung oder Anzeige.

Kommt es beim Schreiben* einer MDF-Datei mit der MDF4 Lib zu einem unerwarteten Abbruch, z.B. durch Stromausfall oder
Tool-Absturz, so kann die Datei u.U. nicht mehr korrekt abgeschlossen werden. In diesem Fall wird die unvollständige MDF-
Datei entsprechend ASAM COMMON MDF 4.1.1 als „unfinalisiert“ gekennzeichnet. Beim Einlesen erkennt die MDF4 Lib dies
und kann eine solche Datei dann nachträglich finalisieren**. Je nach Art der fehlenden Finalisierungsschritte funktioniert dies
auch bei unfinalisierten MDF-Dateien, welche von 3rd Party-Tools erzeugt wurden.

Die MDF4 Lib steht unter Windows sowohl als Unicode- als auch als Multi-Byte-String- (MBCS) Variante zur Verfügung.
Verwenden Sie die Variante entsprechend Ihrer Projekteinstellungen und sparen Sie sich dadurch zeitraubende und
umständliche String-Konvertierungen. Unter Linux werden Strings ausschließlich im Unicode UTF-8-Format verarbeitet.

                                                                                                                             4
MDF4 Lib

2.1    Unterstützte MDF-Versionen

    > MDF 2.0 bis MDF 2.1

    > MDF 3.0 bis MDF 3.3

    > MDF 4.0 bis MDF 4.2

Aufgrund der speziellen Eigenschaften des MDF-Formats sind auch MDF-Dateien einer zukünftigen Version 4.x lesbar solange
neu eingeführte Features dies nicht explizit verhindern. Der Zugriff auf neue Features ist natürlich erst nach Aktualisierung der
MDF4 Lib möglich.

3     Funktionsumfang beim Lesen von MDF-Dateien
Folgende MDF-Features können Sie auslesen:

    > Formatinformation

    > Standard- und benutzerspezifische Dateikommentare

    > Startzeitpunkt der Messung

    > File-Historie

    > Kanalgruppen

    > Kanaleigenschaften wie Name, Kommentar, Quellinformation, Einheit, Umrechnungsregel sowie hierarchische
      Strukturierungen und Array-Eigenschaften (z.B. Achsenzuordnung)

    > Attachments (Eigenschaften und Daten) inklusive Speicherung des Attachements in einer neuen Datei

    > Events (Zeitpunkt und Eigenschaften) wie z.B. Trigger-Ereignisse

    > Unterstützung aller in MDF 3.3 und MDF 4.2 spezifizierten Umrechnungsregeln

    > Umrechnung von Rohwerten in physikalische Werte/Strings

    > Quellinformationen von Kanälen und Kanalgruppen

3.1    Funktionen zum Lesen der Signaldaten

    > Komfortable Iteration über alle Samples per Autoinkrement

    > Explizite Navigation in der Zeitreihe für sortierte Dateien durch Positionierung nach Index oder Zeitpunkt

    > Auslesen des Zeitstempels in Sekunden oder Nanosekunden

    > Lesen der Signalwerte als Roh- oder als physikalischer Wert

    > Numerische Werte können abhängig vom Datentyp als DOUBLE oder INT64 gelesen werden (Vermeidung von
      Rundungsfehlern)

    > String-Werte werden in die jeweilige Variante (Unicode/MBCS) konvertiert

    > Rohwerte komplexer Datentypen können als Byte-Array abgefragt werden

    > Lesen eines Werte-Arrays (Zeitreihe) mit einem einzigen Aufruf

    > Unterstützung von Signalen mit variabler Länge (MDF4-Feature)

    > Abfrage des Invalidation Bits (MDF4-Feature)

    > Lesen komprimierter Datenbereiche (MDF4-Feature ab MDF 4.1)

    > Lesen von Datenbereichen mit spaltenorientierter Ablage ("column oriented storage", MDF4-Feature ab MDF 4.2)

                                                                                                                               5
MDF4 Lib

4     Funktionsumfang beim Erzeugen von MDF-Dateien*
Folgende MDF-Features können Sie in eine neu erzeugte MDF-Datei schreiben:

    > Startzeitpunkt der Messung

    > Kanalgruppen

    > Kanäle und deren Eigenschaften inkl. deren hierarchischer Strukturierung

    > Array-Kanäle inkl. Ablageschema und Achsenzuordnung

    > Quellinformationen von Kanälen und Kanalgruppen

    > Umrechnungsregeln (alle in MDF 3.3 und MDF 4.2 spezifizierten Typen)

    > Kommentare für die Messdatei und alle anderen Objekte, die Kommentare unterstützen

    > Attachments (als externer Verweis oder als eingebettete Daten)

    > Events wie z.B. Trigger-Ereignisse

4.1    Funktionen zum Schreiben der Signaldaten*

    > Setzen der einzelnen Signalwerte im aktuellen Sample

    > Setzen der Invalidation Bits (MDF4-Feature ab MDF 4.0)

    > Alternativ effizientes Schreiben des gesamten, selbst zusammenbauten Records

    > Unterstützung von Signalen variabler Länger (MDF4-Feature ab MDF 4.0)

    > Komprimierung der Signaldaten (MDF4-Feature ab MDF 4.1)

    > Sortiertes Schreiben (nur Offline Use Case, d.h. nur ein Messraster zur gleichen Zeit)

    > Überwachung der Dateigröße

5     Funktionsumfang beim Ändern von MDF-Dateien*
Folgende MDF-Features können Sie in bestehenden MDF-Dateien ändern:

    > Startzeitpunkt der Messung

    > Hinzufügen oder Ändern von Kommentaren (außer in der Datei-Historie)

    > Hinzufügen neuer Kanalgruppen

    > Hinzufügen neuer Kanäle

    > Hinzufügen von Quellinformationen von Kanälen und Kanalgruppen

    > Hinzufügen von Umrechnungsregeln

    > Hinzufügen und Entfernen von Attachments

    > Hinzufügen von Signaldaten zu Kanalgruppen, die noch keine Samples enthalten

Die Funktionen zum Schreiben der Signaldaten sind in Kapitel 4.1 aufgeführt.

6     Weitere Funktionen**
    > Unsortierte MDF-Dateien können vor dem Öffnen sortiert werden. Dies ermöglicht den wahlfreien Zugriff innerhalb
      einer Zeitreihe auf einen bestimmten Index bzw. Zeitpunkt.

    > MDF-Dateien lassen sich vor dem Öffnen validieren. Fehler und Warnungen werden über ein Callback-Interface
      zurückgemeldet.

    > Die MDF4 Lib erkennt MDF-Dateien, die beim Speichern als „unfinalisiert“ gekennzeichnet wurden. Abhängig vom
      erzeugenden Tool und den erforderlichen Finalisierungsschritten ist es möglich eine solche Datei zu finalisieren.

                                                                                                                            6
MDF4 Lib

7     Weitere Informationen

7.1    Pflegevertrag

Beim Kauf der MDF4 Lib besteht die Möglichkeit, einen Pflegevertrag abzuschließen. Innerhalb der einjährigen Laufzeit des
Pflegevertrages können aktualisierte Versionen der MDF4 Lib kostenlos bezogen werden. Ein bestehender Pflegevertrag kann
jeweils um ein Jahr verlängert werden.

7.2    Lieferumfang für Windows

    > C++ Funktionsbibliothek als Windows-DLL in vier Varianten (Unicode/MBCS sowie 32-/64-Bit), C++
      Beispielsanwendungen als Visual-Studio-Projekte mit Quellcode sowie Online-Hilfe mit Einführung, Tutorials und
      detaillierter Schnittstellen-Beschreibung

    > Eine auf der C++ Bibliothek aufbauende Schnittstelle für .NET als separate Windows-Assemblies für .NET Framework
      und .NET Core, inklusive zugehöriger C# Beispielanwendung als Visual-Studio-Projekt und eigener Online-Hilfe

    > Eine auf der C++ Bibliothek aufbauende Python-Schnittstelle als Python-Library (.pyd), inklusive zugehöriger Beispiele als
      py-Dateien und eigener Online-Hilfe

7.3    Lieferumfang für Linux

    > C++ Funktionsbibliothek als Shared Library (.so) in der Variante Unicode UTF-8 64-Bit, C++ Beispielsanwendungen als
      CMake-Projekt mit Quellcode sowie Online-Hilfe mit Einführung, Tutorials und detaillierter Schnittstellen-Beschreibung

    > Eine auf der C++ Bibliothek aufbauende Python-Schnittstelle als Shared Library (.so), inklusive zugehöriger Beispiele als
      py-Dateien und eigener Online-Hilfe

7.4    Systemvoraussetzungen für Windows

Für den Einsatz der MDF4 Lib unter Microsoft Windows müssen folgende Systemvoraussetzungen erfüllt sein:

    > C++ Interface: Microsoft Visual C++ ab Version 6.0

    > .NET Interface: Microsoft .NET Framework 4.0 oder höher und entsprechende .NET Sprache (z.B. Microsoft Visual C#)

    > .NET Core Interface: Microsoft .NET Core 3.1 oder höher und entsprechende .NET Sprache (z.B. Microsoft Visual C#)

    > Python Interface: Python 3.4 oder höher, sowie die zur Python-Version passende NumPy-Version

    > Windows 10/8.1/8/7

    > Für den Zugriff auf XML-Features bei MDF4 ist zusätzlich der Microsoft MSXML Parser V6 erforderlich

7.5    Systemvoraussetzungen für Linux

Für den Einsatz der MDF4 Lib unter Linux müssen folgende Systemvoraussetzungen erfüllt sein:

    > C++ Interface: GNU Compiler GCC C/C++ ab Version 4.8.3

    > Python Interface: Python 3.4 oder höher, sowie die zur Python-Version passende NumPy-Version

    > Linux-System mit x86_64-Architektur

    > Benötigte System-Bibliotheken: libc6, libstdc++6, libpthread, libdl

    > Für den Zugriff auf XML-Features bei MDF4 ist zusätzlich der XML Parser libxml2 erforderlich

                                                                                                                                  7
Mehr Informationen

Besuchen Sie unsere Website für:
> News
> Produkte
> Demo-Software
> Support
> Seminare und Workshops
> Kontaktadressen

www.vector.com
Sie können auch lesen