ModbusMaître
Application Windows autonome prenant en charge les protocoles Modbus RTU
, TCP
, UDP
, RTUoverTCP
, RTUoverUDP
, ASCIIoverRTU
, ASCIIoverTCP
et ASCIIoverUDP
.
Sont également incluses ses versions Mono pour Linux et Mac OS X, ce sont des versions VB Net donc :
- Pour Linux vous devrez installer les packages
mono-complete
et mono-vbnc
- Mac peut être différent selon la version d'OS X, installez peut-être des packages
mono
et mono-basic
Si un pare-feu est activé, il peut vous demander d'autoriser cette application à communiquer sur le réseau :
- Normalement, il devrait être autorisé à communiquer sur le réseau privé, sinon il pourrait ne pas fonctionner correctement.
- N'autorisez pas l'accès public à moins que vous sachiez ce que vous faites
- Une fois le test terminé, n'oubliez pas de supprimer cette application de la liste des applications autorisées du pare-feu.
L'application est conçue pour permettre d'exécuter plusieurs instances de l'application en même temps, par exemple :
- Utilisez le même protocole pour chaque instance mais avec des numéros de port différents, semblables à :
- IP 127.0.0.1 Port TCP 501 et IP 127.0.0.1 Port TCP 502
- Utilisez un mélange de différents protocoles à l'aide d'autres outils (comme com0com pour le protocole RTU sous Windows)
Tout cela est basé sur les bibliothèques nModbus .NET 3.5 modifiées, Copyright (c) 2006 Scott Alexander :
- Ceux-ci sont inclus en tant que ressource pour la version Windows mais sont distincts pour la version Mono
Destiné à être utilisé comme un outil de test rapide :
- Peut être testé avec son homologue ModbusSlaveSimulation (voir la vidéo ci-dessous)
Une alternative simple à utiliser serait le logiciel AdvancedHMI car il est hautement fonctionnel et gratuit.
Capture d'écran
Fonctionnalité
- Lisez les commentaires à l'intérieur du formulaire et passez également la souris sur les étiquettes pour obtenir des conseils.
- Aucun adressage décalé (où xxxxx va de 00000 à 65534) :
- Bobines = 0xxxxx
- Entrées discrètes = 1xxxxx
- Registres d'entrée = 3xxxxx
- Registres de maintien = 4xxxxx
- Outre
Int16
, qui enregistre uniquement une adresse sans modificateur, cette application prend également en charge :- Modificateurs
U
, F
, L
, UL
et S
(qui sont utilisés pour UInt16
, Float32
, Int32
, UInt32
, String
)
- Un support pour les valeurs 64 bits a été ajouté - Float64, Integer64 signé et non signé :
- Utilisez les modificateurs
FQ
, LQ
et UQ
(où Q
signifie Quad Word)
- Un support expérimental pour les valeurs 128 bits a été ajouté - Integer128 signé et non signé :
- Utilisez les modificateurs
LO
et UO
(où O
signifie Octa Word)
- Il prend également en charge la lecture/écriture de bits/caractères :
- sélectionner soit des bits/caractères consécutifs au sein d'un seul élément, soit le bit/caractère individuel exact de chacun des multiples éléments
- soit une valeur unique, soit le nombre exact de valeurs séparées par des virgules sera requis pour l'écriture si Nombre
Points
> 1
- Pour les protocoles basés sur RTU, sur un seul PC, cette application peut utiliser l'aide de :
- Le programme Windows com0com pour fournir des paires de ports série virtuels
- TextBox supplémentaire permet la saisie manuelle du port série, destiné à Linux afin que les paires de ports virtuels tty0tty, comme
/dev/tnt0
<=> /dev/tnt1
, soient accessibles- Cette case a été supprimée dans la version Mac Mono
- La bibliothèque prend en charge
Masked Bit Write
, code de fonction 22 (0x16H ou FC22) - L'application inclut également le code intégré pour les appareils esclaves qui ne prennent pas en charge
FC22
:- Cela implique un processus
read-modify-write
qui peut prendre un peu de temps et pourrait écraser les valeurs qui ont changé au cours de son exécution.
IMPORTANT : Soyez prudent lorsque vous tentez d'écrire une valeur dans l'automate.
Usage
-> Pour Windows
- Utilisez les fichiers exécutables Windows du dossier
exe
ou suivez les instructions ci-dessous pour le créer vous-même :- Téléchargez et installez l'édition communautaire de Visual Studio (idéalement 2019)
- Téléchargez et extrayez le fichier zip de ce projet
- Ouvrez-le en tant que projet existant dans Visual Studio et, dans le menu, effectuez :
- Créer/Construire une solution (ou appuyez sur Ctrl-Maj-B)
- Déboguer/Démarrer le débogage (ou appuyez sur F5) pour exécuter l'application
- Localisez le fichier EXE créé dans le dossier
/bin/Debug
et copiez-le dans votre dossier préféré ou sur le bureau.
-> Pour Mono
- Assurez-vous que Mono est installé sur votre ordinateur :
- Packages
mono-complete
et mono-vbnc
pour Linux - Pour Mac, vous devrez peut-être expérimenter, peut-être installer des packages
mono
et mono-basic
- Téléchargez et extrayez le fichier zip de ce projet et localisez l'archive zip Mono dans le dossier
Mono
- Extrayez 4 fichiers et renommez potentiellement le dossier et/ou le fichier exe nouvellement créé en quelque chose de plus court si vous le souhaitez, juste pour accélérer la navigation dans le terminal.
- Ouvrez le terminal, accédez au dossier et tapez :
sudo mono ModbusMaster.exe
:- Sur Mac, vous devrez peut-être passer au compte superutilisateur
su
- Pour tester les protocoles RTU, sous Linux, vous pouvez éventuellement installer et utiliser des paires de ports virtuels tty0tty tandis que sur Mac, les versions ultérieures d'OS X semblent avoir des pseudo-terminaux - des paires de périphériques tels que
/dev/ptyp3
<=> /dev/ttyp3
Remarque pour les utilisateurs Mac : cela a été testé sur un ancien ordinateur iMac G5 PowerPC avec Mono v2.10.2. Un comportement étrange était présent dans le sens où l'application perdait le focus, perturbant ainsi la communication TCP en mode Lecture automatique. Il y a une zone de texte avec un X rouge sur laquelle vous pouvez cliquer pour essayer de rester concentré (si vous faites autre chose par la suite, cliquez à nouveau dessus). Comme je ne peux pas le tester d’une autre manière, il vous reste à expérimenter.
Vidéo
Modbus.TCP.Communication.mp4
Licence
Sous licence MIT - voir le fichier README.txt dans le dossier Ressources.
Marques déposées
Toutes les marques, directement ou indirectement mentionnées dans ce projet, appartiennent à leurs propriétaires respectifs.
Ressources utiles
Le forum du site Web AdvancedHMI, qui est un autre projet open source.