Raspberry - ModBus RTU

uzi10
2015-11-02
2016-01-26
  • uzi10 - 2015-11-02

    Hallo Leute!

    Ich habe schon einige Steuerungen auf einer WAGO 750 programmiert und will jetzt eine Haussteuerung über eine Raspberry PI SPS realisiern(ich habs zumindest versprochen)! Komme eigentlich von der KNX Seite und hatte mit SPS lange nichts am Hut! Aber für KNX ist es durch die Konnektivität mit den Modulen eine Sinnvolle Ergänzung!
    Ich habe als Hardware eine PIXTEND ARTC Platine mit einen Raspberry PI 2!
    Programmiert wird dieses in CODESYS 3.5, was für mich eine arge Herrausforderung ist, da hier kein Stein gleich geblieben ist!

    Hier zum eig Problem:
    Ich möchte über die eingebaute RS485 Schnittstelle über ModBus RTU ein Wohnraum-Lüftungsgerät der Type Systemair VR 400 DCV/DE, auslesen und steuern bzw parametrieren!
    Das 2. Slavegerät wird ein Thermokon Raumthermostat WRF06 LCD! Dieses Soll die Ist und Sollwertverstellung für eine Infrarotheizung steuern! Hierzu müsste man die Werte auslesen! Auch die Lüftungsstufen der Wohnraumlüftung sollen damit gesteuert werden(mit den Tasten)!

    Die Schnittstelle habe ich in der Codesys.cfg bekannt gemacht!

    sudo nano /etc/CODESYSControl.cfg

    die Config-Datei öffnen und dann folgendes ganz am Ende der Datei anfügen:

    Code: [Auswählen]

    [SysCom]
    Linux.Devicefile=/dev/ttyAMA
    portnum := COM.SysCom.SYS_COMPORT1

    hoffe das passt so!

    Nur weiss ich im Codesys nicht weiter!
    Ich kann Master und Slave Geräte erstellen! Keine Ahnung was das richtige ist!
    Und wie lese ich und schreibe ich? gibt es da keine fertige FB? Wie die KNX Blöcke bei WAGO?
    Oder muss ich da alles selber programmieren?

    Wäre nett von euch, wenn mir wer einen Grundstock programmieren könnte, damit ich weiss wie ich vorgehe! Ich finde das in keinen Forum, Handbuch oder sonst wo im Internet und ich steh total an!
    Wäre schade, wenn ich den Kunden enttäuschen müsste!
    Bitte um Hilfe!

    WRF06_RS485 Modbus_german.pdf [517.68 KiB]

    WRF06_LCD_MODBUS_IO_DS_de_en.pdf [254.51 KiB]

    Modbus for Residential units_D24810_User_manual (A005).pdf [263.77 KiB]

     
  • eschwellinger

    eschwellinger - 2015-11-03

    Hallo,

    das mit der seriellen hört sich ok an (Ich weiß leider nicht wie man RS485 bei PiExtend einstellt bzw ob das geht)
    aber dazu hast du ja schon im PieXten Fourum geschaut/gepostet.

    Dein Startpunkt in CODESYS müsste so aussehen im Gerätebaum:

    ModbusComport
       ModbusMaster
            ModbusSlave1
            ModbusSlave2
            ModbusSlave3
    

    Dann muss du über die Handbücher von den Geräten die Slaves konfigurieren - also entsprechend die Function Codes der Slave eintragen/konfigurieren.
    Also bei "Modbus SlaveChannel" und dort AddChannel und als Beispiel ReadHolding Register (Function code 3) Offset usw...
    Das wir ein zeimliches gesuche im Handbuch usw.... aber denke so kommst du weiter.

    Grüße
    Edwin

    IMG: Modbus.jpg

     
  • uzi10 - 2015-11-11

    Hallo Edwin!

    Ich stecke schon im Ansatz fest! Weiss aber nicht ob der Treiber für die Pixtend Platine schuld ist!
    dieser wurde so aktiviert: http://www.pixtend.de/forum/index.php/topic,47.msg147.html#msg147
    Habe jedes mal einen Ausnahmefehler und dann lässt sich das Programm nicht mal laden!
    Was muss ich tun? muss ich ein externen USB-Schnittstellenconverter verwenden? Oder ist es eine falsche Einstellung oder ein falscher Parameter?
    Oder kann es sein, dass man so die RS232 Schnittstelle nicht ansprechen kann? RS485 weiss ich leider noch nicht richtig wie das funktioniert...

    Pixtend Demo Testprogramm Uzi modbus2.project [251.79 KiB]

     
  • uzi10 - 2015-11-25

    Hallo Edwin!

    Ich habe jetzt ein Konverterkabel USB-RS485(RS-Components, FTDI) angesteckt und die Schnittstelle in der Config auf ttyUSB umgestellt!
    Ich wollte gestern in Codesys das Programm testen und dann hab ich wieder einen Ausnahmefehler bekommen!
    Was mache ich falsch? Ist dein Testprogramm anders? Bitte um Hilfe bei der Fehleranalyse bzw schicken sie mir bitte so ein Testprojekt!

    MFG
    Andi

     
  • madax - 2016-01-26

    Hallo Zusammen,

    mit Billigstteilen aus der Bucht Funktioniert die Umsetzung auf RS458.
    Allerdings macht mein Master nicht was er soll.
    Ich frage einmal FCode 01 und einmal FCode 03 und rauskommt 32(0x20) und 64(0x40) (siehe Anhang)
    Woran kanns liegen?

    IMG: Code03.JPG

    IMG: Code01.JPG

     

Log in to post a comment.