TIA Logeintrag bei Variablenänderung

sps31

Level-1
Beiträge
109
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,
ich möchte eine Logdatei erstellen die folgendes macht.
Unser Kunde bekommt die Anlage welche normalerweise im Automatikbetrieb läuft, manchmal stellen die Arbeiter diese Anlage dann aber auf Hand um irgendetwas zu verfahren und vergessen vor Feierabend diese wider auf Automatik zu stellen.
Die Anlage ist Zeitgesteuert und würde nun nachts eigentlich verfahren was sie aber nicht tut das sie nicht im Automatik Modus steht. Das bemerken die Mitarbeiter und stellen die Maschine morgens wider auf Automatik und behaupten dann die Maschine wäre nachts einfach so nicht verfahren.
Das Ende vom Lied ist das sich der Kunde bei uns beschwert das die Anlage nachts nicht verfahren sei.

Gibt es die Möglichkeit einen Log zu erstellen wann sich bestimme Variablen zb 0.1 Automatik, 0.2 Handbetrieb geändert haben, die Uhrzeit und Datum reichen dabei aus, es soll eben nur für bestimmte Variablen Dokumentiert werden.

Was brauche ich dafür und wie richte ich dies ein.
USE:
TIA v13
7-1200
Basic Panel

lg sps31
 
Habs glaub ich schon gefunden,
unter Archive , und dann Archivvariablen, dann die Variable auswählen und als Erfassungsart dann "bei Änderung" auswählen.


kommt das hin oder ist das für was anderes?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... ich bin mir da jetzt nicht 100%ig sicher - aber ich glaube nicht, dass das deinen Zielvorstellungen entspricht.
Nach meiner Meinung kannst du das mit dem Panel in dieser Form gar nicht machen.
Wie wäre es, wenn du das in der SPS machst (in einer Art FIFO-Puffer) und den dann auf dem Panel anzeigst ...?

Gruß
Larry
 
FIFO Puffer wäre eine Idee, kann ich es vllt auch so machen dass ich es über eine Meldevariable mache also zb

Wenn Drehschalter = 0 dann Meldung Drehschalter=1
und dann im Meldefenster des Panels diese Veränderung als Meldung anzeigen die auch nur vom admin Quittiert werden kann.
Wäre es über diesen weg möglich mehrere solcher Meldungen zu sammeln, sprich wenn um 15:30 einmal der Drehregler bewegt wurde steht es dort als Meldung und wenn es um 16:30 nochmal passiert das es nicht überschrieben wird sondern quasi dann zwei Meldungen vorhanden sind oder müsste ich dann zB 4-5 Meldungen kreieren(mehr fallen an einem Tag eh nicht an) was dann quasi so wäre

if Drehschalter = 0 dann Meldungdrehschalter =1
ELSif Drehschalter =0 and Meldungdrehschalter =1 dann meldungdrehschalter2=1

usw

Edit sehe Grade das wenn man eine Meldung verwendet das ganze ja eh ein int sein muss da das HMI dort ja mit Bool Variablen nix anfagen kann, dann könnte ich ja auch einfach einen Zähler hochzählen sprich
if Drehschalter = 0 dann Meldungdrehschalter +1
aber können ja anhand der einzelnen Bits auch immernoch die Uhrzeiten gelogt werden??

hoffe du verstehst was ich meine

lg
 
Zuletzt bearbeitet:
Ja ... ich verstehe dich.
Ich meinte es so :
Du baust dir einen Baustein der ein Array of Struct (welche z.B. aus einem Bool und einem TimeOfDay besteht) verwaltet. Das ist z.B. 20 Einträge lang.
Ändert sich der Zustand deines Eingangs so werden alle gespeicherten Werte im Array um eins aufgerückt und an der Position 1 der aktuelle Zustand und der dazu gehörige Zeitstempel abgespeichert.
Vielleicht benutzt du zum Thema FIFO auch mal die Forums-Suche.
Ich würde so eine Funktion (der besseren Übersichtlichkeit wegen) allerdings in SCL erstellen - wäre das ggf. auch dein Weg ?

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ja so ähnlich habe ich mir das auch gedacht
nur das ich den Array nicht im Kopf hatte aber das wird ich verwenden.
Zum Thema FIFO werde ich mich dann auch mal Schlau machen.
Danke schonmal für deine Hilfe.
PS: Ich schreibe alles in SCL deswegen trifft sich das gut :)
lg
sps31
 
In SCL sollte das auch gut lösbar sein ...
Ansonsten melde dich einfach wieder ... (gerne auch mit deinem Programm-Ansatz)

Gruß
Larry
 
Ja hätte noch einen zweiten Lösungsansatz der uns sogar lieber wäre weiss aber nicht ob und wie das machbar wäre.

Ich behalte die Variable, und logge die Änderung mit Zeitstempel, on Screen wird diese Änderung auch angezeigt. Nun soll es eine ASCII Datei oÄ geben die auf der SD Karte abgespeichert wird auf der diese Meldung ebenfalls hinterlegt wird. Wenn die Variable nun ein zweites Mal geändert wird wird die erste Änderung von der zweiten ja nun quasi verdrängt, aber auch diese Änderung soll dann in der selben Datei mit Zeitstempel geschrieben werden. Sprich ich habe nur eine einige Variable deren Änderung nicht in der SPS selber festgehalten wird sondern immer sofort in eine andere Datei auf der SD Karte schreibt.

ist das so möglich und wenn ja wie ??
 
Zuviel Werbung?
-> Hier kostenlos registrieren
wir haben ein script, welchen wir bei jedem Button mitführen.
Dieser erstellt und schreibt in ein csv beim Triggern des Scripts.
Es wird ein Zeitstempel, Benutzer und die Beschreibung der Aktion gespeichert.

Nachteil: Bei jedem Button oder EA Feld muss das Script eingebunden werden.
 
Können die Basic Panel Trends aufzeichnen? Dann würde ich eine Variable trennen die 1/2/3 Auto/Hand/Uhr etc. als trend auf die SD Karte aufzeichnet.

mfG René
 
Zurück
Oben