-> Hier kostenlos registrieren
Hallo Forumsteilnehmer,
ich habe die Hoffnung, dass hier einige Profis zur Modbus Kommunikation mitlesen.
Ich versuche eine Kommunikation zwischen einer Simatic S7 1200 CPU mit Schnittstelle RS422/485 über PtP und einem China Generator zu Programmieren.
Ich habe bevor ich den Generator bekommen habe, die Kommunikation zwischen zwei Steuerungen getestet und das hat auch funktioniert.
Wenn ich jetzt aber als Master die ersten Worte vom Generator lesen will bekomme ich ständig den Fehler 80C8 Slave Timeout und beim Generator leuchtet
die RX Led (Beschriftung am Gerät) konstant. Es könnte aber auch die Tx Led sein, laut Beschreibung (Beschriftung am Gerät und in der Anleitung sind vertauscht).
Wie würdet Ihr folgende Beschreibung verstehen:
Modbus communication protocol (Modbus_RTU, 8/N/1, Slaver), Only Modbus_RTU slaves are supported, all parameters ere 2 bytes long.
Ich würde das so verstehen, das die Siemens CPU als Slave arbeiten muss. Aber ein Beispiel vom Hersteller ist als Master, funktioniert aber so nicht.
Als erstes liest das Beispiel per MB_MASTER (MB_ADDR = 1, MODE = 0, DATA_ADDR = 30001, DATA_LEN = 4), dann kommt sofort der beschrieben Fehler.
Laut Beschreibung wäre es das erste Register:
1. 01H Read Coil Status with Address Range 0x0000 - 0x0003, 4 Worte.
2. 02H Read Input Status with Address Range 0x0000 - 0x0000, 1 Wort.
3. 03H Read Holding Register with Address Range 0x0000 - 0x0019, 20 Worte.
4. 04H Read input Register with Address Range 0x0000 - 0x0005, 6 Worte.
Im Beispiel wird 01H, 02H und 04H immer von 30001 gelesen und 03H von 40769 gelesen und in verschieden DB Adressen geschrieben, wäre das so richtig?
Meiner Meinung nach muss 01H von 30001 gelesen, 02H von 30005, 03H von 40001 und 04H von 30006 gelesen werden.
Hab ich das so richtig verstanden, oder was ist da falsch?
Danke fürs lesen und die evtl. Antworten.
Gruss
Volker
ich habe die Hoffnung, dass hier einige Profis zur Modbus Kommunikation mitlesen.
Ich versuche eine Kommunikation zwischen einer Simatic S7 1200 CPU mit Schnittstelle RS422/485 über PtP und einem China Generator zu Programmieren.
Ich habe bevor ich den Generator bekommen habe, die Kommunikation zwischen zwei Steuerungen getestet und das hat auch funktioniert.
Wenn ich jetzt aber als Master die ersten Worte vom Generator lesen will bekomme ich ständig den Fehler 80C8 Slave Timeout und beim Generator leuchtet
die RX Led (Beschriftung am Gerät) konstant. Es könnte aber auch die Tx Led sein, laut Beschreibung (Beschriftung am Gerät und in der Anleitung sind vertauscht).
Wie würdet Ihr folgende Beschreibung verstehen:
Modbus communication protocol (Modbus_RTU, 8/N/1, Slaver), Only Modbus_RTU slaves are supported, all parameters ere 2 bytes long.
Ich würde das so verstehen, das die Siemens CPU als Slave arbeiten muss. Aber ein Beispiel vom Hersteller ist als Master, funktioniert aber so nicht.
Als erstes liest das Beispiel per MB_MASTER (MB_ADDR = 1, MODE = 0, DATA_ADDR = 30001, DATA_LEN = 4), dann kommt sofort der beschrieben Fehler.
Laut Beschreibung wäre es das erste Register:
1. 01H Read Coil Status with Address Range 0x0000 - 0x0003, 4 Worte.
2. 02H Read Input Status with Address Range 0x0000 - 0x0000, 1 Wort.
3. 03H Read Holding Register with Address Range 0x0000 - 0x0019, 20 Worte.
4. 04H Read input Register with Address Range 0x0000 - 0x0005, 6 Worte.
Im Beispiel wird 01H, 02H und 04H immer von 30001 gelesen und 03H von 40769 gelesen und in verschieden DB Adressen geschrieben, wäre das so richtig?
Meiner Meinung nach muss 01H von 30001 gelesen, 02H von 30005, 03H von 40001 und 04H von 30006 gelesen werden.
Hab ich das so richtig verstanden, oder was ist da falsch?
Danke fürs lesen und die evtl. Antworten.
Gruss
Volker