-> Hier kostenlos registrieren
Ich möchte mit einer 750-8100 mit 750-652 über Modbus RTU eine Verbindung zu einer Pichler LG350 KWL herstellen. Leider bringe ich keine Verbindung zustande und aus der 750-652 kommt keine Spannung (mit Scope gemessen) raus. Habe die Verkabelung für RS485 gemäß Handbuch verwendet, jedoch auch schon A mit B vertauscht, mit und ohne Abschlusswiderstand (R 120). Die Schnittstellen der LG350 haben haben PullUp bzw. PullDown Widerstände verbaut (ca. 4 und 1 Volt), die Schnittstellen der 750-652 dürften Potentialfrei (Tristate) sein. Wenn ich die 750-652 als DMX-Schnittstellenkarte verwende, dann funktioniert sie ganz normal.
Als Code habe ich den Beispielcode aus dem Handbuch für FbMbMasterSerial verwendet.
Leider kommt aus der Karte nix raus, auch wenn ich den Slave abhänge. Die Status Leds A und E leuchten und C (Rx) reagiert kurzfristig am Eingang wenn ich ein High anlege. XIsConnected ist beim Debuggen True und xError springt zwischen True und False hin und her. Als sDescription (oStatus) bekomme ich zwei Fehler "Error while transmission -> transportlayer cannot transmit" und "Error time out". Letzterer ist klar, wenn nix gesendet wird, kann der Slave auch nicht antworten.
Im IO-Check passen die Einstellungen auch (RS-485 halbduplex, 19200/8/gerade/1 mit kontinuierlichem Senden und beim Empfangen deaktiviert,
Prozessdatenlänge 24 Byte). Die Version der 750-652 sind SW 01.02.25(06) / HW 01. S1 steht auf "08" der Rest (Ein- und Ausgang) auf 0. Die Firmware sowie die Library sind in der letzten Version in Verwendung.
Jetzt spiele ich mich schon ein paar Tage und komme leider nicht weiter, ich habe sogar schon auf meine zweite Karte (DMX) gewechselt, mit dem gleichen Ergebnis.
Vielleich hat jemand von euch ein paar Tipps für mich, ich komme leider nicht weiter.
LG Hannes
Als Code habe ich den Beispielcode aus dem Handbuch für FbMbMasterSerial verwendet.
PROGRAM ModbusSerialMaster
VAR
mySerialMaster : FbMbMasterSerial := ( xConnect := TRUE,
udiBaudrate := 19200,
usiDataBits := 8,
eParity := WagoTypesCom.eTTYParity.Even,
eStopBits := WagoTypesCom.eTTYStopBits.One,
eHandshake := WagoTypesCom.eTTYHandshake.None,
ePhysical := WagoTypesCom.eTTYPhysicalLayer.RS485_HalfDuplex,
eFrameType := eMbFrameType.RTU,
tTimeOut := T#51MS
);
//--- Identification Object for use of FC43 (in case the slave support it) ------
myBaseIdentification : FbIdentifyBaseObject; // only needed for FC43
//-------------------------------------------------------------------------------
utQuery : typMbQuery := ( bUnitId := 20, // Slaveaddress
bFunctionCode := 16#04, // read input registers
IIdentifyObject := myBaseIdentification, // only needed for FC43
uiReadAddress := 0, // Startaddress
uiReadQuantity := 10, // Quantity of wanted registers
uiWriteAddress := 0, // not needed for FC4
uiWriteQuantity := 0, // not needed for FC4
awWriteData := [124(0)] // not needed for FC4
);
xTxTrigger : BOOL; (* Set this variable once for start a job.
This variable will be automaticly reset by the master
if the job is done.
*)
utResponse : typMbResponse; (* After the job is done you can find at this structure
the result.
*)
tonDelay : TON := (PT := T#20MS); // This is the silence time between two requests
END_VAR
//--- delay between two requests ----------------------
tonDelay( IN := (NOT tonDelay.Q) AND (NOT xTxTrigger));
xTxTrigger S= tonDelay.Q; // trigger the next request
//--- call cyclic the master --------------
mySerialMaster( I_Port := IoConfig_Globals.COM_485_1, // my serial port
utQuery := utQuery,
xTrigger := xTxTrigger,
utResponse := utResponse
);
//-----------------------------------------
Leider kommt aus der Karte nix raus, auch wenn ich den Slave abhänge. Die Status Leds A und E leuchten und C (Rx) reagiert kurzfristig am Eingang wenn ich ein High anlege. XIsConnected ist beim Debuggen True und xError springt zwischen True und False hin und her. Als sDescription (oStatus) bekomme ich zwei Fehler "Error while transmission -> transportlayer cannot transmit" und "Error time out". Letzterer ist klar, wenn nix gesendet wird, kann der Slave auch nicht antworten.
Im IO-Check passen die Einstellungen auch (RS-485 halbduplex, 19200/8/gerade/1 mit kontinuierlichem Senden und beim Empfangen deaktiviert,
Prozessdatenlänge 24 Byte). Die Version der 750-652 sind SW 01.02.25(06) / HW 01. S1 steht auf "08" der Rest (Ein- und Ausgang) auf 0. Die Firmware sowie die Library sind in der letzten Version in Verwendung.
Jetzt spiele ich mich schon ein paar Tage und komme leider nicht weiter, ich habe sogar schon auf meine zweite Karte (DMX) gewechselt, mit dem gleichen Ergebnis.
Vielleich hat jemand von euch ein paar Tipps für mich, ich komme leider nicht weiter.
LG Hannes