9.6.3
Programmbeispiel "CP440 ASCII BCC"
Aufbau des Programmbeispiels
Das Programmbeispiel ist nur für den ASCII-Treiber sinnvoll.
Dieses Beispiel ist identisch zu dem Beispiel "CP440 SEND RECV" aufgebaut, beinhaltet
aber zusätzlich noch
● im Sendeteil die Bildung einer Blockcheck-Summe durch den Aufruf von FC 23
● im Empfangsteil die Überprüfung der Blockcheck-Summe durch den Aufruf von FC 24
Beschreibung FC 23 (GEN BCC)
Mit dem Eingangsparameter "DB_NO" wird der DB angegeben, in dem die zu sendenden
Daten abgelegt sind. Der Eingangsparameter "LEN" gibt die Länge der zu sendenden Daten
an. Davon sind die letzten 2 Bytes für den Blockcheck (abgelegt als ASCII-Wert) frei zu
halten.
Der Blockcheck erfolgt durch XOR-Verknüpfung aller zu sendenden Bytes (LEN -2). Die
XOR-Verknüpfung erfolgt in der Schleife "LOOP". Das jeweilige Byte wird durch den Befehl
L DBB [#d_loop_akt] geladen. Der Offset "#d_loop_akt" muss als Bit-Offset angegeben
werden. Nach Ablauf der "LOOP"-Schleife steht der Blockcheck im Lowbyte der Variablen
"#w_bcc_value". Der Blockcheck wird dann wie im unteren Beispiel beschrieben in zwei
ASCII-Zeichen codiert.
Beispiel
Bildung von BCC-HI ASCII-Zeichen "32" =2
#w_bcc_value
UW w#16#F0
SLW 4
OW w#16#3000
Punkt-zu-Punkt-Kopplung CP 440 Aufbauen und Parametrieren
Gerätehandbuch, 04/2011, A5E00057741-04
(GEN BCC)
(CHK BCC)
0025
00F0
= 0020
0200
3000
= 3200
Programmierbeispiel Standardbausteine
9.6 Einschalten, Anlaufprogramm und zyklisches Programm
//Unteres Halbbyte ausblenden
// Um halbes Byte nach links schieben
// 3000 Hex auffordern
141