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
hat jemand von euch Erfahrung mit Codesys auf Raspi und Ansteuerung von Servos?
Das im Raspi-Paket von Codesys enthaltene "SoftMotion Servo Example.project" funktioniert problemlos.
Ich will den Servo aber nicht wie im Codesys-Beispiel über eine Schrittkette ansprechen, sondern über FUP.
Deshalb habe ich wie im screenshot gezeigt einen einfachen ersten Versuch unternommen, der aber in dieser Art nicht funktioniert. Die Bausteine „MC_Power“ und „MC_MoveAbsolute“ habe ich mir aus dem Codesys-Beispiel „ausgeliehen“.
Müssen da im Vorfeld evtl. irgendwelche Initialisierungen des Servos gemacht werden?
Gruß
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
so wie im ersten screenshot müsste schon gehen.
Nur musst du die Instanzen auch in PLC_PRG deklarieren MC_Power zum enablen und den MC_Move usw.... so wie in deinem ersten "Post".
Grüße
Edwin
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi,
mach man den enable des MC_Power erst wenn du Axis.wcommunicationstate = 100 hast... sollte nichts machen aber wer weiß...
und könntest mal dein Projekt anhängen.
Grüße
Edwin
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi,
schau mal in das Taskdeployment.
hm.. versuch mal deinen POU im IOProfinet Task auzurufen.
Kann nicht testen habe keine Hardware zur Hand.
Wenn man ne 2.Achse dazumacht geht's aber halt nicht mit der ersten..
Grüße
Edwin
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
an das Taskdeployment hatte ich noch gar nicht gedacht...
... ist aber wohl auch nicht die Ursache.
Um das ganze Profinet-Thema als Ursache außen vor zu lassen, habe ich den gesamten "Ethernet" Zweig gelöscht - jetzt gibts keinen Profinet-Task mehr.
Dann habe ich die Buszyklus-Optionen für Adafruit und SM_Drive_Servo 1:1 aus dem (funktionierenden) SoftMotion Servo Example.project übernommen - und der Status von MC_Power bleibt trotzdem auf false!
Jetzt fällt mir nur noch ein, mein gesamtes Projekt schrittweise aus dem funktionierenden "SoftMotion Servo Example.project" heraus aufzubauen (?)
Gruß
Werner
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
kurzes feedback:
Ich habe jetzt ein Projekt Schritt für Schritt komplett neu aufgesetzt.
- Motion FB's samt Ansteuerung definiert - lief
- Alte Visualisierung aus Vorprojekt übernommen - lief
- Ethernet/Profinet-Konfiguration aus Vorprojekt übernommen - wieder keinen Zugriff auf den Servo
Dann habe ich deinen ersten Hinweis
"stelle bitte die Task auf dem Drive auf deine MotionTask also MainTask"
nochmal aufgegriffen und siehe da - es läuft
Nochmals besten Dank für deine Unterstützung - bin jetzt in dem Servo-Thema etwas sicherer unterwegs
Gruß
Werner
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo,
hat jemand von euch Erfahrung mit Codesys auf Raspi und Ansteuerung von Servos?
Das im Raspi-Paket von Codesys enthaltene "SoftMotion Servo Example.project" funktioniert problemlos.
Ich will den Servo aber nicht wie im Codesys-Beispiel über eine Schrittkette ansprechen, sondern über FUP.
Deshalb habe ich wie im screenshot gezeigt einen einfachen ersten Versuch unternommen, der aber in dieser Art nicht funktioniert. Die Bausteine „MC_Power“ und „MC_MoveAbsolute“ habe ich mir aus dem Codesys-Beispiel „ausgeliehen“.
Müssen da im Vorfeld evtl. irgendwelche Initialisierungen des Servos gemacht werden?
Gruß
Oder ist diese automatisch angelegte FB-Instanz der richtige Weg (???)
Wenn ja, kennt jemand eine Beschreibung der FB-Eingangsbeschaltung…
oder so (?)
Hi,
so wie im ersten screenshot müsste schon gehen.
Nur musst du die Instanzen auch in PLC_PRG deklarieren MC_Power zum enablen und den MC_Move usw.... so wie in deinem ersten "Post".
Grüße
Edwin
Hallo Edwin,
danke für den Hinweis - ich bin neu in dem Thema und tappe gerade noch ziemlich im Dunkeln
Ich denke, es ist nur noch ein kleiner Schritt zum funktionierenden Servo
Kannst du dir den FALSE Status des "MC_Power" Bausteins erklären?
Gruß
Werner
Hi,
stelle bitte die Task auf dem Drive auf deine MotionTask also MainTask.
Mehr fällt mir nicht ein.. mit dem ServoBeispiel hatte es funktioniert?
SM_Drive_Servo.wCommunicationstate bitte mal ins Watchfenster tippen und schauen ob der auf 100 steht.
Grüße
Edwin
Hallo Edwin,
ja, ServoExample Project funktioniert problemlos.
Das arbeitet übrigens mit "Zykluseinstellungen des übergeordneten ..." Task.
Taskumstellung bringt lediglich eine Veränderung:
bei "Zykluseinstellungen des übergeordneten ..."
toggelt der nAxisState zwischen "power off" und "stopping" (siehe screenshot)
bei "Main-Task"
verbleibt nAxisState fest auf "stopping"
Ich habe jetzt nur den "MC_Power" Baustein im Programm und will den, wie beim ServoExampleProject, erst mal auf den Status TRUE bringen...
Fällt dir noch eine Fehlerquelle ein, die das in meinem Programm verhindert?
Gruß
Werner
Hi,
mach man den enable des MC_Power erst wenn du Axis.wcommunicationstate = 100 hast... sollte nichts machen aber wer weiß...
und könntest mal dein Projekt anhängen.
Grüße
Edwin
verzögertes Setzen des xAxisEnable bringt auch keine Veränderung.
Habe das Projekt mal angehängt...
Gruß
Werner
Hi,
schau mal in das Taskdeployment.
hm.. versuch mal deinen POU im IOProfinet Task auzurufen.
Kann nicht testen habe keine Hardware zur Hand.
Wenn man ne 2.Achse dazumacht geht's aber halt nicht mit der ersten..
Grüße
Edwin
Hallo Edwin,
an das Taskdeployment hatte ich noch gar nicht gedacht...
... ist aber wohl auch nicht die Ursache.
Um das ganze Profinet-Thema als Ursache außen vor zu lassen, habe ich den gesamten "Ethernet" Zweig gelöscht - jetzt gibts keinen Profinet-Task mehr.
Dann habe ich die Buszyklus-Optionen für Adafruit und SM_Drive_Servo 1:1 aus dem (funktionierenden) SoftMotion Servo Example.project übernommen - und der Status von MC_Power bleibt trotzdem auf false!
Jetzt fällt mir nur noch ein, mein gesamtes Projekt schrittweise aus dem funktionierenden "SoftMotion Servo Example.project" heraus aufzubauen (?)
Gruß
Werner
Hallo Edwin,
kurzes feedback:
Ich habe jetzt ein Projekt Schritt für Schritt komplett neu aufgesetzt.
- Motion FB's samt Ansteuerung definiert - lief
- Alte Visualisierung aus Vorprojekt übernommen - lief
- Ethernet/Profinet-Konfiguration aus Vorprojekt übernommen - wieder keinen Zugriff auf den Servo
Dann habe ich deinen ersten Hinweis
"stelle bitte die Task auf dem Drive auf deine MotionTask also MainTask"
nochmal aufgegriffen und siehe da - es läuft
Nochmals besten Dank für deine Unterstützung - bin jetzt in dem Servo-Thema etwas sicherer unterwegs
Gruß
Werner