TIA HMI MTP400 Unified Basic - Schaltfläche funktioniert nicht

BA86

Level-2
Beiträge
13
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich arbeite mit einem HMI MTP400 Unified Basic Panel in Kombination mit einer Siemens S7-1200 Steuerung (bin Anfänger) und habe folgendes Problem:

Ich habe versucht, ein "Bild" mit einer Schaltfläche zu erstellen und ein Ereignis "Drücken" zu definieren. Dieses soll über die Funktion "SetzeBitInVariable" eine Variable auf den Wert true setzen (Standardwert ist false). Das Projekt wird problemlos auf das HMI geladen, und ich kann den Schalter auf dem Touchscreen betätigen. Leider ändert sich der Wert der Variable jedoch nicht auf true. Komischerweise wird mir die Funktion "SetzeBit" nicht angezeigt, das liegt sicherlich am MTP400 Unified Basic Panel. Für mich wäre die Funktion "SetzeBitInVariable" denke ich aber richtig.

Habe ich möglicherweise etwas übersehen? Könnte es sein, dass das HMI nicht korrekt mit der S7-1200 CPU kommuniziert?

Vielen Dank im Voraus für eure Unterstützung!



01.PNG
 
Möglicherweise dies?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Komischerweise wird mir die Funktion "SetzeBit" nicht angezeigt, das liegt sicherlich am MTP400 Unified Basic Panel.
Gibt es und geht "SetzeVariable"?

Für mich wäre die Funktion "SetzeBitInVariable" denke ich aber richtig.
Aus der TIA Hilfe: "Hinweis Verwenden Sie diese Systemfunktion nicht, wenn die Steuerung BOOL-Variablen unterstützt."
Und: SetzeBitInVariable darf nicht ohne Handshake verwendet werden, wenn die Variable im HMI und in der Steuerung geschrieben wird.

Habe ich möglicherweise etwas übersehen? Könnte es sein, dass das HMI nicht korrekt mit der S7-1200 CPU kommuniziert?
Ist denn die HMI-Verbindung aufgebaut? Mache in ein Bild eine Meldeanzeige für Systemmeldungen aus dem Meldepuffer, dann kannst du die Systemmeldungen in Ruhe/nachträglich lesen.
 
Hi,
also leider gibt es "SetzeVariable" nicht.
Was es gibt ist SetzeBitInVariable und SetzeVariablenWert das ist so ziemlich das naheliegendste. Ich hab die Ereignisse auch auf Drücken / Loslassen usw. angewendet sowie wie im Forum oben beschrieben. Es funktioniert leider nicht. Wenn ich ein anderen Panel-Typ auswähle gibt es auch SetzeBit nur beim HMI MTP400 Unified Basic Panel werden diese Funktionen nicht angezeigt. Ich hab die aktuellste Firmware.
Das hier gibt es noch unter Funktionen der Kategorie Variable zur Auswahl:

1733263771437.png

Genau wie du es schreibst wäre die SetzeBitInVariable nicht korrekt. Denn hier in dem Fall ist es eine BOOL Variable. Aber es gibt auch keine Alternative, in der TIA Hilfe müsste es eigentlich aus SetzeBit geben. Denn in Klammern stehen in der Funktion auch die Basic Panels.

Also die HMI Verbindung ist aufgebaut:

1733264261486.png
 
Es funktioniert jetzt mit SetzeBitInVariable :)

Danke für den Hinweis ob die HMI-Verbindung aufgebaut ist.
Ich musste scheinbar hier noch das Zugangspasswort bei PLC eintragen damit die HMI überhaupt kommunizieren kann. Das Feld war vorher leer und ich habe mir nichts dabei gedacht.
Aber beim Laden in das Gerät kam nirgendwo ein Hinweis, dass hier ein Zugangspasswort fehlt.

Nun funktioniert es einwandfrei (y)

1733265114442.png
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was es gibt ist SetzeBitInVariable und SetzeVariablenWert das ist so ziemlich das naheliegendste.
Geht SetzeVariablenWert nicht mit BOOL-Variablen? :unsure:

Ich weiß nicht, warum Siemens immer wieder neue Funktionen oder Funktionsbezeichnungen erfindet, und warum es SetzeBit und SetzeVariable für Unified Basic Panels nicht gibt, doch ich hätte vermutet, dass dann die Systemfunktion SetzeVariablenwert die richtige ist.
Ich kenne Unified Panels nicht und habe kein TIA für Unified Panels. Ich kann nicht sagen, welche Funktion für Wertzuweisung an BOOL-Variablen von Siemens für Unified Basic Panels vorgesehen ist. Vielleicht weiß das ein anderer Forums-User?

Übrigens, in der buggy TIA Hilfe wird auch eine Systemfunktion SetzeWert erwähnt, die es aber gar nicht gibt...

Denn in Klammern stehen in der Funktion auch die Basic Panels.
Basic Panels und Unified Basic Panels ist nicht das gleiche, sondern verschiedene Geräte.

Es funktioniert jetzt mit SetzeBitInVariable :)
Kann man denn da eine BOOL-Variable angeben? :unsure: Oder muss es eine Mehrbit-Variable z.B. Word sein? Dann kann SetzeBitInVariable eigentlich nicht richtig sein, wegen den genannten normalen/grundsätzlichen Problemen beim Schreiben von mehreren Quellen (HMI und SPS) auf die Variable. Das schreibt Siemens doch auch in der TIA Hilfe.
 
Hallo BA86,
Ich habe ja nur TIA 15.1 (und somit kein unified), aber schau doch mal nach, ob evtl. bei Drücken das Ereignis SetzeBit zur Verfügung steht.
Ist auch bei nicht unified so, dass je nach Tastenfunktion nicht immer alle Ereignisse verfügbar sind.

1733295640187.png
 
Geht SetzeVariablenWert nicht mit BOOL-Variablen? :unsure:

Ich weiß nicht, warum Siemens immer wieder neue Funktionen oder Funktionsbezeichnungen erfindet, und warum es SetzeBit und SetzeVariable für Unified Basic Panels nicht gibt, doch ich hätte vermutet, dass dann die Systemfunktion SetzeVariablenwert die richtige ist.
Ich kenne Unified Panels nicht und habe kein TIA für Unified Panels. Ich kann nicht sagen, welche Funktion für Wertzuweisung an BOOL-Variablen von Siemens für Unified Basic Panels vorgesehen ist. Vielleicht weiß das ein anderer Forums-User?

Übrigens, in der buggy TIA Hilfe wird auch eine Systemfunktion SetzeWert erwähnt, die es aber gar nicht gibt...


Basic Panels und Unified Basic Panels ist nicht das gleiche, sondern verschiedene Geräte.


Kann man denn da eine BOOL-Variable angeben? :unsure: Oder muss es eine Mehrbit-Variable z.B. Word sein? Dann kann SetzeBitInVariable eigentlich nicht richtig sein, wegen den genannten normalen/grundsätzlichen Problemen beim Schreiben von mehreren Quellen (HMI und SPS) auf die Variable. Das schreibt Siemens doch auch in der TIA Hilfe.
Bei SetzeBitInVariable kann man leider keine direkte Bool-Variable angeben. Aber eine Bitnummer definieren, scheinbar wird damit wenn das Bit an der Bitnummernstelle 0 ist immer auf ein 1 (true) gesetzt. Aber es ist ja eine Bool-Variable die nur eine Bitnummer hat und nur zwischen 0 und 1 wechseln kann. Dann müsste die Funktion ja irgendeinen Fehler melden wenn ich die Bitnummer auf 1 setze, aber diese Stelle nicht bei einer Bool Variable existiert. Tut es aber nicht bzw. dürfte man das Projekt durch einen SW Fehler nicht hochladen können. Prinzipiell kann es nicht richtig sein, es funktioniert aber zumindest. Sowas simples wie SetzeBit als Funktion müsste doch grundsätzlich bei jedem Panel zur Verfügung stehen, das ist doch für mich der einfachste Anwendungsfall den man brauch.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo BA86,
Ich habe ja nur TIA 15.1 (und somit kein unified), aber schau doch mal nach, ob evtl. bei Drücken das Ereignis SetzeBit zur Verfügung steht.
Ist auch bei nicht unified so, dass je nach Tastenfunktion nicht immer alle Ereignisse verfügbar sind.

Anhang anzeigen 83601
Hallo Peter,

bei den anderen wie Ereignisarten wie Drücken oder Loslassen gibt es auch kein SetzeBit. Ein bisschen unterschiedlich sind die Funktionen schon. Es müsste auch wie in der Hilfe beschrieben ein SetzeBitWaehrendTasteGedrueckt als Funktion geben. Bei diesem Panel aber scheinbar auch nicht, auch das erschließt sich mir nicht warum es das nicht gibt. Stattdessen müsste man das mit einem Ereignis Drücken und dann mit Loslassen realisieren.
 
Bei SetzeBitInVariable kann man leider keine direkte Bool-Variable angeben. Aber eine Bitnummer definieren
Um sicherzustellen, dass wir das gleiche meinen: Eine BOOL-Variable kannst du bei SetzeBitInVariable also nicht auswählen?

Es könnte ja sein, dass die TIA Entwickler gemeint haben, dass eine Funktion zum Bitsetzen reicht (SetzeBitInVariable), und bei BOOL-Variablen kann man dann für die unnötige Bitnummer nur 0 "wählen"

Es müsste auch wie in der Hilfe beschrieben ein SetzeBitWaehrendTasteGedrueckt als Funktion geben. Bei diesem Panel aber scheinbar auch nicht
SetzeBitWaehrendTasteGedrueckt ist wieder eine andere Funktion, die man normal auch nicht nehmen soll, weil sie schief gehen kann und das Bit gesetzt bleiben kann beim Loslassen.

Hat denn wirklich niemand eine Ahnung von den Unified Basic Panels?
Oder gibt es von Siemens ein Beispiel-Projekt für Unified Basic Panels, wo man nachschauen könnte, wie das da gelöst ist?
Oder frage den Siemens Support, wie das projektiert werden soll (wie die TIA Entwickler sich die Funktion gedacht haben). Oder geht das (vorläufig?) nur per Skript?
 
Für Boolsche Abfragen nutzte ich
SetzeBitInVariable ( Setzt das Bit auf 1 bzw. true)
RücksetzeBitInVariable (Setzt das Bit auf 0 bzw. false)
SetzeBitInVariable kann notwendig sein, wenn man einzelne Bits in einem Word oder anderen Datentypen für unterschiedliche Dinge verwendet.
Für alles andere wird dann SetzeVariablenWert genutzt. Hier kann man dann alle möglichen Datentypen je nach input beschreiben.

Wer sich dann noch zusätzlich austoben mööchte, nutzt SetzeEigenschaftsWert. Damit werden direkt Eigenschaften von Elementen im Bild mit einem passenden Wert beschrieben (Im Beispiel wird der angezeigte Text in dem angegebenen Button beschrieben). Hierbei muss man aber den Objektnamen angeben, die Eigenschaftsbezeichung in Englisch, und den Wert mit dem richtigen Datentypen.

1733312590718.png
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Um sicherzustellen, dass wir das gleiche meinen: Eine BOOL-Variable kannst du bei SetzeBitInVariable also nicht auswählen?
Doch das geht die Bool Variablen kann ich auswählen.
Es könnte ja sein, dass die TIA Entwickler gemeint haben, dass eine Funktion zum Bitsetzen reicht (SetzeBitInVariable), und bei BOOL-Variablen kann man dann für die unnötige Bitnummer nur 0 "wählen"
Das stimmt könnte so gewollt sein. Die Hilfe ist aber widersprüchlich, da dort steht man solle diese Funktion nicht bei BOOL Variablen anwenden.
SetzeBitWaehrendTasteGedrueckt ist wieder eine andere Funktion, die man normal auch nicht nehmen soll, weil sie schief gehen kann und das Bit gesetzt bleiben kann beim Loslassen.
ok
Hat denn wirklich niemand eine Ahnung von den Unified Basic Panels?
Oder gibt es von Siemens ein Beispiel-Projekt für Unified Basic Panels, wo man nachschauen könnte, wie das da gelöst ist?
Oder frage den Siemens Support, wie das projektiert werden soll (wie die TIA Entwickler sich die Funktion gedacht haben). Oder geht das (vorläufig?) nur per Skript?
Ja den Support sollte ich mal kontaktieren, warum simple Funktionen (SetzeBit) nicht angeboten werden bei anderen Panels schon. Und die Tia Hilfe nicht wirklich hilft.
 
Für Boolsche Abfragen nutzte ich
SetzeBitInVariable ( Setzt das Bit auf 1 bzw. true)
RücksetzeBitInVariable (Setzt das Bit auf 0 bzw. false)
SetzeBitInVariable kann notwendig sein, wenn man einzelne Bits in einem Word oder anderen Datentypen für unterschiedliche Dinge verwendet.
Für alles andere wird dann SetzeVariablenWert genutzt. Hier kann man dann alle möglichen Datentypen je nach input beschreiben.

Wer sich dann noch zusätzlich austoben mööchte, nutzt SetzeEigenschaftsWert. Damit werden direkt Eigenschaften von Elementen im Bild mit einem passenden Wert beschrieben (Im Beispiel wird der angezeigte Text in dem angegebenen Button beschrieben). Hierbei muss man aber den Objektnamen angeben, die Eigenschaftsbezeichung in Englisch, und den Wert mit dem richtigen Datentypen.

Anhang anzeigen 83623
Danke dir das Beispiel hilft mir weiter und dann scheint es ja dann richtig zu sein SetzeBitInVariable zu verwenden.
 
Gibt es bei Unified Basic Panels Schalter mit dem Aussehen von Schaltflächen?
Muss dein Button unbedingt eine Schaltfläche sein? Kannst du dafür nicht einen Schalter nehmen und die BOOL-Variable als Prozesswert anbinden? Dann hättest du zusätzlich auch noch automatisch eine optische Rückmeldung, ob/wann die Variable in der SPS zurückgesetzt wird (oder überhaupt angekommen ist).
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Gibt es bei Unified Basic Panels Schalter mit dem Aussehen von Schaltflächen?
Muss dein Button unbedingt eine Schaltfläche sein? Kannst du dafür nicht einen Schalter nehmen und die BOOL-Variable als Prozesswert anbinden? Dann hättest du zusätzlich auch noch automatisch eine optische Rückmeldung, ob/wann die Variable in der SPS zurückgesetzt wird (oder überhaupt angekommen ist).
Ja es gibt solche Schiebeschalter, aber da ist das gleiche, es gibt dabei auch nicht die Funktion SetzeBit sondern analog die gleichen Funktionen wie bei den Schaltflächen. Also hier geht auch SetzeBitInVariable
 
Ja es gibt solche Schiebeschalter, aber da ist das gleiche, es gibt dabei auch nicht die Funktion SetzeBit
Bei Schaltern braucht man keine Funktionsliste (und daher auch kein SetzeBit und so), weil da die zu schaltende BOOL-Variable direkt als Prozessvariable projektiert wird. Außerdem muss der Schalter nicht wie ein Schiebeschalter aussehen, sondern man kann als Modus einstellen "Schalter mit Text" (oder "Schalter mit Grafik") - da sieht der Schalter wie eine Schaltfläche aus, und hat sogar automatisch den optischen "eingedrückt"-3D-Effekt. Und Schalter können auch mit gemultiplexten Variablen umgehen. (Oder ist das bei Unified auch nicht mehr so?)
 
Bei mir geht bei den Unified Panel zumindest bis heute mit Tia v19 update 3 die Funktion „Taste drücken“ gar nicht. Das hat mich beim ersten Projekt in v16 einige Stunden gekostet.

„Drücken“ geht hingegen,….
„Linke Maustaste klicken“ geht auch, da muss man aber richtig auf das Feld mit dem Touch drücken, damit es ausgelöst wird.

„SetzeVariablenWert“ ist der Befehl der ausgeführt werden muss.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Taste drücken und loslasen wird nur über eine Tastatur ausgelöst.
Bei der linken und rechten Maustaste kommt bei den Paneln noch der Faktor Zeit dazu, dies muss berücksichtig werden.
Ich verwende bevorzugt das Ereignis Drücken
1733574988140.png
 
Bei Schaltern braucht man keine Funktionsliste (und daher auch kein SetzeBit und so), weil da die zu schaltende BOOL-Variable direkt als Prozessvariable projektiert wird. Außerdem muss der Schalter nicht wie ein Schiebeschalter aussehen, sondern man kann als Modus einstellen "Schalter mit Text" (oder "Schalter mit Grafik") - da sieht der Schalter wie eine Schaltfläche aus, und hat sogar automatisch den optischen "eingedrückt"-3D-Effekt. Und Schalter können auch mit gemultiplexten Variablen umgehen. (Oder ist das bei Unified auch nicht mehr so?)

Ah jetzt weiß ich was du meinst. Das scheint leider mit dem HMI MTP400 Unified Basic Panel nicht zu funktionieren, da habe ich sehr lange gesucht warum mir diese Eigenschaften fehlen. Ich vermute hier ist das MTP etwas abgespeckt, Animationen sind scheinbar auch nicht möglich.

Beim MTP400 Panel sieht das so aus:

1733606276067.png

Beispielsweise bei einen KTP700 Basic Panel sieht das so aus:


1733606384439.png

Dort kann man direkt unter Eigenschaften die BOOL Variable zum schalten wählen. Bei dem anderen Panel ist das nicht da, man muss über Ereignisse gehen. Außerdem gibt es noch ein Unterschied der Register Animation gibt scheinbar auch nicht bei einem MTP400 und die Eigenschaften sind nicht so übersichtlich.
 
Ich vermute hier ist das MTP etwas abgespeckt, Animationen sind scheinbar auch nicht möglich.
Da kann man nicht bei "Statischer Wert" Grafiken oder Texte für unbetätigt und gedrückt zuweisen??? :unsure:
(die Animation macht die Runtime damit automatisch)

Beispielsweise bei einen KTP700 Basic Panel sieht das so aus:
(...)
Dort kann man direkt unter Eigenschaften die BOOL Variable zum schalten wählen. Bei dem anderen Panel ist das nicht da, man muss über Ereignisse gehen.
Bei MTP Unified Basic Panel kann man an einen Schalter keine Prozessvariable anprojektieren??? :unsure:

Wie bereits geschrieben, ich habe kein TIA für Unified Panels, ich kann da nicht für dich suchen, wo und wie man das da projektieren muss. Von den erfahrenen Unified-Anwendern hat anscheinend selten jemand Zeit, uns zu berichten wie man da erfolgreich projektiert ... ;) Im Siemens Forum kommt zu deinem Problem auch keine Antwort...
 
Zurück
Oben