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