ST_IEC870_5_101AcquisitionParams

Ab der Produktversion:

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)
CX (ARM)

TcIEC870_5_101.Lib
( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib;  werden automatisch eingebunden )