TIA SCL ARRAY bearbeiten

Zuviel Werbung?
-> Hier kostenlos registrieren
Ok ich habs jetzt mal angeworfen und irgendwie scheints nicht zu gehen
Code:
FOR
    #i3 := 1 TO 128 DO
    IF #TRIGGER_ALARMS[#i3] =1 THEN
        #Send_Telegram := #TELEGRAM[#i3];
     
        #Send_Request_Alarm := TRUE;
        #TRIGGER_ALARMS[#i3] := FALSE;
        EXIT;
    END_IF;
END_FOR;

Gegeben ist TRIGGER_ALARMS ist 127 und 128 auf 1 und in TELEGRAM[127] und [128] steht was drin...
Jetzt sollte eigentlich der Wert aus TRIGGER_ALARMS [127] in Send_Telegram stehen und TRIGGER_ALARMS [127] resettetwerden (sprich auf 0 gesetzt sein}
der Zaehler i3 stehteaber auf 128 , Send_Telegram ist jungfräulich und TRIGGER_ALARMS [127] steht weiterhin auf 1.....

Ich habe woanders nochmal das selbe Konstrukt, allerdings ist da alles leer und der Zähler steht bei 129 ... muss ich den Zaehler nicht nullen ?

Gruss Gerd
 
Moin gerdh,

Gegeben ist TRIGGER_ALARMS ist 127 und 128 auf 1 und in TELEGRAM[127] und [128] steht was drin...

nur zum abklären:
TRIGGER_ALARMS[127) ist 'true' ?
TRIGGER_ALARMS[128) ist 'true' ?
TELEGRAM[127] = 'TEXT127' ?
TELEGRAM[128] = 'TEXT128' ?

TRIGGER_ALARMS ist ein Array[1..128] of bool ?
TELEGRAM ist ein Array[1..128] of "irgend wein Datentyp, der mit Send_Telegram gleich ist" ?
Send_Telegram ist eine globale oder statische Variable ?

Hinweis: es geht im Code auch ==> IF #TRIGGER_ALARMS[#i3] THEN (die Variable ist ja schon true. Es braucht kein Ergebnis gebildet zu werden, das true ist).



Jetzt sollte eigentlich der Wert aus TRIGGER_ALARMS [127] in Send_Telegram stehen und TRIGGER_ALARMS [127] resettetwerden (sprich auf 0 gesetzt sein}
der Zaehler i3 stehteaber auf 128 , Send_Telegram ist jungfräulich und TRIGGER_ALARMS [127] steht weiterhin auf 1.....

Send_Telegram wird immer angezeigt mit dem letzen, was aus der Schleife hinein geschrieben wurde. Also, wenn ein anderer TRIGGER_ALARMS
[*] irgendwann mal true ist, wird Send_Telegram mit dem jeweiligen Inhalt überschrieben. Steht in TELEGRAM[128] was drin? Wann und wie werden die TRIGGER_ALARMS-Bits gesetzt?


Ich habe woanders nochmal das selbe Konstrukt, allerdings ist da alles leer und der Zähler steht bei 129 ... muss ich den Zaehler nicht nullen ?

Du musst den Zähler nicht "nullen". Der Zähler wird schon durch die FOR-Schleife initialisiert:
FOR #i3 := 1 TO 128 DO // Also i3 wird immer mit 1 initialisiert.

VG

MFreiberger
 
Hi Ich habe gerade festgestellt das ich ein Idiot bin :)
Ich habs verkehrt kopiert.... ist halt immer dir krux wenn namensgegungen sehr aehnlich sind...
Jetzt scheints zu fuktionieren...

Gruss Gerd
 
Zurück
Oben