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

Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe auch noch einmal etwas genauer die Projektstruktur angeschaut und kann sagen, dass weder Bildbausteinstanzen, noch UDTs geändert werden können, weil diese überschrieben werden könnten.
Die UDTs sollst/brauchst du nicht ändern. Nur, die Daten die du von die Bildbaustein bekommt muss in ein (oder mehrere) DB(s) verlagert mit ein (oder mehrere) Struktur(en) die von die UDT(s) definiert sind.

Ich hätte gerne dies beantwortet:
Kann das wirklich sein, dass die VASS Standard erlaubt direkt in Instanzdaten zu schreiben ?
Gibt es nicht in die FBs Eingangs oder Ausgangs Parameter für diese Schnittstelle ?
 
Die UDTs sollst/brauchst du nicht ändern. Nur, die Daten die du von die Bildbaustein bekommt muss in ein (oder mehrere) DB(s) verlagert mit ein (oder mehrere) Struktur(en) die von die UDT(s) definiert sind.

Ich hätte gerne dies beantwortet:
Also wenn eine Schaltfläche in der Visualisierung betätigt wird, dann ändert sich in den HMI Variablen ein Byte zu dem Wert 1 (vorher war der Wert 0). Weil diese HMI_Variable verbunden ist mit dem Instanz DB eines Funktionsbausteines (z.B. Steuerspannung steuern Baustein) wird dort der Wert auch verändert. Innerhalb des Funktionsbausteines wird dann dieser Wert abgefragt und wenn der Wert sich auf eine 1 ändert, wird z.B. die Steuerspannung eingeschaltet.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wäre es möglich, im HMI eine Rezeptur mit allen Kommando-Variablen anzulegen?
Diese Rezeptur könntest du nämlich mit der Systemfunktion "SetzeRezepturvariablen" umschaltbar off- bzw. online setzen.

Auf eine ähnliche Art und Weise verhindere ich bei meinen HMIs, dass Stör- und Warnmeldungen getriggert werden, BEVOR ein bestimmtes Boot-Skript durchgelaufen ist.

EDIT:
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).


Gruß, Fred
Ich bin gerade ein bisschen Ratlos. Welche Schritte muss ich befolgen, um deine Lösung umzusetzen? Ich habe noch nie mit Rezepturen gearbeitet und weiß auch nicht so genau was die eigentlich machen. An sich klingt die Lösung aber nach einer Idee, die zumindest mit nicht so viel Aufwand ausprobiert werden kann. Ich weiß nur noch nicht so genau wie du das meinst. Online habe ich auch nicht sooo viel dazu gefunden. Aber ich schaue auch nochmal etwas weiter.
 
Also wenn eine Schaltfläche in der Visualisierung betätigt wird, dann ändert sich in den HMI Variablen ein Byte zu dem Wert 1 (vorher war der Wert 0). Weil diese HMI_Variable verbunden ist mit dem Instanz DB eines Funktionsbausteines (z.B. Steuerspannung steuern Baustein) wird dort der Wert auch verändert. Innerhalb des Funktionsbausteines wird dann dieser Wert abgefragt und wenn der Wert sich auf eine 1 ändert, wird z.B. die Steuerspannung eingeschaltet.
Also, die FBs haben keine Eingangs oder Ausgangsparameter für das Schnittstelle für die Bildbausteine ?
Ich frage wiederholt, weil wenn es gibt solche Eingangs oder Ausgangsparameter, dann ist es möglich dieselbe Daten direkt in die Instanzdaten zuzugreifen obwohl es nicht so gemeint ist.
Es wurde mich sehr überraschen wenn es tatsächlich der Fall ist dass die VASS HMI Bildbausteine direkt in die Instanzdaten von die VASS Standard-FBs schreibt.
 
@faust , das wusste ich nicht.
Was passiert wenn man ein Wert eintippt in ein in diese Weise deaktivierte Eingabefeld ?
Man bekommt keine Warnmeldung dass die Wert nicht übernommen wurde ?

Und wird es die Rauten, ein Null, oder den letzten bekannten Wert angezeigt ?
Irgendwie ist es nicht schön.
Ich habe dieses Verfahren ehrlicherweise bis jetzt nur für Variablen, die Statuswerte von der Steuerung zum HMI transferieren, eingesetzt (also quasi passiv).
Ich werde die "aktive" Variante (also für Steuerwerte aus dem HMI zur Steuerung) heute Abend mal austesten, melde mich dann dazu noch.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich bin gerade ein bisschen Ratlos. Welche Schritte muss ich befolgen, um deine Lösung umzusetzen? Ich habe noch nie mit Rezepturen gearbeitet und weiß auch nicht so genau was die eigentlich machen. An sich klingt die Lösung aber nach einer Idee, die zumindest mit nicht so viel Aufwand ausprobiert werden kann. Ich weiß nur noch nicht so genau wie du das meinst. Online habe ich auch nicht sooo viel dazu gefunden. Aber ich schaue auch nochmal etwas weiter.
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?
 
Also, die FBs haben keine Eingangs oder Ausgangsparameter für das Schnittstelle für die Bildbausteine ?
Ich frage wiederholt, weil wenn es gibt solche Eingangs oder Ausgangsparameter, dann ist es möglich dieselbe Daten direkt in die Instanzdaten zuzugreifen obwohl es nicht so gemeint ist.
Es wurde mich sehr überraschen wenn es tatsächlich der Fall ist dass die VASS HMI Bildbausteine direkt in die Instanzdaten von die VASS Standard-FBs schreibt.
In unserem aktuellen System haben wir HMI-Variablen, die direkt mit den Variablen im Instanz DB der Funktionsbausteine (FB) verknüpft sind. Wenn also ein Taster auf der HMI betätigt wird, wird ein Byte in der entsprechenden HMI-Variable geändert. Dies führt dann zur Änderung des entsprechenden Wertes im Instanz DB des Funktionsbausteins, was dann wiederum die gewünschte Aktion auslöst. Wir haben keinen zusätzlichen DB, der dann als Ein/Ausgänge an die Funktionsbausteine geschrieben wird.
 
.. Kann das wirklich sein, dass die VASS Standard erlaubt direkt in Instanzdaten zu schreiben ? ..
Warum nicht? Ich kenne den VASS Standard nicht, aber wenn der Zugriff auf die Instanzdaten klar definiert ist, dann ist es doch eine saubere und einfache Sache, nicht zu verwechseln mit den quick & dirty Kram, den manch einer veranstaltet.

Natürlich ist ein Standard nur so lange ein Standard, wie man sich auch daran hält, was ich ich beim Vorhaben des OP stark bezweifle. Die HMI-Bedienung ist doch sicherlich beim VASS auch mit einer Benutzerverwaltung eindeutig definiert?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Nethiros
Oder du erweiterst wie schon von mir in #13 vorgeschlagen die Benutzerverwaltung mit einer neuen Gruppennummer für Schlüssel_ein, bei Benutzeranmeldung schickst du diese Gruppennummer mit.
Du musst aber dann an allen zu verriegelnden Schaltflächen die entsprechende Berechtigung eintragen.

Der kleinste Aufwand scheint der von faust beschriebene Vorgang zu sein, aber ich bin genau wie JesperMP nicht sicher, welche Auswirkungen das hat (# bei nicht erreichbaren Anzeigewerten, Fehler bei Schreibversuchen,...)
 
Warum nicht? Ich kenne den VASS Standard nicht, aber wenn der Zugriff auf die Instanzdaten klar definiert ist, dann ist es doch eine saubere und einfache Sache, nicht zu verwechseln mit den quick & dirty Kram, den manch einer veranstaltet.

Natürlich ist ein Standard nur so lange ein Standard, wie man sich auch daran hält, was ich ich beim Vorhaben des OP stark bezweifle. Die HMI-Bedienung ist doch sicherlich beim VASS auch mit einer Benutzerverwaltung eindeutig definiert?
Jein. Es geht darum das bisherige System so zu erweitern, das ohne gesteckten Schlüssel keine Bedienung an einer bestimmten Anlage mehr möglich ist. Es gibt derzeit keine richtige Benutzerverwaltung, wie ich diese nun zum Test einmal implementieren möchte.
 
@Nethiros
Oder du erweiterst wie schon von mir in #13 vorgeschlagen die Benutzerverwaltung mit einer neuen Gruppennummer für Schlüssel_ein, bei Benutzeranmeldung schickst du diese Gruppennummer mit.
Du musst aber dann an allen zu verriegelnden Schaltflächen die entsprechende Berechtigung eintragen.

Der kleinste Aufwand scheint der von faust beschriebene Vorgang zu sein, aber ich bin genau wie JesperMP nicht sicher, welche Auswirkungen das hat (# bei nicht erreichbaren Anzeigewerten, Fehler bei Schreibversuchen,...)
Funktioniert leider nicht, weil die Bildbausteininstanz bei einem Update überschrieben werden würde und die Änderungen jedes mal bei Versionsänderung der Bildbausteininstanz weg wäre.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe dieses Verfahren ehrlicherweise bis jetzt nur für Variablen, die Statuswerte von der Steuerung zum HMI transferieren, eingesetzt (also quasi passiv).
Ich werde die "aktive" Variante (also für Steuerwerte aus dem HMI zur Steuerung) heute Abend mal austesten, melde mich dann dazu noch.
Vielen lieben Dank. Diese Variante werde ich morgen definitiv noch einmal überprüfen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Warum nicht? Ich kenne den VASS Standard nicht, aber wenn der Zugriff auf die Instanzdaten klar definiert ist, dann ist es doch eine saubere und einfache Sache, nicht zu verwechseln mit den quick & dirty Kram, den manch einer veranstaltet.
Das Problem ist wenn die Deklaration von die FB geändert wird, warum auch immer, dann muss die HMI auch upgedatet werden, egal ob die HMI sonnst mit die Änderungen in den FB zu tun hat.
Meiner Meinung nach ist es ein typischen Fall für eine getrennte Datenablage, ausserhalb von FB, und deklariert durch eine gemeinsame UDT.

Ich kann Sie nicht abändern.
Ich frage nur weil ich wurde gerne diese FBs studieren möchte.
edit: es wurde genügen mit die FB-Aufruf und seine Deklaration. Ich brauche nicht die FB-interne Code zu sehen.
 
Zuletzt bearbeitet:
Das Problem ist wenn die Deklaration von die FB geändert wird, warum auch immer, dann muss die HMI auch upgedatet werden, egal ob die HMI sonnst mit die Änderungen in den FB zu tun hat.
Meiner Meinung nach ist es ein typischen Fall für eine getrennte Datenablage, ausserhalb von FB, und deklariert durch eine gemeinsame UDT.


Ich frage nur weil ich wurde gerne diese FBs studieren möchte.
edit: es wurde genügen mit die FB-Aufruf und seine Deklaration. Ich brauche nicht die FB-interne Code zu sehen.
Der FB wird in einem FC aufgerufen. Generell ist es bei dieser Struktur auch eigentlich kein Problem auf den Instanz DB eines FBs zuzugreifen aus der HMI. Mehr passiert da eigentlich nicht.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen.

@JesperMP und @Nethiros:
Habe gestern die "aktive" Variante mit der deaktivierten HmiPlc-Verbindung getestet, folgendes kann ich nun sagen:
+ Es werden keine Systemmeldungen "Wertübernahme nicht möglich" o.ä. getriggert.
+ Es wird der zuletzt vorliegende bzw. eingegebene Wert angezeigt.
+ Sobald die Verbindung wiederhergestellt wird, erhält die Variable den zuletzt in der Steuerung verwendeten Wert (Also wie immer in solchen Situationen: PLC überschreibt HMI).


Gruß, Fred.
 
Guten Morgen.

@JesperMP und @Nethiros:
Habe gestern die "aktive" Variante mit der deaktivierten HmiPlc-Verbindung getestet, folgendes kann ich nun sagen:
+ Es werden keine Systemmeldungen "Wertübernahme nicht möglich" o.ä. getriggert.
+ Es wird der zuletzt vorliegende bzw. eingegebene Wert angezeigt.
+ Sobald die Verbindung wiederhergestellt wird, erhält die Variable den zuletzt in der Steuerung verwendeten Wert (Also wie immer in solchen Situationen: PLC überschreibt HMI).


Gruß, Fred.
Vielen Dank! Ich werde dies dann einmal ausprobieren. Wird als finale Lösung dann zwar leider nicht funktionieren, da die Anlage aktuelle Zustände permanent anzeigen muss, aber werde es trotzdem einmal ausprobieren. Danke, dass du das noch einmal für mich getestet hattest.
 
Vielen Dank! Ich werde dies dann einmal ausprobieren. Wird als finale Lösung dann zwar leider nicht funktionieren, da die Anlage aktuelle Zustände permanent anzeigen muss, aber werde es trotzdem einmal ausprobieren. Danke, dass du das noch einmal für mich getestet hattest.
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).
 
Zurück
Oben