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
Fehler im RoboPro Listenelement
Moderator: fischertechnik Mitarbeiter
Forumsregeln
Bitte beachte die Forumsregeln!
In dieser Unterkategorie können nur fischertechnik-Mitarbeiter und Moderatoren antworten!
Bitte beachte die Forumsregeln!
In dieser Unterkategorie können nur fischertechnik-Mitarbeiter und Moderatoren antworten!
-
- fischertechnik Mitarbeiter
- Beiträge: 27
- Registriert: 09 Aug 2017, 08:39
Re: Fehler im RoboPro Listenelement
Hallo Helmut,
vielen Dank für das ausführliche Testprogramm und Ihre Hinweise, die uns bei der Verbesserung unserer Produkte eine sehr große Hilfe sind.
Im Offline-Betrieb sind die Anzeigeelemente auf dem TXT aus Kompatibilitätsgründen zum TX nicht so leistungsfähig, wie die Bedienelemente auf dem PC im Online Modus. Es gibt einige Unterschiede, die bei der Programmierung beachtet werden müssen.
Wie Sie schon beschrieben haben, lässt sich die Problematik mit negativen Zahlen auf dem TXT-Display im Offline Betrieb mit Ihrem Workaround lösen. Die andere Möglichkeit wäre, die Ausgabe auf dem TXT-Display mit dem Textelement-Block und in der Hilfe beschriebener Formatierung ##.### anzupassen.
Im Offline-Betrieb sind die Berechnungen auf dem TXT 32-Bit, weil diese direkt auf dem ARM-Prozessor umgesetzt sind.
In ROBOPro werden aus Kompatibilitätsgründen zum ROBO-Interface die Integer-Berechnungen mit dem Datentyp Int16 durchgeführt.
Freundliche Grüße
Alexander Steiger
vielen Dank für das ausführliche Testprogramm und Ihre Hinweise, die uns bei der Verbesserung unserer Produkte eine sehr große Hilfe sind.
Im Offline-Betrieb sind die Anzeigeelemente auf dem TXT aus Kompatibilitätsgründen zum TX nicht so leistungsfähig, wie die Bedienelemente auf dem PC im Online Modus. Es gibt einige Unterschiede, die bei der Programmierung beachtet werden müssen.
Wie Sie schon beschrieben haben, lässt sich die Problematik mit negativen Zahlen auf dem TXT-Display im Offline Betrieb mit Ihrem Workaround lösen. Die andere Möglichkeit wäre, die Ausgabe auf dem TXT-Display mit dem Textelement-Block und in der Hilfe beschriebener Formatierung ##.### anzupassen.
Im Offline-Betrieb sind die Berechnungen auf dem TXT 32-Bit, weil diese direkt auf dem ARM-Prozessor umgesetzt sind.
In ROBOPro werden aus Kompatibilitätsgründen zum ROBO-Interface die Integer-Berechnungen mit dem Datentyp Int16 durchgeführt.
Freundliche Grüße
Alexander Steiger