Herunterladen Inhalt Inhalt Diese Seite drucken

Beispielprogramm 3 (Lin) - Beckhoff EL600 Serie Dokumentation

Serielle schnittstellenklemmen
Inhaltsverzeichnis

Werbung

Inbetriebnahme
Im Beispiel verwendete Hardware: EK1100 und EL6001 (auch EL600x, KL600x)
Der FB der getestet werden soll, muss mit seinen Prozessdaten im Systemmanager mit der Klemme verlinkt
werden (22-Byte-Prozessabbild und Control/Status-Word).
Im Beispiel ist der NMEA-Baustein verlinkt. Die Baudrate der Klemme muss auf Ihren Sender eingestellt
werden.
Referenzen:
• www.beuth.de, IEC61162: angelehnt an NMEA2000
• http://gpsinformation.net privat, über NMEA, viele Formate: http://www.gpsinformation.org/dale/
nmea.htm
http://www.nmea.de/nmea0183datensaetze.html
• http://www.meinberg.de/german/info/irig.htm, IRIG-Codes
5.8.3

Beispielprogramm 3 (LIN)

Download (TwinCAT 3 Beispielprogramm):
https://infosys.beckhoff.com/content/1031/el600x_el602x/Resources/zip/1805853195.zip
Globale Variablen zum LIN-Master Beispielprogramm
VAR_GLOBAL
nSetBaudrate : UINT := 10417; // Für Rx-Delay-Berechnung
(* I/O variables for EL6001 terminal acting as Master*)
COMin_EL6001_MASTER AT %I* : EL6inData22B;(* linked to the EL6001 in the TwinCAT System Manager *)
COMout_EL6001_MASTER AT %Q*: EL6outData22B;(* linked to the EL6001 in the TwinCAT System Manager *)
RxBuffer_MASTER : ComBuffer;(* Receive data buffer; used with all receive function blocks *)
TxBuffer_MASTER : ComBuffer;(* Transmit data buffer; used with all receive function blocks *)
END_VAR
Datentypen zum LIN-Master-Slave Beispielprogramm
TYPE tDataFrame : ARRAY[0..8] OF BYTE; END_TYPE // Datentyp für ein LIN-Frame
Funktion zum Hinzufügen von Datenlängeninformation und Paritätsbits:
Deklarationsteil:
FUNCTION F_ADD_LIN_NODE_PARITY : BYTE
VAR_INPUT
nNodeID:BYTE; // Eingangsvariable: Knoten-Id
nReqLen:BYTE; // Eingangsvariable: Längen-Kennung: 2,4,8 Byte-Frame
END_VAR
VAR
bParity0:BYTE; // Interner Zwischenwert für Parity 0
bParity1:BYTE; // Interner Zwischenwert für Parity 1
nPrepId:BYTE; // Zwischenwert der PID
END_VAR
Ausführungsteil:
nPrepId := nNodeID OR SHL(nReqLen,4);
bParity0 :=
(nNodeID AND 2#0001)
XOR (SHR((nNodeID AND 2#0010), 1))
XOR (SHR((nNodeID AND 2#0100), 2))
XOR (SHR((nNodeID AND 2#0001_0000), 4));
bParity1 := 16#01 AND (NOT(
SHR((nNodeID AND 2#0010), 1)
XOR (SHR((nNodeID AND 2#1000),3))
XOR (SHR((nNodeID AND 2#0001_0000), 4))
XOR (SHR((nNodeID AND 2#0010_0000), 5))));
F_ADD_LIN_NODE_PARITY := nPrepId OR SHL(bParity0,6) OR SHL(bParity1,7);
144
Version: 4.7
EL600x, EL602x

Werbung

Inhaltsverzeichnis
loading

Diese Anleitung auch für:

El602 serieEl6001El6021El6002El6022

Inhaltsverzeichnis