komme irgendwie leider nicht weiter - bin wohl zu neu in IPS.
Folgendes:
Ich sende einen HEX Code an die RS232 Schnittstelle und das Gerät an dieser sendet einen HEX Code zurück.
Verbindung steht und funktioniert auch.
Wie lese ich denn die RS232 Befehle ein?
Das mit Registrier Variablen habe ich gelesen, aber irgendwie wohl noch nicht verstanden.
Instanz Serial Port
Darunter die String Variable
dann das Skript mit SetValue($_IPS[‚VARIABLE‘], $_IPS[‚VALUE‘]);
baue ich die Anfrage an die RS232 davor?
Der Einfachheit/Verständnis halber würde ich das in zwei Scripte aufteilen. Das eine Script macht ‚Senden an Schnittstelle‘ (das hast du schon) und das andere Empfangen (Register Variable).
Du erzeugt eine Instanz vom Typ Register Variable sowie ein Script, nenne wir es ‚Empfangen von RS232‘. Die RegisterVariable erhält als Ziel dieses Script und als Gateway (oben im Menü Gateway ändern) den seriellen I/O (mit der ID 12345 aus deinem Beispiel).
Jetzt baust du in das Empfangsscript mal ein print $_IPS[‚VALUE‘]; und öffnest den Meldungs-Dialog.
Wenn du das Ergebnis aus mehreren Abfragen zusammensetzen musst, NICHT SetValue verwenden sondern RegVar_SetBuffer. Sobald du dann aus mehreren Durchläufen in Kombination mit RegVar_GetBuffer deine Information vollständig zusammengesetzt hast, kannst du das Ergebnis in eine normale Variable mit SetValue setzen.
Scheinbar werden bei den HEX Werten nun immer die AnfangsNullen abgschnitten.
Also aus „03“ wird dann nur „3“ ausgegeben.
Kann man das ändern?
Ferner, wenn ich aus einem längeren HEX Wert nur bestimmte Stellen analysieren will, wie bekomme ich die heraus? [Das 1. Problem muss dafür natürlich gelöst sein, da ich sonst nicht die richtige stelle erwischen könnte 9
Das wird ein Anzeige/Konvertierungsfehler sein. Lass dir das ganze mal umgerechnet anzeigen. Z.B. mit hexdec, hexbin, etc. Einfach mal ein wenig spielen.