Kapitel 16. Lua-Programmier-Beispiele
16.1. Beispiele für Geräte mit CAN-Schnittstelle
In diesem Beispiel wird eine Verbindung zu zwei AnaGate CAN-Devices aufgebaut, die
über den CAN-Bus miteinander verbunden sind. Sollte die Verbindung fehlschlagen,
wird eine Fehlermeldung ausgegeben und das Script beendet. Bei erfolgreicher
Verbindung werden die globalen Einstellungen des AnaGate CAN-Device gesetzt.
• Verbindung zu den zwei AnaGate CAN Devices aufbauen.
• Filtereinstellungen setzen.
• aktuelle Uhrzeit setzen.
• Globals setzen.
• 3 Datenpakete auf 1. AnaGate CAN Device versenden.
• Die Datenpakete aus dem internen Puffer des 2. AnaGate CAN Device lesen.
• Überprüfen, ob Endlosschleife verlassen werden soll.
-- Filter: alle CAN-Identifier akzeptieren
local aFilter = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
local aSendData = { 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8 }
--**************************************************
function main()
local nRC, nHandle, nHandle2, oTime
-- Open
nRC, nHandle = LS_CANOpenDevice(false, true, 0, "10.1.2.160", 5000)
if nRC ~= 0 then
print(LS_CANErrorMessage(nRC))
os.exit()
end
nRC, nHandle2 = LS_CANOpenDevice(false, true, 0, "10.1.2.161", 5000)
if nRC ~= 0 then
print(LS_CANErrorMessage(nRC))
os.exit()
end
-- Filter setzen
nRC = LS_CANSetFilter(nHandle,
nRC = LS_CANSetFilter(nHandle2, aFilter)
-- aktuelle Zeit auf den AnaGate Device setzen
nRC, oTime = LS_GetTime()
nRC = LS_CANSetTime(nHandle,
nRC = LS_CANSetTime(nHandle2, oTime[1], oTime[2])
-- Globals setzen
nRC = LS_CANSetGlobals(nHandle,
nRC = LS_CANSetGlobals(nHandle2, 500000, 0, true, false, false)
-- Endlosschleife
repeat
0x00, 0x1FFFFFFF, 0x00, 0x1FFFFFFF,
0x00, 0x1FFFFFFF, 0x00, 0x1FFFFFFF }
aFilter)
oTime[1], oTime[2])
500000, 0, true, false, false)
167
© 2007-2015 Analytica GmbH