WinCC 6.2 C-Script im Hintergrund ohne Trigger

Freacky2002

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

vielleicht könnt ihr mir helfen. Ich arbeite seit ca 3 Monaten an einem WinCC 6.2 SP2 Projekt und habe die Dynamisierung ausschließlich mit C-Skripten und Projektfunktionen gemacht. Jedoch binde ich die C-Scripte immer an ein Trigger(zb Button). Wenn ich jetzt aber auf eine Änderung einer Variablen ein Script auslösen will, habe ich bisher immer ein Objekt genommen von dem ich eine Eigenschaft genommen habe und da dann das Script gestartet(als Trigger halt die Variable gewählt). Es wäre jedoch toll wenn man Funktionen erstellen könnte, die quasi im Hintergrund ohne Koppelung an ein Objekt laufen würden. Also das die beim Starten der Runtime aktiv sind und auf zb. Änderungen der Variabeln reagieren. Gibt es sowas?


Vielen Dank im Vorraus
Freacky2002
 
Klar geht das : Trigger -> Variable -> Bei Änderung und dann noch eine oder mehr Variablen aussuchen und fertig. Oder habe ich irgendwas falsch verstanden?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

vielleicht könnt ihr mir helfen. Ich arbeite seit ca 3 Monaten an einem WinCC 6.2 SP2 Projekt und habe die Dynamisierung ausschließlich mit C-Skripten und Projektfunktionen gemacht. Jedoch binde ich die C-Scripte immer an ein Trigger(zb Button). Wenn ich jetzt aber auf eine Änderung einer Variablen ein Script auslösen will, habe ich bisher immer ein Objekt genommen von dem ich eine Eigenschaft genommen habe und da dann das Script gestartet(als Trigger halt die Variable gewählt). Es wäre jedoch toll wenn man Funktionen erstellen könnte, die quasi im Hintergrund ohne Koppelung an ein Objekt laufen würden. Also das die beim Starten der Runtime aktiv sind und auf zb. Änderungen der Variabeln reagieren. Gibt es sowas?


Vielen Dank im Vorraus
Freacky2002

Hallo,

neben den Skripten in den Bildern, die mit dem Graphics Designer erstellt werden, kann man auch Globale Skripte (Aktionen) in C oder VBS erstellen. Diese kannst Du dann an eine oder mehrere Prozessvariable koppeln (Bei Änderung).

Gruß
Eleu
 
Danke für deine Antwort,

ich glaub das müste das sein was ich meine. Hast du da ein minimal Beispiel. Ich habe eben im Script Editor eine Globale Aktion(gab auch Aktion mit meinem Computernamen) gemacht:
nt gscAction( void )
{
// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
// next TagID : 1
// WINCC:TAGNAME_SECTION_END

// WINCC:pICNAME_SECTION_START
// syntax: #define PicNameInAction "PictureName"
// next PicID : 1
// WINCC:pICNAME_SECTION_END
if(GetTagBit("Anlagenschalter_S1"))
{
printf("Dat geht");
}
return 0;
}

Leider wird das printf nicht ausgeführt, wenn ich den Anlagenschalter setze. Muss ich hier etwas bestimmtes beachten?
 
Zuletzt bearbeitet:
Leider wird das printf nicht ausgeführt, wenn ich den Anlagenschalter setze. Muss ich hier etwas bestimmtes beachten?

Moin,

mmh sollte aber funktionieren.
Hast Du bei der Variablen, die an dem Skript anhängt, den Standardtrigger von 2 Sek. auf "Bei Änderung" geändert ?
Hast Du da ein Server / Client System ?
Du kannst den prinf im globalen Script z.B. nicht auf einem WinCC Client in der GS-Diagnose beobachten.
Das geht dann nur in der RT am WinCC Server ?

Gruß
Eleu
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Eleu,

also ich bin am WinCC Server, habe zum Test ein GSC-Runtime und ein GSC-Diagnose Fenster eingebaut. Wenn ich die Runtime starte sagt er wohl im GSC-Runtime, dass die Funktion angemeldet sei, aber es tut sich nichts(habe anstatt printf jetzt eine Namenzuweisung von @CurrentUser gemacht um zu sehen ob das Script läuft). Du meintest ich soll den Standardtrigger auf "Bei Änderung" setzten wo kann ich das im Global Script denn? Das ich es im Graphic-Desinger machen kann ist klar, aber ich will grad keine Anbindung an ein Objekt

Gruß,
Freacky2002
 
Nein, nein...
Das machst du über den C-Editor vom global Script.
Öffne deine Aktion damit.

Oben im Editor findest Du dann eine Schaltfläche, die wie eine Uhr aussieht (Info/Trigger).
Druf klicken und die Registerlasche Trigger auswählen.
Dort dann besagte Variable hinzufügen und den Standardzyklus auf "Bei Änderung" anpassen.

Gruß
Eleu
 
@Eleu:
Ich dank dir vielmals der Button für den Trigger im Global-Scrip ist mir noch gar nicht aufgefallen. Ich dank dir! Es tut jetzt!
 
Zurück
Oben