FB_IEC870_5_104SlaveGrp
Mit einer Instanz des Funktionsbausteins FB_IEC870_5_104SlaveGrp kann in der TwinCAT SPS eine IEC 60870-5-104 Unterstation (Slave, High-Level) implementiert werden. Mit einer Instanz können einfache Systeme mit einer Verbindung oder Systeme mit mehreren Verbindungen zum Master realisiert werden (redundantes System).
Die maximale Anzahl der Verbindungen kann durch die Anzahl der ST_IEC870_5_104ServerConnection-Arrayelemente festgelegt werden. Die Adresse der Arrayvariablen und die Bytegröße der Arrayvariablen müssen dann an die Instanz des FB_IEC870_5_104SlaveGrp-Funktionsbausteins übergeben werden.
VAR_IN_OUT
VAR_IN_OUT
hServer : T_HSERVER;
END_VAR
hServer: TCP/IP Server-Handle. Die internen Parameter der Server-Handle-Variable müssen vorher mit der Funktion F_CreateServerHnd initialisiert werden.
VAR_INPUT
VAR_INPUT
protPara : ST_IEC870_5_104ProtocolParams;
sysPara : ST_IEC870_5_101SystemParams;
pAOEntries : POINTER TO ARRAY[0..IEC870_ANYSIZE_ARRAY] OF ST_IEC870_5_101AODBEntry := 0;
cbAOEntries : UDINT := 0;
pInputs : PVOID := 0;
cbInputs : UDINT := 0;
pOutputs : PVOID := 0;
cbOutputs : UDINT := 0;
pMemory : PVOID := 0;
cbMemory : UDINT := 0;
pData : PVOID := 0;
cbData : UDINT := 0;
pConnections : POINTER TO ARRAY[0..IEC870_ANYSIZE_ARRAY] OF ST_IEC870_5_104ServerConnection := 0;
cbConnections : UDINT := 0;
bEnable : BOOL := TRUE;
END_VAR
protPara: IEC 60870-5-104-Protokolparameter.
sysPara: Systemparameter.
pAOEntries: Adresse der ersten Applikationsobjekt-Datenbankvariablen.
cbAOEntries: Bytegröße der Applikationsobjekt-Datenbankvariablen.
pInputs: Adresse des SPS-Prozessdatenbereichs der Eingänge.
cbInputs: Bytegröße des SPS-Prozessdatenbereichs der Eingänge.
pOutputs: Adresse des SPS-Prozessdatenbereichs der Ausgänge.
cbOutputs: Bytegröße des SPS-Prozessdatenbereichs der Ausgänge.
pMamory: Adresse des SPS-Prozessdatenbereichs der Merker.
cbMamory: Bytegröße des SPS-Prozessdatenbereichs der Merker.
pData: Adresse des SPS-Datenbereichs.
cbData: Bytegröße des SPS-Datenbereichs.
pConnections: Adresse der ST_IEC870_5_104ServerConnection-Arrayvariablen.
cbConnections: Bytegröße der ST_IEC870_5_104ServerConnection-Arrayvariablen.
bEnable: Aktiviert/Deaktiviert den Funktionsbaustein (Kommunikation und Verbindungen).
Die Adressen können mit dem ADR- und die Bytegrößen mit dem SIZEOF-Operator ermittelt werden.
VAR_OUTPUT
VAR_OUTPUT
system : ST_IEC870_5_104SystemInterface;
status : ST_IEC870_5_104GrpStatus;
END_VAR
system: System-Interface. Diese Variable dient anderen IEC-Applikationsfunktionen als Kommunikationsschnittstelle zum IEC-Gerät (hier: Unterstation).
- Membervariable system.device wird z.B. von der F_iecSetAOQuality-Funktion als VAR_IN_OUT-Parameter erwartet.
- Membervariable system.device.errors ist ein Gerätefehler-Fifo. Die registrierten Fehler können von der SPS-Applikation ausgelesen und ausgewertet werden.
status: Verbindungs- und Datentransfer-Statusinformationen.
Beispiel (High-Level Interface):
Weitere Beispiele:
Aufruf in FUP mit max. 2 Master-Verbindungen:
PROGRAM test
VAR
AODB : ARRAY[0..49] OF ST_IEC870_5_101AODBEntry;
inputs AT%IB0 : ARRAY[0..999] OF BYTE;
outputs AT%QB0 : ARRAY[0..999] OF BYTE;
memory AT%MB0 : ARRAY[0..999] OF BYTE;
data : ARRAY[0..999] OF BYTE;
hServer : T_HSERVER;
server : FB_IEC870_5_104SlaveGrp;
connections : ARRAY[0..1] OF ST_IEC870_5_104ServerConnection; (* Two master connections *)
bEnable : BOOL := TRUE;
protPara : ST_IEC870_5_104ProtocolParams;
sysPara : ST_IEC870_5_101SystemParams := ( asduAddr := 7 );
status : ST_IEC870_5_104GrpStatus;
bError : BOOL;
iecError : ST_IEC870_5_101ErrorFifoEntry;
END_VAR
Im folgenden ST-Beispiel wird der Gerätefehler-Fifo zyklisch ausgelesen und die registrierten Fehler ins TwinCAT XAE->"Error List"-Fenster geschrieben.
REPEAT
server.system.device.errors.RemoveError( getError=>iecError, bOk=>bError );
IF bError THEN
ADSLOGSTR( ADSLOG_MSGTYPE_ERROR OR ADSLOG_MSGTYPE_LOG, 'IEC 60870-5-104 slave error: 0x%s',
DWORD_TO_HEXSTR( iecError.nErrId, 8, FALSE) );
END_IF
UNTIL NOT bError
END_REPEAT
Voraussetzungen
Entwicklungsumgebung |
Zielplattform |
Einzubindende SPS Bibliotheken (Kategoriegruppe) |
---|---|---|
TwinCAT v3.1.4012.0 |
PC oder CX (x86, x64, ARM) |
Tc2_IEC60870_5_10x (Communication->IEC60870) |