IEC60870-5-104-Slave Zyklisch senden

Mattin81

Level-1
Beiträge
96
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
ich hab da nochmal ne Frage zur -104er Slave Unterstation...

Wenn ich normierte Messwerte senden möchte und zwar zyklisch (alle 10s zum Beispiel) so definiere ich den Teil ja als:

Code:
initError := F_iecInitAOEntry( M_ME_NC_1, 700, IEC870_GRP_INROGEN OR IEC870_GRP_PERCYC, 1, MAP_AREA_MEMORY, 700, 0, AODB[4] );

dann schickt er die Daten auch zyklisch raus, aber logischer weise immer nur den, der einmal rein geschrieben wurde. Wenn ich nun einen anderen Wert hinein schreibe, so sendet er die Daten auch sofort wieder raus. Was jedoch nicht erwünscht ist.

Wie kann ich denn Werte da rein schreiben, ohne dass der die immer sofort sendet? Sondern dass er nur zyklisch sendet und dann den aktuellen wert...

Hoffe, ihr habt mich verstanden :)
Danke schon mal für eure hilfe und Gruß

martin
 
So also ich kann die Werte nun konstant rein schreiben und dnan zyklisch oder auf Abfrage raus schicken.

Aber leider schneidet er bei den Messwerten mit Zeitstempel die Zeit ab...

Code:
initError := F_iecInitAOEntry( M_ME_TF_1, 203, IEC870_GRP_SPONTOFF OR IEC870_GRP_PERCYC, 1, MAP_AREA_MEMORY, 704, 0, AODB[5] );
weiß jemand, warum er die abschneidet und wie ich die wieder bekommen kann?

Danke und Gruß Martin

EDIT: Das scheint normal zu sein und ist wohl laut IEC so erwünscht... Danke trotzdem fürs lesen... :)
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo das thema ist schon lange her aber ich habe das selbe Problem
Ich möchte vom Slave(Unterstation) zum Master Daten übertragen jedoch nur alle 5s und nicht bei Änderungen.
Meine Einstellungen Slave
initError := F_iecInitAOEntry( M_ME_TF_1, 157129 ,IEC870_GRP_SPONTOFF OR IEC870_GRP_PERCYC, 1, MAP_AREA_MEMORY, 200 , 0, AODB[ 200 ] );

Beim Slave habe ich noch folgende Systemparameter EIngestellt:
server.sysPara.asduAddr := 224;
server.sysPara.bUsePCTime := TRUE;
server.sysPara.bSyncTime := TRUE;
server.sysPara.bSyncPCTime := FALSE;
server.sysPara.bEndOfInit := TRUE;
server.sysPara.bPerCyclic := TRUE;
server.sysPara.tPerCyclicBase := T#5s;
server.sysPara.bBackScan := FALSE;
server.sysPara.tBackScanCycle := T#30s;
server.sysPara.bPerFRZ := TRUE;
server.sysPara.tPerFRZCycle := T#15s;
server.sysPara.dbgMode := IEC870_DEBUGMODE_ASDU(* OR IEC870_DEBUGMODE_DEVSTATE*);

Einstellungen MAster
initError := F_iecAddTableEntry( M_ME_TF_1, asduAddr, 157129 , 0,0, MAP_AREA_MEMORY, 200 ,0, 0, hTable );

Leider bekomme ich so garkeine Übertragung hin füge ich aber INROGEN als Ursache hinzu dann erden die Daten bei Jeder Änderung geschickt!
Dies möchte ich aber nicht.
Jemand eine Idee Danke und Gruß
 
Zuletzt bearbeitet:
Zurück
Oben