A vue de nez j'ai l'impression que seul ton premier bloc de com' fonctionne.
Il ne faut pas utiliser le même front montant pour les lancer. tu ne peut en démarrer qu'un a la fois, il faut attendre que le premier soit fini pour lancer le deuxième, etc..
Il faut que tu fasse un petit séquenceur pour lancer tes trames l'une après l'autre et reboucler.
Y'a quelques années j'avais posté des exemples par la : https://sourceforge.net/projects/modbus ... iles/M221/
A la base c'est pour des variateurs hitachi/omron, mais le séquençage est sur le même principe.
Tu le fait avec des blocs readvar/writevar. Mais perso je trouve ça plus simple en io-scanning.
[M221] lecture d'un registre Modbus RTU en 32 bits swap
- Bruce33
- Dieu du process

- Messages : 930
- Enregistré le : 28 oct. 2015, 06:54
- Localisation : Pas-de-Calais
Re: [M221] lecture d'un registre Modbus RTU en 32 bits swap
Pour le problème de lecture du deuxième paramètre, je rejoins l'analyse de MiGaNuTs.
Dans l'automate M221,
%MD0 est constitué de %MW0 en poids faible et de %MW1 en poids fort.
%MD1 est constitué de %MW1 en poids faible et de %MW2 en poids fort.
%MD2 est constitué de %MW2 en poids faible et de %MW3 en poids fort.
etc.
Dans le M221 il y a donc un recouvrement entre %MD0 et %MD1 (mais pas de soi-disant "swap") parce qu'ils utilisent tous les deux %MW1.
Ce recouvrement est dangereux quand on n'en a pas conscience. Pour éviter les problèmes il est conseillé d'utiliser uniquement des adresses paires pour les variables %MD et %MF (32 bits).
Le problème avec les Diris c'est qu'ils utilisent un convention différente (c'est lié à leur processeur) qui fait que le mot de poids de fort c'est celui qui a l'adresse la plus faible. C'est aussi parce que le protocole Modbus n'a pas défini de convention pour les mots doubles.
Pas si simple, non. Votre compréhension des mots doubles est erronée.
Dans l'automate M221,
%MD0 est constitué de %MW0 en poids faible et de %MW1 en poids fort.
%MD1 est constitué de %MW1 en poids faible et de %MW2 en poids fort.
%MD2 est constitué de %MW2 en poids faible et de %MW3 en poids fort.
etc.
Dans le M221 il y a donc un recouvrement entre %MD0 et %MD1 (mais pas de soi-disant "swap") parce qu'ils utilisent tous les deux %MW1.
Ce recouvrement est dangereux quand on n'en a pas conscience. Pour éviter les problèmes il est conseillé d'utiliser uniquement des adresses paires pour les variables %MD et %MF (32 bits).
Le problème avec les Diris c'est qu'ils utilisent un convention différente (c'est lié à leur processeur) qui fait que le mot de poids de fort c'est celui qui a l'adresse la plus faible. C'est aussi parce que le protocole Modbus n'a pas défini de convention pour les mots doubles.
Re: [M221] lecture d'un registre Modbus RTU en 32 bits swap
Je tenais à vous remercier pour vos conseils, tout fonctionne parfaitement à présent.

