Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

Serielle Kommunkation zwischen Raspberry und MD49

2018-12-11
2018-12-16
  • thomasschichl - 2018-12-11

    Guten Tag,
    Ich bin neu in diesem Forum und dies ist mein erster Thread. Seit einigen Tagen bin ich am versuchen eine Kommunikation zwischen einem MD49 und einem Raspberry Pi 3 Model B+ aufzubauen.
    MD49: http://www.robot-electronics.co.uk/htm/ ... h.htm#mode

    Leider bin ich ein Linux Anfänger. Daher sind mir nicht alle Möglichkeiten der Konfiguration bekannt.
    Ich habe mich auch bereits durch etliche Beiträge hier und auf anderen Seiten durchgearbeitet.
    Was hat bisher funktioniert:
    Ich konnte ein C- File vom Raspberry aus starten und das MD49 fürhte dieses auch aus- die Motoren drehten sich wie sie sollten.
    Das heißt die Kommunikation zwischen Raspberry Pi und dem MD49 ist korrekt verdrahtet. Mir ist bewußt, dass im C File nat auch eine Konfiguration der Schnittstelle vorliegt....

    char *portName = "/dev/serial0";

    Nun ist mein Problem, wie bekomme ich das mit dem Codesys zum Laufen. Die Verdrahtung stimmt- ist folgendermaßen aufgebaut:

    https://www.robot-electronics.co.uk/htm ... amples.htm

    Als Grundlage habe ich das SerialComVisu Projekt von Herrn Schwellinger verwendet und angepasst... Nur egal wie ich meinen raspberry konfiguriere, es funktioniert nicht.

    Ich habe den Pi neu aufgesetzt, updates und upgrades gemacht, über
    sudo raspi-config die serielle Schnittstelle aktiviert aber das Terminal deaktivert
    in der /boot/config.txt ist korrekt uart=1
    in der /boot/cmdline.txt steht nichts von einer serial0 oder ttyAMA0 Schnistelle bzw einer Baudrate (wobei mir nicht klar ist, warum auf einigen Seiten der Eintrag bezüglich serial0 und Baudrate zuerst gelöscht und dann, nach reboot wieder eingefügt wird...)

    wenn ich ls -l /dev eingeben
    wird mir für die
    serial0 ->ttyS0
    serial1 ->ttyAMA0
    angezeigt

    ich habe auch versucht in die /etc/CODESYSControl:User.cfg bzw. /etc/CODESYSControl.cfg
    Linux.Devicefile=/dev/serial0
    portnum := COM.SysCom.SYS_COMPORT1

    ohne Erfolg (mir war nicht klar in welche Datei es gehört, da im Forum die Namen der Dateien immer wieder verwendet wurden für diese Zeilen). Der Unterschied der Dateien ist mir aber klar

    Also meine Frage an euch: Was muss ich machen, wenn am PI selbst die GPIOs 8 und 10 mit dem MD49 kommunizieren damit ich das aus dem Codesys auch machen kann...

    Mir ist klar, dass Raspberry und Codesys viel herumprobieren ist aber ich sitze jetzt schon seit drei Tagen an dem Problem...

    Vielen Dank fürs lesen und vielleicht hat jemand ja eine Antwort...

     
  • eschwellinger

    eschwellinger - 2018-12-12

    Hi,

    verwendet der MD49 die serielle Schnittstelle an den GPIO's?

    von CODESYS Seite muss es da rein:
    da muss es rein -> /etc/CODESYSControl:User.cfg

    [SysCom]Linux.Devicefile=/dev/ttyS

    schau mal bei dem Enocean Projekt ist das auch so:
    https://forum.codesys.com/viewtopic.php ... =30#p20812

    Ich zittiere mal:
    Um das Modul aus der CODESYS
    Applikation nutzen zu können, sind folgende
    Einstellungen unter Linux erforderlich:
     COM1 in die CODESYSControl_User.cfg
    (diese Zeile gibt es schon in dieser Datei es
    muss nur „;“ am Anfang der Zeile entfernt
    werden
    [SysCom]
    Linux.Devicefile=/dev/ttyS

    Das Modul verwendet die tty‘s die über GPIOs
    des Raspberry Pi kommen und kann über sudo
    raspi-config aktiviert werden
    usw....

    Das muss bei deinem auch gehen... wenn es an den GPIO seriellen hängst...

    Grüße
    Edwin

     
  • thomasschichl - 2018-12-13

    Hallo Edwin,

    Vielen Dank für deine Antwort.

    Ja, das MD49 Modul ist an die gpios des Pi angeschlossen. Pin 8 und Pin 10.
    Ich habe jetzt einmal einen RP3 angeschlossen, neu aufgesetzt und die Konfiguration über sudo raspi-config nach dem verlinkten Beispiel von dir eingerichtet.
    So bin ich auch bis jetzt immer vorgegangen. Was ich nicht gemacht habeist, dass ich nur das ";" Zeichen in der CODESYSControl_User.cfg entfernt habe.
    Ich habe auch immer die ttyS Schnittstelle gegen die serial0 oder ttyAMA0 ausgetauscht- da so in sehr vielen Quellen beschrieben.
    Ich werde das mal unverändert lassen und testen und das Ergebnis testen...

    Gehe ich richtig in der Annahme, dass, wenn ich nicht die GPIOs verwenden möchte, sondern eine der USB Schnittstellen, dass ich nur "ttyS" durch "ttyUSB" ersetzen muss?

    Danke nochmals für die Unterstützung!!

    Vielleicht kurz zur Info: Es wird in diesem Projekte ein self balancing robot System mit human following Funktionalität aufgebaut

     
  • eschwellinger

    eschwellinger - 2018-12-16

    Zitat:
    Gehe ich richtig in der Annahme, dass, wenn ich nicht die GPIOs verwenden möchte, sondern eine der USB Schnittstellen, dass ich nur "ttyS" durch "ttyUSB" ersetzen muss?

    ja genau..

    Grüße
    Edwin

     

Log in to post a comment.