WinCC E/A Feld- mittels C-Script lesend und schreibend auf Variable zugreifen

D-Four-E

Level-1
Beiträge
7
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin Zusammen,

ich habe ein, denke ich mal, kleineres Problem mit einem E/A Feld.

Da ich mittels WinCC v7.4 nicht direkt auf Strukturen einer 1500er Steuerung mit optimiertem Bausteinzugriff zugreifen kann,
kann ich leider keinen Prefix nutzen um mir Variablen über ein Anwenderobjekt in ein Bildfenster (Faceplate) zuschalten.

Nach dem Laden der AS-Symbole in den Variablenhaushalt bekomme ich z.B. folgende Variable.

"L1364004_statDataAnaRead_settingsHMI_limitAH"

Ja nach der Messstelle ändert sich nur der vordere Messstellenname (L1364004).

Also schnell ein paar Zeilen Code geschrieben, indem ich den Messstellennamen vergebe (VARPre) und anschließend wieder passend zusammen baue (VAR)
Zu guter Letzt wird es als Ausgabe am E/A Feldes ausgegeben.

char VARPre[10];
char VAR[50];
sprintf(VARPre, "L1364004");
sprintf(VAR, "%s_statDataAnaRead_settingsHMI_limitAH",VARPre);
printf("Variable = %s\r\n",VAR); // Für Testzwecke
return ((double)GetTagDouble (VAR));

Später werde ich mir den Namen (VARpre) über ein Textfeld des Anwenderprojektes holen.
Damit kann ich ein Faceplate designen und mehrmals aufrufen, ohne jedesmal alle Variablen umzuverdrahten und 20 neue Bilder zu haben.

Jetzt zu meiner eigentlichen Frage:

Da ich sonst immer direkte Variablen als Ausgabeswert von E/A Feld verknüpft habe, konnte ich sowohl lesend als auch schreibend darauf einwirken.

Mittels C-Script kann ich nur lesend darauf zugreifen.
Egal ob als Eingabewert oder Ausgabewert.
Wie ich ich das Script so anpassen, dass ich sowohl lesend, als auch schreibend auf die Variable zugreifen kann?

Besten Dank im Vorraus.

Gruß Dennis
 
So ganz verstanden habe ich nicht was du vorhast, aber du kannst an ein EA-Feld beim Ereignis "Eingabe abgeschlossen" (oder so ähnlich) ein C-Script hängen. Als Parameter bekommst du den eingegebenen Wert übermittelt, und kannst damit dann anstellen was du willst, z.B. mit SetTagDouble() auf eine andere Variable schreiben.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
So ganz verstanden habe ich nicht was du vorhast, aber du kannst an ein EA-Feld beim Ereignis "Eingabe abgeschlossen" (oder so ähnlich) ein C-Script hängen. Als Parameter bekommst du den eingegebenen Wert übermittelt, und kannst damit dann anstellen was du willst, z.B. mit SetTagDouble() auf eine andere Variable schreiben.


Ganz einfach gesagt:

ich habe im Variablenhaushalt von WinCC eine Variable mit dem Namen "X" von einer Steuerung (Gleitkomma)

Jetzt habe ich ein E/A Feld. Ich möchte, anstatt mit einer direkten Variablenanbindung an den Ausgabewert (Damkit kann ich ja lesend und schreibend zugreifen), mittels ANSI-C Script
die Variable "X"auslesen, aber auch bei einer Eingabe im E/A-Feld, die Variable "X" beschreiben können.
 
Zurück
Oben