Accueil > Forum > Terminaux d'opérateurs (Weintek) > Doute de l'adressage des variables sur le système SlimLine
- Ce sujet a 1 réponse, 1 participant et a été mis à jour pour la dernière fois 3 années, 11 mois da Sergio Bertana.
-
auteurPost
-
Mai 14, 2020 à 7: 58 am #55182Anonymeinactif
Je prépare un programme avec de nombreuses variables Modbus à publier sur un panneau Weintek HMI, j'ai les 127 premières variables BOOL, affectées aux adresses 100.0 - 100.127, puis dans Modbus sur le panneau, j'utilise les adresses 40000 - 40127.
Maintenant, je devrais affecter des variables REAL, la première sera 100.128, donc dans Modbus sur le panneau, il aura l'adresse 40000+ (128/2) = 40064. Mais le 40064 est déjà affecté à une variable BOOL, où me suis-je perdu?
Mai 14, 2020 à 8: 07 am #55185Sergio BertanaAdministrateur du forumEssayons de clarifier ...
Avec l'accès aux variables BOOL (commandes Modbus 0x / 1x sur le panneau HMI), l'adresse de requête Modbus reçue de l'IHM est utilisée par le SlimLine pour pointer vers la variable dans DB100 en soustrayant simplement l'offset 40000. Ainsi, le panneau 40064 correspond à la variable BOOL allouée à 100.64.
Avec l'accès aux variables WORD (commandes Modbus 3x / 4x sur le panneau IHM), l'adresse de demande Modbus reçue de l'IHM est utilisée par le SlimLine pour pointer vers la variable dans le DB100 en soustrayant le décalage 40000 e multiplier le résultat par 2. Le panel 40064 correspond donc à la variable WORD allouée à 100.128.
Je me souviens encore l'avoir été SlimLine basé sur l'architecture ARM, les variables de 2 octets doivent toujours être allouées avec une adresse divisible par 2 (exemple 100.2, 100.4, ... 100.130, .. 100.514, etc.), les variables de 4 octets telles que REAL doivent toujours être allouées avec une adresse divisible par 4 ( Exemple 100.4, 100.8,… 100.128, .. 100.512, etc.).
-
auteurPost
- Vous devez être connecté pour répondre à ce sujet.