FB_IEC870_5_104TProtocol
Ab der Produktversion: TwinCAT PLC Library IEC870-5-104 Unterstation v2.0.6 und höher.
Der Kommunikationsbaustein FB_IEC870_5_104TProtocol implementiert die ACPI-Funktionen der IEC60870-5-104-Norm ( Start/Stop-Data Transfer, Test-Frames, Send/Receive Frame-Counter usw.). Beim Protokollfehler wird ein entsprechender Fehlercode am Ausgang des Funktionsbausteins ausgegeben und die Datenübertragung unterbrochen. Um den Datenaustausch erneut aktivieren zu können, muss die Aktion INIT aufgerufen werden. Es werden dabei z.B. die Framezähler, Sende- und der TX/RX-Datenpuffer zurückgesetzt. Der Kommunikationsbaustein erwartet eine TX/RX-Datenpuffervariable. Diese Variable muss per VAR_IN_OUT an den Baustein übergeben werden.
Der Funktionsbaustein besitzt folgende Aktionen:
- INIT (Führt eine Initialisierung des Funktionsbausteins durch);
- STARTDT (Sendet ein Start-Data-Transfer-Frame an den Kommunikationspartner);
- STOPDT (Sendet Stop-Data-Transfer-Frame an den Kommunikationspartner);
Verbindungsaufbau
Mit einem gesonderten Baustein z.B. FB_ServerClientConnection muss die TCP/IP-Verbindung auf- und abgebaut werden. Die SPS-Applikation kann dadurch selber auf mögliche Protokollfehler reagieren und die Verbindung schließen oder z.B. den Dienst Process-Reset implementieren. Dieser Baustein liefert am Ausgang ein Verbindungshandle, den Verbindungsstatus und Informationen über Fehler die beim Verbindungsaufbau/-abbau aufgetreten sind.
Das Verbindungshandle wird von dem Kommunikationsbaustein benötigt.
Protokollkonfiguration
Der Kommunikationsbaustein besitzt eine protPara-Variable vom strukturierten Typ. Über diese Variable können Protokollparameter z.B. iK, iW, Start/Stop-Datentransfer-Verhalten usw. konfiguriert werden.
VAR_IN_OUT
VAR_IN_OUT
buffer : ST_IEC870_5_101TBuffer; (* TX/RX data buffer *)
END_VAR
buffer: TX/RX Datenpuffer.
VAR_INPUT
VAR_INPUT
sSrvNetID : T_AmsNetID; (* TwinCAT TCP/IP Connection Server netID *)
hSocket : T_HSOCKET; (* TCP/IP socket connection handle *)
protPara : ST_IEC870_5_104ProtocolParams; (* IEC60870-5-104 protocol parameters *)
bOutDbg : BOOL; (* Enable/disable debug output *)
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.
hSocket: Das TCP/IP-Verbindungshandle des Kommunikationspartners dessen Daten empfangen oder gesendet werden sollen.
protPara: IEC60870-5-104-Protokollparameter.
bOutDbg:: Aktiviert/deaktiviert die Debug-Ausgabe der TCP/IP-Frames in der TwinCAT System Manager-Loggeransicht.
VAR_OUTPUT
VAR_OUTPUT
bError : BOOL;
nErrID : UDINT;
eDTState : E_IEC870_5_104DataTransferState := eIEC870_STOPDT; (* Data transfer state *)
ND_VAR
bError: Dieser Ausgang wird auf TRUE gesetzt, sobald ein Fehler bei der Datenübertragung aufgetreten ist.
nErrID: Liefert bei einem gesetzten bError-Ausgang einen Fehlercode;
eDTState: Status des IEC60870-5-104-Datenaustauschs (STARTDT, STOPDT).
Beispiel:
Beispielprojekte: IEC60870-5-104 Transport Interface
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken |
---|---|---|
TwinCAT v2.10.0 Build >= 1301 | PC oder CX (x86) | TcIEC870_5_104.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib; TcIEC870_5_101.Lib; werden automatisch eingebunden ) |