13.6. PROTOKOLLMONITOR SPEZIFISCHE LUA ERWEITERUNGEN
3
4
function s p l i t ( data , i n t v a l , a l t e r , s t r , f i l t e r )
5
i f a l t e r or i n t v a l > t r a n s m i s s i o n . bytepause ( 3 . 5 ) then
6
a f u n c t i o n b y t e > 0x80 means an e r r o r response i n Modbus
7
i f # s t r > 1 and s t r : b y t e ( 2 ) >= 0x80 then
8
e r r o r C o u n t e r = e r r o r C o u n t e r + 1
9
debug . c l e a r ( )
10
debug . p r i n t ( " E r r o r Counter : " . . e r r o r C o u n t e r )
11
end
12
r e t u r n STARTED
13
end
14
a l l o t h e r b y t e s extend t h e c u r r e n t t e l e g r a m
15
r e t u r n MODIFIED
16
end
Das gezeigte Beispiel zählt alle Fehlermeldungen in einer Modbus Übertra-
gung. Fehlermeldungen sind durch ein gesetztes MSB (höchstwertiges Bit) im
Funktionswert (2tes Byte) gekennzeichnet.
Da nur die split() Funktion 'alle' übertragenen Datenbytes sieht, muss der
Code für den Fehlerzähler in der split Funktion eingefügt werden.
debug.print
Gibt die per Komma separierten Argumente in dem Protokollmonitor internen
Debugfenster aus.
debug.print(param1,param2,...)
param: Durch Komma getrennte Liste der Parameter.
Beispiel
1
function o u t ( )
2
l o c a l t g = t e l e g r a m s . t h i s ( )
3
i f t g : s i z e ( ) > 10 then
4
o u t p u t t h e t i m e and s i z e o f t h e c u r r e n t t e l e g r a m
5
debug . p r i n t ( " Time : " . . t g : t i m e ( ) , " Size : " . . t g : s i z e ( ) )
6
end
7
end
Vermeiden Sie die intensive Nutzung von debug.print
Jede Ausgabe im Debug Fenster benötigt eine gewisse Zeit und ver-
langsamt deshalb die Ausführung des Template Skripts.
debug.resume
Setzt eine zuvor ausgesetzte Debugausgabe wieder fort. Im Beispiel wurde die
Ausgabe nach Empfang eines Telegramms mit einem ersten Byte ungleich hex
10 gestoppt und erst mit Empfang eines Telegramms mit hex 10 als Startbyte
wieder aufgenommen.
debug.resume()
145