Étape 7: Servomoteur contrôle
Si vous êtes chanceux, suffisamment pour avoir accès à un servo de qualité industrielle (ou stepper) et conduire ensuite cette étape vous montrera comment contrôler que l’utilisation de la Raspberry Pi PLC.
J’ai réussi à obtenir mes mains sur un Technosoft EtherCat kit de démarrage de travail qui contient un seul moteur et le lecteur (voir photo).
Détails peuvent être trouvés ici : http://www.technosoftmotion.com/en/starter-kits-an...
Avec ce tutoriel, vous pouvez utiliser n’importe quelle combinaison de variateur et un moteur EtherCat aussi longtemps que vous avez l’appareil description file(XML) du fabricant pour importer dans Codesys. (Vous pouvez également utiliser le raspberry pi avec d’autres protocoles de communication pour contrôler différents moteurs et IO, mais les configurations et les mesures pour cela sera légèrement différentes de tout ce que j’ai décrit dans cette instructable). Vous devrez peut-être utiliser certains logiciels propriétaires à mettre en place les disques.
NOTE DE SÉCURITÉ :
** Lors de l’utilisation de moteurs s’il vous plaît soyez prudent comme se déplaçant les pièces peuvent être dangereuses. Veuillez aussi faire attention à suivre les instructions du fabricant du moteur et vérifier que tout le câblage est correct, surtout avec haute tension drives.* *
-La première étape consiste au fil de votre moteur et d’entraînement selon les fabricants instructions, dans mon cas c’était simple, tout ce que je devais faire c’était ajouter 24V à la logique et la puissance dans les ports (voir câbles plus épais rouges et bleus sur la photo), le reste est venu tout câblé vers le haut. Ensuite, vous devez relier un câble ethernet entre le port EtherCat dans votre lecteur de moteur et le port ethernet de la Raspberry Pi. C’est le même processus que reliant la Pi à l’e/s industrielles à l’étape 5.
Si vous souhaitez utiliser les e/s et le moteur, laissez le IO tel qu’il était et connectez le câble ethernet du port EtherCat dans de la motorisation de la EtherCat sur le port de l’e/s industrielles. Si vous faites cela cependant, il faut s’assurer que les deux appareils sont ajoutés à votre arborescence périphérique dans Codesys. EtherCat est un protocole de communication fieldbus brillant vous permettant de comms « daisy chain » dans l’ensemble des charges de dispositifs utilisant des câbles ethernet seulement simple.
Pour ce Instructable cependant nous allons juste utiliser le moteur à lui seul.
-Lorsque le câblage est terminé, nous pouvons passer à la programmation.
-Suivant le même processus qu’étape 5 ouvrent un nouveau projet dans Codesys et ajouter un EtherCat maître et un périphérique, cette fois-ci toutefois choisir le fichier XML qui correspond à celle de la motorisation de l’appareil (voir photo de mon arbre des périphériques après avoir ajouté ce)
-Nous devons maintenant ajouter un axe à cet appareil. Essentiellement, cela signifie que nous devrons dire Codesys que ce périphérique EtherCat est un moteur de contrôle. Et que ce sont les paramètres du moteur.
-Faites un clic droit sur le périphérique que vous venez d’ajouter et cliquez sur « Ajouter l’axe SoftMotionLight CiA402 ».
C’est où l’idée de la Raspberry Pi PLC s’abat le plus petit et le plus petit montant. Le Pi ne disposant pas d’un noyau temps réel et par conséquent aucune capacité temps réel (même si ceux-ci peuvent être ajoutés si vous osez jouer avec le noyau de la Pi) il ne peut pas gérer toutes les fonctionnalités de communication vers un lecteur c’est pourquoi il faut utiliser la version « Light ». En temps réel parler, cela signifie que la synchronicité du moteur à votre programme ne sera pas aussi bonne comme si c’était un bon > dispositif de £500. Mais qui se soucie que quand il fait tout le reste si bien !
Clic-droit sur le nouvel élément de l’arborescence des périphériques, passez à « Refactoring » puis « renommer ». Renommez l’axe « Axe1 ». CoDeSys évoquera ensuite un nouvel écran vous demandant de vérifier si ses trouvé le bon dossier, cliquez sur « OK ».
-Double-cliquez sur « Axe1 » dans l’arborescence des périphériques et cela va ouvrir un nouvel onglet dans la fenêtre principale. C’est où vous devez calibrer l’axe de votre système, en choisissant le nombre moyen de tours ce qui, ainsi, par exemple le moteur j’ai a un encodeur avec des incréments de 2000 par tour du moteur. Je n’ai aucune boîte de vitesse et je veux travailler à tour de rôle, pas mm (si vous aviez un axe linéaire sur le moteur). Donc, mon écran ressemble à la photo ci-jointe.
-Codesys s’occupe de la plupart des choses pour vous avec EtherCat donc faire maintenant le moteur passer tout ce que nous devons faire est écrire un programme et d’utiliser certains construit en fonctions Codesys.
-Pour le rendre facile, j’ai téléchargé un programme d’échantillonnage dans cette instructable CFC écrit dans (une langue de Codesys), vous pouvez facilement copier et coller les pou (disponible sous "Application" dans l’arborescence des périphériques") à votre programme. J’ai utilisé quelques simples construit dans les fonctions qui font partie de la « MC_Open » de Codesys bibliothèque qui s’occupent de déplacer le moteur, j’ai juste avoir à leur dire des fonctions quel moteur je veux déménager et à quelle vitesse.
-Lorsque vous avez téléchargé le programme et entré mode d’exécution tel que décrit à l’étape 5. Pour déplacer le moteur, vous devez ouvrir le POU, « Motor_Control » maintenant, vous devez cliquer sur les variables « Distance », « Vitesse » et « Accel » (voir photo) à son tour et entrer des nombres, par exemple, 60, 60, 100. Faire 60 tours et 60revs/min avec une accélération de 100revs/s/s. Maintenant, cliquez sur la variable « Power_Enable » jusqu'à ce que « True » à côté de la variable en bleu, vous devez maintenant écrire cette valeur à l’automate en cliquant sur "Ctrl + F7". Il écrit également les valeurs pour les autres variables, que nous avons changé.
-Le moteur doit maintenant être activé, ce qui signifie qu’il est en marche et la tenue de position.
-Pour déplacer le moteur à l’aide de "MC_MoveRelative_SML" (un mouvement relatif de la position des moteurs par opposition à un absolu), vous devez affecter à la variable "Move_Motor_Pos" "True" (de la même manière que ci-dessus). Vous devrez peut-être effectuer cette étape deux fois pour voir le mouvement du moteur, il s’agit d’un bug que je ne comprends pas très bien. Le moteur doit tourner, yay !
Maintenant, vous avez le contrôle sur les moteurs, essayer d’écrire un programme qui fait tourner le moteur en arrière. Vous pouvez utiliser les fonctions MC_Open en langage ST trop.