Accueil > Forum > Terminaux d'opérateurs (Weintek) > Communication Modbus avec automate Elsist
- Ce sujet a 5 réponses, 3 participants et a été mis à jour pour la dernière fois 4 années, 6 mois da Sergio Bertana.
-
auteurPost
-
Juillet 17, 2019 à 12: pm 36 #48586Giuseppe CattaneoPartecipante
J'ai une application qui en utilise une SlimLine Ethernet et un terminal MT8051iP communiquant entre eux via Modbus TCP. Dans le panneau de paramètres système, j'ai sélectionné le type de périphérique MODBUS TCP / IP via Ethernet pour ne pas rencontrer le problème de décalage 1 dans les adresses.
Maintenant, j'aimerais reproduire exactement la même application, mais en communiquant l'API et le panneau via un port série afin de laisser l'API ethernet libre. Comment devrais-je faire?
Me suffit-il de sélectionner comme type de périphérique MODBUS RTU, RTU sur TCP? Dois-je modifier quelque chose dans l'adressage dans le logiciel de l'automate?
Juillet 17, 2019 à 1: pm 23 #48589Sergio BertanaAdministrateur du forumPour communiquer avec les automates SlimLine vous pouvez utiliser le protocole MODBUS TCP / IP soit ELSIST MODBUS, dans les deux cas le décalage de 1 sur l'adressage est automatiquement correct (il reste à diviser par 2 l'adresse des variables WORD / DWORD / REAL).
Lorsque vous dites laisser le port Ethernet libre, je suppose que vous voulez dire que vous devez connecter d'autres périphériques Ethernet et que vous ne voulez pas utiliser de commutateur réseau. Parce que sur la connexion Ethernet par défaut, vous pouvez connecter simultanément plusieurs périphériques Modbus TCP (il est possible de configurer le nombre, par défaut, ils sont 3).
En choisissant la connexion série, il est préférable de configurer MODBUS RTU et vous n'avez rien d'autre à faire. À partir de la page Web, il est possible de définir le protocole géré (sur IP / RTU / Ascii, RTU par défaut), faites attention au réglage des paramètres de communication corrects (modifiable à partir de la page Web, par défaut 115200, et, 8, 1).
Juillet 18, 2019 à 6: 39 am #48590Giuseppe CattaneoPartecipanteOk parfait.
Je dois laisser le port Ethernet libre car je dois me connecter au réseau de l'entreprise qui, via MES, devra prendre des informations et dans la mini-image qui compose l'appareil, je n'ai pas l'espace physique pour insérer également un commutateur. Je voulais m'assurer qu'entre les deux types de modbus, il n'y avait pas de différences d'adresses.
La chose étrange à propos du décalage sur l'adressage ... car je me souviens que sur le premier que j'ai configuré j'ai eu un problème et donc je suis passé en modbus IDA pour le contourner ...
Juillet 18, 2019 à 8: 19 am #48594Sergio BertanaAdministrateur du forumLe problème du décalage sur l'adressage Modbus est malheureusement un problème atavique, pour éviter d'indiquer l'adresse 0 Movicon a créé le décalage. En pratique, dans le maître (dans notre cas l'IHM) l'adresse 1 est définie mais en réalité l'adresse 0 est passée dans le protocole et ainsi de suite.
Cependant, de nombreux systèmes Modbus ne gèrent pas correctement le décalage, c'est pourquoi il est parfois nécessaire d'ajouter / soustraire 1 à l'adresse. Weintek a ajouté le choix dans le protocole MODBUS IDA pour surmonter ce problème Zero-based Addressing ce qui évite de soustraire 1 à l'adresse envoyée sur le protocole.
Octobre 22, 2019 à 12: pm 19 #50298MarcelloPartecipanteBonjour, je voulais savoir si, via le ModBus du terminal Weintek, il était possible d'accéder aux mémoires système en lecture seule% MW0.130,% MW0.132 et% MB0.567.
Octobre 22, 2019 à 12: pm 30 #50301Sergio BertanaAdministrateur du forumNon, le seul bloc de données accessible depuis Modbus est le DB100 accessible avec l'adresse Modbus 40000. Le System variables les fichiers en lecture seule auxquels vous faites référence sont mappés dans la base de données 0 et sont accessibles au programme utilisateur avec leur adresse ou mieux avec leur mnémonique, mais ils ne peuvent pas être lus par Modbus. La même chose s'applique à la System variables lire et écrire mappé dans la base de données 1.
Si vous devez accéder à ces variables depuis Modbus, vous devez vous fier à une variable allouée dans DB100.
-
auteurPost
- Vous devez être connecté pour répondre à ce sujet.