WINCC 7 Signale von OPC auf SPS in der Protokoll-Suite kopieren

DerTheo

Level-2
Beiträge
8
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

an ein WINCC auf einer Kläranlage habe ich nun div. Messwerte aus unserem Kanalnetz via GPRS/OPC angebunden. Das funktioniert auch wunderbar.
Davon sollen drei Signale (1x Integer, 2xReal) in einer SPS weiterverarbeitet werden.
Durch Googlen und Suchen bin ich darauf gekommen, dass WINCC dies mit gettag und settag löst.
Weil ich keinerlei C-Erfahrung habe, würde es mich freuen, wenn mir da Jemand eine "Kochanleitung" geben könnte. Die Abarbeitung sollte zyklisch 1x pro Minute erfolgen.
 
Als erstes über WinCCExplorer -> Global Script -> C-Editor starten

Unter "Aktionen" im Ordner für den jeweiligen Rechner auf dem die Aktion ausgeführt werden soll, über Rechtsklick->Neu eine neue Aktion einfügen.

Über die Schaltfläche mit der Uhr (Info/Trigger) kannst du dann die Triggerbedingung für das Skript einstellen.
In deinem Fall z.B. Timer -> zyklisch -> Standardzyklus- > 1 min

Skript für das Lesen und Schreiben einer Variablen vom Typ double (die Namen für die defines sind beispielhaft):
Code:
// WINCC:TAGNAME_SECTION_START
#define TAGNAME_LESEND_1      "dblLeseVar1"
#define TAGNAME_SCHREIBEND_1  "dblSchreibeVar1"
// WINCC:TAGNAME_SECTION_END

double dblVal;

dblVal = GetTagDouble(TAGNAME_LESEND_1);
SetTagDouble(TAGNAME_SCHREIBEND_1, dblVal);

Mit dem Speichern des Skripts wird der Code übersetzt. Dabei sollte kein Fehler auftreten.

Dann solltest du noch prüfen ob die "Global Script Runtime" mit WinCC auch mitgestartet wird.
Dazu über den WinCCExplorer die Rechnereigenschaften aufrufen. Bei "Anlauf" muss die "Global Script Runtime" angewählt sein. Ist das nicht der Fall gewesen, würde ich das WinCC einmal komplett neustarten, damit alles passend aktiviert wird.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hurra, es funktioniert.
Bisher drückte ich mich vor den Skripten, sind aber wohl ganz nützlich!
Kann ich die set- und get- Anweisungen eigentlich auch bedingt ausführen? Damit das Script nicht ewig wartet, wenn eine Station mal offline ist.
 
Zurück
Oben