Zyklische Datenübertragung
Hier können Sie die kompletten SPS-Sourcen entpacken: TcPlcLibIEC870_5_101Slave_TutorialSample.zip
Die zyklische Datenübertragung wird ähnlich wie die Hintergrundabfrage von der Unterstation eingeleitet und ist unabhängig von anderen Befehlen aus der Zentralstation. Durch die zyklische Datenübertragung werden die Prozessdaten der Zentralstation kontinuierlich aufgefrischt. Bei den Prozessdaten handelt es sich meistens um Messwerte, die in regulären Zeitabständen erfasst werden. Die zyklische Datenübertragung wird oft benutzt um nicht-zeitkritische, oder sich nicht so schnell ändernde Prozessdaten zu überwachen (z.B. ein Temperatursensor). Die zyklischen/periodischen Daten werden zur Zentralstation mit der Übertragungsursache <1> Periodic/Cyclic übertragen. Die zulässigen ASDU-Typkennungen sind in der Kompatibilitätsliste der Station aufgeführt (Tabelle Typkennung <-> Übertragungsursache). Die zyklische Datenübertragung kann über die Systemparameter und die Konfigurationsparameter der Applikationsobjekte konfiguriert werden.
Konfiguration der Systemparameter:
bPerCyclic : BOOL := TRUE;
tPerCyclicBase : TIME := T#60s;
Der erste Parameter aktiviert die zyklische Übertragung. Der zweite Parameter ist die Basiszeit der zyklischen/periodischen Datenübertragung (hier z.B. 60 Sekunden).
Konfiguration der Applikationsobjekte:
- IEC870_GRP_PERCYC-Groupparameter muss gesetzt werden;
- Der Multiplikator-Parameter (multiplier) der F_iecInitAOEntry-Funktion muss auf einen Wert <> Null gesetzt werden. Beispiel: Bei einem Multiplikator = 2 und Basiszeit von 60 Sekunden werden die die Prozessdaten des Applikationsobjekts alle 120 Sekunden zur Zentralstation gesendet;
Beispielkonfiguration für einen Messwert der zyklisch alle 120 Sekunden zur Zentralstation übertragen werden soll (measured value, normalized value without time tag, M_ME_NA_1).
F_iecInitAOEntry( M_ME_NA_1, 222, IEC870_GRP_INROGEN OR IEC870_GRP_PERCYC, 2, MAP_AREA_MEMORY, 6, 0, AODB[2] );