Stepper Motor Control with Codesys

Forum traitant des automates industriels de marque Wago et du logiciel codesys
Avatar de l’utilisateur
Digitrain
Asservi son premier moteur
Asservi son premier moteur
Messages : 27
Inscription : 27 mars 2021, 17:17

Stepper Motor Control with Codesys

Message par Digitrain »

Bonjour,

J'essaie de faire fonctionner un moteur pas à pas avec un driver DRV8825 sur un Raspberry Pi 3 A+ avec Codesys 3.5 SP17. Le moteur pas à pas utilisé est un JK20HS30-0604. J'ai appliqué le schéma suivant :
Image
J'ai déjà réglé la tension à environ 0,25 V (Vref. = 1/2 I max.) avec le potentiomètre sur le DRV8825.
Je veux réaliser un exemple simple :
Lorsque j'appuie sur un bouton, je voudrais que le moteur accélère pendant 3 secondes jusqu'à une vitesse élevée, puis maintienne cette vitesse pendant 2 secondes et enfin décélère pendant 3 secondes jusqu'à l'arrêt complet.
J'ouvre le projet nommé " StepperTestProject " disponible ici :
https://forge.codesys.com/drv/sm3raspis ... home/Home/
Dans le " Visu_DRV8880 " il y a tellement de FB que je ne sais pas lequel je dois prendre ainsi que la plage des paramètres d'entrée à régler pour mon exemple. Il y a aussi un POU mais je ne comprends pas ce qu'il fait car il est en ST et je ne programme qu'en Ladder (LD) ou SFC.

Qui peut m'aider et me donner plus de détails pour avoir un moteur pas à pas fonctionnel ?

D'avance merci pour votre aide.
Avec mes meilleures salutations
Avatar de l’utilisateur
Béryl
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1660
Inscription : 20 oct. 2015, 12:00
Localisation : localhost

Re: Stepper Motor Control with Codesys

Message par Béryl »

Je ne maitrise pas bien le sujet, mais je suis surpris que la pinoche ENABLE ne soit pas gérée.
Avatar de l’utilisateur
Digitrain
Asservi son premier moteur
Asservi son premier moteur
Messages : 27
Inscription : 27 mars 2021, 17:17

Re: Stepper Motor Control with Codesys

Message par Digitrain »

Bonjour,
Béryl a écrit : 08 juil. 2021, 11:50 Je ne maitrise pas bien le sujet, mais je suis surpris que la pinoche ENABLE ne soit pas gérée.
Tout les schémas que j'ai vu laisse ENABLE déconnecté et c'est correct.
Image
Avec mes meilleures salutations
AC23
Forcené des structures
Forcené des structures
Messages : 174
Inscription : 29 mars 2021, 10:59

Re: Stepper Motor Control with Codesys

Message par AC23 »

Tu pourrais m'être le fichier ST en question ? (partie déclaration des entrées sorties compris)
<< La vie d'un homme passe par trois phases : apprentissage, apprentissage et apprentissage. >>
Et j'ai même pas fini la première phase
Avatar de l’utilisateur
Digitrain
Asservi son premier moteur
Asservi son premier moteur
Messages : 27
Inscription : 27 mars 2021, 17:17

Re: Stepper Motor Control with Codesys

Message par Digitrain »

Bonjour,
AC23 a écrit : 08 juil. 2021, 13:13 Tu pourrais m'être le fichier ST en question ? (partie déclaration des entrées sorties compris)
Ci-joint une capture d'écran du programme (car le forum ne permet l'upload que de fichiers graphiques) ainsi que les différents FB moteur du WebVisu.
Pour rappel le fichier du projet complet est téléchargeable via le lien donné dans mon post original.

J'aimerai vraiment utilisez uniquement le langage LD pour la programmation car je ne suis pas le seul à devoir intervenir dans la programmation.

D'avance merci pour votre aide.
Stepper_Codesys.PNG
Visu_DRV8880.PNG
Avec mes meilleures salutations
AC23
Forcené des structures
Forcené des structures
Messages : 174
Inscription : 29 mars 2021, 10:59

Re: Stepper Motor Control with Codesys

Message par AC23 »

Ce ST sert uniquement à la déclaration/instanciation de 3 FB qui se nomme (SMC_StartupDrive). Ce FB a une seule entrée du nom de "Axis" qui est de type : AXIS_REF_SM3 (Ce dernier comporte plusieurs paramètres voir ici).

Si je devais résumer, ton PLC_PRG crée trois variables du type SMC_StartupDrive qui lui-même composait plusieurs variables (Word, Bool, INT ...etc).

Si tu ne veux pas lire du ST et t'amuser à trifouiller dans les FB fournis. Je te conseille donc de lire la datasheet du DRV8825 (disponible ici. Ça te permet d'identifier quel signal envoyé, sur quelle branche et la périodicité de chacun (Fréquence, temps de maintien ...etc).



PS la syntaxe du ST n'est pas très difficile à comprendre. Ça permet surtout de traduire plusieurs 10 de réseaux en LD en quelques lignes en ST.
<< La vie d'un homme passe par trois phases : apprentissage, apprentissage et apprentissage. >>
Et j'ai même pas fini la première phase
Avatar de l’utilisateur
Digitrain
Asservi son premier moteur
Asservi son premier moteur
Messages : 27
Inscription : 27 mars 2021, 17:17

Re: Stepper Motor Control with Codesys

Message par Digitrain »

Bonjour,
Merci pour ces explication.
Je suis arrivé à faire bouger le moteur en utilisant le FB MC_Power et le MC_JOG. Par contre je n'arrive à faire trouver le moteur que dans un sens. Lorsque j'essaie dans l'autre sens il ne bouge pas par contre les FB semble réagir normalement comme si le moteur tournait... :? Si j'enlève la connection entre la pin DIR et le Raspi alors le moteur tourne également mais sans changer de sens.
Une idée...?
LD.PNG
WebVisu.PNG
Avec mes meilleures salutations
AC23
Forcené des structures
Forcené des structures
Messages : 174
Inscription : 29 mars 2021, 10:59

Re: Stepper Motor Control with Codesys

Message par AC23 »

Si je me fie à la doc fournis (Page 17: 8.4.1 STEP/DIR Interface): La direction moteur dépond de deux paramètres pour se déplacer dans la table d'indexation. Chaque front montant sur la PIN "STEP" incrémente/décrémente le pointeur de table. le choix d'incrémenter ou décrémenter est lui déterminer par la pin DIR.

Il est indiqué également dans le descriptif de la "Table 2" (Page 14), que la PIN DIR Low => une direction/ PIN DIR High => l'autre direction.

Donc c'est normal que si tu débranche le fil (donc état "low") la moteur continue de tourner à chaque front montant de STEP (Ce n'est pas un défaut) en soit. Si tu veux tourner ton moteur dans l'autre sens force ta PIN Dir à l'état "High" (ou TRUE).

Cela devrait marché avec un peu de chance :lol:
Tiens nous au courant ;)
<< La vie d'un homme passe par trois phases : apprentissage, apprentissage et apprentissage. >>
Et j'ai même pas fini la première phase
Avatar de l’utilisateur
Digitrain
Asservi son premier moteur
Asservi son premier moteur
Messages : 27
Inscription : 27 mars 2021, 17:17

Re: Stepper Motor Control with Codesys

Message par Digitrain »

Bonjour,
Oui parfaitement j'ai aussi compris le fonctionnement ainsi.
AC23 a écrit : 09 juil. 2021, 16:46Si tu veux tourner ton moteur dans l'autre sens force ta PIN Dir à l'état "High" (ou TRUE).
Si je met à l'état haut avec le 3,3 du Raspi la pin DIR, le moteur ne fonctionne ni dans un sens ni dans l'autre. J'ai essayé avec un autre moteur et c'est pareil. Peut-être un problème hardware...
Avec mes meilleures salutations
philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2076
Inscription : 21 oct. 2015, 10:00
Localisation : Ile de France

Re: Stepper Motor Control with Codesys

Message par philou77 »

salut, une idée toute bête, c'est pas du npn ton driver (8825 c'est la puce qui est dessus, pas la carte en elle même)?
et qu'en est -il de la config de ton axe dans codesys ?
l'as tu autorisé à tourner dans les deux sens ?
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D
Répondre