WinCC flexible Schaltfläche beim start gedrückt halten

Simulacrum

New member
Beiträge
4
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
Moin moin,

wie die Überschrift schon vermuten lässt, suche ich nach einer Möglichkeit, das für den Einschaltvorgang die Schaltfläche für x sec gehalten werden muss um evtl. ungewolltes einschalten zu verhindern. Ebenso muss aber der Ausschaltvorgang verzugslos also bei Berührung passieren. Wie ist das realiesierbar? Wenn ich mit nem Timer in den Bausteinen spiele schaltet die anlage zwar erst nach x sec ein, aber ich muss die schaltfläche nicht gedrückt halten.

Danke für die Hilfe.
 

Ralle

Supermoderator
Teammitglied
Beiträge
14.631
Punkte Reaktionen
3.487
Zuviel Werbung?
->Hier kostenlos registrieren
Man kann doch einen Button so parametrieren (in Flex), dass das zugeordnete Bit so lange True ist, wie der Button betätigt wird.
In der SPS kann man dann abhängig davon, ob die Maschine schon gestartet ist, sofort abschalten oder, wenn sie noch nicht gestartet ist, einen Timer (SE) laufen lassen und erst nach Ablauf dieses Timers den Start ausführen.
 

PN/DP

User des Jahres 2011-2013; 2015-2017; 2020-2021
Beiträge
17.595
Punkte Reaktionen
5.172
Kurz oder lang gedrückt kann man in WinCCflex nicht unterscheiden, das muß die CPU auswerten. Die Start-Schaltfläche muß beim Drücken und beim Loslassen jeweils ein Signal geben (z.B. Drücken: SetzeBit, Loslassen: RücksetzeBit oder SetzeAnderesBit), damit die CPU die Drückdauer "sehen" kann. Benutze 2 Schaltflächen: EIN nach mindest-Einschaltdauer verarbeiten und AUS sofort verarbeiten; oder mit 1 Schaltfläche: gedrückt = ausschalten, lange gedrückt = einschalten.

Wenn ich mit nem Timer in den Bausteinen spiele schaltet die anlage zwar erst nach x sec ein, aber ich muss die schaltfläche nicht gedrückt halten.
:confused: Diesen Satz verstehe ich leider nicht. Kannst Du das nochmal anders formulieren?

Harald
 

Blockmove

Supermoderator und User des Jahres 2019
Teammitglied
Beiträge
9.241
Punkte Reaktionen
2.442
Ich löse es auch so wie von Ralle beschrieben.
Als Ergänzung: Die Funktion "Setzte Bit während Taste gedrückt ist" findest du bei den Button Ereignissen unter Drücken (nicht bei Klicken).
Ist aber leider nicht bei allen Panels verfügbar.

Gruß
Dieter
 
OP
S

Simulacrum

New member
Beiträge
4
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
Danke für die Antworten, ich habe mich jetzt mal versucht durch die Geschichte mit den Skripts zu wurschteln, da mir das am logischten erschien. Nur muss ich feststellen, das ich zwar einen Skript-Assistenten aufrufen kann, aber die Funktionsliste leer ist und unter dem Reiter Code-Assistent zwar einige Codes stehen, wobei bei der Auswahl / übennehmen klicken nichts passiert.
Zur Zeit habe ich einen Schalter in meinem Touchpannel mit ein aus Funktion den ich wie gesagt nicht so regeln kann wie ich es möchte. Wenn ich daraus eine Schaltfläche mache, kann ich ganz klar eine Aktion bei drücken initialisieren, aber wo kann ich dann einstellen, dass dieser drückvorgang für eine bestimmte Zeit durchgeführt werden muss?
Wenn ich Ralle richtig verstehe setze ich solange ich drücke das Bit true aber das bringt mir auch nicht die 3 sec. denn es ist ja vorher false und sobald ich drücke sofort true und nicht nach 3 sec. Angenommen ich setze die Funktion bei loslassen, habe ich auch keine Kontrolle das der switch vorher 3 sec gedrückt wurde.
@Harald
Zur Zeit habe ich folgende AWL-Befehle zum Starten der Pumpen geschrieben mit denen ich eine einschaltverzögerung realiesieren wollte.

U "Pumpen_ein"
FP "Flankenmerker1"
U "Flankenmerker1"
FR "Timer_Pumpe1"
U "Pumpen_ein"
L S5T#3s
SE "Timer_Pumpe1"

U "Timer_Pumpe1"
FP "Flankenmerker2"
U "Flankenmerker2"
S "Pumpe1"

Gedacht war es folgendermaßen, der Einschaltimpuls kommt, Flanke 1 wird true, der timer läuft dann wird flanke 2 true und die pumpe schaltet ein. Aber dafür ist es halt auch egal wie lange der Schalter gedrückt wird :cry:
Wie gesagt, dass über die Schaltflächen / Ereignisse / drücken ist mir nicht klar, wie ich da der Anlage verklickern soll, das man 3 sec drücken muss.

Danke für weitere Hilfen
 

Sinix

Well-known member
Beiträge
1.588
Punkte Reaktionen
216
Ich löse es auch so wie von Ralle beschrieben.
Als Ergänzung: Die Funktion "Setzte Bit während Taste gedrückt ist"
r

Hier wäre zu prüfen was passiert wenn das Panel bei gedrücktem Button spannungslos wird. Läuft dann die Maschine an, weil das Bit hängen bleibt?
Besser: Drücken = SetzteBit; Loslassen = RücksetzeBit

MfG MK
 

Blockmove

Supermoderator und User des Jahres 2019
Teammitglied
Beiträge
9.241
Punkte Reaktionen
2.442
Hier wäre zu prüfen was passiert wenn das Panel bei gedrücktem Button spannungslos wird. Läuft dann die Maschine an, weil das Bit hängen bleibt?
Besser: Drücken = SetzteBit; Loslassen = RücksetzeBit

MfG MK

Ich behaupte mal, dass sich beide Lösungen hier absolut nix schenken.
Oder wie soll das "Loslassen des Buttons" ohne Spannung ein Bit reseten?
Siemens hat sich schon bei beiden Varianten Fehler in der Firmware erlaubt.
Mal war es - wenn ich es noch richtig weis - das Hochkommen einer Störung und ein anderes Mal war es ein Bildwechsel per Steuerungsauftrag.

Gruß
Dieter
 

Tigerente1974

Well-known member
Beiträge
1.815
Punkte Reaktionen
289
Zuviel Werbung?
->Hier kostenlos registrieren
Sehe ich auch so. Wenn es wirklich darauf ankommt eine versehentliche Bedienung auszuschließen, würden mir noch 1 Alternativen einfallen:

Taste zur "Freigabe" projektieren. Klicken der Taste setzt ein Bit, welches eine Kontrollzeit auf der SPS startet. Innerhalb der Kontrollzeit kann eine weitere Taste gedrückt werden, um die Pumpe einzuschalten.
 

Blockmove

Supermoderator und User des Jahres 2019
Teammitglied
Beiträge
9.241
Punkte Reaktionen
2.442
Die Methode von Frank habe ich auch schon verwendet.
Wenn man das Panel per Profibus anbindet, dann stellen manche Panels auf ein Lebensbit bereit.
Dazu das Panel als Slave eingebunden sein.
Du kannst auch den Bereichszeiger Datum-Uhrzeit (nicht den mit ST) nutzen und abfragen, ob sich die Sekunden ändern.
Möglichkeiten gibt es viele ... aber mein Leben und erst nicht das Leben von anderen würde ich keiner anvertrauen ;)

Gruß
Dieter
 

IBFS

Well-known member
Beiträge
4.053
Punkte Reaktionen
885
Zuviel Werbung?
->Hier kostenlos registrieren
Wenn man das Panel per Profibus anbindet, dann stellen manche Panels auf ein Lebensbit bereit.
Dazu das Panel als Slave eingebunden sein.

Nicht ganz korrekt.

Jedes Siemens Panel welches regulär mittels OP-Kommunikation (dabei ist die Physik egal, d.h. MPI, DP oder PN )
angebunden ist, hat im Koordinierungsbereich ein Lebensbit. Dazu muss es NICHT in der HwKonfig oder NetPro parametriert sein.
Der Koordinierungsbereich wird einfach im Panel auf einen passenden vorhandenen DB gelegt und dann wird schon das Lebensbit gesendet.
Was man dann damit nachher anstellt ist der Phantasie überlassen.
 

Tigerente1974

Well-known member
Beiträge
1.815
Punkte Reaktionen
289
Das hilft aber auch nicht, wenn das Tastenbit anbleibt obwohl die Taste losgelassen wurde. Wie hier schon erwähnt gab es das immer wieder mal als "bug".
 

Larry Laffer

Supermoderator
Teammitglied
Beiträge
13.096
Punkte Reaktionen
2.721
Hallo,
den Fall des anbleibenden Tastenbits hatte ich noch nicht. Ich kenne aber die Funktion, dass der Touch-Treiber (obwohl permanent betätigt) trotzdem mal ganz kurz ein "losgelassen" aufruft.
Im geschilderten Fall (Taste soll x Sekunden gedrückt sein bis Aktion erfolgt) wäre dieser Fall also auch noch zu beachten ...

Gruß
Larry
 

Blockmove

Supermoderator und User des Jahres 2019
Teammitglied
Beiträge
9.241
Punkte Reaktionen
2.442
Zuviel Werbung?
->Hier kostenlos registrieren
Jedes Siemens Panel welches regulär mittels OP-Kommunikation (dabei ist die Physik egal, d.h. MPI, DP oder PN )
angebunden ist, hat im Koordinierungsbereich ein Lebensbit.

Wieder was gelernt ... Darum schätze ich dieses Forum.
Einfach 2 Timer als Lebenbit-Überwachung und Gut is :)
Aber die Einwände von Tigerente bleiben natürlich bestehen.

Gruß
Dieter
 

Blockmove

Supermoderator und User des Jahres 2019
Teammitglied
Beiträge
9.241
Punkte Reaktionen
2.442
Hallo,
den Fall des anbleibenden Tastenbits hatte ich noch nicht. Ich kenne aber die Funktion, dass der Touch-Treiber (obwohl permanent betätigt) trotzdem mal ganz kurz ein "losgelassen" aufruft.
Im geschilderten Fall (Taste soll x Sekunden gedrückt sein bis Aktion erfolgt) wäre dieser Fall also auch noch zu beachten ...

Gruß
Larry

Sollte eigentlich erledigt sein. Siemens hat das in einem der letzten SP oder Hotfixes geändert.
Mir ist es zumindest schon lange nicht mehr aufgefallen

Gruß
Dieter
 

Larry Laffer

Supermoderator
Teammitglied
Beiträge
13.096
Punkte Reaktionen
2.721
... da ich ja sehr viel PC-Runtimes habe ... bei mir ist es durchaus (je nach Hersteller und Betriebssystem) immer noch mal wieder ein Thema ...
 
OP
S

Simulacrum

New member
Beiträge
4
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
Gut nun habe ich ja viele Antworten und bin dennoch so schlau wie vorher, da ich Blutiger Anfänger bin. Also als nächstes versuche ich folgende Möglichkeit, die Taste für x sec gedrückt werden muss und ein Bit setzt solange sie gedrückt wird, in der SPS programmiere ich dann einen timer der startet sobald das Bit gesetzt ist und der wenn er Abgelaufen ist überprüft ob das Bit noch immer gesetzt ist. Wenn ja schaltet die Anlage ein. Ist das so in etwa das was hier gemeint ist?
 

Ottmar

Well-known member
Beiträge
292
Punkte Reaktionen
47
Hi!

Ja.
Starte mit dem Bit der Taste (Projektiert unter "Drücken", "SetzeBitWährendTasteGedrückt") einfachen einen IEC-Timer "TON" (Einschaltverzögerung).
Wenn der Timer am Ausgang "Q" den Zustand "TRUE" liefert wurde die Taste für die parametrierte Zeit beätigt.
Wird die Taste losgelassen wird auch der Ausgang "Q" wieder "FALSE" (kommt daher, dass "TON" eine nicht-speichernde Einschaltverzögerung ist).

Wenn du eine gewisse Sicherheit (natürlich alles nur je nach Betrachtungsweise) willst, kannst du wie weiter oben empfohlen noch das Lebensbit des Panels hinzuziehen.


gruß,

Ottmar
 

rostiger Nagel

Forums-Knochenbrecher
Teammitglied
Beiträge
14.366
Punkte Reaktionen
4.198
genau, so würde ich es erst einmal versuchen. Vielleicht reicht es ja für deine Anwendung voll und ganz aus.
Lass uns an dein Ergebnis teilhaben und gib mal ein Feedback.
 
Oben