# Modbus RTU - Modbus Error Charrec Timeout



## Klingone22 (7 März 2016)

Morgen! 

Ich hab mal wieder ein Problem. Die EL 6021 liefert mit TC2 auf einen CX5020 mit CE nach ca. 40-70 Polls einen Error ID 32 - Modbus Error Charrec Timeout. In InfoSYS finde ich nichts hilfreiches dazu.

Ich verwende fbModbusRtuMaster_KL6x22B aus der aktuellen Modbus.lib, die Errorauswertung von den FB zeigt das:





Wenn ich die Polls nach diesen Fehler weiterlaufen lasse kommt "No Response". Nur ein RESET des PLC Programs löst das Problem, daher glaube ich das das Problem im FB liegt (die Tatsache das der FB bei einer Timeout Zeit von 60sec ein dauerhafters Busy Bit erzeugt zeigt mir das er nicht komplett durchgetestest ist). 

Der Fehler tritt auf egal ob man:
* 2, 20 oder 30 Wörter abfragt. 
* Kurze (500msec) oder lange (60sec) Zeiten zwischen den Polls hat.
* Mit oder ohne Abschlusswiederstände.
* GND angeschlossen oder nicht. 

Wenn man sofort nach den ersten Fehler wieder an EXCECUTE eine Flanke sendet, kommt sofort der Error, wenn man ca. 10 Minuten wartet, funktionieren ca. 5 Polls wieder, dann das gleiche Stück von vorne. 

Der Modbus Slave ist ein SDM220 Einphase Multifunktionsmeßgerät, nur ein Slave, sonst nichts. 

Hoffe meine Erklärung macht Sinn und ich hab nicht zuviele Details vergessen (Ich hab schon einige Modbus RTU Slaves mit diversen Beckhoff Steuerungen am Laufen, deshalb würde ich mich nicht als komplett Anhnungslos bezeichnem). 

Irgendjemand eine Idee warum? (nach zwei längeren Abenden am herumprobieren gehen mir langsam die Ideen aus)
Gibts es einen alternative Modbus RTU FB?
Danke für alle Antworten!

Gruß,

K.

PS.: Wr Rechtschreibfehler findet darf sie behalten!


----------



## Klingone22 (8 März 2016)

Abend! 

Problem gefunden: Es war die COE parameter „enable XON/XOFF supported tx data“, "enable XON/XOFF supported rx data“ und „enable transfer rate optimization“ auf TRUE. Nun gehts. 

Gruß,

K.


----------



## AGGI (9 März 2016)

Morgen!

Versuche seit einigen Tagen eine THIES Wetterstation über Modbus RTU und eine EL6021 auszulesen - leider ohne Erfolg! Habe zu Testzwecken die Wetterstation an eine SAIA PCD angeschlossen - da funktioniert alles laut Handbuch? Habe folgende CoE- Parameter:


8000:02:00Enable XON/XOFF supported tx dataRWTRUE8000:03:00Enable XON/XOFF supported rx dataRWTRUE8000:04:00Enable send FIFO data continuousRWFALSE8000:05:00Enable transfer rate optimizationRWTRUE8000:06:00Enable half duplexRWTRUE8000:07:00Enable point to point connection (RS422)RWFALSE8000:11:00BaudrateRW9600 Bau8000:15:00Data frameRW8N1 (3)8000:1ARx buffer full notificationRW0x0360 (8000:1BExplicit baudrateRW0x0000258000:1CExtended data frameRW8N1 (3)


Der ModbusRtuMaster_KL6x22B- Baustein aus der ModbusRTU.lib liefert einfach keine Werte:

MB.ReadInputRegs(


	UnitID		:= 1,
	Quantity	        := SIZEOF(MBData)/2,
	MBAddr		:= 35000,
	cbLength	        := SIZEOF(MBData),
	pMemoryAddr	:= ADR(MBData),
	Execute		:= TRUE,
	Timeout		:= t#1000ms,
	BUSY		=> bBusy	);


IF NOT bBusy THEN
	MB.ReadInputRegs(Execute:= FALSE);
END_IF

Ist mein erster Modbus- Kommunikationsversuch mit Beckhoff und wäre froh um jeden guten Tipp!

Grüße

M.A.


----------



## Klingone22 (10 März 2016)

Hallo Aggi!

Welchen Error Code / Error Meldung zeigt der FB an? 
KAnnst du einen Link zur Anleitung der Wetterstation posten? 

Gruß,

K.


----------



## AGGI (11 März 2016)

Hi Klingone,

habe folgende Fehlermeldung:




Hier ein Link zur Doku der Wetterstation:
http://www.biral.com/wp-content/uploads/2015/01/4.920x.00.000.pdf

Grüße
Aggi


----------



## Klingone22 (12 März 2016)

Hi Aggi,

Modbus hast du enabled? (PDF Seite 49, Command CI)

Device ID steht default auf 00. Geändert? 

Abschlußwiederstände vorhanden / aktiviert?


Gruß,

K.


----------



## AGGI (14 März 2016)

Hi Klingone,

die Wetterstation wurde werkseitig auf Modbus RTU (9600, 8N1) und Device ID 1 eingestellt (...Abschlußwiederstände sind keine vorhanden) und kommuniziert auch einwandfrei mit anderen SPS`n (z.B. SAIA) nur eben leider noch nicht mit Beckhoff!?! Wie verdrahtest du die EL6021 genau?

Grüße
Aggi


----------



## Klingone22 (14 März 2016)

Hallo Aggi!

In meinen Fall verwende ich 2-Wire (Enable Half Duplex ist bei dir auch TRUE) und hab Rx+ und Tx+ bzw. Rx- und Tx- miteinander verbunden (die Klemmen sind übereinander, d.h. Verbindung von links oben nach links 2. Reihe von oben und Verbindung von rechts oben nach rechts 2. Reihe von oben). 

"Enable XON/XOFF supported tx data" und "Enable XON/XOFF supported rx data" würde ich mal auf FALSE stellen, die haben bei mir Probleme bereitet (ich bekam aber ca. 70 erfolgreiche Antworten). 

Auch "Enable transfer rate optimization" auf FALSE setzen wäre einen Versuch wert.

Einen anderen Adressbereich abfragen? (0 oder 1 z.B.)

Gruß,

K.


----------



## AGGI (15 März 2016)

Hi Klingone,

Beckhoff hat mir gestern einen neuen Baustein geschickt, welcher bei allen Register- Adressen ein Offset von 30001 abzieht - jetzt läuft die Kommunikation!


Grüße
Aggi


----------

