# Modbus TCP mit Siemens Sentron PAC 3200



## Creev (17 Dezember 2015)

Hallo,

folgendes Problem:

Ich will die Daten von einem Netzauswertegerät PAC 3200 mittel Modbus TCP in meine Wago 750-880 abholen. Dazu benutze ich den Ethernet_Modbusmaster_TCP Baustein aus der ModbusEthernet_04 Libery von Wago.
Anpingen über Aufgabenaufforderung geht ohne Probleme. Wenn ich am Baustein den Startbefehl anstoße bringt er dann nach den eingestellten 5 Sekunden einen Timeout. 
Über Wireshark kann ich sehen das wenn ich den Start anstoße das die Wago SPS eine Anfrage abschickt, aber das Netzauswertegerät antwortet nicht.

Mit dem gleichen Baustein, spreche ich im gleichen Projekt auch noch einen Danfoss Frequenzumrichter an, bei dem Funktioniert alles ohne Probleme. 

Im Anhang noch einen paar Bilder als Info.

Wago 750-880: 192.168.1.1
PAC 3200: 192.168.1.11


----------



## .:WAGO::016346:. (17 Dezember 2015)

Hallo Creev,

generell empfehlen wir auf dem 750-88x und PFC200 Zielsystem die Verwendung der WagoLibModbus_IP_01.lib anstatt der ModbusEthernet_0x.lib.
Wenn über Wireshark der Verbindungsaufbau und die Modbus Query zu sehen sind scheint es auf der Masterseite soweit zu funktionieren.

Zu dem Slave können wir leider nicht weiterhelfen.


Grüße


----------



## D.K (10 April 2016)

Hallo Creev,

hast du eine Lösung für dieses Problem gefunden ?

Habe das Problem auch...

Grüße


----------



## Lars Weiß (11 April 2016)

Trag doch mal als UnitID bitte eine 1 ein


----------



## D.K (12 April 2016)

Hallo Lars,

danke für die schnelle Antwort.

UnitID = 1 war ein guter Tipp. Nun habe ich keine Fehler anstehen.

Allerdings bekomme ich keine Werte vom PAC3200. Ich sehe unter der eingestellten IP Adresse keine Kommunikation.

Hat jmd noch ein Tipp für mich ?

Mit der Wago Lib WagoLibModbus_IP_01.lib habe ich auch kein Erfolg. Alle Teilnehmer sind anpingbar und Antworten auch.

Grüße


----------



## Lars Weiß (12 April 2016)

Die Byte-Order von Siemens passt nicht zu der von WAGO...


----------



## Henny (19 April 2016)

Hallo Lars

Kannst du bitte erklären was der zusammen hang ist zwischen Siemens byte-order und keine Kommunikation zwischen Wago 750-881 und Pac3200?
Hatte gedacht dass daten empfangen werde wobei möglicherweise ein byte-swap ist aber gar keine Kommunikation?

Muss General doch möglich sein um mit jedem modbus tcp Client Kommunikation auf zu setzen mit ein Siemens modbus tcp server?

Viele Dank in voraus.

Mit freundlichen Gruß
Henny


----------



## Lars Weiß (20 April 2016)

Oh, so habe ich das nicht gemeint. Wenn die byte-order nicht passt kommen natürlich Daten, nur sind sie unbrauchbar.


----------



## HMIman (20 April 2016)

Hallo,

ich würde immer erst mal mit einem Modbus-Tool dran gehen und den Slave auslesen/testen. Ich benutze meist ModbusPoll www.modbustools.com.
Tut der Slave das was ich erwarte?
Kommen die Daten so wie ich sie erwarte?
Kann ich die Daten richtig interpretieren?
Passt die Adressierung (0-basierend, 1-basierend)?
Gibt es Byte-Dreher?
Nach einem ersten Test mit ModbusPoll sind i.d.R. alle diese Fragen beantwortet. Außerdem ist ModbusPoll 100% Modbus-kompatibel (s. www.modbus.org). Das bedeutet, wenn sich mein Master, z. Bsp. WAGO, anschl. genauso verhält wie ModbusPoll ist alles klar. Dann bekommt man das sehr schnell ans Laufen.

Mein Tipp: ModbusPoll !!! (34 Tg. Test, 129,- $)

Gruß
HMIman


----------



## Henny (20 April 2016)

Lars Weiß schrieb:


> Oh, so habe ich das nicht gemeint. Wenn die byte-order nicht passt kommen natürlich Daten, nur sind sie unbrauchbar.



Danke Lars

Hatte ich auch so gedacht 

Mit freundlichen Gruß
Henny.


----------



## Sebi87 (Mittwoch um 14:16)

Hallo zusammen,

ich weis, der Thread ist uralt, aber ich frage trotzdem mal nach.
Hat sich da eine Lösung gefunden ?
Ich habe an einem 750-8210 ein PAC3220 hängen und lese es über Modbus TCP aus.
Werte kommen, ich hole ein Array of Word ab und dachte ich bau aus jeweils 2x Word, ein DWORD um daraus dann wieder die Register zu haben.
Egal wie ich es drehe und wende, da kommt nichts sinnvolles raus. Wenn ich die Werte als REAL auslesen will, kommt gar nichts zustande.
Kann mir einer sagen wie ich das zu laufen bekomme ?
Wenn ich mich mit Qmod Master direkt aufs PAC verbinde, kann ich alles schön als FLOAT auslesen (Parameter: FC3, Start Adress=2, Number of Registers = 80, Data Format = Float).
Wenn ich im eCockpit dem FbMbMasterTcp als Read Adress eine 2 einstelle, wirft er mir n Fehler hin und macht gar nichts.

Grüße
Sebi


----------



## HMIman (Mittwoch um 15:28)

Hallo Sebi87,
ist die Modbus-Adressierung Deiner Tools (750-8210 u. Qmod) 0- oder 1-basierend? Du könntest mit dem 750 die Modbus-Adr. 1 lesen (altern. auch die Adr. 3 ausprobieren), und dann aber als Doppelwort (kein Array_of_Byte). Die beiden aufeinanderfolgenden Wörter die Du bekommst dann als 32 Bit Float-Wert interpretieren.
Beim Float-Format gibt es auch unterschiede (s. https://de.wikipedia.org/wiki/Gleitkommazahl).
Gruß HMIman


----------

