Zentralstation Minimal (Master)
Einfache Zentralstation-Applikation die das TwinCAT IEC 60870-5-104 High-Level Interface verwendet.
Download TwinCAT XAE Project (*.zip): MiniMasterSample104.zip
Im Beispielprojekt sind folgende Stationsparameter für die Zentralstation eingestellt:
- Server host address (IP-Adresse der Unterstation): 127.0.0.1 (Sie müssen mindestens diesen Parameter an Ihre Zielplattform anpassen!).
- Server port address (Portadresse der Unterstation): 2404.
- k: 12.
- w: 8.
- t0: 30s.
- t1: 15s.
- t2: 10s.
- t3: 20s.
- Cause of transfer size: 2 octets (inclusive originator address).
- Common ASDU address size: 2 octets.
- Information object address size: 3 octets.
- Originator address: 1.
- Common ASDU address: 7.
- Max. APDU length: 253.
Datenpunktkonfiguration (sie sollte gleich sein mit der Datenpunktkonfiguration der Unterstationen):
- Single point information: M_SP_NA_1 (IOA := 100).
- Single command: C_SC_NA_1 (IOA := 10).
Initialisierungssequenz, die nach dem Verbindungsaufbau einmalig/automatisch ausgeführt wird:
- Testbefehl (C_TS_TA_1).
- Uhrzeitsynchronisationsbefehl (C_CS_NA_1).
- Generalabfragebefehl (C_IC_NA_1) der Gruppe: Allgemein (eIEC870_QOI_INROGEN).
- Zählerabfragebefehl (C_CI_NA_1) der Gruppe: Allgemein (eIEC870_RQT_REQCOGEN). Zählerabfrage Mode C.
Beispielimplementierung folgender Dienste:
- Testbefehl (C_TS_NA_1) alle 60 Sekunden.
- Uhrzeitsynchronisationsbefehl (C_CS_NA_1) alle 60 Sekunden.
- Generalabfragebefehl (C_IC_NA_1) der Gruppe: Allgemein (eIEC870_QOI_INROGEN) alle 60 Sekunden.
- Zählerabfragebefehl (C_CI_NA_1) der Gruppe: Allgemein (eIEC870_RQT_REQCOGEN) alle 60 Sekunden. Zählerabfrage Mode C.
- Bei Wertänderung an der bSCS -Variablen wird der Einzelbefehl (C_SC_NA_1) gesendet (direkte Kommandoausführung)
- Beim Empfang spontaner Daten vom Typ (M_SP_NA_1, IOA := 100) wird der ON/OFF-Wert in die SPS-Variable bSPI gemappt..
Folgende Tabelle beschreibt kurz die Hauptkomponenten des Projekts:
Komponente | Typ | Beschreibung |
---|---|---|
MAIN | PRG | Dieses Programmteil implementiert das Fernwirkprotokoll (langsame Task). |
fbClient | FB_IEC870_5_104Master (FB) | Implementiert die Zentralstation. Eine Instanz dieses Bausteins kann nur mit einer Unterstation kommunizieren. Für jede weitere Unterstation mit der kommuniziert werden soll wird eine weitere Instanz dieses Funktionsbausteins benötigt. |
bSPI | BOOL | Der empfangene ON/OFF-Wert wird in diese SPS-Variable direkt an die lokierte Merkeradresse: AT%MX0.0 gemappt. |
bSCS | BOOL | Der zu sendende ON/OFF-Wert wird direkt von der an der Merkeradresse AT%MX1.5 dieser lokierten SPS-Variablen gemappt. |
AODB | ARRAY OF ST_IEC870_5_101AODBEntry (STRUCT) | Applikationsobjektdatenbank. Es ist eine Array-Variable. Für jeden Datenpunkt wird ein Arrayelement benötigt. |
hTable | T_HAODBTable (STRUCT) | Applikationsobjektdatenbank-Handle. Mit Hilfe dieser Variablen wird auf die Applikationsobjektdatenbank zugegriffen und nie direkt auf die einzelnen Arrayelemente. |
F_iecCreateTableHnd | FUNCTION | Im Initialisierungsschritt werden alle Arrayelemente von AODB mit diesem Funktionsaufruf einmalig initialisiert. Beim Erfolg liefert dieser Funktionsaufruf das Handle. |
F_iecAddTableEntry | FUNCTION | Im Initialisierungsschritt werden die einzelnen Datenpunkte der Station mit diesem Funktionsaufruf einmalig konfiguriert. |