Sorry das ich nicht geanwortet habe, aber momentan habe ich selber recht viel um die Ohren ......
Das hier immer Bytes übergeben werden, liegt wohl dran das der Ersteller des Programms das so einfacher gefunden hat.
In deinem Code-Ausschnitt wird ja genau das gemacht was ich dir schon geschrieben hatte. Registerkommunikation im schreibzugriff für Register 2 aktiviert.
Dann das Low-Word der Sollposition byteweise in das Register geschrieben und am Ende noch bestätigt ob die richtige Antwort im Statusbyte anliegt.....
Soweit ich das noch in Erinnerung habe, kann man in AWL einzelne Bytes nur mit B#16# HEX-Wert beschreiben. Da möge mich ein Step7 Guru aber auch gerne korrigieren. Beim hin und herrechnen zw. Bitmuster und Hex-Wert hilft der Windows -Taschenrechner.
Kann ich davon ausgehen das das Programm aus dem der Ausschnitt stammt funktioniert?
Der Positionswert ist dort in einem Datenbaustein gespeichert. Wahrscheinlich als WORD (DBW 42). Wenn die Positionen nicht größer als 65535 sind reicht ein Wort aus. Anonsten brauchst du ein Doppelwort (z.B. DBD 42... DBB42 - DBB45). Jetzt müssen die ersten beiden Bytes in Register 2 und die letzten beiden Bytes in Register 3 geschrieben werden....
Ich weiss jetzt nicht wie ich dir noch mehr Helfen kann. Ich habe weder die Hardware um selber zu testen, noch ist mir immernoch nicht 100%ig klar wo genau es bei dir hängt.
Wenn du ein Programm geschrieben hast, kannst du mir gern das Archiv schicken und ich schau da mal rein wenn ich etwas Luft habe (Hab aber nur Step7, kein TIA)
PS. evtl kannst du dein Problem ja nochmal hier im Siemens- Unterforum vortragen. Vieleicht findet sich da ja doch noch der ein oder Andere der Ahnung hat, aber selten hier ins
CodeSys/Beckhoff Forum guckt.