Le but de cette notice est de mettre en place une communication entre un automate M221 de chez Schneider et un variateur de vitesse LXM32M relier à un moteur Schneider de la gamme Lexium.
Montage électrique
Ce montage électrique fait parti d’une installation plus large. Sur la partie qui nous intéresse, on a le LXM32M alimenté en triphasé et protégé par un disjoncteur D32 déporté. La spécificité de ce module par rapport à l’ATV, c’est qu’il faut nécessairement l’alimenter en 24V également et shunter le STO manuellement.

Point important, il faut ajouter une carte de communication dans le slot 3 pour avoir de quoi utiliser Ethernet-IP / Modbus TCP. Le port présent de base ne sert qu’à la communication série.
Configuration du LXM32M (LXM32MD30N4)
Il existe deux manières de procéder pour la première configuration du LXM32M lui permettant de rejoindre un réseau, ce qui nous permettra par la suite de le configurer via Modbus TCP en utilisant SoMove :
- Utiliser un câble hors de prix pour créer une liaison Modbus serie et configurer à l’aide de SoMove
- Utiliser l’écran du variateur et la roue de sélection
Configuration de l’IP par Modbus Serie + SoMove
On commence à raccorder notre PC en USB au LXM32M sur la prise Modbus VP10S. Puis on ouvre SoMove :

Pour configurer les paramètres réseaux, il faut aller dans Liste des paramètres > EtherNet/IP > Ethernet :

Il faut dans un premier temps mettre EthIpMode sur Manual si l’on veut rentrer l’adresse manuellement (sinon DHCP / BOTP en fonction de l’infrastructure réseau). De même EthMode doit être sur Modbus TCP pour la suite avec le M221.
EthIPmodule1 à 4 correspond à l’IP souhaitée pour le variateur. EthIPmodule1 = octet1 de l’adresse IP, et ainsi de suite.
EthIPmask1 à 4 correspond au masque du réseau sur lequel se trouve le variateur.
Optionnellement, on peut mettre en place une gateway de réseau en remplissant EthIPgate1 à 4.
Il faut ensuite redémarrer le variateur et on peut procéder à la configuration via Modbus TCP.
Configuration de l’IP par écran du variateur
Dans un premier temps, mettre la sélection de l’adresse IP en manuel :
ConF > CoN- > IPNd. Sélectionner Manu.
Ensuite, les paramètres iPc1 à 4 sont les octets de l’adresse IP du variateur.
Ex : Pour l’IP 10.140.52.44 ; IPC1 = 10, IPC2 = 140, IPC3 = 52, IPC4 = 44.
Puis, il faut configurer le masque du réseau sur lequel se trouve notre variateur :
Même principe que pour IPC, IPN1 correspond au premier octet du masque, IPN2 au deuxième, etc.
Ex : pour le masque 255.255.255.128 ; IPN1 = 255, IPN2 = 255, IPN3 = 255, IPN4 = 128.
Optionnellement, il est possible de mettre en place une gateway pour le réseau avec IPG1 à 4. C’est sur le même principe que IPC- et IPN-.
Dans un dernier temps, il faut activer Modbus TCP :
Conf > CON- > EtNd. Sélectionner MbtP.
Une fois ceci fait, il n’y a qu’à redémarrer le variateur et il est ensuite possible de se connecter en Modbus TCP depuis SoMove pour terminer la configuration.
Restant de la configuration par SoMove via Modbus TCP
On peut dès à présent se connecter au variateur sur SoMove en passant par Modbus TCP :

Il est possible en haut à gauche d’ouvrir un panel permettant de prendre la main sur le moteur en live :


Ce panel, une fois activé (Alt + F en face de l’avertissement), aura la pleine possession du moteur. Il faudra le désactiver si des communications depuis l’automate doivent se mettre en place.
Dès qu’une modification est effectuée, il faut l’envoyer sur le variateur pour qu’elle soit prise en compte, sinon elle ne sera stockée qu’en mémoire de l’ordinateur. Il faut appuyer sur ce bouton dès que le variateur est connecté :

Une bonne chose sur ce variateur (et c’est d’ailleurs la seule), c’est qu’il est possible de redémarrer le variateur LXM32M directement depuis SoMove en faisant Équipement > Fonctions utilisateur > Redémarrer le variateur :

Pour travailler en Modbus TCP avec le M221, il reste à renseigner l’adresse IP de notre M221 dans les paramètres EthIPmaster1 à 4 et EthMbIPswap1 à 4 dans l’onglet “Modbus TCP” :

EthMbIPswap- n’est en soit pas obligatoire, mais ça ne coûte rien de l’avoir.
Le restant de la configuration se trouve dans l’onglet variateurs. Dans Simply start > configuration de base se trouve les options principales. A minima, il faudra juste s’assurer que DEVcmdinterf soit positionné sur “Fieldbus Control Mode” :

Pour le reste, ça dépendra de la configuration du moteur rattaché au variateur. Il y a de quoi passer une merveilleuse journée en lisant l’incroyable documentation du seul variateur longue de 708 pages.
Programmation du M221
La programmation avec un M221 dans Ecostruxure Machine expert basic repose essentiellement sur la liaison Modbus TCP car notre automate est pourvu de la carte réseau le permettant.
Communications particulières
Sur d’autres M221, il est possible de communiquer par Modbus serie, mais il faut activer cette option dans le LXM32M qui ne le fait pas de base. Enfin, si vraiment c’est la misère en termes de possibilités, il reste l’option d’utiliser le PTO si l’automate est pourvu d’un générateur d’impulsions (si l’option est visible dans l’onglet configuration).
Activation de Modbus Serie
Pour activer la communication Modbus sur un RS485, il faut suivre une procédure très tarabiscotée. Dans un premier temps, il faut acquérir le privilège “expert” sur la configuration du LXM32M.
Pour cela, il faut se rendre dans Équipement > Niveau utilisateur > Réglage du niveau utilisateur :

Dans le popup qui s’ouvre, il faut sélectionner le niveau d’utilisateur expert et rentrer le mot de passe par défaut 696969 (l’auteur du logiciel a probablement un message à nous faire passer) :

Ensuite il faut aller dans l’onglet My Dashboard et modifier la valeur située à l’adresse Modbus 1282 dans l’encart direct access. Dans un premier temps, il est préférable de d’abord lire la valeur inscrite à l’adresse pour savoir dans quel mode le variateur se trouve :

Puis d’écrire la valeur 3 afin de passer en Modbus serie :

Il faut ensuite enregistrer les changements dans le variateur et le redémarrer.
Utilisation du PTO
Il est possible d’utiliser le PTO avec le LXM32M. Un slot sur le CN4 est prévu à cet effet à l’arrière du variateur. Je n’ai pas vraiment beaucoup explorer cette possibilité, mais voici une ébauche de configuration améliorable.
Dans un premier temps, il faut créer un objet PTO sur l’automate en configurant un générateur d’impulsions. Il faut aller dans l’onglet “Générateurs d’impulsions” sous configuration.

Puis dans la fenêtre qui s’ouvre lorsqu’on cherche à configurer un générateur, il faut sélectionner PTO :

À partir de là, une configuration plus ample peut être apportée. Il ne suffit que d’appliquer le changement à la fin :

Cela nous permet d’utiliser la famille d’instructions, déjà entièrement configurées, associées au PTO :

C’est très confortable pour programmer l’automate.
Mise en place de l’IO Scanner pour Modbus TCP
Comme pour chaque projet nécessitant du Modbus TCP, il faut dans un premier temps donner une adresse IP à l’automate et activer les options intéressantes au projet :

Puis on peut ajouter le LXM32M dans le Scrutateur d’E/S Modbus TCP. C’est un appareil générique. Cela signifie que nous auront à gérer toute son implémentation sur le scrutateur et toute sa logique dans la programmation de l’automate :

S’il n’y a pas de requête d’initialisation à fournir, il faut en revanche changer les plages de lecture et d’écriture :

Ces plages sont très importantes à configurer et dépendent de la configuration rentrée dans le variateur. En effet, d’après la documentation, il est possible d’allouer 6 mots supplémentaires en lecture et en écriture, poussant la longueur des deux champs à un maximum de 19 tous les deux. Il est important de noter que si les zones ne sont pas en adéquation avec la configuration, la communication sera en échec. Pour le moins, on peut taper moins large, mais absolument pas dépasser.
Les paramètres champs supplémentaires sont configurables dans Liste des paramètres > EtherNet/IP > Données E/S Ethernet :

Note : Rappelez vous que les voies du Lexium sont impénétrables. Ainsi, il y a une énorme subtilité lors de l’ajout de paramètres supplémentaires : Il faut désactiver le scrutateur d’E/S, redémarrer le variateur, ajouter les variables dans le tableau, redémarrer le variateur, réactiver le scrutateur d’E/S.
Ensuite, pour utiliser le variateur, il faut jouer avec les registres Modbus en lecture et en écriture. Point important, aucune lecture ne sera effectuée (i.e : les valeurs resteront à zéro sur le scrutateur) tant qu’aucune écriture n’aura préalablement été commandée.
Controler le moteur
Pour l’écriture depuis le M221 sur le LXM32M :
| Position en octet | Longueur en octet | Variable | But |
|---|---|---|---|
| 0 | 4 | PCTRLms | Paramètres du LXM32M |
| 4 | 4 | PVms | Paramètres du LXM32M |
| 8 | 2 | dmControl | Régler l’état de fonctionnement et le mode op |
| 10 | 4 | RefA32 | Valeur propre 1 pour mode opératoire |
| 14 | 4 | RefB32 | Valeur propre 2 pour mode opératoire |
| 18 | 4 | Ramp_v_acc | Accélération |
| 22 | 4 | Ramp_v_dec | Décélaration |
| 26 | 4 | EthOptMapOut1 | Paramètre optionnel 1 (à configurer avant) |
| 30 | 4 | EthOptMapOut2 | Paramètre optionnel 2 (à configurer avant) |
| 34 | 4 | EthOptMapOut3 | Paramètre optionnel 3 (à configurer avant) |
Grâce au scrutateur, ces variables sont directement accessibles dans %QWN300.0.0 (ou plus s’il y a d’autres composants scrutés).
Le mot (= 2 octets) dmControl est un des plus important pour le contrôle et l’asservissement du moteur. La doc explique comment il est découpé :

Lire les informations depuis le variateur
Pour lire des informations depuis le variateur et les récupérer sur le M221.
| Position en octet | Longueur en octet | Variable | But |
|---|---|---|---|
| 0 | 4 | PCTRLsm | Lire des paramètres |
| 4 | 4 | PVsm | Lire des paramètres |
| 8 | 2 | driveStat | État de fonctionnement actuel |
| 10 | 2 | mfStat | Mode opératoire actuel |
| 12 | 2 | motionStat | Informations moteur |
| 14 | 2 | driveInput | État des entrées logiques du variateur |
| 16 | 4 | _p_act | Position instantanée |
| 20 | 4 | _v_act | Vitesse instantanée |
| 24 | 2 | _i_act | Courant instantané |
| 26 | 4 | EthOptMapInp1 | Paramètre optionnel 1 (à configurer avant) |
| 30 | 4 | EthOptMapInp2 | Paramètre optionnel 2 (à configurer avant) |
| 34 | 4 | EthOptMapInp3 | Paramètre optionnel 3 (à configurer avant) |
Grâce au scrutateur, ces variables sont accessibles dans %IWN300.0.0.