ModBus Constructor

Transcription

ModBus Constructor
ModBus Constructor
Guide du démarrage rapide
© 2006 par KurySoft, tous droits réservés
Web: www.kurysoft.com
Date: 07-Feb-2007
ModBus Constructor
SOMMAIRE
1.
INTRODUCTION. ........................................................................................... 3
2.
CREATION DE LA DESCRIPTION DU DISPOSITIF MODBUS .................... 5
2.1. Coriolis Mass Flow Metter. ......................................................................... 5
2.1.1.
2.1.2.
2.1.3.
2.1.4.
T1. Mass Flow Metter Holding Registers. ................................................................. 5
T2. Mass Flow Metter Coils....................................................................................... 7
T3. Mass Flow Metter Command. ............................................................................. 7
T4. Mass Flow Metter Exception Responses. ........................................................... 7
2.2. Description des paramètres principaux. ..................................................... 8
2.3. Répartition des champs des donnés sur le formulaire. ............................ 13
2.4. Addition des requêtes............................................................................... 14
2.5. Paramètres du simulateur. ....................................................................... 19
2.5.1. T5. Discrete value simulation. ................................................................................. 19
2.5.2. T6. Analogous value simulation. ............................................................................. 19
3.
TRAVAIL AVEC LE DISPOSITIF MODBUS................................................. 21
4.
TERMES ET DEFINITIONS ......................................................................... 23
4.1. Objets. ...................................................................................................... 23
4.2. Types de données du Modbus Constructor.............................................. 23
4.2.1. Numeric types ......................................................................................................... 23
4.2.2. Discrete types ......................................................................................................... 23
4.3. Data encoding. ......................................................................................... 23
4.3.1. Long. .......................................................................................................................24
4.3.2. Float. ....................................................................................................................... 24
4.3.3. Double..................................................................................................................... 24
4.4. Règles d'utilisation des fonctions Modbus................................................ 24
4.5. Format examples...................................................................................... 25
4.5.1.
4.5.2.
4.5.3.
4.5.4.
Numeric types ......................................................................................................... 25
Discrete types ......................................................................................................... 25
Default for numeric types ........................................................................................ 26
Default for discrete types ........................................................................................ 26
Quick Start Guide
-2-
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
1. INTRODUCTION.
Nous vous remercions d’avoir choisi Modbus Constructor!
Modbus Constructor est créé pour aider les développeurs, les programmeurs et les
utilisateurs des dispositifs Modbus lors des essayages et des réglages.
Modbus Constructor permet de créer rapidement le modèle d’organisation des données du
dispositif Modbus. Il existe sur le marche un grand nombre de produits similaires, mais la
représentations des données s’y effectue sous la forme des colonnes de nombres abstraits d’un
type, qui sont difficiles à percevoir et à analyser, surtout s’il s’agit du dispositif qui contient dans
ses registres des données de différents types en ordre aléatoire.
Il est possible de spécifier dans Modbus Constructor les types essentiels de données de
n’importe quel registre ou d’un groupe de registres: integer, long (integer), float, double (float) et
octet. Il est possible de visualiser les types entiers en tant que signed, unsigned, HEX ou
binary. Modbus Constructor admet la présentation du même registre par plusieurs moyens. Par
exemple, si deux registres contigus contiennent le nombre du type long, vous pouvez spécifier
pour chaque registre des champs de données additionnelles, où seront présentés des registres
particuliers sous la forme de HEX ou unsigned integer.
Les champs de données, qui correspondent aux éléments des données (des registres ou
des données discrètes), peuvent être disposés sur le formulaire du projet en ordre aléatoire. La
taille, la couleur, la police et la signature peuvent être définies pour chaque champ
indépendamment l’un de l’autre.
Les éléments discrets, occupant l’espace continu des adresses, peuvent être visualisés
dans le même champ afin de faciliter la perception et d’économiser la place.
Modbus Constructor permet de définir pour chaque champ de données des registres une
transformation linéaire, qui permet de convertir les unités intérieures du dispositif en unités
communes ou en unités d’un autre système. Par exemple, si le registre contient une valeur de
pression, traduite en milliampères, en d’autres termes, le dispositif perçoit le signal du
transducteur de pression avec une sortie de courant, il est possible de traduire cette valeur en
kgf/cm2 ou livre/pouce2.
Modbus Constructor permet de définir des requêtes automatiques pour toutes les
fonctions supportées (01, 02, 03, 04, 05, 06, 15, 16, 22, 23), qui seront exécutées en accord
avec la période définie individuellement pour chaque requête.
Il est possible de définir les requêtes, qui s’exécutent à la demande de l’utilisateur à l’aide
du menu ou des dialogues. C’est bien pratique pour définir les commandes de gestion du
dispositif, modifier les paramètres et les requêtes de test.
Le projet peut être utilisé pour interroger le dispositif au mode Master, ainsi que pour la
simulation du dispositif au mode Slave. En supplément au mode Slave, il est possible de définir
la modification des données d’après une loi prédéterminée.
Modbus Constructor permet d’ajouter au formulaire du projet des inscriptions
additionnelles, des cadres ainsi que des images.
Modbus Constructor est fourni complété d’un utilitaire spécial Modbus Reader, qui utilise
le modèle, créé à l’aide de Modbus Constructor pour le travail avec le dispositif.
Modbus Reader est un gratuiciel. Si vous avez déjà créé le projet pour le dispositif élaboré
par vous, vos clients n’auront pas besoin d’acheter Modbus Constructor – il suffit de télécharger
un distributif séparé.
Quick Start Guide
-3-
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
Modbus Reader permet de travailler avec plusieurs projets à la fois, c’est à dire
d’interroger ou de simuler plusieurs dispositifs, en utilisant un ou plusieurs ports СОМ.
En dehors des requêtes, définies dans le projet, il est possible de modifier n’importe quel
élément des données du dispositif avec un simple clic sur le champ correspondant au mode
Master (en envoyant la requête appropriée), ainsi qu’au mode Slave.
Quick Start Guide
-4-
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
2. CREATION DE LA DESCRIPTION DU DISPOSITIF MODBUS.
Dans cette partie vous allez apprendre pas à pas comment créer un projet sur l’exemple
du dispositif de Coriolis compteur du flux de masse (Coriolis Mass Flow Metter).
ƒ vous allez décrire Holding registers et Coils de ce dispositif
ƒ vous allez transformer les données en unités standardisées
ƒ vous allez appliquer le formatage des données
ƒ vous allez disposer les champs de données sur le formulaire
ƒ vous allez déterminer les requêtes (commandes) automatiques et celles
appelées depuis le menu
ƒ vous allez définir les paramètres pour le simulateur au mode Slave
2.1. Coriolis Mass Flow Metter.
Regardons la description du dispositif. Ce dispositif mesure la masse du liquide ou du gaz
qu’on a fait passer par lui. Le compteur de masse peut fonctionner en sens direct ainsi qu’en
sens inverse. Lorsque le flux du liquide va en sens direct, le compteur de masse augmente,
lorsqu’il va en sens inverse – le compteur décroît et peut acquérir des valeurs négatives.
A part cela, il peut fonctionner en tant que doseur. Dans ces buts il est muni de deux
issues discrètes (collecteur ouvert) pour la gestion de la soupape ou du moteur, en sens direct
et inverse. La portion est définie par l’utilisateur. Si c’est une valeur positive –la dépense en
sens directe se déclenche, si elle est négative – celle du sens inverse.
Le dispositif possède l’’interface RS-485, protocole Modbus RTU.
Lancez Modbus Constructor:
Start ⇒Programs ⇒ModbusConstructor⇒MBConstructor.exe (Démarrer ⇒
Programmes ⇒ Modbus Constructor⇒MBConstructor.exe)
Créez un nouveau projet: File⇒New (Fichier – Nouveau)
Enregistrez le projet sous “Coriolis.mbc”: File⇒Save as… (Fichier – Enregistrer sous)
Regardons, comment a été réalisé le protocole d’échange Modbus pour ce compteur de
masse. La description des registres du compteur de masse est présentée dans la table Т1.
2.1.1. T1. Mass Flow Metter Holding Registers.
Destination
Adresse
(décimal)
Type de
données
Commentaire
Type de dispositif
0000
unsigned
integer
Read-only
(Lecture seule)
Version de logiciel
0001
unsigned
integer
Read-only
(Lecture seule)
Adresse Modbus
0002
unsigned
integer
installation d'origine 1
unsigned
integer
peut être égale à 4800, 9600 ou 19200
bauds
installation d'origine 9600
lors de l’enregistrement de toute valeur
non égale à 4800, 9600 ou 19200
acquiert la valeur 9600
Vitesse de transmission
Quick Start Guide
0003
-5-
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
Destination
Adresse
(décimal)
Type de
données
Commentaire
Parité
0004
byte (MSB)
0-no parity
1-odd parity
2-even parity
installation d'origine 2 (even)
Stop bit
0004
byte (LSB)
0 – 1 stop bit
2 – deux stop bits
Portion
0005
long (1)
(3)
Compteur de masse
0007
long (1)
une unité est égale à 0.1 kg
peut être négative
lors de la lecture affiche la masse
accumulée après la réinitialisation du
compteur
Flux de masse
0009
integer
une unité est égale à 0.1 kg/min
est positif avec le sens direct
est négatif avec le sens inverse
Densité
0010
unsigned
integer
une unité est égale à 1000/32768
kg/m3
Température
0011
integer
une unité est égale à 250/511 ºC
signal 4-20 мА du transducteur de
pression excessive
1023 correspond à 20 mA (40 kgf/cm2)
205 correspond à 4 mA (0 kgf/cm2)
Pression
0012
unsigned
integer
Mesure de temps
0013
unsigned
(1)
Registre de contrôle
0015
unsigned
integer
(2)
Masse à pulsation singulière
0016
unsigned
integer
une unité est égale à 0.1 kg
Facteurs de jauge
00170024
disponible pour l’enregistrement avec
la pièce de jonction installée J7
Réserve
00250031
n’est pas employé dans la version
courante
long
secondes
(1) Les entiers longs sont placés dans les registres de manière suivante:
le mot inférieur dans le premier registre, le mot supérieur dans le deuxième.
Par exemple, le nombre 01020304h (16909060 décimal) est placé de cette façon:
registre A+0: 0102h
registre A+1: 0304h
est transféré: 01 02 03 04
(2) Lors de la lecture est affiché le mode d’opération:
0 – mode de mensuration (par défaut)
1 – mode inactif du doseur. Les deux soupapes sont fermées.
2 – mode actif du doseur. Une des soupapes est ouverte, la portion est mesurée.
Lors de l’écriture les actions suivantes sont exécutées:
0 – passe au mode de mensuration du mode inactif du doseur. Est ignoré, si le doseur est au mode actif.
Quick Start Guide
-6-
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
1 – Lorsqu’il se trouve au mode de mensuration, il passe au mode inactif du doseur, remet au zéro les
compteurs de masse et de temps, ferme les deux soupapes.
Lorsqu’il se trouve au mode actif du doseur, il passe au mode inactif.
2 – commence à mesurer la portion conformément à la valeur du registre 5 (valeur de la portion)
4 – remet au zéro les compteurs de masse et de temps (uniquement pour les modes 0 et 1)
8 – effectue l’ajustement du zéro de flux (uniquement pour les modes 0 et 1)
(3) est employé pour garder la valeur de la portion lors du fonctionnement au mode du doseur.
Une unité est égale à 0.1 kg.
La description de Coils est présentée dans la table T2.
2.1.2. T2. Mass Flow Metter Coils.
Adresse
(decimal)
Destination
Type de
données
Commentaire
Sortie de contrôle du flux en sens
direct
0000
Read-Only au mode du doseur
1-la soupape est ouverte
0-la soupape est fermée
Sortie de contrôle du flux en sens
inverse
0001
Read-Only au mode du doseur
1-la soupape est ouverte
0-la soupape est fermée
Réserve
00020031
n’est pas utilisé dans la version
courante
Le compteur de masse supporte les commandes et les exceptions suivantes:
2.1.3. T3. Mass Flow Metter Command.
Function code
Command type
Name
01
Read
Read coil status
03
Read
Read holding registers
05
Write
Write single coil
06
Write
Write single register
15
Write
Write multiple coils
16
Write
Write multiple registers
2.1.4. T4. Mass Flow Metter Exception Responses.
Code
Name
Description
01
Illegal function
Function code not supported.
02
Illegal data address
The data address in the query is not an allowable address
for the device.
03
Illegal data value
A value contained in the query data field is not an
allowable value for the device.
Quick Start Guide
-7-
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
2.2. Description des paramètres principaux.
Décrivez les registres et les Coils du compteur de masse. Pour cela veuillez sélectionner
l’onglet Objects dans les menus Settings:
Settings⇒ Objects
Vous aller voir un formulaire qui ressemble à une table électronique. Dans la colonne
Object sélectionnez quinze cases correspondantes au nombre de registres du compteur de
masse. Cliquez avec le bouton droit de la souris sur le secteur sélectionné, vous allez voir un
menu déroulant, contenant tous les types d’objets utilisés. Cliquez sur Holding register.
Vous devez maintenant attribuer une adresse et un nom à chaque registre conformément
à la description.
Quick Start Guide
-8-
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
cliquez deux fois avec le bouton gauche sur la case vide supérieure dans la
colonne Label
entrez le nom du registre “Device type”
cliquez deux fois avec le bouton gauche sur la case voisine dans la colonne
Address, tapez “0”
entrez les noms et les adresses pour les autres éléments.
Le nombres (long, float et double), pour la présentation desquels sont utilisés plusieurs
registres, peuvent se trouver à l’intérieur des registres, et, par conséquent, ont des
représentations différentes. Normalement le fabricant du matériel indique explicitement,
comment de tels nombres sont représentés. Servez-vous de la division “Data Encoding” pour
la définition du moyen de la répartition des nombres dans les registres.
Comme nous le voyons de la description, l’appareil utilise de différents types de données.
Définissez les types nécessaires.
cliquez avec le bouton droit dans la colonne Data et sélectionnez dans le menu
déroulant l’article nécessaire
si nécessaire, définissez l’attribut Unsigned dans la colonne Show.
Quick Start Guide
-9-
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
Nous avons indiqué pour la masse les kilogrammes (kg) en tant qu’unité de mesure, mais
l’unité du compteur de masse est égale à 0.1 kg? Modbus Constructor prévoit un mécanisme
pour les cas pareils. Si vous introduisez dans la colonne Scale l’expression Ax+B, le nombre,
contenu dans ce registre ou groupe de registres (si c’est un nombre complet de type long, float
ou double), va être sujette à une transformation linéaire. C’est très pratique, s’il est nécessaire
d’utiliser les unités de mesure différentes de celles que l’appareil supporte.
Dans la colonne Scale inscrivez l’expression “0.1x+0” pour les registres 5, 7, 9 et 15. Vous
avez maintenant converti les unités internes du compteur de masse en kilogrammes.
De la même manière vous pouvez convertir la densité:
D = x * 1000 / 32768 = 0.03052x
Et la température:
T = x * 250 / 511 = 0.489x
Il est un peu plus compliqué de convertir la pression qui demande une équation:
Pression P = Ax + B
P1 = 0
⇒
B = - 205 * A
x1 = 205,
x2 = 1023,
P2 = 40
⇒
40 = A*1023 + 205*B
A = 40/(1023 - 205) = 0.049
B = -205*A=-205*0.049 = -10.045
Quick Start Guide
- 10 -
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
Comme vous pouvez le voir, il n’est pas du tout compliqué de convertir les unités en forme
habituelle. Mais comment faire avec le temps? Pour les intervalles courts les secondes
conviennent très bien, mais lorsqu’il s’agit des centaines et des milliers de secondes, cela
commence à être pesant. Pour résoudre ce problème nous allons appliquer le formatage.
Le formatage des données s’applique:
en premier lieu, pour rendre les nombres plus lisibles
en second lieu, pour éviter la situation, quand les nombres superflus
surchargent le champ de sortie.
Pour chaque type de données un format par défaut est déterminé. Il n’est pas nécessaire
de spécifier le format par défaut, s’il vous arrange – laissez le champ vide. Utilisez le format par
défaut pour créer votre propre format. Pour les informations plus détaillées sur les règles de
formatage veuillez consulter la partie “Format examples”.
Cliquez avec le bouton droit dans la ligne “Portion, kg” de la colonne Format.
Sélectionnez dans le menu l’élément Default. Vous allez voir dans le champ
une ligne du type “## ###”.
Le compteur de masse mesure la masse et le flux de masse avec une précision de 0.1 kg
et 0.1 kg/min respectivement. Si nous laissons le format par défaut, nous n’allons pas voir la
partie fractionnaire. Pour l’afficher il faut ajouter à la ligne “.0”. Vous allez voir:
“# ### ### ##0.0” pour la masse et la portion mesurée
“## ##0.0” pour la vitesse du flux
Puisque le convertisseur du signal analogique numérique du transducteur de pression
fournit la résolution 0.05 kg/cm2, il est logique d’indiquer deux symboles après le point:
“## ##0.00”
Introduisez dans le champ Default value pour le registre “Pressure, kgs/cm2” le
nombre “10”.
Appuyez sur Enter. Vous allez voir, que le nombre est affiché au format “10.00”.
Laissez entiers la température et la densité.
Définissez l’affichage du temps en deux modes. Laissez le premier mode en secondes et
pour le second appliquez le formatage “hh:mm:ss”, pour visualiser les heures : minutes :
secondes respectivement.
Quick Start Guide
- 11 -
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
cliquez deux fois sur le champs vide dans la colonne Object
sélectionnez Holding register
cliquez deux fois dans la même ligne dans la colonne Data
choisissez le type Long
définissez l’attribut Unsigned dans la colonne Show
introduisez dans le champ Label “Time, hh:mm:ss”
introduisez dans le champ de l’adresse “13”
introduisez dans le champ Format “hh:mm:ss”
introduisez dans le champ Default value “1000” (temps en secondes)
cliquez sur le titre de la colonne Address, pour classer les registres en ordre
croissant
1000 secondes seront maintenant visualisées au format “00:16:40”
Et finalement, décrivez les Coils du compteur de masse:
sélectionnez avec la souris deux cases vides dans la colonne Object
cliquez sur elles deux fois avec le bouton droit
dans le menu déroulant sélectionnez l’onglet Coils
appelez l’un des Coil “Flux direct”, attribuez-lui l’adresse “0”
appelez l’autre Coil “Flux inverse”, attribuez-lui l’adresse “1”
Quick Start Guide
- 12 -
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
Vous avez décrit toutes les propriétés essentielles des objets du compteur de masse.
Appuyez sur “OK”.
Enregistrez le projet: File⇒Save.
2.3. Répartition des champs des donnés sur le formulaire.
Vous allez voir dans le coin droit supérieur du formulaire les champs de données et les
balises des objets que nous avons créés. Cliquez avec le bouton gauche de la souris sue la
case blanche. Elle va être en surbrillance avec le bleu foncé. Cliquez avec le bouton gauche sur
la case en surbrillance et sans relâcher le bouton déplacez-la de côté. Pour une sélection
multiple appuyez sur la touche Ctrl, et, sans la relâcher, sélectionnez les objets nécessaires.
Faites la même chose avec les autres cases afin de pouvoir voir toutes les inscriptions.
Notez que lorsque vous déplacez le champ, vous déplacez aussi sa balise; mais non pas
l'inverse– lorsque vous déplacez la balise, le champ ne bouge pas.
Quick Start Guide
- 13 -
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
Sélectionnez la balise ”Mass counter, kg”. Etirez-la à gauche de manière que l’inscription
occupe une seule ligne. Faites la même chose avec les autres balises.
Pour une meilleure lisibilité répartissez les champs des paramètres mesurés séparément
des autres champs. Commencez par le coin gauche supérieur du formulaire.
Utilisez les cadres pour séparer visuellement les groupes de champs. Cliquez avec le
bouton droit de la souris sur le formulaire. Dans le menu qui est apparu sélectionnez Add ⇒
Frame. En ajustant la position et les dimensions du cadre, positionnez-le autour du groupe.
Refaites l’opération avec les champs, liés avec la gestion et les paramètres de
communication.
Appuyez sur Ctrl+S pour enregistrer le projet.
2.4. Addition des requêtes.
Pour que le périphérique distant communique les données et effectue les actions
nécessaires, le protocole Modbus prévoit des requêtes standards. Dans Modbus Constructor
les requêtes sont traitées de trois manières:
automatiquement
depuis le menu
par le dialogue
Ouvrez la fenêtre des configurations des requêtes : Settings⇒Requests.
Dans la partie inférieure de la fenêtre vous allez voir une table, qui contient tous les
éléments de la structure des données. Dans la partie antérieure de la fenêtre se trouve une
table, ou sont inscrits les paramètres des requêtes.
Nous allons d’abord créer les requêtes automatiques qui lisent le contenu des registres et
des Coils du compteur de masse.
cliquez deux fois sur la case vide dans la colonne Function
dans le menu affiché sélectionnez 03.Read holding registers. Il va y avoir
dans la table une ligne avec les paramètres de la requête par défaut
cliquez encore une fois sur cette ligne
Quick Start Guide
- 14 -
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
dans la table inférieure sélectionnez avec la souris toutes les cases dans la colonne
Address, se rapportant aux registres
Cliquez avec le bouton droit
dans le menu affiché appuyez sur Apply
répétez l’opération pour Coils. Utilisez la fonction 01.Read coils
Vous pouvez modifier la période minimum de la requête. Pour le faire cliquez deux fois sur
la case appropriée dans la colonne Min.period, ms. Introduisez la valeur 300 millisecondes
pour les deux requêtes.
Notez que ce paramètre détermine la période minimale possible entre les interrogations
des données spécifiées dans la requête. Cette période peut être augmentée à cause du temps
exigé pour les autres requêtes. Si vous définissez la valeur 0 pour ce paramètre, la requête
sera effectuée avec la plus haute fréquence possible.
Pour gérer le compteur de masse il est nécessaire de définir les commandes. La
commande est spécifiée au moyen d’inscription d’une certaine valeur dans le registre de
contrôle avec l’adresse 15.
créez la requête ”06.Write single register”
dans la table inférieure dans la colonne Write address sélectionnez la case
avec l’adresse 15 (registre de contrôle)
Cliquez avec le bouton droit de la souris
dans le menu affiché appuyez sur Apply
cliquez deux fois sur la case dans la colonne Write
introduisez “0” – c’est la valeur qui va être inscrite dans le registre de contrôle,
lorsque cette commande sera exécutée
Quick Start Guide
- 15 -
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
dans la table supérieure dans la colonne Label introduisez le nom de la
commande «Mode de mensuration». Ce nom constituera un élément dans le
menu d’utilisateur.
cliquez deux fois sur la case dans la colonne Control
dans le menu affiché sélectionnez Menu 1
de la même manière créez les commandes:
«Mode du doseur» (valeur 1)
«Mesurer la portion» (valeur 2)
«Remise à zéro des compteurs» (valeur 4)
«Ajustement du zéro» (valeur 8)
Créez les commandes pour gérez les soupapes:
créez la requête “15.Write multiple coils”
dans la table inférieure dans la colonne Write address sélectionnez les cases
avec les adresses Coils 0 et 1
Cliquez avec le bouton droit de la souris
dans le menu affiché appuyez sur Apply
cliquez deux fois sur la case dans la colonne Write pour l’adresse 0, introduisez
«1»
cliquez deux fois sur la case dans la colonne Write pour l’adresse 1, introduisez
«0»
lors de l’exécution de cette commande une soupape s’ouvrira en sens direct, et
se fermera en sens inverse
appelez la commande «Ouvrir en sens direct»
Créez la commande «Ouvrir en sens inverse»:
pour Coil avec l’adresse 0 définissez la valeur «0»
pour Coil avec l’adresse 1 définissez la valeur «1»
Et finalement, créez la commande «Fermer le flux», qui ferme les deux soupapes:
définissez la valeur «0» pour les deux Coils
Quick Start Guide
- 16 -
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
Une partie des commandes se rapporte à la gestion au mode du doseur et l’autre au mode
de mensuration, alors que les soupapes ne peuvent pas être gérées au mode de doseur. Il
existe deux commandes qui sont communes pour les deux modes: «Réinitialisation du zéro» et
«Ajustement du zéro». Placez -les séparément dans le menu. Pour cela:
créez deux requêtes, par exemple, “01.Read coils”
définissez pour elles le paramètres de contrôle “Menu 1”
au lieu du nom introduisez le caractère “-“ (trait d’union)
Ces requêtes ne seront pas accessibles depuis le menu, mais serviront des séparateurs
entre les éléments.
appuyez sur le bouton gauche sur la case dans la colonne Function.
sans lâcher le bouton déplacez le cadre gris entre les commandes «Mesurer la
portion» et «Relise à zéro des compteurs»
en procédant de la même manière, répartissez les éléments comme vous le
voyez sur l’image
Quick Start Guide
- 17 -
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
Sur l’onglet Menu caption remplacez le nom “Menu 1” par “Control”. Appuyez sur OK.
Enregistrez le projet Ctrl+S.
Vous allez voir dans le menu le nouvel élément Control:
Le même menu sera ajouté à Modbus Reader lorsque vous ouvrirez le fichier de ce projet,
et vous pourrez vous en servir pour exécuter les commandes que vous avez créées. Dans
Modbus Constructor ce menu est désactivé.
Définissez maintenant les dialogues pour modifier les réglages du dispositif distant.
Ouvrez de nouveau le formulaire Requests.
créez la requête “16.Write multiple register”
appelez la requête «Valeur de la portion»
définissez l’adresse «5»
créez la requête “16. Write multiple register”
appelez la requête «Paramètres de communication»
définissez les adresses de 2 à 4
créez la requête “06.Write single register”
appelez la requête «Masse per 1 pulsation, kg»
définissez l’adresse «16»
définissez le paramètre de contrôle pour toutes les trois commandes “Dialog
(menu 2)”
remplacez le nom “Menu 1” avec “MFM Settings”
appuyez sur “OK”
enregistrez le projet: Ctrl+S
Quick Start Guide
- 18 -
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
Vous allez voir dans le menu un élément de plus “MFM Settings”. Ouvrez le menu et
sélectionnez les «Paramètres de communication». Un dialogue va s’afficher, permettant de
modifier les paramètres de communication pour le mesureur de masse. En travaillant avec
Modbus Reader les champs de données de ces dialogues seront remplis soit avec les valeurs
courantes, lues directement du dispositif à l’aide des commandes de lecture, soit avec les
valeurs par défaut. Les valeurs par défaut sont utilisées si les données correspondantes n'ont
jamais été lues jusqu'au moment de l’ouverture du dialogue, par exemple, si les requêtes
automatiques ont été désactivées.
2.5. Paramètres du simulateur.
Le projet, créé à l’aide du Modbus Constructor, Modbus Reader peut être utilisé pour
interroger le dispositif au mode Master, ainsi que pour la simulation du dispositif au mode Slave.
Vous pouvez changer les valeurs des registres et les données discrètes soit manuellement au
mode Slave, soit automatiquement selon la fonction spécifiée. La fonction est définie à l’aide
des paramètres suivants: Default value, Value1, Value2, Period.
Pour les éléments discrets et les registres, visualisés sous forme Hex и Binary, s’applique
la règle suivante:
2.5.1. T5. Discrete value simulation.
Temps
0 < t < 1/3 Period
Valeur de l’élément de données
Default value
1/3 Period < t < 2/3 Period
Value1
2/3 Period < t < Period
Value2
Period < t < 4/3 Period
4/3 Period < t < 5/3 Period
Default value
Value1
…
…
Pour les registres, contenant les données des autres types Float, Double, ainsi que les
entiers, visualisés sous forme Signed ou Unsigned, les valeurs changent de manière suivante:
2.5.2. T6. Analogous value simulation.
Temps
0 < t < 1/3 Period
Valeur de l’élément de données
fonction linéaire de Default value jusqu’à
Value1
1/3 Period < t < 2/3 Period
fonction linéaire de Value1 jusqu’à Value2
2/3 Period < t < Period
fonction linéaire de Value2 jusqu’à Default
value
Period < t < 4/3 Period
4/3 Period < t < 5/3 Period
…
fonction linéaire de Default value jusqu’à
Value1
fonction linéaire de Value1 jusqu’à Value2
…
Si la Période est égale à zéro, c’est Default value qui est employée.
Quick Start Guide
- 19 -
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
Ouvrez la fenêtre Objects: Settings⇒ Objects et définissez les paramètres de simulation
comme vous le voyez sur l’image.
Notez, que la valeur Value1 pour l’élément Time est égale à un tiers de la valeur de la
période, et la valeur Value2 est égale à deux tiers. Dans ce cas la valeur Time sera
précisément égale au temps, passé depuis le moment de communication.
appuyez sur “OK”
enregistrez le projet: Ctrl+S
Quick Start Guide
- 20 -
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
3. TRAVAIL AVEC LE DISPOSITIF MODBUS.
Dans cette partie vous allez apprendre comment utiliser le dispositif, décrit à l’aide du
Modbus Constructor.
Au lieu du dispositif réel vous allez utiliser un simulateur. Si vous avez installé sur votre
ordinateur deux ports СОМ, connectez-les avec un câble émulateur de modem. Un port sera
utilisé par le master, l’autre – par le slave. Si vous n’avez sur votre ordinateur qu’un seul port,
installez Modbus Reader sur un autre ordinateur, qui possède au moins un port СОМ, et
connectez-les avec un câble émulateur de modem. Vous pouvez télécharger une installation
séparée de Modbus Reader ici: http://www.kurysoft.com/products.shtml.
Lancez Modbus Reader: Start ⇒Programs ⇒ModbusConstructor⇒MBReader.exe
ouvrez le fichier Coriolos.mbc.
dans le menu Mode cochez Master
dans le menu Connection sélectionnez le premier port СОМ (par exemple
СОМ1)
ouvrez le fichier Coriolos.mbc.
dans le menu Mode cochez Slave
dans le menu Connection sélectionnez l’autre port СОМ (par exemple СОМ2)
disposez les deux formulaires à côté de manière que tous les champs de
données soient disponibles. Modifiez les dimensions si nécessaire
assurez-vous, que les paramètres de connexion des deux ports СОМ
coïncident. Pour afficher le dialogue du changement de ces paramètres
appuyez sur Ctrl+P
assurez-vous, que Master et Slave ont le même ID. Pour afficher le dialogue du
changement d’ID appuyez sur Ctrl+I
assurez-vous, que dans le menu Mode pour le formulaire Master Auto request
enable est coché, et pour le formulaire Slave Simulation enable est coché
Notez, que les champs de données sur le formulaire Master sont vides, et sur le formulaire
Slave ils sont remplis de valeurs par défaut.
Appuyez sur F3 pour établir la connexion. Vous allez voir, que les données sur le
formulaire Master changent simultanément aux données du formulaire Slave.
Quick Start Guide
- 21 -
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
Quand le formulaire Master est activé, deux éléments additionnels du menu deviennent
disponibles: Control et MFM Settings, que vous avez créés dans la partie «Addition des
requêtes». Cliquez sur le formulaire Master pour l’activer. Utilisez les éléments de ces menus et
observez les changements des données lors de l’exécution des commandes.
Vous pouvez modifier les données des éléments directement sur le formulaire Slave avec
le mode de simulation désactivé:
cliquez sur le formulaire Slave
décochez l’élément Simulation Enable dans le menu Mode
Les données vont cesser de modifier.
cliquez deux fois avec la souris dans le champ “Density” du formulaire Slave
introduisez un nombre quelconque
appuyez sur Enter
Dans le champ correspondant sur le formulaire Master vous allez voir le même nombre,
dès que Master aura effectué la suivante requête de lecture des registres.
Il est possible d’inscrire de la même manière les valeurs individuelles dans les registres et
les éléments discrets du dispositif.
cliquez deux fois avec la souris dans le champ “Density” du formulaire Master
introduisez un nombre quelconque
appuyez sur Enter
A la fin de la session n’oubliez pas d’enregistrer les paramètres courants si vous pouvez
en avoir encore besoin. Pour cela dans le menu File sélectionnez Save session. Enregistrez le
fichier sous Coriolis.mbs.
Maintenant que vous connaissez les principes de base du travail avec Modbus
Constructor et Modbus Reader, vous pourrez créer des projets pour travailler avec des
dispositifs Modbus réels beaucoup plus rapidement que vous ne l’avez fait avec cet exemple.
Quick Start Guide
- 22 -
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
4. TERMES ET DEFINITIONS.
4.1. Objets.
Dans la spécification Modbus on appelle objet un élément de données qui peut être lu ou
inscrit indépendamment des autres données. On distingue quatre types d’objets:
1. Coil
single bit
Read-Write
2. Discrete input
single bit
Read-Only
3. Holding register
16-bits word
Read-Write
4. Input register
16-bits word
Read-Only
4.2. Types de du Modbus Constructor.
Modbus Constructor supportes les types de données suivants:
4.2.1. Numeric types
Type
Quantity of bits
Quantity of registers
integer (signed or unsigned)
16
1
long
32
2
32
2
(signed or unsigned)
float
double
64
4
MSByte (signed or unsigned)
*
8
½ (most significant byte - MSB)
LSByte (signed or unsigned)
*
8
½ (least significant byte - LSB)
*L’octet (MSB ou LSB) ne peut âs être lu ou inscrit indépendamment de l’autre octet du registre.
4.2.2. Discrete types
Type
single
multiple
Quantity of bits
1
2-16
4.3. Data encoding.
Pour la présentation des types longs long, float et double on utilise plusieurs registres ;
situés l'un après l'autre.
On emploie deux modes de répartitions de ces nombres dans les registres: direct et
swapped (inverse).
Quick Start Guide
- 23 -
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
4.3.1. Long.
B3
B2
B1
B0
MSB
LSB
Register A
Register A+1
Transmitted
first
Default
B1
B0 (LSB)
B3 (MSB)
B2
B3 (MSB)
B2
B1
B0 (LSB)
Swapped
last
4.3.2. Float.
B3
B2
B1
B0
SEEEEEEE
EMMMMMMM
MMMMMMMM
MMMMMMMM
Where floating point value = S1.M * 2E-127
Register A
Register A+1
Transmitted
first
Default
B1
B0 (LSB)
B3 (MSB)
B2
B3 (MSB)
B2
B1
B0 (LSB)
Swapped
last
4.3.3. Double.
B7
B6
B5-B1
B0
SEEEEEEE
EEEEMMMMM
MMMMMMMM
MMMMMMMM
Where double precision floating point value = S1.M * 2E-1023
Register A
Register A+1
Register A+2
Register A+3
Transmitted
first
last
Default
B1
B0
B3
B2
B5
B4
B7
B6
Swapped
B7
B6
B5
B4
B3
B2
B1
B0
4.4. Règles d'utilisation des fonctions Modbus.
Vous pouvez créer une requête pour la lecture ou l’inscription d’un des éléments de
données du dispositif uniquement si cet élément est spécifié dans le projet.
Par exemple, si au moins un Holding register est spécifié, il est toujours possible
d’utiliser les fonctions 03, 06.
Quick Start Guide
- 24 -
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
Dans le dialogue Options (menu Settings) vous pouvez permettre ou défendre l’utilisation
des fonctions additionnelles pour Holding register 16, 22, 23.
Si l’utilisation d’une de ces fonction est annulée, lors du travail au mode du simulateur
Modbus Reader va répondre Exeption 1 (Illegal Function), si la requête qui utilise une telle
fonction arrive.
Основные функции*
Элемент
Дополнительные функции
Coil
01 – Read coils
15– Read multiple coils
Discrete input
02 – Read discrete inputs
-
Holding register
03 – Read holding registers
06 – Write single register
16 – Write multiple registers
22 – Write mask register
23 – Read/write registers
Input register
04 – Read input registers
-
*Au moins un de ces éléments doit être spécifié.
4.5. Format examples.
Pour une présentation plus convenable des nombres on utilise le formatage.
Le formatage permet d’éviter l’apparition dans le champ de données des nombres avec
une trop grande quantité de chiffres après le point décimal.
4.5.1. Numeric types
Число
Формат
Вид
12345
### ##0
12 345
12345
0 000 000
0 012 345
123.45678
# ##0.000
123.457
123.45678
0.00 E+00
1.23 E+02
12
+## 000
+ 012
0.45678
.000 000 000
.456 780 000
12345
hh:mm:ss
03:25:45
Si plusieurs éléments discrets sont présentés dans le champ de données, l’utilisation du
formatage permet de diviser ces éléments visuellement.
4.5.2. Discrete types
Bits
Формат
Вид
11110000
0000 0000
1111 0000
11110000
0000 0 0 0 0
0000 0 0 0 0
11110000
0
11110000
11110000
00
1111000 0
11110000
000 00 000
111 10 000
Quick Start Guide
- 25 -
©2006 KurySoft. www.kurysoft.com
ModBus Constructor
4.5.3. Default for numeric types
Type
Format
integer
## ##0
long
# ### ### ##0
byte
##0
float
0.00
double
0.000 E+00
4.5.4. Default for discrete types
Type
Format
single (1)
0
multiple 2
00
multiple 3
000
multiple 4
0000
multiple 5
0 0000
multiple 9
0 0000 0000
multiple 16
0000 0000 0000
0000
Quick Start Guide
- 26 -
©2006 KurySoft. www.kurysoft.com