Senden und Empfangen von CAN Messages (STD Frame Format) via ADS

Senden von CAN-Messages per ADS

AdsWrite:
NETID = AoeNetId der EL6751
PORT = 200
IDXGRP = 16#F921
IDXOFFS = 0
LEN = Länge der folgenden DATA,
DATA[0]:             1. CAN-Message, CAN-Id Bit 0-7
DATA[1], Bit 0-2:     1. CAN-Message, CAN-Id Bit 8-10
DATA[1], Bit 7:     1 = RTR (die Länge gibt dann die Anzahl der zu lesenden Daten an, es folgen keine Daten der Message, d.h. die nächste CAN-Message beginnt bei DATA[3]
DATA[2]:             Länge der 1. CAN-Message
DATA[3-n]:         Daten der 1. CAN-Message
DATA[(n+1)]:         2. CAN-Message, CAN-Id Bit 0-7
etc.

Aktivieren/Deaktivieren von CAN-Messages für den Empfang

Für den Empfang müssen die CAN-IDs erst aktiviert werden.

AdsWrite:
NETID = AoeNetId der EL6751
PORT = 200
IDXGRP = 16#F923
IDXOFFS = 0
LEN = Anzahl CAN-IDs * 2
DATA[0]:             1. CAN-ID, Bit 0-7
DATA[1]:             1. CAN-ID, Bit 8-11,
Bit 15=0:            Aktivieren für Empfang
Bit 15=1:             Deaktivieren für Empfang
DATA[2]:             2. CAN-ID, Bit 0-7
etc.

Lesen der empfangenen CAN-Messages

AdsRead:
NETID = AoeNetId der EL6751
PORT = 200
IDXGRP = 16#F921
IDXOFFS = 0
LEN = 640 (maximale Puffergröße)
Die DATA sind genauso wie beim Senden der CAN-Messages aufgebaut.

Der Buffer in der EL6751 umfasst ca. 50 CAN Messages (bei 8 Byte Daten pro Frame).

Diese Funktion ist ab der FW18 verfügbar.