Funktionsbaustein FB_KM6551_MASTER_10BYTE
Dieser Funktionsbaustein übernimmt die Kommunikation zu den einzelnen Slaves. Es darf nur ein Baustein pro Slave aufgerufen werden. Es sind maximal 7 Slaves erlaubt, daher dürfen maximal 7 Bausteinen dieses Typs pro Master Klemme aufgerufen werden. Eine positive Flanke von bStart aktiviert die Kommunikation zu dem Slave der in der Variable iSlaveAddr hinterlegt ist. Das bBusy geht auf TRUE solange der Baustein aktive ist. Ist das bBusy wieder FALSE ist der Baustein fertig. 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ß genauso). Bevor der Baustein FB_KM6551_MASTER_10BYTE aufgerufen wird sollte der FB_KM6551_MAIN fertig sein (siehe bActive in diesem Baustein).

VAR_INPUT
bStart
:BOOL;
iSlaveAddr
:INT;
strLinkData
:KM6551_Data;
ptData_IN
:DWORD;
iLenData_IN :INT;
ptData_OUT
:DWORD;
iLenData_OUT :INT;
Legende
bStart: Positive Flanke aktiviert den Baustein.
iSlaveAddr: Hier wird die Slave Adresse des Slaves eingetragen (siehe DIP Schalter auf Ihrem Slave Modul)
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 KM6551-0000 aus und zeigt diese an.