TIA TIA WinCC Professional V13 SP2: C-Skripte lässt sich nicht ändern oder löschen

Grimsey

Level-2
Beiträge
543
Reaktionspunkte
32
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich möchte zur Fehlersuche in einem Projekt gerne den Inhalt eines Skriptes auskommentieren.
Ich kann dies zunächst problemlos tun und das Projekt anschließend auch speichern.
Wenn ich das Projekt dann übersetze, wird ein Fehler beim Übersetzten angezeigt der sich auf das Skript bezieht.
Öffne ich dann das Skript, taucht dort plötzlich eine Zeile im Code auf, die vorher nicht dort war und mit einen / beginnt, was der Compiler natürlich anmeckert.
Ich kann die Zeile löschen, das Skript prüfen und das Projekt speichern. Sobald ich das Übersetzen starte, geht alles wieder von vorne los.

Das Skript mit fehlerhafter Codezeile sieht wie folgt aus:
Code:
//Fügen Sie den Header ab hier ein

#include "GlobalDefinitions.h" 
void xc_cycle()
{
//Fügen Sie den Code ab hier ein

//SetTagFloat("rtest", GetTagFloat("rtest") + 0.2);
//if (GetTagFloat("rtest") > 10)
//SetTagFloat("rtest", 0);

//SetTagWord("itest", GetTagWord("itest") + 1);
//if (GetTagWord("itest") > 50)
//SetTagWord("itest", 0);

/if (GetPropDouble ("14_c_Rezept_Harz","Rezepturanzeige_1","ToolbarButtonClick") != 13)
("", 0);

}


Das Skript zu löschen funktioniert auch nicht. Da stürzt jedesmal das TIA Portal ab.

Hat vielleicht noch jemand eine Idee, was man machen könnte?
 
Sehr merkwürdig.
Wenn ich die originalen Codezeilen einfüge
Code:
SetTagFloat("rtest", GetTagFloat("rtest") + 0.2);
if (GetTagFloat("rtest") > 10)
SetTagFloat("rtest", 0);

SetTagWord("itest", GetTagWord("itest") + 1);
if (GetTagWord("itest") > 50)
SetTagWord("itest", 0);

if (GetPropDouble ("14_c_Rezept_Harz","Rezepturanzeige_1","ToolbarButtonClick") != 13)
SetTagWord("itest", 0);

klappt alles.

Laut Querverweis wird das Skript nirgends benutzt. Ich würde es halt gerne aufräumen...aber nun ja.
Werde es wohl erstmal so lassen (müssen).

UPDATE: nachdem ich die originalen Zeilen eingefügt habe, habe ich die Zeilen von unten beginnend einzeln auskommentiert. Dann Codeprüfung und Projekt übersetzt. Bis alle Zeilen auskommentiert waren.
Nun gibts keine Fehler mehr.....muss man nicht verstehen.

Löschen lässt sich das Skript noch immer nicht

Habe das Projekt an Siemens übergeben. Die können das Verhalten auch reproduzieren und wollen es nun prüfen.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Code:
/if (GetPropDouble ("14_c_Rezept_Harz","Rezepturanzeige_1","ToolbarButtonClick") != 13)
("", 0);

}

Ist das nur ein Kopierfehler, oder hast du wirklich die Zeile nicht richtig auskommentiert und in einer weiteren Zeile etwas stehen gelassen?

Kann sein, dass der Compiler in WinCC eine komplett leere Funktion nicht mag und das als Prototyp o.Ä. ansieht. Da würde ich einfach eine Dummy-Anweisung einfügen die nichts bzw. nichts langsamer macht, z.B.: int dummy; dummy = 0;
 
das ist kein Fehler von mir sondern von TIA.
Eigentlich existiert diese Zeile nicht. Ich habe sie händisch gelöscht, dann gespeichert.
Wenn ich dann das Projekt übersetze, ist die Zeile wieder da aber halt mit nur einem /. Hatte ich, glaube ich, auch im 1. Post erwähnt.
Komplett leere Funktion akzeptiert der Compiler. Habe das bei einem anderen Skript erfolgreich schon getan.

Wie gesagt ist das Projekt jetzt beim Siemens-Support. Ich würde das Thema hier aktualliseren, sobald ich da Rückmeldung habe.
 
Zurück
Oben