XMEGA und MODBUS Bug??

  • 1
  • 2
  • 3
  • 4
  • Page 3 of 4
pvs-deck
PowerUser
Avatar
Gender:
Age: 53
Homepage: pvs-deck.de
Posts: 1341
Registered: 02 / 2009
Subject:

Re: XMEGA und MODBUS Bug??

 · 
Posted: 01.07.2015 - 14:17  ·  #17
Quote by Mathias

Quote

Hallo Mathias,

ja, User Avra meinte da noch einen Bug gefunden zu haben.
Ich konnte das leider nicht nachvollziehen.

rolf


Hallo Rolf,

das war für mich dann klar, daß es geht!
So nen Mist.
Wann kann ich auf Abhilfe rechnen?
Kunde steht mir auf den Füßen.

Gruß
Mathias


Hallo Mathias,

leider habe ich aktuell nicht viel Zeit um das ganze mit meiner XMEGA-Steuerung zu testen.

Der RS485 SerCtrlPin, bitte mal während der Kommunikation Messen, ob dieser umschaltet nachdem die Daten vom PC angekommen sind und er eigentlich antworten müsste.
Ohne diese Umschaltung kann der RS485 Baustein nicht antworten, hier kannst Du mit einen Analyser vor dem RS485 Baustein testen ob die Daten Grundsätzlich bis zum Baustein gehen würden.
Evtl liegt es ja wirklich nur an diesen PortPin SerCtrl.

Wenn dieser nicht umschaltet kann es eine der folgenden Gründe haben:
1. Fehler in der PortPin Einstellung (Doppelt oder Bug im XMEGA-Treiber)
2. Die Daten kommen nicht richtig an (Checksum) oder er hat eine andere Adresse, die RS485
wird zwar die Daten erhalten, aber in diesem Fall nicht antworten.
3. Baudraten/Ser-Daten Fehler, aber dann dürften die Daten nicht vom PC ankommen.

Wenn es immer noch der Alte Bug ist, wird der SerCtrlPin nicht umgeschaltet ;) Mit dem Oszi siehst Du aber die Daten, die der XMEGA senden will ;)

Aber ich gehe davon aus, das AVRA erst überprüft, ob die Adresse und die Checksum ok sind, bevor die Daten in den ModBuff gehen.

Evtl. wirklich mal als ASCII testen, wenn das läuft, kannst Du sicher sein, das Deine Hardware ok ist.

Wenn es die Port Pin Umschaltung ist, evtl. mal per Hand im Programm selbst ansteuern, SerCtrlPin auf einen freien Port legen und die Steuerung per Hand übernehmen (Programm)

1.Daten erhalten...
2.SerCtrlPin für Antwort umschalten...
3.Antworten...
4.SerCtrlPin für Empfangen umschalten...
5. Daten empfangen...
6. gehe zu 1 ;)

Arbeitest Du mit Tasks und Processen?

Gruß
Thorsten
Mathias
Benutzer
Avatar
Gender: n/a
Location: Weingarten - Baden
Posts: 310
Registered: 07 / 2003
Subject:

Re: XMEGA und MODBUS Bug??

 · 
Posted: 01.07.2015 - 16:21  ·  #18
Hallo,

danke Thorsten, guter Tipp einfach mal auf ASCII umzustellen.
Und siehe da, es geht auf Anhieb.

Nun leider wird die Baugruppe in ein Netzwerk mit RTU eingebaut.
Also, brauche RTU.

Hoffe es gibt schnell eine Lösung.

Danke

Gruß
Mathias
RichardT
Benutzer
Avatar
Gender:
Age: 56
Posts: 19
Registered: 02 / 2013
Subject:

Re: XMEGA und MODBUS Bug??

 · 
Posted: 16.11.2015 - 20:06  ·  #19
Hallo

Habe genau das gleiche Problem mit Xmega128A4AU. Ich gebrauche den Usart im RS485 (Modbus RTU Master) Mode. Der Pin lässt sich nur durch negatief und positief (im define) umschalten. In realtime läuft nichts.

Hoffe da gibt es bald eine Lösung. Muss wohl im Augenblick alles selber umschalten und die Packetlänge vorher berechnen und dann mit timer arbeiten. Nicht so elegant.

Grüsse
Richard
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: XMEGA und MODBUS Bug??

 · 
Posted: 17.11.2015 - 15:00  ·  #20
Hallo Richard,

ich habe da schon mehrmals heftig debugt.
Entweder ist da kein Bug oder ich konnte ihn einfach nicht finden. Sorry.

rolf
pvs-deck
PowerUser
Avatar
Gender:
Age: 53
Homepage: pvs-deck.de
Posts: 1341
Registered: 02 / 2009
Subject:

Re: XMEGA und MODBUS Bug??

 · 
Posted: 18.11.2015 - 22:11  ·  #21
Quote by rh

Hallo Richard,

ich habe da schon mehrmals heftig debugt.
Entweder ist da kein Bug oder ich konnte ihn einfach nicht finden. Sorry.

rolf


Hallo Rolf,

hatte Avra nicht irgendwas mit dem Inter. vom 3,5Char Frame erzählt?

Quote by Avra

Nothing has been changed since this post:
topic.php?p=21048#real21048
MODBUS RTU is still not supported on XMEGA. MODBUS RTU driver depends on interrupt communication and 3.5 chars frame end detection implemented by Rolf for MEGA AVRs. However his implementation does not work with XMEGA. Sorry, but I can not proceed without that part working first.


Thorsten
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: XMEGA und MODBUS Bug??

 · 
Posted: 19.11.2015 - 15:00  ·  #22
Hallo Thorsten,

3.5 chars ????????
Keine Ahnung was das ist.

rolf
pvs-deck
PowerUser
Avatar
Gender:
Age: 53
Homepage: pvs-deck.de
Posts: 1341
Registered: 02 / 2009
Subject:

Re: XMEGA und MODBUS Bug??

 · 
Posted: 20.11.2015 - 14:04  ·  #23
Hallo rolf,

das mit dem 3.5 CharTime ist für eine Funktion des RTU unbedingt nötig!

Damit wird im Modbus-Protokoll-Frame der Start und das Ende festgelegt und ist somit abhängig von der Baudrate.

Diese Wartezeit ist genau 3,5 Zeichen lang. Umso höher die Baudrate umso kürzer ist somit diese Zeit.

Der Aufbau ist in etwa so:

Start: Wartezeit 3,5 Chars
Adresse: 1 Byte
Funktion: 1 Byte
Daten: x.... Bytes
ChkSum: 2 Byte
Ende: Wartezeit 3,5 Chars

Solange die Daten innerhalb eines Telegramms gesendet werden, darf max. eine Zeit von 1,5 Chars in der Übertragung vergehen, sollte die Zeit überschritten werden, dann wird das Telegramm als ungültug erklärt.

Im Prinzip passiert folgendes beim RTU-Slave, er hört die ganze Zeit nur mit... sollte seine Adresse gesendet werden, antwortet er.
Aber nicht sofort, sondern er schaltet erst auf senden, wenn mind. 3,5Chars an Zeit vergangen sind und keine Daten mehr kommen.

Im Prinzip ist dieses 3,5Chars-Timing genau der Punkt wo der Empfang/Senden umgeschaltet werden muß und genau das scheint hier im Treiber nicht mehr zu laufen.

Wenn ich Avra richtig verstanden habe, hattest Du das beim AVR auch schon eingebaut: "...3.5 chars frame end detection implemented by Rolf for MEGA AVR..." Und das fehlt wohl jetzt in Funktion beim XMEGA.


Thorsten
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: XMEGA und MODBUS Bug??

 · 
Posted: 20.11.2015 - 15:25  ·  #24
Hallo Thorsten,

diese Erklärung ist sehr schlüssig. Ich hatte dieses 3.5 nach vielen Jahren
nicht mehr auf dem Radar.
Möglicherweise stimmt die dazugehörige Berechnung beim XMega nicht
weil der ja viel schneller ist. Ich werfe mal einen Blick drauf....

rolf
  • 1
  • 2
  • 3
  • 4
  • Page 3 of 4
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   141   155 · Page-Gen-Time: 0.027228s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI