Page 2 sur 2

Re: Modbusdoctor

Posté : 19 sept. 2024, 14:28
par Bruce33
La trame de requête est composée de ces octets 0 0 0 0 0 6 1 3 0 135 0 2 avec ce découpage :
0 0 = numéro de transaction (non utilisé car on ne traite qu'une requête à la fois)
0 0 = identifiant de protocole (toujours égal à 0 en Modbus TCP)
0 6 = nombre d'octets qui suivent
1 = Unit ID (adresse de l'esclave Modbus dans le cas d'une passerelle)
3 = code fonction (ici, lecture de registres de maintien)
0 135 = adresse du registre
0 2 = nombre de registres consécutifs

et la trame de réponse 0 0 0 0 0 3 1 131 2 :
0 0 = numéro de transaction
0 0 = identifiant de protocole
0 3 = nombre d'octets qui suivent
1 = Unit ID
131 = code fonction en erreur (= code fonction + 128)
2 = code d'erreur (ici, adresse de données invalide)

On peut demander simultanément plusieurs variables au serveur OPC mais celui-ci va générer autant de requêtes Modbus qu'il y a de variables. Il a forcément été paramétré pour fonctionner ainsi. Pour le client OPC c'est transparent.

Vous vous faites des idées à propos des différences entre le serveur OPC et le driver Modbus de Panorama.
Le protocole de communication OPC classique (appelée maintenant OPC DA) c'est une communication entre logiciels. Mais le serveur OPC utilise son driver Modbus pour communiquer avec la chaudière.
Si Panorama a son propre driver Modbus, le traitement de l'information est a priori plus direct.
Au lieu d'avoir :
supervision <---OPC---> serveur OPC <---Modbus---> chaudière
vous aurez :
supervision <---Modbus---> chaudière
Là où il faut faire attention, c'est aux possiblités de paramétrage du serveur Modbus pour être certain d'être compatible avec le matériel.
Notamment il faut vérifier que le driver Modbus de Panorama permet de forcer la lecture d'un seul registre par requête.

Re: Modbusdoctor

Posté : 22 sept. 2024, 16:45
par tuscaonline
Il y'a souvent des zones où l'on a pas le droit de lire en modbus. Les driver modbus de tout les superviseur ont un paramètre qui permet de limiter le nombre de mot à lire. Ils faut joué avec.

Re: Modbusdoctor

Posté : 23 sept. 2024, 16:13
par tardieub
Tres interressant tout ça, merci bien pour ces explications, je vais tacher de trouver où forcer cette lecture seule. J avoue avoir essayer un peu tout les options sur la config modbus de pano. Des que j ai la solution je la poste ici. Merci pour avoir pris le temps de detailler les trames, je vais ainsi appronfondir mes connaissance. Il est vrai que quand ca fonctionne, je passe a autre chose sans forcément maitriser le fonctionnement.
Bruno

Re: Modbusdoctor

Posté : 25 sept. 2024, 14:44
par tardieub
Bonjour, donc problème résolu, en effet il y a bien un moyen de forcer la lecture d'un seul mot a la fois sur le drivers Modbus de Panorama:
Capture d’écran 2024-09-25 143805.jpg
Le "MaxPduSize", il faut calculer le nombre d'octet (2) car mot de 16 bit et ajouter le chiffre du code fonction (3), donc 2+3=5. Par defaut la valeur est de 252.
Voici le detail de l'aide de Pano:

"MaxPduSize

Entier – Configuration

Taille maximale (octets) de la zone de donnée du protocole (code fonction et données).

La valeur par défaut correspond au standard MODBUS et permet une performance optimale dans la majorité des cas. Cependant, il peut être nécessaire d’abaisser cette valeur, en particulier pour un équipement utilisant le protocole JBUS pour lequel la valeur doit parfois être abaissée de 6 ou 10 (se reporter à la documentation de l’équipement).

Par exemple, pour certains automates qui n’acceptent que 120 mots par trame, cette valeur doit être initialisée à 120 mots * 2 + 1 (code fonction) = 241 octets.

Valeur par défaut : 252"

Merci a tous,

Re: Modbusdoctor

Posté : 26 sept. 2024, 00:35
par Bruce33
Merci Bruno pour ce retour avec complément d'information qui pourra servir à d'autres personnes.
Le paramètre MaxPduSize n'est vraiment pas clair pour les utilisateurs, Codra aurait pu trouver un paramétrage plus explicite.
L'explication sur la longueur de 5 octets me laisse perplexe (le code fonction tient sur un seul octet). Surtout que le PDU de la requête n'a pas forcément la même longueur que le PDU de la réponse... Mais bon si ça marche c'est l'essentiel.

Re: Modbusdoctor

Posté : 02 oct. 2024, 07:01
par tuscaonline
Pour debugger les trame mosbus wireshark est très pratique.

Re: Modbusdoctor

Posté : 02 oct. 2024, 09:31
par Bruce33
tuscaonline a écrit : 02 oct. 2024, 07:01 Pour debugger les trame mosbus wireshark est très pratique.
Bonjour,
Et qu'aurait pu apporter Wireshark dans le sujet traité ici ?

Re: Modbusdoctor

Posté : 02 oct. 2024, 10:09
par tuscaonline
Vous auriez vu que panorama Fait par défaut une requete de 200 mot alors qu'on en souhaite qu'un.