Accueil > Forum > Terminaux d'opérateurs (Weintek) > Codes Modbus utilisés pour la communication depuis le panneau
- Ce sujet a 3 réponses, 3 participants et a été mis à jour pour la dernière fois 4 années, 8 mois da Sergio Bertana.
-
auteurPost
-
Décembre 9, 2013 à 8: 08 am #35459RobertoPartecipante
J'utilise votre panneau Weintek avec un port Ethernet connecté en Modbus TCP / IP avec un API Panasonic, pour effectuer un test de connexion J'ai entré un objet de Introduction numérique qui fait référence au registre 399 de l'automate. J'ai défini le code 3x dans le menu déroulant suivi de l'adresse du registre mais en me connectant à l'automate avec le programme en cours de simulation sur le PC j'obtiens une erreur de communication.
J'ai essayé de capturer des paquets Modbus TCP avec Wireshark et j'ai vu que le panneau envoie le paquet de requête Modbus avec le code 04 malgré avoir défini 3x dans le menu déroulant. L'automate ne gère pas la commande Modbus 04. Comment résoudre le problème?
Décembre 9, 2013 à 8: 29 am #37917Sergio BertanaAdministrateur du forumLes codes affichés dans le menu déroulant des paramètres de l'objet sur le terminal (Capture d'écran) ne sont qu'une convention, ils ne correspondent pas aux codes Modbus réels utilisés dans le protocole de communication. Comme indiqué dans le manuel des connexions API, voici un tableau avec les correspondances entre le code défini dans l'objet et le code Modbus correspondant.
(0x) Codes Modbus: Lire 0x01 Lire bobine, Ecrire 0x05 écrire bobine simple
(0x_multi_coils) Codes Modbus: Lire 0x01 Lire bobine, Ecrire 0x0F Écrire plusieurs bobines
(1x) Codes Modbus: Lire 0x02 Lire une entrée discrète, Ne gère pas l'écriture
(3x) Codes Modbus: Lire 0x04 Lire le registre d'entrée, Ne gère pas l'écriture
(4x) Codes Modbus: Lire 0x03 Registre de lecture de lecture, Ecrire 0x10 Écrire plusieurs registres
(5x) Codes Modbus: Lire 0x03 Registre de lecture de lecture, Ecrire 0x10 Écrire plusieurs registres
(6x) Codes Modbus: Lire 0x03 Registre de lecture de lecture, Ecrire 0x06 Écrire un seul registre (Un seul registre)
(3xbit) Equivalent à la commande 3x
(4xbit) Equivalent à la commande 4xJuillet 19, 2019 à 6: 05 am #48595ManuelPartecipanteJe reprends cette discussion puisque j'essaie de communiquer avec un MT8070iE avec un périphérique modbus TCP / IP, je dois utiliser la commande 0x05 pour écrire des bobines simples et écrire sur l'adresse 10010, mettez-la à une. Si j'utilise un logiciel libre externe, cela fonctionne si j'utilise le panneau, je ne peux pas ou plutôt je ne comprends pas la commande à utiliser comme bouton de bits.
En théorie, je règle le bit d'adresse Modbus à zéro avec un bouton et j'utilise la commande 0x, mais comment puis-je lui dire d'utiliser le 0x05 et de pointer le 10010.
PS: J'ai acheté plusieurs panneaux chez vous et tout va bien.
Juillet 19, 2019 à 6: 12 am #48598Sergio BertanaAdministrateur du forumSi vous regardez l'article précédent, vous verrez qu'en utilisant la commande 0x, le panneau utilisera automatiquement le code Modbus 01 pour lire la valeur du bit et le code 05 pour écrire la valeur, donc l'utilisation du code 0x est correcte.
Mais en attendant, je voudrais soulever des doutes sur l'utilisation de l'adressage basé sur zéro, sûr qu'il n'est pas préférable d'utiliser le standard Modbus TCP? essayez les deux car si votre appareil est compatible Modbus, vous devez utiliser le protocole Modbus TCP standard.
Sûr que l'adresse à utiliser est 10010, dans de nombreux nœuds d'application (et dans les émulateurs Modbus) le code modbus est ajouté en haut de l'adresse, et 10010 indique d'utiliser la commande Modbus 01 pour lire l'adresse 10. Donc j'essaierais pour utiliser la commande 0x avec l'adresse 10.
-
auteurPost
- Vous devez être connecté pour répondre à ce sujet.