Download: Unterstation (slave, unbalanced)
Einfache Unterstation-Applikation die das TwinCAT IEC 60870-5-101 Low-Level Interface verwendet. Diese Beispielapplikation kann mit einer Zentralstation über die RS232-Schnittstelle kommunizieren.
Download TwinCAT XAE Project (*.zip): LowLevelSlaveSample101.zip
Im Beispielprojekt sind folgende Stationsparameter für die Unterstation eingestellt:
- Standard PC interface: COM1.
- Baudrate: 19200 Baud.
- Link address: 220.
- Link address size: 1 octet.
- Cause of transfer size: 1 octet.
- Originator address: 0 (not used).
- Common ASDU address: 7.
- Common ASDU address size: 1 octet.
- Information object address size: 2 octets.
- Link mode: Unbalanced.
Datenpunktkonfiguration (sie sollte gleich sein mit der Datenpunktkonfiguration der Zentralstation):
- Single point information: M_SP_NA_1 (IOA := 100), M_SP_TA_1(IOA := 101), M_SP_TB_1(IOA := 102).
- Double point information: M_DP_NA_1 (IOA := 200).
- Regulating step value: M_ST_NA_1 (IOA := 300).
- Bitstring value: M_BO_NA_1 (IOA := 400).
- Measured value, normalized value: M_ME_NA_1 (IOA := 500).
- Measured value, scaled value: M_ME_NB_1 (IOA := 600).
- Measured value, short floating point value: M_ME_NC_1 (IOA := 700).
- Binary counter value: M_IT_NA_1 (IOA := 800), M_IT_TA_1 (IOA := 801), M_IT_TB_1 (IOA := 802).
- Single command: C_SC_NA_1 (IOA := 10).
- Double command: C_DC_NA_1 (IOA := 20).
- Regulating step command: C_RC_NA_1 (IOA := 30).
- Bitstring command: C_BO_NA_1 (IOA := 40).
- Setpoint command, normalized value: C_SE_NA_1 (IOA := 50).
- Setpoint command, scaled value: C_SE_NB_1 (IOA := 60).
- Setpoint command, short floating point value: C_SE_NC_1 (IOA := 70).
Beispielimplementierung folgender Dienste:
- Testbefehl (C_TS_NA_1).
- Uhrzeitsynchronisationsbefehl (C_CS_NA_1).
- Generalabfragebefehl (C_IC_NA_1) der Gruppe: Allgemein (eIEC870_QOI_INROGEN).
- Zählerabfragebefehl (C_IC_NA_1) der Gruppe: Allgemein (eIEC870_RQT_REQCOGEN), Mode A. Die Zählwerte werden lokal alle 60 Sekunden umgespeichert.
- Befehlsausführung einiger Befehle (siehe obere Datenpunktkonfiguration).
- Ende der Initialisierung (M_EI_NA_1) wird einmalig zur Zentralstation gesendet (nach dem die Verbindung hergestellt wurde).
- Zyklische Datenübertragung alle 60 Sekunden.
- Simulation und Übertragung der spontanen Daten alle 60 Sekunden wenn die Variable bSimulate auf TRUE gesetzt wurde.
Folgende Tabelle beschreibt kurz die Hauptkomponenten des Projekts:
Komponente | Typ | Beschreibung |
---|---|---|
P_MAIN_LowSpeed | PRG | Dieses Programmteil implementiert das Fernwirkprotokoll (langsame Task). |
P_SerialComm_HighSpeed | PRG | Dieses Programmteil implementiert die TwinCAT Hintergrundkommunikation über die seriellen Schnittstellen des PCs (schnelle Task). |
fbServer | FB_IEC870_5_101S (FB) | Implementiert die Unterstation. Eine Instanz dieses Bausteins kann nur mit einer Zentralstation kommunizieren. Für jede weitere Zentralstation mit der kommuniziert werden soll wird eine weitere Instanz dieses Funktionsbausteins benötigt. |
fbServices | FB_IEC870_5_101SServices ( FB) | Beinhaltet eine einfache Implementierung einiger Dienste wie z.B. Generalabfrage, Uhrzeitsynchronisation, Testbefehle usw. |
stProcData | ST_IEC870_5_101SProcData (STRUCT) | Hier befinden sich die empfangenen und die zu sendenden Prozessdaten die ständig aktualisiert werden. |
sysPara | ST_IEC870_5_101SSysPara (STRUCT) | Konfiguration der Systemparameter der Unterstation und der implementierten Dienste. |
fbLog | FB_IEC870_DebugLogFifo (FB) | Ein einfacher Logpuffer für Debugzwecke/Fehlersuche. |