Instanz der IEC60870-5-101 Unterstation deklarieren und aufrufen
Hier können Sie die kompletten SPS-Sourcen herunterladen.
Die gesamte Funktionalität einer Unterstation ist im Funktionsbaustein FB_IEC870_5_101Slave gekapselt. Mit einer Instanz kann eine Verbindung zum Master aufgebaut werden. Das hSerial-Verbindungshandle der schnellen Task muss als VAR_IN_OUT-Variable an die Unterstation übergeben werden.
Fügen Sie im Deklarationsteil von P_MAIN_LowSpeed folgenden SPS-Code ein:
PROGRAM P_MAIN_LowSpeed
VAR
AODB : ARRAY[0..49] OF ST_IEC870_5_101AODBEntry;
init : BOOL := TRUE;
error : UDINT;
inputs AT%IB0 : ARRAY[0..2999] OF BYTE;
outputs AT%QB0 : ARRAY[0..2999] OF BYTE;
memory AT%MB0 : ARRAY[0..2999] OF BYTE;
data : ARRAY[0..2999] OF BYTE;
bEnable : BOOL := TRUE;
server : FB_IEC870_5_101Slave;
END_VAR
und im Programmteil wird die Instanz aufgerufen:
IF init THEN
init := FALSE;
...
ELSE
...
server( pInputs := ADR( inputs ), cbInputs := SIZEOF( inputs ), pOutputs := ADR( outputs ), cbOutputs := SIZEOF( outputs ), pMemory := ADR( memory ), cbMemory := SIZEOF( memory ), pData := ADR( data ), cbData := SIZEOF( data ), pAOEntries := ADR( AODB ), cbAOEntries := SIZEOF( AODB ), hSerial := P_SerialComm_HighSpeed.hSerial, (* serial link interface connection handle from fast task *) bEnable := bEnable );
...
END_IF