Schneider Electric 170ENT11000 Communicateur Ethernet Mode d'emploi

Ajouter à Mes manuels
38 Des pages
Schneider Electric 170ENT11000 Communicateur Ethernet Mode d'emploi | Fixfr
Modicon TSX Momentum
Communicateur Ethernet
Manuel de mise en oeuvre
870 USE 112 01
33000802.00
09/98
Breite: 178 mm
Höhe: 216 mm
Caractéristiques, illustrations, modifications
Nous dégageons toute responsabilité concernant les caractéristiques et
illustrations et nous réservons le droit de les modifier en fonction de l’évolution
technique. Si vous avez des suggestions d’amélioration ou de modification ou si
vous avez rencontrez des erreurs dans la présente documentation, veuillez
remplir le formulaire figurant en fin de la documentation.
Formation
Afin d’utiliser au mieux les systèmes d’automatisation, nous vous conseillons un
stage de formation chez Schneider Automation GmbH.
Hotline (Numéros d’urgence)
Voir en annexe les adresses de nos Services d’assistance technique.
Marques déposées
Les désignations utilisées dans le présent manuel pour les produits de Schneider
Automation GmbH sont en général des marques déposées de Schneider
Automation GmbH.
Les autres noms de produits utilisés dans le présent manuel sont des marques
déposées et/ou des marques des entreprises correspondantes.
Microsoft et MS–DOS sont des marques déposées; ”Windows” est la désignation
utilisée par la ”Microsoft Corporation” aux Etats Unis et dans d’autres pays.
IBM est une marque déposée d’International Business Machines Corporation.
Intel est une marque déposée d’Intel Corporation.
Copyright
Toute exploitation, reproduction ou divulgation, intégrale ou partielle, par quelque
procédé que ce soit en utilisant des systèmes électroniques effectuée sans le
consentement écrit de Schneider Automation GmbH est illicite. Toute traduction
est interdite.
© 1998 Schneider Automation GmbH. All rights reserved.
Sommaire
Sommaire
Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Terminologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Chapitre 1
TSX Momentum
Communicateur Ethernet 170 ENT 110 00 . . . . . . . . . . . . . . . . . . 5
1.1
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.2
1.3
1.4
1.4.1
1.4.2
1.5
1.5.1
1.5.2
1.5.3
1.5.4
1.6
1.6.1
1.6.2
1.6.3
Présentation du produit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Présentation physique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Alimentation et contrôle des défauts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Mapping des données aux bornes d’E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Management du débit des données vers les embases d’E/S . . . . . . . . . . . . . . . . . 7
Spécifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Exemple: Données de temps d’exécution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Voyants de signalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Connexion au réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Connecteur réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Etiquettes d’identification du réseau: Addresse global et adresse IP . . . . . . . . . 11
Mettre le communicateur en service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Initialisation et auto–tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Affectation d’une adresse Ethernet IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Identification de l’embase d’E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Stockage de l’adresse IP dans le communicateur . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Remplacement d’un communicateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Effacer l’adresse IP stockée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Couper l’alimentation et déconnecter le communicateur . . . . . . . . . . . . . . . . . . . . 15
Installer un nouveau communicateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Chapitre 2
Echanges de données avec le communicateur . . . . . . . . . . . . 17
2.1
2.1.1
2.1.2
2.1.3
20
Breite: 178 mm
Höhe: 216 mm
Registres
Registres
Registres
Registres
d’accès des échanges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
de configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
d’état . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
III
Sommaire
IV
Chapitre 3
Programme de tests: Codes source . . . . . . . . . . . . . . . . . . . . . . 25
3.1
3.2
Source: response.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Source: test1.txt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
20
Information
Attention:
Pour les applications d’automatismes présentant des exigences de sécurité,
les prescriptions s’y rapportant doivent être respectées.
Les réparations sur les produits ne doivent pour des raisons de sécurité et
de conservation des données système documentées, être effectuées que par
le constructeur.
20
Breite: 178 mm
Höhe: 216 mm
1
Information
Terminologie
Nota:
Ce symbole sert à attirer l’attention de l’utilisateur sur des informations
particulièrement importantes.
Attention:
Ce symbole signale les éventualités d’erreur les plus fréquentes.
STOP
Avertissement:
Ce symbole signale les sources de danger pouvant être suivies de
conséquences financières, d’effets nuisibles sur la santé et de toute autre
conséquence grave.
Expert:
Ce symbole souligne des informations particulièrement détaillées, destinées
exclusivement aux utilisateurs ayant suivi une formation très spécialisée. Ce type
d’information peut être ignorée de l’utilisateur sans que la compréhension du texte
et l’utilisation normale du produit en soient de quelque manière affectées.
Conseil:
Ce symbole est utilisé pour les conseils.
Exemple
Ce symbole est utilisé pour les exemples.
Les figures sont annotées selon l’usage international approuvé par SI (Système
International d’Unités). La notation utilisée pour les valeurs numériques est
conforme à l’usage international ainsi qu’au SI (Système International d’Unités).
Ce format de notation exige un espace entre les centaines et les milliers, et
l’utilisation d’une virgule (par exemple: 12 345,67).
2
20
Information
Bibliographie
Documentations
Embases pour TSX Momentum
Ethernet TCP/IP Module User Guide (Language Anglais)
Modbus Protocol Reference Guide (Language Anglais)
20
Breite: 178 mm
Höhe: 216 mm
Typ
870 USE 002 01
840 USE 107 00
PI–MBUS–300
3
Information
4
20
TSX Momentum
Communicateur Ethernet
170 ENT 110 00
1
Ce communicateur peut être connecté à toute embase TSX Momentum pour créer
un module fonctionnel d’embase d’E/S. Il offre la connexion directe au réseau
Ethernet, permettant à un hôte Ethernet de communiquer avec les différents
équipements branchés aux bornes de l’embase d’E/S.
La Figure 1 montre un communicateur typique et une embase d’E/S.
Vue de profil
Communicateur
Vue de face
Embase
Port de réseau Ethernet
Communicateur
Embase
Figure 1 Communicateur avec embase TSX Momentum
Ce chapitre décrit:
H
H
H
H
H
H
20
Breite: 178 mm
Höhe: 216 mm
la présentation du produit
un exemple: temps d’exécution des données
les voyants de signalisation
la connexion au réseau
la mise en service du communicateur
le remplacement d’un communicateur
5
Communicateur Ethernet
1.1
Présentation du produit
1.1.1
Fonction
Ce communicateur est installé sur toute embase TSX Momentum pour former un
module d’E/S complet pouvant communiquer sur le réseau Ethernet. Un automate
programmable, ou tout autre équipement hôte sur le réseau, peut alors acquérir
les entrées et mettre à jour les sorties du process.
Le communicateur communique avec des équipements hôtes utilisant Modbus
Application Protocol avec paquets TCP/IP. Il supporte Ethernet II et les trames
IEEE 802.3.
Pour plus d’informations sur l’utilisation de Modbus Application Protocol
avec TCP/IP, se référer au Manuel de mise en oeuvre Ethernet TCP/IP 840
USE 107 00. Plus de détails sur le protocole Modbus se trouvent dans
Modbus Protocol Reference Guide, référence PI–MBUS–300. Les
informations sur les applications et les câblages des embases d’E/S se
trouvent dans le Manuel de mise en oeuvre des Embases TSX Momentum
870 USE 002 01.
1.1.2
Présentation physique
Chaque communicateur se connecte au connecteur interne situé sur l’embase.
Des clips maintiennent le communicateur en place et peuvent être ôtés avec un
simple tournevis lorsque le communicateur doit être remplacé. L’étiquette
d’identification se trouvant sur la face avant du communicateur (fournie avec
l’embase d’E/S) sert à repérer les connexions des bornes de l’embase.
Le communicateur est un équipement ouvert et doit être installé dans une armoire
compatible avec le site de l’installation.
1.1.3
Alimentation et contrôle des défauts
L’alimentation du communicateur et de l’embase est fournie par l’utilisateur sur le
lieu du process. L’alimentation du communicateur est fournie par l’embase à
laquelle il est connecté. Le communicateur surveille son alimentation et se met en
défaut si l’alimentation n’est pas dans la zone de tolérance.
6
20
Communicateur Ethernet
1.1.4
Mapping des données aux E/S
Les données d’E/S de l’embase sont affectées dans des registres au format IEC.
Se référer au Manuel de mise en oeuvre des Embases TSX Momentum 870 USE
002 01 pour les affectations des embases d’E/S.
1.1.5
Management du débit des données vers les embases d’E/S
Afin d’assurer un échange déterministe des messages d’E/S, le réseau doit être
déterminé pour inclure seulement la machine hôte et les modules E/S. L’accès au
réseau pour d’autres équipements, tels que des interfaces de programmation,
peut causer des variations dans le chronométrage des messages d’E/S.
1.1.6
Spécifications
Tableau 1
Spécification du réseau
Description
Interface Ethernet
Tableau 2
Homologation
Homologation
UL 508
CAN/CSA C22.2NO.142
Marquage CE
20
Breite: 178 mm
Höhe: 216 mm
Spécification
Conforme avec la connexion STP ou UTP 100 ohm.
Etat
Approuvé
Approuvé
Approuvé
7
Communicateur Ethernet
1.2
Exemple: Données de temps d’exécution
Figure 2 montre l’exemple d’une boucle de régulation construite pour mesurer les
temps d’exécution des données de deux embases d’E/S.
Un PC hôte, effectuant le programme test, est connecté par Ethernet aux deux
communicateurs montés sur les embases d’E/S T.O.R. Les bornes de l’embase de
sorties sont directement câblées aux bornes de l’embase d’entrées. Un
oscilloscope règle la transmission des signaux.
Câblage
PC hôte
Programme
test
en cours
Ethernet
Oscilloscope
Communicateur
avec
bornes d’entrées
T.O.R.
Communicateur
avec
bornes de
sorties T.O.R.
Figure 2 Exemple: temps d’exécution des données
Le programme test est un circuit Java exécutant la séquence suivante:
1. lecture continue des bornes de l’embase d’entrées.
2. écriture d’une borne de sortie sur nouvelle condition (ON ou OFF).
3. basculement des sorties lorsque les entrées changent d’état.
L’oscilloscope mesure la durée de l’état ON des sorties.
8
20
Communicateur Ethernet
Temps mesuré ici
ON
OFF
Figure 3 Mesure du temps d’exécution des données
Tests conduits sur deux stations de travail NT séparées avec les configurations
suivantes:
H
H
200 MHz, 96 MB RAM
100 MHz, 32 MB RAM
Tableau 3 montre les temps d’exécution des données mesurées. Les résultats
démontrent que le facteur majeur affectant les temps des données, est la vitesse
d’exécution de la boucle sur l’hôte.
Tableau 3
Résultas: Temps d’exécution des données
Equipements
sur le réseau
2
2
2
64
64
64
64
64
64
Chargement
réseau
10%
40%
70%
10%
40%
70%
10%
40%
70%
Temps
Minimum
5 ms
5 ms
6 ms
6 ms
6 ms
6 ms
25 ms
25 ms
26 ms
Temps
maximum
9 ms
9 ms
9 ms
8 ms
12 ms
13 ms
30 ms
30 ms
30 ms
Temps
moyen
6.2 ms
6.2 ms
6.3 ms
6.8 ms
8.4 ms
8.2 ms
26.7 ms
26.7 ms
27.0 ms
CPU hôte
vitesse et RAM
200 MHz 96 MB
200 MHz 96 MB
200 MHz 96 MB
200 MHz 96 MB
200 MHz 96 MB
200 MHz 96 MB
100 MHz 32 MB
100 MHz 32 MB
100 MHz 32 MB
Les codes Java, pour le programme test, sont indiqués au Chapitre 3.
20
Breite: 178 mm
Höhe: 216 mm
9
Communicateur Ethernet
1.3
Voyants de signalisation
Les deux voyants de signalisation, sur la face avant du communicateur,
renseignent sur son état.
Etat
communicateur
Activité
réseau
Figure 4 Voyants de signalisation
Tableau 4
Voyant RUN: Etat du communicateur
Voyant
On (permanence)
3 flashes, puis Off
4 flashes, puis Off
5 flashes, puis Off
6 flashes, puis Off
7 flashes, puis Off
8 flashes, puis Off
Clignotement constant
Tableau 5
Voyant
Clignotant
Off
10
Etat
Fonctionnement normal: présence d’alimentation fournie par
l’embase, le communicateur est prêt à communiquer sur le
réseau.
Absence de liaison:Le câble de réseau n’est pas connecté ou est
défectueux.
Absence d’adresse MAC: L’adresse MAC du communicateur n’est
pas affectée. Problème de hardware.
Absence d’adresse IP: Le communicateur essaie d’obtenir une
adresse IP d’un serveur BOOTP.
Le programme exécutif interne du communicateur est démarré,
mais ne peut pas initialiser l’embase d’E/S.
Le communicateur a obtenu une adresse IP, mais ne possède
pas de programme exécutif valide.
Le programme exécutif a échoué pendant l’exécution.
Le communicateur télécharge son programme exécutif.
Voyant LAN ACT: Activité réseau
Etat
Fonctionnement normal: Le communicateur détecte l’activité réseau. le
nombre de clignotements indique la quantité d’activité.
Il peut être en permanence sur On si le réseau a une activité importante.
Le communicateur ne détecte pas d’activité sur le réseau.
20
Communicateur Ethernet
1.4
Connexion au réseau
1.4.1
Connecteur réseau
Le communicateur à une prise RJ–45 pour câble 10Base–T UTP/STP (paire
torsadée blindée ou non). Le communicateur peut être directement branché sur le
hub Ethernet.
RJ–45
10Base–T
pour
Câble à paire torsadée
blindée ou non
(UTP/STP)
Figure 5 Connecteur réseau
1.4.2
Etiquettes d’identification réseau: Adresse globale et
adresse IP
Le communicateur possède deux étiquettes d’identification sur les côtés. Une
étiquette indique l’adresse globale IEEE (adresse MAC) du communicateur.
L’autre indique son adresse de protocole Internet (adresse IP).
L’installateur enregistre l’adresse globale et la transmet à l’administrateur réseau
afin d’établir l’adresse IP pour le communicateur pendant le process BOOTP au
démarrage. Lorsque l’adresse IP est affectée, l’administrateur réseau la transmet
à l’installateur qui peut alors l’inscrire sur l’étiquette d’identification du
communicateur.
20
Breite: 178 mm
Höhe: 216 mm
11
Communicateur Ethernet
Etiquettes
d’identification
sur les côtés
Adresse global
du communicateur
Adresse IP
du communicateur
Figure 6 Etiquettes d’identification du communicateur: Adresse globale et
adresse IP
12
20
Communicateur Ethernet
1.5
Mise en service du communicateur
1.5.1
Initialisation et auto–tests
Lorsque le communicateur reçoit l’alimentation initiale de l’embase d’E/S à
laquelle il est couplé, il exécute une initialisation interne et des auto–tests. Si les
tests échouent, le voyant de signalisation RUN clignote pour indiquer la nature de
l’échec, si cela est possible, et le communicateur reste hors ligne. Si les tests ont
été réalisés avec succès, le communicateur essaie d’obtenir son adresse Ethernet
IP.
1.5.2
Affectation d’une adresse Ethernet IP
Généralités: Affectation d’adresse
Un serveur BOOTP est nécessaire pour affecter une nouvelle adresse IP au
communicateur. Après que le serveur ait affecté l’adresse IP, l’application peut
donner un ordre au communicateur pour qu’il stocke l’adresse.
Si le communicateur a stocké son adresse et est ré–initialisé (par ex. après une
coupure de courant), le communicateur redemandera une adresse à un serveur
BOOTP. Si un serveur répond avec une adresse, le communicateur utilisera cette
adresse. Si aucun serveur ne répond, le communicateur reviendra à l’adresse
stockée.
Demande de l’adresse IP
Après avoir terminé son initialisation, le communicateur demande son adresse
Ethernet IP à un serveur BOOTP. Le communicateur utilise son adresse MAC
avec le protocole BOOTP sur le réseau Ethernet.
Réception de la réponse du serveur
Le communicateur attendra la réponse du serveur BOOTP pendant dix secondes.
Lorsque la réponse est reçue le communicateur utilisera cette adresse aussi
longtemps qu’il restera sous tension.
STOP
20
Breite: 178 mm
Höhe: 216 mm
Avertissement
DANGER DE DOUBLON Des réactions imprévisibles peuvent apparaître sur
votre réseau si deux ou plusieurs équipements ont la même adresse. Faites
en sorte que ces équipements reçoivent une adresse propre. Le non respect
de ces précautions peut causer des blessures sur les personnes ou des
dommages sur les équipements.
13
Communicateur Ethernet
Renouvellement de demande au serveur
Si aucune réponse n’est reçue d’un serveur BOOTP, le communicateur réitérera
sa demande six fois: trois fois en utlisant le type de trame Ethernet II, et trois fois
en utilisant le type de trame 802.3.
Le serveur ne donne aucune réponse (adresse IP stockée antérieurement)
Si aucune des tentatives de demande d’adresse IP n’a abouti, et si une adresse a
été antérieurement stockée par l’application avec une commande Modbus Write,
le communicateur utilisera cette adresse.
Le serveur ne donne aucune réponse (aucune adresse IP n’est stockée)
Si le communicateur ne reçoit d’adresse d’aucun des serveurs desquels il a
essayé d’obtenir une adresse IP, et s’il ne possède pas d’adresse stockée, il
renouvellera sa demande BOOTP toutes les 30 secondes. Pendant ce temps le
voyant de signalisation RUN clignotera en mode ‘demande’ (une séquence de 5
clignotements).
1.5.3
Identification de l’embase d’E/S
Après que le communicateur ait reçu son adresse IP, il effectuera une procédure
interne pour identifier l’embase d’E/S à laquelle il est couplé. Si la procédure
échoue, le voyant de signalisation RUN clignotera en mode défaut (six flashes) et
le communicateur restera hors ligne.
Si l’embase d’E/S est identifiée avec succès, le communicateur sera prêt à
communiquer en utilisant le protocole Modbus sous TCP/IP.
1.5.4
Stockage de l’adresse IP dans le communicateur
Le communicateur posséde une zone de mémoire RAM non volatile pour stocker
l’adresse IP. Si l’application demande au communicateur de conserver l’adresse IP
actuelle, elle doit publier une commande Modbus Write pour écrire une valeur
boléenne dans un registre spécifique du communicateur afin de pouvoir stocker
l’adresse. Le statut par défaut du communicateur est de ne pas stocker d’adresse.
Le paragraphe 2.1 décrit la façon de stocker l’adresse IP et de déterminer si une
adresse à été antérieurement stockée
14
20
Communicateur Ethernet
1.6
Remplacement d’un communicateur
1.6.1
Effacer l’adresse IP stockée
Avant de remplacer tout communicateur sonadresse IP doit être effacée.
Le communicateur possède une mémoire RAM non volatile afin de stocker tous
les paramètres qui lui sont assignés. Les paramètres sont retenus lorsque
l’alimentation du communicateur est coupée, et restent en permanence dans le
communicateur lorsqu’il est mis hors service. Si le communicateur est remis
ultérieurement en service, il peut causer une activité non spécifiée sur le réseau.
Par conséquence, tous les paramétres doivent être effacés avant de remplacer le
communicateur.
Le communicateur a un registre interne qui définit l’état boléen (mémorisé ou non)
de ses paramètres IP. Le registre peut être lu par l’application et peut être écrit afin
d’effacer les paramètres.
STOP
Avertissement
DANGER DE DOUBLON Des réactions imprévisibles peuvent apparaître sur
votre réseau si deux ou plusieurs équipements ont la même adresse. Avant
de mettre tout communicateur hors service, il vous faut tout d’abord écrire
un zéro logique dans le registre de stockage des paramètres afin d’effacer
tous les paramètres stockés du communicateur. Cela réduira toutes les
possibilités d’adresses IP multiples sur votre réseau le jour où le
communicateur sera remis en service. Le non respect de ces précautions
peut causer des blessures sur les personnes ou de dommages sur les
équipements. Voir paragraphe 2.1 pour la description des registres du
communicateur et la façon d’effacer les paramètres stockés.
1.6.2
Couper l’alimentation et déconnecter le communicateur
Avant d’ôter le communicateur, couper l’alimentation de l’embase d’E/S. Puis
débrancher le câble Ethernet, ôter alors le communicateur de l’embase.
20
Breite: 178 mm
Höhe: 216 mm
15
Communicateur Ethernet
1.6.3
Installer un nouveau communicateur
Monter le nouveau communicateur sur l’embase suivant les instructions fournies.
Enregistrer la nouvelle adresse globale IEEE (MAC address) du communicateur,
et l’utiliser pour configurer une adresse au protocale Internet (adresse IP) pour le
communicateur.
Le paragraphe 1.5 décrit la façon de mettre en service le communicateur en
utilisant le protocole Ethernet BOOTP.
16
20
Echanges de données avec
le communicateur
H
H
H
H
20
Breite: 178 mm
Höhe: 216 mm
Registres
Registres
Registres
Registres
2
d’accès aux échanges
de données
de configuration
d’état
17
Echanges de données avec le communicateur
2.1
Registres d’accès des échanges
Chaque communicateur possède trois groupes de registres permettant la
communication avec l’embase d’E/S. L’application accède aux registres pour
transmettre des données d’entrées ou de sorties aux bornes de l’embase, pour
mettre au point ou modifier la configuration du module, ou pour surveiller son état.
Tous les registres peuvent être entrés comme références 4XXXX dans la fonction
MSTR du programme application.
18
20
Echanges de données avec le communicateur
REFERENCE
INITIALE
(Hex / Décimal)
RESEAU
ETHERNET
TAILLE
(Mots de 16 bits)
REGISTRES DE DONNÉES
Données d’entrées
(lecture uniquement)
40001 / 400001
Suivant le type
d’embase
Données de sorties
(écriture uniquement)
40001 / 400001
Suivant le type
d’embase
REGISTRES DE CONFIGURATION
MODULE TIMEOUT
4F001 / 461441
(Lecture ou écriture)
1
MODULE OWNERSHIP
(lecture ou écriture)
4F401 / 462465
6
SAUVEGARDE ADRESSE IP
(Ecriture ou lecture)
4F411 / 462481
1 à écriture
2 à lecture
REGISTRES D’ÉTAT
ETAT DES MODULES
(lecture uniquement)
4F801 / 463489
MODULE A EN–TETE ASCII
(lecture uniquement)
4FC01 / 464513
13
Suivant le type
d’embase
Figure 7 Registres d’accès aux échanges du communicateur
2.1.1
Registres de données
40001 hex –– Donnés d’entrées ou de sorties
La référence initiale 40001 est utilisée pour adresser les données d’entrée en
provenance des capteurs et les données de sorties en direction des actionneurs.
Les données sont transmises en format IEC. Le mapping entre les registres de
données de l’automate et les bornes de l’embase d’E/S, est unique à chaque
embase. Il est décrit en détails dans le Manuel de mise en oeuvre des embases
TSX Momentum, 870 USE 002 01.
20
Breite: 178 mm
Höhe: 216 mm
19
Echanges de données avec le communicateur
2.1.2
Registres de configuration
4F001 hex –– Temps de maintien des sorties
La référence 4F001 spécifie la période pendant laquelle les sorties seront
maintenues dans leur état actuel sil elles n’ont pas été mises á jour par une
nouvelle commande Modbus Write. Si le temps imparti au module expire avant
qu’un nouvel ordre d’écriture ne soit reçu, toutes les sorties sont initialisées à 0
(zéro).
La taille de ce champs est d’un mot. La valeur du timeout est exprimée en unités
de 10 millisecondes, avec un minimum de 30 (300 millisecondes) et un maximum
de 6000 (60 secondes). La valeur par défaut est 100 (1 seconde).
Le contenu des registres peut être lu avec une commande Modbus Read.
4F401 hex –– Atrtibution du privilège d’écriture
Dès que le communicateur est alimenté, il donnera exclusivement le privilège
d’écriture à la première station qui lui écrira en utilisant la commande Modbus
Write. Le communicateur maintient une période interne de 60 secondes pour le
traitement du privilège d’écriture et maintiendra ce privilège exclusivement à cette
station aussi longtemps qu’elle continuera à lui écrire par intervalles de 60
secondes.
La référence initiale 4F401 spécifie les adresses IP de trois stations
supplémentaires pouvant posséder simultanément le privilège d’écriture au
communicateur. Une station qui possède actuellement le privilége d’écriture peut
écrire jusqu’à trois adresses IP (2 mots par adresses) à destination du
communicateur à partir de la référence 4F401. Chacune de ces trois stations peut
écrire au communicateur à partir de ces adresses enregistrées. Ceci permet à
quatre stations de posséder le privilège d’écriture à destination du communicateur.
Si les écritures, provenant d’une des trois stations privilégiées, continuent d’arriver
dans des intervalles de 60 secondes, aucune autre station ne pourra écrire au
communicateur. Lorsque le temps imparti est expiré n’importe quelle autre station
peut lui écrire.
Il est à noter que la période de 60-secondes de privilège d’écriture est
indépendante du temps de maintien des sorties, et s’applique uniquement au
privilége d’écriture. La période de 60 secondes est une valeur fixe et n’est pas
accessible dans application.
Toute station est en mesure de lire les données d’entrées ou les informations
d’état provenant du communicateur.
20
20
Echanges de données avec le communicateur
4F411 hex –– Adresse IP sauvegardée
Cette référence à un double but, suivant si le programme application sort une
commande d’écriture Modbus Write ou une commande de lecture Modbus Read.
Commande d’écriture Modbus: Sauvegarde ou effacement de l’adresse IP
Pour une commande d’écriture Modbus la référence est traitée comme un registre
d’un mot, le programme application écrivant un mot de donnée. La donnée
Modbus Write peut être 1 ou 0 (zéro), le communicateur sauvegardant ou effaçant
alors son adresse IP actuelle.
Si une donnée 1 est entrée comme référence, le communicateur sauvegardera
son adresse IP affectée actuellement dans sa mémoire RAM non volatile. Si une
nouvelle initialisation a lieu et que le communicateur ne peut pas trouver de
serveur BOOTP, il utilisera l’adresse mémorisée.
STOP
Avertissement
DANGER DE DOUBLON Des réactions imprévisibles peuvent survenir sur
votre réseau si deux ou plusieurs équipements ont la même adresse. Avant
de mettre tout communicateur hors service, écrire tout d’abord un zéro
logique dans le registre de stockage des paramètres, afin d’effacer tous les
paramètres stockés dans le communicateur .Cela réduira toutes les
possibilités d’adresses IP multiples sur votre réseau le jour où le
communicateur sera remis en service. Le non respect de ces précautions
peut causer des blessures sur les personnes ou des dommages sur les
équipements.
STOP
Avertissement
LE COMMUNICATEUR INITIALISE LORSQUE CES CONTENUS SONT
MODIFIES Toute modification d’état du contenu de ces références force le
communicateur à effectuer une nouvelle initialisation.
Commande de lecture Modbus Read: Réception de l’adresse IP actuelle Pour
une commande de lecture Modbus Read la référence est traitée comme un
registre de deux mots, le programme application écrivant deux mots de donnée. Si
le communicateur posséde des paramètres IP stockés dans sa mémoire RAM non
volatile, il retournera son adresse IP actuelle à la commande de lecture Modbus
Read en indiquant qu’il possède des paramètres stockés. Si les paramètres IP
actuels ne sont pas sauvegardés, le communicateur les retourne tous (FFFFFFFF
hex) à la commande Read.
20
Breite: 178 mm
Höhe: 216 mm
21
Echanges de données avec le communicateur
2.1.3
Registres d’état
4F801 hex –– Bloc d’état de l’embase
Ces registres fournissent des informations sur le niveau de révision des modules
et sur les paramètres d’exploitation actuels.
Le bloc est de 13 mots. Les registres peuvent être lus par l’application, mais ne
peuvent pas être écrits.
Tableau 6
Représentation des blocs d’état
Référence
(hex)
4F801
4F802
Désignation
Signification
Taille du bloc d’état (mots)
Nombre de mots d’entrées de
l’embase d’E/S
Nombre de mots de sorties de
l’embase d’E/S
Code d’identification de l’embase
Numéro de révision du
communicateur
13 décimal
suivant le type de l’embase
4F803
4F804
4F805
4F806
4F807
4F808
4F809
4F80A
4F80B
4F80C
4F80D
22
Taille du bloc en–tête ASCII (mots)
Dernière adresse IP pour
communiquer avec ce
communicateur dans l’opération
Modbus la plus récente (mot bas de
2 mots – voir 4F80D)
Temps d’attribution du privilège
restant
Temps restant de maintien des
sorties
embase OK
Valeur du dernier défaut de l’embase
Compteur de défaut de l’embase
Dernière adresse IP pour
communiquer avec ce
communicateur dans l’opération
Modbus la plus récente (mot haut de
2 mots – voir 4F80D)
suivant le type de l’embase
suivant le type de l’embase
Format: XR
où:
X = supérieur à 4 bits, toujours 0000
R = inférieur à 12 bits, définissant la
révision en tant que caractères 3 hex.
Exemple:
100 hex = Rév. 1..00
200 hex = Rév. 2.00
suivant le type de l’embase
Suivant l’adresse de la station
millisecondes
millisecondes
8000 hex = OK
0000 hex = défectueuse
suivant le type de l’embase
Compte de défaut 0000 ... FFFF hex
Suivant l’adresse de la station
20
Echanges de données avec le communicateur
4FC01 hex –– Bloc à en–tête ASCII du module
Ces registres contiennent un texte de description du module au format ASCII. Les
registres peuvent être lus mais non écrit par l’application.
La taille du bloc dépend du type de l’embase à laquelle le communicateur est
couplé. La taille minimum est de 64 octets de caractéres ASCII, correspondant à
une longueur de 8 à 32 mots comme il est spécifié au mot 6 du bloc d’état du
module (à la référence 4F806).
Le bloc possède des étiquettes d’identification pour indiquer la quantité de mots
d’entrées et de sorties, ainsi que le numéro d’identification de l’embase. Vous
pouvez analyser les contenus du bloc pour extraire cette information dans votre
application.
Tableau 7
Représentation du bloc à en–tête ASCII
Caractères ASCII
ETHERNET
20 hex (32 décimal)
IEC
20 hex (32 décimal)
DIG:
EXP:
ANA:
20 hex (32 décimal)
inlen=n
20 hex (32 décimal)
outlen=n
20 hex (32 décimal)
ID=0xnnnn
Signification
Identifie le communicateur Ethernet
espace
La donnée est transmise avec l’embase d’E/S en format IEC
espace
Embase T.O.R. (ID plage: XX00 ... XX7F hex)
Embase expert (ID plage: XX80 ... XXBF hex)
Embase analogique (ID plage: XXC0 ... XXFE hex)
espace
Mots d’entrée (n = nombre de mots, décimal)
espace
Mots de sortie (n = nombre de mots, décimal)
espace
Code d’identification de l’embase (nnnn = code ID, hex)
Figure 8 montre un exemple de contenu de bloc à en–tête ASCII pour deux
embases d’E/S.
20
Breite: 178 mm
Höhe: 216 mm
23
Echanges de données avec le communicateur
170 ADM 350 00 (Embase 16 entrées T.O.R., 16 sorties T.O.R.)
ETHERNET IEC DIG: inlen=1 outlen=1 ID=0x0002
Bits de donnée
tranférés
en format IEC
Identification
de l’embase
Mots d’entrée: 1
Mots de sortie: 1
Embase
T.O.R.
170 AAO 120 00 (Embase 4 sorties analogiques )
ETHERNET IEC ANA: inlen=0 outlen=5 ID=0x01C3
Bits de donnée
transmises
en format IEC
Embase
analogique
Mots d’entrée: 0
Mots de sortie: 5
(inclus 1 mot de paramètre)
Identification
de l’embase
Figure 8 Exemples: Bloc à en–tête ASCII
24
20
Programme de tests: Codes source
H
H
20
Breite: 178 mm
Höhe: 216 mm
3
Source: response.java
Source: test1.txt
25
Programme de tests: Codes source
3.1
Source: response.java
Ce programme Java fournit la boucle de test de débit des données décrite au
chapitre 1.
Il lit le fichier test1.txt qui donne les adresses cibles et les commandes
Modbus pour communiquer avec les communicateurs d’E/S.
Le fichier contient:
// response.java, 6/17/98. This is a variation of mbtest.java. This code
// will send a (write) command to one address and a separate command (read)
// to the second address. It will loop performing the read each time, but
// only doing the write when the read command detects a change in the input
// that was read. The loop counter is set as a constant. An improvement
// would be to pass it in the command line. The purpose of this program
// is to use an oscilloscope to measure the time elapsed between the input
// going high, and the output responding to it. The IP addresses of the IO
// modules, and the write and read commands are read from a text file.
//––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
// mbtest.java 4/26/96
// minimal application to communicate and do performance measurement
// to the Quantum Ethernet module using ASA registered TCP port and
// MODBUS_ENCODING PDU format
// variant 5/14/96 to allow comparison of responses to the same request from 2 targets
// variant 5/24/96 to allow specification of independent addresses on the 2 targets
//
and to allow time delay in script
//
11/11/97 generate ’usage:’ and handle blank lines as comment
import java.io.* ;
import java.net.* ;
class mbtest {
public static void main(String argv[]) {
if (argv.length<1) {
System.out.println(”usage: java mbtest scriptfile > reportfile\n”+
”eg.
java mbtest script.txt > result.txt”);
} else
try {
26
20
Programme de tests: Codes source
int dolog = 1;
int keybuf;
long skipcnt;
int ioCount;
byte expect;
int first;
DataInputStream di = new DataInputStream(new FileInputStream(argv[0]));
String cmd;
// analyse ’target’ lines. Note must be followed by ’address’
// note this version of the program requires that the ’target’
// lines be the first 1 or 2 lines of the script
String target;
Socket es=null;
OutputStream os=null;
FilterInputStream is=null;
cmd = di.readLine().trim();
if (cmd.startsWith(”target”)) {
target = cmd.substring(6).trim();
System.out.println(”mbtest: connecting to ”+target);
es = new Socket(target,502);
os= es.getOutputStream();
is = new BufferedInputStream(es.getInputStream());
cmd = di.readLine().trim();
}
String target2;
Socket es2=null;
OutputStream os2=null;
FilterInputStream is2=null;
if (cmd.startsWith(”target”)) {
target2 = cmd.substring(6).trim();
System.out.println(”mbtest: connecting to ”+target2);
es2 = new Socket(target2,502);
os2= es2.getOutputStream();
is2 = new BufferedInputStream(es2.getInputStream());
cmd = di.readLine().trim();
}
int address = 1;
int address2 = 1;
byte obuf[] = new byte[261];
byte obuf2[] = new byte[261];
byte ibuf[] = new byte[261];
20
Breite: 178 mm
Höhe: 216 mm
27
Programme de tests: Codes source
byte ibuf2[] = new byte[261];
obuf[0] = 0;
obuf[1] = 0;
obuf[2] = 0;
obuf[3] = 0;
obuf[4] = 0;
obuf2[0] = 0;
obuf2[1] = 0;
obuf2[2] = 0;
obuf2[3] = 0;
obuf2[4] = 0;
for (;;) {
if (cmd.startsWith(”;”)) {
System.out.println(cmd);
cmd = di.readLine().trim();
continue;
}
if (cmd.startsWith(”address2”)) {
address2 = Integer.parseInt(cmd.substring(9));
cmd = di.readLine().trim();
continue;
}
if (cmd.startsWith(”address”)) {
address = Integer.parseInt(cmd.substring(8));
address2 = address;
cmd = di.readLine().trim();
continue;
}
if (cmd.startsWith(”quit”)) break;
// handle script delay
if (cmd.startsWith(”wait”)) {
int delayTime = Integer.parseInt(cmd.substring(5));
if (delayTime < 0 || delayTime > 30000) {
System.out.println(”mbtest: warning: invalid delay time – ”+delayTime+”
– ignoring”);
}
else {
Thread.sleep(delayTime);
}
cmd = di.readLine().trim();
continue;
}
28
20
Programme de tests: Codes source
if (os == null || os2 == null ) {
System.out.println(”mbtestt: abort: no connection established to target”);
break;
}
// now convert to a byte string
// assume format is hex separated by whitespace
int ix = 0; // output index = number of bytes found
int sx = 0; // input index = substring position
int l = cmd.length();
while (sx < l) {
int ex;
ex = cmd.indexOf(’ ’,sx);
if (ex<0) ex = l;
int bval = Integer.parseInt(cmd.substring(sx,ex), 16);
obuf[7+ix++] = (byte) bval;
sx = ex+1;
}
if (ix == 0) {
// handle blank line as comment
System.out.println(cmd);
cmd = di.readLine().trim();
continue;
}
obuf[5] = (byte) (ix + 1);
obuf[6] = (byte) address;
//––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
// read the command for the second target
//––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
cmd = di.readLine().trim();
ix = 0; // output index = number of bytes found
sx = 0; // input index = substring position
l = cmd.length();
while (sx < l) {
int ex;
ex = cmd.indexOf(’ ’,sx);
if (ex<0) ex = l;
int bval = Integer.parseInt(cmd.substring(sx,ex), 16);
obuf2[7+ix++] = (byte) bval;
sx = ex+1;
}
20
Breite: 178 mm
Höhe: 216 mm
29
Programme de tests: Codes source
if (ix == 0) {
// handle blank line as comment
System.out.println(cmd);
cmd = di.readLine().trim();
continue;
}
obuf2[5] = (byte) (ix + 1);
obuf2[6] = (byte) address;
cmd = di.readLine().trim();
}
// end of FOR loop reading the input text
// purge the key buffer
//for( ; ; ) {
//keybuf = System.in.available();
//if( keybuf == 0 )
//break;
//keybuf = System.in.read();
//}
keybuf = System.in.available();
if( keybuf > 1 )
//
{
skipcnt = keybuf;
//
System.out.println(”skip: ”+keybuf );
do
{
System.in.read();
keybuf––;
} while( keybuf > 1 );
}
System.out.println(”Press any key to stop”);
expect = 0x40;
first = 1;
// Now loop performing the IO
for( ; ; ) { // loop doing IO
//for( ioCount=0; ioCount < 500; ioCount++ ) { // loop doing IO
int c = 0;
int c2 = 0;
int ix;
keybuf = System.in.available();
if( dolog == 1 )
System.out.println(”keybuf = ”+keybuf );
if( keybuf >= 1 )
{
keybuf = System.in.read();
30
20
Programme de tests: Codes source
break;
}
ix = (int)obuf[5] – 1;
os.write(obuf,0,ix+7);
c = is.read(ibuf,0,261);
if (c<=0) {
System.out.println(”mbtest: abort: detected unexpected close of channel”);
break;
}
while (c<7 || c<(6 + (0xff & (int)(ibuf[5])))) {
System.out.println(”mbtest: warning: response appears fragmented”);
int cx = is.read(ibuf,c,261–c);
if (cx<=0) {
System.out.println(”mbtest: warning: response incomplete”);
break;
}
c += cx;
}
// verify input length against fragmentation
if (((int)(ibuf[5])&0xff) != (c–6)) {
System.out.println(”mbtest: warning: response length mismatch”);
}
if( dolog == 1 )
{
log_buf(obuf, ix+7, ”>”);
log_buf(ibuf, c, ”<”);
}
// write to the second target, using the 2nd buffer
// wait until the input has changed
if ( first == 1 || ( ibuf[12] & 0x40 ) == expect ) {
first = 0;
ix = (int)obuf2[5] – 1;
// if input bit 0x40 is on, turn on output bit 0x01
if( expect == 0x40 )
{
expect = 0;
obuf2[16] = (byte) (obuf2[16] & 0xbf); // bit 40 off
obuf2[16] = (byte) (obuf2[16] | 0x01); // bit 01 on
}
else
{
expect = 0x40;
obuf2[16] = (byte) (obuf2[16] | 0x40); // bit 40 on
obuf2[16] = (byte) (obuf2[16] & 0xfe); // bit 01 off
20
Breite: 178 mm
Höhe: 216 mm
31
Programme de tests: Codes source
}
os2.write(obuf2,0,ix+7);
c2 = is2.read(ibuf2,0,261);
if (c2<=0) {
System.out.println(”mbtest: abort: detected unexpected close of
channel”);
break;
}
while (c2<7 || c2<(6 + (0xff & (int)(ibuf2[5])))) {
System.out.println(”mbtest: warning: response appears fragmented”);
int cx2 = is2.read(ibuf2,c2,261–c2);
if (cx2<=0) {
System.out.println(”mbtest: warning: response incomplete”);
break;
}
c2 += cx2;
}
if (((int)(ibuf2[5])&0xff) != (c2–6)) {
System.out.println(”mbtest: warning: response length mismatch”);
}
if( dolog == 1 )
{
log_buf(obuf2, ix+7, ”>”);
log_buf(ibuf2, c2, ”<”);
}
// check only the modbus response for equality (ignore address)
//if (buf_diff(c, ibuf, c2, ibuf2)) {
//System.out.println(”************* different”);
//}
}
if( dolog == 1 )
System.out.println();
} // end of FOR loop doing IO
} catch (Exception e) { System.out.println(”mbtest: unexpected exception:”+e); }
}
static boolean buf_diff(int c1, byte [] b1, int c2, byte [] b2) {
// check only the modbus response for equality (ignore address)
if (c1 != c2) return true;
int i;
for (i=7; i<c1; i++) {
if (b1[i] != b2[i]) return true;
32
20
Programme de tests: Codes source
}
return false;
}
public static void log_buf(byte buf[], int len, String prefix) {
System.out.print(prefix);
int i;
for (i=0; i<len; i++) {
System.out.print(” ”+Integer.toString((buf[i]>>4)&0xf, 16)+
Integer.toString(buf[i]&0xf, 16));
}
System.out.println();
}
}
20
Breite: 178 mm
Höhe: 216 mm
33
Programme de tests: Codes source
3.2
Source: test1.txt
Ce fichier contient les adresses cibles des communicateurs d’E/S utilisées dans la
boucle de test. Le serveur hôte doit les déterminer aux adresses IP des
communicateurs.
Ce fichier contient aussi les commandes d’entrées et sorties Modbus vers les
communicateurs afin de lire les entrées de l’embase et d’écrire les sorties de
l’embase.
Le fichier contient:
target eio4
target eio2
; input command followed by output command
3 0 0 0 2
10 0 0 0 2 4 00 00 00 40
quit
34
20

Manuels associés