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