2017-04-24 2 views
0

Autorise les types de données tels que float, string, double, long et short dans la bibliothèque appelée Nmodbus4. Mais je ne sais pas comment implémenter pour la chaîne et le flottant, mais l'implémentation entière et booléenne était déjà faite. S'il vous plaît quelqu'un peut m'aider à trouver la solution pour cela.Utilisation de la bibliothèque Nmodbus4

+0

Comme le dit Richard, float est souvent implémenté comme des entiers scalés mais de nombreux fabricants implémentent des virgules flottantes simples et doubles comme décrit dans IEEE 754. Comme IEEE754 ne dit rien sur l'ordre des octets et des mots - ceci est spécifique au fabricant - vous devrez donc vérifier leur Documentation. Lorsque les chaînes sont supportées, il s'agit souvent de plusieurs caractères doubles adjacents (c'est-à-dire 2 caractères de 8bit groupés dans un mot de 16 bits) - de même que cela peut être spécifique au fabricant - vous devrez donc vérifier leur documentation. – PaulF

+0

Exactement, je dois regarder la documentation de Modbus. Ce seront les solutions pour cela. Merci PaulF. – MANIKANDAN

Répondre

0

Modbus ne prend en charge que les types de données uint et bool - il ne s'agit pas d'une limitation de la bibliothèque nmodbus4. La norme ne dit rien sur le stockage des types de virgule flottante ou de chaîne.

La plupart des implémentations de périphériques utilisent des virgules flottantes en les divisant par 10/100/1000 etc., mais c'est à vous, en tant qu'utilisateur de la bibliothèque, de gérer cela. Vous aurez besoin de regarder à travers la table de registre de votre appareil pour trouver comment il stocke chaque valeur. Float & strings sont essentiellement des extensions du protocole Modbus.

+0

Oui C'est à moi de permettre les types de données restants dans Modbus TCP IP Ethernet, Nous ne pouvons pas avoir de bibliothèque pour ces autres types de données, je dois trouver le moyen de supporter ces autres types de données. Merci Richard. – MANIKANDAN