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?
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
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
PS: hab auch schon versucht oben bei der Funktion ETCSlave_Diag reinzuschreiben.
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
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
EtherCAT_Master2.xError usw sonst greifst du ja in die falsche Instanz.