Der folgende Abschnitt beschreibt die Funktionsweise der internen Messung und aller Schnittstellen.
2.1Strommessung
2.1.1Messverfahren
Der Strom wird intern mit einer Abtastrate von 375 kS/s gemessen, wobei jeweils 9 Abtastwerte zu 1 „externen“ Abtastwert gemittelt werden. Damit ergibt sich eine „externe“ Abtastrate von 41,667 kS/s.
Der Strommessbereich wird bei eingeschaltetem CMM automatisch gewählt. Die Messbereichswahl beeinflusst die Ausgangsspannung nicht. Lediglich große Stromänderungen von mehreren Ampere führen zu kurzzeitigen Spannungseinbrüchen von einigen 100 mV. Zum dynamischen Verhalten siehe Dynamisches Verhalten.
Für jede Schnittstelle (RS232, CAN, LVDS-SPI) ist eine unabhängige Mittelwertbildung implementiert, die mit jedem Auslesen neu beginnt. Die folgende Abbildung veranschaulicht die Mittelwertbildung.
Sendet CAN beispielsweise jede Millisekunde eine Nachricht, werden rund 42 externe Abtastwerte gemittelt, die ihrerseits bereits Mittelwerte aus jeweils 9 internen Abtastwerten sind.
Die Mittelwertbildung von Auslesen zu Auslesen beeinflusst die Mittelwertbildung an den anderen Schnittstellen nicht. Die Mittelwertbildung ist also unabhängig für
- RS232
- CAN
- LVDS-SPI
Selbst bei einem Ausleseintervall von einem Jahr kommt es zu keinem Überlauf der Mittelwertbildung.
2.1.2Rückstromerkennung
Rückströme können nicht gemessen werden, jedoch wird ein Flag gesetzt, wenn ein Strom von mehreren 100 mA in Rückwärtsrichtung fließt. Die Ausgabedaten über CAN oder LVDS-SPI sind dann eine ungültige Zahl außerhalb des Messbereichs (0xEEEEEEEE in hexadezimaler Darstellung).
2.1.3Dynamisches Verhalten
Die Umschaltung von einem niedrigen in einen höheren Strommessbereich erfolgt sehr schnell, innerhalb von weniger als 1 µs (typisch 500 ns) nach Überschreiten des Strommessbereichs.
Die folgende Abbildung zeigt das typische Verhalten bei einem Stromsprung von einigen µA auf mehr als 60 A.
- Gelbe Kurve: Strom durch das Modul
- Rote Kurve: Spannungsabfall über dem Modul

Das Überschwingen (Ringing) des Spannungsabfalls resultiert aus dem induktiven Anteil der angeschlossenen Last.
Die folgende Abbildung zeigt die vergrößerte Darstellung der positiven und der negativen Flanke des Stromsprungs.

Fazit: Der beim Umschalten auftretende Spannungsabfall liegt deutlich unter 1 V und dauert maximal einige Mikrosekunden.
2.2On/Off-Steuerung
Das CMM_III kann über einen Hardwareeingang oder per Software ein- oder ausgeschaltet werden. Folgende Parameter lassen sich per Konfiguration einstellen:
- Aktiver Pegel (High oder Low) des Hardwareeingangs
- Priorität der Ein-/Aus-Steuerung über Hardware oder Software
Die Konfiguration kann mit dem Befehl ONMOD=x über RS232 oder über CAN mit dem ISO-TP-Protokoll geändert werden, wobei x eine der folgenden Zahlen 0…7 ist:
| ID | Name | HW-Eingang | SW-Einstellung | Beschreibung |
|---|---|---|---|---|
| 0 | ONOFF_Mode_ExtHighActive | JA | NEIN | CMM ist ON, wenn am HW-Eingang High-Pegel anliegt, SW-Einstellung wird ignoriert |
| 1 | ONOFF_Mode_ExtLowActive | JA | NEIN | CMM ist ON, wenn am HW-Eingang Low-Pegel anliegt, SW-Einstellung wird ignoriert |
| 2 | ONOFF_Mode_Int | NEIN | JA | CMM wird nur per SW gesteuert |
| 3 | ONOFF_Mode_ExtHighActiveAndInt | JA | JA | CMM ist ON, wenn am HW-Eingang High-Pegel anliegt UND die SW-Einstellung ON ist. |
| 4 | ONOFF_Mode_ExtLowActiveAndInt | JA | JA | CMM ist ON, wenn am HW-Eingang Low-Pegel anliegt UND die SW-Einstellung ON ist. |
| 5 | ONOFF_Mode_ExtHighActiveOrInt | JA | JA | CMM ist ON, wenn am HW-Eingang High-Pegel anliegt ODER die SW-Einstellung ON ist. |
| 6 | ONOFF_Mode_ExtLowActiveOrInt | JA | JA | CMM ist ON, wenn am HW-Eingang Low-Pegel anliegt ODER die SW-Einstellung ON ist. |
| 7 | ONOFF_Mode_AlwaysOn | NEIN | NEIN | CMM ist immer ON. |
2.3CAN-Datenausgabe
Die CAN-Daten werden zyklisch auf einer festgelegten CAN-ID gesendet. Diese CAN-ID ist über die RS232-Konfiguration einstellbar.
| Größe | Min | Typisch | Max | Einheit | Bemerkungen |
|---|---|---|---|---|---|
| CAN-Typ | - | High Speed | - | - | Die CAN-Transceiver sind immer aktiv. Es wird kein Sleep-Modus verwendet. |
| CAN-Terminierung | 117 | 120 | 123 | Ohm | Der Abschlusswiderstand ist R40 und kann bei Bedarf entfernt werden |
| CAN-Baudrate | 50 | 1000 | 2000 | kBit/s | Die Standard-Baudrate ist 1 MBit/s |
| CAN-ID | 0x1C2 | Hex | Der Identifier kann über die RS232- oder CAN-Konfiguration eingestellt werden | ||
| Extended ID | Nein | 11-Bit- oder 29-Bit-Identifier kann über die RS232-Konfiguration eingestellt werden | |||
| CAN-Sendeintervall | 1 | 5 | 30.000 | ms | Das Sendeintervall kann über die RS232-Konfiguration eingestellt werden |
| CAN-Datenlänge | 5 | 4 Bytes für den Strom und 1 Byte für den Messbereich | |||
| CAN-Datenauflösung | 100 | nA | Ein Bit des zurückgegebenen Stroms entspricht 100 nA des tatsächlich gemessenen Stroms |
Die gesendete CAN-Nachricht hat folgenden Inhalt:
| Byte | Inhalt | Wert |
|---|---|---|
| Byte 0 | Strom Bit 0..7 | 0x00000000 … ca. 0x7270 E000 |
| Byte 1 | Strom Bit 15..8 | 0x00000000 … ca. 0x7270 E000 |
| Byte 2 | Strom Bit 23..16 | 0x00000000 … ca. 0x7270 E000 |
| Byte 3 | Strom Bit 31..24 | 0x00000000 … ca. 0x7270 E000 |
| Byte 4 | Messbereich | 0 … 6 |
Der Strom wird als 32-Bit-Wert (unsigned long) in Schritten von 100 nA zurückgegeben, aufgeteilt auf die ersten 4 Bytes der CAN-Nachricht.
Wenn das CMM_III ausgeschaltet ist, wird der Wert 0xFFFFFFFF zurückgegeben, der 429,4967295 A entspricht und kein gültiger Messwert ist.
Wenn das CMM_III eingeschaltet ist, aber ein Rückstrom fließt, wird der Wert 0xEEEEEEEE zurückgegeben, der 400,8636142 A entspricht und kein gültiger Messwert ist.
2.4LVDS-SPI-Datenausgabe
Der Messwert kann über eine SPI-Schnittstelle mit LVDS-Pegel ausgelesen werden. SPI ermöglicht hohe Datenraten, während der LVDS-Pegel dank differenzieller Signalübertragung eine geringe Störabstrahlung und eine höhere Störfestigkeit bietet.
Das Protokoll zum Auslesen der Daten eines einzelnen Strommessmoduls sieht wie folgt aus:
Wenn mehrere Module als Daisy Chain verbunden sind, werden die Daten des vorherigen Moduls an den Ausgang weitergeleitet, wie die folgende Abbildung zeigt:
Wenn En_In aktiv ist, sendet das Modul während der nächsten 32 Taktzyklen seinen Stromwert, beginnend mit dem MSB. Nach 32 Taktzyklen wird das empfangene Datenwort weitergeleitet. En_In muss für 32 Taktzyklen multipliziert mit der Anzahl der CMMs in der Kette gültig sein. Der Strom wird als 32-Bit-Wert (unsigned long) in Schritten von 100 nA zurückgegeben.
2.5RS232-Datenausgabe
Der Messwert wird über RS232 im Intervall von 100 ms gesendet. Das Intervall ist über die RS232-Konfiguration einstellbar. Verbinden Sie den COM-Port des PCs über ein einfaches 1:1-Sub-D-Kabel (kein Nullmodemkabel) mit der RS232-Schnittstelle an der Frontblende. Verwenden Sie ein Standard-Terminalprogramm mit den folgenden Einstellungen:
- 9600 Baud
- Keine Parität
- 1 Stoppbit
- Kein Handshake
Die Ausgabe des Moduls sieht wie in der folgenden Abbildung aus:
- R = Messbereich
- I = mittlerer Strom in µA seit dem letzten Auslesen
- Min = minimaler Strom in µA seit dem letzten Auslesen
- Max = maximaler Strom in µA seit dem letzten Auslesen
Jede Zeile wird mit „Carriage Return / Line Feed“ abgeschlossen, um neue Daten voneinander zu trennen.
2.6RS232-Konfiguration
Die Konfiguration des Moduls über RS232 ermöglicht den Zugriff auf die Konfiguration der CAN-Übertragung und auf das Sendeintervall der Datenausgabe über die RS232-Schnittstelle. Verbinden Sie den COM-Port des PCs über ein einfaches 1:1-Sub-D-Kabel (kein Nullmodemkabel) mit der RS232-Schnittstelle an der Frontblende.
Verwenden Sie eine Standard-Terminalsoftware mit folgenden Einstellungen:
- 9600 Baud
- Keine Parität
- 1 Stoppbit
- Kein Handshake
Die Ausgabe des Moduls erscheint wie unter RS232-Datenausgabe gezeigt.
Mit den Befehlen der folgenden Tabelle können die Einstellungen abgefragt werden. Jeder Befehl muss mit Carriage Return / Line Feed (\r\n) abgeschlossen werden. Jeder Befehlsstring muss also ein Format wie im folgenden Beispiel haben: SINTV?\r\n
\rist das ASCII-Zeichen0x0D\nist das ASCII-Zeichen0x0A
| Befehl | Beschreibung | Antwort (Beispiel) | Standardwert | Bemerkungen |
|---|---|---|---|---|
SINTV? | Fragt das aktuelle serielle Sendeintervall in Millisekunden ab | SINTV = 1000 ms | 100 ms | |
CINTV? | Fragt das aktuelle CAN-Sendeintervall in Millisekunden ab | CINTV = 10 ms | 1 ms | |
CANBD? | Fragt die aktuelle CAN-Baudrate in kBit/s ab | CANBD = 1000 | 1000 | |
CANID? | Fragt die aktuelle CAN-ID ab | CANID=450 | 450 | CAN-ID für zyklische Nachrichten (dezimal) |
XTEND? | Fragt das Extended-ID-Flag der aktuellen CAN-ID ab | XTEND=0 | 0 | 0 => 11-Bit-ID / 1 => 29-Bit-ID |
SWVER? | Fragt die Softwareversion ab | SWVER = VERSION | Softwareversion – ASCII-String | |
TEMPR? | Liest die aktuelle Modultemperatur in °C aus | TEMPR = 23 | ||
GLVAL? | Fragt die letzten Werte Min, Max und Mittelwert ab | R= 0\tI = 50.0 uA\tMin = 48.5 uA\tMax=51.5 uA | Wie unter RS232-Datenausgabe gezeigt | |
ONMOD? | Fragt die Konfiguration der On/Off-Steuerung ab | ONMOD = 0 | 0 | Beschreibung von ONMOD siehe On/Off-Steuerung. Bereich: 0…7 |
CMMON? | Fragt den internen ON/Off-Zustand ab | CMMON = 0 | 0 | Dies ist nur die SW-Einstellung. Der Zustand des Hardwareeingangs wird bei diesem Befehl nicht berücksichtigt. Flüchtiger Wert. 0 => Off / 1 => On |
TPLID? | Fragt die lokale CAN-ID für ISO-TP ab | TPLID = 451 | 451 | CMM empfängt auf der Local ID (dezimal) |
TPRID? | Fragt die Remote-CAN-ID für ISO-TP ab | TPRID = 2047 | 2047 | System empfängt auf der Remote ID (dezimal) |
TPLXT? | Fragt das Extended-ID-Flag der lokalen CAN-ID für ISO-TP ab | TPLXT = 0 | 0 | 0 => 11-Bit-ID / 1 => 29-Bit-ID |
TPRXT? | Fragt das Extended-ID-Flag der Remote-CAN-ID für ISO-TP ab | TPRXT = 0 | 0 | 0 => 11-Bit-ID / 1 => 29-Bit-ID |
SERNB? | Fragt den Seriennummer-String ab | SERNB = 23BG12345 | <keiner> | Firmware >= 1.2.7 |
CDATE? | Fragt das letzte Kalibrierdatum ab | CDATE = 2023-08-01 | <keiner> | Firmware >= 1.2.7. Format: YYYY-MM-DD |
UTEXT? | Fragt den benutzerdefinierten String ab | UTEXT = TEXT | <keiner> | Firmware >= 1.3.0 |
MMASC? | Fragt die Anzahl der Abtastwerte für die Mittelung von Min.- und Max.-Strom ab | MMASC = 10 | 1 | Firmware >= 1.3.0. Flüchtiger Wert. 1 Abtastwert = 24 µs |
RCISC? | Fragt die Anzahl der nach einem Messbereichswechsel zu ignorierenden Abtastwerte ab | RCISC = 10 | 6 | Firmware >= 2.2.0. Flüchtiger Wert. 1 Abtastwert = 24 µs |
MINRG? | Fragt den kleinsten zulässigen Messbereich ab | MINRG = 3 | 0 | Firmware >= 2.2.0. Flüchtiger Wert |
Mit den Befehlen der folgenden Tabelle können die Einstellungen gesetzt werden. Jeder Befehl muss mit Carriage Return / Line Feed (\n\r) abgeschlossen werden. Jeder Befehlsstring muss also ein Format wie im folgenden Beispiel haben: SINTV=100\n\r
| Befehl | Beschreibung | Antwort (Beispiel) | Gültiger Parameterbereich |
|---|---|---|---|
SINTV=n | Setzt das aktuelle serielle Sendeintervall in Millisekunden | SINTV = 1000 ms | n = 100 … 12000 |
CINTV=n | Setzt das aktuelle CAN-Sendeintervall in Millisekunden | CINTV = 10 ms | n = 1 …12000 |
CANBD=n | Setzt die aktuelle CAN-Baudrate in kBit/s | CANBD = 1000 | n = 100, 125, 200, 250, 400, 500, 800, 1000 |
CANID=n | Setzt die aktuelle CAN-ID | CANID = 450 | n = 0 … 2047 (11-Bit-ID); n = 0 ... 536870911 (29-Bit-ID) |
XTEND=b | Setzt das Extended-ID-Flag der aktuellen CAN-ID | XTEND = 0 | b = 0 / 1; 0 => 11-Bit-ID / 1 => 29-Bit-ID |
ONMOD=n | Setzt die Konfiguration der On/Off-Steuerung | ONMOD = 0 | Beschreibung der ONMOD-Werte n siehe On/Off-Steuerung; n = 0 … 7 |
CMMON=b | Setzt den internen ON/Off-Zustand | CMMON = 0 | b = 0 / 1; 0 => Off / 1 => On |
TPLID=n | Setzt die lokale CAN-ID für ISO-TP | TPLID = 451 | n = 0 … 2047 (11-Bit-ID); n = 0 ... 536870911 (29-Bit-ID) |
TPRID=n | Setzt die Remote-CAN-ID für ISO-TP | TPRID = 2047 | n = 0 … 2047 (11-Bit-ID); n = 0 ... 536870911 (29-Bit-ID) |
TPLXT=b | Setzt das Xtd-Flag der lokalen CAN-ID für ISO-TP | TPLXT = 0 | b = 0 / 1; 0 => 11-Bit-ID / 1 => 29-Bit-ID |
TPRXT=b | Setzt das Xtd-Flag der Remote-CAN-ID für ISO-TP | TPRXT = 0 | b = 0 / 1; 0 => 11-Bit-ID / 1 => 29-Bit-ID |
UTEXT=s | Setzt den benutzerdefinierten String | UTEXT = TEXT | |
MMASC=n | Setzt die Anzahl der Abtastwerte für die Mittelung von Min.- und Max.-Strom | MMASC = 10 | n = 1…65535 |
RCISC=n | Setzt die Anzahl der nach einem Messbereichswechsel zu ignorierenden Abtastwerte | RCISC = 10 | n = 6…255 |
MINRG=n | Setzt den kleinsten zulässigen Messbereich | MINRG = 3 | n = 0…6 |
Darüber hinaus sind die folgenden zusätzlichen RS232-Befehle definiert. Auch diese Befehle müssen mit \r\n abgeschlossen werden.
| Befehl | Beschreibung | Antwort |
|---|---|---|
DEFLT! | Alle Konfigurationsparameter werden auf ihre Standardwerte gesetzt | DEFAULT SETTINGS RESTORED |
INITC! | Initialisiert die CAN-Schnittstelle | CAN INIT |
RESET! | Setzt den internen Mikrocontroller des CMM zurück | <keine>. Neustart mit Ausgabe von SW_Version. |
BOOTL! | Versetzt den internen Mikrocontroller des CMM in den Bootmodus und setzt den Controller zurück |
2.7CAN-Konfiguration
Das CMM kann über die CAN-Schnittstelle konfiguriert werden. Für diese Konfiguration wird das ISO-TP-Protokoll nach ISO 15765-2 verwendet. Es wird die normale Adressierung (Normal Addressing) verwendet.
Die Konfiguration erfolgt durch Senden von Befehlen an das CMM. Jeder Befehl wird mit einer Antwort quittiert.
2.7.1ISO-TP-Header
Single-Frame-Befehle
Die meisten Befehle und Antworten passen in eine einzelne CAN-Nachricht. Es können also Single Frames nach ISO-15765-2 verwendet werden. Die jeweilige CAN-Nachricht enthält folgende Daten:
| CAN-ID | Data_1 | Data_2 | Data_3 | Data_4 | Data_5 | Data_6 | Data_7 | Data_8 |
|---|---|---|---|---|---|---|---|---|
| Befehls-Header | Befehls-Header | Befehls-Header | Befehls-Header | |||||
| TPLID (Befehl), TPRID (Antwort) | SF_N_PCI = Länge 0x04…0x07 | Befehl | Aktion | Fehlercode | Reserviert | Befehlsabhängige Daten | Befehlsabhängige Daten | Befehlsabhängige Daten |
Multi-Frame-Befehle
Wenn für einen Befehl mehr als eine Nachricht erforderlich ist, werden First Frames, Flow Control und Consecutive Frames in der folgenden Reihenfolge von oben nach unten verwendet:
| CAN-ID | Data_1 | Data_2 | Data_3 | Data_4 | Data_5 | Data_6 | Data_7 | Data_8 |
|---|---|---|---|---|---|---|---|---|
| TPLID Befehl First Frame | FF_N_PCI ID+(Länge MSB): 0x10 | FF_N_PCI (Länge LSB): Länge | Befehls-Header: Befehl | Befehls-Header: Aktion | Befehls-Header: Fehlercode | Befehls-Header: Reserviert | Befehlsabhängige Daten | Befehlsabhängige Daten |
| TPRID Antwort Flow Control | FC_N_PCI: 0x30 | BS Blockgröße = 0 | ST_min Separation Time = 0 | |||||
| TPLID Befehl Consecutive Frame | CF_N_PCI: 0x20 | Befehlsabhängige Daten | Befehlsabhängige Daten | Befehlsabhängige Daten | Befehlsabhängige Daten | Befehlsabhängige Daten | Befehlsabhängige Daten | Befehlsabhängige Daten |
| TPLID Befehl Consecutive Frame | CF_N_PCI: 0x21 | Befehlsabhängige Daten | Befehlsabhängige Daten | Befehlsabhängige Daten | Befehlsabhängige Daten | Befehlsabhängige Daten | Befehlsabhängige Daten | Befehlsabhängige Daten |
| : | : | : | : | : | : | : | : | : |
Wenn die Multi-Frame-Nachricht eine Antwort ist, tauschen Sie die CAN-IDs TPRID und TPLID.
Datenbyte 1/2 xx_N_PCI
Datenbyte 1 enthält Informationen zum Frame-Typ und zur Datenlänge nach ISO 15765-2.
Bei Single Frames sind die Werte 0x04…0x07 gültig; sie geben die Anzahl der folgenden Datenbytes an. Mindestens 4 Bytes für Befehl, Aktion, Fehlercode und Reserviert – höchstens 7 Bytes einschließlich 3 befehlsabhängiger Datenbytes.
Bei First Frames wird in Byte 1 0x10 zur Befehlslänge addiert, die in Byte 2 steht.
Bei Consecutive Frames wird in Byte 1 0x20 zu einem Nachrichtenzähler addiert.
2.7.2Befehls-Header
Datenbyte 2/3 Befehl
Byte 2 bei Single Frames, Byte 3 bei Multi Frames
| ID | Befehl | Beschreibung | Min. Firmware |
|---|---|---|---|
| 0x00 | NOOPR | Keine Operation | |
| 0x01 | RESET | Setzt den internen Mikrocontroller des CMM zurück | |
| 0x02 | SWVER | Liest die Softwareversion aus | |
| 0x03 | DEFLT | Alle Konfigurationsparameter werden auf ihre Standardwerte gesetzt | |
| 0x04 | ONMOD | Fragt die Konfiguration der On/Off-Steuerung ab oder setzt sie | |
| 0x05 | CMMON | Fragt den internen ON/Off-Zustand ab oder setzt ihn | |
| 0x06 | GLVAL | Fragt die letzten Werte Min, Max und Mittelwert ab | |
| 0x07 | TEMPR | Liest die aktuelle Modultemperatur in °C aus | |
| 0x08 | SINTV | Fragt das aktuelle serielle Sendeintervall in Millisekunden ab oder setzt es | |
| 0x09 | CANBD | Fragt die aktuelle CAN-Baudrate in kBit/s ab oder setzt sie | |
| 0x0A | CIDIN | Fragt CAN-Identifier und Intervall gemeinsam ab oder setzt sie (fasst die Befehle CANBD und CANID der seriellen Konfiguration zusammen) | |
| 0x0B | TPLID | Fragt CAN-Identifier und Extended-Flag des Identifiers gemeinsam ab oder setzt sie (fasst die Befehle TPLID und TPLXT der seriellen Konfiguration zusammen) | |
| 0x0C | TPRID | Fragt CAN-Identifier und Extended-Flag des Identifiers gemeinsam ab oder setzt sie (fasst die Befehle TPLID und TPLXT der seriellen Konfiguration zusammen) | |
| 0x0D | INITC | Initialisiert die CAN-Schnittstelle | |
| 0x0E | SERNB | Fragt die Seriennummer ab | 1.2.7 |
| 0x0F | CDATE | Fragt das Kalibrierdatum ab | 1.2.7 |
| 0x20 | UTEXT (User Text) | Der Anwender kann einen String von 64 Bytes dauerhaft im Speicher des CMM ablegen | 1.3.0 |
| 0x21 | MMASC (Min. Max. Averaging Samples Count) | Fragt die Anzahl der Abtastwerte ab, die zur Rauschunterdrückung für die Mittelung der Min.- und Max.-Stromwerte verwendet werden, oder setzt sie (flüchtiger Wert) | 1.3.0 |
| 0x22 | RCISC (Range changed ignore samples count) | Fragt die Anzahl der nach einem Messbereichswechsel zu ignorierenden Abtastwerte ab oder setzt sie (flüchtiger Wert) | 2.2.0 |
| 0x23 | MINRG (Minimum range) | Fragt den kleinsten zulässigen Messbereich ab oder setzt ihn (flüchtiger Wert) | 2.2.0 |
Datenbyte 3/4 Aktion
Byte 3 bei Single Frames, Byte 4 bei Multi Frames
| ID | Aktion | Gültig für Richtung | Beschreibung |
|---|---|---|---|
| 0x00 | Get | Befehl an CMM | Daten aus dem CMM lesen |
| 0x01 | Set | Befehl an CMM | Daten in das CMM schreiben |
| 0x02 | Execute | Befehl an CMM | Ausführen ohne Lesen oder Schreiben von Daten. |
| 0x03 | Return | Antwort vom CMM |
Datenbyte 4/5 Fehlercode
Byte 4 bei Single Frames, Byte 5 bei Multi Frames
Dieses Datenbyte ist nur bei Antworten vom CMM gültig. In Befehlen an das CMM sollte dieses Byte immer 0x00 = kein Fehler sein.
| ID | Fehler | Beschreibung |
|---|---|---|
| 0x00 | NoError | Befehl war erfolgreich, kein Fehler |
| 0x01 | HeaderLength | Header-Bytes 1..4 waren nicht vollständig |
| 0x02 | DataLength | Anzahl der Datenbytes passte nicht zum Befehl |
| 0x03 | UnknownCmd | Unbekannter Befehl |
| 0x04 | Action | Aktion wird für diesen Befehl nicht unterstützt |
| 0x05 | VOOR | Wert außerhalb des Bereichs (ein ungültiger Parameter wurde übergeben) |
Datenbyte 5/6 Reserviert
Byte 5 bei Single Frames, Byte 6 bei Multi Frames. Dieses Byte ist für zukünftige Verwendung reserviert.
2.7.3Befehlsübersicht
Folgende Befehle sind verfügbar:
| Befehl | Länge | Befehls-Header: Befehl | Befehls-Header: Aktion | Befehls-Header: Fehlercode | Befehls-Header: Reserviert | Befehlsabhängige Daten |
|---|---|---|---|---|---|---|
| NOOPR | 4 | 0x00 | 0x02 (Exe) | 0x00 | 0x00 | |
| RESET | 4 | 0x01 | 0x02 (Exe) | 0x00 | 0x00 | |
| SWVER | 4 | 0x02 | 0x00 (Get) | 0x00 | 0x00 | |
| DEFLT | 4 | 0x03 | 0x02 (Exe) | 0x00 | 0x00 | |
| ONMOD | 4 | 0x04 | 0x00 (Get) | 0x00 | 0x00 | |
| ONMOD | 5 | 0x04 | 0x01 (Set) | 0x00 | 0x00 | On-Mode = 0…7 |
| CMMON | 4 | 0x05 | 0x00 (Get) | 0x00 | 0x00 | |
| CMMON | 5 | 0x05 | 0x01 (Set) | 0x00 | 0x00 | 0 / 1 |
| GLVAL | 4 | 0x06 | 0x00 (Get) | 0x00 | 0x00 | |
| TEMPR | 4 | 0x07 | 0x00 (Get) | 0x00 | 0x00 | |
| SINTV | 4 | 0x08 | 0x00 (Get) | 0x00 | 0x00 | |
| SINTV | 8 | 0x08 | 0x01 (Set) | 0x00 | 0x00 | Serielles Intervall [ms]: Bit 7…0, Bit 15..8, Bit 23…16, Bit 31…24 |
| CANBD | 4 | 0x09 | 0x00 (Get) | 0x00 | 0x00 | |
| CANBD | 8 | 0x09 | 0x01 (Set) | 0x00 | 0x00 | CAN-Baudrate kBit/s: Bit 7…0, Bit 15..8 |
| INITC | 4 | 0x0D | 0x02 (Exe) | 0x00 | 0x00 |
Beachten Sie, dass nur der Befehls-Header und die befehlsabhängigen Daten dargestellt sind. Der ISO-15765-Header muss hinzugefügt werden, und die Nachrichten müssen bei Bedarf auf mehrere Nachrichten aufgeteilt werden.
| Befehl | Länge | Befehls-Header: Befehl | Befehls-Header: Aktion | Befehls-Header: Fehlercode | Befehls-Header: Reserviert | Befehlsabhängige Daten |
|---|---|---|---|---|---|---|
| CIDIN | 4 | 0x0A | 0x00 (Get) | 0x00 | 0x00 | |
| CIDIN | 12 | 0x0A | 0x01 (Set) | 0x00 | 0x00 | Byte_1 … 4: CAN-ID (Bit 7…0, Bit 15..8, Bit 23…16, Bit 30…24), Xtended = 0 / 1 (Bit 31); Byte 5…8: CAN-Intervall [ms] (0.. .. .. 31) |
| TPLID | 4 | 0x0B | 0x00 (Get) | 0x00 | 0x00 | |
| TPLID | 8 | 0x0B | 0x01 (Set) | 0x00 | 0x00 | CAN-ID (Bit 7…0, 15..8, 23…16, 30…24), Extended ID (Bit 31) |
| TPRID | 4 | 0x0C | 0x00 (Get) | 0x00 | 0x00 | |
| TPRID | 8 | 0x0C | 0x01 (Set) | 0x00 | 0x00 | CAN-ID (Bit 7…0, 15..8, 23…16, 30…24), Extended ID (Bit 31) |
| SERNB | 4 | 0x0E | 0x00 (Get) | 0x00 | 0x00 | |
| CDATE | 4 | 0x0F | 0x00 (Get) | 0x00 | 0x00 | |
| UTEXT | 4 | 0x20 | 0x00 (Get) | 0x00 | 0x00 | |
| UTEXT | 68 | 0x20 | 0x01 (Set) | 0x00 | 0x00 | Byte 0…63: Benutzerdefinierter String (nullterminiert) |
| MMASC | 4 | 0x21 | 0x00 (Get) | 0x00 | 0x00 | |
| MMASC | 6 | 0x21 | 0x01 (Set) | 0x00 | 0x00 | Anzahl der Abtastwerte für die Mittelung von Min.- und Max.-Strom (uint16): Bit 7…0, Bit 15..8 |
| RCISC | 4 | 0x22 | 0x00 (Get) | 0x00 | 0x00 | |
| RCISC | 5 | 0x22 | 0x01 (Set) | 0x00 | 0x00 | Anzahl der nach einem Messbereichswechsel zu ignorierenden Abtastwerte (uint8) |
| MINRG | 4 | 0x23 | 0x00 (Get) | 0x00 | 0x00 | |
| MINRG | 5 | 0x23 | 0x01 (Set) | 0x00 | 0x00 | Kleinster zulässiger Messbereich (uint8) |
2.7.4Antwortübersicht
Jeder Befehl wird mit einer Antwort quittiert.
Die meisten Befehle werden zuerst ausgeführt und senden nach der Ausführung eine Antwort. Ausnahmen von dieser Regel sind:
- RESET:
- Die Antwort wird sofort gesendet.
- Der Reset wird anschließend durchgeführt.
- TPLID, TPRID:
- Die Antwort wird mit der bisherigen CAN-ID gesendet.
- Die jeweilige CAN-ID für ISO-TP wird geändert, nachdem die Antwort gesendet wurde.
- CANBD:
- Die Baudrate wird geändert, nachdem die Antwort gesendet wurde.
- Beachten Sie, dass nach der Änderung der Baudrate Busfehler auftreten können. Das CMM sollte anschließend neu gestartet werden.
Negative Antworten
Negative Antworten werden zurückgegeben, wenn ein Fehler aufgetreten ist, d. h. wenn der Befehl ungültig war und abgelehnt wurde.
| Antwort auf Befehl | Länge | Antwort-Header: Befehl | Antwort-Header: Aktion | Antwort-Header: Fehlercode | Antwort-Header: Reserviert |
|---|---|---|---|---|---|
| XXXXX | 4 | 0xXX | 0x03 (Ret) | 0xYY (siehe Datenbyte 4/5 Fehlercode) | 0x00 |
Positive Antworten
Die positiven Antworten auf die jeweiligen Befehle lauten wie folgt. Beachten Sie, dass nur der Befehls-Header und die befehlsabhängigen Daten dargestellt sind. Der ISO-TP-Header muss hinzugefügt werden, und die Nachrichten müssen bei Bedarf auf mehrere Nachrichten aufgeteilt werden.
| Antwort auf Befehl | Länge | Antwort-Header: Befehl | Antwort-Header: Aktion | Antwort-Header: Fehlercode | Antwort-Header: Reserviert | Befehlsabhängige Daten |
|---|---|---|---|---|---|---|
| NOOPR | 4 | 0x00 | 0x03 (Ret) | 0x00 | 0x00 | |
| RESET | 4 | 0x01 | 0x03 (Ret) | 0x00 | 0x00 | |
| SWVER | 18 | 0x02 | 0x03 (Ret) | 0x00 | 0x00 | Byte 0…15: SW-Version als ASCII-String |
| DEFLT | 4 | 0x03 | 0x03 (Ret) | 0x00 | 0x00 | |
| ONMOD | 5 | 0x04 | 0x03 (Ret) | 0x00 | 0x00 | OnMode = 0…7 |
| CMMON | 5 | 0x05 | 0x03 (Ret) | 0x00 | 0x00 | 0 / 1 |
| TEMPR | 4 | 0x07 | 0x03 (Ret) | 0x00 | 0x00 | Temperatur [°C]: Bit 0…7, 8…15 |
| SINTV | 8 | 0x08 | 0x03 (Ret) | 0x00 | 0x00 | Serielles Intervall [ms]: Bit 7…0, 15..8, 23…16, 31…24 |
| CANBD | 8 | 0x09 | 0x03 (Ret) | 0x00 | 0x00 | CAN-Baudrate kBit/s: Bit 7…0, 15..8 |
| INITC | 4 | 0x0D | 0x03 (Ret) | 0x00 | 0x00 | |
| GLVAL | 23 | 0x06 | 0x03 (Ret) | 0x00 | 0x00 | siehe folgende Tabelle |
| TPLID | 8 | 0x0B | 0x03 (Ret) | 0x00 | 0x00 | Byte 0…3: CAN-ID (Bit 7…0, 15..8, 23…16, 30…24), Xtended = 0 / 1 (Bit 31) |
| TPRID | 8 | 0x0C | 0x03 (Ret) | 0x00 | 0x00 | Byte 0…3: CAN-ID (Bit 7…0, 15..8, 23…16, 30…24), Xtended = 0 / 1 (Bit 31) |
| SERNB | 20 | 0x0E | 0x03 (Ret) | 0x00 | 0x00 | Byte 0…15: Seriennummer-String (aufgefüllt) |
| CDATE | 8 | 0x0F | 0x03 (Ret) | 0x00 | 0x00 | Byte 0…3: Jahr (uint16): Bit 7…0, Bit 15…8; Monat (uint8): Bit 7…0; Tag (uint8): Bit 7…0 |
| UTEXT | 68 | 0x20 | 0x03 (Ret) | 0x00 | 0x00 | Byte 0…63: Benutzerdefinierter String (nullterminiert) |
| MMASC | 6 | 0x21 | 0x03 (Ret) | 0x00 | 0x00 | Anzahl der Abtastwerte für die Mittelung von Min.- und Max.-Strom (uint16): Bit 7…0, Bit 15…8 |
| RCISC | 5 | 0x22 | 0x03 (Ret) | 0x00 | 0x00 | Anzahl der nach einem Messbereichswechsel zu ignorierenden Abtastwerte (uint8) |
| MINRG | 5 | 0x23 | 0x03 (Ret) | 0x00 | 0x00 | Kleinster zulässiger Messbereich (uint8) |
Befehlsabhängige Daten der GLVAL-Antwort:
| Byte | Inhalt | Bits | Wert |
|---|---|---|---|
| Byte_1 | CMMON | 0/1 | |
| Byte_2 | Negativ | 0/1 | |
| Byte_3 | Messbereich | 0…6 | |
| Byte_4…7 | Mittelwert [Schritte zu 100 nA] | Bit 7…0, 15..8, 23…16, 31…24 | |
| Byte 8…11 | Min [Schritte zu 100 nA] | 0.. .. .. 31 | |
| Byte 12…15 | Max [Schritte zu 100 nA] | 0.. .. .. 31 | |
| 16…19 | Anzahl Abtastwerte | 0.. .. .. 31 |
2.7.5Beispiel-CAN-Traces
Die folgenden CAN-Traces sollen das Verständnis der obigen Tabellen erleichtern. Befehl und Antworten sind in den jeweiligen Farben markiert: Befehl / Antwort. Beachten Sie, dass Flow-Control-Frames dem jeweiligen Befehl bzw. der jeweiligen Antwort zugeordnet sind, aber von der jeweiligen Gegenstelle gesendet werden.
CMMON: Einschalten
| Zeit | CAN-ID | Daten | Markiert als |
|---|---|---|---|
| 2014.12.11 - 13:52:21.724 | 0x1C3 | 0x05 0x05 0x01 0x00 0x00 0x01 0x00 0x00 | Befehl |
| 2014.12.11 - 13:52:21.724 | 0x7FF | 0x04 0x05 0x03 0x00 0x00 0x00 0x00 0x00 | Antwort |
CMMON: Ausschalten
| Zeit | CAN-ID | Daten | Markiert als |
|---|---|---|---|
| 2014.12.11 - 13:52:29.924 | 0x1C3 | 0x05 0x05 0x01 0x00 0x00 0x00 0x00 0x00 | Befehl |
| 2014.12.11 - 13:52:29.924 | 0x7FF | 0x04 0x05 0x03 0x00 0x00 0x00 0x00 0x00 | Antwort |
SWVER (SW-Version lesen)
| Zeit | CAN-ID | Daten | Markiert als |
|---|---|---|---|
| 2014.12.11 - 13:53:59.118 | 0x1C3 | 0x05 0x02 0x00 0x00 0x00 0x00 0x00 0x00 | Befehl |
| 2014.12.11 - 13:53:59.118 | 0x7FF | 0x10 0x12 0x02 0x03 0x00 0x00 0x43 0x4D | Antwort |
| 2014.12.11 - 13:53:59.122 | 0x1C3 | 0x30 0x00 0x00 0x00 0x00 0x00 0x00 0x00 | Antwort |
| 2014.12.11 - 13:53:59.122 | 0x7FF | 0x21 0x4D 0x5F 0x49 0x49 0x49 0x5F 0x56 | Antwort |
| 2014.12.11 - 13:53:59.122 | 0x7FF | 0x22 0x5F 0x31 0x5F 0x32 0x00 0x00 0x00 | Antwort |
SINTV (serielles Intervall setzen)
| Zeit | CAN-ID | Daten | Markiert als |
|---|---|---|---|
| 2014.12.11 - 13:56:46.436 | 0x1C3 | 0x10 0x08 0x08 0x01 0x00 0x00 0x80 0x00 | Befehl |
| 2014.12.11 - 13:56:46.437 | 0x7FF | 0x30 0x00 0x01 0x00 0x00 0x00 0x00 0x00 | Befehl |
| 2014.12.11 - 13:56:46.440 | 0x1C3 | 0x21 0x00 0x00 0x00 0x00 0x00 0x00 0x00 | Befehl |
| 2014.12.11 - 13:56:46.442 | 0x7FF | 0x04 0x08 0x03 0x00 0x00 0x00 0x00 0x00 | Antwort |
Dokumente und Downloads
Weitere Dokumente und Dateien zu Ihrem IRS-Produkt finden Sie auf myIRS.