WinCC 7: Automatische Bildeinblendung bei Bitwechsel

Beiträge
5
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
Hallo zusammen,

ich möchte unter WinCC 7 ein Bild automatisch einblenden lassen, sobald ein Merker in der S7 gesetzt wird.
Der Merker ist als Variable schon in WinCC eingefügt.
Das Bild kann im Moment, (das soll auch so bleiben), über die obere Siemens Bedienleiste aufgerufen werden.
Zusätzlich soll es halt bei gesetzten Merker noch automatisch aufgerufen werden!!!

Wäre schön wenn ihr mir helfen könntet...

Danke und Gruß

Marc
 

Thomas_v2.1

Well-known member
Beiträge
8.135
Punkte Reaktionen
2.458
Das kannst du über ein globales Script machen das bei einer Variablenänderung angestoßen wird.
Wenn der Bildwechsel nur bei z.B. einer steigenden Flanke ausgelöst werden soll, brauchst du noch eine zusätzliche interne Hilfsvariable.

Über den WinCC-Explorter Global Script -> C-Editor öffnen. Unter "Aktionen" eine neue Aktion einfügen.
Das Skript könnte so aussehen:
Code:
// WINCC:TAGNAME_SECTION_START
#define TRIG "boolBildwechselTrigger"
#define TRIG_ALT "boolBildwechselTrigger_alt"
// WINCC:TAGNAME_SECTION_END

BOOL tr, tr2;

tr = GetTagBit(TRIG);
tr2 = GetTagBit(TRIG_ALT);

if (tr && !tr2) {
  OpenPicture("BildAufDasGewechseltWerdenSoll.pdl");
}
SetTagBit(TRIG_ALT, tr);

Wenn du mit dem Basic Process Control arbeitest könnte evtl. eine andere Funktion für den Bildwechsel sinnvoller sein (ich glaube SSMRTChangeWorkField() müsste das passende sein).

Unter den Triggereinstellungen des Scripts stellst du einen Variablentrigger auf "boolBildwechselTrigger" ein, und diesen z.B. auf Änderung.

Damit das funktioniert muss unter den Projekteinstellungen der Haken für die "Global Script Runtime" gesetzt werden.
 

Blockmove

Supermoderator und User des Jahres 2019
Teammitglied
Beiträge
9.224
Punkte Reaktionen
2.428
Zuviel Werbung?
->Hier kostenlos registrieren
@Thomas
Wozu die Flanke?
Der Trigger kommt bei Wertänderung von tr.
Für den Aufruf von Openpicture sollte eine einfache Abfrage auf true von tr reichen. Oder überseh ich da was?

Gruß
Dieter
 

Thomas_v2.1

Well-known member
Beiträge
8.135
Punkte Reaktionen
2.458
Kommt die Triggerbedingung dann nicht bei Wechsel 0->1 und 1->0?
Er schrieb das Bild soll bei gesetztem Merker aufgerufen werden. Wenn jede Wertänderung den Wechsel auslösen soll dann gehts natürlich auch ohne Flanke.

Wobei ich nicht weiß was passiert wenn man z.B. die Netzwerkverbindung zur SPS trennt, und ob dann der Variablenwert ebenfalls wechselt (z.B. wenn er bei guter Verbindung auf 1 stand). Dann sollte auf jeden Fall kein Bildwechsel geschehen.

Edit:
Stimmt, eine Abfrage ob die Triggervariable true ist reicht natürlich aus.
 
Zuletzt bearbeitet:
Oben