TIA HMI und SPS Interaktion: Blockieren von Steueraktionen bei Schlüsselverwendung

Zuviel Werbung?
-> Hier kostenlos registrieren
Jetzt bin ich allerdings etwas verwirrt:
Du willst doch nur die Kommandovariablen temporär "deaktivieren". Bei mir werden Kommandos immer nach dem Prinzip "HMI ist Master" behandelt, also wird die Steuerung einen entsprechenden Zustand nicht aktiv ändern (dürfen).
Ja, allerdings werden Messwerte doch sicher auch nicht mehr angezeigt, oder Zustände der Anlage, wie z.B. Notaus usw. Oder habe ich da etwas falsch verstanden?
 
Ich habe das so verstanden, dass faust eine zusätzliche Verbindung anlegt, wo nur die mit Schlüssel zu verriegelnden Steuervariablen drinnliegen, und nur diese Verbindung trennen, oder habe ich das falsch verstanden?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Etwas ähnliches könntest du auch mit HmiPlc-Verbindungen betreiben: die betroffenen Kommandovariablen mit einer separaten Verbindung projektieren und diese dann off- bzw. online schalten (Auch dafür gibt es eine Systemfunktion).
Hallo Fred,
welche Systemfunktion ist das?
 
In Kürze:
+ Rezeptur anlegen (Name z.B. "HmiKommandos", Nummer wird automatisch eingetragen, Einstellung "Synchronisation - Rezepturvariablen abgleichen" aktivieren
+ Alle relevanten Variablen in die Liste "Elemente" eintragen
Faust hat es doch bereits beschrieben, keine zusätzliche Verbindung.
Die Variablen die blockiert werden müssen, werden als Rezepturvariablen angelegt und nur diese werden offline geschaltet. Wenn dies also "nur" Schaltflächen sind, werden auch alle Istwertanzeigen noch richtig dargestellt. Nur wenn auch Eingabefelder blockiert werden, bleiben bei diesen die letzten Werte in der Anzeige wenn die Rezepturvariablen offline geschaltet werden.
 
Faust hat es doch bereits beschrieben, keine zusätzliche Verbindung.
Die Variablen die blockiert werden müssen, werden als Rezepturvariablen angelegt und nur diese werden offline geschaltet. Wenn dies also "nur" Schaltflächen sind, werden auch alle Istwertanzeigen noch richtig dargestellt. Nur wenn auch Eingabefelder blockiert werden, bleiben bei diesen die letzten Werte in der Anzeige wenn die Rezepturvariablen offline geschaltet werden.
ok, mein Fehler. Ich bin von Faust's 2. Version (zusätzliche Verbindung) ausgegangen.
 
In Kürze:
+ Rezeptur anlegen (Name z.B. "HmiKommandos", Nummer wird automatisch eingetragen, Einstellung "Synchronisation - Rezepturvariablen abgleichen" aktivieren
+ Alle relevanten Variablen in die Liste "Elemente" eintragen

Bevor ich weitermache: Welcher Gerätetyp wird denn als HMI eingesetzt?
Ich habe die Schritte soweit durchgeführt. Muss ich hier nun noch etwas ergänzen? Es ist übrigens ein IPC477E HMI Panel von Siemens.
 
Du brauchst jetzt noch deinen Verriegelungssignal in der HMI und dann daran als Ereignis die Systemfunktion SetzeRezepturvariablen Offline schalten hängen
Anhang anzeigen 70044
Ich habe jetzt folgendes gemacht. Rezeptur erstellt namens HmiKommandos. Beispielvariable in Rezeptur gelegt, die ohne Schlüssel nicht gesteuert werden darf. Anschließend in die HMI Variablen eine Verbindung zu einer Variable gemacht, welche bei gesteckten Schlüssel ein Signal erhält. Für diese Variable unter "Ereignisse" die Einstellung aus diesem Post hier umgesetzt, um die Variable offline zu schalten. Leider kann ich auf die schnelle keine Bilder der Einstellungen machen, da der Programmier-PC Offline ist und ich in diesem Moment keinen USB Stick zur Hand habe.

So habe ich dies programmiert, aber die Variable lässt sich weiterhin mit/ohne Schlüssel steuern. Habe ich etwas vergessen oder etwas falsch gemacht? Vielen Dank für eure Hilfe.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
die 2. Version hätte vlt. den Vorteil, das ohne Schlüssel kurz die Systemmeldung "Variable xyz: Wertübernahme in Steuerung nicht möglich" angezeigt wird.
Bei der 1. Variante kann er auch die Systemmeldung RezepturVariablen Offline ausgeben.
Anschließend in die HMI Variablen eine Verbindung zu einer Variable gemacht, welche bei gesteckten Schlüssel ein Signal erhält. Für diese Variable unter "Ereignisse" die Einstellung aus diesem Post hier umgesetzt, um die Variable offline zu schalten
Was du da gemacht hast verstehe ich nicht so ganz.
Wenn du die Ausgabe der Statusmeldung aktiviert hast, müsste die Systemmeldung zum offline/online Schalten der Rezepturvariablen ausgegeben werden. Ein paar Screenshots von dem was du eingestellt hast wären da sehr hilfreich.
 
Diese Sachen habe ich angepasst. Hab ich da was vergessen?
 

Anhänge

  • Ereignis.PNG
    Ereignis.PNG
    42,9 KB · Aufrufe: 10
  • Rezeptur.PNG
    Rezeptur.PNG
    43,5 KB · Aufrufe: 10
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn du an der Variablen bei Wertänderung die RezepturVariablen offline schaltest, dann schaltest du sie immer offline. Beim Wechsel 0 => 1 UND beim Wechsel 1 => 0. Somit wären die Variablen immer offline.
Den Punkt Manuelle Übertragung....... habe ich nicht aktiviert.
Du hast den Namen der Variablen geschwärzt, ist die wirklich nur einmal im HMI angelegt? Wenn du sie jetzt für die Rezeptur nochmals angelegt hast, (1) im Namen, dann wird es auch nicht klappen.
 
Hallo zusammen.

Da habe ich mit meinen beiden Lösungsvorschlägen ja für einige Verwirrung gesorgt o_O:giggle:
Ich lese nicht in Echtzeit mit, deshalb entschuldigt meine verzögerte Reaktion (Die Arbeit wartet nicht...).

Die besagten Lösungsvorschläge bitte NICHT kombinieren!

@Nethiros:
Der Einfachheit halber wäre mein Vorschlag, dass wir heute Mittag oder Abend eine kurze Teamviewer-Sitzung abhalten, wo ich dir beide Verfahren demonstriere. Dieses Chatten dauert mir zu lange, und am Ende hat man doch etwas vergessen 😜
Wenn einverstanden, dann können wir PNs mit den Zugangsdaten austauschen.

Ich würde nebenbei ein paar Screenshots nebst Stichpunkten hier ablegen, damit der Thread nicht in der Luft hängenbleibt.


Gruß, Fred
 
Wenn du an der Variablen bei Wertänderung die RezepturVariablen offline schaltest, dann schaltest du sie immer offline. Beim Wechsel 0 => 1 UND beim Wechsel 1 => 0. Somit wären die Variablen immer offline.
Den Punkt Manuelle Übertragung....... habe ich nicht aktiviert.
Du hast den Namen der Variablen geschwärzt, ist die wirklich nur einmal im HMI angelegt? Wenn du sie jetzt für die Rezeptur nochmals angelegt hast, (1) im Namen, dann wird es auch nicht klappen.
Ich bin jetzt nochmal die einzelnen Sachen durchgegangen.
Manuelle Übertragung ist nun deaktiviert.
Es ist seltsamerweise bei der PLC Variablen nur möglich auf Wertänderung zu triggern. Da gibt es keine andere Option. Warum, weiß ich nicht genau. Hier ein Bild der Querverweise von der Variable auf die ich Trigger:

TransponderBestaetigt.PNG

Ich habe zum Testen auch mal probiert einfach mal ein Putzbild zu starten, sobald sich der Wert von TransponderBestaetigt ändert. Nichts passiert... Es liegt also an der HMI -> SPS Schnittstelle. Vielleicht habe ich da auch etwas falsch gemacht. Habe die meiste Zeit eher klassisch SPS programmiert und fange jetzt erst an mich näher mit den Einstellungen im HMI auseinanderzusetzen. Vorgehensweise war dabei wie folgt:
Variable in Standardvariablen Tabelle mit dem Merker M54.1 erstellt, die je nachdem ob ein Schlüssel gesteckt ist, 0 oder 1 als Wert hat. Daraufhin in HMI_Variablentabelle die selbe Variable angelegt und diese dann per Schnittstelle miteinander verbunden. Verbindung ist dabei absolut. Dort dann unter Ereignis "Wertänderung" ausgewählt, weil ich keine andere Option dort besitze.
Hallo zusammen.

Da habe ich mit meinen beiden Lösungsvorschlägen ja für einige Verwirrung gesorgt o_O:giggle:
Ich lese nicht in Echtzeit mit, deshalb entschuldigt meine verzögerte Reaktion (Die Arbeit wartet nicht...).

Die besagten Lösungsvorschläge bitte NICHT kombinieren!

@Nethiros:
Der Einfachheit halber wäre mein Vorschlag, dass wir heute Mittag oder Abend eine kurze Teamviewer-Sitzung abhalten, wo ich dir beide Verfahren demonstriere. Dieses Chatten dauert mir zu lange, und am Ende hat man doch etwas vergessen 😜
Wenn einverstanden, dann können wir PNs mit den Zugangsdaten austauschen.

Ich würde nebenbei ein paar Screenshots nebst Stichpunkten hier ablegen, damit der Thread nicht in der Luft hängenbleibt.


Gruß, Fred

Das ist wirklich nett, allerdings nutze ich kein Teamviewer mehr. Habe da vor einigen Jahren mal sehr üble Erfahrungen machen müssen und seit dem das Programm nicht mehr anrühren wollen. Hättest du sonst auch Discord oder Microsoft Teams? Vielen Dank, so oder so aber schon einmal für all die Mühen.

Beste Grüße
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn du die Variable neu angelegt hast, wie hast du die Anbindung eingestellt? Die Variable für deinen Schlüsselschalter sollte auf Zyklisch fortlaufend stehen, ansonsten wird sie nämlich nur abgefragt wenn sie in einem HMI-Bild aufgerufen wird.
1689068021843.png
 
Wenn du die Variable neu angelegt hast, wie hast du die Anbindung eingestellt? Die Variable für deinen Schlüsselschalter sollte auf Zyklisch fortlaufend stehen, ansonsten wird sie nämlich nur abgefragt wenn sie in einem HMI-Bild aufgerufen wird.
Anhang anzeigen 70057
Das war tatsächlich ein Fehler, besten Dank für die Lösung. Nun lässt sich der Taster gar nicht mehr steuern (was zwar einerseits doof ist, aber andererseits super, weil es bedeutet das der Ansatz tatsächlich funktionieren könnte), weil ich den halt nur auf Wertänderung triggern kann und die Variable deshalb dauerhaft offline bleibt. Theoretisch würden mir schon ein paar Ideen einfallen, bei denen man einfach zwei Flanken nutzt, eine zum offline und eine zum online schalten. Aber das wirkt irgendwie für mich wie Pfusch. Habt ihr eine Idee, wieso ich die Variable nur auf Wertänderung triggern kann?
 
Bei einer boolschen Variable kannst du nur auf Wertänderung triggern, da kann nichts anderes eingestellt werden.
Wenn du bei der boolschen Variable bleiben möchtest, könntest könntest du bei Wertänderung ein Skript starten und dann in Abhängigkeit von true/false die RezepturVariablen online oder offline schalten.
Andere Alternative, mach eine Int-Variable draus und dann kannst du 0 oder 1 reinschreiben und direkt über den Wert im HMI die Systemfunktion starten.
 
Zurück
Oben