Pi + RS485 Kommunikation

Klingone22

Level-2
Beiträge
101
Reaktionspunkte
14
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo alle miteinander!

Ich arbeite mit TwinCat2+3 und mache nun meine ersten Versuche mit Pi+Codesys.

Meine Anwendung wäre einen RS485 Teilnehmer welche ca. alle 15 Sekunden Daten schickt (Im UART Format). Mit TwinCat hab ich es mittels der EL6021 gelöst indem ich die Daten_In Werte nur übernehme wenn die Status Bits sich mit neuen Daten Melden.

Anhand der empfangenen Daten kann die Software erkennen, wo die Daten Anfangen und wo sie Aufhören und mittels CRC kontrollieren ob die Daten vollständig sind.

Meinen RS485 Teilnehmer hab ich zur Zeit nicht verfügbar, aber ich hab mal mit einen USB RS485 Konverter an eine funktionierende Modbus Kommunikation gehängt und gehofft ich kann da mithören, aber dies funktioniert nicht (Auch nicht mit Modbus Poll und dem USB Konverter interessanter weise).

Hat irgendjemand eine Idee wie man dies mit Pi+Codesys machen könnte?

Dies ist nicht ganz so wichtig, aber ich möchte es gerne verstehen:
Ich hab auch mal probiert mit dem Pi meine Modbus Teilnehmer abzufragen um festzustellen ob der USB Konverter richtig funktioniert (die Adaptionen in der CODESYSControl.cfg hab ich laut diversen Forumseinträgen gemacht).

Das Modbus Slave Objekt zeigt aber ein Problem an und ich verstehe nicht warum.
Unter Modbus_COM_Port und Modbus_Master_COM_Port steht LÄUFT, also nehme ich an er hat die Schnittstelle gefunden.

(der eigentliche Beckhoff Master ist abgeklemmt für die Tests. Mit Modbus Poll antworten die Teilnehmer)

Müssen Variablen verlinkt sein damit der die Slave Abfrage macht? (Abfrage steht auf zyklisch)

Danke für eure Hilfe / Hinweise!

LG

Klingone22
 

Anhänge

  • 2.JPG
    2.JPG
    160,5 KB · Aufrufe: 43
  • 3.JPG
    3.JPG
    37,5 KB · Aufrufe: 28
  • 4.JPG
    4.JPG
    73,4 KB · Aufrufe: 23
Hi,
ich denke du must das Projekt mal anhängen oder aber Screenshots posten.
In CODESYS muss die Konfiguration ja etwa so ein.
Du kannst mal die Namen im Gerätebaum in ein Watchfenster tippen dann hast du mehr Info/Diagnose von den Implizit aufgerufenen FB's.


Grüße
 

Anhänge

  • ModbusRTU.jpg
    ModbusRTU.jpg
    132,9 KB · Aufrufe: 50
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Klingone22!
Meinen RS485 Teilnehmer hab ich zur Zeit nicht verfügbar, aber ich hab mal mit einen USB RS485 Konverter an eine funktionierende Modbus Kommunikation gehängt und gehofft ich kann da mithören, aber dies funktioniert nicht (Auch nicht mit Modbus Poll und dem USB Konverter interessanter weise).
Ich verstehe nicht so recht. Du hast z.Z. nur 1 oder gar keinen Teilnehmer am RS485-Bus? Was gibt es denn dann zu belauschen?
Mit dem Pi willst Du nur belauschen? Oder soll der Pi auch den z.Z. fehlenden Teilnehmer simulieren/ersetzen?
Für mein Verständnis ist USB für (nur) belauschen nicht geeignet. Du benötigst 2 UARTs, die nur lesen (?).

Gruss, Heinileini
 
Hallo!

zuerst einmal Danke für die Antworten und Sorry für die späte Rückmelung, konnte mich nicht früher um mein Projekt kümmern.

Nun hab ich die original Hardware und ich bekomme die Daten. Hab das SerialCom Beispiel entspchrechend geändert und es läuft wunderbar! Zur Zeit verwende ich einen USB auf RS485 Umwandler (mittels Adaption von CodesysControl.cfg). Da ich ja "nur" serielle Daten empfangen möchte, sollte dies nich auch mit den GPIO Pin 14 und 15 funktionieren? Wenn ja, was muß ich anstellen von Linux.Devicefile=/dev/ttyUSB schreiben?

Weiters hab ich versucht die Oscat Yahoo Wetter Applikation zu implementieren. Auf TC2 hab ichs zum Laufen gebracht, auf Codesys und Pi bekommen ich keine Daten. Der Baustein bleibt in Busy hängen. Bei TC2 mußte ich den TwinCAT_TCPIP_Server installieren. Gibts eine Möglichkeit die Yahoo_Weather Applikation zu verwenden?

Besten Dank im Voraus!

LG Klingone22
 
Hi,
wenn du den UART der GPIO Pins verwenden willst.. brauchst du trotzdem noch eine Hardware die den Pegel wanelt ( GPIOs sind 3.3V)
dann in CODESYSControl_User.cfg (du solltest deinen USB Konverter nur in diesem File angeben -> das bleibt bei einem Runtime Update bestehen)

[SysCom]
Linux.Devicefile=/dev/ttyS

sudo raspi-config
dort den seriellen GPIO Uart freigeben ( da ist die Console drauf)

Für dein Wetter würde ich einfach OPENWeather.org nehmen:
https://store.codesys.com/weather-forecast-library.html

Grüße
 
Zurück
Oben