FB_IEC870_5_104Slave
Mit einer Instanz des Funktionsbausteins FB_IEC870_5_104Slave kann in der TwinCAT SPS eine IEC60870-5-104 Unterstation (Slave) implementiert werden. Eine Instanz des Funktionsbausteins kann nur eine Verbindung zu einem Master aufbauen.
Erstellen von redundanten Systemen Wenn Sie redundante Systeme mit zwei oder mehr Verbindungen zum Master realisieren wollen, benutzen Sie bitte den FB_IEC870_5_104SlaveGrp-Funktionsbaustein. |
VAR_IN_OUT
VAR_IN_OUT
hServer : T_HSERVER;
ND_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; (* IEC60870-5-104 protocol communication params *)
sysPara : ST_IEC870_5_101SystemParams; (* IEC60870-5-104 slave system params *)
pAOEntries : POINTER TO ARRAY[0..IEC870_ANYSIZE_ARRAY] OF ST_IEC870_5_101AODBEntry; (* Pointer to the first element of application database object array *)
cbAOEntries : UDINT; (* Byte size (length) of application database object array *)
pInputs : POINTER TO ARRAY[0..IEC870_ANYSIZE_ARRAY] OF BYTE;
cbInputs : UDINT;
pOutputs : POINTER TO ARRAY[0..IEC870_ANYSIZE_ARRAY] OF BYTE;
cbOutputs : UDINT;
pMemory : POINTER TO ARRAY[0..IEC870_ANYSIZE_ARRAY] OF BYTE;
cbMemory : UDINT;
pData : POINTER TO ARRAY[0..IEC870_ANYSIZE_ARRAY] OF BYTE;
cbData : UDINT;
bEnable : BOOL := TRUE;
END_VAR
protPara: IEC60870-5-104-Protokolparameter.
sysPara: Systemparameter.
pAOEntries: Adresse der 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.
bEnable : Aktiviert/Deaktiviert den Funktionsbaustein (Kommunikation und Verbindung).
VAR_OUTPUT
VAR_OUTPUT
system : ST_IEC870_5_104SystemInterface;
eConnState : E_SocketConnectionState := eSOCKET_DISCONNECTED; (* TCP/IP connection state *)
eDTState : E_IEC870_5_104DataTransferState := eIEC870_STOPDT; (* IEC60870-5-104 data transfer state *)
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 registrieten Fehler können von der SPS-Applikation ausgelesen und ausgewertet werden.
eConnState: Status der TCP/IP-Verbindung zum Master.
eDTState: Status des IEC60870-5-104-Datenaustauschs (STARTDT, STOPDT)
Beispiel:
Beispielprojekte: IEC60870-5-104 Unterstation
Aufruf in FUP:
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_104Slave;
bEnable : BOOL := TRUE;
protPara : ST_IEC870_5_104ProtocolParams;
sysPara : ST_IEC870_5_101SystemParams := ( asduAddr := 7 );
eConnState : E_SocketConnectionState;
eDTState : E_IEC870_5_104DataTransferState;
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 Windows Application Log geschrieben.
REPEAT
server.system.device.errors.RemoveError( getError=>iecError, bOk=>bError );
IF bError THEN
ADSLOGSTR( ADSLOG_MSGTYPE_ERROR OR ADSLOG_MSGTYPE_LOG, 'IEC60870-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 |
---|---|---|
TwinCAT v2.9.0 Build >= 1030 | PC or CX (x86) | TcIEC870_5_104Slave.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcpIp.Lib; TcUtilities.Lib; TcSocketHelper.Lib; TcIEC870_5_104.Lib, TcIEC870_5_101.Lib werden automatisch eingebunden |
TwinCAT v2.10.0 Build >= 1301 | CX (ARM) |