TIA TIA V13 Bug

DeltaMikeAir

User des Jahres 2018; 2023
Beiträge
22.194
Reaktionspunkte
7.378
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich nutze TIA V13 SP1 UP3. Ich habe vermutlich einen Firmware Bug gefunden.
Wir nutzen eine 1511-1 PN.

Folgender Code ist in der Steuerung:

UN T 10
L S5T#50ms
SE T 10

U T10
SPBN TEST
L MW 10
L 1
+I
T MW 10

TEST:NOP 0

L MW 10
T AW 0

L Taktmerker
T AB3


Das Taktmerkerbyte wird ständig auf den Ausgängen angezeigt. Der Zähler auf MW 10 zählt nur, wenn
beobachten an ist. Dann rattert er hoch und zählt. Sobald man beobachten ausschaltet, stoppt das
zählen. Das Taktmerkerbyte wird allerdings immer ausgegeben, egal ob beobachten an oder aus.

Ein ähnliches Verhalten wurde bereits mit der CPU 319 entdeckt:

http://www.sps-forum.de/simatic/32863-bug-319-3-pn-dp-v2-8-2-3-bei-sequenz-tak-t-md-tak-d.html

Siemens sagt: Bitte Firmware V1.7 auf die CPU spielen. Die ist allerdings schon drauf.

Viele Grüße
 
Probier mal nicht den Timer direkt auf seinen Eingang zurückzukoppeln, sondern den Timer erst einem Merker zuzuweisen und damit dann wieder auf dein Eingang zu gehen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
also es ist schon klar, dass der AWL Code nicht sauber programmiert ist. Wir würden dass so auch nicht einsetzen.
Es geht hier rein um das Verhalten, dass ein Teil vom Programmcode nur bearbeitet wird, wenn beobachten an hat.
Mit Grüßen
 
Es geht hier rein um das Verhalten, dass ein Teil vom Programmcode nur bearbeitet wird, wenn beobachten an hat.
VKE-bedingter Code wird bearbeitet, wenn die Bedingung dahin verzweigt. Der Code wird nicht deshalb abgearbeitet, weil die Zeilen beobachtet werden, sondern weil anscheinend das VKE durch das Beobachten beeinflußt wird.

Die Zeit des SE-Timers wird statistisch (fast) immer außerhalb der ersten 3 Zeilen ablaufen, so daß schon bei der ersten Zeile "UN T10" erkannt wird, daß T10 TRUE geworden ist --> VKE wird FALSE --> bei "SE T10" wird der T10 zurückgesetzt --> das nachfolgende "U T10" wird (fast) nie TRUE ergeben --> Die Verknüpfung des Timers mit sich selbst ist ein Programmierfehler, es muß mit einem Zwischenmerker gearbeitet werden, damit das T10 = TRUE für einen Zyklus lang erkannt wird.

Daß man einen Zwischenmerker braucht hatte ich Dir auch schon in Deinem letzten Thread geschrieben.

Neu bei der S7-1500 ist nun, daß anscheinend durch das Beobachten das erste "UN T10" noch nicht erkennt, daß der Timer eigentlich schon abgelaufen ist (wird der Timer da möglicherweise erst nach der Abfrage oder garnicht aktualisiert?). Oder das Beobachten beeinflußt auf anderem Weg das VKE?

Ohne Deinen Programmierfehler würde der Bug aber vermutlich garnicht auffallen. Immerhin stürzt die CPU durch das Beobachten ja nicht mit Ausnahmefehler ab. ;)
Nerv' Siemens! Teile Siemens mit, daß der Bug in der aktuellen Firmware V1.7.0 drin ist.

Harald
 
Zurück
Oben