TIA Siemns HMI - Wertänderung

Beiträge
53
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

in der Siemens HMI gibt es die Möglichkeit bei einer Wertänderung z.B. eines Bits ein Ereignis auszuführen. Dieses Ereignis wird sowohl bei einerÄnderung von 0->1 als auch von 1->0 durchgeführt.

Gibt es in der Siemens-HMI ein Möglichkeit/Einstellmöglichkeiten dies nur bei einem Wechsel von 0->1 durchführen zu lassen?

Vielen Dank für eure Hilfe.
 
Hallo,

ich sehe zwei Möglichkeiten:
Entweder, Du benutzt ein Panel/ein HMI, welches Scripte unterstützt und Du rufst bei Wertänderung das Script auf. Dort kannst Du dann feststellen, welcher Wechsel gerade stattgefunden hat.
Oder Du schreibst bei Wertänderung die Variable auf eine interne Variable vom Typ INT. Dort kannst Du Grenzwerte festlegen und auf Über- oder Unterschreitung reagieren.
Macht allerdings das Ganze nicht übersichtlicher, verständlicher oder performanter...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Idee, aber nicht getestet:
- in der SPS das Bit nur auf 1 setzen (keine Dauer-Zuweisungen)
- in der HMI in der Funktionsliste bei dem Ereignis (zuerst?) die Trigger-Variable zurücksetzen (0 zuweisen) - dann sollte das nächste Lesen des 0-Zustandes kein Ereignis Wertänderung auslösen. Danach in der Funktionsliste die eigentliche Funktion aufrufen.

Weißt Du schon für welches HMI/Gerät Deine Frage gedacht ist?

Harald
 
Ich habe tatsächlich für so etwas immer ein INT-Variable genommen und die in der SPS inkrementiert. Hierbei ist dann ein Überlauf auch nicht relevant weil auch der einfach nur eine Wertänderung darstellt. Das ist in der Umsetzung / Performance jetzt auch nicht problematisch.

Ob der von Harald vorgeschlagene Weg funktioniert habe ich (auch) noch nie ausprobiert ...
 
Oder Du schreibst bei Wertänderung die Variable auf eine interne Variable vom Typ INT. Dort kannst Du Grenzwerte festlegen und auf Über- oder Unterschreitung reagieren.
Macht allerdings das Ganze nicht übersichtlicher, verständlicher oder performanter...
Wenn für eine Variable ein oberer Grenzwert festgelegt ist, dann kann der Variable kein Wert größer als der Grenzwert zugewiesen werden.
Auf jeden Fall erzeugt die Grenzwertverletzung bzw. der Versuch unschöne (ungewollte?) Systemmeldungen.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
dann kann der Variable kein Wert größer als der Grenzwert zugewiesen werden.
Hab ich noch nicht ausprobiert. Verweigert er wirklich die Zuweisung? Kann natürlich sein...
Auf jeden Fall erzeugt die Grenzwertverletzung bzw. der Versuch unschöne (ungewollte?) Systemmeldungen.
Die habe ich nicht bedacht...
 
dann kann der Variable kein Wert größer als der Grenzwert zugewiesen werden.
Hab ich noch nicht ausprobiert. Verweigert er wirklich die Zuweisung? Kann natürlich sein...
Ich habe das vor längerer Zeit mal getestet (in der Panel-Simulation, kann noch WinCC flexible gewesen sein?) und festgestellt, daß die Zuweisung verweigert und nicht ausgeführt wird.
Grenzwert-Über/Unterschreitung verwende ich nicht zum Auslösen von Ereignissen, vor allem wegen den unschönen Systemmeldungen.

Harald
 
Ich verwende immer Wertänderung per INT Variabel.
Dann kann man testen ob alle Wertänderungenen detektiert werden, sprich wenn jeden Wertänderung nur um +1 geändert wird.
Wenn es Lücken gibts (3 --> 4 --> 5 --> 7 -->8) , dann kann man ein Alarm auslösen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Idee, aber nicht getestet:
- in der SPS das Bit nur auf 1 setzen (keine Dauer-Zuweisungen)
- in der HMI in der Funktionsliste bei dem Ereignis (zuerst?) die Trigger-Variable zurücksetzen (0 zuweisen) - dann sollte das nächste Lesen des 0-Zustandes kein Ereignis Wertänderung auslösen. Danach in der Funktionsliste die eigentliche Funktion aufrufen.

Weißt Du schon für welches HMI/Gerät Deine Frage gedacht ist?

Harald
So mache ich es auch häufiger, hat bei mir bisher immer problemlos geklappt.
 
Zurück
Oben