Ich versuche ein GL070E als Modbus Master mit einem selbst programmierten Modbus Client (Unit ID 2) zum Laufen zu kriegen. Ich verwende aktuell nur die Modbus Adresse 40003, um den Zustand in einer "Multi-State-Display" Komponente anzeigen zu lassen. Sie kann die Werte 0,1 und 2 annehmen. Die Kommunikation läuft aktuell über RS232 8N2.
Über 2 FTDI /USB Adapter kann ich mitloggen, was auf RX und TX der RS232 Verbindung zwischen dem STM32 Mikrocontroller und dem HMI Panel passiert.
Gesendet wird vom Panel:
02 03 9C 42 00 01 0A 7D -
also übersetzt: Read from unit ID 2 holding register 40003, 1 Register + CRC
Der STM32 empfängt das und sendet als Antwort:
02 03 02 00 01 3D 84
Unit ID, Function Code, 2 Byte , Daten 0x0001 und CRC
Das sieht doch korrekt aus, oder? Die CRCs sollen auch ok sein, da gibts CRC Rechner im Internet.
Das Ganze läuft in Endlosschleife flüssig durch in den Terminals, diese Anfrage und Antwort wird ständig wiederholt.
Aber auf dem Panel wird nichts angezeigt, nur nach einigen Sekunden:
[2] PLC : No response: 00-02-0
In Kinco DTools 4.0.0 ist HMI0 das GL070E und der STM32 ist als PLC_0_2 vom Typ "Modbus RTU Extended" eingetragen, damit die 4x Adressen verfügbar sind. Kommunikation läuft über COM0 vom GL070E. Firmware Update (via DTools) hat nichts gebracht.
Hat jemand einen Tipp wo die Ursache liegt?