Schneider Electric TSXETY110WS DFBs de messagerie libre TCPIP Mode d'emploi
Ajouter à Mes manuels47 Des pages
▼
Scroll to page 2
of
47
Automates Premium TSX ETY 110 WS DFBs de Messagerie Libre TCPIP Manuel de mise en œuvre DFBs de Messagerie Libre TCPIP Sommaire Chapitre 1 2 3 4 5 Page Présentation générale 1/1 1.1 1/1 Généralités Installation 2/1 2.1 Procédure d’installation 2/1 2.2 Configuration du coupleur TSX ETY 110 WS 2/2 2.3 Programmation des DFBs dans une application 2.3-1 Import des DFBs 2.3-2 Création d'une instance de DFB 2/3 2/3 2/3 Principes de mise en œuvre 3/1 3.1 Principes d'une connexion TCP 3/1 3.2 Principe de base des DFBs 3.2-1 Etablissement de connexions avec sécurité d'accès 3.2-2 Transfert de messages 3/2 3/2 3/5 Interfaces avec l'application PL7 4/1 4.1 Les points communs des DFBs 4.1-1 L’appel entretenu 4.1-2 La table de gestion 4.1-3 Les bits RST et ACTIVITY 4.1-4 Le bit ERROR - mot STATUS 4/1 4/1 4/2 4/4 4/5 Gestion des connexions DFB TCP_CNX 5/1 5.1 5/1 Présentation 1 DFBs de Messagerie Libre TCPIP Sommaire Chapitre 5.1-1 Caractéristiques 5.1-2 Fonctionnement 5.1-3 Exemple de programmation - Connexion sur 1 seul port TCP 6 7 8 9 2 Page 5/1 5/4 5/5 Emission de données DFB TCP_SEND 6/1 6.1 6/1 6/1 6/4 6/5 Présentation 6.1-1 Caractéristiques 6.1-2 Fonctionnement 6.1-3 Exemple de programmation Réception de données DFB TCP_RECEIVE 7/1 7.1 7/1 7/1 7/4 7/5 Présentation 7.1-1 Caractéristiques 7.1-2 Fonctionnement 7.1-3 Exemple de programmation Performances 8/1 8.1 Points intervenants dans les performances d'une communication TCPIP-OPEN 8/1 8.2 Schéma d'un traitement d'EF dans un cycle automate 8/2 8.3 Mesures de performances 8/2 Annexes 9/1 9.1 Différences avec les OFB PL7-3 9/1 9.2 Rappel sur la communication TCPIP 9/2 1 PrésentationChapitre générale 1 1 Présentation générale 1.1 Généralités La bibliothèque des DFBs de communication TCP utilisée avec le coupleur TSX ETY 110 WS version > 2.8 pour automates Premium permet le transfert de bloc de données entre une application automate et une application distante sur une connexion TCPIP établie à l’initiative de l’application distante. L’application distante est exécutée sur un équipement supportant le profil de communication TCPIP. La bibliothèque des DFBs de communication se compose : • d’un DFB TCP_CNX de gestion des connexions, • d’un DFB TCP_SEND pour l’émission de bloc de données d'une taille maximale de 8 K octets, • d’un DFB TCP_RECEIVE pour la réception de bloc de données d'une taille maximale de 8 K octets. Note: Les DFBs de communication TCP pour automates Premium utilisent les services de l’offre "OPEN TCP for TSX Premium" qui est elle même constituée d’une bibliothèque d’EF (Elementary Function) TCP: EF permettant à l’application PL7 de gérer des connexions TCP et d’émettre et recevoir des flux d’octets sur ces connexions. Pour plus d'informations se reporter au document "OPEN TCP for TSX Premium" (réf. 3500 1359 P04 000 Rev.Nb:07). DFBs de Messagerie Libre TCPIP 1/1 1/2 DFBs de Messagerie Libre TCPIP Chapitre 22 Installation 2 Installation L'installation du produit "DFBs de messagerie libre TCPIP" complète un atelier de programmation PL7 Pro de version > à V3.3 en installant : • 3 DFBs TCP_CNX, TCP_SEND, TCP_RECEIVE, • et une famille d'EF TCPIP_DFB. 2.1 Procédure d’installation Le CD-ROM TLXCDUNTCPB33F fournit l'accès à la documentation et à la procédure d'installation. Insérer le CD-ROM, valider l'écran de bienvenue et laissez vous guider par les menus. DFBs de Messagerie Libre TCPIP 2/1 2.2 Configuration du coupleur TSX ETY 110 WS La configuration du coupleur TSX ETY 110 WS est réalisée par PL7 en fonction des données saisies par l’utilisateur dans l’écran de configuration du coupleur : • 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. • L’utilisation des trames Ethernet 802.3 avec SNAP (SubNetwork Access Protocol). Le coupleur TSX ETY 110 WS doit être installé dans le rack 0. 2/2 DFBs de Messagerie Libre TCPIP Installation 2.3 2 Programmation des DFBs dans une application 2.3-1 Import des DFBs Sous PL7 Pro, dans la "Vue Structurelle", et sous la rubrique "Types DFB", sélectionnez "Importer binaire". Pour chacun des 3 DFBs TCP_CNX, TCP_RECEIVE, TCP_SEND les importer dans l'application. 2.3-2 Création d'une instance de DFB Sous PL7 Pro sélectionner "Outils", "Bibliothèque" puis l'onglet "DFB". Choisir ensuite le type de DFB que vous désirez instancier et valider par le bouton "Créer". Saisir ensuite le nom d'instance de votre DFB et valider par le bouton "Créer". Votre DFB est alors instancié. C'est ce nom d'instance qui est utilisé dans le programme automate PL7. ATTENTION L'import des DFBs n'est possible que si la procédure d'installation du CD-ROM TLXCDUNTCPB33F a été déroulée entièrement : • installation des DFBs TCP_CNX, TCP_RECEIVE, TCP_SEND, • installation de famille d'EF TCPIP_DFB dans la bibliothèque. DFBs de Messagerie Libre TCPIP 2/3 2/4 DFBs de Messagerie Libre TCPIP 3 Principes de miseChapitre en œuvre 3 3 Principes de mise en œuvre 3.1 Principes d'une connexion TCP L'établissement de la connexion entre deux applications est asymétrique, elle est basée sur un modèle client/serveur. Pour qu'une connexion puisse être établie entre deux applications, cela nécessite d'avoir une application serveur en attente de connexion rentrante sur un port de service TCP. Le protocole TCP utilise des numéros de ports pour identifier les destinataires sur une machine donnée. Lorsque le numéro de port est identifié par le serveur, le client peut alors envoyer une demande de connexion vers l'application serveur. L'application serveur accepte la connexion rentrante. Une fois la connexion ouverte, un tampon d'émission et un tampon de réception sont attribués à ce port de service TCP. Sur une connexion établie, le transfert de données peut alors être effectué. Le transfert de données est fiable, (données stockées en zone tampon), non structuré (flots d'octets et non de messages) et bidirectionnel simultané (full-duplex). Application TCP Tampon d'émission Tampon de réception TCP Connexion Application Tampon d'émission Tampon de réception Port de service TCP DFBs de Messagerie Libre TCPIP 3/1 3.2 Principe de base des DFBs 3.2-1 Etablissement de connexions avec sécurité d'accès L'automate serveur se met en attente de connexions rentrantes pour chaque port local TCP de service. Cette mise en attente de connexion est gérée par le DFB TCP_CNX. Toutes les machines distantes déclarées dans la configuration du DFB TCP_CNX peuvent donc se connecter à l'automate. Juste après acceptation d'une connexion rentrante sur un port local TCP de service, le DFB TCP_CNX vérifie que l'adresse IP de la machine distante appartient à la liste des machines distantes autorisées à se connecter. Si l'adresse IP distante est référencée dans cette liste, la connexion sur le port local TCP de service est acceptée. Cette connexion est ensuite mémorisée dans la liste des connexions ouvertes. Le port local TCP de service associé est occupé, il n'est pas accessible pour toute autre demande de connexion. Si l'adresse IP distante n'est pas référencée dans la liste des adresses autorisées, le DFB TCP_CNX ferme la connexion et repasse en attente de connexion sur ce port local TCP de service. Remarque Une connexion sera immédiatement refermée par le DFB TCP_CNX pour une des raisons suivantes : • Port occupé par une autre machine (une connexion par port). • Adresse IP non autorisée. Chaque connexion TCP ouverte avec le coupleur est donc caractérisée de façon unique par le port local TCP de service (1 port ↔ 1 connexion). L'adresse IP de la machine distante est uniquement un attribut associé à cette connexion. 3/2 DFBs de Messagerie Libre TCPIP Principes de mise en œuvre 3 Graphe d'état d'une connexion pour un port 0 : non configuré Lancement DFB TCP_CNX 1 : attendre une connexion (port libre) RESET Connexion Rentrante 2 : contrôler l'accès (port occupé) Accès autorisé Accès non autorisé → Fermeture Connexion 3 : connexion établie (port occupé) RESET Erreur Fin de message RESET Fermeture Connexion 4 : connexion établie désynchronisée (port occupé) Note : Ce graphe d'état, géré par le DFB TCP_CNX est pour un port TCP de service. Nous retrouvons ce même graphe d'état pour chacun des autres ports TCP de service. Le TCP_CNX doit être lancé à chaque tour de cycle automate pour gérer les connexions. Remarque Une connexion établie sera fermée : • Suite à une demande par l'application PL7 d'annuler un transfert en cours. • Sur une fermeture de la connexion par l'application distante. • Suite à un accès par une machine non autorisée (ouverture temporaire pour contrôle). DFBs de Messagerie Libre TCPIP 3/3 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 erreur connexion désynchronisée. • Les émissions sont possibles sur une connexion désynchronisée. Toutes les connexions seront fermées : • Suite à un RESET logiciel (Reset UC, téléchargement d'appli PL7). • Suite à un RESET matériel du coupleur (coupure secteur, changement d'adresse sur bornier, ...). • Suite à un RESET du DFB TCP_CNX. Remarque Les connexions rompues brutalement pour lesquelles l'automate ne serait pas prévenu (arrêt brutal de l'application distante, coupure secteur du distant, fermeture de connexion par le distant avec câble débranché...), peuvent donner lieu à un blocage de la communication sur le port attaché à cette connexion. En effet une demande de réception peut rester bloquée pendant un maximum de deux heures (temps du time-out de KEEP ALIVE). De plus toute nouvelle connexion sur ce port durant ce laps de temps sera refusée par l'automate. Pour remédier à ce problème, il est conseillé à l'applicatif automate d'émettre régulièrement un message d'entretien de la connexion (le message de longueur 0 sera accepté par le DFB TCP_SEND). 3/4 DFBs de Messagerie Libre TCPIP Principes de mise en œuvre 3 3.2-2 Transfert de messages Description du service de transfert Le service de transfert permet d'échanger des messages (suite de N octets) sur une connexion établie entre un client distant et l'application PL7 de l'automate sur un port local donné. Dans les demandes de transfert, deux possibilités sont offertes à l'application PL7 pour identifier le client distant : 1. 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. 2. 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. Transfert de message d'application à application Automate : adresse IP = IP_a Site distant : adresse IP = IP_1 Application PL7 DFB TCP_CNX Connexion TCPIP établie TCP_SEND () Serveur du client C1 (port local 5010) TCP_RECEIVE () DFBs de Messagerie Libre TCPIP C1 Client Distant connecté au service A de l'automate IP_a par le port 5010 3/5 Les services de transfert de messages offerts à l'application PL7 de l'automate, sont les suivants : • Demande d'émission vers un client distant d'un message dont la taille maximale est de 8 K octets. Une émission de message restera 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. • Demande de réception d'un client distant d'un message 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 sera du ressort de l'application PL7 d'utiliser un timer (câblé sur le signal RST du DFB) pour annuler la demande en cours au bout d'un délai. Si la connexion TCP n'est pas établie avec le client distant au moment de la demande de transfert de données (émission ou réception), cette dernière sera immédiatement refusée avec une indication d'erreur : connexion non établie. De même, si la connexion est fermée par le client distant ou perdue, toutes les opérations en cours sur cette connexion seront annulées. Transfert multiple sur un même port L'application PL7 ne peut pas activer en parallèle plusieurs demandes de même nature (émission ou réception) sur un même port, sans attendre le compte rendu de la demande précédente. Cependant, 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 et donc l'application PL7 peut demander simultanément une émission et une réception sur le même port. 3/6 DFBs de Messagerie Libre TCPIP Principes de mise en œuvre 3 Format des messages échangés entre le coupleur et l'application distante Une caractéristiques importante de la communication sur une connexion TCP est l'aspect continu de l'information ("flots 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 N octets Longueur message = N (format réseau) Données du message 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) seront ajoutés (émission) ou supprimés (réception) par les DFBs (TCP_SEND ou TCP_RECEIVE). 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). Caractère "Fin de message" : • Ce champ sur 1 octet est un caractère optionnel, 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. Procédure d'émission sur la connexion TCP La procédure d'émission sur une connexion TCP établie est déclenchée par le DFB TCP_SEND de l'application PL7. La procédure d'émission du DFB TCP_SEND est effectuée par bloc de 240 octets vers le coupleur TSX ETY 110 WS qui transmet immédiatement le bloc vers le distant. Les champs "longueur" et "caractère fin de message" (si configuré) sont automatiquement transmis par le DFB TCP_SEND. Le DFB signale la fin de l'échange au moyen de son bit d'activité. DFBs de Messagerie Libre TCPIP 3/7 Procédure de réception du coupleur sur la connexion TCP Les données reçues sur une connexion TCP établie sont stockées dans les tampons du coupleur TSX ETY 110 WS. Les données reçues sur la connexion ne seront lues que si un DFB TCP_RECEIVE est actif. La taille du tampon de réception est au maximum de 4096 octets. Ceci implique que lors de l'émission d'un message de 8 K par un distant, la moitié des données sont stockées dans ses tampons d'émission tant que l'application PL7 n'a pas reçue la première moitié des données. La procédure de réception du TCP_RECEIVE est la suivante : • Attente/Réception* des 2 octets indiquant la longueur N du message à recevoir. • Réception* des N octets du message et du caractère fin de message si l'option caractère fin de message est dans la configuration. Le contrôler et le supprimer. • Le DFB signale la fin de l'échange au moyen de son bit d'activité. Remarque Si une erreur "caractère fin de message" est détectée, le tampon de réception de l'application PL7 contient le message reçu qui peut être analysé. S'il manque des caractères par rapport à la longueur spécifiée dans l'en-tête du message (erreur applicative de l'émetteur), la réception reste en attente infinie sur les octets manquants. Elle sera débloquée sur réception du message suivant, mais avec une détection d'erreur "caractère fin de message" (si le caractère fin de message ne coïncide pas avec une donnée utile du message). La réception est alors désynchronisée. La détection d'erreur de fin de message n'est pas forcément immédiate avec le premier message suivant (dans le cas où il y a coïncidence du caractère fin de message avec une donnée du message suivant, il peut passer plusieurs messages avant détection). * L'opération Attente/Réception sur la connexion permet de recevoir également l'indication de fermeture de la connexion par la machine distante. 3/8 DFBs de Messagerie Libre TCPIP Principes de mise en œuvre 3 Protocole d'application à application Aucune contrainte n'est imposée sur le protocole d'échange d'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. • Messages non sollicités à l'initiative de l'application client. • Messages non sollicités à l'initiative de l'application automate. Caractéristiques d'utilisation du transfert par l'application PL7 Nombre de ports TCP Le coupleur est dimensionné pour 16 ports TCP et donc 16 connexions. Tampon utilisateur associé au DFB Lors des échanges UC/coupleur, le DFB 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 tampon système). Donc, tant que le DFB est actif (bit ACTIVITY à 1), le programme PL7 ne doit en aucun cas modifier le contenu du tampon associé à ce DFB. DFBs de Messagerie Libre TCPIP 3/9 3/10 DFBs de Messagerie Libre TCPIP Chapitre 4 Interfaces avec l'application PL7 4 4 Interfaces avec l'application PL7 4.1 Les points communs des DFBs Les blocs fonction utilisent les services de messagerie implémentés dans le processeur PREMIUM. De ce fait, tous les blocs fonction de communication peuvent s'exécuter sur plusieurs cycles automates. Du fait de l'architecture d'échange coupleur/UC, les messages en émission (8 K octets) ou en réception (8 K octets) seront échangés entre le coupleur et l'application PL7 par datagrammes de 256 octets contenant des octets d'informations de contrôle de la segmentation et 240 octets de données utiles. L'échange UC/coupleur d'un datagramme est effectué par cycle automate. 4.1-1 L’appel entretenu L’exécution des blocs fonction est entretenue de manière explicite. L’utilisateur doit programmer l’entretien du DFB tant que son bit ACTIVITY est actif. Il est strictement interdit d’exécuter plus d’une fois la même instance de DFB dans un même cycle automate. L'entretien des DFBs est obligatoire du fait que tous les blocs fonction de communication s'exécutent sur plusieurs cycles automate. Dès que le DFB est appelé, celui-ci est lancé de nouveau à chaque tour de cycle automate tant que son bit d'activité est égal à 1. DFBs de Messagerie Libre TCPIP 4/1 4.1-2 La table de gestion Il est nécessaire que l’application PL7 fournisse aux DFB une table de gestion de 67 mots qui permet à chaque DFB de connaître l’état des connexions en cours. Chaque entrée de la table est constituée par des mots de 16 bits et comporte l’adresse IP, le numéro de port et le status de la connexion avec un distant. Cette table est définie dans l’automate en zone mémoire MW et à la structure suivante : %MWi MODULE Numéro de module %MWi + 1 NP Nombre de ports d’écoute %MWi + 2 EOM Caractère de fin de message %MWi + 3 IP 1 Adresse IP de machine distante n° 1 %MWi + 5 P1 Numéro de port local n° 1 %MWi + 6 Status 1 Status de la connexion n° 1 %MWi + 7 IP 2 %MWi + 62 Status 15 %MWi + 63 IP 16 Adresse IP de machine distante n° 16 %MWi + 65 P 16 Numéro de port local n° 16 %MWi + 66 Status 16 Status de la connexion n° 16 La structure de cette table est donnée à titre d’information. Cette table est entièrement gérée par les DFBs et ne doit pas être modifiée sans activer l’entrée RESET du DFB de gestion des connexions. • Données internes MODULE - Numéro de module Numéro de l’emplacement physique du coupleur TSX ETY 110 WS dans le rack. NP - Nombre de ports d’écoute 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. 4/2 DFBs de Messagerie Libre TCPIP Interfaces avec l'application PL7 4 EOM - 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. Il est mis à jour par le DFB TCP_CNX lors de son premier appel ou après un RESET avec la valeur paramétrée par l’application automate : • EOM = 0 : pas de caractère fin de message. • EOM de 0x01 à 0xFF : valeur du caractère fin de message : - à ajouter lors d’une émission, - à contrôler et supprimer lors d’une réception. IP i - Adresse IP du client connecté au port local n° i Ce paramètre est mis à jour par le DFB TCP_CNX lorsqu’un client est connecté (valeur 0 si pas de connexion sur ce port). Il est ensuite utilisé par les DFB TCP_SEND et TCP_RECEIVE pour contrôler le paramètre d’entrée "Adresse IP" lorsque celui-ci n’est pas nul. P i - Numéro de port local n° i Tableau de 16 ports locaux de service à écouter (valeur signée > à 5010). Pour une configuration donnée, seuls les NP premiers numéros seront utilisés. Status i - status de connexion n° i Ce paramètre permet de donner des informations sur la connexion associée : • Bits 0..3 : Numéro de socket de service compris entre 0 et 15. • Bit 8 : 1 → Connexion établie 0 → pas de connexion. • Bit 9 : 1 → Emission en cours. • Bit 10 : 1 → Réception en cours. • Bit 11 : 1 → Erreur sur dernière émission. • Bit 12 : 1 → Erreur sur dernière réception. DFBs de Messagerie Libre TCPIP 4/3 4.1-3 Les bits RST et ACTIVITY Entrées Sorties RST bit ERROR bit MANAGNT array of word Données Internes Publiques ACTIVITY STATUS bit word Tous les blocs de fonction TCP utilisent la messagerie et s’exécutent sur plusieurs cycles automate. C’est pourquoi l'utilisateur doit pouvoir interrompre l’exécution d’un bloc (en attente d’une réponse à un message) ; il doit également être en mesure de savoir si une exécution est en cours ou non, afin d’entretenir ou non son activité. Le bit ACTIVITY Les blocs fonction TCP ont une variable de type BIT qui indique leur activité ; c’est à dire, s’ils doivent ou non être entretenus. L’action RST Les blocs fonction TCP disposent d’une entrée RST de type BIT qui permet d’interrompre leur exécution sur la mise à 1 de ce bit, provoquant les actions suivantes (si la connexion est ouverte) : • Les messages éventuellement en cours (émission et réception) sont perdus pour la connexion. • La connexion est fermée. 4/4 DFBs de Messagerie Libre TCPIP Interfaces avec l'application PL7 4 4.1-4 Le bit ERROR - mot STATUS Ce bit de sortie est mis à l'état 1 si le DFB ne peut pas fonctionner correctement. Le mot STATUS indique alors le type d'erreur. • Mot STATUS Bit DFB Signification Action corrective Bit 0 = 1 CRS Le module n’est pas un coupleur ETY 110 Vérifier la valeur utilisée pour le paramètre d'entrée DEVICE de la configuration. Vérifier la configuration matérielle de l'automate. Bit 1 = 1 CRS Erreur syntaxe RESET du DFB TCP_CNX. Vérifier les paramètres et redémarrer. Bit 2 = 1 RS 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 émission, FRM pour réception). Vérifier la configuration des clients distants. Renseigner le paramètre DEST ou ou FRM pour sélectionner correctement le client distant. Bit 3 = 1 RS Port local incorrect. Le numéro de port n’appartient pas à la liste des ports locaux donnée lors de la configuration du coupleur Vérifier la liste des ports d'écoute du DFB TCP_CNX. Bit 4 = 1 RS Longueur erronée En émission vérifier que le paramètre SIZE est inférieur à 8192. En réception une entête de message a été reçue avec le champ longueur > à 8192. Bit 5 = 1 RS La connexion n’est pas ouverte Vérifier que le client est présent. Bit 6 = 1 RS Perte de connexion en cours de transfert Vérifier le bon fonctionnement du client. Bit 7 à 9 Bit 10 = 1 Non utilisés R Connexion désynchronisée en réception. Un message a été reçu avec une erreur de caractère "fin de message" DFBs de Messagerie Libre TCPIP Analyser le message dans le tampon de réception pour connaître l'origine de l'erreur. 4/5 Bit DFB Signification Action corrective Bit 11= 1 R Erreur Caractère Fin de message Une erreur de caractère "fin de message" a été détectée sur ce message Analyser le message dans le tampon de réception pour connaître l'origine de l'erreur. Faire un RESET du DFB. 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 messages échangés entre applications sur cette connexion. Bit 13 = 1 R Non utilisé Bit 14 = 1 RS Traitement interrompu. Relancer la connexion côté client. Le bloc fonction a été interrompu Le serveur se met automatiquependant son exécution par une ment de nouveau à l'écoute. action RST ou une reprise à chaud ou à froid. Bit 15 = 1 4/6 Non utilisé DFBs de Messagerie Libre TCPIP Chapitre 55 Gestion des connexions : DFB TCP_CNX 5 Gestion des connexions DFB TCP_CNX 5.1 Présentation Le DFB TCP_CNX est chargé de gérer les connexions avec les clients distants ainsi que les modes de marche de ces connexions. Il est renseigné des ruptures de connexions au moyen du status des mots de gestion par un bit positionné par une instance de DFB TCP_SEND ou TCP_RECEIVE. Une seule instance du DFB TCP_CNX doit exister pour un module TSX ETY 110 WS donné. 5.1-1 Caractéristiques DFB TCP_CNX Entrées Sorties RST bit ERROR bit MANAGNT array of word Données Internes Publiques DEVICE PORT IPACCEPT EOM ACTIVITY word array of word STATUS array of dword IPCNX0 ... word IPCNX15 DFBs de Messagerie Libre TCPIP bit word string string 5/1 Paramètres d’entrées Paramètres Type Description RST Bit La mise à l’état 1 de cette entrée : - interrompt les échanges en cours, - provoque la fermeture de toutes les connexions. Paramètres d’entrées/sorties Paramètres Type Description MANAGNT Tableau de mot Table de gestion commun à tous les DFB. Paramètres de sorties Paramètres Type Description ERROR Bit Ce bit de sortie est mis à l’état 1 si le DFB ne peut pas fonctionner correctement. Le mot STATUS indique alors le type d’erreur qui s’est produite. 5/2 DFBs de Messagerie Libre TCPIP Gestion des connexions : DFB TCP_CNX 5 Données internes publiques Paramètres Type Variables Ecriture/Lecture Description DEVICE Mot E Numéro de module Numéro de l’emplacement physique du coupleur TSX ETY 110 WS dans le rack. PORT Tableau de mots E Numéro de port local n° i Tableau de 16 ports locaux de service à écouter (valeur signée > 5010). La valeur 0 indique une valeur non significative. IPACCEPT Tableau de doubles mots E 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. La valeur 0 indique une valeur non significative. EOM Octet E 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 : - EOM = 0 : pas de caractère fin de message, - EOM de 0x01 à 0xFF : valeur du caractère fin de message : - ajouté par le coupleur lors d’une émission - contrôlé et supprimé par le coupleur lors d’une réception. IPCNXi Chaîne de caractères L Adresse IP de la machine distante n° i Chaîne de caractère en lecture seule uniquement destinée à la maintenance et indiquant sous le format aaa.bbb.ccc.ddd l’adresse IP de la machine distante connectée au port d’indice i dans la configuration. La valeur 0.0.0.0 indique qu’aucune machine n’est connectée à ce port. ACTIVITY Bit L Ce bit de sortie est à un quand le DFB est en cours et a besoin d’être entretenu. Il est mis à l’état 0 sur reprise à chaud ou à froid et sur RESET du DFB. STATUS Mot L 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). Se reporter au chapitre "Points commun des DFBs". DFBs de Messagerie Libre TCPIP 5/3 5.1-2 Fonctionnement Le DFB TCP_CNX doit être appelé à chaque tour de cycle automate pour une gestion permanente des ports TCP. L’écoute des ports configurés débute si les bits RST et ACTIVITY sont à 0. Ensuite le bit ACTIVITY reste positionné à 1 tant que l’application laisse le bit RST à 0. Si le dialogue avec le coupleur n’est pas correct, le bit de sortie ERROR (échange erroné) est mis à l’état 1. A tout instant, la mise à 1 du bit RST (entrée prioritaire) permet d’interrompre toutes les connexions en attente ou en cours. Le bit ACTIVITY (échange terminé) est mis à l’état 0 et le bit ERROR (échange erroné) est mis à l’état 1. Le mot status <nom de l'instance du TCP_CNX>.STATUS indique le type d’erreur. Lors d’une reprise à froid ou à chaud le DFB TCP_CNX se remet automatiquement en écoute sur les ports configurés. 5/4 DFBs de Messagerie Libre TCPIP Gestion des connexions : DFB TCP_CNX 5 5.1-3 Exemple de programmation - Connexion sur 1 seul port TCP • Données utilisées %MW0 : %KD200 : H’5A000001’ %KW300 : 5010 %KW0 : 2 %KW1 : 15 %M0 %MW100 : TCP_COX Table de gestion Adresse IP (90.0.0.1) de la machine distante autorisée à se connecter Port de service Emplacement physique du coupleur ETY110 Caractère fin de message Bit d’erreur Variable de travail pour indexer les tables Nom de l'instance du DFB TCP_CNX ! < EMISSION DE MESSAGE > IF NOT TCP_COX.ACTIVITY THEN (* Initialisation de la configuration *) TCP_ COX.DEVICE := %KW0 ; (* mise à 0 préalable de la table *) FOR %MW100 :=0 TO 15 DO TCP_ COX.PORT[%MW100]:=0 ; END_FOR; (* Liste de ports d'écoute *) TCP_ COX.PORT[0]:= %KW300; (* mise à 0 préalable de la table *) FOR %MW100 :=0 TO 7 DO TCP_ COX.IPACCEPT[%MW100]:=0; END_FOR; (* Liste des adresses IP autorisées à se connecter *) TCP_ COX.IPACCEPT[0]:= %KD200; (* Caractère de fin de message *) TCP_ COX.EOM:= %KW1; (* lancement du DFB *) TCP_ COX (0, %MW0:67, %M0 ); ELSE (* TRAITEMENT COMPTE-RENDU message précédent *) IF %M0 THEN JUMP %L3; (* entretien du DFB *) TCP_ COX(0, %MW0:67 , %M0 ); END_IF; END_IF; Note : Passage des paramètres au DFB TCP_CNX < nom de l'instance du DFB TCP_CNX> (RST, MANAGNT, ERROR) DFBs de Messagerie Libre TCPIP 5/5 5/6 DFBs de Messagerie Libre TCPIP Chapitre 66 Emission de données : DFB TCP_SEND 6 Emission de données DFB TCP_SEND 6.1 Présentation Le DFB TCP_SEND permet d’envoyer un message de données vers une application "cliente" distante, au travers d’une connexion TCPIP. La taille maximale du message à émettre est de 8 K octets. 6.1-1 Caractéristiques DFB TCP_SEND Sorties Entrées RST bit BUF array of word ERROR bit MANAGNT array of word Données Internes Publiques DEST PORT SIZE INHIB dword word word bit DFBs de Messagerie Libre TCPIP ACTIVITY STATUS bit word 6/1 Paramètres d’entrées Paramètres Type Description RST Bit La mise à l'état 1 de ce bit : - interrompt l’échange en cours (si le bit ACTIVITY était à 1) - provoque la fermeture de la connexion (si elle est ouverte) - positionne le bit d'information ACTIVITY à l’état 0 et le bit de sortie ERROR à l’état 1. Le code de l’erreur est alors contenu dans le mot STATUS. BUF tableau de mots Cette variable définit l’adresse du premier mot %MWi du message à émettre. Paramètres d’entrées/sorties Paramètres Type Description MANAGNT Tableau de mot Table de gestion commun à tous les DFB. Paramètres de sorties Paramètres Type Description ERROR Bit 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. 6/2 DFBs de Messagerie Libre TCPIP Emission de données : DFB TCP_SEND 6 Données internes publiques Paramètres Type Variable Ecriture/Lecture Description DEST Double mot E Cette variable 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 message est envoyé vers l’unique client distant connecté au port local de service de l’automate. PORT Mot E Cette variable définit le numéro de port local auquel le client distant est connecté. SIZE Mot E Cette variable définit la taille en octets du message à émettre. De 0 à 8192. Ne tient pas compte du caractère de fin. ACTIVITY Bit L Ce bit est à 1 quand un échange est en cours. Il est mis à l’état 0 lorsque l'échange est terminé. INHIB Bit L Ce bit permet d’inhiber la signalisation des erreurs : le bit de sortie ERROR et le mot STATUS restent toujours à 0 (l’exécution du bloc n’est pas interrompu). STATUS Mot L 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). Se reporter au chapitre "Les points communs des DFBs". DFBs de Messagerie Libre TCPIP 6/3 6.1-2 Fonctionnement Le transfert de données est déclenché lors de l'appel du DFB TCP_SEND si le bit RST est à l’état 0 et si le bit interne ACTIVITY est à l’état 0 (aucun échange en cours). Au cours de l’échange, le bit ACTIVITY est positionné à 1. En fin d’émission, le bit ACTIVITY est mis à l’état 0. De plus, si l’échange n’est pas correct, le bit de sortie ERROR (échange erroné) est mis à l’état 1. A tout instant, la mise à 1 du bit RST (entrée prioritaire) permet d’interrompre l’échange en cours. Le bit ACTIVITY (échange terminé) est mis à l’état 0 et le bit ERROR (échange erroné) est mis à l’état 1. Le mot status <nom de l'instance du TCP_SEND>.STATUS indique le type d’erreur de l’échange. Si la connexion est ouverte, elle se ferme et le coupleur repasse en attente de connexion rentrante. C'est au rétablissement de la connexion sur ce port TCP de service, que l'émission des messages peut reprendre. Cette reconnexion est gérée par le DFB TCP_CNX. Sur le déclenchement d’un émission de message, le traitement est le suivant : • Contrôle des paramètres d’entrée : adresse IP de la machine distante, numéro de port local. • Recherche de la connexion ouverte avec le client distant demandé. • Emission du message à émettre par bloc de 240 octets (en ajoutant le caractère "fin de message" si l’option est demandée par configuration) sur la connexion TCP. 6/4 DFBs de Messagerie Libre TCPIP Emission de données : DFB TCP_SEND 6 6.1-3 Exemple de programmation • Données utilisées %MW0 : %KD200 : H’5A000001’ %KW300 : 5010 Tableau de gestion Adresse IP (90.0.0.1) de la machine distante (sur 4 octets) Port de service %W200 : 400 %W300 à W700 %M0 TCP_EMIS Taille en mots du message à émettre Message à émettre Bit d'erreur Nom de l'instance du DFB TCP_SEND ! < EMISSION DE MESSAGE > IF NOT TCP_EMIS.ACTIVITY THEN (* TRAITEMENT COMPTE-RENDU message précédent*) IF %M0 THEN JUMP %L3; (* Emission message suivant *) TCP_ EMIS.PORT:=%KW300; TCP_ EMIS.DEST:=%KD200; TCP_ EMIS.SIZE:=%MW200*2; (* lancement du DFB le premier paramètre qui représente RST à 0 *) TCP_ EMIS(0, %MW300:400, %MW0:67, %M0); END_IF; ELSE (* entretien du DFB le premier paramètre qui représente RST à 0 *) TCP_ EMIS(0, %MW300:400, %MW0:67 , %M0) ; END_IF; Note : Passage des paramètres au DFB <nom de l'instance du TCP_SEND> (RST, BUF, MANAGNT, ERROR) DFBs de Messagerie Libre TCPIP 6/5 6/6 DFBs de Messagerie Libre TCPIP Chapitre 77 Réception de données DFB TCP_RECEIVE 7 Réception de données DFB TCP_RECEIVE 7.1 Présentation Le DFB TCP_RECEIVE permet de recevoir un message d’une application "cliente" distante, au travers d’une connexion TCPIP. La taille du message à recevoir peut atteindre 8 K octets. 7.1-1 Caractéristiques TCP_RECEIVE DFB Sorties Entrées RST bit ERROR bit MANAGNT array of word BUF array of word Données Internes Publiques FRM PORT SIZE INHIB dword word word bit DFBs de Messagerie Libre TCPIP ACTIVITY STATUS LENGTH bit word word 7/1 Paramètres d’entrées Paramètres Type Description RST Bit La mise à l'état 1 de ce bit : - interrompt l’échange en cours (si le bit ACTIVITY était à 1) - provoque la fermeture de la connexion (si elle est ouverte) - positionne la variable ACTIVITY à l’état 0 et le bit de sortie ERROR à l’état 1. Le code de l’erreur est alors contenu dans le mot STATUS. Paramètres d’entrées/sorties Paramètres Type Description BUF Tableau de mot Ce paramètre d'entrée et de sortie définit l'adresse du premier mot %MWi du tampon pour recevoir le message. MANAGNT Tableau de mot Tableau de gestion commun à tous les DFB. Paramètres de sorties Paramètres Type Description ERROR Bit Ce bit de sortie est mis à l'état 1 par le DFB si l'échange ne s'est pas terminé correctement. Le mot STATUS indique alors le type d'erreur qui s'est produite. 7/2 DFBs de Messagerie Libre TCPIP Réception de données DFB TCP_RECEIVE 7 Données internes publiques Paramètres Type Variable Ecriture/Lecture Description FRM Double mot E Cette variable définit l’adresse IP de la machine distante sur laquelle s’exécute le client connecté au port local PORT. Par défaut FRM = 0, le DFB se met en attente de message envoyé par l’unique client distant connecté au port local de service de l’automate. PORT Mot E Cette variable définit le numéro de port local auquel le client distant est connecté. SIZE Mot E Cette variable définit la taille en octets du tampon pour recevoir le message. De 0 à 8192. ACTIVITY Bit L Cette variable est à l’état 0 par le DFB lorsque l’échange est terminé. Si le bit de sortie ERROR (échange erroné) est à l’état 0, la variable ACTIVITY indique que le message a été correctement reçu. Par contre, si le bit ERROR est à l’état 1, la variable ACTIVITY indique que l’échange est terminé mais erroné INHIB Bit E Ce bit permet d’inhiber la signalisation des erreurs : le bit de sortie ERROR et le mot STATUS restent toujours à 0 (l’exécution du bloc n’est pas interrompu) STATUS Mot L 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). Se reporter au chapitre "Les points commun des DFBs" LENGTH Mot L Cette variable contient le nombre d’octets reçus si le bit de sortie ERROR (échange erroné) est à l’état 0. DFBs de Messagerie Libre TCPIP 7/3 7.1-2 Fonctionnement Le transfert de données est déclenché lors de l'appel du DFB TCP_RECEIVE si l’entrée RST est à l’état 0 et si le bit ACTIVITY est à l’état 0 (aucun échange en cours). Au cours de l’échange, le bit ACTIVITY est positionné à 1. En fin de réception, le bit ACTIVITY est mis à l’état 0. De plus, si l’échange n’est pas correct, le bit de sortie ERROR (échange erroné) est mis à l’état 1. A tout instant, la mise à 1 de l’entrée RST (entrée prioritaire) permet d’interrompre l’échange en cours. Le bit ACTIVITY(échange terminé) est mis à l’état 0 et le bit ERROR (échange erroné) est mis à l’état 1. Le mot status <nom de l'instance du TCP_RECEIVE>.STATUS indique le type d’erreur de l’échange. Si la connexion est ouverte, elle se ferme et le coupleur repasse en attente de connexion rentrante. Si un ou plusieurs messages sont dans les tampons de réception du coupleur, ils sont perdus. Sur le déclenchement d’une réception de message, le traitement est le suivant : • Contrôle des paramètres d’entrée : identification de la machine distante, numéro de port local,... • Recherche de la connexion ouverte avec l’application distante demandé. • Mise en file de l’EF de réception pour attente de message sur cette connexion. Dès qu’un DFB est actif pour une connexion donnée, le coupleur se met en attente de réception de données sur cette connexion, les deux premiers octets reçus donnant la longueur du message à recevoir. Les données reçues sont alors transférées dans les mots de l’automate par trames de 240 octets. Dès que le message complet est recopié dans l’automate : 1. Le DFB vérifie le caractère fin de message (si l’option a été configurée). 2. Les paramètres STATUS, LENGHT du DFB sont renseignés et la variable ACTIVITY et le bit ERROR sont alors positionnés pour l’application PL7. 7/4 DFBs de Messagerie Libre TCPIP Réception de données DFB TCP_RECEIVE 7 7.1-3 Exemple de programmation • Données utilisées %MW0 : %KD200 : H’5A000001’ %KW300 : 5010 Tableau de gestion Adresse IP (90.0.0.1) de la machine distante (sur 4 octets) Port de service %W200 : 400 %W300 à W700 %M0 TCP_RECEP Taille en mots du tampon de réception Tampon de réception Bit d'erreur Nom de l'instance du DFB TCP_RECEIVE ! < EMISSION DE MESSAGE > IF NOT TCP_RECEP.ACTIVITY THEN (* TRAITEMENT COMPTE-RENDU message précédent *) IF %M0 THEN JUMP %L3; (* Emission message suivant *) TCP_ RECEP.PORT:=%KW300; TCP_ RECEP.FRM:=%KD200; TCP_ RECEP.SIZE:=%MW200*2; (* lancement du DFB *) TCP_ RECEP(0, %MW0:67, %MW300:400, %M0); END_IF; ELSE (* entretien du DFB le premier paramètre qui représente RST à 0 *) TCP_RECEP(0, %MW0:67 , %MW300:400, %M0); END_IF; Note : Passage des paramètres au DFB <nom de l'instance du TCP_RECEIVE> (RST, MANAGNT, BUF, ERROR) DFBs de Messagerie Libre TCPIP 7/5 7/6 DFBs de Messagerie Libre TCPIP Chapitre 88 Performances 8 Performances 8.1 Points intervenants dans les performances d'une communication TCPIP-OPEN Les performances d'une communication TCPIP-OPEN dépendent des points suivants : • Du temps de cycle automate Celui-ci tient compte du temps de traitement process et du temps de traitement réservé à la communication TCPIP-OPEN. • Du temps de cycle périodique Celui-ci doit prendre en compte le temps de traitement du coupleur TSX ETY 110 WS afin que la réponse à la demande faite au coupleur arrive au cycle automate suivant. • Du temps de traitement du coupleur TSX ETY 110 WS. Celui-ci est inférieur à 30 ms pour 4 ports TCP configurés. • Du nombre maximum d'EF lancé dans un même temps de cycle automate. Celui-ci est lié au type de processeur. Remarque Les meilleures performances sont obtenues avec un flux de communication régulier en émission et en réception. Ce fonctionnement est optimal lorsqu'un DFB peut envoyer un EF à chaque cycle automate. L'EF étant envoyé en fin de cycle automate, il est impératif que sa réponse arrive au début de la période suivante. Pour cela, le temps de lecture du message sur le bus X et le temps de traitement du coupleur ETY110WS doivent être inférieur au temps restant entre la fin du cycle automate et le début de la période suivante. DFBs de Messagerie Libre TCPIP 8/1 Schéma d'un traitement d'EF dans un cycle automate Réponses des EFs ▼ ▼ 8.2 ▼ armement EF Temps de cycle automate armement EF : Temps de cycle automate périodique armement EF ▼ ▼ ▼ Temps restant ▼ Emissions des EFs = temps de traitements des demandes par le coupleur TSX ETY 110 WS et lecture du message sur le bus X ▼ Note : Les EFs TCPIP-OPEN sont utilisés par les DFBs, TCP_CNX, TCP_SEND, TCP_RECEIVE. Se reporter au document "OPEN TCP for TSX Premium" concernant la structure et le fonctionnement des EFs TCPIP-OPEN. 8.3 Mesures de performances Ces mesures de performances ont été réalisées entre une application automate serveur TCPIP-OPEN sur Premium TSXP57352 et une application cliente TCPIP-OPEN sur PC sous Windows NT. Temps de cycle périodique de l'automate 50 ms 70 ms 80 ms 90 ms Temps de réponse d'un message de 8 K octets émis sur 4 ports de service TCP 3,7 s 3,33 s 3s 3,75 s Temps de réponse d'un message de 8 K octets émis sur 2 ports de service TCP 3s 8/2 DFBs de Messagerie Libre TCPIP Chapitre 99 Réception de données DFB TCP_RECEIVE 9 Annexes 9.1 Différences avec les OFB PL7-3 L'offre est similaire sur la gamme Série 7 avec ETH110. Les différences sont principalement : • Performances : Le coupleur ETH110 ne supporte que le profil de communication TCPIP_OPEN. Les performances avec le coupleur TSX ETY 110 WS seront fonction de l’utilisation des autres fonctionnalités du coupleur (Messagerie UNITE, Messagerie MODBUS, HTTP, SNMP, FTP). L’exécution de plusieurs DFB simultanés (dans un même cycle automate) destinés à des échanges de même nature avec un même distant (identifié par le numéro de port et/ou l’adresse IP) n’est pas possible car il n’est pas possible de le gérer dans l’architecture TCPOPEN. • Modes de marches : La gestion des connexions est réalisée par le coupleur dans l’offre ETH110 alors qu’elle est à la charge de l’applicatif automate dans la démarche actuelle avec TCPOPEN. • Configuration : Sur ETH110, la configuration comporte les paramètres du coupleur, la liste des ports utilisés ainsi que la liste des adresses IP distant autorisées. Dans l’offre TCPOPEN, les paramètres du coupleur sont configurés par PL7 et gérés par le système. La liste des ports utilisés et des adresses IP autorisées est gérée par le DFB (ou EF) TCP_CNX. • Programmation PL7 : La méthode de programmation est différente : Les DFBs doivent être entretenus par l’applicatif, alors que les OFB de ETH110 sont entretenus automatiquement. La fonction Echo n’existe pas dans l’architecture TCPOPEN. • Vision externe réseau et distant : L’entité message est connue du coupleur ETH110 alors qu’elle n’est connue que de l’automate dans l’offre TCPOPEN. Ce qui implique pour le cas de l’émission d’un message, la fragmentation en unités de 240 octets sur le réseau. L’interruption d’émission par le Premium d’un message en cours peut entraîner une perte de la fin du message. Pour la réception, la vue réseau est identique au comportement ETH110. • Diagnostic : Les outils de diagnostic utilisés pour les OFB de la série 7 (Applidiag) doivent être remplacés par des outils standards d’exploitation des DFBs intégrés dans le PL7. DFBs de Messagerie Libre TCPIP 9/1 9.2 Rappel sur la communication TCPIP Se reporter aux ouvrages de type : • Préparation au MCSE TCPIP, éditions S & SM. • Préparation au MCSE TCPIP, éditions CAMPUSPRESS. • TCPIP de Douglas Comer, éditions InterEditions. 9/2 DFBs de Messagerie Libre TCPIP