Modbus RTU -> Modbus TCP/IP mit Comserver UNI

Move

Level-2
Beiträge
510
Reaktionspunkte
58
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

ich habe die Aufgabe aus einem Gerät (Sulphur Analyzer) Daten über Modbus auszulesen.
Das Gerät besitzt nur eine RS485 Schnittstelle und somit wurde ein Phönix Umsetzer dazwischen
gesetzt (Comserver UNI Art.-Nr. 2313452)
Das Gerät wurde über den Webbrowser entsprechend parametriert aber ich vermisse hier
die Parametrieung zwischen dem Phoenix und dem Modbusteilnehmer, also die RS485 Parametrieung.
Woher weiß der Phönix welche Daten aus dem Teilnehmer geholt werden sollen.
Ist dieser Umsetzer überhaupt der richtige, hat hier jemand Erfahrung bei der Umsetzung von RTU auf TCP/IP
Gruß
Move
 
Das Gerät wurde über den Webbrowser entsprechend parametriert aber ich vermisse hier
die Parametrieung zwischen dem Phoenix und dem Modbusteilnehmer, also die RS485 Parametrieung.
Ich kenne den Phoenix Comserver nicht. Setzt der auch das Protokoll um von Modbus TCP zu Modbus RTU (Modbus Gateway)?

Woher weiß der Phönix welche Daten aus dem Teilnehmer geholt werden sollen.
Du musst in Deiner Anwendung einen ModbusTCP Client implementieren und dem sagen, welche Werte (Register) ausgelesen werden sollen. Bei Gateways ModbusTCP-zu-RTU wird meistens die RS485-Busadresse des Modbus-Slave in der Unit_ID angegeben.

Ist dieser Umsetzer überhaupt der richtige, hat hier jemand Erfahrung bei der Umsetzung von RTU auf TCP/IP
Verschiedene Anwender nutzen für diese Aufgabe das USR-DR302 für ca. 30 EUR

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,
danke Harald. Aber das sagt mir jetzt alles nichts. Klar habe ich in meiner Anwendung den MB-Client Baustein der die entsprechenden Register auslesen soll. Aber der Baustein baut keine Verbindung zum Umsetzer auf und auch ein Modustester zeigt nur Error.
Gruß
Move
 
Dann zeige uns doch mal was Du programmiert hast. Woher sollen wir wissen was Du falsch gemacht hast oder was noch fehlt?
Auf was für einem Gerät soll der Modbus Client laufen?
Mit welcher Entwicklungssoftware arbeitest Du? Welche Version?
Wie hast Du den Comserver parametriert?

Harald
 
PS, der Klassiker:
Wenn auf RS485 keine Verbindung zustande kommt, dann tausche mal testweise am Gateway/Comserver oder dem Modbus-Gerät die RS485-Leitungen an A und B.

Harald
 
Hi,
ich bin hier ja noch eine Antwort schuldig.
Die Kommunikation funktioniert jetzt einwandfrei. Bei dem Modbusteilnehmer war das Elektronikboard abgeraucht was
aus der Ferne schlecht zu erkennnen war. Nach Austausch konnte ich durch probieren mit einem Modbustester die Daten die
ich benötige auslesen und habe anschließend diese Parameter an meinem Client Baustein in der CPU angewendet, und siehe da
es funktionierte auf Anhieb.
Gruß Move
 
We have successfully used the GW MODBUS TCP/RTU 1E/1DB9 - 2702764. You can set everything there, including for the serial interface.

SLe
Would you be able to explain the function blocks and connections made in PC Worx to get that register information from the gateway to the PLC (ILC 131 ETH in my case). I would appreciate any help you are able to give me. Thank you.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

hier sind Auszüge aus der Software und die Einstellungen im GW Modbus Wandler:

Variablenarbeitsblatt:
MB_TCP_Server_V2_00_1 MB_TCP_Server_V2_00 VAR 0 0 0 0 0 0 0
MB_TCP_Server_V2_00_2 MB_TCP_Server_V2_00 VAR 0 0 0 0 0 0 0
Wandlerpuffer_1 MB2_TCP_ARR_W_0_7167 VAR_EXTERNAL 0 0 0 0 0 0 0
Wandlerpuffer_2 MB2_TCP_ARR_W_0_7167 VAR_EXTERNAL 0 0 0 0 0 0 0

Programm:
(* erste Schnittstelle *)
MB_TCP_Server_V2_00_1(xActivate:= TRUE,
xAutoAck:= TRUE,
iTCP_Port:= 502,
strPartner_IP:= FK_Adr(* Adresse Ethernet/seriell Wandler*),
tTimeout:= T#5s,
uiOffsetInputRegister:= UINT#0,
uiOffsetHoldingRegister:= UINT#0,
uiOffsetInputs:= UINT#0,
uiOffsetCoils:= UINT#0,
arrModbusData:= Wandlerpuffer_1);

Active_1 :=MB_TCP_Server_V2_00_1.xActive;
Connect_1 :=MB_TCP_Server_V2_00_1.xConnected;
Error_1 :=MB_TCP_Server_V2_00_1.xError;
Diag_1 :=MB_TCP_Server_V2_00_1.wDiagCode;
Diag_2_1 :=MB_TCP_Server_V2_00_1.wAddDiagCode;
Wandlerpuffer_1 :=MB_TCP_Server_V2_00_1.arrModbusData;

(*** Diagnose Komm-Störung ***)
IF Error_1
THEN Error1_on := Error1_on + 1;
END_IF;
R_TRIG_11(CLK:= NOT Connect_1);
IF R_TRIG_11.Q
THEN Active1_on := Active1_on + 1;
END_IF;

MfG
SLe
 

Anhänge

  • screenshots.pdf
    1,8 MB · Aufrufe: 4
Zurück
Oben