FB_IEC870_5_104Master
Mit einer Instanz des Funktionsbausteins FB_IEC870_5_104Master kann in der TwinCAT SPS eine IEC60870-5-104 Zentralstation (Master) implementiert werden. Pro Instanz des Funktionsbausteins wird eine Verbindung zum Slave aufgebaut.
Der Funktionsbaustein besitzt folgende Aktionen:
- STARTDT (startet den Datenaustausch);
- STOPDT (stoppt den Datenaustausch);
Im Normalfall wird der Datenaustausch automatisch gestartet, nachdem die Verbindung hergestellt wurde. Standardmäßig ist der Funktionsbaustein auch so konfiguriert. Bei Bedarf kann der Datenaustausch durch einen Aufruf der Aktionen gestoppt, bzw. gestartet werden.
VAR_IN_OUT
VAR_IN_OUT
hTable : T_HAODBTable;
END_VAR
hTable: Applikationsobjekt-Datenbankhandle (Hash-Tabellenhandle). Das Tabellenhandle muss vor der Benutzung einmalig mit der Funktion F_iecCreateTableHnd initialisiert werden.
VAR_INPUT
VAR_INPUT
sSrvNetID : T_AmsNetID := '';
protPara : ST_IEC870_5_104ProtocolParams := ( bControlDT := TRUE,
bDTControlled := FALSE,
sRemoteHost := '',
nRemotePort := 2404 );
sysPara : ST_IEC870_5_101SystemParams := ( bEndOfInit := FALSE,
asduAddr := 11,
tSyncTimeut := T#0s );
acqPara : ST_IEC870_5_101AcquisitionParams;
pAOEntries : POINTER TO ARRAY[0..IEC870_ANYSIZE_ARRAY] OF ST_IEC870_5_101AODBEntry := 0;
cbAOEntries : UDINT := 0;
pInputs : POINTER TO ARRAY[0..IEC870_ANYSIZE_ARRAY] OF BYTE := 0;
cbInputs : UDINT := 0;
pOutputs : POINTER TO ARRAY[0..IEC870_ANYSIZE_ARRAY] OF BYTE := 0;
cbOutputs : UDINT := 0;
pMemory : POINTER TO ARRAY[0..IEC870_ANYSIZE_ARRAY] OF BYTE := 0;
cbMemory : UDINT := 0;
pData : POINTER TO ARRAY[0..IEC870_ANYSIZE_ARRAY] OF BYTE := 0;
cbData : UDINT := 0;
bEnable : BOOL := TRUE;
END_VAR
sSrvNetID: String mit der Netzwerkadresse des TwinCAT TCP/IP Connection Servers. Für den lokalen Rechner (default) kann auch ein Leerstring angegeben werden.
protPara: IEC60870-5-104-Protokolparameter.
sysPara: Systemparameter.
acqPara: Parameter für die zyklische Datenerfassung.
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 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_104ExSystemInterface;
eConnState : E_SocketConnectionState := eSOCKET_DISCONNECTED;
eDTState : E_IEC870_5_104DataTransferState := eIEC870_STOPDT;
END_VAR
system: System-Interface. Diese Variable dient anderen IEC-Applikationsfunktionen als Kommunikationsschnittstelle zum IEC-Gerät (hier: Zentralstation).
- 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.
eConnState: Status der TCP/IP-Verbindung zum Slave.
eDTState: Status des IEC60870-5-104-Datenaustauschs (STARTDT, STOPDT)
Beispiel in ST: IEC60870-5-104 Zentralstation
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken |
---|---|---|
TwinCAT v2.10.0 Build >= 1301 | PC oder CX (X86) | TcIEC870_5_104Master.Lib |