ST_IEC870_5_101AcquisitionParams
Ab der Produktversion:
- TwinCAT PLC Library IEC60870-5-104 Zentralstation v1.0.0 und höher;
- TwinCAT PLC Library IEC60870-5-101 Zentralstation v1.0.1 und höher;
Konfigurationsparameter für die zyklische Datenerfassung. Die Initialisierungssequence, Kommandos, die im arrInitSeq-Array konfiguriert wurden, werden einmalig nach dem Empfang von M_EI_NA_1 (end of initialisation) oder nach der Herstellung der Kommunikationsverbindung ausgeführt. Danach beginnt die Ausführung der zyklischen Befehle, die über die Strukturparameter: testCmd, clockSync, arrGenro, arrCoro odergenCmd konfiguriert wurden.
TYPE ST_IEC870_5_101AcquisitionParams :
STRUCT
(* Initialization sequence steps *)
arrInitSeq : ARRAY[IEC870_MIN_ISTEP..IEC870_MAX_ISTEP] OF E_IEC870_5_101InitSeqStep :=
eIEC870_ISTEP_TEST, (* Send test command *)
eIEC870_ISTEP_CLOCK, (* Send clock synchronization command *)
eIEC870_ISTEP_GENRO, (* Send general interrogation command *)
eIEC870_ISTEP_CORO, (* Send counter interrogation command *)
eIEC870_ISTEP_UNUSED, (* Reserved *)
eIEC870_ISTEP_UNUSED, (* Reserved *)
eIEC870_ISTEP_UNUSED; (* Reserved *)(* Test command polling settings *)
testCmd : ST_IEC870_5_101TestPollParams := (
asduAddr := IEC870_ASDUADDR_SYSPARA,
tPollCycle := T#60s,
bEnable := TRUE );
(* Clock synchronisation polling settings *)
clockSync : ST_IEC870_5_101ClockPollParams := (
asduAddr := IEC870_ASDUADDR_SYSPARA,
tPollCycle := T#60s,
bEnable := TRUE );
(* Station interrogation polling settings *)
arrGenro : ARRAY[0..16] OF ST_IEC870_5_101GenroPollParams := (
asduAddr := IEC870_ASDUADDR_SYSPARA,
tPollCycle := T#60s,
eQOI := eIEC870_QOI_INROGEN,
bEnable := TRUE );
(* Counter interrogation polling settings *)
arrCoro : ARRAY[0..4] OF ST_IEC870_5_101CoroPollParams := (
asduAddr := IEC870_ASDUADDR_SYSPARA,
tPollCycle := T#60s,
eRQT := eIEC870_RQT_REQCOGEN,
eFRZ := eIEC870_FRZ_READ,
bEnable := TRUE );
(* General command acquisition settings *)
genCmd : ST_IEC870_5_101GenCmdPollParams := (
tPollCycle := T#1h,
bEnable := FALSE );
(* Delay command acquisition settings *)
delayCmd : ST_IEC870_5_101DelayPollParams := (
tDelay := T#5s );
eAODBType : E_IEC870_5_101AODBType := eIEC870_AODB_STATIC;
END_STRUCT
END_TYPE
arrInitSeq: Initialisierungssequence. Die Initialisierungssequence wird immer nach dem Empfang von M_EI_NA_1 (end of initialisation) einmalig ausgeführt.
testCmd: Parameter für zyklische Testbefehle. Standardwert: Ein Testkommando alle 60s.
clockSync: Parameter für zyklische Uhrzeitsynchronisationsbefehle. Standardwert: Uhrzeitsynchronisation alle 60s.
arrGenro: Parameter für zyklische Stationsabfragebefehle. Es können Stationsabfragen von bis zu 17 Datenpunktgruppen konfiguriert werden. Standardwert: Eine Stationsabfrage der Gruppe 'Allgemein' alle 60s.
arrCoro: Parameter für zyklische Zählerabfragebefehle. Es können Zählerabfragen von bis zu 5 Zählergruppen konfiguriert werden. Standardwert: Eine Zählerabfrage der Gruppe Allgemein alle 60s.
genCmd: Parameter für zyklische Übertragung der Datenpunkte in Steuerungsrichtung (Einzelbefehl, Doppelbefehl, Sollwerte usw.). Standardwert: Die Befehle werden alle 60min. übertragen.
delayCmd: Parameter für die Verzögerung des nächsten Initialisierungsschrittes während der Ausführung der Initialisierungssequence. Standardwert: Der nächste Initialisierungsschritt wird um 5s verzögert.
eAODBType: Applikationsdatenbank-Typ. Dieser Parameter legt fest wie die Datenpunkte in der Applikationsdatenbank abgespeichert werden.
Beispiel in ST:
Im folgenden Programmausschnitt wird die zyklische Datenerfassung wie folgt konfiguriert: Alle Initialisierungsschritte werden deaktiviert. Das zyklische Testkommando und Uhrzeitsynchronisationskommando werden auch deaktiviert. Zusätzlich zu der Standard-Stationsabfrage wird noch eine weitere Stationsabfrage der Gruppe 1 alle 100s konfiguriert. Außerdem wird zu der Standard-Zählerabfrage eine Zählerabfrage (Umspeichern) der Zählergruppe 1 alle 200s konfiguriert.
PROGRAM P_AcquisitionConfig
VAR_IN_OUT
acqPara : ST_IEC870_5_101AcquisitionParams;
END_VAR
acqPara.arrInitSeq[0] := eIEC870_ISTEP_UNUSED;
acqPara.arrInitSeq[1] := eIEC870_ISTEP_UNUSED;
acqPara.arrInitSeq[2] := eIEC870_ISTEP_UNUSED;
acqPara.arrInitSeq[3] := eIEC870_ISTEP_UNUSED;
acqPara.arrInitSeq[4] := eIEC870_ISTEP_UNUSED;
acqPara.testCmd.bEnable := FALSE;
acqPara.clockSync.bEnable := FALSE;
acqPara.arrGenro[1].asduAddr := IEC870_ASDUADDR_SYSPARA;
acqPara.arrGenro[1].eQOI := eIEC870_QOI_INRO1;
acqPara.arrGenro[1].tPollCycle := T#100s;
acqPara.arrGenro[1].bEnable := TRUE;
acqPara.arrCoro[1].asduAddr := IEC870_ASDUADDR_SYSPARA;
acqPara.arrCoro[1].eFRZ := eIEC870_FRZ_FREEZE;
acqPara.arrCoro[1].eRQT := eIEC870_RQT_REQCO1;
acqpara.arrCoro[1].tPollCycle := T#200s;
acqPara.arrCoro[1].bEnable := TRUE;
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken |
---|---|---|
TwinCAT v2.10.0 Build >= 1301 | PC oder CX (x86) | TcIEC870_5_101.Lib |