TIA Modbus Kommunikation (SPS zu MPA) -> Fehlerbehebung von Modbus_Master

Zuviel Werbung?
-> Hier kostenlos registrieren
Ich bin etwas schlauer geworden, das Anschlusskabel war falsch gepolt. Der Abgang A1 lag am Pol. 7 und nicht am Pol. 8 an...
Nun leuchten auch beide LED´s am CM-Modul. Also sendet und empfängt er nun auch.


Nur schmeißt er mir nun den nächstens Fehler... 😅

In diesem Bild weiter unten werden noch Abschlusswiederstände erwähnt, sind diese intern im CM verschalten.
Kann es sein das diese eventuell zugeschalten werden müssen, gibt es hierzu irgendwelche Einstellmöglichkeiten?

1715945530700.png


1715945350699.png


Wie bereits erwähnt wurde mir versichert das niemand die Standard-Settings (Baudrate, Parität und Stoppbitanzahl) verändert haben kann.
Ich werde nachher versuchshalber nochmal die Adern in der MPA tauschen, ansonsten muss ich vielleicht eine "neue" MPA anfodern um sicher ausschließen zu können das diese doch nicht anderst parametriert ist als gedacht.
 

Anhänge

  • 1715945331251.png
    1715945331251.png
    59,9 KB · Aufrufe: 4
Hallo,

setz mal einen Abschlußwiderstand. Bei Modbus RTU mit RS485 sagt man meistens 120 Ohm, Siemens hat da irgendwie immer 220 Ohm. Die beiden anderen Widerstände benötigst Du nicht wenn Du die Vorspannung aktivierst. Das kann schon helfen. Bei der MPA ist der Widerstand auch aktiviert (Modbus Terminierung)?

Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

setz mal einen Abschlußwiderstand. Bei Modbus RTU mit RS485 sagt man meistens 120 Ohm, Siemens hat da irgendwie immer 220 Ohm. Die beiden anderen Widerstände benötigst Du nicht wenn Du die Vorspannung aktivierst. Das kann schon helfen. Bei der MPA ist der Widerstand auch aktiviert (Modbus Terminierung)?

Gruß
Wenn du mir sagst wie und wo ich den setzen soll dann mach ich das. :)
Beim MPA ist das bereits geschehen, der wir dort per DIP-Schalter aktiviert.
 
Ja aber das muss doch intern im CM verschalten sein... ich kann mir ja schlecht einen Wiederstand zwischen Stecker und Buchse einlöten?!
 
@Thruser Wir haben den Widerstand zwischen die beiden Anschlüsse am Slave eingeschraubt, einmal mit 120Ohm und einmal mit dem von Siemens empfohlenen 220Ohm Widerstand. Dann habe ich das CM Modul jeweils einmal mit vorbelegter Leitung und je einmal ohne betrieben. Das hat jedoch leider zu keinem weiteren Ergebnis geführt. Jetzt wirft er mir wieder folgenden Fehlercode: 16#81E1.

Gestern ist mir folgendes noch aufgefallen - wenn ich den Master lang genug laufen lasse dann schließt er den Master tatsächlich nach einiger Zeit auf ab (in diesem Fall 3x) den überwiegenden Teil der Zeit wirft er natürlich den Fehler (1920x)... aber das lässt doch darauf schließen das irgendetwas mit dem Signal und dessen Auswertung nicht stimmt. Scheinbar ist die Qualität nicht gut genug, aber ausreichend gut das dies über die Menge der Signale dann doch ab und an zu dessen Auswertung kommt?!

ohne Abschlusswiderstände:
1716360741439.png

mit Abschlusswiderstand (120Ohm): hier wird das erste mal DONE erst nach 3900x ERROR Codes geschalten...
1716361834523.png
 

Anhänge

  • 1716361794365.png
    1716361794365.png
    29,4 KB · Aufrufe: 1
Hi,

war ein paar Tage offline.

Da weiß ich dann auch nicht mehr weiter. Du hast nicht die Möglichkeit mit einem anderen CM zu testen oder vielleicht mit einem CB 1241? Zur Not mal mit einem Modbus TCP -> RTU Umsetzer probieren, falls die Ethernet Schnittstelle genutz werden kann.

Der Befehl für die Anforderung funktioniert aber trotzdem noch, die MPA reagiert noch?

Ansonsten mal mit dem PC einen Modbus Slave/Server simulieren, z.B. pyModSlave, und schauen ob das damit funktioniert.

Vielleicht fällt noch jemand anderem etwas ein.

Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo @Thruser,
kein Problem! Danke das du dich trotzdem wieder meldest. ;)
Leider bekomme ich auf die Schnelle kein anderes CM oder CB her, es liegt ohnehin die Überlegung nahe ob wir nicht ein CM für eine Profibus Kommunikation beschaffen da diese dann ..hoffentlich?!.. besser funktioniert...

Ich habe tatsächlich vor kurzem mit einem emulierten Modbus-Master mit serieller USB Anbindung getestet. https://modbustools.com/index.html
das hat auf Anhieb super funktioniert und somit auch den Fehlercode von Siemens entkräftet das hier etwas mit der Parametrierung/Verkabelung nicht stimmen würde.

Ich konnte sowohl schreiben als auch den gemessenen Ionisationsstrom lesen...
Das heißt es muss an der Siemens Software/Hardware liegen. Um ehrlich zu sein wundert mich das aber auch überhaupt nicht.
Bei der Programmierung der Modbus_Comm und Modbus_Master muss orderntlich gepfuscht worden sein.

Ich vermute das ich händisch an irgend einem Parameter in der untergeordneten Programmresource - Modbus_Comm / Modbus_Master etwas einstellen müsste... das selbe Spiel war ja auch bei der Auswahl der Duplex-Art... diese Einstellung sollte sich das Programm jedoch selbstständig aus der zuvor eingestellten Hardwarekonfiguration des CM ziehen (siehe Bild 1) und nicht händisch vorzunehmen sein wie in (Bild 2) zu sehen.

Ich kann meinen Frust gar nicht anders zum Ausdruck bringen als das ich mich nur wundern kann das eine Weltfirma wie Siemens eigens programmierte Bausteine anbietet (zu einer Kommunikationsart welche es seit den 90ern gibt) diese jedoch so verschachtelt und unfunktional und schlecht beschrieben sind... dann lieber keine Schnittstelle anbieten!

Bild 1 - Anwenderbezogene Hardwarekonfiguration -> Auswahl der Duplex Betriebsart... wenn man diese Einstellung vornehmen kann sollte das Programm sich diesen Parameter auch selbst ziehen!
1716881131077.png


Bild 2 - händisch vorzunehmende Einstellung am Parameter "MODE" im Modbus_Comm_Load_DB des hauseigenen Siemensbaustein
1716880922783.png
 
Hier habe ich noch einmal die Dokumentation der ausgelesenen Modbus RTU Telegramme zusammengefasst welche von der Siemens SPS gesendet/empfangen werden. Diese habe ich mit dem seriellen - USB Adapter angezapft und mit HTERM ausgelesen...


1716884827696.png
An für sich sieht das ja nicht falsch aus - jedenfalls nach der Aufschlüsselung dieser Seite Aufschlüsselung der Modbus RTU-Telegramme :

---------------AUSWERTUNG--------- WRITE REGISTERADRESSE 0----- SETZE WÄRMEANFORDERUNG
0A (Slave Adresse = 10)
05 (Functions Code - Ein Ausgangsbit schreiben)
00 00 Adresse des ersten Registers (Registeradresse 0)
...hier wird es komisch...
FF 00 Anzahl der erforderlichen Register ( FF00 HEX = 65280 DEZ) ??? <- im Siemensbaustein habe ich hier eine "1" also bei DATA_LEN angegeben...
8D 41 <- CRC Prüfsumme???


---------------AUSWERTUNG--------- READ REGISTERADRESSE 3----- GEBE IONISATIONSSTROM AUS
Wenn ich das richtig deute dann ist die erste Zeile (1,3,5) immer das von der SPS gesendete Telegramm
und das darauf folgende die Antwort der MPA (2,4,6) ???


Telegramm währen 58µA anliegen:

BEFEHL TELEGRAMM VON SPS AN MPA:
0A (Slave Adresse = 10)
03 (Functions Code - Halteregister lesen)
00 03 Adresse des ersten Registers (Registeradresse 3)
00 01 Anzahl der erforderlichen Register ( 1 )
75 71 <- CRC Prüfsumme???

ANTWORT TELEGRAMM VON MPA AN SPS:
0A (Slave Adresse = 10)
03 (Functions Code - Halteregister lesen)
00 3A ( HEX: 3A = 58 !!! Das wären die 58µA !!! )
9D Prüfsumme???
96 Prüfsumme???

Resümee: Auf den ersten Blick erscheinen die Telegramm nicht so abwegig aber der Siemens Baustein ist zu dumm diese zu verwerten.
Vielleicht ist jemand von euch etwas vertrauter mit diesen Telegrammen und kann weitere Rückschlüsse daraus ziehen weshalb der Modbus_Master immer wieder mit diversen Fehlercode antwortet.
 

Anhänge

  • 1716884281653.png
    1716884281653.png
    14,3 KB · Aufrufe: 0
Zuletzt bearbeitet:
Es funktioniert... man muss nur wissen welche Einstellungen man vorzunehmen hat. :sick: Glücklicherweise habe ich im Netz folgenden Beitrag gefunden:
https://support.industry.siemens.com/forum/de/en/posts/modbus-rs485-error-81e2/197596

MODE = 4 <- hatte ich bereits
letztlich lag es an
ichar_gap = 0 und line_pre = 2 :poop:

Wie bereits erwähnt wirklich anwenderfreundlich sind diese Bausteine nicht.
Ich hoffe ich kann jemand anderem mit diesem Beitrag das Leben erleichtern...

Grüße und nochmal Danke an alle die mitgelitten haben! @Thruser @RONIN

1716896931128.png
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

an den Parameter habe ich ganz zu Anfang auch einmal gedacht. Das Problem hatte ich schon mal bei einem CM für eine 1500. Dazu steht aber nichts im Handbuch und der Hilfe, daher ging ich davon aus der ist hier nicht anwendbar. Damals ging eine 1200 mit CB 1241 anstandslos, nur das Modul für die 1500 hatte Probleme.

Schön das es endlich läuft.
 
Zurück
Oben