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

EtherCAT_Slave_Diag.wState zeigt nicht die richtigen Werte an

andi1995
2023-01-22
2023-01-23
  • andi1995 - 2023-01-22

    Heyho......nun musste es wohl doch sein.

    Das erste Mal dass ich mich bei einem Forum anmelde weil ich bei einem Problem nach langer Suche nicht weiter komme^^

    Also ich bastle Privat etwas mit nem Raspi und ein paar Beckhoff Klemmen herum und wollte mir grad ne Abfrage bauen um die Zustände der einzelnen Ethercat Slaves abzufragen.
    Anfangs hatte ich Schwierigkeiten dass überhaupt für den Master hinzubekommen aber nach 1-2 Stunden suche im Internet und noch mehr tüfteln funktioniert das Neu Starten vom Bus jetzt........nur die Abfrage der Slave States fehlt noch.

    Ich bekomm keine Fehler vom Code her aber ich denke dass ich bei der Instanzierung irgendwas falsch mache und der einfach nicht den richtigen Slave findet und da er dann keine Rückmeldung bekommt einfach den Wert 0 drinne lässt?

     

    Last edit: andi1995 2023-01-22
    • andi1995 - 2023-01-22

      PS: hab auch schon versucht oben bei der Funktion ETCSlave_Diag reinzuschreiben.

       
  • eschwellinger

    eschwellinger - 2023-01-22

    du musst die Slave Instanzen aufrufen, bitte keine neue Slave Instanzen anlegen (in deinem Deklarationsteil) dann gehts:
    Also im Programm einfach die Slaves so aufrufen wie diese im Gerätebaum heißen
    Beipiel:
    EK1100();
    EL1004();
    usw

     
  • andi1995 - 2023-01-22

    Super Danke für die schnelle Antwort jetzt funktionierts! :D

    Nur fürs Verständnis:
    Wenn ich jetzt theoretisch noch einen zweiten Master hätte......würde ich den dann auch mit dem Namen instanzieren in meinem Code?

    Sprich zurzeit hab ich nur einen Master auf den ich das .xRestart schreibe und den .xConfigFinished bzw .xError lese.
    Der heist bei mir im Gerätebaum EtherCAT_Master.
    Im Programm instanziere ich den aber mit Ethercat_Master();

    Wär das dann bei EtherCAT_Master1 und EtherCAT_Master2 im Gerätebaum folgendes?
    EtherCAT_Master1();
    Error := Ethercat_Master.xError
    ConfigFinished := Ethercat_Master.xConfigFinished

    EtherCAT_Master2();
    Error := Ethercat_Master.xError
    ConfigFinished := Ethercat_Master.xConfigFinished

     
  • eschwellinger

    eschwellinger - 2023-01-23

    EtherCAT_Master2.xError usw sonst greifst du ja in die falsche Instanz.

     

Log in to post a comment.