Funktionsbaustein FB_KM6551_SLAVE_10BYTE

Dieser Funktionsbaustein übernimmt die Kommunikation zum Slave Modul. Es darf nur ein Baustein pro Slave aufgerufen werden. Eine positive Flanke von bStart aktiviert die Kommunikation zu dem Slave. Sollte bError FALSE sein ist die Kommunikation erfolgreich gewesen und die Input Daten sind gültig. Ist das bError Bit TRUE liegt ein Fehler vor. Eine genauere Fehlerursache kann man in iErrorID auslesen. ptData_IN ist eine Pointeradresse für die Eingangsdaten (ADR Befehl zur Ermittlung der Pointeradresse) und iLenData_IN die Länge der Daten. Die Länge kann man mit SIZEOF bestimmen und darf nicht größer als 10 Byte sein. Das Gleiche gilt auch für die Output Daten. Die Variable strLinkData wird mit dem Baustein FB_KM6551_MAIN verbunden (die Variable heißt genauso). Bevor der Baustein FB_KM6551_SLAVE_10BYTE aufgerufen wird sollte der FB_KM6551_MAIN fertig sein (siehe bActive in diesem Baustein).

Funktionsbaustein FB_KM6551_SLAVE_10BYTE 1:
Funktionsbaustein FB_KM6551_Slave_10Byte

VAR_INPUT

bStart
:BOOL;
strLinkData
:KM6551_Data;
ptData_IN
:DWORD;
iLenData_IN   :INT;
ptData_OT
:DWORD;
iLenData_OUT  :INT;

Legende

bStart: Positive Flanke aktiviert den Baustein.
strLinkData: Wird mit strLinkData vom FB_KM6551_MAIN verbunden.
ptData_IN
: Pointer auf die Variable, in die die Daten des Teilnehmers kopiert werden sollen (Pointer Adresse wird mit ADR(Variablen_Name) ermittelt).
iLenData_IN
: Länge der Variable (ermitteln kann man die Länge mit SIZEOF(Variablen_Name))
ptData_OUT: Pointer auf die Variable, in die die Master Klemme zum Slave übertragen soll (Pointer Adresse wird mit ADR(Variablen_Name) ermittelt).
iLenData_OUT
: Länge der Variable (ermitteln kann man die Länge mit SIZEOF(Variablen_Name))

VAR_OUTPUT

bError
:BOOL;
bBusy         
:BOOL;
iErrorID
:E_KM6551_ERRORID;
iSignalQuality    :INT;
E_Addr
:E_KM6551_DIP;

Legende

b Error: Der Baustein hat einen Fehler.
bBusy: Solange bBusy gesetzt ist, also TRUE ist, ist der Baustein noch am Arbeiten, warten Sie bis bBusy auf FALSE wechselt.
iErrorID
: Enthält den Fehler-Code.
iSignalQuality: LQI Wert, Güte des empfangenden Signals, 100 sehr gute Übertragung 0 sehr schlechte Übertragung - der LQI Wert sollte möglichst hoch sein und minimal einen Wert von 10-20 haben. Sie können den LQI Wert durch bessere Antennen oder kürzere Kabel oder bessere Ausrichtung der Antennen verbessern.
E_Addr: liest die DIP Schalterstellung des Moduls KM6651-0000 aus und zeigt diese an.