WINCC 6.2 Script sehr langsam

Keeper

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

habe ein kleines Problem, habe ein Script geschrieben, das Folgendermaßen aussieht:

#include "apdefap.h"
void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)
{
DWORD dwHelp1,dwHelp2,dwHelp3,dwHelp4,dwHelp5,dwHelp6,dwHelp7,dwHelp8,dwHelp9,dwHelp10,dwHelp11,dwHelp12,dwHelp13,dwHelp14,dwHelp15,dwHelp16;
// bit 24
dwHelp1=GetTagDWordWait("Variable");
dwHelp2=dwHelp1|256;
SetTagDWordWait("Variable",dwHelp2);
// bit 25
dwHelp3=GetTagDWordWait("Variable");
dwHelp4=dwHelp3&(0xFFFFFFFF^0x200);
SetTagDWordWait("Variable", dwHelp4);
// bit 26
dwHelp5=GetTagDWordWait("Variable");
dwHelp6=dwHelp5&(0xFFFFFFFF^0x400);
SetTagDWordWait("Variable", dwHelp6);
// bit 27
dwHelp7=GetTagDWordWait("Variable");
dwHelp8=dwHelp7&(0xFFFFFFFF^0x800);
SetTagDWordWait("Variable", dwHelp8);
// bit 28
dwHelp9=GetTagDWordWait("Variable");
dwHelp10=dwHelp9&(0xFFFFFFFF^0x1000);
SetTagDWordWait("Variable", dwHelp10);
// bit 29
dwHelp11=GetTagDWordWait("Variable");
dwHelp12=dwHelp11&(0xFFFFFFFF^0x2000);
SetTagDWordWait("Variable", dwHelp12);
// bit 30
dwHelp13=GetTagDWordWait("Variable");
dwHelp14=dwHelp13&(0xFFFFFFFF^0x4000);
SetTagDWordWait("Variable", dwHelp14);
// bit 31
dwHelp15=GetTagDWordWait("Variable");
dwHelp16=dwHelp15&(0xFFFFFFFF^0x8000);
SetTagDWordWait("Variable", dwHelp16);
}

Damit wird in einem Wort ein Bit gesetzt und alle anderen Bit rückgesetzt, in meinen Augen nichts Besonderes.
Leider ist die Bearbeitungszeit dieses Skriptes sehr sehr langsam, da ich mehrere dieser Scripte in einem Bild habe kann es bis zu 5sek dauern, bis alle Signale richtig zugeordnet sind.

Woran kann das liegen? Sind Scripte so langsam?
Was kann ich machen um den Vorgang zu beschleunigen?

Viele Dank für deine/eure Hilfe.
 
Die wait-funktionen lesen direkt aus der Steuerung. Das kann natürlich etwas dauern. Ist das für deine Funktion notwendig. Du liest auch immer wieder die Variable "Variable" aus. Das reicht auch wenn du das einmal machst.
 
Zurück
Oben