▼
Scroll to page 2
of
78
TSX DM ETH 110 Chapitre Sommaire Page 1 Présentation générale. 5 1.1 Structure de la documentation 5 1.2 Description du coupleur 1.2-1 Généralités 1.2-2 Fonctionnalités 1.2-3 Profils de communication 6 6 6 7 1.3 Rappel sur le profil TCP/IP 1.3-1 Rappel sur l’adressage 1.3-2 Protocole de Résolution d’adresse (ARP) 1.3-3 Couche IP - Routage 1.3-4 Couche TCP - Interface socket 8 8 9 10 10 1.4 Présentation physique 1.4-1 Le coupleur TSX ETH 110 12 12 1.5 Mise en œuvre matérielle 1.5-1 Montage des coupleurs dans les bacs 1.5-2 Codage des adresses sur le bornier 1.5-3 Connexion au réseau 1.5-4 Description de l'interface AUI 14 14 15 16 17 2 Mise en oeuvre logicielle 2.1 Généralités 2.1-1 Fonctionnalités 2.1-2 Installation du logiciel 2.1-3 Configuration du coupleur 19 19 19 19 19 ___________________________________________________________________________ 1 TSX DM ETH 110 Chapitre 2.2 Sommaire Service de messagerie 2.2-1 Généralités 2.2-2 Gestion du mode de marche 2.2-3 Configuration 2.2-4 Test de machine distante : Echo. 2.2-5 Etablissement de connexion avec sécurité d’accès. 2.2-6 Service de transfert de blocs de données Page 20 20 22 24 25 26 28 2.3 Serveur UNI-TE local 33 2.4 Services X-WAY non supportés 33 2.5 Cycle de scrutation automate 34 3 Maintenance 35 3.1 Recherche de défauts 3.1-1 Généralités 3.1-2 Voyants 3.1-3 Afficheurs 3.1-4 Recherche de défauts avec les voyants et afficheurs 35 35 35 36 37 3.2 Déclenchement des tests 38 4 Spécifications techniques 41 4.1 Caractéristiques d’utilisation du transfert par l’application PL7-3 41 4.2 Performances 43 ___________________________________________________________________________ 2 TSX DM ETH 110 Chapitre Page 5 Architecture 5.1 Sommaire Architecture du coupleur 5.1-1 Architecture logicielle 5.1-2 Architecture matérielle 6 Blocs texte 45 45 45 48 49 6.1 Généralité 49 6.2 Configuration du coupleur 6.2-1 Principe 6.2-2 Définitions de la table de configuration 6.2-3 Définition des paramètres de configuration 6.2-4 Chargement de la configuration 49 49 50 51 52 6.3 Test d’une machine distante (écho) 6.3-1 Principe 6.3-2 Fonctionnement 53 53 53 6.4 Arrêt du service sur le coupleur 6.4-1 Principe 6.4-2 Fonctionnement 54 54 54 7 Blocs fonctions TCP 7.1 Généralités 7.1-1 Présentation des OFBs du produit PL7-TCP 7.1-2 Installations des OFBs 7.1-3 Configuration des OFBs 7.1-4 Utilisation des OFBs 55 55 55 55 55 56 7.2 L’OFB TCPM : gestion du module TSX ETH 110 57 7.2-1 Fonction 57 7.2-2 Interface PL7-3 58 7.2-3 Programmation de l'OFB TCPM 60 ___________________________________________________________________________ 3 TSX DM ETH 110 Chapitre 7.3 Les OFBs de services TCP 7.3-1 Rappels sur la conception d’une application 7.3-2 Programmation des OFBs 7.3-3 Caractéristiques communes à tous les OFBs TCP 7.3-4 Principes de la mise en œuvre Sommaire Page 62 62 63 64 67 7.4 OFB TCPS : émission d’un bloc de données 7.4-1 Fonction 7.4-2 Interface PL7-3 7.4-3 Utilisation de l’OFB TCPS 7.4-4 Programmation de l’OFB TCPS 68 68 68 70 71 7.5 OFB TCPR : réception d’un bloc de données 7.5-1 Fonction 7.5-2 Interface PL7-3 7.5-3 Utilisation de l’OFB TCPR 7.5-4 Programmation de l’OFB TCPR 72 72 72 74 75 7.6 Détail du STATUS (interface APPLIDIAG) 76 ___________________________________________________________________________ 4 PrésentationChapitre générale 11 1 Présentation générale. 1.1 Structure de la documentation Ce document s’adresse à des utilisateurs souhaitant mettre en œuvre un coupleur TSX ETH 110 dans un automate de la Série 7, pour une connexion à un réseau Ethernet utilisant le service de transfert de blocs de données sur connexions TCP/IP. On suppose que le lecteur connaît les protocoles TCP/IP. Le présent manuel TSX DM ETH 110F est fourni avec le coupleur automate TSX ETH 110. Le manuel au format A5 peut être intégré dans un classeur avec intercalaires à commander séparément sous la référence TSX DAC1. ___________________________________________________________________________ 5 1.2 Description du coupleur 1.2-1 Généralités Le coupleur TSX ETH 110 est un coupleur intelligent de la gamme TSX Série 7. Il s’implante dans les automates programmables modèles 40 (TSX 87-40 et 107-40) version V5. Il permet de réaliser des fonctions de transfert de blocs de données entre l’application de l’automate et des applications informatiques distantes dans une architecture réseau TCP/IP. Les applications distantes peuvent être exécutées sur toutes machines supportant un profil de communication TCP/IP. Par contre, il n'est pas possible d’utiliser les services offerts par le coupleurTSX ETH 110 pour faire communiquer des programmes applications supportés par deux automates. En effet, l’établissement de la connexion TCP est à l’initiative de l’application distante. Or, le coupleur TSX ETH 110 est uniquement serveur sur connexion rentrante ; il ne prend jamais l’initiative pour établir une connexion avec une application distante. 1.2-2 Fonctionnalités Le coupleur TSX ETH 110 comporte une liaison 10 Base 5 au réseau Ethernet et un service de messagerie s’appuyant sur le protocole de transport TCP. La liaison est réalisée par l’intermédiaire d’un connecteur femelle 15 contacts type SUB-D offrant l’interface AUI (Attachement Unit Interface) définie dans la norme 802.3. Le codage d’adresse de la station (numéro de station et numéro de réseau) est assuré par le bornier TSX ETH ACC1. La vitesse de transmission est de 10 Mb/s. Le médium est à accès multiples par surveillance du signal et détection de collisions. Le service de messagerie permet de transférer des blocs de données entre l’application de l’automate et une ou plusieurs applications distantes supportées par des équipements informatiques (PC, machine Unix...). Les principales fonctions sont résumées par : Transfert de blocs de données Les blocs de données sont échangés sur des connexions TCP qui doivent être ouvertes à l’initiative de l’application distante, vers un port de service de l’automate. La taille maximale des blocs de données à échanger est de 8 K octets. ___________________________________________________________________________ 6 Présentation générale 1 Etablissement de connexions TCP Le coupleur TSX ETH 110 remplit, de manière transparente pour l’application automate, la fonction serveur de connexions rentrante sur une liste de ports. La liste peut comporter au maximum 16 ports de service. Le numéro du port de service doit être supérieur ou égal à 5010. Cette liste est transmise au coupleur par l’application avec un bloc texte de configuration. Le coupleur n'autorise qu'une seule connexion par port. Accès sécurisé Le coupleur assure également un accès sécurisé. Seules les machines définies dans la configuration seront autorisées à se connecter à l’automate. 1.2-3 Profils de communication Le coupleur TSX ETH 110 est doté d’un seul profil de communication TCP/IP sur le réseau Ethernet, avec un service applicatif de messagerie. Le coupleur TSX ETH 110 n’offre aucun service X-WAY sur ce même réseau Ethernet, tels que mots communs, télégrammes, messagerie UNITE. Le profil TCP/IP et son service de messagerie assurent la communication avec tous les équipements supportant le protocole TCP/IP. Application Automate 7 Application Messagerie 6 Présentation 5 Session 4 Transport 3 Réseau TCP IP - ICMP UDP ARP 2 Liaison Ethernet 1 Physique Le coupleur TSX 7 TCP/IP n’assure pas le routage de messages entre les coupleurs de communications d’un même automate. ___________________________________________________________________________ 7 1.3 Rappel sur le profil TCP/IP L’objet de ce chapitre est principalement de présenter brièvement le rôle et le fonctionnement des différentes couches du protocole TCP/IP et de préciser les options retenues pour l’implémentation du coupleur TSX ETH 110. 1.3-1 Rappel sur l’adressage Adresse IP Une adresse INTERNET, ou adresse IP, identifie une machine reliée au réseau. Elle est codée sur 32 bits. Conceptuellement, chaque adresse IP est un couple (nom-de-réseau, identificateurde-machine), où nom-de-réseau identifie un réseau (ou un site) et où identificateur-demachine identifie une machine connectée à ce réseau. Il existe 3 classes d’adresses IP : 0 0 1 Classe A 2 ID. Réseau Classe B 1 0 ID. Réseau Classe C 1 1 0 8 16 24 ID. Machine 31 ID. Machine ID. Réseau ID. Machine En externe, une adresse IP d’une machine est représentée par une chaîne de caractères de 4 valeurs 8-bits (0 à 255) séparées par des points : « a.b.c.d ». Classe A B C Valeurs de a 0-127 128-191 192-223 Par exemple l’adresse IP 90.0.0.1 est codée en interne sur une valeur 32-bits comme 0x5A000001 ; c’est une adresse de classe A où l’identificateur de réseau est 90, l’identificateur de machine est 1. Sous-adressage (subnet mask) Le principe du sous-adressage est de décomposer l’adresse IP (format a) en une partie réseau et une partie locale. La partie réseau est identique à l’adressage IP, elle identifie un réseau (ou un site). Par contre, la partie locale est laissée à l’initiative du site ; elle est alors subdivisée en un numéro de sous-réseau physique et une identification de machine (format b). ___________________________________________________________________________ 8 Présentation générale Format a Partie Internet = Id Réseau Format b Partie Internet SubNet Mask 1 Partie locale numéro de sous-réseau physique Bits à 1 Identification de machine Bits à 0 Un masque de sous-réseau (subnet mask), codé sur un 32-bits, permet de définir les bits d’une adresse IP comme partie réseau. Les bits du masque sont à 1 si les bits correspondants de l’adresse IP sont à interpréter comme partie de l’adresse réseau. Il sont à zéro pour l’identification de machine. Ports TCP Le protocole TCP utilise des numéros de ports pour identifier les destinataires finaux sur une machine donnée. Sur le domaine Internet, les ports 1 à 1023 sont réservés. Et en général, les ports 1024 à 5000 sont réservés sur les systèmes Unix pour une attribution automatique par le système (par exemple à l’attention des clients TCP). Les ports au-delà de 5 000 sont donc disponibles pour des applications. Les ports TCP compris entre 5000 et 5009 inclus sont réservés pour un usage interne Schneider. 1.3-2 Protocole de Résolution d’adresse (ARP) Les adresses IP sont choisies indépendamment des adresses physiques des machines. La transmission de trame sur un médium du réseau utilise un adressage physique. Donc pour transmettre un paquet Internet, le logiciel de communication doit mettre en correspondance l’adresse IP avec une adresse physique et utiliser cette adresse physique pour transmettre la trame sur le médium. Le protocole de résolution d’adresses (ARP : Address Resolution Protocol) permet une résolution dynamique pour associer adresse physique - adresse IP d’une machine distante, en utilisant des protocoles de communication (en diffusion) de bas niveau. Le protocole ARP utilise une mémoire cache où sont enregistrées les associations adresse physique - adresse IP. Le protocole ARP ne peut être utilisé que si toutes les machines (que l’on souhaite atteindre) le supportent. Caractéristiques pour le coupleur TSX ETH 110 L’automate utilise le protocole ARP pour résoudre l’adressage physique. ___________________________________________________________________________ 9 1.3-3 Couche IP - Routage La couche IP (Internet Protocol) offre des services de routage de datagrammes sur le réseau. Caractéristiques pour le coupleur TSX ETH 110 Le seul paramètre de configuration pour la couche IP est l’adresse IP du gateway par défaut. Ce paramètre sera donné par l’application PL7-3. 1.3-4 Couche TCP - Interface socket La couche TCP (Transmission Control Protocol) offre des services de transport fiable de données en full-duplex sur une connexion point-à-point, établie entre deux applications situées sur des machines différentes. L’accès à la couche TCP par le logiciel spécifique du coupleur est faite en utilisant l’interface socket. Etablissement de connexion L’établissement de connexion entre les deux applications est asymétrique, il est basé sur un modèle client - serveur. Pour que la connexion puisse être établie entre les deux applications : • l’application serveur doit être en attente de connexion rentrante pour un port de service TCP, • l’application client peut alors envoyer une demande une connexion vers l’application serveur, • l’application serveur accepte la connexion rentrante. SERVEUR (IP_a) CLIENT fd = Socket() connect (fd, [IP_a, port_a]) ETABLISSEMENT DE CONNEXION fd = Socket() bind(fd,[IP_a, port_a]) listen(fd,l) accept(fd) ___________________________________________________________________________ 10 Présentation générale 1 Transfert de données Sur une connexion établie, le transfert de données est : • fiable, • bufferisé, • non structuré (flot d’octets et non pas de messages), • bidirectionnelles simultanées (full-duplex). Application TCP Tampon émission TCP Connexion Tampon réception Application Tampon réception Tampon émission Socket Données Hors Bande Le protocole TCP prévoit la possibilité de transmettre (au moins) un caractère urgent OOB (Out Of Band), passant hors du flot de caractères normaux. En général, côté récepteur, le caractère OOB est mémorisé en dehors des tampons utilisés pour les caractères ordinaires. Cependant, le récepteur a la possibilité de configurer la socket pour placer ces caractères dans le flot normal. Ainsi, à l’arrivée d’un caractère OOB, le précédent ayant cette caractéristique n’est pas perdu : il perd simplement son aspect urgent et devient accessible dans le flot normal. Caractéristiques sur le coupleur TSX ETH 110 Le coupleur TSX ETH 110 est uniquement serveur pour l’établissement de connexion. La liste des ports de service à écouter est passée lors de la configuration du coupleur par l’application PL7-3. Les caractères « hors bande » (OOB) ne sont pas utilisés. En réception sur le coupleur TCP, ils sont pris en compte mais non traités. Le paramètrage de la couche TCP/socket est fait par le coupleur en fonction de l’architecture du logiciel. Aucun paramètre n’est accessible par l’application PL7-3. Cependant, il est possible de préciser certaines caractéristiques d'une connexion. Les tampons d'émission et de réception du protocole TCP associés à une connexion sont de 4096 octets. Les connexions sont configurées avec l'option KEEP ALIVE. L'émission sur une connexion est configurée avec "remise immédiate". Par exemple, avec une configuration comprenant le caractère fin de message, un message <Ig,data,eom> est envoyé avec au moins 3 segments TCP : l'en-tête pour la longueur, des segments pour les données, puis éventuellement le caractère fin de message. ___________________________________________________________________________ 11 1.4 Présentation physique 1.4-1 Le coupleur TSX ETH 110 Le coupleur TSX ETH 110 se présente sous la forme d’un module au format simple pouvant être inséré dans un emplacement des configurations de base des automates programmables. Ce coupleur se compose des éléments suivants : 1 Un boîtier métallique protégeant mécaniquement les circuits électroniques et assurant une protection contre les parasites rayonnants. 2 Un voyant de couleur verte repéré RUN (coupleur sous tension en état de fonctionnement). 3 Un voyant de couleur rouge repéré DEF : - allumé fixe ; défaut coupleur. 4 Deux voyants de couleur jaune indiquant l’état de fonctionnement du coupleur par rapport au réseau : • RX : réception de données, • TX : émission de données. 5 Deux afficheurs "7 segments" et un point lumineux donnant diverses informations sur le fonctionnement du coupleur. 6 Un connecteur femelle 11 contacts type SUB-D pour le bornier TSX ETH ACC1. 7 1 RUN DEF 2 3 8 RX 4 TX NET 5 6 7 7 Deux vis de fixation assurent le verrouillage du coupleur dans le bac. 8 Connecteur femelle 15 contacts type SUB-D offrant l'interface AUI pour la connexion au réseau. Ce connecteur est équipé d'une glissière permettant de verrouiller le câble de dérivation. La face arrière du coupleur est équipée d’un dispositif de détrompage mécanique pour éviter les erreurs de mise en place des modules. ___________________________________________________________________________ 12 Présentation générale 1 Verrouillage du connecteur Le verrouillage du connecteur s'effectue en faisant glisser la languette vers le bas (voir dessin ci-contre). 1.4-2 Le bornier de raccordement TSX ETH ACC1 Ce bornier assure le codage de l’adresse (numéro de station et du numéro de réseau) par quatre roues codeuses hexadécimales. 262 235 2 212 Le bornier est muni d’une languette plastique permettant de le rendre solidaire du bac de l’automate à l’emplacement du coupleur TSX ETH 110. Ce lien permet le remplacement des coupleurs sans risque de perdre ou de permuter des borniers. ___________________________________________________________________________ 13 1.5 Mise en œuvre matérielle 1.5-1 Montage des coupleurs dans les bacs Automates modèle 40 (version V5) : TSX 87 Emplacement 1à 7 1 coupleur TSX 107 Emplacement 1à 7 1 coupleur Note : Quel que soit le type d’automate, les coupleurs TSX ETH 110 ne peuvent se monter que dans le bac principal. Les processeurs doivent être montés dans des bacs ventilés. Détrompage Mécanique Code décimal sur 3 chiffres donné par 3 détrompeurs femelles situés à l’arrière du coupleur. 714 Logiciel Saisi lors de la configuration des entrées/sorties sur le terminal de programmation. 14 Installation de la ligne Les précautions concernant l'installation de la ligne sont celles spécifiées par la norme ISO 8802-3, et sont décrites dans le manuel de référence ETHWAY pour le câblage d'un réseau 802.3. ___________________________________________________________________________ 14 Présentation générale 1 1.5-2 Codage des adresses sur le bornier 0 net 3 1 stat B L’accès aux roues codeuses se fait en démontant la face latérale du bornier. Le circuit imprimé sur lequel se trouvent les roues codeuses peut alors être retiré de son logement. Chaque station d’une architecture de réseau est affectée d'une adresse repérée par : • STAT : c’est le numéro de la station sur le réseau. Il peut prendre les valeurs de 0 à 3F, (soit 64 stations), • NET : c’est le numéro de réseau. Il peut prendre les valeurs de 0 à 7F. Ces adresses sont codées en hexadécimal sur les quatre roues codeuses du bornier comme indiqué dans l’exemple suivant. Exemple Le codage des roues codeuses du bornier ci-dessus correspond à la station d’adresse 27 (H’1B’) sur le réseau numéro 3 (H’03'). Principe d'adressage Un équipement est identifié par une adresse unique au niveau liaison (adresse MAC) : Adresse IEEE < 00 80 Numéro de Réseau Numéro de Station > F4 00 R S Sur un équipement Telemecanique, les adresses Réseau et Station sont codées par le bornier TSX ETH ACC1. ___________________________________________________________________________ 15 1.5-3 Connexion au réseau Une fois effectuée la mise en place du coupleur dans le bac, la connexion du câble de dérivation, le codage des adresses dans le bornier et l’enfichage de celui-ci, l’automate se trouve raccordé au réseau. Lorsque l’automate est mis sous tension, tous les voyants du coupleur s’allument un bref instant et les auto-tests sont déclenchés. Le voyant RUN reste allumé en fin de phase d’auto-tests (lorsque ceux-ci sont corrects). Il indique le fonctionnement normal du coupleur. Son extinction correspond à la détection d’expiration du "chien de garde", c’est-à-dire le passage du coupleur à l’état inactif. Les voyants RX et TX indiquent que le coupleur TSX ETH 110 a détecté une activité le concernant en réception de données (RX) ou en émission de données (TX). Les afficheurs "7 segments" ont diverses fonctions de signalisation. En cas de bon fonctionnement du coupleur, ils affichent successivement avec une période d’environ 2 secondes : • le numéro de réseau avec un point en bas à droite (exemple : réseau 02.), • le numéro de la station sans point (exemple : station 1A). Si un défaut apparaît pendant la période d’auto-test ou en fonctionnement, les afficheurs indiquent le code du défaut, (voir le chapitre 3 : maintenance). ___________________________________________________________________________ 16 Présentation générale 1 1.5-4 Description de l'interface AUI L'interface AUI (Attachment Unit Interface) permet la connexion d'une station au réseau par dérivation. Le câble à utiliser, la connectique ainsi que les signaux électriques sont décrits dans la norme 802.3. Emetteur/Récepteur Câble principal Interface AUI Station i Station j Brochage du connecteur 15 contacts type SUB-D (côté station) Le brochage du connecteur femelle 15 contacts type SUB-D situé sur la face avant du coupleur TSX ETH 110 correspond à celui défini dans la norme OSI 802.3 pour l'interface AUI : N° de pin Appellation norme 802.3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Corps SubD CI-S (Control in shield) CI-A (Control in A) DO-A (Data Out A) DI-S (Data in shield) DI-A (Data in A) VC (Voltage Common) Option non utilisée Option non utilisée CI-B (Control in B) DO-B (Data Out B) DO-S (Data Out Shield) DI-B (Data in B) VP Voltage Plus VS Voltage Shield Option non utilisée PG Protective Ground Utilisation GND COLL+ TX+ GND RX+ GND GND COLLTXGND RX12 V GND GROUND ___________________________________________________________________________ 17 ___________________________________________________________________________ 18 Mise en œuvreChapitre logicielle 22 2 Mise en oeuvre logicielle 2.1 Généralités 2.1-1 Fonctionnalités Le coupleur TSX ETH 110 supporte principalement des fonctions de communication sur connexions TCP, offertes par le service de messagerie. Les principales fonctionnalités du service sont : • la gestion du mode de marche du coupleur TSX ETH 110, • la configuration du service : mise en place des paramètres de fonctionnement nécessaires au profil de communication TCP/IP et au service de messagerie, • le test d’une machine distante, utilisant une demande/réponse Echo du protocole ICMP, • l’établissement de connexion TCP avec accès sécurisé par des machines distantes, • le transfert de blocs de données entre programme application automate et programme d’application distante. 2.1-2 Installation du logiciel Les coupleurs TSX ETH 110 sont livrés avec les OFBs correspondants, qu'il faut installer. 2.1-3 Configuration du coupleur A la mise sous tension, après l’exécution des auto-tests, le coupleur TSX ETH 110 ne se configure que partiellement. Seuls les numéros de réseau (H’00' à H '7F') et de station (H’00' à H’3F’) sont pris en compte pour définir l’adresse physique MAC (Medium Access Control) du coupleur sur le réseau Ethernet. L’application automate doit charger par bloc texte, les paramètres de configuration nécessaires au fonctionnement effectif du coupleur TSX ETH 110. Le processeur ne prend en compte le coupleur TSX ETH 110 que si celui-ci a été déclaré dans la configuration des Entrées/Sorties comme un coupleur TSX ETH 200. Important : Le logiciel PL7-NET n’est pas nécessaire pour la configuration réseau du coupleur TSX ETH 110. Lors de la configuration d'un coupleur TSX ETH 110, il est impératif d'inhiber l'activation des mots communs. ___________________________________________________________________________ 19 2.2 Service de messagerie 2.2-1 Généralités Le service de messagerie permet le transfert de blocs de données entre l’application automate et une application distante au travers d’une connexion TCP. Le transfert de blocs de données est réalisé sur une connexion TCP. Il faut donc au préalable établir une connexion TCP entre l’application distante et le coupleur TSX ETH 110. Application Automate Application Distante TSX ETH110 Connexion TCP Etablissement de connexion avec le coupleur TSX ETH 110 de l’automate. L’établissement de connexion TCP est transparente pour l’application automate. Elle est basée sur un modèle « client-serveur ». Client Un client est une application qui prend l’initiative d’établir une connexion TCP vers un port de service d’un serveur supporté par un équipement distant. Serveur Un serveur est une application qui attend sur un port de service donné, une demande de connexion rentrante d’un client distant. La fonction serveur est supportée par le coupleur TSX ETH 110. Pour que la connexion puisse être établie entre le client et le serveur, il faut que le serveur du coupleur TSX ETH 110 soit actif. Il faut donc que l’application automate ait effectué une configuration du coupleur TSX ETH 110. ___________________________________________________________________________ 20 Mise en œuvre logicielle 2 Transfert de blocs de données Dès que la connexion est établie, les applications peuvent s’échanger des blocs de données dont la taille max. est de 8 K octets. Fermeture de connexion La fermeture d’une connexion peut être effectuée à l’initiative de l’application distante, ou de l’application automate en appliquant un RESET sur un des OFBs utilisant cette connexion, qu’il soit actif ou non (bit READY à 0 ou à 1). Pour une bonne gestion de la fermeture de connexion par le coupleur, il est conseillé, dans l’application PL7-3, de mettre en place un OFB continuellement en réception sur cette connexion, même s’il n’est prévu aucun échange en réception. Le coupleur TSX ETH 110 se met en écoute de réception (pour des données et/ou pour une demande de fermeture par le distant) dès que la connexion est établie. Par contre, si des données sont présentes en réception sur la connexion, elles ne seront retirées de la connexion uniquement si un bloc OFB Réception est actif. Une demande de fermeture de connexion par le distant ne sera traitée par le coupleur qu’après réception de toutes les données contenues dans la connexion, donc si des OFBs Réception sont activés. Cas de connexion utilisée en half-duplex. Il est possible de définir une communication en half-duplex avec uniquement des émissions de l’automate vers une application distante, sans utilisation de l’OFB de réception. Mais pour que ce modèle de communication fonctionne correctement, il est impératif et obligatoire que l’application distante ne lance aucune émission de données sur cette connexion en half-duplex. Dans le cas contraire, c’est à dire si des données sont présentes en réception sur l’automate, une demande de fermeture par l’application distante n’est pas prise en compte immédiatement; la fermeture de la connexion est détectée et prise en compte par le coupleur TSX ETH 110 uniquement lors des demandes d’émission par l’application PL7-3. En absence de ces demandes d’émission, la connexion reste dans l’état «ouvert et occupé» pour le coupleur TSX ETH110 : des données sont en attente sur la connexion pour un OFB Réception. Tant que la connexion reste dans cet état, il est impossible à l’application distante de se re-connecter sur le port associé à cette connexion. ___________________________________________________________________________ 21 2.2-2 Gestion du mode de marche Le rôle de cette fonction est d’offrir une synchronisation entre le mode de marche de l’UC et celui du coupleur pour le service de messagerie, ainsi qu’une signalisation de l’état du coupleur pour l’application PL7-3. Cette fonction assure la ré-initialisation de l’ensemble de la communication TCP/IP (coupleur + OFBs de transfert), de manière simple et transparente à l’application PL7-3, sur les événements suivants: • un changement de mode de marche de l’UC automate (reprise à chaud, reprise à froid, ..), • un chargement de programme, • un passage de STOP/RUN de l’automate, • un changement d’état du coupleur, • une demande explicite de ré-initialisation par l’application PL7-3. Cette fonction est assurée par l’OFB TCPM. Le graphe du mode de marche du coupleur TSX ETH 110 est le suivant : Reprise secteur INITIALISATION Système Ok NON CONFIGURE Configuration correcte Coupure/Reprise secteur initialisation verrou cartouche EN SERVICE Démarrage à chaud ou démarrage à froid ou STOP ou RESET de l'OFB TCPM ARRET DU SERVICE Service arrêté (état transitoire) Coupure/Reprise secteur initialisation verrou cartouche ___________________________________________________________________________ 22 Mise en œuvre logicielle 2 L’arrêt du service sur le coupleur comprend les actions suivantes : • toutes les opérations en cours (demande d’émission et de réception) sont annulées sans aucune indication vers le service de messagerie supporté par l’UC (OFBs de transfert). • tous les démons en attente de connexions rentrantes sont désactivés, • puis, toutes les connexions ouvertes sont fermées. Il faut noter que, excepté pour une coupure secteur ou un coup de verrou cartouche, les applications distantes sont prévenues de l’arrêt du service sur l’automate par la fermeture des connexions, puis l’impossibilité de rétablir les connexions (arrêt des démons). La fonction de gestion du module permet également de connaître l’état du coupleur TSX ETH 110 par un bit d’état RUN, plus un bit annexe d’état START indépendant du coupleur. Le bit d’état RUN passe de 0 à 1 quand le coupleur est prêt dans l’état «non-configuré». Il passe à 0 dès qu’il quitte l’état «Non Configuré» ou l’état «En Service». Le front montant du bit RUN permet à l’application PL7-3 de déclencher la procédure de configuration du coupleur TSX ETH 110. Le bit START permet à l’application PL7-3 de détecter un passage en STOP/RUN de l’automate. D’autre part, le service de transfert de blocs de données (OFBs TCPS et TCPR) utilise directement les informations fournies par cet OFB TCPM, pour se ré-initialiser automatiquement sur un passage à 0 du bit RUN. Le service offert est résumé par les deux chronogramme suivants: SY0 ou SY1 ou chargement d'une application ou RESET sur TCPM Bit RUN INIT Ré-initialisation des OFBS de transfert Coupleur dans l'état NON CONFIGURE Arrêt du service sur le coupleur si le coupleur est dans l'état "En service" ___________________________________________________________________________ 23 Et, pour le passage STOP/RUN de l’automate: STOP RUN Bit START Bit RUN STOP INIT Arrêt du service Ré-initialisation des OFBS de transfert Coupleur dans l'état NON CONFIGURE Service déjà arrêté 2.2-3 Configuration L’application automate PL7-3 doit charger par bloc texte, les paramètres de configuration nécessaires au fonctionnement du coupleur TSX ETH 110. Les informations de configuration sont principalement les suivantes : • • • • adresse IP locale de l’automate sur le réseau, le masque de sous-adressage (subnet mask), l’adresse IP de la gateway par défaut, la liste des adresses IP des machines distantes autorisées à se connecter à l’automate (nombre max. = 8), • la liste des ports de service à écouter. (nombre max. = 16). Par rapport au paragraphe «gestion du mode de marche», la configuration est perdue sur : • • • • • • la disparition de la tension secteur , le chargement d’une application, une reprise à froid, une reprise à chaud, l’action STOP, une ré-initialisation du coupleur par un RESET de l’OFB TCPM. Le front montant du bit RUN permet de déclencher au bon moment la procédure de configuration du coupleur TSX ETH 110. Si aucune configuration correcte n’est définie par l’application PL7-3, le coupleur reste dans l’état « non configuré ». ___________________________________________________________________________ 24 Mise en œuvre logicielle 2 2.2-4 Test de machine distante : Echo. Le coupleur TSX ETH 110 offre un service appelé : ECHO. Le but de ce service est de tester la présence d’une machine distante, et non pas la qualité de transmission du réseau. Dès que le coupleur a été configuré par l’application PL7-3, l’application PL7-3 a la possibilité de tester l’accessibilité d’une machine distante à travers le réseau. Comme paramètres d’entrée du service ECHO, l’application spécifie l’adresse IP de la machine distante ainsi que le texte à envoyer (longueur et contenu). Le service est alors réalisé par le coupleur TSX ETH 110 en s’appuyant sur le protocole ICMP, avec une demande/réponse d’écho ICMP (echo request and echo reply messages). La machine distante à tester doit donc supporter le protocole ICMP. En l’absence d’erreur de transmission sur les médium (perte de datagramme), ce test permet de vérifier que : • la couche IP de l’automate route correctement le datagramme, • les passerelles intermédiaires entre l’automate et la machine distante à tester sont opérationnelles et routent correctement le datagramme, • les couches IP et ICMP de la machine distante sont opérationnelles et correctement configurées, • les routes des passerelles du chemin de retour sont correctes. Une réponse négative retournée par le coupleur à l’application automate peut être causée par : • une erreur permanente : - l’absence sur le réseau de la machine à tester, - une erreur de configuration de l’automate, des routeurs, de la machine distante, - un problème de câblage entre les deux machines, • une erreur transitoire pendant le test (perte de datagramme). Dans le cas dans d’une réponse négative, il est donc conseillé de répéter plusieurs fois le test ECHO pour distinguer le cas de l’erreur permanente et de l’erreur transitoire de transmission (cas où il y a un taux important d’erreurs sur les transmissions entre les deux machines). Remarque : Le service offert a été appelé “Echo” pour marquer le fait qu’une seule demande d’écho ICMP est effectuée par le coupleur, à l’inverse d’une fonction évoluée, appelée en général ping, qui émet une suite de demandes d’écho ICMP, et qui retourne comme compte-rendu des statistiques sur le transfert de messages entre les deux machines. ___________________________________________________________________________ 25 2.2-5 Etablissement de connexion avec sécurité d’accès. Dès que le coupleur a été configuré par l’application PL7-3, le coupleur active des démons en attente de connexions rentrantes pour chaque port local de service défini dans le tableau de configuration. Toute machine distante déclarée dans la configuration peut donc se connecter à tous ports déclarés de l’automate. Juste après acceptation d’une connexion rentrante sur un port local de service, le démon vérifie que : 1. le port est libre (une seule connexion établie par port). 2. l’adresse IP de la machine distante appartient à la liste des machines distantes autorisées à se connecter. Si au moins une des conditions précédentes n’est pas vérifiée, le coupleur ferme cette nouvelle connexion. Par contre, si les conditions précédentes sont vérifiées, la connexion TCP sur le port local de service est acceptée. Elle est mémorisée dans la liste des connexions ouvertes. Le port local de service associé est occupé, il n’est plus accessible pour toute autre demande de connexion. Remarques : • Même si une connexion est établie sur un port de service, le démon du port de service reste actif. Toute nouvelle demande d’ouverture de connexion est donc acceptée, puis immédiatement refermée par le coupleur. Pendant un instant, l’application distante «voit» la connexion établie avec l’automate. • Si l’application distante cherche à établir la connexion avec l’automate par une suite de demandes (par exemple avec la primitive connect() de l’interface socket Berley) jusqu’à réussite de celles-ci, il faut laisser un délai d’au moins 10 secondes entre chaque tentative de connexion. Chaque connexion TCP ouverte avec le coupleur est donc caractérisée de façon unique par le port local de service (1 port de service <-> 1 connexion). L’adresse IP de la machine distante est uniquement un attribut associé à cette connexion. ___________________________________________________________________________ 26 Mise en œuvre logicielle 2 Le graphe d’état d’une connexion pour un port de service est le suivant : 1 : NON CONFIGURE Configuration coupleur correcte 1 : ATTENDRE CONNEXION (port libre) INIT Connexion rentrante 2 : CONTROLER L'ACCES Accès autorisé Port occupé ou Accès non autorisé => Fermeture connexion 3 : CONNEXION ETABLIE (port occupé) INIT => Fermeture Connexion INIT => Fermeture Connexion Erreur Fin de message RESET ou Fermeture par le distant => Fermeture Connexion 4 : CONNEXION ETABLIE DESYNCHRONISEE (port occupé) Une connexion établie est fermée par le coupleur : • lors de l’accès par l’application distante (ouverture temporaire pour contrôle) - port déjà occupé - machine non autorisée • sur une demande par l’application PL7-3 (voir signal RESET sur les OFBs de transfert TCPS ou TCPR) • sur une fermeture de la connexion par l’application distante, • sur une ré-initialisation du coupleur (notée INIT sur le graphe) - par une demande par l’application PL7-3 d’un passage du coupleur à l’état nonconfiguré (voir signal RESET sur OFB TCPM de gestion du module ETH 110) - par une action STOP sur une application en cours d’exécution - lors d’une reprise à chaud (SY0) ou d’une reprise à froid (SY1) - lors d’un chargement d’une nouvelle application sur l’automate ___________________________________________________________________________ 27 Par contre, sur une coupure secteur ou sur un coup de verrou cartouche (arrêt brutal du logiciel du coupleur), les connexions établies ne sont pas effectivement fermées par le coupleur. Une application distante ne peut détecter la perte de communication avec le coupleur que si elle effectue des émissions (détection par un signal «broken pipe» au bout de la énième émissions), et/ou si elle surveille l’absence de réception de message pendant un délai donné. Le cas est analogue à une coupure de câble entre l’automate et la machine distante. Note : La configuration de la connexion (ou socket) avec l’option «keep alive» permet de détecter la perte de la connexion avec absence de trafic mais au bout d’un délai important (environ 2 heures). La détection d’une erreur du caractère « fin de message » sur la réception d’un message par le coupleur n’entraîne pas la fermeture automatique de la connexion par le coupleur. Par contre, la connexion sera marquée comme désynchronisée, prenant les caractéristiques suivantes : • toutes les données reçues sur une connexion désynchronisée sont perdues. • les nouvelles demandes de réception sur une connexion désynchronisée sont immédiatement retournées (sans aucune donnée) avec une indication d’erreur « connexion désynchronisée ». • les émissions sont possibles sur une connexion désynchronisée. 2.2-6 Service de transfert de blocs de données Le service de transfert permet d’échanger des blocs de données (suite de N octets) sur une connexion établie entre une application distante et l’application PL7-3 de l’automate sur un port de service local donné. L’application PL7-3 a accès au service de transfert de blocs de données par deux OFBs : • TCPS : transfert d’un bloc de données vers une application distante, • TCPR : attente d’un bloc de données émis par une application distante. Dans les demandes de transfert, deux possibilités sont offertes à l’application PL7-3 pour identifier l’application distante : • par le seul paramètre : numéro de port local de l’automate (paramètre suffisant pour identifier une connexion TCP du coupleur). Le transfert est effectué si une connexion est établie sur ce port, quelle que soit la machine distante connectée à ce port, • par le couple de paramètres : numéro de port local et adresse IP de la machine distante. Le transfert est effectué si une connexion est établie sur ce port avec la machine distante spécifiée par l’application PL7-3. ___________________________________________________________________________ 28 Mise en œuvre logicielle AUTOMATE : adresse IP = IP_a Application PL7-3 2 Site distant adresse IP = IP_1 Coupleur TCP/IP Connexion TCP/IP établie SEND (IP_1, 5010, msg) Serveur du client C1 (port local 5010) C1 Client distant connecté au service A de l'automate IP_a par le port 5010 RCV (IP_1, 5010, buffer) Création du serveur Connexion rentrante Démon du service A (port local 5010) Les services de transfert de blocs de données, offerts à l’application PL7-3 de l’automate, sont les suivants : • OFB TCPS : demande d’émission vers un client distant d’un bloc de données dont la taille maximale est de 8 K octets. Une émission reste active tant que les deux conditions suivantes sont réalisées : - le tampon d’émission du point connexion émetteur (automate) est plein, - le tampon de réception du point de connexion destinataire est plein, c’est-à-dire si le destinataire ne consomme pas les données sur la connexion. • OFB TCPR : demande de réception d’un client distant d’un bloc de données dont la taille maximale est de 8 K octets. L’attente de réception est active tant que la connexion est présente et qu’aucun message complet n’est reçu sur cette connexion. Si nécessaire, il est du ressort de l’application PL7-3 d’utiliser un timer (câblé sur le signal RESET de l’OFB) pour annuler la demande en cours au bout d’un délai. Si la connexion TCP n’est pas établie avec l’application distante au moment de la demande de transfert de données, cette dernière est immédiatement refusée par le coupleur avec une indication d’erreur : connexion non établie. De même, si la connexion est fermée par l’application distante ou perdue, toutes les opérations en cours sur cette connexion sont retournées avec une indication d’erreur : « connexion non établie ». Remarque : Il faut noter que le transfert du bloc de données entre l’application automate et le coupleur se fait en plusieurs cycles automates. ___________________________________________________________________________ 29 Transferts multiples sur un même port. L’application PL7-3 a la possibilité d’activer en parallèle plusieurs demandes (OFB) d’émission et/ou de réception sur un même port de service, sans attendre le compte rendu des demandes précédentes. Le service de transfert offert par le coupleur garantit l’ordre d’émission ou de réception des messages en fonction de l’ordre de réception par le coupleur de l’activation des OFBs (et non pas sur l’ordre des fins de transfert de messages entre le coupleur et l’UC). Mais, si les activations de 2 OFBs (en émission ou en réception) pour un même port se font dans le même cycle automate, l’ordre est alors indéterminé. D’autre part, il n’y a aucune corrélation temporelle entre les émissions et les réceptions. Pour une même connexion, le canal en émission et le canal en réception sont indépendants. On donne en exemple les deux cas suivants : En émission Emission E1 (8 K o) port A Emission E2 (10 octets) port A CR E1 CR E2 Cycle Automate 2 cycles Transfert UC –> Coupleur Transfert en N cycles E1 E2 Emission sur connexion (port A) Le message de 10 octets ne double pas le message de 8 K octets dans l’interface UC/Coupleurs, mais les transferts sont effectués en parallèle dans la limite des capacités de l’interface matérielle UC/Coupleur. ___________________________________________________________________________ 30 Mise en œuvre logicielle 2 En réception Réception R1 Réception R2 port A port A CR CR R2 R1 Cycle Automate T = N cycles Transfert Coupleur –> UC T = 3 cycles Réception message 8 K o Réception sur connexion (port A) Réception message 700 octets Les transferts coupleur vers UC des messages reçus sont effectués en parallèle dans la limite des capacités de l’interface matérielle UC/Coupleur, mais les comptes-rendus de réception sont donnés à l’application PL7-3 dans l’ordre de réception des messages sur la connexion (décalé d’un cycle automate si nécessaire, comme pour le cas de l’exemple donné dans le schéma). Conseil de programmation Comme le montrent les exemples, il est déconseillé d’utiliser une même connexion (un même port) pour un service utilisant de gros messages (transfert de données/ paramètres) et pour un service utilisant de petits messages (contrôle/commande). Format des messages échangés entre le coupleur et application distante Une caractéristique importante de la communication sur une connexion TCP est l’aspect continu de l’information (« flot d’octets ») : le récepteur n’a pas la possibilité de retrouver la structure d’un message sans information et protocole particulier établi entre l’émetteur et le destinataire. Il a été choisi de structurer les messages échangés par le format suivant : 2 octets Longueur message = N N octets Bloc de Données de l’utilisateur (N-1) octets Caractère Fin de Message Au niveau de l'automate, les deux champs supplémentaires (longueur message et caractère fin de message) sont ajoutés (émission) ou supprimés (réception) par le coupleur TSX ETH 110. ___________________________________________________________________________ 31 Longueur message Ce champ spécifie le nombre total d’octets du message utile, constitué par les données utilisateur plus le caractère optionnel de fin de message. Il est défini comme une valeur signée sur 16 bits au format réseau. Il permet de coder des valeurs de 0 à 32 767 (32 K - 1). Il est conseillé d’utiliser les fonctions suivantes pour encoder/décoder le paramètre « longueur message » : htons() conversion host-to-network, short integer ntohs() conversion network-to-host, short integer Caractère “Fin de message” Ce champ sur 1 octet est un caractère optionnel défini par la configuration du coupleur, pour marquer la fin du message. Cette marque de fin est une information redondante avec le paramètre « longueur de message » qui est suffisant pour structurer le flot de données en messages. Son utilité est uniquement de contrôler en réception sur le coupleur la cohérence du message et d’éviter la propagation d’une erreur provoquée par une application distante. Traitement du caractère Fin de Message Quand l’option caractère « fin de message » est positionnée dans la configuration du service de messagerie, le coupleur TSX ETH 110 contrôle la validité des messages reçus pour toutes les connexions ouvertes. Si une erreur de caractère « fin de message » est détectée dans un message reçu, la demande de réception est retournée avec une indication d’erreur « Fin de message ». Puis, la connexion associée est déclarée désynchronisée avec les caractéristiques suivantes : • toutes les données reçues sur cette connexion sont perdues, • toutes nouvelles demandes de réception sur cette connexion, déclenchées par l’application automate, sont refusées avec une indication d’erreur “connexion désynchronisée”, • les demandes d’émission de blocs de données par l’application automate sont acceptées et traitées par le coupleur TSX ETH 110. La connexion doit être fermée par l'application. ___________________________________________________________________________ 32 Mise en œuvre logicielle 2 Protocole d’application à application Aucune contrainte n’est imposée sur le protocole d’échange sur une connexion TCP établie entre le client distant et l’application automate. Les échanges peuvent être définis comme : • • • • requête/réponse à l’initiative de l’application client, requête/réponse à l’initiative de l’application automate, bloc de données non sollicitées à l’initiative de l’application client, bloc de données non sollicitées à l’initiative de l’application automate. 2.3 Serveur UNI-TE local Le coupleur TSX ETH 110 ne supporte qu’un mini serveur UNI-TE local. La fonction du serveur UNI-TE est de retourner une réponse à toute requête UNI-TE issue de l’UC automate. Par contre il ne traite effectivement que les requêtes UNI-TE locales (destinées au coupleur) suivantes : • identification, • version protocole, • lecture configuration, • écriture configuration, • miroir, • status. Toutes les autres requêtes sont refusées par le coupleur TSX ETH 110. 2.4 Services X-WAY non supportés Le coupleur TSX ETH 110 est vu par le processeur comme un coupleur ETH 200. Cependant, le coupleur TSX ETH 110 ne supporte pas les fonctionnalités X-WAY : • le service de Mots Communs, • la communication avec l’OFB UNITE, • le service UNITE vers d’autres équipements connectés au réseau Ethernet. • la communication d’application à application, • le service télégrammes. Important : Lors de la configuration d’un coupleur TSX ETH 110, il est impératif d’inhiber l’activité des mots communs. ___________________________________________________________________________ 33 2.5 Cycle de scrutation automate Le synoptique ci-contre rappelle le cycle de la tâche maître de l’automate dans laquelle est prise en compte la présence du coupleur TSX ETH 110. Seules sont repérées les informations nécessaires à la bonne compréhension du fonctionnement du coupleur TSX ETH 110. 1 2 1 Prise en compte des bits et mots système et mise à jour de ceux-ci lorsqu’ils sont positionnés par le système. 2 Surveillance entre autres de la présence du coupleur TSX ETH 110 avec action éventuelle sur les bits défauts tels que SY10 ou Ixy,S. 3 Gestion Système • Mise à jour des bits et mots système • Surveillance automate • Traitement des requêtes terminal Acquisition des Entrées Prise en compte en mémoire de données : • Messages coupleurs intelligents • Messages 3 Ecriture de 4 messages maximum. 4 Exécution du programme utilisateur. 5 Emission vers le coupleur TSX ETH 110 de 4 messages maximum. 4 Traitement du programme Mise à jour des sorties 5 • Emission messages réseaux Important : Un bloc de données du service TCP (8 K octets max.) est échangé entre UC/coupleur par plusieurs messages de 240 octets. Chaque message du bloc de données est échangé par cycle automate. A chaque cycle de la tâche maître peuvent être traités, en émission et en réception, 4 messages maximum en pointe. La somme des messages en entrée et en sortie ne doit pas être supérieure à 200 messages seconde. Sur une seule connexion, 240 octets sont transférés par cycle. ___________________________________________________________________________ 34 Chapitre 33 Maintenance 3 Maintenance 3.1 Recherche de défauts 3.1-1 Généralités Sur la face avant des coupleurs TSX ETH 110 , sont implantés quatre voyants et deux afficheurs 7 segments. ETH 110 RUN DEF Ces éléments permettent d’avoir de nombreuses informations sur l’état de fonctionnement du coupleur et de sa connexion au réseau Ethernet TCP/IP. RX TX 3.1-2 Voyants Gestion du voyant RUN Ce voyant vert indique l’état général du coupleur. Il est allumé lorsque le coupleur est opérationnel et actif. Il est éteint dès que le coupleur est hors service. Ce voyant reste allumé à la fin des auto-tests (fonctionnement normal du coupleur). Il s'éteint si un défaut quelconque est décelé, empêchant le passage à l’état actif du coupleur. La gestion de ce voyant est matérielle. Son extinction correspond à la détection d’expiration du "chien de garde" (Watchdog), c’est-à-dire un passage à l’état hors service. Gestion du voyant DEF Ce voyant rouge indique (lorsqu’il est allumé ou clignotant), un défaut matériel ou logiciel sur le coupleur TSX ETH 110. Il s’allume brièvement lors de la mise sous tension, puis s’éteint dès le début du déroulement des auto-tests. Il clignote (toutes les secondes) tant que le coupleur TSX ETH 110 n’a pas été configuré correctement par l’application automate. Il s’allume en permanence dans les cas suivants : • un des auto-tests s’est terminé par une erreur. Le code de l’auto-test apparaît alors sur l’afficheur 7 segments, (voir chapitre "Déclenchement des tests"), • en cours de fonctionnement, lorsqu’un défaut permanent est détecté, • quand le bornier de raccordement au câble (TSX ETH ACC1) est déconnecté. La gestion de ce voyant est logicielle. Son allumage correspond à la détection par le logiciel interne du coupleur d’un défaut empêchant son fonctionnement correct. Il ne coïncide pas obligatoirement avec l’extinction du voyant RUN. ___________________________________________________________________________ 35 Gestion des voyants RX et TX Ces deux voyants jaunes indiquent que le coupleur TSX ETH 110 a détecté une activité en réception de données pour RX et en émission de données pour TX. A la mise sous tension ces voyants sont allumés puis s’éteignent au début des autotests. Leur gestion est logicielle. 3.1-3 Afficheurs Le coupleur TSX ETH 110 est muni de deux afficheurs 7 segments ainsi que d’un point lumineux. A la mise sous tension, des valeurs quelconques sont affichées, puis immédiatement éteintes. Lors des auto-tests, les afficheurs indiquent le numéro de l’auto-test en cours. Si un défaut est détecté, le code correspondant s’affiche et le voyant DEF s’allume. A la fin des auto-tests, si le coupleur fonctionne correctement, les afficheurs indiquent alternativement : • le numéro de réseau auquel est connecté le coupleur, avec un point lumineux en bas à droite, • le numéro de station sur le réseau considéré, le point lumineux étant alors éteint. En fonctionnement normal, les afficheurs indiquent l’adresse de la station sous la forme : numéro de "réseau•" et numéro de "station". Ces deux informations se succèdent cycliquement avec une période d’environ deux secondes. Cette séquence permet de diagnostiquer une configuration correcte en local (bon adressage des numéros de réseau et station dans le bornier TSX ETH ACC1). En bon fonctionnement, les afficheurs sont également utilisés pour signaler : • un changement d’état du coupleur : h1 Ré-initialisation du coupleur (passage en «non configuré») h2 puis h3: Exécution de la phase transitoire d’arrêt du service. Le coupleur était donc dans l’état «En Service» et repasse dans l’état «Non Configuré» • le traitement d’une demande de configuration : cF Réception d’une demande de configuration c0 cN Configuration correcte et acceptée Configuration refusée , avec N de 1 à E indiquant la cause du refus (voir bloc texte de configuration). Dès l’apparition d’un défaut (coupleur en fonctionnement normal), le voyant DEF s’allume et les afficheurs indiquent le code du défaut. ___________________________________________________________________________ 36 Maintenance 3 3.1-4 Recherche de défauts avec les voyants et afficheurs La conjonction des voyants et des afficheurs permet de détecter un certain nombre de défauts de fonctionnement, ainsi que leur cause. Le tableau ci-après indique les principaux défauts pouvant être détectés, ainsi que l’intervention à effectuer. Auparavant, il est recommandé de réinitialiser le coupleur (par exemple par une coupure secteur sur l’automate) pour vérifier si le défaut persiste. Symptômes RUN Causes probables Actions correctives • Voyants en panne • Alimentation en panne • Vérifier l'alimentation de la station • Remplacer le module • Défaut Auto-test (*) • Selon le type du défaut donné par les afficheurs DEF RUN DEF • Défaut permanent (*) • Absence de bornier (**) • Défaut caractérisé par son code sur afficheur • Unité centrale non connectée • Défaut permanent (*) • Mise en place du bornier • Selon le type du défaut donné par les afficheurs • Vérifier l'UC de l'automate DEF • Le coupleur est en attente de chargement d’une configuration par l’application automate • Procéder à l’exécution du bloc texte de chargement de la configuration du service de messagerie. RUN • Etat normal de la visualisation en cours de fonctionnement RUN DEF RUN DEF (*) code défaut sur afficheur, (**) affichage "Eb". ___________________________________________________________________________ 37 Liste des codes défauts (hors auto-tests) En cas de détection d’un défaut en cours de fonctionnement l’une des valeurs suivantes est visualisée sur les afficheurs « 7 segments » : Code défaut (en HEXA) Description Action 0x00 à 0x19 (*) Remplacer le coupleur Défaut système (pSos,pNA+,...) 0x20 à 0x4F Réservé 0x50 à 0xEF (*) Défaut application Contacter votre support technique hN (avec N de 1 à 3) Initialisation du coupleur ETH 110 Aucune (signalisation du coupleur) cN (ave N de 0 à F) Configuration du coupleur Aucune (signalisation du coupleur) 0x61 Défaut ressources mémoires Arrêt/marche de l'automate Contacter votre support technique 0xF1 Interruption ou exception parasite Si trop fréquent remplacer le coupleur 0xEb Absence du bornier Mettre le bornier en place 0xFa Flash Eprom à réinitialiser Remplacer le coupleur Pour ces valeurs, le code défaut est affiché en 5 étapes : • affichage de « AL » (pour alarmes) clignotant, • affichage du code clignotant (exemple 20) du module logiciel en défaut, • puis affichage de 3 codes complémentaires (réservés au support technique uniquement). Mise à part les modules systèmes (codes de 0 à 10), le premier code indique le module logiciel en défaut : 0x50 Module d'initilisation 0x60 Module Serveur TCP/IP (communication sur les connexions TCP/IP), 0x70 Module Interface OFB (communication UC/coupleur), 0x80 Driver SMU, 0x90 Module Utilitaire, 0xA0 Module Série 7, 0xB0 Services communs (communication, inter-tâches, gestion mémoire, ...), 0xC0 Loader des FLASH EPROMs, 0xE0 Fonctions spécifiques Board, 0xEF Interruptions d'exceptions (division par zéro, défaut adresse,...) 3.2 Déclenchement des tests Le coupleur TSX ETH 110 est doté d’un système permettant l’exécution de tests spécifiques destinés à la maintenance. Ces tests sont sélectionnables à partir de la valeur indiquée par les 4 roues codeuses du bornier TSX ETH ACC1. A la mise sous tension du coupleur, la valeur codée sur le bornier est lue. Si cette valeur correspond à un numéro de réseau et de station, le coupleur déclenche la séquence d’auto-tests et passe en fonctionnement normal actif en cas de succès. Si cette valeur indique un test spécifique (liste page suivante), le coupleur déclenche le test correspondant. ___________________________________________________________________________ 38 Maintenance 3 En cas de fonctionnement correct, il est rebouclé en permanence. Si un défaut est détecté lors du test, le déroulement est stoppé, le voyant DEF s’allume et les afficheurs indiquent un numéro de test (voir liste ci-après). stat X F net F Ces tests se déroulent après positionnement des roues codeuses "STAT" aux valeurs indiquées ci-après. Les roues codeuses "NET" doivent être mises à la valeur H’FF’. X Codage des tests spécifiques Codage "STAT" FF FE FD FC FB FA F9 F8 F7 F6 F5 F4 F3 F2 F1 F0 EF EE ED EC EB - E1 E0 DF - 80 7F - 40 3F - 00 Test déroulé auto-tests permanent test des périphériques du µP 80386 SX test RAM 448 Ko réservé test registre bus automate test RAM interface bus automate 32 Ko test ROM checksum 128 Ko test type ROM test voyants test afficheurs 7 segments test status test interruption temporisateurs réservé test interruption bus automate réservé test interruption CSMA/CD Bus Controller test init, stop et start CSMA/CD Bus Controller réservé test CSMA/CD Bus Controller mode loopback effacement - écriture flash Eprom réservés test réseau permanent réservé réservé numéro de station Codes défauts En cas de détection d'un défaut lors du déroulement d’un test spécifique, son code est visualisé en mode clignotant sur les afficheurs. ___________________________________________________________________________ 39 ___________________________________________________________________________ 40 Chapitre 44 Spécification techniques 4 Spécifications techniques 4.1 Caractéristiques d’utilisation du transfert par l’application PL7-3 Nombre de ports TCP de service Le coupleur est dimensionné pour 16 ports de service TCP et donc 16 connexions. Nombre et capacités des transactions UC/coupleur Les messages en émission ou réception sont bufférisés dans le coupleur dans des blocs mémoires de 240 octets. Un message de 8 K octets occupe donc 34 blocs. Sur une seule connexion, seulement 240 octets sont transférés par cycle. Le coupleur est dimensionné : En émission : 32 transactions d’émission en parallèle (c’est-à-dire 32 OFBs actifs en parallèle). 544 blocs mémoire. (131,75 Ko) c’est-à-dire 16 messages de 8 Ko en parallèle. Demandes PL-7 pour émission de messages Blocs libres pour émission Réservation de N blocs pour transfert message Libération d'un bloc mémoire au fur et à mesure de l'émission d'un message TRANSFERT UC/COUPLEUR CR Transaction Libre pour émission Messages en attente d'émission Emission d'un message sur connexion Important Il n’y pas de contrôle sur le partage de ressources entre les différentes connexions. Si l’application PL7-3 soumet en même temps 16 demandes d’émissions de 8 K octets, il n’y a plus de ressources disponibles pour accepter d’autres demandes. ___________________________________________________________________________ 41 Sur un même port E1 E2 E3 E4 C4 C1 C2 C3 Cycles Automate Transfert de données de l'UC vers le coupleur Emission sur connexions 32transactionsenémission 544blocspourmessages En réception : 32 transactions de réception en parallèle (c’est-à-dire 32 OFBs actifs en parallèle). 544 blocs mémoire (131,75 Ko) c’est-à-dire 16 messages de 8 Ko en parallèle. Demandes PL-7 pour réception de messages Blocs libres pourréception Libération d'un bloc au fur et à mesure TRANSFERT du transfert UC/COUPLEUR d'un message Blocs mémoires en attente de transfert vers l'UC Réservation bloquante de 1 bloc mémoire CREATION TRANSACTION CR Transaction Libre pour réception Demandes de réception en attente pour une connexion Réception de données sur une connexion Remarque La réception sur une connexion TCP se bloque s’il n’y a plus de blocs mémoire disponible, cas où il y a un pic de charge dans les transferts coupleur vers UC. Le coupleur transfère 4 blocs de données vers l’UC par cycle automate. ___________________________________________________________________________ 42 Spécification techniques 4 Tampon utilisateur associé à l’OFB Lors des échanges UC/coupleur, l’OFB d’émission ou de réception utilise directement le tampon donné par l’utilisateur (il n’y a pas de recopie des données utilisateur dans un buffer système). Donc, tant que l’OFB est actif (bit READY à 0), le programme PL7-3 ne doit en aucun cas modifier le contenu du tampon associé à cet OFB. 4.2 Performances Les performances de transfert de blocs de données par le coupleur TCP/IP sont caractérisées par le protocole d’échange entre le coupleur et l’UC de l’automate. Pour un seul transfert actif (en émission ou réception), les performances sont, avec un cycle automate à 60 ms : • le transfert du plus petit message en 2 cycles d’automate (120 ms), • le transfert d’un message de 8 K octets en 35 (1 + 34) cycles automate (2,1 s.). De plus, sur la première utilisation d’un OFB (en émission ou en réception), il est nécessaire d’ajouter 2 cycles automate pour le contrôle de l’identification du module. Ces performances sont maintenues jusqu’à 4 transferts actifs en parallèle. ___________________________________________________________________________ 43 ___________________________________________________________________________ 44 Chapitre 55 Architecture 5 Architecture 5.1 Architecture du coupleur 5.1-1 Architecture logicielle La figure suivante représente l’architecture logicielle et les différentes fonctions du coupleur TSX ETH 110 : UC AUTOMATE Configuration Coupleur (Bloc TXT) Fonction ECHO (Bloc TXT) Interface Bloc TXT CPL (standard) Emission/Réception de blocs de données données OFB TCP OFB / Coupleur Composant SMU BOOT & AUTOTESTS (en PROM) Driver SMU PSOS Porte 5 Voie = 48 SMAP SERIE 7 OFBINTF Conf SERV_TCP ROOT 386 SX (mode protégé) Interface Socket PNA+ Flash EPROM Driver (Network Interface) Composant LANCE COUPLEUR TSX ETH 110 ___________________________________________________________________________ 45 pSOS C’est le noyau temps réel qui permet de gérer : • l’exécution des tâches dans un environnement multitâche, • la communication inter-tâches par des mécanismes de boîtes à lettres, • l’allocation et la libération de la mémoire, • les interruptions. DRIVER SMU Ce service assure la gestion des communications avec l’UC automate. Il est structuré principalement en un driver du composant SMU et une interface d’accès au SMU accessible aux services application. SMAP Ce service (System Management Access Protocol) permet la gestion de toutes les fonctions réseau distribuées dans le coupleur. SERIE-7 Le rôle de ce module ne traite qu’en local les requêtes UNITE destinées à la fonction diagnostic : • écriture/lecture de configuration standard, • identification de coupleur, • version protocole, • miroir. Il traite également les requêtes spécifiques TCP par bloc texte : • écriture/lecture de configuration TCP, • init, • écho (vers ICMP). OBFINTF Ce service assure la gestion des transactions associées aux requêtes d’émission/ réception de blocs de données issues des OFB TCP de l’UC automate. Le service assure les fonctions suivantes : • le protocole de transfert de bloc de données entre le coupleur et l’UC, • la gestion des demandes d’émissions ou de réception de messages sur connexions TCP-IP, exécutées par le service SRV_TCP, • la gestion des ressources mémoires. ___________________________________________________________________________ 46 Architecture 5 SRV_TCP Ce service assure la gestion d’établissement de connexions TCP en mode serveur, et les transferts de messages en émission/réception sur les connexions TCP-IP. pNA+ Les services de communications TCP/IP sont fournis par le composant logiciel pNA+ : implémentation des couches IP, TCP, UDP, ARP, ICMP pour le système d’exploitation temps réel pSOS+. Driver Ethernet LANCE 79 90 (Network Interface) Ce service assure la gestion du composant matériel LANCE pour la communication des trames MAC (Medium Acces Control) sur le réseau ETHERNET. Il supporte en réception : • les trames Ethernet Version II (DA, SA, EtherType, Data), • les trames 802.3 SNAP (DA, SA, Length, DSAP, SSAP, Control, OUI, EtherType). En émission, il transforme les trames de pNA+ , reçues au format Ethernet Version II en trame 802.3 SNAP, en fonction d’un paramètre de configuration. ROOT Cette fonction comporte deux composantes principales : • lancement de tout le logiciel TSX ETH 110 dans le but de terminer les auto-tests, • synchronisation du passage de ce logiciel dans sa phase opérationnelle suite à la détection du bon fonctionnement. Flash EPROM Les flash Eprom mémorisent le logiciel du coupleur TSX ETH 110. Elles sont téléchargées en usine. ___________________________________________________________________________ 47 5.1-2 Architecture matérielle Le coupleur TSX ETH 110 est architecturé autour du synoptique suivant : LANCE BUS M V T U SUB-D 15 PTS Interface AUI SIA CARTE FILLE L E D S M U P A L A F F I C SRAM B O R N PIC PIT PAL gestion EPROM PAL décodage 1 Mo P A L 386SX 16MHz DRAM 2 Mo Consommation du 5V : 2,0 A typique, 2,4 A maximum. Consommation du 12 Vp : 500 mA typique. EPROM 256 Ko 256 Ko ___________________________________________________________________________ 48 Chapitre Bloc texte 66 6 Blocs texte 6.1 Généralité Un bloc texte de type coupleur permet à l’application automate de réaliser sur le coupleur TSX ETH 110, les opérations suivantes : • la configuration de la communication TCP/IP et du service de messagerie privatif, • le test d’une machine distante (fonction ECHO). • l’initialisation du coupleur (fonction INIT), 6.2 Configuration du coupleur 6.2-1 Principe Toutes les informations de configuration nécessaires au fonctionnement du coupleur sont transmises par l’application PL7-3 en exécutant un bloc fonction texte de type coupleur. Le coupleur TSX ETH 110 passe dans l’état «non configuré» sur les événements suivants : • une reprise secteur ou un coup de verrou cartouche, • une reprise à froid, • une reprise à chaud, • un chargement d’une application, • une action STOP de l’application PL7-3 en cours d’exécution, • un signal RESET appliqué à l’OFB TCPM, • un envoi du bloc texte INIT (déconseillé voir paragraphe 'Arrêt du service sur le coupleur). Pour passer le coupleur dans l’état «En Service» (opérationnel), l’application PL7-3 doit effectuer l’envoi de la requête écriture configuration. Il est possible de déclencher la procédure de configuration du coupleur TSX ETH 110 en fonction de l’état du coupleur qui est indiqué par le bit RUN de l’OFB TCPM de gestion de module (par exemple sur le front montant du bit). ___________________________________________________________________________ 49 Les afficheurs 7 segments sont utilisés pour signaler le traitement d’une demande de configuration par le coupleur : cF c0 cN 1 2 3 4 5 6 7 8 9 A C D E Réception d’une demande de configuration Configuration correcte et acceptée Configuration refusée , avec N de 1 à E, indiquant la cause du refus: La longueur de la table est inférieure à la longueur minimale. Le nombre de machines distantes n’est pas dans l’intervalle 1 à 8. Le nombre de ports n’est pas dans l’intervalle 1 à 16. Le masque subnet est incorrect. L’adresse IP locale est nulle ou n’appartient pas aux classes A, B ou C. L’adresse gateway n’appartient pas aux classes A, B ou C. La longueur de la table est incorrecte en fonction du nombre de ports. Le numéro d’un port de la liste est inférieur au numéro 5010. Un port est défini deux fois dans la liste. L’adresse IP d’une machine distante est nulle ou n’appartient pas aux classes A, B ou C. La configuration du stack TCP/IP est incorrecte. La configuration interne du coupleur est incorrecte. Le coupleur est déjà configuré (dans l’état «En Service»). 6.2-2 Définitions de la table de configuration La structure de la table de configuration à transmettre au coupleur est la suivante. Elle est constituée par 46 mots de 16 bits. Cette table peut être définie dans l’automate en zone mémoire W ou en zone CW. Wi Wi + 2 Wi + 4 Wi + 6 IPl NM GW FmtEth Wi + 7 Wi + 11 Wi + 12 Wi + 13 Wi + 14 Wi + 16 . Wi + 28 Wi + 30 Wi + 31 . Wi + 45 NS NP CFM IP1 IP2 . IP8 P1 P2 . P16 Adresse IP locale Network Mask Adresse IP de la gateway par défaut Format des trames Ethernet en émission 4 mots réservés Nombre effectif de machines distantes Nombre effectif de ports locaux Caractère Fin de Message Adresse IP de machine distante n° 1 . Adresse IP de machine distante n° 8 Numéro de port local n° 1 . Numéro de port local n° 16 ___________________________________________________________________________ 50 Bloc texte 6 6.2-3 Définition des paramètres de configuration IPl - Adresse IP locale Ce paramètre définit sur 4 octets l’adresse IP locale de l’automate. NM - Network Mask Ce paramètre définit sur 4 octets le masque de sous-adressage à utiliser pour le point de connexion de l’automate au réseau physique Ethernet. GW - Adresse IP de la gateway par défaut Ce paramètre définit sur 4 octets l’adresse IP de la gateway par défaut. FmtEth- Format des trames Ethernet en émission Ce paramètre définit le format des trames Ethernet en émission : • égal à 0 : format Ethernet Version II • différent de 0 : format 802.2 + SNAP. NS - Nombre effectif de machines distantes Ce paramètre, compris entre 1 et 8 inclus, définit les NS premiers éléments de la table des adresses IP des machines distantes à utiliser pour la configuration. NP - Nombres effectifs de ports locaux Ce paramètre, compris entre 1 et 16 inclus, définit les NP premiers éléments de la table des numéros de port locaux à utiliser pour la configuration. CFM- Caractère Fin de Message Ce paramètre définit la présence et la valeur d’un caractère Fin de Message à utiliser dans les échanges de messages. CFM = 0 : pas de caractère fin de message CFM de 0x01 à 0xFF : valeur du caractère fin de message ajouter par le coupleur lors d’une émission contrôler et supprimer par le coupleur lors d’une réception. IPi - Adresse IP de la machine distante n° i Tableau d’adresses IP sur 4 octets de 8 machines distantes autorisées à se connecter à l’automate. Pour une configuration donnée, seules les NS premières adresses seront utilisées. Pi - Numéro de port local n° i Tableau de 16 ports locaux de service à écouter. (Valeur signée supérieure ou égale à 5010). Pour une configuration donnée, seuls les NP premiers numéros seront utilisés. ___________________________________________________________________________ 51 6.2-4 Chargement de la configuration La configuration se charge à partir d’un bloc texte de type coupleur qui envoie au coupleur la table des paramètres définis précédemment et qui reçoit en retour un compte-rendu. Sur coupure secteur, il est indispensable d’effectuer ce chargement après les auto-tests, lorsque le coupleur est disponible. Initialisation du bloc texte Le programme utilisateur PL7-3 doit : • initialiser la table d ’émission, • initialiser les paramètres du bloc texte : - TXTi,M : adresse du coupleur dans le rack principal , suivie de 00 (n° de voie), - TXTi,C : code requête = H’0040', - TXTi,L : longueur de la table d’émission = 62 octets (1 port) à 96 octets (16 ports), • activer le bloc texte en EXCHG (Requête/Réponse). La longueur de la table d’émission peut être positionnée en fonction du nombre de ports effectivement utilisés. Elle peut être plus grande que 92 octets. Analyse du compte-rendu Le mot TXTi,S comprend le nombre d’octets reçus dans la table de réception en cas d’échange correct (c.à.d 0). En cas d’échange erroné, TXTi,S indique une erreur dans la procédure d’échange entre le programme automate (UC) et le coupleur ; il prend les valeurs suivantes : 1: échange annulé par RESET, 2: erreur longueur de la table d’émission, 3: échange erroné, 4: coupleur en défaut, 5: erreurs de paramètres ou trop de TXT actifs, 6: message reçu supérieur à la longueur prévue, 10 : mauvais adressage du bloc texte indirect. Le compte-rendu TXTi,V n’est significatif que si l’échange a été correct (TXTi,D = 1 et TXTi,E = 0). Il indique le compte-rendu effectif de la configuration par le coupleur. Il prend alors l’une des valeurs suivantes : H’00FE’ : configuration correcte, H’00FD’ : configuration incorrecte rejetée par le coupleur. Le coupleur n’est pas opérationnel et reste dans l’état « non configuré ». ___________________________________________________________________________ 52 Bloc texte 6.3 6 Test d’une machine distante (écho) 6.3-1 Principe La requête ECHO permet de tester la présence d’une machine distante par une demande/réponse ECHO du protocole ICMP. 6.3-2 Fonctionnement L’action est effectuée par un bloc texte de type coupleur, câblé en EXCHG. Le programme utilisateur PL7-3 doit : • initialiser la table d ’émission, • initialiser les paramètres du bloc texte : - TXTi,M : adresse du coupleur dans le rack principal suivie de 00, - TXTi,C : code requête = H’00FA’ - TXTi,L : longueur de la table d’émission = 4 + X octets, • activer le bloc texte en EXCHG (Requête/Réponse). Table d’émission : Wi Wi + 2 Adresse IP de la machine distante Suite d’octets Wi + (3 + X/2) Analyse du compte-rendu Le compte-rendu TXTi,V n’est significatif que si l’échange a été correct (TXTi,D = 1 et TXTi,E = 0). Il prend alors l’une des valeurs suivantes : • ’00FE’ : compte-rendu positif, • H’0001' : compte-rendu négatif . La machine distante ne répond pas dans le délai, • H’0002' : compte-rendu négatif . La machine distante a répondu mais avec une erreur de message (longueur ou contenu). Le mot TXTi,S indique une erreur dans la procédure d’échange (TXTi,E = 1). ___________________________________________________________________________ 53 6.4 Arrêt du service sur le coupleur 6.4-1 Principe La requête INIT permet de passer le coupleur TCP/IP de l’état « En Service » à l’état « non configuré», entraînant les actions suivantes : • toutes les opérations en cours (demande d’émission et de réception) sont annulées sans aucune indication vers les OFBs de transfert, • tous les démons en attente de connexions rentrantes sont désactivés, • toutes les connexions ouvertes sont fermées. Attention : Cette requête INIT n’a aucune influence sur l’état du bit RUN de l’OFB TCPM. D’autre part, l’application doit reseter tous les OFBs de transfert (absence d’indication vers les OFBs) avant de relancer une configuration du coupleur, puis une communication sur les services TCP/IP. Note: L’utilisation de cette requête est déconseillée. Elle est conservée pour garder une compatibilité avec des applications PL7-3 existante. Mais dans ce cas, il est conseillé d’ajouter, dans l’application existante, un RESET sur l’OFB TCPM pour prendre en compte les améliorations apportées. 6.4-2 Fonctionnement L’action est effectuée par d’un bloc texte de type coupleur, câblé en EXCHG. Le programme utilisateur PL7-3 doit : • initialiser les paramètres du bloc texte : TXTi,M : adresse du coupleur suivie de 00, TXTi,C : code requête = H’0033’ TXTi,L : longueur de la table d’émission = 0 octets. • activer le bloc texte en EXCHG (Requête/Réponse). Le compte rendu TXTi,V n’est significatif que si l’échange a été correct (TXTi,D = 1 et TXTi,E = 0). Il prend alors l’une des valeurs suivantes : H’00FE’ : compte rendu positif. H’00FD’: compte rendu négatif. Le mot TXTi,S indique une erreur dans la procédure d’échange (TXTi,E = 1) ___________________________________________________________________________ 54 Chapitre Blocs fonctions TCP 77 7 Blocs fonctions TCP 7.1 Généralités 7.1-1 Présentation des OFBs du produit PL7-TCP La bibliothèques des OFBs du produit PL7-TCP se compose: • d’un OFB TCPM de gestion du module ETH110, • de deux OFBs de services qui permettent le transfert de bloc de données entre l’application automate et une application distante sur une connexion TCP/IP établie à l’initiative de l’application distante. L’application distante est exécutée sur un équipement supportant le profil de communication TCP/IP. Les deux OFB de transferts sur connexion TCP/IP sont : • TCPS : émission d’un bloc de données vers une application distante • TCPR : réception d’un bloc de données d’une application distante. La taille maximale du bloc de données est de 8k octets. 7.1-2 Installations des OFBs Les OFBs TCP doivent être installés sur le disque dur de la station de travail pour pouvoir être utilisés. 7.1-3 Configuration des OFBs Avant toute utilisation d’un bloc fonction OFB dans un programme application, il est nécessaire de le configurer. Cette opération est réalisée au moyen de l’outil PL7-3. La configuration consiste à : • déclarer le type d’OFB, afin de charger le code exécutable dans l’espace programme OFB de la mémoire, • définir le nombre d’OFB utilisés, afin de définir les espaces « constantes OFB » et « données OFB » de la mémoire. Pour cela vous devez : • sélectionner l'outil PL7-3 et, à partir de l'écran principal, choisir le mode opératoire : 1 - CONFIGURATION, • à partir de l'écran CHOIX DES MODES DE CONFIGURATION, choisir la rubrique 5 BLOCS FONCTIONS OPTIONNELS. L'écran CONFIGURATION DES BLOCS FONCTIONS OPTIONNELS visualise la liste des types d'OFB déjà déclarés, ainsi que le nombre d'OFB par type. ___________________________________________________________________________ 55 • si l'OFB n'est pas présent dans cette liste, appuyer sur la touche dynamique [NEW OFB]. Un nouvel écran permet alors de visualiser la liste des OFB disponibles sur disque dur. Utiliser les commandes [PREV FAM] et [NEXT FAM] pour se positionner sur la famille TCP et la commande [INS] pour choisir le type d'OFB nécessaire pour l'application, • après validation des nouveaux choix, l'écran CONFIGURATION DES BLOCS FONCTIONNELS OPTIONNELS est à nouveau visualisé. La commande [MODIFY] permet alors de définir pour le type déclaré, le nombre d'OFB à utiliser. Pour plus d'informations se reporter à la documentation " Modes opératoires PL7-3 ". 7.1-4 Utilisation des OFBs Pour mettre en œuvre un bloc fonction OFB TCP, il est nécessaire de réaliser les étapes suivantes : • configurer le coupleur TSX ETH 110 comme un coupleur TSX ETH 200, • configurer et programmer un bloc texte de configuration du coupleur avec l’outil PL7-3, • configurer et programmer l’OFB avec l’outil PL7-3. La programmation de chaque bloc fonction est détaillée ci-après. ___________________________________________________________________________ 56 Blocs fonctions TCP 7.2 7 L’OFB TCPM : gestion du module TSX ETH 110 7.2-1 Fonction Le bloc fonction TCPM permet de contrôler l’état du module TSX ETH 110 grâce à son bit de sortie RUN indiquant que le module est initialisé correctement. Cet OFB , qui doit être appelé au moins une fois dans l’application PL7-3, est activé principalement sur les événements système suivant : • reprise à chaud, • reprise à froid , • chargement d’une application dans l’automate, • stop de l’application PL7-3 en cours d’exécution, Cet OFB offre également un bit d’entrée RESET pour effectuer une ré-initialistion du coupleur TSX ETH 110, à l’initiative de l’application PL7-3. Il faut noter que le bit SY0 a le même rôle que le bit RESET de l’OFB. L’OFB TCPM effectue les actions suivantes : • le contrôle d’identification du module, si le module n’est pas connu par l’OFB (au démarrage, sur reprise, ..) • le contrôle de l’état matériel du module (notifié par le système), à tous les cycles (quand celui a été identifié comme un module TSX ETH 110 par l’OFB TCPM). • l’envoi vers le module ETH110 d’une requête d’initialisation, avec attente de réponse, sur les événements suivants: chargement, reprise à chaud, RESET • l’envoi vers le module ETH110 d’une requête d’initialisation, sans attente de réponse, sur un passage en STOP de l’application PL7-3 Les afficheurs 7 segments sont utilisés pour signaler une ré-initialisation du coupleur, avec éventuellement l’arrêt du service : h1 : ré-initialisation du coupleur h2, puis h3 : pendant l’exécution de la phase transitoire d’arrêt du service (fermeture des connexions , ..). Le coupleur était donc dans l’état «En Service» et repasse dans l’état «Non Configuré» Remarque importante : Les OFBs TCPS et TCPR de transfert de données scrutent l’état du module TSX ETH 110, à travers le bit RUN de l’OFB TCPM. Sur une ré-initialisation du module TSX ETH 110 par l’OFB TCPM, les OFBs TCPS et TCPR sont ré-initialisés automatiquement et immédiatement (dans le même cycle) sans aucun échange avec le module TSX ETH110. ___________________________________________________________________________ 57 7.2-2 Interface PL7-3 TCPM0 Sorties Entrées RESET : bit Données Internes Publiques Constants MODULE ERROR : bit RUN : bit START : bit STATE : word STATUS : word : word Constante Paramètres Type MODULE Word Accès Description Cette constante indique l’emplacement du coupleur dans le rack principal. Il est compris entre 1 et 7. (L’emplacement 0 n’est pas possible). Par défaut, MODULE = 1. Paramètres d’entrées Paramètres Type Accès Description RESET bit (3) La mise à l’état 1 provoque une ré-initialisation du coupleur à l’emplacement défini par la constante MODULE. Par défaut RESET = 0. Paramètres de sortie Paramètres Type Accès Description ERROR bit (2) Ce bit de sortie passe à 1 si une erreur est détectée lors des échanges avec le coupleur. Le mot STATUS indique alors le type de l’erreur qui s’est produite. RUN bit (2) Ce bit de sortie passe à l’état 1 quand le coupleur est ré-initialisé correctement (dans l’état «non configuré»). Sur un front montant de ce bit, l’application PL7-3 peut lancer une demande de configuration du module TSX ETH110 par bloc texte. Il est à 0 quand le coupleur n’est pas dans un des états suivants : «Non Configuré» ou «En Service» (ré-initialisation en cours, mauvaise configuration matérielle, module Hors Service, ..) START bit (2) Ce bit de sortie passe uniquement à 0 lors d’une action STOP de l’automate. Il repassera à 1 à la fin du premier cycle d’exécution suite à une action RUN. (Il n’a aucune dépendance avec l’état du module TSX ETH110. Il permet de détecter un passage en STOP/RUN de l’application PL7-3). ___________________________________________________________________________ 58 Blocs fonctions TCP 7 Paramètres internes Paramètres Type Accès Description State mot (2) Ce mot indique l’état de l’OFB : 1 : OK. Etat normal. Le coupleur est correctement initialisé. 2 : CLEAR. L’OFB est dans la phase d’initialisation interne. 3 : IDENT. L’OFB est dans la phase d’identification du coupleur. 4 : INIT. L’OFB est dans la phase d’initialisation du coupleur. 5 : RESET. Etat transitoire. UN RESET a été demandé par l’application. STATUS mot (2) Ce mot est significatif uniquement si le bit de sortie ERROR (échange erroné) est à l’état 1. Il indique le code d’erreur produite lors de l’échange. (Chaque bit du mot positionné à 1 indique une erreur) (2) Lecture par programme et par réglage . (3) Lecture par programme et par réglage. Ecriture par réglage. Donnée interne STATUS Bit Signification Action corrective Bit 0 = 1 Le module est absent Vérifier la valeur utilisée pour le paramètre d’entrée MODULE de l’OFB. Vérifier la configuration matérielle de l’automate. Bit 1 = 1 Le module est hors service Vérifier la configuration matérielle de l’automate. Bit 2 = 1 Le type du module indiqué par le système est incorrect Vérifier la valeur utilisée pour le paramètre d’entrée MODULE de l’OFB. Vérifier la configuration matérielle de l’automate Bit 3 = 1 Le module a répondu à la requête d’identification avec une réponse non attendue Vérifier la valeur utilisée pour le paramètre d’entrée MODULE de l’OFB. Vérifier la configuration matérielle de l’automate. Bit 12 = 1 Erreur interne dans l’OFB. (Ne doit jamais se produire) Bit 13 = 1 Time-out dans l’échange de communication avec le coupleur Vérifier la configuration et/ou l’état du coupleur. Bit 14 = 1 Erreur de communication. L’échange avec le coupleur a échoué Vérifier le paramètre MODULE. Vérifier la configuration et/ou l’état du coupleur. Bit 15 = 1 Erreur système. Le bloc fonction manque de ressources système pour pouvoir s'exécuter Diminuer le nombre de blocs fonctions (toute familles confondues) ___________________________________________________________________________ 59 7.2-3 Programmation de l'OFB TCPM Exemple de programmation < - - -TRAITER SYO et SY1 Note: Sur SY0 ou SY1 , il y a une re-initialisation automatique du coupleur ETH110 et des OFBs TCPR et TCPS, il n’est pas nécessaire de lancer un RESET sur l’OFB TCPM ! IF SY0+SY1 THEN Reset < - - -Re-actualisation des ETH110 < - - -ET RE-INITIALISATION PAR LE BIT B_HALT. ! EXEC B_halt; bits DE .... d'état LA du coupleur COMMUNICATION TCPM0(B_halt=>B_err,B_run,B_start); RESET TCP-IP B_halt Note: Le front montant du bit B_run indique un passage du coupleur ETH110 dans l’état opérationnel, non-configuré. L’application doit envoyer par bloc texte la configuration. Le front montant du bit B_start indique un passage de STOP à RUN de l’application PL73 quel que soit l’état du coupleur ETH110; le bit monte avec un retard d’un cycle automate <--!L10 ! INITIALISATION : CALL SR0 DE l’APPLICATION < - - -CONFIGURATION DU COUPLEUR ETH110 !L20 : < - - - Le coupleur ne tourne pas, arrêter éventuellement la conf. en cours ! IF NOT TCPM0,RUN THEN RESET Cnf_run < - - - Le coupleur passe en faut le re-configurer ! IF RE(B_run)THEN SET < - - -Execution de la ! IF Cnf_run THEN RUN (front montant) et il Cnf_run configuration CALL SR1 par bloc texte ___________________________________________________________________________ 60 Blocs fonctions TCP < - - -TRAITEMENT DES !L30 : ! CALL SR2 < - - -RECEPTION !L40 : ! CALL < - - -EMISSION !L50 : ! CALL !L100 !EOP sur RESET OFB OFBs TCPR et 7 TCPS TCPR SR4 sur OFB TCPS SR5 : ___________________________________________________________________________ 61 7.3 Les OFBs de services TCP 7.3-1 Rappels sur la conception d’une application Une station TSX qui utilise les services de messagerie privatifs pour communiquer avec d’autres équipements informatiques, via le coupleur TSX ETH 110, est considérée dans XTEL comme une Application Locale qui établit des échanges avec une Application Distante. Un équipement informatique peut supporter plusieurs Applications Distantes. En exploitation, pour chaque Application Distante, une connexion TCP devra être ouverte sur un port de service TCP du coupleur TSX ETH 110. L’ouverture de la connexion est à l’initiative de l’Application Distante. Il n’y a qu’une seule connexion par port de service TCP supporté par le coupleur TSX ETH 110. Les connexions TCP sont autant de canaux de communication via lesquels des blocs de données seront échangés entre l’Application Locale et des Applications Distantes. L’application Locale utilise des OFBs TCP pour déclencher des échanges en émission et en réception de blocs de données avec l’Application Distante. Les échanges ne sont possibles que si la connexion est déjà établie par l’Application Distante. Dans les demandes de transfert, deux possibilités sont offertes à l’application PL7-3 pour identifier l’application distante : • par le seul paramètre : numéro de port local de l’automate (paramètre suffisant pour identifier une connexion TCP du coupleur). Le transfert sera effectué si une connexion est établie sur ce port, quelle que soit la machine distante connectée à ce port, • par le couple de paramètres : numéro de port local et adresse IP de la machine distante. Le transfert sera effectué si une connexion est établie sur ce port avec la machine distante spécifiée par l’application PL7-3. ___________________________________________________________________________ 62 Blocs fonctions TCP 7 AUTOMATE Application Locale Bloc de données OFBS Send Bloc de données OFBR Receive Coupleur TSX ETH 110 Ports de Service (16 max.) Connexions TCP Machine A Application Distante Application Distante Machine B Application Distante Important Le RESET sur un OFB TCP (en émission ou en réception) en cours d’exécution provoque la fermeture de la connexion TCP associée, ainsi que l’annulation de tous les échanges en cours sur cette connexion. Pour une bonne gestion de la signalisation de fermeture de connexion initialisée par l'application distante, il est conseillé de mettre dans l'application PL7-3, un OFB systématiquement en réception sur la connexion. 7.3-2 Programmation des OFBs Ce sous-chapitre présente un certain nombre de caractéristiques communes aux deux OFBs TCP, puis les principes de leur mise en œuvre. On y décrit, en particulier, les principes de l’interfaçage avec les données PL7-3. Les deux OFBs sont décrits en détail, dans les sous-chapitres suivants. Le status, commun aux deux OFBs, est décrit en détail dans un sous-chapitre particulier. ___________________________________________________________________________ 63 7.3-3 Caractéristiques communes à tous les OFBs TCP a. Comme tous les blocs fonction de communication, les blocs fonction TCP s'exécutent sur plusieurs cycles automate. b. L'appel non entretenu L'exécution des OFBs est entretenue implicitement par le système, ce qui signifie qu'il suffit de ne programmer que le déclenchement du bloc. Par exemple, en langage littéral, l'appel sera : ! IF NOT B0 THEN EXEC OFBi (. . . =>. . .); SET B0 avec les avantages suivants : • le passage des paramètres n'est effectué qu'une seule fois, ce qui permet un important gain de performance, • la programmation est simplifiée : le programmeur n'a pas à entretenir l'appel de l'OFB tandis que l'exécution n'est pas terminée. En contre partie, il apparaît que les paramètres de sortie sont sans objet, puisque les variables qui seraient câblées ne seraient pas rafraîchies. Par conséquent, les sorties sont en fait des données internes publiques qui sont interprétées comme des résultats. Une programmation correcte est du type : ! ! ! ! IF NOT B0 THEN EXEC OFBi (. . . =>. . .); SET B0 <Attente> IF NOT OFBi,READY THEN JUMP L10 Note Les OFBs disposent tout de même d'un paramètre de sortie de type BIT, le bit ERROR utilisé pour le diagnostic ; ce bit ne doit pas être câblé. ERROR doit être utilisé comme un paramètre interne de résultat. ___________________________________________________________________________ 64 Blocs fonctions TCP 7 c. La caractéristique DIAGNOSTIC Les OFBs peuvent être utilisés par l'outil APPLIDIAG. C'est pourquoi ils possèdent tous une sortie de type bit, ERROR, et une donnée interne publique INHIB, de type bit également. La valeur à 1 de ERROR indique une anomalie constatée par le bloc fonction. Le défaut est signalé dans une ou plusieurs données, nommées STATUS et STATUSn, de type WORD et DWORD. Le nombre de données STATUSi et les significations associées aux états de cette donnée dépendent de l'OFB et sont détaillées dans les descriptions de chacun des OFBs. INHIB est une donnée interne publique qui permet d'inhiber la signalisation des erreurs. En cas d'anomalie, le bloc fonction continue de s'exécuter, ERROR et STATUS restent toujours à 0. d. Les bits READY et RESET Du fait que les OFBs TCP s'exécutent sur plusieurs cycles automate, le paramètre d'entrée RESET permet d'interrompre l'exécution d'un bloc en attente d'une réponse à un message. Dans le même ordre d'idée, les blocs sont munis d'une donnée interne publique, le bit READY, qui permet de savoir si une exécution est en cours. Le bit READY Les blocs fonction ont une sortie de type BIT qui indique leur disponibilité ; c'est-à-dire, s'ils peuvent ou non être utilisés. Exemple de programmation du lancement d'un bloc fonction. L'exécution est faite sur front descendant du bit B0 en vérifiant au préalable que l'OFB est libre. ! ! ! ! ! ! ! ! ! ! ! ! <Lancement exécution sur front descendant de B0.> IF B0 THEN JUMP SUITE <Le bloc est-il prêt ?> IF NOT OFBi,READY THEN JUMP FIN IF NOT B10 THEN EXEC OFBi(...=>);SET B10 <Aucune sortie de l'OFB n'est câblée.> <Attente de la fin d'exécution.> IF NOT OFBi,READY THEN JUMP FIN SET B0; RESET B10 IF OFBi, ERROR THEN JUMP ERREUR SUITE: <Suite du programme.> ___________________________________________________________________________ 65 L’action Reset Les blocs fonction TCP disposent d’une entrée RESET de type BIT qui permet d’interrompre leur exécution sur la mise à 1 de ce bit, provoquant les actions suivantes (si la connexion avec l’application distante est ouverte) : • tous les blocs de données éventuellement en cours (émission et réception) sur cette connexion sont arrêtés et/ou annulés. • la connexion est fermée. Ensuite, les bits READY et ERROR sont positionnés à 1. STATUS signale un arrêt par action de l’utilisateur. Le bloc fonction est prêt à être ré-exécuté. L’écriture de l’entrée RESET est autorisée par requête ; c’est-à-dire qu’une action RESET peut être effectuée, automate en RUN ou en STOP, avec les outils utilisant les requêtes UNI-TE d’écriture d’éléments d’OFB (APPLIDIAG, mode réglage ou donnée de PL7-3, dialogue opérateur, etc.). Exemple de programmation d’un arrêt d’un OFB : !IF B10 THEN EXEC OFBi( B10; => ); RESET B10 ! !<B10 est câblé sur le bit RESET de l’OFB> ! !<OFBi,ERROR vaut 1> !<OFBi,READY vaut 1> Une action RESET sur un bloc fonction au repos (bit READY à 1 = pas de transfert en cours) provoquera également la fermeture de la connexion associée si elle est ouverte. En sortie, les bits READY et ERROR sont également positionnés à 1. D’autre part, les bits READY et ERROR de tous les autres OFBs en cours (bit READY à 0) sur cette connexion en reset, sont également positionnés à 1. Le mot STATUS signale un arrêt par action utilisateur. Note : Un RESET sur un bloc fonction doit avoir un «caractère urgent» : le bit READY doit remonter dès la mise à 1 du bit RESET et l’exécution du bloc doit cesser immédiatement. C’est pourquoi il n’est pas possible d’entreprendre des opérations de longue durée (comme par exemple des échanges avec le coupleur). ___________________________________________________________________________ 66 Blocs fonctions TCP 7 7.3-4 Principes de la mise en œuvre Après configuration du coupleur par l’application automate, la mise en œuvre d’une communication TCP est effectuée en trois étapes principales : • ouverture de la connexion TCP par l’application distante, • échanges de blocs de données sur cette connexion point à point entre les applications, • fermeture de la connexion soit par l’application distante, soit par l’application Locale. L’établissement de connexion par l’Application Distante est transparente pour l’application automate, le service est assuré par le coupleur TSX ETH 110. Par contre, l’application automate peut connaître l’état de la connexion en déclenchant périodiquement un OFB en réception ou en émission. L’OFB sera immédiatement refusé si la connexion avec l’application distante n’est pas encore établie. La fermeture de connexion peut être provoquée par l’application automate appliquant le signal RESET sur un OFB en cours sur cette connexion. en ___________________________________________________________________________ 67 7.4 OFB TCPS : émission d’un bloc de données 7.4-1 Fonction Le bloc fonction TCPS permet d’envoyer un bloc de données sur une connexion TCP/IP établie à l’initiative d’une application « cliente » distante. La taille maximale du bloc de données à émettre est de 8 K octets. L’émission ne sera possible que si et seulement si la connexion est effectivement ouverte au moment de la demande. Sur une connexion, plusieurs demandes d’émission peuvent être déclenchées, par l’application PL7-3. Les blocs de données seront émis dans l’ordre chronologique du déclenclement des demandes à la précision du cycle automate. Si le déclenchement de deux émissions est dans le même cycle automate, l’ordre sera indéterminé. 7.4-2 Interface PL7-3 TCPSi Entrées Données Internes Publiques RESET : bit MODULE : word DEST : double word PORT : word BUF : word SIZE : word INHIB : bit ERROR READY STATUS ADDRESS : bit Sorties : bit : word : double word ___________________________________________________________________________ 68 Blocs fonctions TCP 7 Paramètres d’entrées Paramètres Type Accès Description RESET bit (3) La mise à l’état 1 de cette entrée durant un échange interrompt l’échange et positionne les bits de sortie READY et ERROR à l’état 1. Le code de l’erreur est alors contenu dans le mot STATUS MODULE mot (1) Ce paramètre d’entrée définit la position du coupleur TCP/IP dans le rack principal de l’automate. DEST double mot (1) Ce paramètre d’entrée définit l’adresse IP de la machine distante sur laquelle s’exécute le client connecté au port local PORT. Par défaut DEST = 0, le bloc de données est envoyé vers l’unique client distant connecté au port local de service de l’automate. PORT mot (1) Ce paramètre d’entrée définit le numéro de port local auquel le client distant est connecté. BUF mot (1) Ce paramètre d’entrée définit l’adresse du premier mot Wi du bloc de données à émettre. SIZE mot (1) Ce paramètre d’entrée définit la taille en octets du bloc de données à émettre. De 1 à 8 192. Paramètres de sorties Paramètres Type Accès Description ERROR Bit (2) Ce bit de sortie est mis à l’état 1 si l’échange ne s’est pas terminé correctement. Le mot STATUS indique alors le type d’erreur qui s’est produite. (1) Lecture par réglage (mode data...). (2) Lecture par programme et par réglage. (3) Lecture par programme et par réglage. Ecriture par réglage. (4) Lecture et écriture par programme et par réglage. ___________________________________________________________________________ 69 Données internes publiques Paramètres Type Accès Description READY Bit (2) Ce bit de sortie est à zéro quand un échange est en cours. Il est mis à l’état 1 lorsque l’échange est terminé. Si le bit de sortie ERROR (échange erroné) est à l’état 0, le bit de sortie READY indique que le bloc de données a été correctement reçu. Par contre, si le bit ERROR est à l’état 1, le bit de sortie READY indique que l’échange est terminé mais erroné. INHIB Bit (4) Ce bit d’entrée permet d’inhiber la signalisation des erreurs : le bit de sortie ERROR et le mot STATUS restent toujours à zéro (l’exécution du bloc n’est pas interrompu). STATUS Mot (2) Ce mot est significatif uniquement si le bit de sortie ERROR (échange erroné) est à l’état 1. Il indique le code d’erreur produite lors de l’échange. (Chaque bit du mot positionné à 1 indique une erreur.) ADDRESS double (2) Ce double mot de sortie donne l’adresse IP de la machine mot distante vers laquelle le bloc de données a été effectivement envoyé. (Utile quand le paramètre d’entrée DEST est égal à 0). Donnée interne STATUS Voir paragraphe : détail du status 7.4-3 Utilisation de l’OFB TCPS Pour exécuter le bloc fonction TCPS, il faut avoir, au préalable, configuré le coupleur TSX ETH 110 en exécutant le bloc texte de configuration. La demande d’émission sera prise en compte et exécutée par le coupleur TSX ETH 110 que si la connexion, établie à l’initiative de l’application distante, est ouverte au moment de la demande ; sinon une erreur « connexion fermée » est immédiatement retournée à l’application PL7-3. Dans ce cas, l’application doit temporiser avant de renouveler sa demande d’émission. Important L’OFB d’émission utilise directement le tampon donné par l’utilisateur (il n’y a pas de recopie des données utilisateur dans un buffer système). Donc, tant que l’OFB est actif (bit READY à 0), le programme PL7-3 ne doit en aucun cas modifier le contenu du tampon associé à cet OFB. ___________________________________________________________________________ 70 Blocs fonctions TCP 7 7.4-4 Programmation de l’OFB TCPS Exemple de programmation Emission d’un bloc de données de 1024 octets, contenu à l’adresse 100 de la zone Wi, vers une application distante : • l’application distante s’exécute sur une machine dont l’adresse IP est 90.0.0.1, • l’application distante a établie une connexion TCP/IP sur le port 5011 avec l’automate. ! < EMISSION DE MESSAGE > ! IF NOT B1 THEN EXEC TCPS0( ;CW100 ; CW200 ; CW300 ; CW400 ; W10 =>) ; SET B1 ! ! ! ! ! <ATTENTE COMPTE-RENDU> IF NOT TCPS0.READY THEN JUMP FIN-TACHE IF TCPS0.ERROR THEN JUMP TRAITER-ERREUR < Message envoyé sans erreur> Données utilisées : CW100 : CW200 : CW201 : CW300 : CW400 : 4 H’0001' H’5A00' 5011 100 W10 : 1024 W100 à W612 Module Coupleur TCP dans le rack principal Adresse IP (90.0.0.1) de la machine distante (sur 4 octets) Port de service Adresse du bloc de données à émettre en zone W Taille en octets du bloc de données à émettre Bloc de données à émettre. ___________________________________________________________________________ 71 7.5 OFB TCPR : réception d’un bloc de données 7.5-1 Fonction Le bloc fonction TCPR permet de recevoir un bloc de données sur une connexion TCP/IP établie à l’initiative d’une application « cliente » distante. La taille maximale du bloc à recevoir est de 8 K octets. La réception d’un bloc de données ne sera possible que si et seulement si la connexion est effectivement ouverte au moment du déclenchement de la demande de réception. Sur une connexion, plusieurs demandes de réception peuvent être déclenchées par l’application PL7-3. Les OFBs seront retournés comme READY (réception d’un bloc de données) dans l’ordre du déclenclement des demandes de réception. Si le déclenchement de deux réceptions est dans le même cycle automate, l’ordre sera indéterminé. D’autre part, les OFBs sont positionnés à READY dans l’ordre d’arrivée des messages sur la connexion (un petit message ne double pas un gros message dans le coupleur lors des échanges entre le coupleur et l'UC automate). 7.5-2 Interface PL7-3 TCPRi Entrées Données Internes Publiques RESET : bit MODULE : word FROM : double word PORT : word BUF : word SIZE : word INHIB : bit ERROR READY STATUS LENGTH ADDRESS : bit Sorties : bit : word : word : double word ___________________________________________________________________________ 72 Blocs fonctions TCP 7 Paramètres d’entrées Paramètres Type Accès Description RESET bit (3) La mise à l’état 1 de cette entrée durant un échange interrompt l’échange et positionne les bits de sortie READY et ERROR à l’état 1. Le code de l’erreur est alors contenu dans le mot STATUS. Par défaut RESET = 0. MODULE mot (1) Ce paramètre d’entrée définit la position du coupleur TCP/IP dans le rack principal de l’automate. FROM double mot (1) Ce paramètre d’entrée précise l’adresse IP de la machine distante sur laquelle s’exécute le client connecté au port local PORT. Par défaut FROM = 0 : l’OFB se met en attente de bloc de données envoyé par l’unique client distant connecté au port local de service de l’automate. PORT mot (1) Ce paramètre d’entrée définit le numéro de port local auquel un client distant est connecté. BUF mot (1) Ce paramètre d’entrée définit l’adresse du premier mot Wi du tampon pour recevoir un bloc de données. SIZE mot (1) Ce paramètre d’entrée définit la taille en octets du tampon pour recevoir le bloc de données. De 1 à 8 192. Paramètres de sortie Paramètres Type Accès Description ERROR bit (2) Ce bit de sortie est mis à l’état 1 si l’échange ne s’est pas terminé correctement. Le mot STATUS indique alors le type d’erreur qui s’est produite. (1) Lecture par réglage (mode data...). (2) Lecture par programme et par réglage. (3) Lecture par programme et par réglage. Ecriture par réglage. (4) Lecture et écriture par programme et par réglage. ___________________________________________________________________________ 73 Paramètres internes Paramètres Type Accès Description READY bit (2) Ce bit de sortie est mis à l’état 1 lorsque l’échange est terminé. Si le bit de sortie ERROR (échange erroné) est à l’état 0, le bit de sortie READY indique que le bloc de données a été correctement reçu. Par contre, si le bit ERROR est à l’état 1, le bit de sortie READY indique que l’échange est terminé mais erroné. INHIB Bit (4) Ce bit d’entrée permet d’inhiber la signalisation des erreurs : le bit de sortie ERROR et le mot STATUS restent toujours à zéro (l’exécution du bloc n’est pas interrompu). STATUS mot (2) Ce mot est significatif uniquement si le bit de sortie ERROR (échange erroné) est à l’état 1. Il indique le code d’erreur produite lors de l’échange. (Chaque bit du mot positionné à 1 indique une erreur.) LENGTH mot (2) Ce mot de sortie contient le nombre d’octets reçus si le bit de sortie ERROR (échange erroné) est à l’état 0. ADDRESS double mot (2) Ce double mot de sortie donne l’adresse IP de la machine distante qui a envoyé le bloc de données. (Utile quand le paramètre d’entrée FROM est égal à 0). Donnée interne STATUS Voir paragraphe : détail du status 7.5-3 Utilisation de l’OFB TCPR Pour exécuter le bloc fonction TCPR, il faut avoir, au préalable, configuré le coupleur TSX ETH 110 en exécutant le bloc texte de configuration. La demande de réception sera prise en compte et exécutée par le coupleur TSX ETH 110 que si la connexion, établie à l’initiative de l’application distante, est ouverte au moment de la demande ; sinon une erreur « connexion fermée » est immédiatement retournée à l’application PL7-3. Dans ce cas, l’application doit temporiser avant de renouveler sa demande de réception. Important L’OFB de réception utilise directement le tampon donné par l’utilisateur pour recopier au fur et à mesure les données reçues sur la connexion (il n’y a pas utilisation d’un buffer système intermédiaire). Donc, tant que l’OFB est actif (bit READY à 0), le programme PL7-3 ne doit en aucun cas modifier le contenu du tampon associé à cet OFB. ___________________________________________________________________________ 74 Blocs fonctions TCP 7 7.5-4 Programmation de l’OFB TCPR Exemple de programmation : Attente de réception d’un bloc de données de 8 K octets, à l’adresse 1000 de la zone Wi, d’une application distante : • l’application distante s’exécute sur une machine dont l’adresse IP est 90.0.0.1, • l’application distante a établie une connexion TCP/IP sur le port 5011 avec l’automate. ! < RECEPTION MESSAGE > ! IF NOT B1 THEN EXEC TCPR0( ;CW100 ;CW200 ; CW300 ; CW400 ; W20 ; => ) ; SET B1 ! <ATTENTE MESSAGE> ! IF NOT TCPR0.READY THEN JUMP FIN-TACHE ! IF TCPR0.ERROR THEN JUMP TRAITER-ERREUR ! < les données du message sont disponibles dans le tampon de réception> Données utilisées : CW100 : CW200 : CW201 : CW300 : CW400 : 4 H’0001' H’5A00' 5011 1000 W20 : 8192 W1000 à W5096 Coupleur ETH 110 Adresse IP (90.0.0.1) de la machine distante (sur 4 octets) Port de service Adresse du tampon de réception en zone Wi. Taille du tampon (8K octets) de réception Tampon pour recevoir le bloc de données ___________________________________________________________________________ 75 7.6 Détail du STATUS (interface APPLIDIAG) Bit OFB Signification Bit 0 = 1 S&R Erreur module. Vérifier la valeur utilisée pour le paraLe module n'est pas un coupleur mètre d’entrée MODULE de l’OFB TCPS TSX ETH 110. OU TCPR. Le paramètre MODULE n'est pas le même Vérifier la cohérence avec la constante que celui de l'OFB TCPM MODULE de l'OFB TCPM. Le module est en défaut. Vérifier la configuration de l'automate. Bit 1 = 1 S&R Erreur syntaxe. Bit 2 = 1 S&R Adresse IP incorrecte. (DEST pour émission, FROM pour réception) L’adresse IP n’appartient pas à la liste des machines distantes autorisées à se connecter. Bit 3 = 1 S & R Port local incorrect. Le numéro de port n’appartient pas à la liste des ports locaux donnée lors de la configuration du coupleur. Bit 4 = 1 S & R Paramètre SIZE erroné. Bit 5 = 1 S & R La connexion n’est pas ouverte. Bit 5 = 1 S & R Perte de connexion en cours de transfert. Bit 7 = 1 S & R Le port demandé est occupé par une machine dont l’adresse IP est différente de celle spécifiée dans le paramètre d’entrée (DEST pour une émission, FROM pour une réception). Bit 8 = 1 S & R Manque de ressources dans le coupleur. Bit 9 Action corrective Vérifier la valeur des paramètres d’entrées de l’OFB. Renseigner le paramètre d’entrée DEST pour sélectionner correctement le client distant. Remarque : Le paramètre de sortie ADDRESS est renseigné avec l’adresse IP de la machine connectée sur le port spécifié. Non utilisé. Bit 10 = 1 R Connexion désynchronisée en réception. Un message a été reçu avec une erreur de caractère « fin de message ». Bit 11= 1 R Erreur Caractère Fin de message Une erreur de caractère « fin de message » a été détectée par le coupleur sur ce message. Analyser le bloc de données dans le tampon de réception pour connaître l’origine de l’erreur. Bit 12 = 1 R Message tronqué. La taille du tampon de réception est trop petite pour recevoir complètement le message envoyé par le client distant. Prévoir un tampon plus grand. Vérifier la taille maximale des blocs de données échangés entre applications sur cette connexion. Bit 13 = 1 S & R Erreur de communication. L’échange avec le coupleur a échoué. Vérifier le paramètre MODULE. Vérifier la configuration et/ou l’état du coupleur. ___________________________________________________________________________ 76 Blocs fonctions TCP Bit 14 = 1 S & R Traitement interrompu. Le bloc fonction a été interrompu pendant son exécution par une action RESET, une action INIT ou une coupure secteur. Bit 15 = 1 S&R 7 Erreur système. Diminuer le nombre de blocs foncLe bloc fonction manque de ressources fonctions (toutes familles confonfues). système pour pouvoir s’exécuter. ___________________________________________________________________________ 77 ___________________________________________________________________________ 78