[M221] lecture d'un registre Modbus RTU en 32 bits swap

Forum traitant des automates industriels de marque Schneider - Telemecanique
MiGaNuTs
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1572
Enregistré le : 12 nov. 2015, 21:02
Localisation : 45 - Loiret
Contact :

Re: [M221] lecture d'un registre Modbus RTU en 32 bits swap

Message par MiGaNuTs »

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.
Avatar du membre
Bruce33
Dieu du process
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

Message par Bruce33 »

Pour le problème de lecture du deuxième paramètre, je rejoins l'analyse de MiGaNuTs.
NAAION a écrit : 16 juin 2025, 15:48 j'ai compris pour le double mot et le swap.

En fait pour un mot double en 32 bits:

- MW0 --> 1er mot en 16 bits
- MW1 --> 2eme mot en 16 bits

- MD0 --> Double mot non Swap
- MD1--> Double mot Swap

c'est assez simple en fait.
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.
NAAION
Apprend le binaire
Apprend le binaire
Messages : 5
Enregistré le : 22 juin 2020, 17:14

Re: [M221] lecture d'un registre Modbus RTU en 32 bits swap

Message par NAAION »

Je tenais à vous remercier pour vos conseils, tout fonctionne parfaitement à présent.
Répondre