-> 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
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
