WAGO 750-8212 COM Schnittstelle RTU Modbus

Kuzzam

Level-1
Beiträge
5
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Alle!

Ich bin neu zum SPS und für ein Projekt muss ich eine Kommunikation zwischen PFC200 (750-8212) und einem Frequenzumrichter herstellen. Die Verbindung soll über die Kommunikationsschnittstelle X3 erfolgen, da das FU nur eine RS-485 Schnittstelle hat. So sieht mein Programm aus:

PROGRAM Modbus
VAR
masterModbus_1: WagoAppPlcModbus.FbMbMasterSerial;
utQuery: typMbQuery;
utResponse: typMbResponse;
T1: Ton;
myData : ARRAY [0..124] OF WORD;
xTxTrigger:Bool;
END_VAR
utQuery.bUnitID:= 5;
utQuery.uiReadAddress:= 1;
utQuery.uiReadQuantity:= 1;
utQuery.uiWriteAddress:= 0;
utQuery.uiWriteQuantity:= 0;
utQuery.bFunctionCode:= 3;



masterModbus_1 (
xConnect := TRUE,
udiBaudrate := 19200,
usiDataBits := 8,
eParity := WagoTypesCom.eTTYParity.None,
eStopBits := WagoTypesCom.eTTYStopBits.One,
eHandshake := WagoTypesCom.eTTYHandshake.None,
ePhysical := WagoTypesCom.eTTYPhysicalLayer.RS485_HalfDuplex,
eFrameType := eMbFrameType.RTU,
tTimeOut := T#200MS,
utQuery := utQuery,
utResponse := utResponse,
xTrigger := xTxTrigger

);

myData := utResponse.awData;

T1( IN := NOT xTxTrigger, PT := T#200MS);
IF T1.Q THEN
xTxTrigger:=TRUE;
END_IF

Der Aufruf erfolgt zyklisch (jedes 300ms). Der FU ist selber programmierbar und die Einstellungen stimmen miteinander überein. Ich habe eine Verbindungsbrücke mit passenden Widerständen aufgebaut. Ich habe versucht, das Programm zu exekutieren aber kam keine Antwort zu meiner Query. Ich habe den Spannungsunterschied zwischen A und B im Betrieb gemessen. Es lag bei 0.32 V ohne Änderung. Ich weiß nicht genau woran liegt's das Problem. Bin dankbar für Ihre Hilfe :)
 
Hi,
Das Problem hatte ich auch auf einmal hat bei mir die in meinem-Fall Pracht Lade Station werte gegeben ohne dass ich wusste warum aufeinmal.
Aber versuch du mal deinen tTimeOut größer zu machen.
Stimmt denn auch die Baudrate mit der des Slaves überein?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was ratest du für ein tTimeOut Größe?
Ja alle Einstellungen stimmen überein(Ich probiere jetzt mit nur einem Slave(FU) und das Gerät ist manuell programmierbar)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bevor Du noch jemanden exekutierst schau Dir das Programm noch mal am.

Scheinbar ist der Eingang I_Port nicht belegt.
I_Port := IoConfig_Globals.COM1,

Sonst kannst Du noch in den oStatus schauen was dort ausgegeben wird:
sInfo := masterModbus_1.oStatus.GetDescription();
 
Zurück
Oben