-> Hier kostenlos registrieren
Hello Forum,
mein Ziel ist eine Grafikliste "Sanduhr" mit insgesamt 8 Grafiken zyklisch durchlaufen zulassen.
Das erzeugt den Effekt des Sandflusses.
Ich habe also ein grafisches EA-Feld angelegt und die Grafikliste hinterlegt.
Ich versuche gerade ein Skript zu schreiben, mit dem ich eine interne HMI-Variable (int) hochzähle. Diese
interne Variable läuft dann durch meine Grafikliste und blendet die entsprechenden Bilder ein.
Dieses Skript soll solange laufen wie eine Bool Variable von der SPS aktiv ist. Sobald sie nicht mehr aktiv ist,
soll das Skript beendet werden.
Hat da jemand eine Idee?
mein aktuelles Skript (beim ausführen hängt sich der Skriptserver auf):
BOOL bTAG_GET;
bTAG_GET = GetTagBit("tag_4");
printf("VOR WHILE\r\n");
while (bTAG_GET == 1)
{
SetTagSWord("INTERN_SANDUHR",1);
printf("SANDUHR = 1\r\n");
WaitMS(1000);
SetTagSWord("INTERN_SANDUHR",2);
printf("SANDUHR = 2\r\n");
WaitMS(1000);
SetTagSWord("INTERN_SANDUHR",3);
printf("SANDUHR = 3\r\n");
WaitMS(1000);
SetTagSWord("INTERN_SANDUHR",4);
printf("SANDUHR = 4\r\n");
WaitMS(1000);
SetTagSWord("INTERN_SANDUHR",5);
printf("SANDUHR = 5\r\n");
WaitMS(1000);
SetTagSWord("INTERN_SANDUHR",6);
printf("SANDUHR = 6\r\n");
WaitMS(1000);
SetTagSWord("INTERN_SANDUHR",7);
printf("SANDUHR = 7\r\n");
WaitMS(1000);
SetTagSWord("INTERN_SANDUHR",0);
printf("SANDUHR = 0\r\n");
WaitMS(1000);
}
printf("NACH WHILE\r\n");
SetTagByte("INTERN_SANDUHR",0);
return(bTAG_GET);
mein Ziel ist eine Grafikliste "Sanduhr" mit insgesamt 8 Grafiken zyklisch durchlaufen zulassen.
Das erzeugt den Effekt des Sandflusses.
Ich habe also ein grafisches EA-Feld angelegt und die Grafikliste hinterlegt.
Ich versuche gerade ein Skript zu schreiben, mit dem ich eine interne HMI-Variable (int) hochzähle. Diese
interne Variable läuft dann durch meine Grafikliste und blendet die entsprechenden Bilder ein.
Dieses Skript soll solange laufen wie eine Bool Variable von der SPS aktiv ist. Sobald sie nicht mehr aktiv ist,
soll das Skript beendet werden.
Hat da jemand eine Idee?
mein aktuelles Skript (beim ausführen hängt sich der Skriptserver auf):
BOOL bTAG_GET;
bTAG_GET = GetTagBit("tag_4");
printf("VOR WHILE\r\n");
while (bTAG_GET == 1)
{
SetTagSWord("INTERN_SANDUHR",1);
printf("SANDUHR = 1\r\n");
WaitMS(1000);
SetTagSWord("INTERN_SANDUHR",2);
printf("SANDUHR = 2\r\n");
WaitMS(1000);
SetTagSWord("INTERN_SANDUHR",3);
printf("SANDUHR = 3\r\n");
WaitMS(1000);
SetTagSWord("INTERN_SANDUHR",4);
printf("SANDUHR = 4\r\n");
WaitMS(1000);
SetTagSWord("INTERN_SANDUHR",5);
printf("SANDUHR = 5\r\n");
WaitMS(1000);
SetTagSWord("INTERN_SANDUHR",6);
printf("SANDUHR = 6\r\n");
WaitMS(1000);
SetTagSWord("INTERN_SANDUHR",7);
printf("SANDUHR = 7\r\n");
WaitMS(1000);
SetTagSWord("INTERN_SANDUHR",0);
printf("SANDUHR = 0\r\n");
WaitMS(1000);
}
printf("NACH WHILE\r\n");
SetTagByte("INTERN_SANDUHR",0);
return(bTAG_GET);