WinCC Statischer Text Variablenabhängig ausgeben

Viper3500

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

ich möchte einen statischen Text dynamisieren. Es sollen mehrere Variablen abgefragt werden und bei einer Übereinstimmung die jeweiligen Texte ausgegeben werden.
Leider bin ich nicht der C-Programmierer und mir ist es bisher nicht gelungen es umzusetzen.

In dem unteren Beispiel ist zum Beispiel die if Abfrage TAG1 und TAG3 erfüllt. Als Text Ausgabe soll dementsprechend
Text1 und Text3 untereinander ausgegeben werden. Kann mir jemand helfen?



Code:
[SIZE=1][COLOR=#0000ff]#define [/COLOR][/SIZE][SIZE=1][COLOR=#0000ff]TAG_1 [/COLOR][/SIZE][SIZE=1][COLOR=#ff0000][SIZE=1][COLOR=#ff0000]"Variable1"[/COLOR][/SIZE][/COLOR][/SIZE]
[SIZE=1][COLOR=#ff0000][SIZE=1][COLOR=#ff0000][SIZE=1][COLOR=#0000ff][SIZE=1][COLOR=#0000ff]#define [SIZE=1]TAG_2 [/SIZE][SIZE=1][COLOR=#ff0000][SIZE=1][COLOR=#ff0000]"Variable2"
[SIZE=1][COLOR=#0000ff]#define [/COLOR][/SIZE][SIZE=1][COLOR=#0000ff]TAG_3 [/COLOR][/SIZE][SIZE=1][COLOR=#ff0000][SIZE=1][COLOR=#ff0000]"Variable3"

[/COLOR][/SIZE][/COLOR][/SIZE][/COLOR][/SIZE][/COLOR][/SIZE][/COLOR][/SIZE][/COLOR][/SIZE][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=1][COLOR=#ff0000][SIZE=1][COLOR=#ff0000][SIZE=1][SIZE=1][COLOR=#008080][SIZE=1][COLOR=#008080][SIZE=1][SIZE=1][COLOR=#0000ff][SIZE=1][COLOR=#0000ff]if [SIZE=1][COLOR=#0000ff](GetTagByte(TAG_1) == 3){[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=1]
return "Text1"};

[SIZE=1][COLOR=#0000ff]if [/COLOR][/SIZE][SIZE=1][COLOR=#0000ff](GetTagByte(TAG_2) == 3){[/COLOR][/SIZE][SIZE=1]
[COLOR=#0000ff]return "Text2"};[/COLOR][/SIZE]

[SIZE=1][COLOR=#0000ff]if [/COLOR][/SIZE][SIZE=1][COLOR=#0000ff](GetTagByte(TAG_3) == 3){[/COLOR][/SIZE][SIZE=1]
[COLOR=#0000ff]return "Text3"};[/COLOR][/SIZE][/SIZE][/COLOR][/SIZE][/SIZE][/COLOR][/SIZE][/COLOR][/SIZE][/SIZE][/COLOR][/SIZE][/COLOR][/SIZE]
 
Was heißt denn untereinander? Hast du ein mehrzeiliges Ausgabefeld?

Grundsätzlich könntest du den Text folgendermaßen aneinanderhängen und zürückgeben:
Code:
char *txt;
txt = SysMalloc(255); /* für die maximale Anzahl an Zeichen die du benötigst reservieren */
txt[0] = '\0';


if (GetTagByte(TAG_1) == 3){
  strcat(txt, "Text1");
}

if (GetTagByte(TAG_2) == 3){
  strcat(txt, "Text2");
}

if (GetTagByte(TAG_3) == 3){
  strcat(txt, "Text3");
}

return txt;

Für Zeilenumbrüche müsstest du noch ein \n oder \r\n (da weiß ich nicht was bei einer WinCC Textbox ausreichend ist) an den jeweiligen String anhängen.
So wie ich es geschrieben habe, würdest du als Ausgabewert "Text1Text2Text3" erhalten wenn alle drei Bedingungen wahr sind.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Vielen Dank für deine schnelle Antwort.
Hat super Funktioniert. :s12: Mit /r/n wird der Text auch untereinander geschrieben (Zeilenumbrüche eingefügt).

Vielen lieben Dank, hatte daran schon mehrere Tage getüftelt und gegoogelt. :p
 
Hallo Leute,

ich möchte meine C-Scripte im WinCC alle auf VB ändern um die Runtime vom Browser aus zu öffnen (die Seiten Webfähig zu machen).
Kann mir jemand sagen wie ich das obere C-Script in VB schreiben muß?
 
Zurück
Oben