Modbus RTU et Hitachi WJ200 (ou Omron MX-2)

Partie du forum pour tout ce qui concerne les variateurs de vitesse dans l'industrie. Forum, conseil, astuce et entraide sur les variateurs de fréquence .
Répondre
MiGaNuTs
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1036
Enregistré le : 12 nov. 2015, 21:02
Localisation : 45 - Loiret
Contact :

Modbus RTU et Hitachi WJ200 (ou Omron MX-2)

Message par MiGaNuTs »

Bonjour a tous.

J'ai déjà fait pas mal de fois des trucs avec des WJ200 avec diverses cartes réseau mais pour changer je voudrais en piloter au moins un en RS485, histoire de tester toutes les possibilités du bouzin (et si je peut économiser le prix de la carte de com a chaque fois, ça fait plaisir a mes clients. même si le pooling est plus lent, parfois ca ne dérange pas)

J'ai paramétré mes vitesses de com, l'id du var.
j'ai mis le A001 et le A002 a 3 pour autoriser l'envoie des consignes et des ordre de marche via la com' modbus série

j'arrive a envoyer les trames de type "write single word" pour la consigne de fréquence F001
j'arrive a envoyer des "write multiple word" pour envoyer les rampes d'accel et de deccel en F002 et F003 en une seule fois
J'ai pas essayer de toucher a d'autres registres, mais je pense que ca devrait le faire.

Mais je n'arrive pas ni a envoyer l'ordre de marche, ni a envoyer l'ordre de sens de rotation !
si je les envoie séparément via des "write single bit" j'ai pas de message d'erreur, mais le var ne passe quand même pas en run
si je les envoie en même temps avec un "write multiple bits", je me prends un message d'erreur "0x03" qui corresponds a un "commande non autorisée"

Du coup il y'a 2 trucs que je ne comprends pas.
LE premier c'est pourquoi il semble n'en avoir rien a faire de mes commandes
et le 2eme c'est qu'avec les carte d’extension modbus TCP, (et même en ethercat ou ethernet/ip) pour le mettre en route par le réseau on passe par un control word (donc des trames "write register") et pas par des trames "write coil"
je me dit que j'ai oublié un truc quelque part, mais je ne comprends pas ou.

Ah oui, j'ai aussi essayé d'envoyer les consignes de fréquence et de rampes par la com' et les ordres de marche par des sorties de mon automate, et la ça fonctionne très bien. Je change juste de A002 pour avoir les commandes par bornier au lieu de par la com, et ça roule nickel.

Accessoirement je fait ça avec un M221, mais j'ai essayé aussi avec modbus doctor et j'ai peu ou prou le même résultat.

ps: si vous avez une astuce pour mettre la doc en pj, ca m’intéresse.
J'ai un gros pdf de 440 pages qui est le manuel du mx-2.
Modifié en dernier par MiGaNuTs le 02 juin 2020, 15:31, modifié 1 fois.
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7086
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Modbus RTU et Hitachi W200 (ou Omron MX-2)

Message par itasoft »

slts,
Si les commandes c’est des bits de mot c’est la requête 0x6 (écriture des 16 bits d’un mot)
Reste à savoir si l’api traite cette requête ? sinon utiliser la requête 0x10 (write multiple) sur une longueur de un seul mot
Automaticien privé (de tout)
itasoft@free.fr
philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2079
Enregistré le : 21 oct. 2015, 10:00
Localisation : Ile de France

Re: Modbus RTU et Hitachi W200 (ou Omron MX-2)

Message par philou77 »

Salut !

La doc du mx2 en français : https://assets.omron.eu/downloads/manua ... ual_fr.pdf

Page 356, ça te donne les bobines du variateur !
à partir de la page 335 ( Annexe B - Com MODBUS)

Rien de spécial si ce n'est de mettre les bons bits à 1 ou à 0 !

Si tu modifies des paramètres dans la config du variateur, pense à couper l'alimentation du variateur puis la remettre pour que les changements s'opèrent !
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D
MiGaNuTs
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1036
Enregistré le : 12 nov. 2015, 21:02
Localisation : 45 - Loiret
Contact :

Re: Modbus RTU et Hitachi W200 (ou Omron MX-2)

Message par MiGaNuTs »

Après pas mal de tests a tâtons, j'ai trouvé.

Concernant les registres, il accepte de les lire par 16 maximum, mais seulement par 4 en écriture.
Concernant les "coil" on peut les lire par 16 aussi, mais en écriture il faut y aller 1 par une.
C'est pas exactement ce que dit la doc...

Il est également de bon aloi de prendre soin d’écrire et de vérifier la prise en compte du bit donnant le sens de marche avant d'envoyer l'ordre de marche, sous peine, en cas de marche arrière, que le moteur parte en marche avant au moment du pooling de la première trame puis passe en marche arrière une fois la 2eme trame arrivée, quelques ms plus tard. ça peut être un brin désagréable pour la mécanique, et le moteur.

Ma première intention de laisser les ordres de marche câbles en dur et d'envoyer seulement les consignes par la com' me parait la plus fiable par rapport a du "tout par la com"

Autre truc a savoir, sur le M221 quand on écrit un "single bit", le paramètre 'indexdata' n'est pas un %M , mais un %MW , pareil que pour les envois de register. C'est pas forcement intuitif, ni clair en lisant la doc.

Une fois ces subtilités découvertes, ça fonctionne a merveille.

Il y'a moyen d'optimiser en augmentant le débit de la com' et en enchainant les trames non pas sur une tempo mais en utilisant les bits "done" ou "error", histoire de réduire le délai de rafraichissement des variables. Mais ça sera pour une autre fois.

Les fichiers sont en téléchargement par la
https://sourceforge.net/projects/modbus ... 200/files/
MiGaNuTs
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1036
Enregistré le : 12 nov. 2015, 21:02
Localisation : 45 - Loiret
Contact :

Re: Modbus RTU et Hitachi WJ200 (ou Omron MX-2)

Message par MiGaNuTs »

J'ai fait divers tests depuis.
En IO Scanning ça marche du feu de dieu sur le M221. Les temps de réaction sont meilleurs qu'en faisant des readvar/writevar "a la main". L'os de l'automate se chargeant d'optimiser au mieux l'utilisation du bus. Le 'bug' du sens de marche semble disparaitre, ou au moins être suffisamment gommé pour ne pas être perceptible.
J'ai essayé avec un M251, et la c'est le drame. Les trames "write single bit" semblent buguer. J'arrive a modifier les différents "holding register" du var, mais pas a le mettre en route.
A l'occasion j'essayerais directement avec un magelis ou/et un afficheur proface.
Ça peut servir dans un p'tit coffret cheap de faire des trucs avec un var, un afficheur et pas d'automate.
Répondre