Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Also am Ende hat es nicht geholfen, alle DBs gleich einzustellen. Warum auch immer. Ich habe jetzt ein Handshake gebaut, nur Bild wechseln wenn ein Ack vom Befehl kam. War jetzt etwas aufwendiger, dafür funktioniert es sauber.
Ich sehe gerade ich nutze doch eine Variable aus einen nicht optimierten Datenbaustein. :confused::oops:
Also werden die Werte laut Handbuch als "Call-by-value" übergeben und nicht "by reference". Das heißt am Ende ja nur alle DBs und FBs anpassen und schon ist es "gelöst"?
Tatsächlich lag es am InOut. Ich kopiere die HMI Daten vor fb Aufruf in eine "Zwischen DB", dann fb Aufruf und danach zurückkopieren. So wurde es auch von Siemens vorgeschlagen. Jetzt lief es geschmeidig.
Also es funktioniert besser, aber selbst mit Timeout noch nicht 100%. Habe mit Siemens telefoniert und der meinte wohl es kann am IN/OUT liegen. Da ich die HMI Variablen dort auch verwenden und zwischendurch überschrieben werden. Da gibt es wohl viele die das Problem mit neueren Steuerungen haben.
Ja try catch finally ist klar :) Komme eher aus C#, aber dort ist es ja genauso.
Ich frag mich nur, wann in dieser Konstellation ein catch ausgelöst werden kann. Wenn der Befehl nie gesetzt wird. Ohne das try catch wird wohl, falls der Befehl nicht erfolgreich geschrieben wurde trotzdem mein...
Das ist die vollständige Variante ja :)
Aber wann kommt er in den catch? Versucht er den Befehl so lange zu schreiben wie es geht oder hat er ein Timeout?