Benutzer-Werkzeuge

Webseiten-Werkzeuge


can

CAN

Der CAN Treiber ermöglicht es Wertänderungen über den CAN-BUS zu lesen und zu schreiben. Die einzelnen Nachrichten auf dem CAN-Bus bestehen aus einem Identifier gefolgt von maximal 8 Byte mit Daten. Unterstützt werden Identifier mit 11-Bits (0x000 bis 0x7FF). Per Konfiguration kann die Unterstützung für 29-Bit Identifier (CAN 2.0B) aktiviert werden.

Beim Schreiben von Datenpunkten wird immer der gesamte 8 Byte Datenbereich gesendet. Bits die nicht zum Datenpunkt gehören, werden mit 0 vorbelegt bzw. können per nomval vorbelegt werden.

Der Name des CAN Treibers lautet: can
Die Routing-Adresse des ersten CAN Treibers ist die 1450
Die Datenpunktdatei für den ersten CAN Treiber heißt: can1.txt
Die Konfigurationsdatei für globale Einstellungen des ersten CAN Treibers heißt: can1.cfg

Beim CAN Treiber sowie allen weiteren Gateway-Treibern gilt für die Definiton von Datenpunkten in der Datenpunktdatei:

Typ: Bedeutung
M Ganzzahliger Wert (Binäre Datenpunkte,Zählwerte) der vom Gateway nur gelesen werden kann/soll.
S Ganzzahliger Wert der vom Gateway gelesen sowie geschrieben werden kann/soll.
X Analogwert (mit Nachkommastellen) der vom Gateway nur gelesen werden kann/soll.
Y Analogwert (mit Nachkommastellen) der vom Gateway gelesen sowie geschrieben werden kann/soll.

Die Adressen der CAN-Datenpunkte sind wie folgt aufgebaut:

„raw <Identifier>.<Start-Byte>.<Start-Bit>.<Bitanzahl>“

Dabei gilt folgende Definition:

Parameter Wertebereich Beschreibung
<Identifier> 0x000 - 0x7FF Hexadezimalwert des CAN-Identifiers
<Start-Byte> 0 - 7 Index des Start-Bytes
<Start-Bit> 0 - 7 Index des Start-Bits
<Bitanzahl> 1 - 64 Anzahl der Bits für diesen Datenpunkt
1=Bool
8=Byte
16=Word
32=Doubleword oder Float
64=Double

Über die Formatangabe in der Datenpunktdatei kann dem Datenpunkt ein Datentyp zugewiesen werden.

Format Datentyp Bereich
BIT Boolean 0 oder 1
UINT8 Byte 0 - 255
SINT8 Byte -128 - 127
UINT16 Word 0 - 65535
SINT16 Word -32768 - 32767
UINT32 Doubleword 0 - 4294967296
SINT32 Doubleword -2147483648 - 2147483647
FLOAT32 Float Fliesskomma-Wert mit 32 Bit
FLOAT64 Double Fliesskomma-Wert mit 64 Bit

Weitere Datenpunkttypen können mit 't:<Typ>' angegeben werden.

Format Datentyp
t:s24 24-Bit Integer (Mit Vorzeichen)
t:u24 24-Bit Integer (Vorzeichenlos)
t:s40 40-Bit Integer (Mit Vorzeichen)
t:u40 40-Bit Integer (Vorzeichenlos)
t:s48 48-Bit Integer (Mit Vorzeichen)
t:u48 48-Bit Integer (Vorzeichenlos)
t:s56 56-Bit Integer (Mit Vorzeichen)
t:u56 56-Bit Integer (Vorzeichenlos)
t:s64 64-Bit Integer (Mit Vorzeichen)
t:u64 64-Bit Integer (Vorzeichenlos)

Über die Formatangabe in der Datenpunktdatei kann die Bytereihenfolge eines Datenpunktes festgelegt werden.

Format Datentyp Datenbereich Ergebnis
S:1 Word
Doubleword
0x01 0x04
0x01 0x00 0x00 0x00
260
16777216
S:0 Word
Doubleword
0x01 0x04
0x01 0x00 0x00 0x00
1025
1

Folgende Einschränkungen gelten für die Angabe von Start-Byte, Start-Bit und Bitanzahl bei der Definition von Datenpunkten:

  • Das Start-Bit darf nur für den Datentyp Boolean ungleich 0 sein, für andere Datentypen muss das Start-Bit 0 sein
  • Start-Byte + Start-Bit + Bitanzahl darf 64 Bit nicht überschreiten (z.B. Start-Byte 7 kann kein Word Datentyp enthalten)

Typische Datenpunkt-Definitionen können demnach sein:

# failure Datenpunkt

   [M failure]
     name  = Communication failure
     query = pe

# Istwerte

   [M raw 1ca.0.0.1]
     name   = Kühlung (0=aus, 1=an) (Byte 0, Bit 0 des Identifiers 0x1ca)
     query  = pe
     format = BIT
   [X raw 2ca.0.0.32]
     name   = Temperatur in °C (Byte 0 bis 3 des Identifiers 0x2ca)
     query  = pe
     format = FLOAT32
   [M raw 2ca.4.0.16]
     name   = Betriebsstunden (Byte 4 bis 5 des Identifiers 0x2ca)
     query  = pe
     format = UINT16
   [M raw 2ca.6.0.8]
     name   = Leistung in %  (Byte 6 des Identifiers 0x2ca)
     query  = pe
     format = UINT8
   

# Sollwerte

   [S raw 10c.0.0.1]
     name   = Kühlung einschalten (Byte 0, Bit 0 des Identifiers 0x10c)
     nomval = 0
     query  = pe
     format = BIT
   [Y raw 20c.0.0.32]
     name   = Soll-Temperatur in °C (Byte 0 bis 3 des Identifiers 0x20c)
     nomval = 40
     query  = pe
     format = FLOAT32

Imprint/Impressum Disclaimer DSGVO/Privacy Policy

can.txt · Zuletzt geändert: 19.12.2021 19:42 von oni

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki