Herunterladen Inhalt Inhalt Diese Seite drucken

IFTOOLS MSB-RS485-PLUS Handbuch Seite 90

Inhaltsverzeichnis

Werbung

KAPITEL 11. DER DATENMONITOR
alphabetischer Reihenfolge der Schlüssel/Namen. Daher Source, Time, Value.
Wir kommen später noch einmal darauf zurück.
Im nächsten Beispiel wollen wir die Prüfsumme einer im Datenfenster markier-
ten (selektierten) Bytefolge ausrechnen und ausgeben.
1
function Mod256Sum ( from , t o )
2
l o c a l chksum = 0
3
f o r i =from , t o do
4
chksum = chksum + data . a t ( i ) : v a l ( )
5
end
6
r e t u r n chksum % 256
7
end
8
9
function onchange ( c u r s o r , selbeg , selend )
10
i f selbeg and selend then
11
i f selbeg > selend then
12
selbeg , selend = selend , selbeg
13
end
14
r e t u r n { [ " R e s u l t : " ] = Mod256Sum ( selbeg , selend ) }
else
15
r e t u r n { [ " R e s u l t : " ] = "No s e l e c t i o n ! " }
16
end
17
end
18
Die Zeilen 1...7 zeigen die Funktion zur Berechnung der Prüfsumme. Hier das
einfache Aufaddieren aller Datenbytes von Position from bis to mit abschlie-
ßendem Modulo 256 (Lua % Operator) um nur die untersten 8 Bits zurückzuge-
ben.
Der Datenmonitor übergibt die ausgewählte Datenfolge als Start selbeg und
Ende Position selend. Bei keiner Auswahl sind beide Parameter nil und das
Skript liefert 'No selection! in Zeile 16'.
Die Auswahl einer Datensequenz kann vom Anfang zum Ende oder umge-
kehrt erfolgen. Bei letzterem führt dies zu einem Startposition kleiner als die
Endposition. Das Skript prüft dies in Zeile 11 und verwendet eine kleine Lua
Spezialität um beide Werte mit einer einzigen Anweisung zu vertauschen
Es folgt der Aufruf der eigentlichen checksum Funktion und die Rückgabe der
berechneten Prüfsumme als Dezimalwert.
In unserem letzten Beispiel wollen wir das Markieren (Färben) von Datenbytes
relativ zur Cursor Position demonstrieren.
Dies ist insbesondere interessant wenn Sie den Datenmonitor mit dem Pro-
tokollmonitor synchronisieren. Sobald Sie ein Telegramm im Protokollmonitor
anklicken, sendet dieser Anfang und Ende des Telegramms als Auswahl an den
Datenmonitor. Sie können diese Information in onchange nutzen, um gezielt
Datenbytes dieses Telegramms in der Anzeige zu markieren oder anderweitig
zu verarbeiten.
Ein entsprechendes Skript für Modbus RTU Übertragungen verwendet dieses
Feature. Sie finden es unter den DataView Vorlagen.
Wir beschränken uns hier auf die Basics und zeigen, wie Sie einfach das vorhe-
rige, aktuelle und auf den Cursor folgende Byte rot, grün und blau hervorheben
3
Lua erlaubt mehrfache Zuweisungen. In diesem Fall wertet Lua zuerst alle Werte aus und führt
dann die Zuordnungen aus. Ideal zum Austauschen zweier Werte
78
3
.

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis