TIA HMI Panel überwachen

Zuviel Werbung?
-> Hier kostenlos registrieren
das stimmt was hast du geschrieben, für jede Tag/EA Feld muss ich ein eigenes Script implementieren, das was ich suche, weil ich möchte nicht viel Tags/EA Feld überwachen, nur Kritisch Tags muss ich überwachen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich greif nochmal meinen Vorschlag aus Post #5 auf und geb dir noch ein paar detallierte Tips.

PLC-Datentyp ertstellen der in etwa so aussieht: UDT_Buffereintrag

Code:
BenuterID          :  INT (oder String wenns ein Name ist)
DatumUhrzeit      : DATE_AND_TIME
WertVorher         : REAL/INT... (was auch immer)
WertJetzt            : REAL/INT... (was auch immer)

Einen FB der in etwa so aussieht:

Code:
//Input
Wert : REAL/INT... (was auch immer)
BenuterHMI : INT
//InOut
Buffer : ARRAY [1..*] OF UDT_Buffereintrag
//Out
AktIndex : INT
//Static
Index : INT
WertVorher: REAL/INT... (was auch immer)
//Temp
ArraySize : UDINT
ReturnValue : INT
CDT : DATE_AND_TIME

//Start des Codes...

#ArraySize := COUNT_OF_ELEMENTS(#Buffer); //Array Größe ermitteln

IF #Index > ArraySize OR #Index = 0 THEN //Index initialisieren
    #Index := 1;
END_IF;

#ReturnValue := READ_CLK(CDT := #CDT); //Uhrzeit lesen

IF #Wert <> #WertVorher THEN //Änderung erfasst
    Buffer[#Index].BenutzerID := #BenutzerHMI;
    Buffer[#Index].WertVorher := #WertVorher;
    Buffer[#Index].WertJetzt := #Wert;
    Buffer[#Index].DatumUhrzeit := #CDT:
END_IF;

#WertVorher := #Wert; //Aktuellen Wert als alten Wert ablegen
#AktIndex := #Index; //Aktuelle Zeile als OUT ausgeben

Hab grad kein TIA zur Hand, Syntax wird Fehler enthalten, aber so ungefähr müsste es gehen. Diesen FB müsstest du dann pro Wert einmal aufrufen.

Edit: Ich denke das mit CountOfElements funktioniert so doch nicht, der benötigt Variant als Parameter wenn ich mich nicht täusche...
 
Zuletzt bearbeitet:
Zurück
Oben