Modbus TCP Kommunikation über variable Ports

Watchman

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Ein "Moin" in die Runde.

Ich bin auf der Suche nach einer Lösung für mein Problem. Ich nutzen eine PFC200 als Master mit mehreren Slaves (Sensoren, und Aktoren). Die Slaves werden mit einer festen IP Adresse angesprochen. Allerdings sind diese teilweise mit unterschiedlichen Ports ansprechbar. Standardmäßig ist der Slave mit dem Port 502 konfiguriert. Allerdings gibt es Module, die mit Port 1502 oder 2502 ansprechbar sind.
In der Netzwerkansicht in e!Cockpit sind die Slaves mit dem Port 502 konfiguriert. Die Kommunikation funktioniert soweit. Jetzt wird der Slave ausgetauscht und behält die IP Adresse, jedoch ist der Port nicht mehr 502, sondern 1502. Hierzu kommt jetzt meine Frage:
Kann ich die Portkonfiguration irgendwie variabel machen oder muss ich für jeden unterschiedlichen Port einen neuen Slave samt Datenpunkte konfigurieren?

Außerdem wird in naher Zukunft das Programm in Codesys migriert. Also wäre es sinnvoll die Portkonfiguration direkt in Codesys und nicht in der e!Cockpit Netzwerkübersicht zu erstellen. In der Bibliotheksverwaltung bin ich schon auf die "WagoApplcModbus"-Bibliothek gestoßen. Allerdings kann ich mit den Bausteinen nicht wirklich etwas anfangen und bin mir nicht sicher ob ich mehrere Slaves so einbinden kann.

Es ist mein erster Beitrag und bitte entschuldigt wenn ich mich etwas unklar formuliert habe. Bei Rückfragen stehe ich gerne zur Verfügung.

Mit freundlichen Grüßen

Lukas
 
Sollen die Ports dynamisch anpassbar sein? Bei der Inberiebnahme kann der Port in den Modbus Slave Gerät Einstellungen angepasst werden. Wenn der Port dynamisch gewählt werden soll, kommst Du um die Bibliothek WagoAppPlcModbus nicht herum.

Ich sehe das Problem nicht. Zu jedem Port kann nur eine TCP/IP Verbindung aufgebaut werden. Wenn auf einen Slave über mehrere Ports zugegriffen werden soll, sind eh mehrere Verbindungen notwendig. Also mehrere FB Instanzen im Fall der Bibliothek oder mehrere Slave Geräte im Fall des Konfigurators.
 
Normalerweise wird der erste Slave (BHKW) mit dem Port 502 angesprochen. Soweit funktioniert auch alles. Werden für den Kunden aber mehrere BHKW ausgeliefert, so können diese mit den Ports 1502, 2502 und 3502 einzeln angesprochen werden. Nun wird an unserem Teststand jedes BHKW einzeln getestet. Allerdings variieren die jeweiligen Ports. Ich bräuchte jetzt also eine Lösung, bei der die Ports dynamisch ansprechbar/verstellbar sind.
 
Werden für den Kunden aber mehrere BHKW ausgeliefert, so können diese mit den Ports 1502, 2502 und 3502 einzeln angesprochen werden.
Warum wird die Port Nummer geändert? Die Geräte unterscheiden sich doch schon in der IP-Adresse und deshalb könnten auf allen Geräten die selben Ports 502 verwendet werden.
Oder hängen die Geräte alle per RS485 an nur einem Modbus Gateway? Dann adressiert man die Geräte üblicherweise über die MB Device ID, die der RS485-Adresse entspricht.
 
Ich muss noch mal fragen was bei dir dynamisch heißt.
Ist es ok das Projekt für jeden Test anzufassen, nimm weiterhin der Konfigurator und ändere den Port.
Wenn der Port ohne Programmänderung eingestellt werden soll, musst Du die Variable in der Webvisu anlegen.
 
Hi,
Warum wird die Port Nummer geändert? Die Geräte unterscheiden sich doch schon in der IP-Adresse und deshalb könnten auf allen Geräten die selben Ports 502 verwendet werden.
Oder hängen die Geräte alle per RS485 an nur einem Modbus Gateway? Dann adressiert man die Geräte üblicherweise über die MB Device ID, die der RS485-Adresse entspricht.
bei dem Moxa aus diesem Beitrag kann man die verschiedenen RS-485 Ports tatsächlich über die TCP/IP Ports unterscheiden.

Wenn man hier mit dynamischen Ports arbeiten will, muß man aber wie bereits erwähnt auf die Modbus Bibliothek zurückgreifen und nicht auf den Konfigurator.

Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich muss einfach nur den Port des jeweiligen Slaves einstellbar machen, ob über die Visu oder einen anderen Weg. Welchen Baustein muss ich dafür verwenden? Über den Konfigurator funktioniert es so nicht. Es ist keine Option, jedes mal das Programm neu zu laden.
 
Ich muss einfach nur den Port des jeweiligen Slaves einstellbar machen, ob über die Visu oder einen anderen Weg. Welchen Baustein muss ich dafür verwenden? Über den Konfigurator funktioniert es so nicht. Es ist keine Option, jedes mal das Programm neu zu laden.
Über den Konfigurator geht dein Vorhaben nicht.
In der WagoAppPlcModbus sind 2 Master enthalten. Einen davon suchst du dir aus und programmierst deinen eigen Master. Ein Beispiel ist auch dabei.
Dann über die Visu einen Port vorgeben.
 
Zurück
Oben