CODESYS - das IEC 61131-3 Programmiersystem

Willkommen im offiziellen CODESYS - Forum von 3S-Smart Software Solutions | A member of the CODESYS Group
Deutsche Version English version russian version 
Aktuelle Zeit: So Aug 25, 2019 8:28 pm

Alle Zeiten sind UTC




Ein neues Thema erstellen  Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: CANbus <-> ModBUS (TCP) - Gateway
BeitragVerfasst: Di Jan 15, 2019 4:54 pm 
Offline

Registriert: So Jan 13, 2019 4:34 pm
Beiträge: 4
Hi, ich habe paar Schwierigkeiten auf meinen Raspberry Pi 3 (Model B+) die CANbus Werte auszulesen bzw. zu senden. Unten eine kurze Übersicht meine Konfiguration, ich hoffe ihr könnt mir helfen:

KONFIGURATION:
- Raspberry Pi 3 (Mod.B+) + Waveshare RS485+CAN Hat -> CANbus funktioniert im LXTerminal, bin mir aber nicht sicher ob der CANbus in Codesys tatsächlich läuft (siehe unten)
Bild

- ROTEX Wärmepumpe HPSU über CAN-L + CAN-H an o.g. CAN Hat angeschlossen – Die WP kommuniziert über den CAN-Bus in der 11-Bit-Variante (Basisformat), siehe unteren Link
Google Translate

- Siemens Logo SPS -> mittels ModBUS TCP an Codesys = Ich kann Werte auslesen (siehe unten)
Bild

SITUATION / PROBLEM:

Im LXTerminal sende ich folgendes (Wasserdruck):
can0 10A [7] 31 00 1C 00 00 00 00

Und bekomme folgendes zurück:
can0 180 [7] 22 0A 1C 05 14 00 00

Hier ist das 4. Und 5. Byte für mich interessant (05 14), bedeutet 0514 hex -> dez = 1300 / 10 => 1,30 bar

Das Problem bei mir ist, dass ich es im Codesys nicht schaffe die o.g. Befehle zu senden und empfangen!
Ich habe bis dato nur mit ModBUS gearbeitet und komme nicht drauf wo ich den Identifier + DLC + Datenfelder (7 Byte) einstellen bzw. übermitteln und auslesen kann!

ZIEL:
Möchte nur paar Werte (Temperaturen, Wärmemenge, Modus, etc.) aus der Wärmepumpe an die Logo SPS über den PI übertragen.

Also wie kann ich im Codesys am einfachsten so eine Art Gateway CANbus <-> ModBUS herstellen?

Habe mir das so vorgestellt, 1x in der Minute den Befehl z.B. für Wasserdruck (siehe oben) in CANbus senden. Auf Antwort warten und dann die Werte über Codesys an ModBUS senden, so dass die LogoSPS die auslesen kann.


Ich bin es gewohnt in FBS (Funktionsbausteinsprache) zu arbeiten, gibt es hier eine Möglichkeit?


Nach oben
   
BeitragVerfasst: Mi Jan 16, 2019 4:12 pm 
Offline
Site Admin

Registriert: Mo Sep 05, 2005 8:42 am
Beiträge: 3397
Hi,
denke du musst mit diesem Beispiel loslegen:

https://store.codesys.com/can-bus-example.html

CANbusAPIExample.project
Damit kann man CANlayer 2 Kommunikation machen, denke das ist was du dafür brauchst... also CAN Telegramme empfangen und verwenden.

Grüße
Edwin


Nach oben
   
BeitragVerfasst: So Feb 03, 2019 4:19 pm 
Offline

Registriert: So Jan 13, 2019 4:34 pm
Beiträge: 4
Hallo Edwin,

besten Dank für den Tipp. Habe es aus beruflichen Gründen erst dieses Wochenende geschafft meinem Projekt wider zu widmen.
Hab das Paket bzw. Beispiel eingespielt, nur leider bringe ich es nicht zum Laufen. Der CANBus selber scheint zu laufen, nur finde ich nirgends die Blöcke z.B. „CANDriver_11bit (FB) / CANSender / CANSingleIdReceiver …“ aus der „CANBus Example“ PDF-Anleitung.

Ich wäre euch sehr dankbar wenn mir jemand helfen könnte, gibt es evtl. eine Schritt für Schritt Anleitung hierfür? DANKE!


Nach oben
   
BeitragVerfasst: So Feb 10, 2019 6:14 pm 
Offline

Registriert: So Jan 13, 2019 4:34 pm
Beiträge: 4
Hi, habe nach langen hin und her festgestellt, dass ich einen blöden Fehler gemacht habe. Ich habe anstelle „CANBus Example“ das „CANopen Example“ Package installiert.

Habe nun das „CANbusAPIExample“ geladen uns so wie es ausschaut ist die CANbus Verbindung zu der Wärmepumpe hergestellt. Zumindest wird unter „g_countMsg_ST“ die Anzahl der Nachrichten mitgezählt, die mit der Anzahl unter LxTerminal mit „candump can0“ übereinstimmt.

Leider schaffe ich es nicht bestimmte Werte unter z.B. ID/Identifier „can0 180 [7]“ auszulesen (siehe meinen ersten Post), was mache ich hier falsch (HEX / DEZ / DWORD???)?
- Habe im „CAN.RECEIVER_SINGLE_ID“ unter „dwCanId“ folgendes eingestellt „16#180“ (HEX?)-> bekomme bzw. finde nirgends die Werte!?
- Habe im „CAN.RECEIVER_SINGLE_ID“ unter „dwCanId“ folgendes eingestellt „16#384“ (DEZ?) -> bekomme bzw. finde nirgends die Werte!?

Wo werden die Werte dann ausgegeben, bzw. wo kann ich die auslesen?


Nach oben
   
BeitragVerfasst: So Mai 05, 2019 5:36 pm 
Offline

Registriert: So Jan 13, 2019 4:34 pm
Beiträge: 4
Hi, ich bin langsam am Verzweifeln, ich schaffe es nicht bestimmte Werte bzw. Nachrichten aus dem CANbus auszulesen (siehe CANbus Transfer im rechten Fenster), wie bereits beschrieben scheint die Kommunikation mit dem Raspberry zu funktionieren, da die Nachrichten brav mitgezählt werden (siehe g_countMsg_ST im linken Fenster).

Bild

Ich habe schon das „ganze“ Forum durchsucht, die Dokumentation (CANBus_Example_de.pdf _.pdf durchgelesen, bin aber leider nicht weitergekommen!
Im Anhang findet Ihr auch mein derzeitiges Projekt, wenn euch das was hilft.

Ich brauche eure Unterstützung, hoffentlich kann mir einer von euch helfen bzw. erklären wie ich die o.g. IDENTIFIER einstelle und Werte auslese, DANKE!


Dateianhänge:
2019-02-10 - CANbusAPIExample - API_2 - 0x180.project [208.14 KiB]
34-mal heruntergeladen
Nach oben
   
BeitragVerfasst: Mo Mai 06, 2019 9:50 am 
Offline

Registriert: Do Aug 04, 2016 3:21 pm
Beiträge: 37
ich würde an deiner Stelle als erstes mal die Einträge Can-Bus, CanOpen-Manager und CanOpen_Device aus dem Projektbaum entfernen.
Aktuell wird ansonsten ein CanOpen Bus gestartet und gleichzeitig in Diener ST_PRG nochmal ein CanDriver für Kommunikation auf Layer2!
Entweder CanOpen oder Layer2 aber nicht beides gleichzeitig, soweit ich das beurteilen kann, beißt sich das.


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 6 Beiträge ] 

Alle Zeiten sind UTC


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de