Fehler im RoboPro Listenelement
Verfasst: 01 Aug 2017, 17:03
Hallo ft,
Im Offline-Betrieb werden von Listenelementen ausgegebene negative Ganzzahl-Werte nicht von allen Operatoren korrekt weiterverarbeitet. Der Fehler tritt mit RoboPro 4.2.4 sowohl auf dem TXT als auch dem TX auf. Im Online-Betrieb tritt das Problem nicht auf.
Das verlinkte Testprogramm reproduziert den Fehler (offline).
Im Online-Betrieb des Testprogramms zeigen die Ausgaben im Hex-Format bei den negativen Listenausgaben ein 32 Bit breites Zweierkomplement. Werden Integer Werte intern als 32 Bit abgelegt? Ist evtl. der Cast runter auf die RoboPro-üblichen 16 Bit fehlerhaft?
Als Workaround kann man in bestehenden Programmen einen einfachen "*1" oder "+0" Operator o.ä. zwischen Listenausgang und Empfänger des Wertes einfügen.
Bitte möglichst bald fixen oder besser noch RoboPro auf zeitgemäße 32-Bit Integer umstellen. Intern scheint das ja schon geschehen zu sein.
Beste Grüße,
Helmut
Im Offline-Betrieb werden von Listenelementen ausgegebene negative Ganzzahl-Werte nicht von allen Operatoren korrekt weiterverarbeitet. Der Fehler tritt mit RoboPro 4.2.4 sowohl auf dem TXT als auch dem TX auf. Im Online-Betrieb tritt das Problem nicht auf.
Das verlinkte Testprogramm reproduziert den Fehler (offline).
Im Online-Betrieb des Testprogramms zeigen die Ausgaben im Hex-Format bei den negativen Listenausgaben ein 32 Bit breites Zweierkomplement. Werden Integer Werte intern als 32 Bit abgelegt? Ist evtl. der Cast runter auf die RoboPro-üblichen 16 Bit fehlerhaft?
Als Workaround kann man in bestehenden Programmen einen einfachen "*1" oder "+0" Operator o.ä. zwischen Listenausgang und Empfänger des Wertes einfügen.
Bitte möglichst bald fixen oder besser noch RoboPro auf zeitgemäße 32-Bit Integer umstellen. Intern scheint das ja schon geschehen zu sein.
Beste Grüße,
Helmut