Import von CAN-Dateien

Das Addin ließt Vector CAN Datenbank Dateien (.dbc) (CAN-Datenbasis, DBC-Format), BINLOG-Dateien (.blf), MDF4 Dateien miot CAN-Bus Daten (.mf4), Vector ACSCII Log Dateien (.asc), G.i.N Can LOG Dateien (Data*F1 und Data*F1.gz) sowie A&D Can Log Dateien (.tdfa) und konvertiert sie in das UniPlot-Datendateiformat NC2.

Multiplex-Botschaften werden unterstützt. Bei Multiplex-Botschaften können mehrere Gruppen von Signalen über eine Botschafts-Id übertragen werden.

Bemerkung

Dieses Addin ist eine Beta-Version.

Installation

Benutzung

  • Wählen Sie Extras=>CAN-Konfiguration um eine Konfiguration zu erstellen. Eine Konfiguration legt fest welche Nachrichten aus der BLF Log Datei in die NC2-Datei geschrieben werden sollen. Dazu benötigen Sie eine DBC-Datei (Vector CAN Database Datei).
  • Die DBC Konfiguration wird beim Import der blf-Dateien solange verwendet, bis Sie über Extras=>CAN-Konfiguration eine andere Konfiguration ausgewählen.
  • Wählen Sie Datei=>Daten importieren.
  • Wählen Sie den Typ BLF-Datei (*.blf;*.asc) aus.
  • Wählen Sie eine oder mehrere BLF- oder ASC-Dateien aus.
  • Um einen Datensatz (Kurve) zu erzeugen, wählen Sie als Typ 2D: y/t MDF/INCA/BLF aus. Bei diesem Typ wählen Sie nur das Signal aus. Der entsprechende Zeitkanal wird automatisch ausgewählt.

Konfiguration

Das Dialogfeld erreichen Sie über das Menü Extras. Das Dialogfeld ermöglicht die Auswahl von Nachrichten für den BLF-Import. Die Nachrichten-Definitionen werden DBC-Dateien entnommen.

../../_images/can-config-de.png

Im oberen Teil des Dialogs können eine oder mehrere DBC-Dateien ausgewählt werden. In der unteren Liste werden alle Nachrichten mit ID und Name angezeigt. Über das Häkchen vor jeder Nachricht können die in der Nachricht definierten Kanäle ausgewählt werden. Es muss mindestens eine Nachricht markiert werden. Über das Kombinationsfeld oberhalb der Liste kann eine Nachricht über den Namen gesucht werden.

Für jede DBC-Datei kann eine Bus-Nummer (1 bis 255) oder „all“ ausgewählt werden. Für „all“ werden alle Daten für die ausgwählten Nachrichten gelesen. Wenn eine Bus-Nummer 1 bis 255 angegeben wird, werden nur Daten gelesen, die mit der Bus-Nummer übereinstimmen. In der NC-Datei wird die Bus-Nummer im Attribut „BusNumber ausgegeben“, z. B. „CAN12“.

Die Konfiguration kann unter einem Namen gespeichert werden. Die beim Schließen des Dialogs ausgewählte Konfiguration wird beim Import von BLF-Dateien verwendet.

Die Konfigurationen werden als XML-Datei im Unterverzeichnis can_dbc_ini im Benutzerverzeichnis von UniPlot gespeichert. Das Verzeichnis kann über die Schaltfläche Verzeichnis öffnen geöffnet werden.

Vector ASCII Logfiles

Der CAN-Import Filter unterstützt den Import von Vector ASCII Daten im klassischen und CAN-FD-Format.

Die Kommentarzeilen im Kopf der Datei (maximal 50 Zeilen) werden als globale Attribute in der NC2-Datei gespeichert.

Die einzulesenden Nachrichten-Rekords müssen der folgenden Struktur entsprechen:

Timestamp Busnumber CanId "Rx|Tx" "d" Number-of-bytes Byte1, Byte2, ..., Byte8

oder im Fall von CAN FD:

<time> CANFD <channel> <dir> <id> <brs> <esi> <dlc> <data_len> <data> [ ... ]

Andere Rekords werden ignoriert.

Beispiel für eine ASCII Vector Datei:

// Configuration file: C:\x87366132.ltl
// Car: x2131
// Device: 3421412
date Dez. 3 16:34:20 2014
base hex  timestamps absolute
no internal events logged
   3.35516 1  B4323x         Rx D 8  72  E4  19  2F  14  00  00  00
   3.35522 6  52             Rx D 2  6C  60
   3.36716 1  B4323x         Rx D 8  73  E5  e9  24  e2  00  00  00
   3.36722 CANFD 15 Rx 86 1 0 8 8 48 75 6d 61 6e 69 73 6d 0 0 3000 0 0 0

G.i.N Can LOG Datei

Ließt alle G.i.N. CAN Log Dateien mit dem Muster Data*F* and Data*F*.gz ein und speichert die Daten in einer NC-Datei. Der Zeitkanal wird lückenlos über alle Einzeldateien erzeugt.

Einschränkungen: Alle Log-Dateien müssen sich in einem Verzeichnis befinden und dem Muster Data*F* entsprechen. Es wird nur das Format 2 und 3 gelesen. Es werden nur CAN-Daten geladen. Das Format Unsortiert-Geblockt wird nicht gelesen.

SAE J1939

Wenn eine der DBC-Dateien das Element ProtocolType = J1939 enthält, werden die CANIds mit der Länge 29bit entsprechend der Spezifikation behandelt und nur PGN-Anteil (Bit 8 bis Bit 24) als Id verwendet. Multibyte Nachrichten werden nicht unterstützt.

NC2-Dateien

Der Import-Filter erzeugt Dateien mit der Endung .nc2. Die Kanalnamen in der NC2 Datei sind die Signalnamen aus der DBC-Datei. Für jede Nachricht wird in der NC2-Datei eine Kanalgruppe gebildet. Jede Kanalgruppe enthält einen Zeitkanal mit dem Namen time mit einer anschließenden laufenden Nummer. Jeder Kanal enthält ein Attribut mit der Namen CanID. Das Attribut enthält die ID der entsprechenden Nachricht.

In den globalen Attributen werden die Dateinamen der DBC-Dateien gespeichert. Die globalen Attribute enthalten auch ein Attribut DBC_Configuration mit dem Namen der ausgewählten Konfiguration.

Programmierung

Mit der folgenden Funktion können mehrere DBC-Dateien für den Import aktiv gesetzt werden:

can_set_dbc_files(svDBCFiles, ssConfigurationName)

Der Parameter svDBCFiles ist ein Stringvektor mit den Namen der DBC-Dateien. ssConfigurationName ist der Name der Konfiguration unter dem die Can-Ids aus den DBC-Dateien gespeichert werden.

Beispiel:

can_set_dbc_files(["s:/test-data/can-dbc/config1.dbc",
                   "s:/test-data/can-dbc/config2.dbc"], "MyTest");
svFile[1] = auto_ImportData(svFile[1]);

Die Funktion aktiviert alle Can-Ids in den angegebenen DBC-Dateien. Die Auswahl bleibt aktiv bis eine andere Konfiguration ausgewählt wird.

Innerhalb einer Automatisierung kann mit Hilfe der Funktion can_set_active_dbc_configuration eine Konfiguration über den Namen ausgewählt werden. Beispiel für das Laden einer BLF-Datei:

can_set_active_dbc_configuration("Default");
svFile[1] = auto_ImportData(svFile[1]);

Der Quelltext des Addins befindet sich in dem Verzeichnis Addin\rs_can.

Lesen von einer oder mehrerer Vector CAN Database Dateien (DBC):

// rvBusNo: 0,1,2,... 0 reads all data. default value is 0.
oDBC = can_read_dbc(svFiles, rvBusNo)
oDBC = can_read_dbc(svFiles)

oInfo = can_dbc_signal_info(oDBC, ssSignal)

Lesen von BINLOG-Dateien (.blf), bzw. ASCII logfiles:

oBLF = _blf_open_file(ssFilename)
oBLF = _blf_open_file(ssFilename, bASCII)

nCount = _blf_read(oBLF, oData, nMaxMessages)

oStat = _blf_stat(oBLF)

[.
   ApplicationBuild = 94
   ApplicationID = 1
   ApplicationMajor = 7
   ApplicationMinor = 1
   FileSize = 1.09673e+06
   LastObjectTime = 40942.3
   MeasurementStartTime = 40942.3
   ObjectCount = 144599
   ObjectsRead = 144599
   UncompressedFileSize = 6.94596e+06
]

_blf_close_file(oBLF)

History

Version Beschreibung
R2020.4 Im Konfigurationsdialog kann nun die Bus-Nummer ausgewählt werden.
R2016.5 Neue Formate G.i.N Can LOG Datei (Data*F1 und Data*F1.gz) und A&D Can Log Dateien (.tdfa) zugefügt.
R2016.2 Fehler-Korrektur bei Signalen mit Motorola Byte Reihenfolge.
R2015.5 SAE J1939 CAN Ids: Die 8 bits Source-Adresse wurde bisher zur Bestimmung der Frame Id ignoriert. Nun bleibt die Source-Adresse in der Id erhalten.
R2015.1 Lesen von Vector ASCII Logfiles.
R2012.9 Multiplex-Botschaften zugefügt.
R2012.7 Nachrichtenauswahl über Dialog.
R2012.6 Neu. Beta-Version 1.

id-2071766