▼
Scroll to page 2
of
887
SQL Gateway EIO0000002417 04/2020 EcoStruxure Machine Expert Bibliothèques communication Guide Utilisateur EIO0000004303.01 07/2021 www.schneider-electric.com Table des matières 1 EcoStruxure Machine Expert - EMailHandling Guide de la bibliothèque. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Partie I 2 EcoStruxure Machine Expert - FtpRemoteFileHandling Guide de la bibliothèque. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Partie II 3 EcoStruxure Machine Expert - HttpHandling Guide de la bibliothèque. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Partie III 4 EcoStruxure Machine Expert - Fonctions de Modem Guide de la bibliothèque Modem. . . . . . . . . . . . . . . . . . . . . . . . . . Partie IV 5 EcoStruxure Machine Expert - MqttHandling Guide de la bibliothèque. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Partie V 6 EcoStruxure Machine Expert - OpcUaHandling Guide de la bibliothèque. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Partie VI 7 EcoStruxure Machine Expert - Fonctions Lecture/Ecriture Modbus et ASCII - Guide de la bibliothèque PLCCommunication Partie VII 8 EcoStruxure Machine Expert - Configuration de variables de réseau - Guide de la bibliothèque SE_NetVarUdp. . . . . . . . . . . . . Partie VIII 9 EcoStruxure Machine Expert - SnmpManager Guide de la bibliothèque. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Partie IX 10 EcoStruxure Machine Expert - SqlRemoteAccess Guide de la bibliothèque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Partie X 11 EcoStruxure Machine Expert - TcpUdpCommunication Guide de la bibliothèque. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Partie XI 12 EcoStruxure Machine Expert - TimeSync Guide de la bibliothèque. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Partie XII EIO0000004303.01 07/2021 2 EcoStruxure Machine Expert EIO0000002762 06/2019 EcoStruxure Machine Expert EMailHandling Guide de la bibliothèque EIO0000002762.00 06/2019 www.schneider-electric.com Le présent document comprend des descriptions générales et/ou des caractéristiques techniques des produits mentionnés. Il ne peut pas être utilisé pour définir ou déterminer l'adéquation ou la fiabilité de ces produits pour des applications utilisateur spécifiques. Il incombe à chaque utilisateur ou intégrateur de réaliser l'analyse de risques complète et appropriée, l'évaluation et le test des produits pour ce qui est de l'application à utiliser et de l'exécution de cette application. Ni la société Schneider Electric ni aucune de ses sociétés affiliées ou filiales ne peuvent être tenues pour responsables de la mauvaise utilisation des informations contenues dans le présent document. Si vous avez des suggestions, des améliorations ou des corrections à apporter à cette publication, veuillez nous en informer. Vous acceptez de ne pas reproduire, excepté pour votre propre usage à titre non commercial, tout ou partie de ce document et sur quelque support que ce soit sans l'accord écrit de Schneider Electric. Vous acceptez également de ne pas créer de liens hypertextes vers ce document ou son contenu. Schneider Electric ne concède aucun droit ni licence pour l'utilisation personnelle et non commerciale du document ou de son contenu, sinon une licence non exclusive pour une consultation « en l'état », à vos propres risques. Tous les autres droits sont réservés. Toutes les réglementations locales, régionales et nationales pertinentes doivent être respectées lors de l'installation et de l'utilisation de ce produit. Pour des raisons de sécurité et afin de garantir la conformité aux données système documentées, seul le fabricant est habilité à effectuer des réparations sur les composants. Lorsque des équipements sont utilisés pour des applications présentant des exigences techniques de sécurité, suivez les instructions appropriées. La non-utilisation du logiciel Schneider Electric ou d'un logiciel approuvé avec nos produits matériels peut entraîner des blessures, des dommages ou un fonctionnement incorrect. Le non-respect de cette consigne peut entraîner des lésions corporelles ou des dommages matériels. © 2019 Schneider Electric. Tous droits réservés. 2 EIO0000002762 06/2019 Table des matières Consignes de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . A propos de ce manuel. . . . . . . . . . . . . . . . . . . . . . . . . . Partie I Informations générales . . . . . . . . . . . . . . . . . . . . . . . Chapitre 1 Présentation de la bibliothèque . . . . . . . . . . . . . . . . . . . Informations générales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Partie II Énumérations et Structures . . . . . . . . . . . . . . . . . . . Chapitre 2 Énumérations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ET_AuthenticationMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ET_Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ET_EMailStatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ET_Priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ET_Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ET_Result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 3 Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ST_CredentialsSendEMail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ST_CredentialsReceiveEMail. . . . . . . . . . . . . . . . . . . . . . . . . . . ST_EMail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ST_TlsSettings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Partie III Variables globales . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 4 Liste des paramètres globaux. . . . . . . . . . . . . . . . . . . . . Liste des paramètres globaux (GPL) . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 5 Liste de variables globales . . . . . . . . . . . . . . . . . . . . . . . Liste de variables globales (GVL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . Partie IV Unités d'organisation de programme (POU) . . . . . . . Chapitre 6 Blocs fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FB_SendEMail. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FB_Pop3EMailClient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 7 Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FC_EtResultToString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Glossaire Index EIO0000002762 06/2019 ......................................... ......................................... 5 11 17 19 19 23 25 26 27 28 30 31 32 37 38 39 41 42 43 45 45 47 47 49 51 52 56 61 61 63 65 3 4 EIO0000002762 06/2019 Consignes de sécurité Informations importantes AVIS Lisez attentivement ces instructions et examinez le matériel pour vous familiariser avec l'appareil avant de tenter de l'installer, de le faire fonctionner, de le réparer ou d'assurer sa maintenance. Les messages spéciaux suivants que vous trouverez dans cette documentation ou sur l'appareil ont pour but de vous mettre en garde contre des risques potentiels ou d'attirer votre attention sur des informations qui clarifient ou simplifient une procédure. EIO0000002762 06/2019 5 REMARQUE IMPORTANTE L'installation, l'utilisation, la réparation et la maintenance des équipements électriques doivent être assurées par du personnel qualifié uniquement. Schneider Electric décline toute responsabilité quant aux conséquences de l'utilisation de ce matériel. Une personne qualifiée est une personne disposant de compétences et de connaissances dans le domaine de la construction, du fonctionnement et de l'installation des équipements électriques, et ayant suivi une formation en sécurité leur permettant d'identifier et d'éviter les risques encourus. QUALIFICATION DU PERSONNEL Une personne qualifiée est une personne qui a les qualifications suivantes : Compétences et connaissances liées à la construction et à l'exploitation d'équipements électriques et à l'installation. Connaissance de l'exploitation des fonctionnalités de la machine dans l'implémentation du logiciel. A reçu une formation en sécurité permettant de reconnaître et d'éviter les dangers potentiels. La personne qualifiée doit être capable de détecter d'éventuels dangers qui pourraient découler du paramétrage, de modifications des valeurs de paramétrage et plus généralement des équipements mécaniques, électriques ou électroniques. La personne qualifiée doit connaître les normes, dispositions et régulations liées à la prévention des accidents de travail, et doit les observer lors de la conception et de l'implémentation du système. INSTRUCTIONS D'UTILISATION Ce produit est une bibliothèque à utiliser avec un système de commande et des servoamplificateurs. La bibliothèque n'est conçue qu'en vue d'une utilisation telle que décrite dans la présente documentation, appliquée au secteur industriel. Observez en permanence les instructions applicables liées à la sécurité, les conditions spécifiques et les données techniques. Réalisez une analyse des risques en rapport avec l'utilisation spécifique avant d'utiliser ce produit. Prenez les mesures de sécurité qui découlent des résultats. Étant donné que ce produit est utilisé au sein d'un système qui l'englobe, vous devez assurer la sécurité du personnel par la conception même du système global (la conception de la machine, par exemple). Aucune autre utilisation n'est prévue. Toute autre utilisation pourrait être dangereuse. AVANT DE COMMENCER N'utilisez pas ce produit sur les machines non pourvues de protection efficace du point de fonctionnement. L'absence de ce type de protection sur une machine présente un risque de blessures graves pour l'opérateur. 6 EIO0000002762 06/2019 AVERTISSEMENT EQUIPEMENT NON PROTEGE N'utilisez pas ce logiciel ni les automatismes associés sur des appareils non équipés de protection du point de fonctionnement. N'accédez pas aux machines pendant leur fonctionnement. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Cet automatisme et le logiciel associé permettent de commander des processus industriels divers. Le type ou le modèle d'automatisme approprié pour chaque application dépendra de facteurs tels que la fonction de commande requise, le degré de protection exigé, les méthodes de production, des conditions inhabituelles, la législation, etc. Dans certaines applications, plusieurs processeurs seront nécessaires, notamment lorsque la redondance de sauvegarde est requise. Vous seul, en tant que constructeur de machine ou intégrateur de système, pouvez connaître toutes les conditions et facteurs présents lors de la configuration, de l'exploitation et de la maintenance de la machine, et êtes donc en mesure de déterminer les équipements automatisés, ainsi que les sécurités et verrouillages associés qui peuvent être utilisés correctement. Lors du choix de l'automatisme et du système de commande, ainsi que du logiciel associé pour une application particulière, vous devez respecter les normes et réglementations locales et nationales en vigueur. Le document National Safety Council's Accident Prevention Manual (reconnu aux Etats-Unis) fournit également de nombreuses informations utiles. Dans certaines applications, telles que les machines d'emballage, une protection supplémentaire, comme celle du point de fonctionnement, doit être fournie pour l'opérateur. Elle est nécessaire si les mains ou d'autres parties du corps de l'opérateur peuvent entrer dans la zone de point de pincement ou d'autres zones dangereuses, risquant ainsi de provoquer des blessures graves. Les produits logiciels seuls, ne peuvent en aucun cas protéger les opérateurs contre d'éventuelles blessures. C'est pourquoi le logiciel ne doit pas remplacer la protection de point de fonctionnement ou s'y substituer. Avant de mettre l'équipement en service, assurez-vous que les dispositifs de sécurité et de verrouillage mécaniques et/ou électriques appropriés liés à la protection du point de fonctionnement ont été installés et sont opérationnels. Tous les dispositifs de sécurité et de verrouillage liés à la protection du point de fonctionnement doivent être coordonnés avec la programmation des équipements et logiciels d'automatisation associés. NOTE : La coordination des dispositifs de sécurité et de verrouillage mécaniques/électriques du point de fonctionnement n'entre pas dans le cadre de cette bibliothèque de blocs fonction, du Guide utilisateur système ou de toute autre mise en œuvre référencée dans la documentation. EIO0000002762 06/2019 7 DEMARRAGE ET TEST Avant toute utilisation de l'équipement de commande électrique et des automatismes en vue d'un fonctionnement normal après installation, un technicien qualifié doit procéder à un test de démarrage afin de vérifier que l'équipement fonctionne correctement. Il est essentiel de planifier une telle vérification et d'accorder suffisamment de temps pour la réalisation de ce test dans sa totalité. AVERTISSEMENT RISQUES INHERENTS AU FONCTIONNEMENT DE L'EQUIPEMENT Assurez-vous que toutes les procédures d'installation et de configuration ont été respectées. Avant de réaliser les tests de fonctionnement, retirez tous les blocs ou autres cales temporaires utilisés pour le transport de tous les dispositifs composant le système. Enlevez les outils, les instruments de mesure et les débris éventuels présents sur l'équipement. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Effectuez tous les tests de démarrage recommandés dans la documentation de l'équipement. Conservez toute la documentation de l'équipement pour référence ultérieure. Les tests logiciels doivent être réalisés à la fois en environnement simulé et réel. Vérifiez que le système entier est exempt de tout court-circuit et mise à la terre temporaire non installée conformément aux réglementations locales (conformément au National Electrical Code des Etats-Unis, par exemple). Si des tests diélectriques sont nécessaires, suivez les recommandations figurant dans la documentation de l'équipement afin d'éviter de l'endommager accidentellement. Avant de mettre l'équipement sous tension : Enlevez les outils, les instruments de mesure et les débris éventuels présents sur l'équipement. Fermez le capot du boîtier de l'équipement. Retirez toutes les mises à la terre temporaires des câbles d'alimentation entrants. Effectuez tous les tests de démarrage recommandés par le fabricant. 8 EIO0000002762 06/2019 FONCTIONNEMENT ET REGLAGES Les précautions suivantes sont extraites du document NEMA Standards Publication ICS 7.1-1995 (la version anglaise prévaut) : Malgré le soin apporté à la conception et à la fabrication de l'équipement ou au choix et à l'évaluation des composants, des risques subsistent en cas d'utilisation inappropriée de l'équipement. Il arrive parfois que l'équipement soit déréglé accidentellement, entraînant ainsi un fonctionnement non satisfaisant ou non sécurisé. Respectez toujours les instructions du fabricant pour effectuer les réglages fonctionnels. Les personnes ayant accès à ces réglages doivent connaître les instructions du fabricant de l'équipement et les machines utilisées avec l'équipement électrique. Seuls ces réglages fonctionnels, requis par l'opérateur, doivent lui être accessibles. L'accès aux autres commandes doit être limité afin d'empêcher les changements non autorisés des caractéristiques de fonctionnement. EIO0000002762 06/2019 9 10 EIO0000002762 06/2019 A propos de ce manuel Présentation Objectif du document Ce document décrit la bibliothèque EmailHandling. Cette bibliothèque permet à votre contrôleur d'envoyer des e-mails avec pièces-jointes à un ou plusieurs destinataires en personnalisant le contenu, et de recevoir des e-mails d'un ou plusieurs expéditeurs. Champ d'application Ce document a été actualisé pour le lancement d’EcoStruxureTM Machine Expert V1.1. Les caractéristiques techniques des équipements décrits dans ce document sont également fournies en ligne. Pour accéder à ces informations en ligne : Etape Action 1 Accédez à la page d'accueil de Schneider Electric www.schneider-electric.com. 2 Dans la zone Search, saisissez la référence d'un produit ou le nom d'une gamme de produits. N'insérez pas d'espaces dans la référence ou la gamme de produits. Pour obtenir des informations sur un ensemble de modules similaires, utilisez des astérisques (*). 3 Si vous avez saisi une référence, accédez aux résultats de recherche Product Datasheets et cliquez sur la référence qui vous intéresse. Si vous avez saisi une gamme de produits, accédez aux résultats de recherche Product Ranges et cliquez sur la gamme de produits qui vous intéresse. 4 Si plusieurs références s'affichent dans les résultats de recherche Products, cliquez sur la référence qui vous intéresse. 5 Selon la taille de l'écran, vous serez peut-être amené à faire défiler la page pour consulter la fiche technique. 6 Pour enregistrer ou imprimer une fiche technique au format .pdf, cliquez sur Download XXX product datasheet. Les caractéristiques présentées dans ce document devraient être identiques à celles fournies en ligne. Toutefois, en application de notre politique d'amélioration continue, nous pouvons être amenés à réviser le contenu du document afin de le rendre plus clair et plus précis. Si vous constatez une différence entre le document et les informations fournies en ligne, utilisez ces dernières en priorité. EIO0000002762 06/2019 11 Information spécifique au produit AVERTISSEMENT PERTE DE CONTROLE Le concepteur d'un système de commande doit envisager les modes de défaillance possibles des chemins de commande et, pour certaines fonctions de commande critiques, prévoir un moyen d'atteindre un état sécurisé en cas de défaillance d'un chemin, et après cette défaillance. Par exemple, l'arrêt d'urgence, l'arrêt en cas de surcourse, la coupure de courant et le redémarrage sont des fonctions de contrôle cruciales. Des canaux de commande séparés ou redondants doivent être prévus pour les fonctions de commande critique. Les chemins de commande système peuvent inclure les liaisons de communication. Soyez particulièrement attentif aux implications des retards de transmission imprévus ou des pannes de liaison. Respectez toutes les réglementations de prévention des accidents ainsi que les consignes de sécurité locales.1 Chaque implémentation de cet équipement doit être testée individuellement et entièrement pour s'assurer du fonctionnement correct avant la mise en service. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. 1 Pour plus d'informations, consultez le document NEMA ICS 1.1 (dernière édition), « Safety Guidelines for the Application, Installation, and Maintenance of Solid State Control » (Directives de sécurité pour l'application, l'installation et la maintenance de commande statique) et le document NEMA ICS 7.1 (dernière édition), « Safety Standards for Construction and Guide for Selection, Installation, and Operation of Adjustable-Speed Drive Systems » (Normes de sécurité relatives à la construction et manuel de sélection, installation et opération de variateurs de vitesse) ou son équivalent en vigueur dans votre pays. Avant de tenter de fournir une solution (machine ou processus) pour une application spécifique en utilisant les POU trouvés dans la bibliothèque, vous devez tenir compte de la réalisation et de l'exécution des bonnes pratiques. La liste non exhaustive de ces pratiques liées à cette bibliothèque inclut l'analyse des risques, la sécurité fonctionnelle, la compatibilité des composants, les tests et la validation du système. 12 EIO0000002762 06/2019 AVERTISSEMENT UTILISATION INCORRECTE DES UNITES ORGANISATIONNELLES DU PROGRAMME Effectuez une analyse de la sécurité de l'application et des équipements installés. Vérifiez que les POU sont compatibles avec les équipements du système et n'ont pas d'effets inattendus sur le bon fonctionnement du système. Utilisez les paramètres appropriés, notamment les valeurs limites, et observez l'usure de la machine et son fonctionnement à l'arrêt. Vérifiez que les capteurs et déclencheurs sont compatibles avec les POU sélectionnés. Testez de manière approfondie toutes les fonctions durant la vérification et la mise en service dans tous les modes de fonctionnement. Indiquez des méthodes indépendantes pour les fonctions de commande critiques (arrêt d'urgence, conditions de dépassement des valeurs limites, etc.) en fonction d'une analyse de la sécurité, des règles correspondantes et des réglementations. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. AVERTISSEMENT FONCTIONNEMENT IMPRÉVU DE L'ÉQUIPEMENT N'utiliser que le logiciel approuvé par Schneider Electric pour faire fonctionner cet équipement. Mettez à jour votre programme d'application chaque fois que vous modifiez la configuration matérielle physique. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Les transferts incomplets, qu'il s'agisse de fichiers de données, d'application et/ou de micrologiciel, peuvent avoir des conséquences graves sur votre machine ou votre contrôleur. En cas coupure de courant (volontaire ou non) ou d'interruption de la communication pendant un transfert de fichier, votre machine peut devenir inopérante ou votre application peut tenter d'utiliser un fichier de données endommagé. En cas d’interrruption, relancez le transfert. Veillez à inclure l'impact des fichiers de données endommagés dans votre analyse des risques. EIO0000002762 06/2019 13 AVERTISSEMENT FONCTIONNEMENT IMPRÉVU DE L'ÉQUIPEMENT, PERTE DE DONNÉES OU FICHIER ENDOMMAGÉ N'interrompez pas un transfert de données en cours. Si le transfert est interrompu pour une raison quelconque, relancez-le. Ne mettez pas votre machine en service tant que le transfert de fichier n'est pas terminé, sauf si vous avez pris en compte les fichiers endommagés dans votre analyse des risques et si vous avez mis en place des mesures appropriées pour prévenir les conséquences potentiellement graves dues à des échecs de transfert. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. L'utilisation de cette bibliothèque comme outil de contrôle d'une machine nécessite une attention et des dispositions particulières afin d'éviter des conséquences involontaires dues à l'exploitation de la machine commandée, à des changements d'état ou à l'altération de la mémoire de données ou des éléments de fonctionnement de la machine. AVERTISSEMENT FONCTIONNEMENT IMPRÉVU DE L'ÉQUIPEMENT Placer les instruments de l'opérateur du système de commande près de la machine ou à un endroit qui permet d'avoir une vision parfaite de la machine. Protéger les commandes opérateur contre tout accès non autorisé. Si le contrôle à distance est une caractéristique nécessaire de l'application, veiller à ce qu'une personne qualifiée et compétente soit présente sur place pour surveiller le fonctionnement contrôlé à distance. Configurez et installez l'entrée Run/Stop (si elle est présente) ou un autre moyen externe dans l'application, afin que le contrôle local du démarrage ou de l'arrêt de l'équipement puisse être maintenu indépendamment des commandes envoyées à distance à l'équipement. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. 14 EIO0000002762 06/2019 AVERTISSEMENT FONCTIONNEMENT IMPRÉVU DE L'ÉQUIPEMENT Ne mettez pas en service un fichier de programme d'application (fichier de réception, fichier de commandes numériques, micrologiciel) reçu en pièce-jointe d'un e-mail sans l'avoir testé minutieusement pour en vérifier la bonne exécution. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Documents à consulter Titre du document Référence EcoStruxure Machine Expert - Fonctions et bibliothèques - Guide de l'utilisateur EIO0000002829 (ENG) ; EIO0000002830 (FRE) ; EIO0000002831 (GER) ; EIO0000002832 (ITA) ; EIO0000002833 (SPA) ; EIO0000002834 (CHS) ; EcoStruxure Machine Expert - Guide de programmation EIO0000002854 (ENG) ; EIO0000002855 (FRE) ; EIO0000002856 (GER) ; EIO0000002857 (ITA) ; EIO0000002858 (SPA) ; EIO0000002859 (CHS) ; Terminologie utilisée dans les normes Les termes techniques, la terminologie, les symboles et les descriptions correspondantes employés dans ce manuel ou figurant dans ou sur les produits proviennent généralement des normes internationales. Dans les domaines des systèmes de sécurité fonctionnelle, des variateurs et de l'automatisme en général, les termes employés sont sécurité, fonction de sécurité, état sécurisé, défaut, réinitialisation du défaut, dysfonctionnement, panne, erreur, message d'erreur, dangereux, etc. Entre autres, les normes concernées sont les suivantes : Norme Description IEC 61131-2:2007 Automates programmables - Partie 2 : exigences et essais des équipements ISO 13849-1:2015 Sécurité des machines : parties des systèmes de commande relatives à la sécurité. Principes généraux de conception EN 61496-1:2013 Sécurité des machines : équipements de protection électro-sensibles. Partie 1 : Prescriptions générales et essais EIO0000002762 06/2019 15 Norme Description ISO 12100:2010 Sécurité des machines - Principes généraux de conception - Appréciation du risque et réduction du risque EN 60204-1:2006 Sécurité des machines - Équipement électrique des machines - Partie 1 : règles générales ISO 14119:2013 Sécurité des machines - Dispositifs de verrouillage associés à des protecteurs - Principes de conception et de choix ISO 13850:2015 Sécurité des machines - Fonction d'arrêt d'urgence - Principes de conception IEC 62061:2015 Sécurité des machines - Sécurité fonctionnelle des systèmes de commande électrique, électronique et électronique programmable relatifs à la sécurité IEC 61508-1:2010 Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité : prescriptions générales. IEC 61508-2:2010 Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité : exigences pour les systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité. IEC 61508-3:2010 Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité : exigences concernant les logiciels. IEC 61784-3:2016 Réseaux de communication industriels - Profils - Partie 3 : Bus de terrain de sécurité fonctionnelle - Règles générales et définitions de profils. 2006/42/EC Directive Machines 2014/30/EU Directive sur la compatibilité électromagnétique 2014/35/EU Directive sur les basses tensions De plus, des termes peuvent être utilisés dans le présent document car ils proviennent d'autres normes telles que : Norme Description Série IEC 60034 Machines électriques rotatives Série IEC 61800 Entraînements électriques de puissance à vitesse variable Série IEC 61158 Communications numériques pour les systèmes de mesure et de commande – Bus de terrain utilisés dans les systèmes de commande industriels Enfin, le terme zone de fonctionnement utilisé dans le contexte de la description de dangers spécifiques a la même signification que les termes zone dangereuse ou zone de danger employés dans la directive Machines (2006/42/EC) et la norme ISO 12100:2010. NOTE : Les normes susmentionnées peuvent s'appliquer ou pas aux produits cités dans la présente documentation. Pour plus d'informations sur chacune des normes applicables aux produits décrits dans le présent document, consultez les tableaux de caractéristiques de ces références de produit. 16 EIO0000002762 06/2019 EcoStruxure Machine Expert Informations générales EIO0000002762 06/2019 Partie I Informations générales Informations générales EIO0000002762 06/2019 17 Informations générales 18 EIO0000002762 06/2019 EcoStruxure Machine Expert Description EIO0000002762 06/2019 Chapitre 1 Présentation de la bibliothèque Présentation de la bibliothèque Informations générales Présentation de la bibliothèque Cette bibliothèque EmailHandling fournit des fonctions de client de messagerie, permettant à votre contrôleur d'envoyer des e-mails au contenu personnalisable à un ou plusieurs destinataires. Le type de protocole utilisé pour le trafic des e-mails est SMTP (standard). Il est possible de recevoir ou supprimer des e-mails d'un serveur en utilisant le protocole POP3 (Post Office Protocol 3). Cette bibliothèque prend en charge SMTP et POP3 via une connexion sécurisée en utilisant TLS. La prise en charge d'une connexion qui utilise TLS dépend du contrôleur où se trouve FB_TcpClient2. Consultez le manuel spécifique de votre contrôleur pour vérifier si la communication TCP qui utilise TLS est prise en charge. Vous pouvez connecter votre contrôleur à un serveur de messagerie pour envoyer des e-mails concernant l'état de votre machine ou un rapport sur les principaux indicateurs de performance. 1 2 3 Contrôleur Serveur de messagerie Destinataires/Expéditeur Caractéristiques de la bibliothèque Le tableau suivant indique les caractéristiques de la bibliothèque : Caractéristique Valeur Titre de la bibliothèque EmailHandling Société Schneider Electric Catégorie Communication EIO0000002762 06/2019 19 Description Caractéristique Valeur Composant Suite IP (Internet Protocol) Espace de noms par défaut SE_EMail Attribut du modèle de langage Uniquement accès qualifié (voir EcoStruxure Bibliothèque post-compatible Oui (FCL) Machine Expert, Fonctions et bibliothèques - Guide de l'utilisateur) NOTE : Cette bibliothèque est paramétrée en Uniquement accès qualifié (qualified-access-only). Cela signifie que l'on ne peut accéder aux POU, aux structures de données, aux énumérations, et aux constantes qu'en utilisant l'espace de nom de la bibliothèque. L'espace de noms par défaut de la bibliothèque est SE_EMail. Exemple de projet Le projet d'exemple EMailHandlingExample est fourni avec la bibliothèque. L’exemple de projet montre comment implémenter les composants à partir de la bibliothèque EmailHandling. L'exemple de projet est installé sur votre PC avec le logiciel de programmation. Pour ouvrir l’exemple de projet, procédez comme suit : Étape (1) 20 Action Commentaire 1 Dans EcoStruxure Machine Expert Logic Builder, exécutez la commande Nouveau projet. – 2 Dans la boîte de dialogue Nouveau projet, sélectionnez A partir de l’exemple dans la liste Type de projet. – 3 Sur la droite de la boîte de dialogue Nouveau Résultat : les exemples disponibles sont projet, sélectionnez le contrôleur(1) dans la liste répertoriés dans la zone de texte Exemples correspondants. Contrôleur. 4 Sélectionnez l’exemple dans la liste Exemples correspondants. – 5 Entrez le nom du nouveau projet et sélectionnez l’emplacement du fichier. – 6 Cliquez sur le bouton OK. Résultat : un nouveau projet est créé en fonction de l’exemple sélectionné. PacDrive LMC Pro/Pro2, TM251MESE, TM262M25MESS8T EIO0000002762 06/2019 Description Éléments généraux à prendre en compte Prenez en compte les limites suivantes pour le transfert d'e-mails : Seuls les symboles ASCII sont pris en charge. Seules les adresses IPv4 sont prises en charge. La bibliothèque EmailHandling intègre des pointeurs sur les adresses. La fonction d'accusé de réception n'est pas pris en charge. L'envoi ou la réception de fichiers par e-mail engendre la perte des attributs des fichiers. Si l'adresse d'un destinataire n'existe pas, la configuration du serveur détermine si un e-mail de retour est créé ou si FB_SendEMail peut créer un message de diagnostic. L'archivage des e-mails (éléments envoyés et reçus) doit être effectué dans le programme d'application. Le stockage automatique du trafic e-mail sur le système de fichiers du contrôleur n'est pas implémenté car les e-mails sont principalement gérés dans la mémoire RAM (Random Access Memory) du contrôleur. L'exécution de la commande Changement en ligne peut modifier le contenu des adresses. ATTENTION POINTEUR INCORRECT Vérifiez la validité des pointeurs lors de leur utilisation sur les adresses et de l'exécution de la commande Changement en ligne. Le non-respect de ces instructions peut provoquer des blessures ou des dommages matériels. La bibliothèque décrite dans ce document utilise la bibliothèque TcpUdpCommunication en interne. Les bibliothèques TcpUdpCommunication (Schneider Electric) et CAA Net Base Services (CAA Technical Workgroup) utilisent les mêmes ressources système sur le contrôleur. Leur utilisation simultanée dans la même application peut perturber le fonctionnement du contrôleur. AVERTISSEMENT FONCTIONNEMENT IMPRÉVU DE L’EQUIPEMENT N'utilisez pas la bibliothèque TcpUdpCommunication (Schneider Electric) avec la bibliothèque CAA Net Base Services (CAA Technical Workgroup) simultanément dans la même application. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. EIO0000002762 06/2019 21 Description NOTE : Schneider Electric respecte les bonnes pratiques de l'industrie, en vigueur dans le développement et la mise en œuvre des systèmes de contrôle. Cette approche, dite de « défense en profondeur », permet de sécuriser les systèmes de contrôle industriels. Elle place les contrôleurs derrière des pare-feu pour restreindre leur accès aux seuls personnels et protocoles autorisés. AVERTISSEMENT ACCÈS NON AUTHENTIFIÉ ET UTILISATION NON AUTORISÉE DE LA MACHINE Estimer si votre environnement ou vos machines sont connecté(e)s à votre infrastructure vitale et, le cas échéant, prendre les mesures nécessaires de prévention, basées sur le principe de défense en profondeur, avant de connecter le système d'automatisme à un réseau quelconque. Limiter au strict nécessaire le nombre d'équipements connectés à un réseau. Isoler votre réseau industriel des autres réseaux au sein de votre société. Protéger chaque réseau contre les accès non autorisés à l'aide d'un pare-feu, d'un VPN ou d'autres mesures de sécurité éprouvées. Surveiller les activités au sein de votre système. Empêcher tout accès direct ou liaison directe aux équipements sensibles par des utilisateurs non autorisés ou des actions non authentifiées. Préparer un plan de récupération intégrant la sauvegarde des informations de votre système et de votre processus. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. En configurant une liste blanche avec l'entrée i_pbyWhiteListSender, les entrées de cette liste sont comparées à l'e-mail de l'expéditeur défini dans l'en-tête de l'e-mail reçu. Cette fonction ne fournit pas la protection contre la manipulation non intentionnelle du champ d'en-tête From: dans l'e-mail reçu. Aucun programme antivirus n'est disponible sur le contrôleur. Veillez à en configurer un côté serveur. 22 EIO0000002762 06/2019 EcoStruxure Machine Expert Énumérations et Structures EIO0000002762 06/2019 Partie II Énumérations et Structures Énumérations et Structures Contenu de cette partie Cette partie contient les chapitres suivants : Chapitre Titre du chapitre Page 2 Énumérations 25 3 Structures 37 EIO0000002762 06/2019 23 Énumérations et Structures 24 EIO0000002762 06/2019 EcoStruxure Machine Expert Énumérations EIO0000002762 06/2019 Chapitre 2 Énumérations Énumérations Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page ET_AuthenticationMode 26 ET_Command 27 ET_EMailStatus 28 ET_Priority 30 ET_Protocol 31 ET_Result 32 EIO0000002762 06/2019 25 Énumérations ET_AuthenticationMode Présentation Type : Énumération Disponible à partir de la version : V1.0.0.0 Description L'énumération ET_AuthenticationMode définit le mode d'authentification requis pour la connexion à un serveur de messagerie. Éléments de l'énumération Nom Type de données Valeur Description NoAuthentication INT 0 Aucune authentification utilisateur requise. Login INT 10 Mécanisme LOGIN utilisé pour l'authentification. Plain INT 20 Mécanisme PLAIN utilisé pour l'authentification. Utilisé par 26 FB_SendEMail EIO0000002762 06/2019 Énumérations ET_Command Présentation Type : Énumération Disponible à partir de la version : 1.1.2.0 Description L'énumération ET_Command indique la commande qui est exécutée. Éléments de l'énumération Nom Type de données Valeur Description NoCommand INT 0 Aucune commande n'est exécutée. CheckInbox INT 1 Le nombre d'e-mails disponibles sur le serveur est vérifiée. Receive INT 2 Les e-mails sont reçus du serveur. Delete INT 3 L'e-mail défini avec l'ID unique à l'entrée i_sUniqueID est supprimé du serveur. Utilisé par FB_Pop3EMailClient EIO0000002762 06/2019 27 Énumérations ET_EMailStatus Présentation Type : Énumération Disponible à partir de la version : 1.1.2.0 Description L'énumération ET_EMailStatus fournit les informations d'état de l'e-mail. Éléments de l'énumération Nom Type de données Valeur Description Empty INT 0 La structure est vide ou les données de l'e-mail ne sont pas valides. Ok INT 1 L'e-mail a été bien reçu. SenderBlocked INT 2 L'adresse de l'expéditeur est bloquée dans la liste blanche, ou est introuvable dans l'en-tête de l'e-mail, ou dépasse la longueur maximale de 200 octets. NotSupported INT 3 Le format de l'e-mail n'est pas pris en charge. Types de contenu (Content-Type) pris en charge (non valide pour les pièces-jointes) : text/plain multipart/mixed Schémas d'encodage de transfert (Content-TransferEncoding) pris en charge : 7-bit quoted-printable base 64 InvalidHeader INT 4 L'en-tête de l'e-mail n'est pas valide. InvalidAttachmentPath INT 5 Le chemin d'accès à la pièce-jointe de l'e-mail n'est pas valide : Le chemin d'accès dépasse la longueur maximale de 255 octets, ou Aucun nom de fichier n'est fourni. 28 EIO0000002762 06/2019 Énumérations Nom Type de données Valeur Description InvalidAttachmentExtension INT 6 L'extension de la pièce-jointe de l'e-mail n'est pas valide. Il est impossible de recevoir une pièce-jointe avec l'une des extensions suivantes : .ap_ .app .cf_ .cfg .crc .err .frc .log .prj .rcp .rsi .urf Utilisé par FB_Pop3EMailClient EIO0000002762 06/2019 29 Énumérations ET_Priority Présentation Type : Énumération Disponible à partir de la version : 1.1.2.0 Description L'énumération ET_Priority définit le niveau de priorité attribué à l'e-mail. Éléments de l'énumération Nom Type de données Valeur Description Normal INT 0, 3 Le niveau de priorité de l'e-mail est normal. VeryHigh INT 1 Le niveau de priorité est très élevé. High INT 2 Le niveau de priorité est élevé. Low INT 4 Le niveau de priorité est faible. VeryLow INT 5 Le niveau de priorité est très faible. Utilisé par 30 FB_SendEMail EIO0000002762 06/2019 Énumérations ET_Protocol Présentation Type : Énumération Disponible à partir de la version : V1.0.0.0 Description L'énumération ET_Protocol définit le type de protocole utilisé pour le transfert d'e-mails. Éléments de l'énumération Nom Type de données Valeur Description SMTP INT 0 Le protocole utilisé pour le transfert d'e-mails est SMTP (Simple Mail Transfer Protocol). eSMTP INT 1 Le protocole utilisé pour le transfert des e-mails est eSMTP (extended Simple Mail Transfer Protocol). Select this protocol to use additional protocol extensions, for example authentication, attachment, or email priority. Utilisé par FB_SendEMail EIO0000002762 06/2019 31 Énumérations ET_Result Présentation Type : Énumération Disponible à partir de la version : V1.0.0.0 Description L'énumération ET_Result contient les valeurs possibles qui donnent les résultats des opérations exécutées par le bloc fonction. Éléments de l'énumération Nom Type de données Valeur Description Si q_xError d'un bloc fonction (voir page 52) est FALSE, l'un des messages d'état suivants apparaît. Ok UDINT 0 L'opération a abouti. Disabled UDINT 1 Le bloc fonction est désactivé. Initializing UDINT 2 Le bloc fonction est en cours d'initialisation. Ready UDINT 4 Le bloc fonction est prêt. ConnectingToServer UDINT 5 Le client se connecte au serveur. DisconnectingFromServer UDINT 6 Le client se déconnecte du serveur. NoCommand UDINT 7 Aucune commande sélectionnée. SendingEMail UDINT 8 Un e-mail est envoyé au serveur. ConnectedToServer UDINT 50 Une connexion au serveur a été établie. MessageFromServerReceived UDINT 52 Échange de données avec le serveur : un message a été reçu. MessageToServerSent UDINT 54 Échange de données avec le serveur : un message a été envoyé au serveur. SendingMessageToServer UDINT 55 Échange de données avec le serveur : un message est envoyé au serveur. Busy UDINT 56 Le bloc fonction est occupé. WaitingForExpectedMessage UDINT 58 Échange de données avec le serveur : en attente du message. OpeningAttachment UDINT 60 La pièce-jointe est ouverte dans un système de fichiers du contrôleur. SendingAttachment UDINT 62 L'envoi de la pièce jointe est en cours. 32 EIO0000002762 06/2019 Énumérations Nom Type de données Valeur Description DownloadingEMail UDINT 64 L'e-mail est téléchargé du serveur. SavingAttachment UDINT 66 L'enregistrement de la pièce-jointe dans le système de fichiers du contrôleur est en cours. DeletingEMail UDINT 68 L'e-mail est supprimé du serveur. ServerOk UDINT 70 Le serveur est à l'état opérationnel. DeletingFile UDINT 72 Le fichier non valide est supprimé du système. Si le paramètre q_xError d'un bloc fonction (voir page 52) est TRUE, l'un des messages d'état suivants apparaît. InvalidAuthenticationMode UDINT 101 La valeur détectée de i_etAuthenticationMode n'est pas valide. InvalidServerIP UDINT 102 Le paramètre i_sServerIP est vide. Il doit avoir une valeur. InvalidDomainName UDINT 104 Le paramètre i_sDomainName est vide. Il doit avoir une valeur. InvalidSenderEMail UDINT 106 Le paramètre i_sSenderEMail est vide. Il doit avoir une valeur. InvalidRecipientEMail UDINT 108 Le paramètre i_sRecipientEMail est vide. Il doit avoir une valeur. InvalidProtocol UDINT 110 La valeur détectée de i_etProtocol n'est pas valide. InvalidMessageAddress UDINT 111 La valeur détectée de i_pbyMessage n'est pas valide. AuthenticationFailed UDINT 112 L'authentification a échoué : le nom d'utilisateur (i_sUsername) ou le mot de passe (i_sPassword) est incorrect. AuthenticationRequired UDINT 113 Authentification requise : activez un mode d'authentification. InvalidUsername UDINT 114 Le paramètre i_sUsername est vide. Il doit avoir une valeur. InvalidPassword UDINT 116 Le paramètre i_sPassword est vide. Il doit avoir une valeur. EIO0000002762 06/2019 33 Énumérations Nom Type de données Valeur Description FunctionNotSupported UDINT 118 La fonction sélectionnée, comme le mode d'authentification sélectionné, n'est pas prise en charge. Définissez i_etProtocol sur ET_Protocol.eSMTP ou utilisez un autre i_etAuthenticationMode. SyntaxError UDINT 120 Une erreur de syntaxe, comme une adresse de destinataire vide, a été détectée. RecipientAddressTooLong UDINT 122 L'adresse de destinataire détectée dépasse la longueur autorisée de 200 octets. MailboxUnavailable UDINT 124 L'action demandée est impossible car la messagerie est indisponible. OpenAttachmentFailed UDINT 126 Impossible d'ouvrir la pièce jointe. ReadAttachmentFailed UDINT 128 Impossible de lire la pièce jointe. CloseAttachmentFailed UDINT 130 Impossible de fermer la pièce jointe. MessageRejectedFromRecipient UDINT 132 L'e-mail a été rejeté par le destinataire. EMailNotFound UDINT 133 L'e-mail correspondant est introuvable sur le serveur. Vérifiez la valeur de i_sUniqueId. InvalidPriority UDINT 134 La valeur de i_etPriority n'est pas valide. InvalidNumberEMailsToReceive UDINT 135 La valeur détectée de i_uiEMailsToReceive n'est pas valide. Elle doit être supérieure à 0 et inférieure ou égale à GPL.Gc_uiInboxSize. ServerError UDINT 136 Le serveur a détecté une erreur. InvalidWhiteListSize UDINT 137 La valeur détectée de i_udiWhiteListSize n'est pas valide. Elle doit être supérieure à 0. InvalidFilePath UDINT 138 La valeur détectée de i_sFilePath n'est pas valide. InvalidMaxNumberOfAttachments UDINT 139 La valeur de GPL.Gc_udiMaxNumberOfAttachments n’est pas valide. Elle doit être supérieure à 0. InvalidMailboxBuffer UDINT 140 La valeur de i_pbyMailboxBuffer n’est pas valide. InvalidCommand UDINT 141 La valeur de i_etCommand n’est pas valide. InvalidBufferSize UDINT 142 La valeur de i_udiBufferSize n’est pas valide. Elle doit être supérieure à 0. 34 EIO0000002762 06/2019 Énumérations Nom Type de données Valeur Description NotSupported UDINT 143 Cette fonction n'est plus prise en charge. InvalidInboxSize UDINT 144 La valeur de Gc_udiInboxSize n’est pas valide. Elle doit être supérieure à 0. InvalidUniqueId UDINT 145 La valeur de i_sUniqueID n’est pas valide. SaveAttachmentFailed UDINT 146 L'enregistrement de pièce jointe dans le système de fichiers du contrôleur a échoué. InvalidWhiteList UDINT 147 La valeur de i_pyWhiteListSender n’est pas valide. Comme i_udiWhiteListSize est supérieur à 0, i_pyWhiteListSender doit avoir une adresse valide (>0). MailboxBufferFull UDINT 148 Le tampon de la boîte aux lettres est plein. Le nombre d'octets reçus est supérieur à i_udiBufferSize. DecodingError UDINT 149 Une erreur interne a été détectée lors du décodage d'un e-mail. FailedToConnectToServer UDINT 150 La connexion au serveur n'a pas été établie. Vérifiez que la connexion Ethernet ou les paramètres i_sServerIP / i_sServerPort. InvalidMessageFromServer UDINT 152 Le message reçu du serveur n'est pas valide. UnexpectedMessageFromServer UDINT 153 Le serveur a envoyé un message inattendu. FailedToReceiveMessageFromServer UDINT 154 Un timeout a expiré : aucune réponse n'a été reçue du serveur pendant le délai imparti. FailedToSendMessageToServer UDINT 156 Une erreur de communication a été détectée : impossible d'envoyer le message au serveur. UnexpectedProgramBehavior UDINT 200 Une erreur interne a été détectée. Utilisé par FB_SendEMail FB_PopEMailClient EIO0000002762 06/2019 35 Énumérations 36 EIO0000002762 06/2019 EcoStruxure Machine Expert Structures EIO0000002762 06/2019 Chapitre 3 Structures Structures Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page ST_CredentialsSendEMail 38 ST_CredentialsReceiveEMail 39 ST_EMail 41 ST_TlsSettings 42 EIO0000002762 06/2019 37 Structures ST_CredentialsSendEMail Présentation Type : Structure Disponible à partir de : V1.0.0.0 Hérite de : – Description La structure ST_CredentialsSendEMail contient des informations spécifiques à un utilisateur pour lui permettre de se connecter à un serveur de messagerie externe et d'envoyer des e-mails. Éléments de la structure Nom Type de données Description i_sServerIP STRING[GPL.Gc_uiIpStr ingSize] Adresse IP du serveur de messagerie externe. i_uiServerPort UINT Port du serveur de messagerie externe. i_etProtocol ET_Protocol Énumération indiquant le protocole. (voir page 31) i_sDomainName STRING[200] Domaine du client. i_sSenderEMail STRING[200] Adresse électronique de l'expéditeur. i_sUsername STRING[60] Nom d'utilisateur permettant d'accéder au serveur de messagerie externe. i_sPassword STRING[60] Mot de passe permettant d'accéder au serveur de messagerie externe. i_etAuthenticationMode ET_AuthenticationMode Énumération indiquant le mode d'authentification. (voir page 26) stTlsSettings ST_TlsSettings (voir page 42) Structure qui définit la configuration TLS (Transport Layer Security). Utilisé par 38 FB_SendEMail EIO0000002762 06/2019 Structures ST_CredentialsReceiveEMail Présentation Type : Structure Disponible à partir de : V1.1.2.0 Hérite de : – Description La structure ST_CredentialsReceiveEMail contient des informations spécifiques à un utilisateur pour lui permettre de se connecter à un serveur de messagerie externe pour recevoir et supprimer des e-mails en utilisant POP3. Éléments de la structure Nom Type de données Description i_sServerIP STRING[GPL.Gc_uiIpStr ingSize] Adresse IP du serveur de messagerie externe. i_uiServerPort UINT Port du serveur de messagerie externe. i_sUsername STRING[200] Nom d'utilisateur permettant d'accéder au serveur de messagerie externe. i_sPassword STRING[60] Mot de passe permettant d'accéder au serveur de messagerie externe. i_pbyWhiteListSender POINTER TO BYTE Adresse de départ de la chaîne contenant la ou les adresses de la liste blanche. Si la liste contient plusieurs entrées, un point-virgule doit séparer les adresses e-mail. La taille maximale de chaque adresse est limitée à 200 octets. Une chaîne vide bloque tous les e-mails. Entrez un astérisque et un domaine (*@yourdomain.com) pour permettre la réception des e-mails envoyés par des expéditeurs de ce domaine. Les e-mails d'autres domaines sont bloqués. i_udiWhiteListSize UDINT Taille de la liste blanche. EIO0000002762 06/2019 39 Structures Nom Type de données Description i_xOverwriteAttachment BOOL Si la valeur est TRUE, les pièces-jointes stockées dans le dossier EMailAttachments sont écrasées si une pièce-jointe avec le même nom est téléchargé depuis le serveur. Si la valeur est FALSE, la réception est annulée dès qu'une seconde pièce-jointe avec nom identique est téléchargée. La sortie q_sResultMsg indique le nom du fichier qui a généré l'erreur. stTlsSettings ST_TlsSettings Structure qui définit la configuration TLS (Transport Layer Security). (voir page 42) Utilisé par 40 FB_Pop3EMailClient EIO0000002762 06/2019 Structures ST_EMail Présentation Type : Structure Disponible à partir de la version : V1.1.2.0 Hérite de : – Description La structure ST_EMail contient les informations d'un e-mail reçu. Éléments de la structure Nom Type de données Description q_etEMailStatus ET_EMailStatus Etat de l'e-mail (voir page 28). q_pbyDate POINTER TO BYTE Adresse de départ de la chaîne contenant la date. q_udiLengthOfDate UDINT Longueur de la chaîne. q_pbySenderEMail POINTER TO BYTE Adresse de départ de la chaîne contenant l'adresse e-mail de l'expéditeur. q_udiLengthOfSenderEMail UDINT Longueur de la chaîne d'adresse e-mail de l'expéditeur. q_pbySubject POINTER TO BYTE Adresse de départ de la chaîne contenant l'objet de l'e-mail. udiLengthOfSubject UDINT Longueur de la chaîne de l'objet. q_pbyMessage POINTER TO BYTE Adresse de départ de la chaîne contenant le message e-mail. q_udiLengthOfMessage UDINT Longueur de la chaîne du message. q_asAttachmentPath Chemin d'accès relatif ou absolu aux piècesARRAY [1..GPL.Gc_udiMaxNumb jointes stockées dans le système de fichiers. erOfAttachments] OF STRING[255] q_audiSizeOfAttachment Taille des pièces-jointes stockées dans le ARRAY [1..GPL.Gc_udiMaxNumb système de fichiers. erOfAttachments] OF UDINT q_sUniqueID STRING[70] ID unique de l'e-mail. Utilisé par FB_Pop3EMailClient EIO0000002762 06/2019 41 Structures ST_TlsSettings Présentation Type : Structure Disponible à partir de : V1.0.0.0 Hérite de : - Description La structure ST_TlsSettings contient le paramètre utilisé pour la connexion au serveur et contient la sécurité TLS (Transport Layer Security). Éléments de la structure Élément Type de données Valeur par défaut Description xUseTls BOOL FALSE Si la valeur est TRUE, la connexion est établie en utilisant TLS. xSendClientCert BOOL FALSE Configurez cet élément sur TRUE si un certificat client est nécessaire. sCertName STRING[255] - Définit le fichier du certificat client. Si la valeur est une chaîne Null, le certificat par défaut du contrôleur est utilisé. Le nom correspond à la valeur « Issued for » du certificat du contrôleur. Le nom peut être obtenu du certificat en utilisant l'écran Security dans Logic Builder. etProtocol TCPUDP.ET_TlsProto TCPUDP.ET_TlsPro tocol tocol.TLSv12 Protocole utilisé pour la connexion sécurisée. Consultez ET_TlsProtocol (voir EcoStruxure Machine Expert, TcpUdpCommunication, Guide de la bibliothèque). etCertVerifyMode TCPUDP.ET_CertVeri TCPUDP.ET_CertVe fyMode rifyMode.Trusted Only Mode pour la vérification du certificat. Consultez ET_CertVerifyMode (voir EcoStruxure Machine Expert, TcpUdpCommunication, Guide de la bibliothèque). 42 EIO0000002762 06/2019 EcoStruxure Machine Expert Variables globales EIO0000002762 06/2019 Partie III Variables globales Variables globales Contenu de cette partie Cette partie contient les chapitres suivants : Chapitre Titre du chapitre Page 4 Liste des paramètres globaux 45 5 Liste de variables globales 47 EIO0000002762 06/2019 43 Variables globales 44 EIO0000002762 06/2019 EcoStruxure Machine Expert Liste des paramètres globaux EIO0000002762 06/2019 Chapitre 4 Liste des paramètres globaux Liste des paramètres globaux Liste des paramètres globaux (GPL) Présentation Type : Paramètres globaux Disponible à partir de la version : V1.0.0.0 Description Cette liste contient les paramètres globaux de la bibliothèque EmailHandling. Vous pouvez les modifier en fonction de votre projet dans le Gestionnaire de bibliothèques. Paramètres globaux Variable Type de données Valeur par défaut Description Gc_udiRecipientEMailSize UDINT 200 Nombre maximum d'octets de i_sRecipientEMail. Gc_tTimeOut TIME TIME#10m0s0ms Délai maximum pour recevoir une réponse du serveur. Gc_uiIpStringSize UINT 15 Taille maximum des adresses IP, comme i_sServerIP. Gc_udiReceiveBufferSize UDINT 1000 Taille maximale du tampon de réception requise pour communiquer avec le serveur. Gc_xUseControllerTime BOOL FALSE Si la valeur est TRUE, le temps du contrôleur est utilisé pour créer l'horodatage indiquant le moment d'envoi des e-mails. Gc_udiInboxSize UDINT 10 Taille maximale de la boîte aux lettres. Cette valeur détermine le nombre maximal d'e-mails téléchargeables avec une commande de réception. EIO0000002762 06/2019 45 Liste des paramètres globaux Variable Type de données Valeur par défaut Description Gc_udiMaxNumberOfAttachmentPaths UDINT 1 Taille maximale du tableau ST_EMail.asAttachmentPath. Il contient le ou les chemins d'accès absolu ou relatif dans le système de fichiers du contrôleur dans lequel stocker les pièces-jointes téléchargées. Cette variable ne limite pas le nombre de pièces-jointes. Gc_xUseTop BOOL TRUE Si la valeur est TRUE, la commande TOP0 est utilisée en interne pour télécharger l'en-tête de l'e-mail. Cela est utile si la fonction de liste blanche est utilisée pour vérifier l'adresse des e-mails de l'expéditeur avant le téléchargement du message complet. Si la commande TOP n'est pas prise en charge par votre serveur de messagerie (indiqué par q_sResultMsg), définissez cette variable sur FALSE. Gc_xUseUniqueId BOOL TRUE Si la valeur est TRUE, la commande UIDL est utilisée en interne pour récupérer l'ID unique de l'e-mail. Si la commande UIDL n'est pas prise en charge par votre serveur de messagerie (indiqué par q_sResultMsg), définissez cette variable sur FALSE. 46 EIO0000002762 06/2019 EcoStruxure Machine Expert Liste de variables globales EIO0000002762 06/2019 Chapitre 5 Liste de variables globales Liste de variables globales Liste de variables globales (GVL) Présentation Type : Variables globales Disponible à partir de : V1.0.0.0 Description La liste des variables globales contient les variables globales de la bibliothèque. Variables globales Variable Type de données Valeur par défaut Description Gc_xOnlineChangeAllowed BOOL FALSE Si TRUE, la détection des modifications en ligne est correctement initialisée. Exécute une modification en ligne lorsque le POU est occupé uniquement si Gc_xOnlineChangeAllowed = TRUE. EIO0000002762 06/2019 47 Liste de variables globales 48 EIO0000002762 06/2019 EcoStruxure Machine Expert Unités d'organisation de programme (POU) EIO0000002762 06/2019 Partie IV Unités d'organisation de programme (POU) Unités d'organisation de programme (POU) Contenu de cette partie Cette partie contient les chapitres suivants : Chapitre Titre du chapitre Page 6 Blocs fonction 51 7 Fonctions 61 EIO0000002762 06/2019 49 Unités d'organisation de programme (POU) 50 EIO0000002762 06/2019 EcoStruxure Machine Expert Blocs fonction EIO0000002762 06/2019 Chapitre 6 Blocs fonction Blocs fonction Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page FB_SendEMail 52 FB_Pop3EMailClient 56 EIO0000002762 06/2019 51 Blocs fonction FB_SendEMail Présentation Type : Bloc fonction Disponible à partir de la version : V1.0.0.0 Tâche Le bloc fonction FB_SendEMail inclut les fonctions permettant d'envoyer des e-mails. Chaque instance gère une connexion SMTP. Description fonctionnelle Le bloc fonction FB_SendEMail est l'interface utilisateur qui permet d'interagir avec le serveur de messagerie externe. Il vous permet d'envoyer des e-mails. Lorsque le bloc fonction est activé et exécuté, une connexion TCP est établie au serveur de messagerie à l'aide des informations d'identification utilisateur envoyées par iq_stCredentials. Dès que la connexion est établie, les données de l'e-mail sont transférées au serveur. Une fois le transfert terminé, le bloc fonction ferme automatiquement la connexion TCP au serveur de messagerie. Lors de l’exécution du bloc fonction, l’entrée i_pbyMessage est stockée en interne pour une utilisation ultérieure. Si une modification en ligne est détectée lors de l’exécution du bloc fonction (q_xBusy = TRUE), les variables utilisées en interne sont mises à jour avec la valeur actuelle de l’entrée. NOTE : Ne réattribuez pas i_pbyMessage à une autre zone mémoire lors de l’exécution du bloc fonction. Tant que le bloc fonction est exécuté, la sortie q_xBusy est TRUE. La sortie q_xDone est TRUE lorsque le bloc fonction s'est exécuté correctement. 52 EIO0000002762 06/2019 Blocs fonction Le schéma représente les signaux des entrées et sorties du bloc fonction : Les messages d'état et informations de diagnostic sont fournis à l'aide des sorties q_xError (TRUE si une erreur a été détectée), q_etResult et q_etResultMsg. Pour acquitter les erreurs détectées et pouvoir renvoyer un e-mail, désactivez et réactivez le bloc fonction. EIO0000002762 06/2019 53 Blocs fonction Interface Entrée Type de données Description i_xEnable BOOL Activation et initialisation du bloc fonction. i_xExecute BOOL Le bloc fonction envoie un e-mail au moment correspondant au front montant de cette entrée. i_sRecipientEMail STRING La chaîne qui contient la ou les adresses [GPL.Gc_udiRecipientEMail électroniques du ou des destinataires. (1) Size] i_sSubject STRING[200] Objet de l'e-mail. i_pbyMessage POINTER TO BYTE Adresse de début de la chaîne dans laquelle le message est stocké. i_udiSizeOfMessage UDINT Taille des données du message. i_etPriority ET_Priority Enumération indiquant le niveau de priorité attribué à l'e-mail (voir page 30). i_sAttachmentPath STRING[255] Chemin d'accès absolu ou relatif à la piècejointe stockée dans le système de fichiers du contrôleur. Si cette chaîne est vide, aucune pièce-jointe n'est envoyée. i_sCcRecipientEMail STRING Chaîne contenant l’adresse e-mail du [GPL.Gc_udiRecipientEMail destinataire attribué au champ CC.(1) Size] i_sBccRecipientEMail STRING Chaîne contenant l’adresse e-mail du [GPL.Gc_udiRecipientEMail destinataire attribué au champ BCC.(1) Size] (1) En cas de destinataires multiples, un point-virgule doit séparer les adresses électroniques. La taille maximale de chaque adresse est limitée à 200 octets. Entrée/sortie Type de données Description iq_stCredentials ST_CredentialsSendEMail Permet de transmettre la structure contenant les paramètres utilisateur, tels que le nom d'utilisateur ou le mot de passe. Sortie Type de données Description q_xActive BOOL Si le bloc fonction est actif, cette sortie est TRUE. q_xReady BOOL Si l'initialisation aboutit, cette sortie est TRUE tant que le bloc fonction accepte des entrées. 54 EIO0000002762 06/2019 Blocs fonction Sortie Type de données Description q_xBusy BOOL Si cette sortie est TRUE, le bloc fonction est en cours d'exécution. q_xDone BOOL Si cette sortie est TRUE, l'exécution s'est effectuée correctement. q_xError BOOL Si cette sortie est TRUE, une erreur a été détectée. Pour plus d'informations, reportezvous à q_etResult et q_etResultMsg. q_etResult ET_Result Fournit des informations de diagnostic et d'état. q_sResultMsg STRING[80] Fournit des informations supplémentaires de diagnostic et d'état. Utilisation des variables de type POINTER TO ... or REFERENCE TO ... Le bloc fonction fournit des entrées et/ou des entrées/sorties de type POINTER TO… ou REFENCE TO…. En utilisant ce type de pointeur ou référence, le bloc fonction a accès à la zone de mémoire adressée. En cas de modification en ligne, les zones de mémoire peuvent être déplacées aux nouvelles adresses et par conséquent un pointeur ou une référence peut devenir non valide. Pour éviter les erreurs liées à des pointeurs non valides, les variables de type POINTER TO… ou REFERENCE TO… doivent être mises à jour régulièrement, au moins au début du cycle où elles sont utilisées. ATTENTION POINTEUR INCORRECT Vérifiez la validité des pointeurs lors de leur utilisation sur les adresses et de l'exécution de la commande Changement en ligne. Le non-respect de ces instructions peut provoquer des blessures ou des dommages matériels. EIO0000002762 06/2019 55 Blocs fonction FB_Pop3EMailClient Présentation Type : Bloc fonction Disponible à partir de la version : V1.1.2.0 Tâche Le bloc fonction FB_Pop3EMailClient inclut les fonctions de réception et de suppression d'emails en utilisant POP3. Chaque instance gère une connexion POP3. Description fonctionnelle Le bloc fonction FB_Pop3EMailClient est l'interface utilisateur qui permet d'interagir avec le serveur de messagerie externe POP3. Il permet de recevoir et de supprimer des e-mails. Les pièces-jointes des e-mails reçus vous permettent d'obtenir des informations sur différentes fonctions système basées sur des fichiers stockés dans la mémoire système. Le stockage de certaines extensions de fichier n'est pas autorisé dans le système de fichiers du contrôleur via FB_Pop3EMailClient (voir le paramètre (voir page 28) ET_EmailStatus.InvalidAttachmentExtension) Cela s'applique aux fichiers qui sont automatiquement gérés par le contrôleur, et aux fichiers du système tels que le micrologiciel du contrôleur, afin d'éviter tout écrasement accidentel. ATTENTION POINTEUR INCORRECT Vérifiez la validité des pointeurs lors de leur utilisation sur les adresses et de l'exécution de la commande Changement en ligne. Le non-respect de ces instructions peut provoquer des blessures ou des dommages matériels. 56 EIO0000002762 06/2019 Blocs fonction Une fois le bloc fonction activé et exécuté, une connexion TCP est établie au serveur POP3 à l'aide des informations d'identification utilisateur envoyées via iq_stCredentials. Lorsque la connexion est établie, la commande définie avec i_etCommand est exécutée. Lors de l’exécution du bloc fonction, les pointeurs à i_pbyMessage et iq_stCredentilas.i_pbyWhiteListSender sont stockés en interne pour une utilisation ultérieure. Si une modification en ligne est détectée lors de l’exécution du bloc fonction (q_xBusy = TRUE), les variables utilisées en interne sont mises à jour avec la valeur actuelle des pointeurs. NOTE : Ne réattribuez pas i_pbyMessage et iq_stCredentilas.i_pbyWhiteListSender à une autre zone mémoire lors de l’exécution du bloc fonction. Une fois le transfert terminé, la connexion TCP au serveur POP3 est fermée par le bloc fonction. Les e-mails reçus sont supprimés du serveur POP3. Le bloc fonction FB_Pop3EMailClient enregistre les informations des e-mails reçus dans la zone mémoire adressée par le pointeur i_pbyMailboxBuffer. Les positions à l’intérieur de la mémoire tampon, qui contiennent les informations relatives à plusieurs e-mails, sont indiquées par les pointeurs à l’intérieur de la structure iq_astInbox. Si le bloc fonction FB_Pop3EMailClient est activé et qu’un événement en ligne est détecté, le bloc fonction identifie une modification possible du pointeur à i_pbyMailboxBuffer et donc les pointeurs fournis dans la structure iq_astInbox sont mis à jour en conséquence. NOTE : Traitez les informations des e-mails reçus avant de modifier l’adresse du pointeur i_pbyMailboxBuffer pour l’exécution suivante. Vous pouvez manuellement supprimer des e-mails en définissant l'e-mail (identifié par un ID unique) sur l'entrée i_sUniqueId et en exécutant la commande de suppression avec i_etCommand. En exécutant d'autres commandes, la structure de la boîte aux lettres disponible sur q_astInbox contenant les références aux données de l'e-mail est réinitialisée. Les e-mails reçus sont placés dans la mémoire volatile. La mémoire volatile est effacée lors de la mise hors tension, et tous les e-mails y sont donc supprimés. AVIS PERTE DE DONNEES Enregistrez les e-mails entrants dans une mémoire non volatile. Le non-respect de ces instructions peut provoquer des dommages matériels. Tant que le bloc fonction est exécuté, la sortie q_xBusy est TRUE. La sortie q_xDone est TRUE lorsque le bloc fonction s'est exécuté correctement. EIO0000002762 06/2019 57 Blocs fonction Le schéma représente les signaux des entrées et sorties du bloc fonction : Les messages d'état et les informations de diagnostic sont fournis à l'aide des sorties q_xError (TRUE si une erreur a été détectée), q_etResult et q_etResultMsg. Pour acquitter les erreurs détectées, et pouvoir recevoir et supprimer un e-mail, désactivez et réactivez le bloc fonction. 58 EIO0000002762 06/2019 Blocs fonction Interface Entrée Type de données Description i_xEnable BOOL Activation et initialisation du bloc fonction. i_xExecute BOOL Le bloc fonction reçoit ou supprime un e-mail au front montant de cette entrée. i_etCommand ET_Command L'énumération indique la commande à exécuter (voir page 27). i_pbyMailboxBuffer POINTER TO BYTE Adresse de début du premier octet dans lequel sont stockés les e-mails entrants. i_udiBufferSize UDINT Taille de la mémoire tampon de la boîte aux lettres. i_uiEMailsToReceive UINT Nombre d'e-mails à recevoir du serveur. i_sFilePath STRING[200] Chemin d'accès au dossier dans le système de fichiers du contrôleur où est créé le dossier EMailAttachments. Dans ce dossier, les pièces-jointes des e-mails reçus sont stockés. L'extension de fichier définie avec le ET_EMailStatus.InvalidAttachmentExtension paramètre (voir page 28) ne peut pas être stockée. NOTE : Si vous recevez une deuxième pièce-jointe avec un nom identique à celle d'une pièce-jointe déjà disponible dans ce dossier, l'ancien fichier peut être écrasé si le paramètre global ST_CredentialsReceiveEMail.i_xOverwriteAttachme nt est défini sur TRUE. Si cette chaîne est vide, le dossier EMailAttachments est créé dans le chemin d'accès par défaut du contrôleur. i_sUniqueID STRING[70] L'ID unique requis pour supprimer un e-mail. Après réception de l'e-mail du serveur, l'ID unique s'affiche sur la sortie q_astInbox. Entrée/sortie Type de données Description iq_stCredentials ST_CredentialsReceiveEMail Permet de transmettre la structure contenant les paramètres utilisateur, tels que le nom d'utilisateur ou le mot de passe. iq_astInbox ARRAY [1…GPL.Gc_udiInboxSiz e] OF ST_EMail Structure (voir page 41) qui contient les informations d'un e-mail reçu. Sortie Type de données Description q_xActive BOOL Si le bloc fonction est actif, cette sortie est TRUE. q_xReady BOOL Si l'initialisation aboutit, cette sortie est TRUE tant que le bloc fonction est opérationnel. q_xBusy BOOL Si cette sortie est TRUE, le bloc fonction est en cours d'exécution. EIO0000002762 06/2019 59 Blocs fonction Sortie Type de données Description q_xDone BOOL Si cette sortie est TRUE, l'exécution s'est effectuée correctement. q_xError BOOL Si cette sortie est TRUE, une erreur a été détectée. Pour plus d'informations, reportez-vous à q_etResult et q_etResultMsg. q_etResult ET_Result Fournit des informations de diagnostic et d'état. q_sResultMsg STRING[80] Fournit des informations supplémentaires de diagnostic et d'état. q_udiNumberOfEmails UDINT Dépend de la i_etCommand exécutée : ET_Command.CheckInbox : indique le nombre d'e-mails disponibles sur le serveur. ET_Command.Receive : indique le nombre d'e-mails reçus du serveur. Si une erreur est détectée, cette sortie fournit le nombre d'emails correctement téléchargés. ET_Command.Delete : indique le nombre d'e-mails supprimés. Utilisation des variables de type POINTER TO ... ou REFERENCE TO ... Le bloc fonction fournit des entrées et/ou des entrées/sorties de type POINTER TO… ou REFENCE TO…. En utilisant ce type de pointeur ou référence, le bloc fonction a accès à la zone de mémoire adressée. En cas de modification en ligne, les zones de mémoire peuvent être déplacées aux nouvelles adresses et par conséquent un pointeur ou une référence peut devenir non valide. Pour éviter les erreurs liées à des pointeurs non valides, les variables de type POINTER TO… ou REFERENCE TO… doivent être mises à jour régulièrement, au moins au début du cycle où elles sont utilisées. ATTENTION POINTEUR INCORRECT Vérifiez la validité des pointeurs lors de leur utilisation sur les adresses et de l'exécution de la commande Changement en ligne. Le non-respect de ces instructions peut provoquer des blessures ou des dommages matériels. 60 EIO0000002762 06/2019 EcoStruxure Machine Expert Fonctions EIO0000002762 06/2019 Chapitre 7 Fonctions Fonctions FC_EtResultToString Présentation Type : Fonction Disponible à partir de : V1.0.0.0 Hérite de : – Met en œuvre : – Tâche Convertir un élément d'énumération de type ET_Result en une variable de type STRING. Description fonctionnelle La fonction FC_EtResultToString permet de convertir un élément d'énumération de type ET_Result en une variable de type STRING. Interface Entrée Type de données Description i_etResult ET_Result Énumération avec le résultat. Valeur retournée Type de données Description STRING(80) ET_Result converti en texte. Si i_etResult est indéterminable, la valeur de retour est : Unknown Result: <Value of the input i_etResult> EIO0000002762 06/2019 61 Fonctions 62 EIO0000002762 06/2019 EcoStruxure Machine Expert Glossaire EIO0000002762 06/2019 Glossaire A ASCII Acronyme de American Standard Code for Information Interchange. Protocole utilisé pour représenter les caractères alphanumériques (lettres, chiffres, ainsi que certains caractères graphiques et de contrôle). F FCL Acronyme de forward compatible library, bibliothèque à compatibilité ascendante. Une bibliothèque post-compatible est développée pour que ses fonctionnalités soient postcompatibles, ce qui signifie que chacune de ses versions reprend l'ensemble des fonctions de la version précédente. Vous pouvez donc facilement utiliser une nouvelle version de bibliothèque dans un projet existant, sans apporter aucune modification. EIO0000002762 06/2019 63 Glossaire 64 EIO0000002762 06/2019 EcoStruxure Machine Expert Index EIO0000002762 06/2019 Index B bibliothèques EmailHandling, 19 E EmailHandling, 19 FB_Pop3EMailClient, 56 FB_SendEMail, 52 GPL (liste des paramètres globaux), 45 ET_AuthenticationMode, 26 Login, 26 NoAuthentication, 26 Plain, 26 ET_Command, 27 CheckInbox, 27 Delete, 27 NoCommand, 27 Receive, 27 ET_EMailStatus, 28 Empty, 28 InvalidAttachmentExtension, 29 InvalidAttachmentPath, 28 InvalidHeader, 28 NotSupported, 28 Ok, 28 SenderBlocked, 28 ET_Priority, 30 High, 30 Low, 30 Normal, 30 VeryHigh, 30 VeryLow, 30 ET_Protocol, 31 eSMTP, 31 SMTP, 31 EIO0000002762 06/2019 ET_Result, 32 AuthenticationFailed, 33 AuthenticationRequired, 33 Busy, 32 CloseAttachmentFailed, 34 ConnectedToServer, 32 ConnectingToServer, 32 DecodingError, 35 DeletingEMail, 33 DeletingFile, 33 Disabled, 32 DisconnectingFromServer, 32 DownloadingEMail, 33 EMailNotFound, 34 FailedToConnectToServer, 35 FailedToReceiveMessageFromServer, 65 Index 35 FailedToSendMessageToServer, 35 FunctionNotSupported, 34 Initializing, 32 InvalidAuthenticationMode, 33 InvalidBufferSize, 34 InvalidCommand, 34 InvalidDomainName, 33 InvalidFilePath, 34 InvalidInboxSize, 35 InvalidMailboxBuffer, 34 InvalidMessageAddress, 33 InvalidMessageFromServer, 35 InvalidNumberEMailsToReceive, 34 InvalidNumberOfAttachments, 34 InvalidPassword, 33 InvalidPriority, 34 InvalidProtocol, 33 InvalidRecipientEMail, 33 InvalidSenderEMail, 33 InvalidServerIP, 33 InvalidUniqueId, 35 InvalidUsername, 33 InvalidWhiteList, 35 InvalidWhiteListSize, 34 MailboxBufferFull, 35 MailboxUnavailable, 34 MessageFromServerReceived, 32 MessageRejectedFromRecipient, 34 MessageToServerSent, 32 NoCommand, 32 NotSupported, 35 Ok, 32 OpenAttachmentFailed, 34 OpeningAttachment, 32 ReadAttachmentFailed, 34 Ready, 32 RecipientAddressTooLong, 34 SaveAttachmentFailed, 35 SavingAttachment, 33 SendingAttachment, 32 SendingEMail, 32 SendingMessageToServer, 32 ServerError, 34 ServerOk, 33 66 SyntaxError, 34 UnexpectedMessageFromServer, 35 UnexpectedProgramBehavior, 35 WaitingForExpectedMessage, 32 F FB_Pop3EMailClient, 56 FB_SendEMail, 52 FC_EtResultToString, 61 G GPL (liste des paramètres globaux) EmailHandling, 45 GVL (Global Variables List), 47 L limites du transfert d'e-mails, 21 S ST_CredentialsReceiveEMail, 39 ST_CredentialsSendEMail, 38 ST_EMail, 41 ST_TlsSettings, 42 EIO0000002762 06/2019 EcoStruxure Machine Expert EIO0000002780 12/2019 EcoStruxure Machine Expert FtpRemoteFileHandling Guide de la bibliothèque EIO0000002780.01 12/2019 www.schneider-electric.com Le présent document comprend des descriptions générales et/ou des caractéristiques techniques des produits mentionnés. Il ne peut pas être utilisé pour définir ou déterminer l'adéquation ou la fiabilité de ces produits pour des applications utilisateur spécifiques. Il incombe à chaque utilisateur ou intégrateur de réaliser l'analyse de risques complète et appropriée, l'évaluation et le test des produits pour ce qui est de l'application à utiliser et de l'exécution de cette application. Ni la société Schneider Electric ni aucune de ses sociétés affiliées ou filiales ne peuvent être tenues pour responsables de la mauvaise utilisation des informations contenues dans le présent document. Si vous avez des suggestions, des améliorations ou des corrections à apporter à cette publication, veuillez nous en informer. Vous acceptez de ne pas reproduire, excepté pour votre propre usage à titre non commercial, tout ou partie de ce document et sur quelque support que ce soit sans l'accord écrit de Schneider Electric. Vous acceptez également de ne pas créer de liens hypertextes vers ce document ou son contenu. Schneider Electric ne concède aucun droit ni licence pour l'utilisation personnelle et non commerciale du document ou de son contenu, sinon une licence non exclusive pour une consultation « en l'état », à vos propres risques. Tous les autres droits sont réservés. Toutes les réglementations locales, régionales et nationales pertinentes doivent être respectées lors de l'installation et de l'utilisation de ce produit. Pour des raisons de sécurité et afin de garantir la conformité aux données système documentées, seul le fabricant est habilité à effectuer des réparations sur les composants. Lorsque des équipements sont utilisés pour des applications présentant des exigences techniques de sécurité, suivez les instructions appropriées. La non-utilisation du logiciel Schneider Electric ou d'un logiciel approuvé avec nos produits matériels peut entraîner des blessures, des dommages ou un fonctionnement incorrect. Le non-respect de cette consigne peut entraîner des lésions corporelles ou des dommages matériels. © 2019 Schneider Electric. Tous droits réservés. 2 EIO0000002780 12/2019 Table des matières Consignes de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . A propos de ce manuel. . . . . . . . . . . . . . . . . . . . . . . . . . Partie I Informations générales . . . . . . . . . . . . . . . . . . . . . . . Chapitre 1 Présentation de la bibliothèque . . . . . . . . . . . . . . . . . . . Informations générales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 2 Entrées et sorties communes . . . . . . . . . . . . . . . . . . . . . Fonctionnement des blocs fonction avec l'entrée i_xEnable et i_xExecute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Partie II Énumérations et Structures . . . . . . . . . . . . . . . . . . . Chapitre 3 Énumérations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ET_FtpCommand. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ET_Result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 4 Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ST_Credentials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ST_Content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ST_Element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Partie III Variables globales . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 5 Liste des constantes globales. . . . . . . . . . . . . . . . . . . . . Liste des constantes globales (GCL). . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 6 Liste des paramètres globaux. . . . . . . . . . . . . . . . . . . . . Liste des paramètres globaux (GPL) . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 7 Liste de variables globales . . . . . . . . . . . . . . . . . . . . . . . GVL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Partie IV Unités d'organisation de programme (POU) . . . . . . . Chapitre 8 Blocs fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FB_FtpClient. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 9 Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FC_EtResultToString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FC_EtFtpCommandToString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Annexes EIO0000002780 12/2019 ......................................... 5 11 17 19 19 25 25 27 29 29 30 33 33 34 35 37 39 39 41 41 43 43 45 47 47 49 49 50 51 3 Annexe A Représentation des fonctions et blocs fonction . . . . . . . . Différences entre une fonction et un bloc fonction . . . . . . . . . . . . . . . . Utilisation d'une fonction ou d'un bloc fonction en langage IL . . . . . . . Utilisation d'une fonction ou d'un bloc fonction en langage ST . . . . . . Glossaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 53 53 54 59 63 67 EIO0000002780 12/2019 Consignes de sécurité Informations importantes AVIS Lisez attentivement ces instructions et examinez le matériel pour vous familiariser avec l'appareil avant de tenter de l'installer, de le faire fonctionner, de le réparer ou d'assurer sa maintenance. Les messages spéciaux suivants que vous trouverez dans cette documentation ou sur l'appareil ont pour but de vous mettre en garde contre des risques potentiels ou d'attirer votre attention sur des informations qui clarifient ou simplifient une procédure. EIO0000002780 12/2019 5 REMARQUE IMPORTANTE L'installation, l'utilisation, la réparation et la maintenance des équipements électriques doivent être assurées par du personnel qualifié uniquement. Schneider Electric décline toute responsabilité quant aux conséquences de l'utilisation de ce matériel. Une personne qualifiée est une personne disposant de compétences et de connaissances dans le domaine de la construction, du fonctionnement et de l'installation des équipements électriques, et ayant suivi une formation en sécurité leur permettant d'identifier et d'éviter les risques encourus. QUALIFICATION DU PERSONNEL Une personne qualifiée est une personne qui a les qualifications suivantes : Compétences et connaissances liées à la construction et à l'exploitation d'équipements électriques et à l'installation. Connaissances et expérience en programmation de contrôle industriel. A reçu une formation en sécurité permettant de reconnaître et d'éviter les dangers potentiels. La personne qualifiée doit être capable de détecter d'éventuels dangers qui pourraient découler du paramétrage, de modifications des valeurs de paramétrage et plus généralement des équipements mécaniques, électriques ou électroniques. La personne qualifiée doit connaître les normes, dispositions et régulations liées à la prévention des accidents de travail, et doit les observer lors de la conception et de l'implémentation du système. INSTRUCTIONS D'UTILISATION Ce produit est une bibliothèque à utiliser avec un système de commande et des servoamplificateurs. La bibliothèque n'est conçue qu'en vue d'une utilisation telle que décrite dans la présente documentation, appliquée au secteur industriel. Observez en permanence les instructions applicables liées à la sécurité, les conditions spécifiques et les données techniques. Réalisez une analyse des risques en rapport avec l'utilisation spécifique avant d'utiliser ce produit. Prenez les mesures de sécurité qui découlent des résultats. Étant donné que ce produit est utilisé au sein d'un système qui l'englobe, vous devez assurer la sécurité du personnel par la conception même du système global (la conception de la machine, par exemple). Aucune autre utilisation n'est prévue. Toute autre utilisation pourrait être dangereuse. AVANT DE COMMENCER N'utilisez pas ce produit sur les machines non pourvues de protection efficace du point de fonctionnement. L'absence de ce type de protection sur une machine présente un risque de blessures graves pour l'opérateur. 6 EIO0000002780 12/2019 AVERTISSEMENT EQUIPEMENT NON PROTEGE N'utilisez pas ce logiciel ni les automatismes associés sur des appareils non équipés de protection du point de fonctionnement. N'accédez pas aux machines pendant leur fonctionnement. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Cet automatisme et le logiciel associé permettent de commander des processus industriels divers. Le type ou le modèle d'automatisme approprié pour chaque application dépendra de facteurs tels que la fonction de commande requise, le degré de protection exigé, les méthodes de production, des conditions inhabituelles, la législation, etc. Dans certaines applications, plusieurs processeurs seront nécessaires, notamment lorsque la redondance de sauvegarde est requise. Vous seul, en tant que constructeur de machine ou intégrateur de système, pouvez connaître toutes les conditions et facteurs présents lors de la configuration, de l'exploitation et de la maintenance de la machine, et êtes donc en mesure de déterminer les équipements automatisés, ainsi que les sécurités et verrouillages associés qui peuvent être utilisés correctement. Lors du choix de l'automatisme et du système de commande, ainsi que du logiciel associé pour une application particulière, vous devez respecter les normes et réglementations locales et nationales en vigueur. Le document National Safety Council's Accident Prevention Manual (reconnu aux Etats-Unis) fournit également de nombreuses informations utiles. Dans certaines applications, telles que les machines d'emballage, une protection supplémentaire, comme celle du point de fonctionnement, doit être fournie pour l'opérateur. Elle est nécessaire si les mains ou d'autres parties du corps de l'opérateur peuvent entrer dans la zone de point de pincement ou d'autres zones dangereuses, risquant ainsi de provoquer des blessures graves. Les produits logiciels seuls, ne peuvent en aucun cas protéger les opérateurs contre d'éventuelles blessures. C'est pourquoi le logiciel ne doit pas remplacer la protection de point de fonctionnement ou s'y substituer. Avant de mettre l'équipement en service, assurez-vous que les dispositifs de sécurité et de verrouillage mécaniques et/ou électriques appropriés liés à la protection du point de fonctionnement ont été installés et sont opérationnels. Tous les dispositifs de sécurité et de verrouillage liés à la protection du point de fonctionnement doivent être coordonnés avec la programmation des équipements et logiciels d'automatisation associés. NOTE : La coordination des dispositifs de sécurité et de verrouillage mécaniques/électriques du point de fonctionnement n'entre pas dans le cadre de cette bibliothèque de blocs fonction, du Guide utilisateur système ou de toute autre mise en œuvre référencée dans la documentation. EIO0000002780 12/2019 7 DEMARRAGE ET TEST Avant toute utilisation de l'équipement de commande électrique et des automatismes en vue d'un fonctionnement normal après installation, un technicien qualifié doit procéder à un test de démarrage afin de vérifier que l'équipement fonctionne correctement. Il est essentiel de planifier une telle vérification et d'accorder suffisamment de temps pour la réalisation de ce test dans sa totalité. AVERTISSEMENT RISQUES INHERENTS AU FONCTIONNEMENT DE L'EQUIPEMENT Assurez-vous que toutes les procédures d'installation et de configuration ont été respectées. Avant de réaliser les tests de fonctionnement, retirez tous les blocs ou autres cales temporaires utilisés pour le transport de tous les dispositifs composant le système. Enlevez les outils, les instruments de mesure et les débris éventuels présents sur l'équipement. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Effectuez tous les tests de démarrage recommandés dans la documentation de l'équipement. Conservez toute la documentation de l'équipement pour référence ultérieure. Les tests logiciels doivent être réalisés à la fois en environnement simulé et réel. Vérifiez que le système entier est exempt de tout court-circuit et mise à la terre temporaire non installée conformément aux réglementations locales (conformément au National Electrical Code des Etats-Unis, par exemple). Si des tests diélectriques sont nécessaires, suivez les recommandations figurant dans la documentation de l'équipement afin d'éviter de l'endommager accidentellement. Avant de mettre l'équipement sous tension : Enlevez les outils, les instruments de mesure et les débris éventuels présents sur l'équipement. Fermez le capot du boîtier de l'équipement. Retirez toutes les mises à la terre temporaires des câbles d'alimentation entrants. Effectuez tous les tests de démarrage recommandés par le fabricant. 8 EIO0000002780 12/2019 FONCTIONNEMENT ET REGLAGES Les précautions suivantes sont extraites du document NEMA Standards Publication ICS 7.1-1995 (la version anglaise prévaut) : Malgré le soin apporté à la conception et à la fabrication de l'équipement ou au choix et à l'évaluation des composants, des risques subsistent en cas d'utilisation inappropriée de l'équipement. Il arrive parfois que l'équipement soit déréglé accidentellement, entraînant ainsi un fonctionnement non satisfaisant ou non sécurisé. Respectez toujours les instructions du fabricant pour effectuer les réglages fonctionnels. Les personnes ayant accès à ces réglages doivent connaître les instructions du fabricant de l'équipement et les machines utilisées avec l'équipement électrique. Seuls ces réglages fonctionnels, requis par l'opérateur, doivent lui être accessibles. L'accès aux autres commandes doit être limité afin d'empêcher les changements non autorisés des caractéristiques de fonctionnement. EIO0000002780 12/2019 9 10 EIO0000002780 12/2019 A propos de ce manuel Présentation Objectif du document Ce document décrit la bibliothèque FtpRemoteFileHandling. La bibliothèque propose des fonctionnalités de client FTP (File Transfer Protocol), permettant à un contrôleur de consulter et de gérer des fichiers distants sur un serveur FTP. Champ d'application Ce document a été actualisé pour le lancement d’EcoStruxureTM Machine Expert V1.2. Les caractéristiques techniques des équipements décrits dans ce document sont également fournies en ligne. Pour accéder à ces informations en ligne : Etape Action 1 Accédez à la page d'accueil de Schneider Electric www.schneider-electric.com. 2 Dans la zone Search, saisissez la référence d'un produit ou le nom d'une gamme de produits. N'insérez pas d'espaces dans la référence ou la gamme de produits. Pour obtenir des informations sur un ensemble de modules similaires, utilisez des astérisques (*). 3 Si vous avez saisi une référence, accédez aux résultats de recherche Product Datasheets et cliquez sur la référence qui vous intéresse. Si vous avez saisi une gamme de produits, accédez aux résultats de recherche Product Ranges et cliquez sur la gamme de produits qui vous intéresse. 4 Si plusieurs références s'affichent dans les résultats de recherche Products, cliquez sur la référence qui vous intéresse. 5 Selon la taille de l'écran, vous serez peut-être amené à faire défiler la page pour consulter la fiche technique. 6 Pour enregistrer ou imprimer une fiche technique au format .pdf, cliquez sur Download XXX product datasheet. Les caractéristiques présentées dans ce document devraient être identiques à celles fournies en ligne. Toutefois, en application de notre politique d'amélioration continue, nous pouvons être amenés à réviser le contenu du document afin de le rendre plus clair et plus précis. Si vous constatez une différence entre le document et les informations fournies en ligne, utilisez ces dernières en priorité. EIO0000002780 12/2019 11 Information spécifique au produit AVERTISSEMENT PERTE DE CONTROLE Le concepteur d'un système de commande doit envisager les modes de défaillance possibles des chemins de commande et, pour certaines fonctions de commande critiques, prévoir un moyen d'atteindre un état sécurisé en cas de défaillance d'un chemin, et après cette défaillance. Par exemple, l'arrêt d'urgence, l'arrêt en cas de surcourse, la coupure de courant et le redémarrage sont des fonctions de contrôle cruciales. Des canaux de commande séparés ou redondants doivent être prévus pour les fonctions de commande critique. Les liaisons de communication peuvent faire partie des canaux de commande du système. Soyez particulièrement attentif aux implications des retards de transmission imprévus ou des pannes de liaison. Respectez toutes les réglementations de prévention des accidents ainsi que les consignes de sécurité locales.1 Chaque implémentation de cet équipement doit être testée individuellement et entièrement pour s'assurer du fonctionnement correct avant la mise en service. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. 1 Pour plus d'informations, consultez les documents suivants ou leurs équivalents pour votre site d'installation : NEMA ICS 1.1 (dernière édition), « Safety Guidelines for the Application, Installation, and Maintenance of Solid State Control » (Directives de sécurité pour l'application, l'installation et la maintenance de commande statique) et NEMA ICS 7.1 (dernière édition), « Safety Standards for Construction and Guide for Selection, Installation, and Operation of Adjustable-Speed Drive Systems » (Normes de sécurité relatives à la construction et manuel de sélection, d'installation et d'exploitation de variateurs de vitesse). Avant de tenter de fournir une solution (machine ou processus) pour une application spécifique en utilisant les POU trouvés dans la bibliothèque, vous devez tenir compte de la réalisation et de l'exécution des bonnes pratiques. La liste non exhaustive de ces pratiques liées à cette bibliothèque inclut l'analyse des risques, la sécurité fonctionnelle, la compatibilité des composants, les tests et la validation du système. 12 EIO0000002780 12/2019 AVERTISSEMENT UTILISATION INCORRECTE DES UNITES ORGANISATIONNELLES DU PROGRAMME Effectuez une analyse de la sécurité de l'application et des équipements installés. Vérifiez que les POU sont compatibles avec les équipements du système et n'ont pas d'effets inattendus sur le bon fonctionnement du système. Utilisez les paramètres appropriés, notamment les valeurs limites, et observez l'usure de la machine et son fonctionnement à l'arrêt. Vérifiez que les capteurs et déclencheurs sont compatibles avec les POU sélectionnés. Testez de manière approfondie toutes les fonctions durant la vérification et la mise en service dans tous les modes de fonctionnement. Indiquez des méthodes indépendantes pour les fonctions de commande critiques (arrêt d'urgence, conditions de dépassement des valeurs limites, etc.) en fonction d'une analyse de la sécurité, des règles correspondantes et des réglementations. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. AVERTISSEMENT FONCTIONNEMENT IMPRÉVU DE L'ÉQUIPEMENT N'utilisez que le logiciel approuvé par Schneider Electric pour faire fonctionner cet équipement. Mettez à jour votre programme d'application chaque fois que vous modifiez la configuration matérielle physique. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. AVERTISSEMENT FONCTIONNEMENT INATTENDU DE L'EQUIPEMENT Actualisez votre programme d'application, si nécessaire, en portant une attention particulière aux réglages de l'adresse d'E/S, dès que vous modifiez la configuration matérielle. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. EIO0000002780 12/2019 13 Les transferts incomplets, qu'il s'agisse de fichiers de données, d'application et/ou de micrologiciel, peuvent avoir des conséquences graves sur votre machine ou votre contrôleur. En cas coupure de courant (volontaire ou non) ou d'interruption de la communication pendant un transfert de fichier, votre machine peut devenir inopérante ou votre application peut tenter d'utiliser un fichier de données endommagé. En cas d'interruption, relancez le transfert. Veillez à inclure l'impact des fichiers de données endommagés dans votre analyse des risques. AVERTISSEMENT FONCTIONNEMENT IMPRÉVU DE L'ÉQUIPEMENT, PERTE DE DONNÉES OU FICHIER ENDOMMAGÉ N'interrompez pas un transfert de données en cours. Si le transfert est interrompu pour une raison quelconque, relancez-le. Ne mettez pas votre machine en service tant que le transfert de fichier n'est pas terminé, sauf si vous avez pris en compte les fichiers endommagés dans votre analyse des risques et si vous avez mis en place des mesures appropriées pour prévenir les conséquences potentiellement graves dues à des échecs de transfert. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Documents à consulter Titre du document Référence EcoStruxure Machine Expert - Fonctions et bibliothèques - Guide de l'utilisateur EIO0000002829 (ENG) ; EIO0000002830 (FRE) ; EIO0000002831 (GER) ; EIO0000002832 (ITA) ; EIO0000002833 (SPA) ; EIO0000002834 (CHS) ; EcoStruxure Machine Expert - Guide de programmation EIO0000002854 (ENG) ; EIO0000002855 (FRE) ; EIO0000002856 (GER) ; EIO0000002857 (ITA) ; EIO0000002858 (SPA) ; EIO0000002859 (CHS) ; Terminologie utilisée dans les normes Les termes techniques, la terminologie, les symboles et les descriptions correspondantes employés dans ce manuel ou figurant dans ou sur les produits proviennent généralement des normes internationales. Dans les domaines des systèmes de sécurité fonctionnelle, des variateurs et de l'automatisme en général, les termes employés sont sécurité, fonction de sécurité, état sécurisé, défaut, réinitialisation du défaut, dysfonctionnement, panne, erreur, message d'erreur, dangereux, etc. 14 EIO0000002780 12/2019 Entre autres, les normes concernées sont les suivantes : Norme Description IEC 61131-2:2007 Automates programmables - Partie 2 : exigences et essais des équipements ISO 13849-1:2015 Sécurité des machines : parties des systèmes de commande relatives à la sécurité. Principes généraux de conception EN 61496-1:2013 Sécurité des machines : équipements de protection électro-sensibles. Partie 1 : Prescriptions générales et essais ISO 12100:2010 Sécurité des machines - Principes généraux de conception - Appréciation du risque et réduction du risque EN 60204-1:2006 Sécurité des machines - Équipement électrique des machines - Partie 1 : règles générales ISO 14119:2013 Sécurité des machines - Dispositifs de verrouillage associés à des protecteurs - Principes de conception et de choix ISO 13850:2015 Sécurité des machines - Fonction d'arrêt d'urgence - Principes de conception IEC 62061:2015 Sécurité des machines - Sécurité fonctionnelle des systèmes de commande électrique, électronique et électronique programmable relatifs à la sécurité IEC 61508-1:2010 Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité : prescriptions générales. IEC 61508-2:2010 Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité : exigences pour les systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité. IEC 61508-3:2010 Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité : exigences concernant les logiciels. IEC 61784-3:2016 Réseaux de communication industriels - Profils - Partie 3 : Bus de terrain de sécurité fonctionnelle - Règles générales et définitions de profils. 2006/42/EC Directive Machines 2014/30/EU Directive sur la compatibilité électromagnétique 2014/35/EU Directive sur les basses tensions De plus, des termes peuvent être utilisés dans le présent document car ils proviennent d'autres normes telles que : Norme Description Série IEC 60034 Machines électriques rotatives Série IEC 61800 Entraînements électriques de puissance à vitesse variable Série IEC 61158 Communications numériques pour les systèmes de mesure et de commande – Bus de terrain utilisés dans les systèmes de commande industriels EIO0000002780 12/2019 15 Enfin, le terme zone de fonctionnement utilisé dans le contexte de la description de dangers spécifiques a la même signification que les termes zone dangereuse ou zone de danger employés dans la directive Machines (2006/42/EC) et la norme ISO 12100:2010. NOTE : Les normes susmentionnées peuvent s'appliquer ou pas aux produits cités dans la présente documentation. Pour plus d'informations sur chacune des normes applicables aux produits décrits dans le présent document, consultez les tableaux de caractéristiques de ces références de produit. 16 EIO0000002780 12/2019 EcoStruxure Machine Expert Informations générales EIO0000002780 12/2019 Partie I Informations générales Informations générales Contenu de cette partie Cette partie contient les chapitres suivants : Chapitre Titre du chapitre Page 1 Présentation de la bibliothèque 19 2 Entrées et sorties communes 25 EIO0000002780 12/2019 17 Informations générales 18 EIO0000002780 12/2019 EcoStruxure Machine Expert Description EIO0000002780 12/2019 Chapitre 1 Présentation de la bibliothèque Présentation de la bibliothèque Informations générales Présentation de la bibliothèque La bibliothèque FtpRemoteFileHandling fournit les fonctionnalités de client FTP nécessaires pour gérer les fichiers distants : Lecture de fichiers Écriture de fichiers Suppression de fichiers Affichage du contenu de répertoires distants Ajout de répertoires Suppression de répertoires 1 2 3 4 Contrôleur en tant que client FTP Téléchargement du fichier (commande Store) Serveur FTP (sur le PC ou le contrôleur) Chargement du fichier (commande Retrieve) EIO0000002780 12/2019 19 Description Caractéristiques de la bibliothèque Le tableau suivant indique les caractéristiques de la bibliothèque : Caractéristique Valeur Titre de la bibliothèque FtpRemoteFileHandling Société Schneider Electric Catégorie Communication Composant Suite de protocoles Internet Espace de noms par défaut SE_FTP Attribut du modèle de langage Uniquement accès qualifié (voir EcoStruxure Machine Expert, Fonctions et bibliothèques - Guide de l'utilisateur) Bibliothèque post-compatible Oui (FCL (voir EcoStruxure Machine Expert, Fonctions et bibliothèques Guide de l'utilisateur)) NOTE : Cette bibliothèque est paramétrée en Uniquement accès qualifié . Cela signifie que l'on ne peut accéder aux POU, aux structures de données, aux énumérations, et aux constantes qu'en utilisant l'espace de noms de la bibliothèque. L'espace de noms par défaut de la bibliothèque est SE_FTP. Exemple de projet Le projet d'exemple FTPRemoteFileHandlingExample est fourni avec la bibliothèque. L’exemple de projet montre comment implémenter les composants à partir de la bibliothèque FtpRemoteFileHandling. L'exemple de projet est installé sur votre PC avec le logiciel de programmation. Pour ouvrir l’exemple de projet, procédez comme suit : Etape 20 Action Commentaire 1 Dans EcoStruxure Machine Expert Logic Builder, – exécutez la commande Nouveau projet. 2 Dans la boîte de dialogue Nouveau projet, sélectionnez A partir de l’exemple dans la liste Type de projet. – 3 Sur la droite de la boîte de dialogue Nouveau projet, sélectionnez le contrôleur(1) dans la liste Contrôleur. Résultat : les exemples disponibles sont répertoriés dans la zone de texte Exemples correspondants. 4 Sélectionnez l’exemple dans la liste Exemples correspondants. – 5 Entrez le nom du nouveau projet et sélectionnez l’emplacement du fichier. – 6 Cliquez sur le bouton OK. Résultat : un nouveau projet est créé en fonction de l’exemple sélectionné. EIO0000002780 12/2019 Description Éléments généraux à prendre en compte Prenez en compte les limites suivantes du transfert de données FTP : Seuls les symboles ASCII sont pris en charge pour les noms de fichier et de répertoire à échanger avec le serveur FTP. Seul le protocole IPv4 (Internet Protocol version 4) est pris en charge. Seul le mode FTP passif est pris en charge. Seule une connexion FTP est autorisée à la fois. Comme le temps de réponse du serveur FTP n'est pas contrôlable, exécutez les blocs fonction dans une tâche cyclique à faible priorité. Configurez la fonction d'horloge de surveillance pour qu'elle autorise un temps suffisant à la connexion. L'autre solution consiste à exécuter les blocs fonctions dans une tâche Roue libre. Pour ce type de tâche, aucune durée de cycle n'est définie. La bibliothèque décrite dans ce document utilise la bibliothèque TcpUdpCommunication en interne. Les bibliothèques TcpUdpCommunication (Schneider Electric) et CAA Net Base Services (CAA Technical Workgroup) utilisent les mêmes ressources système sur le contrôleur. Leur utilisation simultanée dans la même application peut perturber le fonctionnement du contrôleur. AVERTISSEMENT FONCTIONNEMENT IMPRÉVU DE L’EQUIPEMENT N'utilisez pas la bibliothèque TcpUdpCommunication (Schneider Electric) avec la bibliothèque CAA Net Base Services (CAA Technical Workgroup) simultanément dans la même application. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Éléments à prendre en compte concernant la cybersécurité Les fonctions de la bibliothèque FtpRemoteFileHandling ne prennent pas en charge les connexions sécurisées par TLS (Transport Layer Security) ou SSL (Secure Socket Layer). Par conséquent, la communication ne peut avoir lieu qu'au sein de votre réseau industriel, isolé des autres réseaux de votre entreprise et protégé d'Internet. NOTE : Schneider Electric respecte les bonnes pratiques de l'industrie, en vigueur dans le développement et la mise en œuvre des systèmes de contrôle. Cette approche, dite de « défense en profondeur », permet de sécuriser les systèmes de contrôle industriels. Elle place les contrôleurs derrière des pare-feu pour restreindre leur accès aux seuls personnels et protocoles autorisés. EIO0000002780 12/2019 21 Description AVERTISSEMENT ACCÈS NON AUTHENTIFIÉ ET UTILISATION NON AUTORISÉE DE LA MACHINE Estimer si votre environnement ou vos machines sont connecté(e)s à votre infrastructure vitale et, le cas échéant, prendre les mesures nécessaires de prévention, basées sur le principe de défense en profondeur, avant de connecter le système d'automatisme à un réseau quelconque. Limiter au strict nécessaire le nombre d'équipements connectés à un réseau. Isoler votre réseau industriel des autres réseaux au sein de votre société. Protéger chaque réseau contre les accès non autorisés à l'aide d'un pare-feu, d'un VPN ou d'autres mesures de sécurité éprouvées. Surveiller les activités au sein de votre système. Empêcher tout accès direct ou liaison directe aux équipements sensibles par des utilisateurs non autorisés ou des actions non authentifiées. Préparer un plan de récupération intégrant la sauvegarde des informations de votre système et de votre processus. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Présentation des POU Bloc fonction Utilisation FB_FTPClient (voir page 47) Met en œuvre un client FTP qui se connecte à un serveur FTP pour effectuer des opérations sur les fichiers et les répertoires. Présentation des structures dans l'interface propre au module 22 Structure Utilisation ST_Credentials (voir page 33) Contient des informations propres à l'utilisateur, permettant de se connecter à un serveur FTP externe. ST_Content (voir page 34) Contient les informations utilisateur concernant le répertoire sélectionné. ST_Element (voir page 35) Sous-structure de ST_Content, contenant des informations propres aux éléments. EIO0000002780 12/2019 Description Présentation des énumérations Énumération Utilisation ET_FtpCommand (voir page 29) Définit les commandes que le bloc fonction FB_FTPClient peut exécuter via i_etCommand. ET_Result (voir page 30) Contient les valeurs possibles qui donnent les résultats des opérations exécutées par le bloc fonction. EIO0000002780 12/2019 23 Description 24 EIO0000002780 12/2019 EcoStruxure Machine Expert Entrées et sorties communes EIO0000002780 12/2019 Chapitre 2 Entrées et sorties communes Entrées et sorties communes Fonctionnement des blocs fonction avec l'entrée i_xEnable et i_xExecute Informations générales En configurant l’entrée i_xEnable sur TRUE, le bloc fonction lance le processus d’activation. Le bloc fonction poursuit l’initialisation et la sortie q_xActive est définie sur TRUE. Une fois l’initialisation terminée et le bloc fonction prêt, la sortie q_xReady est définie sur TRUE. Un front montant sur l'entrée i_xExecute lance l'exécution du bloc fonction. Le bloc fonction poursuit son exécution et la sortie q_xBusy prend la valeur TRUE. Un front montant sur l'entrée i_xExecute est ignoré pendant l'exécution du bloc fonction. Une fois l'exécution terminée, les sorties q_xDone ou q_xError sont définies en fonction du résultat. La sortie q_xDone indique une exécution réussie et elle garde la valeur TRUE jusqu'au front montant de l'entrée i_xExecute. Si q_xError indique TRUE, une erreur a été détectée durant l'exécution. Une nouvelle exécution du bloc fonction est impossible tant que l'état d'erreur est présent. Le bloc fonction doit être désactivé afin de réinitialiser l'état d'erreur. En configurant l’entrée i_xEnable sur FALSE, le bloc fonction lance le processus de désactivation. L’appel du bloc fonction continue tant que la sortie q_xActive est égale à TRUE. EIO0000002780 12/2019 25 Entrées et sorties communes Exemple 26 EIO0000002780 12/2019 EcoStruxure Machine Expert Énumérations et Structures EIO0000002780 12/2019 Partie II Énumérations et Structures Énumérations et Structures Contenu de cette partie Cette partie contient les chapitres suivants : Chapitre Titre du chapitre Page 3 Énumérations 29 4 Structures 33 EIO0000002780 12/2019 27 Énumérations et Structures 28 EIO0000002780 12/2019 EcoStruxure Machine Expert Énumérations EIO0000002780 12/2019 Chapitre 3 Énumérations Énumérations Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page ET_FtpCommand 29 ET_Result 30 ET_FtpCommand Présentation Type : Énumération Disponible à partir de la version : V1.0.4.0 Description L'énumération ET_FtpCommand définit les commandes que le bloc fonction (voir page 47) FB_FtpClient peut exécuter via i_etCommand. Les noms de commande sont similaires aux commandes FTP définies dans IETF RFC 959. NOTE : Les commandes permettant de gérer une connexion ne sont pas incluses dans l'énumération ET_FtpCommand. Les informations d'identification (nom d'utilisateur, mot de passe) sont utilisées pour établir automatiquement une connexion à l'hôte spécifié, après l'activation du bloc fonction. Par défaut, le serveur FTP surveille le port 21. Pour modifier ces informations d'identification, désactivez la fonction et réactivez-la avec les nouvelles informations. Pour plus d'informations, reportez-vous à la section ST_Credentials (voir page 33). Éléments de l'énumération Nom Type de données Valeur Description NoCommand UINT 0 Valeur par défaut : état initial. ChangeWorkingDirectory UINT 1 Modifie le répertoire de travail. Retrieve UINT 2 Copie le fichier du serveur FTP externe dans un répertoire local spécifié. Store UINT 3 Copie le fichier sur le serveur FTP externe. EIO0000002780 12/2019 29 Énumérations Nom Type de données Valeur Description Rename UINT 4 Renomme un fichier ou un répertoire sur le serveur FTP externe. Delete UINT 5 Supprime un fichier sur le serveur FTP externe. RemoveDirectory UINT 6 Supprime un répertoire sur le serveur FTP externe. NOTE : Le répertoire du serveur FTP externe doit être vide. MakeDirectory UINT 7 Crée un répertoire sur le serveur FTP externe. List UINT 8 Affiche le contenu du répertoire sélectionné. Utilisé par FB_FtpClient ET_Result Présentation Type : Énumération Disponible à partir de la version : V1.0.4.0 Description L'énumération ET_Result contient les valeurs possibles qui donnent les résultats des opérations exécutées par le bloc fonction. Éléments d'énumération Nom Type de données Valeur Description Si q_xError d'un bloc fonction (voir page 47) est FALSE, l'un des messages d'état suivants apparaît. 30 Disabled UDINT 0 Le bloc fonction est désactivé. OperationSuccessful UDINT 1 La dernière commande FTP s'est exécutée correctement. NoCommandToExecute UDINT 2 Aucune commande à exécuter. ProcessingCommand UDINT 3 Le bloc fonction exécute une commande FTP. Initializing UDINT 4 Le bloc fonction est en cours d'initialisation. Operational UDINT 5 Le bloc fonction est opérationnel. Disabling UDINT 6 Le bloc fonction est en cours de désactivation. EIO0000002780 12/2019 Énumérations Nom Type de données Valeur Description Si le paramètre q_xError d'un bloc fonction (voir page 47) est TRUE, l'un des messages d'état suivants apparaît. UnexpectedProgramBehav ior UDINT 100 Une erreur interne a été détectée. InvalidIpAddress UDINT 101 L'adresse IP indiquée n'est pas valide. Seules les adresses IPv4 sont autorisées. UnsupportedFtpCommand UDINT 102 La commande FTP indiquée n'est pas prise en charge. Utilisez l'énumération ET_FtpCommand (voir page 29). UnableToMakeDirectory UDINT 103 Impossible de créer le répertoire sur le serveur FTP externe. Vérifiez si le répertoire existe déjà. UnableToRemoveDirector y UDINT 104 Impossible de supprimer le répertoire sur le serveur FTP externe. Vérifiez si le répertoire est vide, car seuls les répertoires vides peuvent être supprimés. Vérifiez si le répertoire a déjà été supprimé. UnableToChangeDirector y UDINT 105 Impossible de modifier le répertoire de travail sur le serveur FTP externe. Vérifiez si le répertoire cible existe. UnableToEstablishConne ction UDINT 106 Impossible d'établir la connexion FTP. Vérifiez si le serveur FTP est accessible. UnableToLogin UDINT 107 Impossible de se connecter au serveur FTP externe. Vérifiez si les informations d'identification sont correctes. UnableToSetTransferMod e UDINT 108 Impossible de définir le mode de transfert du fichier (TYPE I). Vérifiez si le serveur FTP peut transférer les données binaires. UnableToEnterPassiveMo de UDINT 109 Impossible d'activer le mode passif (PASV). Vérifiez si le serveur FTP a été configuré en ce sens. UnableToPrintWorkingDi rectory UDINT 110 Impossible d'afficher le répertoire de travail du serveur FTP externe. UnableToInitiateFileTr ansfer UDINT 111 Impossible d'effectuer le transfert de fichier. Vérifiez que i_sCommandArg1 et i_sCommandArg2 ne sont pas vides. EIO0000002780 12/2019 31 Énumérations Nom Type de données Valeur Description InconsistencyDuringFil eTransfer UDINT 112 Une erreur a été détectée pendant le transfert du fichier. Vérifiez si les données sont endommagées. UnableToListContent UDINT 113 Impossible d'afficher le contenu du répertoire sur le serveur FTP externe. UnableToEstablishMutli pleConnections UDINT 114 Impossible d'établir d'autres connexions FTP. Seule une instance de FB_FtpClient peut être active à la fois. UnableToDeleteFile UDINT 115 Impossible de supprimer le fichier du serveur FTP externe. UnableToRenameElement UDINT 116 Impossible de renommer l'élément sur le serveur FTP externe. FilePathNameLengthInva lid UDINT 117 Le nom du chemin de fichier dépasse la longueur autorisée de 75 caractères. InitAsyncManagerFailed UDINT 120 Une erreur interne a été détectée lors de l'initialisation du gestionnaire async. L'utilisation du gestionnaire async peut être configurée par la variable globale GVL.G_xDisableAsyncExecFtpClient. StartAsyncJobFailed UDINT 121 Une erreur interne a été détectée lors du démarrage de la tâche async. L'utilisation du gestionnaire async peut être configurée par la variable globale GVL.G_xDisableAsyncExecFtpClient. Utilisé par 32 FB_FtpClient EIO0000002780 12/2019 EcoStruxure Machine Expert Structures EIO0000002780 12/2019 Chapitre 4 Structures Structures Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page ST_Credentials 33 ST_Content 34 ST_Element 35 ST_Credentials Présentation Type : Structure Disponible à partir de la version : V1.0.4.0 Hérite de : – Description La structure ST_Credentials contient des informations utilisateur permettant de se connecter à un serveur FTP externe. NOTE : Les commandes permettant de gérer une connexion ne sont pas incluses dans l'énumération ET_FtpCommand. Les informations d'identification (nom d'utilisateur, mot de passe) sont utilisées pour établir automatiquement une connexion à l'hôte spécifié, après l'activation du bloc fonction. Par défaut, le serveur FTP surveille le port 21. Pour modifier ces informations d'identification, désactivez la fonction et réactivez-la avec les nouvelles informations. Pour plus d'informations, reportez-vous à la section ST_Credentials (voir page 33). Éléments de la structure Nom Type de données Description i_sHostIp STRING [15] Adresse IP du serveur FTP externe. i_sUsername STRING [255] Nom d'utilisateur permettant d'accéder au serveur FTP externe. i_sPassword STRING [255] Mot de passe permettant d'accéder au serveur FTP externe. i_sAccount STRING [255] Compte permettant d'accéder au serveur FTP externe. Ce paramètre est facultatif pour tous les serveurs FTP. EIO0000002780 12/2019 33 Structures Utilisé par FB_FtpClient ST_Content Présentation Type : Structure Disponible à partir de : V1.0.4.0 Hérite de : – Description La structure ST_Content contient les informations utilisateur concernant le répertoire sélectionné. Éléments de la structure Nom Type de données Description i_sCommandArg1 STRING [75] Si une commande FTP requiert un argument d'entrée, elle doit être transférée avec cette variable. Pour plus d'informations sur la syntaxe, reportez-vous au tableau suivant. i_sCommandArg2 STRING [75] Si une commande FTP requiert un deuxième ou un autre argument d'entrée, elle doit être transférée avec cette variable. Pour plus d'informations sur la syntaxe, reportez-vous au tableau suivant. q_sCurrentDirectory STRING [75] Nom du répertoire de travail. q_astElements ARRAY[0..Gc_udiMaxNumberO Affiche le contenu du répertoire et les informations sur l'élément. fListEntries] OF ST_Element q_udiAvailableElements UDINT 34 Nombre d'éléments dans le répertoire. EIO0000002780 12/2019 Structures Informations détaillées sur l'utilisation de i_sCommandArg1 et de i_sCommandArg2 : Commande i_sCommandArg1 i_sCommandArg2 ChangeWorkingDirectory Nom du répertoire sur le serveur FTP externe. – Retrieve Nom du fichier sur le serveur FTP externe. Nom du fichier dans le système de fichiers du contrôleur. Store Nom du fichier dans le système de fichiers du contrôleur. Nom du fichier sur le serveur FTP externe. Rename Nom actuel sur le serveur FTP externe. Nouveau nom sur le serveur FTP externe. Delete Nom du fichier sur le serveur FTP externe. – RemoveDirectory Nom du répertoire sur le serveur FTP externe. – MakeDirectory Nom du répertoire sur le serveur FTP externe. – List – – NOTE : Les commandes Retrieve et Store remplacent les éléments existants s'ils portent un nom identique. Exemple de programmation permettant de copier un fichier Pour copier le fichier task.txt du répertoire /jobs du serveur FTP externe dans le répertoire racine local sans modifier son nom, procédez comme suit avant d'envoyer un front positif via i_xExecute : i_sCommandArg1 := 'jobs/task.txt'; i_sCommandArg2 := 'task.txt'; Utilisé par FB_FtpClient ST_Element Présentation Type : Structure Disponible à partir de : V1.0.4.0 Hérite de : – EIO0000002780 12/2019 35 Structures Description La structure ST_Element fait partie de ST_Content. Elle contient des informations sur chaque élément dans le répertoire sélectionné du serveur FTP externe, une fois ET_FtpCommand.List exécuté. Éléments de la structure Nom Type de données Description sName STRING [255] Nom de l'élément. xIsDirectory BOOL TRUE : l'élément est un répertoire. FALSE : l'élément est un fichier. udiSize UDINT Taille du fichier en octets. sDate STRING [255] Date de dernière modification, affiché dans l'un des formats suivants : <mois jour heure>, par exemple Jul 05 14:30 <mois jour année>, par exemple Jul 05 2018 Utilisé par 36 FB_FtpClient EIO0000002780 12/2019 EcoStruxure Machine Expert Variables globales EIO0000002780 12/2019 Partie III Variables globales Variables globales Contenu de cette partie Cette partie contient les chapitres suivants : Chapitre Titre du chapitre Page 5 Liste des constantes globales 39 6 Liste des paramètres globaux 41 7 Liste de variables globales 43 EIO0000002780 12/2019 37 Variables globales 38 EIO0000002780 12/2019 EcoStruxure Machine Expert Liste des constantes globales EIO0000002780 12/2019 Chapitre 5 Liste des constantes globales Liste des constantes globales Liste des constantes globales (GCL) Présentation Type : Constantes globales Disponible à partir de la version : V1.0.4.0 Description La liste des constantes globales contient les constantes globales de la bibliothèque FtpRemoteFileHandling. Constantes globales Variable Type de données Gc_sLibraryVersion STRING[80] 1 Valeur Description 1 Vx.x.x.0 Version de bibliothèque Cette valeur varie selon la version de la bibliothèque. EIO0000002780 12/2019 39 Liste des constantes globales 40 EIO0000002780 12/2019 EcoStruxure Machine Expert Liste des paramètres globaux EIO0000002780 12/2019 Chapitre 6 Liste des paramètres globaux Liste des paramètres globaux Liste des paramètres globaux (GPL) Présentation Type : Paramètres globaux Disponible à partir de la version : V1.0.4.0 Description Cette liste contient les paramètres globaux de la bibliothèque FtpRemoteFileHandling. Vous pouvez les modifier en fonction de votre projet dans le Gestionnaire de bibliothèques. Paramètres globaux Variable Type de données Valeur Description Gc_udiMaxNumberOfListEntries UDINT 20 Nombre maximum d'éléments d'un répertoire à afficher. Gc_udiListBufferSize UDINT 2550 Nombre maximum d'octets à mettre en mémoire tampon lors de l'appel de ET_FtpCommand.List. Il est recommandé de multiplier la valeur du paramètre Gc_udiMaxNumberOfListEntries par 255 et d'utiliser le résultat pour cette variable. EIO0000002780 12/2019 41 Liste des paramètres globaux 42 EIO0000002780 12/2019 EcoStruxure Machine Expert Liste de variables globales EIO0000002780 12/2019 Chapitre 7 Liste de variables globales Liste de variables globales GVL Présentation Type : Variables globales Disponible à partir de la version : V1.3.0.0 Description La liste des variables globales contient les variables globales de la bibliothèque FtpRemoteFileHandling. Les variables globales sont utilisées automatiquement par les blocs fonction. Variables globales Variable Type de données Description G_xDisableAsyncExecFtpClient BOOL Si la valeur est TRUE, il s'ensuit une désactivation de l'exécution asynchrone des commandes pouvant être assumées par le bloc fonction FB_FtpClient.(1) Valeur par défaut : TRUE (1) Remarque : La désactivation de l'exécution asynchrone signifie que le code de programme est exécuté pendant la tâche d'appel. Cela allonge le temps d'exécution d'au moins un cycle de tâche durant le processus. EIO0000002780 12/2019 43 Liste de variables globales 44 EIO0000002780 12/2019 EcoStruxure Machine Expert Unités d'organisation de programme (POU) EIO0000002780 12/2019 Partie IV Unités d'organisation de programme (POU) Unités d'organisation de programme (POU) Contenu de cette partie Cette partie contient les chapitres suivants : Chapitre Titre du chapitre Page 8 Blocs fonction 47 9 Fonctions 49 EIO0000002780 12/2019 45 Unités d'organisation de programme (POU) 46 EIO0000002780 12/2019 EcoStruxure Machine Expert Blocs fonction EIO0000002780 12/2019 Chapitre 8 Blocs fonction Blocs fonction FB_FtpClient Présentation Type : Bloc fonction Disponible à partir de la version : V1.0.4.0 Tâche Le bloc fonction FB_FtpClient inclut des fonctionnalités FTP permettant d'effectuer des opérations sur les fichiers et les répertoires. Chaque instance gère une connexion FTP. Si vous tentez de lancer un deuxième transfert, le bloc fonction répond avec ET_Result.UnableToEstablishMutlipleConnections. Description fonctionnelle Le bloc fonction FB_FtpClient est l'interface utilisateur qui permet d'interagir avec le serveur FTP externe. Une fois le bloc fonction activé, une connexion FTP est établie à l'aide des informations utilisateur envoyées par iq_stCredentials. Dès que la connexion est établie, le bloc fonction peut traiter les commandes envoyées par i_etCommand et un front montant est détecté au niveau de i_xExecute. Tant que des commandes sont exécutées, la sortie q_xBusy est TRUE. Lorsqu'une commande aboutit, q_xDone a pour valeur TRUE. EIO0000002780 12/2019 47 Blocs fonction Les messages d'état et informations de diagnostic sont fournis à l'aide des sorties q_xError (TRUE si une erreur a été détectée), q_etResult et q_etResultMsg. Afin d'acquitter les erreurs détectées, désactivez et réactivez le bloc fonction pour pouvoir envoyer une commande. Lorsque vous désactivez le bloc fonction (i_xEnable = FALSE), il doit être appelé tant que q_xActive = TRUE pour terminer les routines de nettoyage internes. Ensuite, vous pouvez le réactiver. Si un timeout est dépassé après l'établissement d'une connexion, l'exécution de la commande FTP suivante (ET_FtpCommand) est détectée comme une erreur. Pour éviter cela, activez le bloc fonction juste avant d'effectuer les opérations associées et désactivez-le ensuite. Interface Entrée Type de données Description i_xEnable BOOL Activation et initialisation du bloc fonction. i_xExecute BOOL La commande spécifiée avec l'entrée i_etCommand est exécutée sur le front montant de cette entrée. i_etCommand ET_FtpCommand Commande FTP exécutée si l'entrée i_xExecute est TRUE. Entrée/sortie Type de données Description iq_stCredentials ST_Credentials Permet de transmettre la structure contenant les paramètres utilisateur, tels que le nom d'utilisateur ou le mot de passe. iq_stContent ST_Content Permet de transmettre le répertoire de travail et, le cas échéant, le nombre et le nom des fichiers dans ce répertoire. Sortie Type de données Description q_xActive BOOL Si le bloc fonction est actif, la sortie est TRUE. q_xReady BOOL Si l'initialisation aboutit, la sortie est TRUE tant que le bloc fonction accepte des entrées. q_xBusy BOOL Si cette sortie est TRUE, le bloc fonction exécute la commande spécifiée dans i_etCommand. q_xDone BOOL Si cette sortie est TRUE, le bloc fonction a fini d'exécuter la commande spécifiée dans i_etCommand. q_xError BOOL Si cette sortie est TRUE, une erreur a été détectée. Pour plus d'informations, reportez-vous à q_etResult et q_etResultMsg. q_etResult ET_Result Fournit des informations de diagnostic et d'état. q_sResultMsg STRING[255] 48 Fournit des informations supplémentaires de diagnostic et d'état. EIO0000002780 12/2019 EcoStruxure Machine Expert Fonctions EIO0000002780 12/2019 Chapitre 9 Fonctions Fonctions Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page FC_EtResultToString 49 FC_EtFtpCommandToString 50 FC_EtResultToString Présentation Type : Fonction Disponible à partir de la version : V1.0.1.0 Hérite de : – Met en œuvre : – Tâche Convertir un élément d'énumération de type ET_Result en une variable de type STRING. Description fonctionnelle La fonction FC_EtResultToString permet de convertir un élément d'énumération de type ET_Result en une variable de type STRING. Interface Entrée Type de données Description i_etResult ET_Result Énumération avec le résultat. EIO0000002780 12/2019 49 Fonctions Valeur retournée Type de données Description STRING(80) ET_Result converti en texte. Si i_etResult est indéterminable, la valeur de retour est : Unknown Result: <Value of the input i_etResult> FC_EtFtpCommandToString Présentation Type : Fonction Disponible à partir de la version : V1.0.1.0 Hérite de : – Met en œuvre : – Tâche Convertir un élément d'énumération de type ET_FtpCommand en une chaîne de caractères contenant la commande FTP. Description fonctionnelle En utilisant la fonction FC_EtFtpCommandToString, vous pouvez convertir un élément d'énumération de type ET_FtpCommand en une valeur de chaîne. Interface Entrée Type de données Description i_etFtpCommand ET_FtpCommand Énumération avec le résultat. Valeur retournée 50 Type de données Description STRING(80) Le ET_FtpCommand converti en valeur de chaîne. EIO0000002780 12/2019 EcoStruxure Machine Expert EIO0000002780 12/2019 Annexes EIO0000002780 12/2019 51 52 EIO0000002780 12/2019 EcoStruxure Machine Expert Représentation des fonctions et blocs fonction EIO0000002780 12/2019 Annexe A Représentation des fonctions et blocs fonction Représentation des fonctions et blocs fonction Présentation Chaque fonction peut être représentée dans les langages suivants : IL : (Instruction List) liste d'instructions ST : (Structured Text) littéral structuré LD : (Ladder Diagram) schéma à contacts FBD : Function Block Diagram (Langage à blocs fonction) CFC : Continuous Function Chart (Diagramme fonctionnel continu) Ce chapitre fournit des exemples de représentations de fonctions et blocs fonction et explique comment les utiliser dans les langages IL et ST. Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page Différences entre une fonction et un bloc fonction 53 Utilisation d'une fonction ou d'un bloc fonction en langage IL 54 Utilisation d'une fonction ou d'un bloc fonction en langage ST 59 Différences entre une fonction et un bloc fonction Fonction Une fonction : est une POU (Program Organization Unit ou unité organisationnelle de programme) qui renvoie un résultat immédiat ; est directement appelée par son nom (et non par une instance) ; ne conserve pas son état entre deux appels ; peut être utilisée en tant qu'opérande dans des expressions. Exemples : opérateurs booléens (AND), calculs, conversions (BYTE_TO_INT) Bloc fonction Un bloc fonction : est une POU qui renvoie une ou plusieurs sorties ; doit être appelé par une instance (copie de bloc fonction avec nom et variables dédiées). Chaque instance conserve son état (sorties et variables internes) entre deux appels à partir d'un bloc fonction ou d'un programme. EIO0000002780 12/2019 53 Représentation des fonctions et blocs fonction Exemples : temporisateurs, compteurs Dans l'exemple, Timer_ON est une instance du bloc fonction TON : Utilisation d'une fonction ou d'un bloc fonction en langage IL Informations générales Cette partie explique comment mettre en œuvre une fonction et un bloc fonction en langage IL. Les fonctions IsFirstMastCycle et SetRTCDrift, ainsi que le bloc fonction TON, sont utilisés à titre d'exemple pour illustrer les mises en œuvre. Utilisation d'une fonction en langage IL La procédure suivante explique comment insérer une fonction en langage IL : Étape Action 1 Ouvrez ou créez une POU en langage IL (Instruction List, ou liste d'instructions). NOTE : La procédure de création d'une POU n'est pas détaillée ici. Pour plus d'informations, reportez-vous à la section Ajout et appel de POU (voir EcoStruxure Machine Expert, Guide de programmation). 54 2 Créez les variables nécessaires à la fonction. 3 Si la fonction possède une ou plusieurs entrées, chargez la première entrée en utilisant l'instruction LD. EIO0000002780 12/2019 Représentation des fonctions et blocs fonction Étape Action 4 Insérez une nouvelle ligne en dessous et : saisissez le nom de la fonction dans la colonne de l'opérateur (champ de gauche), ou utilisez l'Aide à la saisie pour sélectionner la fonction (sélectionnez Insérer l'appel de module dans le menu contextuel). 5 Si la fonction a plus d'une entrée et que l'assistant Aide à la saisie est utilisé, le nombre requis de lignes est automatiquement créé avec ??? dans les champs situés à droite. Remplacez les ??? par la valeur ou la variable appropriée compte tenu de l'ordre des entrées. 6 insérez une nouvelle ligne pour stocker le résultat de la fonction dans la variable appropriée : saisissez l'instruction ST dans la colonne de l'opérateur (champ de gauche) et le nom de la variable dans le champ de droite. Pour illustrer la procédure, utilisons les fonctions IsFirstMastCycle (sans paramètre d'entrée) et SetRTCDrift (avec paramètres d'entrée) représentées graphiquement ci-après : Fonction Représentation graphique sans paramètre d'entrée : IsFirstMastCycle avec paramètres d'entrée : SetRTCDrift EIO0000002780 12/2019 55 Représentation des fonctions et blocs fonction En langage IL, le nom de la fonction est utilisé directement dans la colonne de l'opérateur : Fonction Représentation dans l'éditeur IL de POU Exemple en IL d'une fonction sans paramètre d'entrée : IsFirstMastCycle Exemple IL d'une fonction avec des paramètres d'entrée : SetRTCDrift 56 EIO0000002780 12/2019 Représentation des fonctions et blocs fonction Utilisation d'un bloc fonction en langage IL La procédure suivante explique comment insérer un bloc fonction en langage IL : Étape Action 1 Ouvrez ou créez une POU en langage IL (Instruction List, ou liste d'instructions). NOTE : La procédure de création d'une POU n'est pas détaillée ici. Pour plus d'informations, reportez-vous à la section Ajout et appel de POU (voir EcoStruxure Machine Expert, Guide de programmation). 2 Créez les variables nécessaires au bloc fonction (y compris le nom de l'instance). 3 L'appel de blocs fonction nécessite l'utilisation d'une instruction CAL : Utilisez l'Aide à la saisie pour sélectionner le bloc fonction (cliquez avec le bouton droit et sélectionnez Insérer l'appel de module dans le menu contextuel). L'instruction CAL et les E/S nécessaires sont automatiquement créées. Chaque paramètre (E/S) est une instruction : Les valeurs des entrées sont définies à l'aide de « := ». Les valeurs des sorties sont définies à l'aide de « => ». 4 Dans le champ CAL de droite, remplacez les ??? par le nom de l'instance. 5 Remplacez les autres ??? par une variable ou une valeur immédiate appropriée. Pour illustrer la procédure, utilisons le bloc fonction TON représenté graphiquement ci-après : Bloc fonction Représentation graphique TON En langage IL, le nom du bloc fonction est utilisé directement dans la colonne de l'opérateur : EIO0000002780 12/2019 57 Représentation des fonctions et blocs fonction Bloc fonction Représentation dans l'éditeur IL de POU TON 58 EIO0000002780 12/2019 Représentation des fonctions et blocs fonction Utilisation d'une fonction ou d'un bloc fonction en langage ST Informations générales Cette partie décrit comment mettre en œuvre une fonction ou un bloc fonction en langage ST. La fonction SetRTCDrift et le bloc fonction TON sont utilisés à titre d'exemple pour illustrer les mises en œuvre. Utilisation d'une fonction en langage ST La procédure suivante explique comment insérer une fonction en langage ST : Étape Action 1 Ouvrez ou créez une POU en langage ST (Structured Text ou Littéral structuré). NOTE : La procédure de création d'une POU n'est pas détaillée ici. Pour plus d'informations, reportez-vous à la section Ajout et appel de POU (voir EcoStruxure Machine Expert, Guide de programmation). 2 Créez les variables nécessaires à la fonction. 3 Utilisez la syntaxe générale dans l'éditeur ST de POU pour la représentation en langage ST d'une fonction. La syntaxe générale est la suivante : RésultatFonction:= NomFonction(VarEntrée1, VarEntrée2, … VarEntréex); Pour illustrer la procédure, utilisons la fonction SetRTCDrift représentée graphiquement ciaprès : Fonction Représentation graphique SetRTCDrift EIO0000002780 12/2019 59 Représentation des fonctions et blocs fonction La représentation en langage ST de cette fonction est la suivante : Fonction Représentation dans l'éditeur ST de POU SetRTCDrift PROGRAM MyProgram_ST VAR myDrift: SINT(-29..29) := 5; myDay: DAY_OF_WEEK := SUNDAY; myHour: HOUR := 12; myMinute: MINUTE; myRTCAdjust: RTCDRIFT_ERROR; END_VAR myRTCAdjust:= SetRTCDrift(myDrift, myDay, myHour, myMinute); Utilisation d'un bloc fonction en langage ST La procédure suivante explique comment insérer un bloc fonction en langage ST : Étape Action 1 Ouvrez ou créez une POU en langage ST (Structured Text ou Littéral structuré). NOTE : La procédure de création d'une POU n'est pas détaillée ici. Pour plus d'informations sur l'ajout, la déclaration et l'appel de POU, reportez-vous à la documentation (voir EcoStruxure Machine Expert, Guide de programmation) associée. 2 Créez les variables d'entrée, les variables de sortie et l'instance requises pour le bloc fonction : Les variables d'entrée sont les paramètres d'entrée requis par le bloc fonction. Les variables de sortie reçoivent la valeur renvoyée par le bloc fonction. 3 Utilisez la syntaxe générale dans l'éditeur ST de POU pour la représentation en langage ST d'un bloc fonction. La syntaxe générale est la suivante : BlocFonction_NomInstance(Entrée1:=VarEntrée1, Entrée2:=VarEntrée2,… Sortie1=>VarSortie1, Sortie2=>VarSortie2,…); Pour illustrer la procédure, utilisons le bloc fonction TON représenté graphiquement ci-après : Bloc fonction Représentation graphique TON 60 EIO0000002780 12/2019 Représentation des fonctions et blocs fonction Le tableau suivant montre plusieurs exemples d'appel de bloc fonction en langage ST : Bloc fonction Représentation dans l'éditeur ST de POU TON EIO0000002780 12/2019 61 Représentation des fonctions et blocs fonction 62 EIO0000002780 12/2019 EcoStruxure Machine Expert Glossaire EIO0000002780 12/2019 Glossaire A adresse IP L'adresse IP de IPv4 (Internet Protocol version 4) est une valeur de 4 octets permettant d'identifier les équipements connectés à un réseau IP. ASCII Acronyme de American Standard Code for Information Interchange. Protocole utilisé pour représenter les caractères alphanumériques (lettres, chiffres, ainsi que certains caractères graphiques et de contrôle). C CFC client Acronyme de continuous function chart (diagramme fonctionnel continu). Langage de programmation graphique (extension de la norme IEC 61131-3) basé sur le langage de diagramme à blocs fonction et qui fonctionne comme un diagramme de flux. Toutefois, il n'utilise pas de réseaux et le positionnement libre des éléments graphiques est possible, ce qui permet les boucles de retour. Pour chaque bloc, les entrées se situent à gauche et les sorties à droite. Vous pouvez lier les sorties de blocs aux entrées d'autres blocs pour créer des expressions complexes. Composante d'une application de communications. La partie initialement active établit une connexion (TCP) ou envoie des données au serveur. F FB FTP Acronyme de function block, bloc fonction. Mécanisme de programmation commode qui consolide un groupe d'instructions de programmation visant à effectuer une action spécifique et normalisée telle que le contrôle de vitesse, le contrôle d'intervalle ou le comptage. Un bloc fonction peut comprendre des données de configuration, un ensemble de paramètres de fonctionnement interne ou externe et généralement une ou plusieurs entrées et sorties de données. Acronyme de File Transfer Protocol, protocole de transfert de fichiers. Protocole réseau standard basé sur une architecture client-serveur qui sert à échanger et à manipuler des fichiers sur des réseaux TCP/IP quelle que soit leur taille. EIO0000002780 12/2019 63 Glossaire I IL INT Acronyme de instruction list, liste d'instructions. Un programme écrit en langage IL est composé d'instructions textuelles qui sont exécutées séquentiellement par le contrôleur. Chaque instruction comprend un numéro de ligne, un code d'instruction et un opérande (voir la norme IEC 61131-3). Abréviation de integer, nombre entier codé sur 16 bits. L langage en blocs fonctionnels Un des 5 langages de programmation de logique ou de commande pris en charge par la norme IEC 61131-3 pour les systèmes de commande. FBD est un langage de programmation orienté graphique. Il fonctionne avec une liste de réseaux où chaque réseau contient une structure graphique de zones et de lignes de connexion représentant une expression logique ou arithmétique, un appel de bloc fonction ou une instruction de retour. LD Acronyme de ladder diagram, schéma à contacts. Représentation graphique des instructions d'un programme de contrôleur, avec des symboles pour les contacts, les bobines et les blocs dans une série de réseaux exécutés séquentiellement par un contrôleur (voir IEC 61131-3). O octet Type codé sur 8 bits, de 00 à FF au format hexadécimal. P POU Acronyme de program organization unit, unité organisationnelle de programme. Déclaration de variables dans le code source et jeu d'instructions correspondant. Les POUs facilitent la réutilisation modulaire de programmes logiciels, de fonctions et de blocs fonction. Une fois déclarées, les POUs sont réutilisables. S serveur 64 Composante d'une application de communications. Au départ, le serveur est passif. Il attend que des clients initialisent une communication. Le serveur s'exécute sur un numéro de port défini ; son adresse est connue des clients. EIO0000002780 12/2019 Glossaire ST Acronyme de structured text, texte structuré. Langage composé d'instructions complexes et d'instructions imbriquées (boucles d'itération, exécutions conditionnelles, fonctions). Le langage ST est conforme à la norme IEC 61131-3. V variable Unité de mémoire qui est adressée et modifiée par un programme. EIO0000002780 12/2019 65 Glossaire 66 EIO0000002780 12/2019 EcoStruxure Machine Expert Index EIO0000002780 12/2019 Index B 32 UnableToInitiateFileTransfer, 31 UnableToListContent, 32 UnableToLogin, 31 UnableToMakeDirectory, 31 UnableToPrintWorkingDirectory, 31 UnableToRemoveDirectory, 31 UnableToRenameElement, 32 UnableToSetTransferMode, 31 UnexpectedProgramBehavior, 31 UnsupportedFtpCommand, 31 bibliothèques FtpRemoteFileHandling, 19 E entrées et sorties communes fonctionnement des blocs fonction avec l'entrée i_xEnable et i_xExecute, 25 ET_FtpCommand, 29 ET_Result, 30 ChangeWorkingDirectory, 29 Delete, 30 Disabled, 30 Disabling, 30 FilePathNameLengthInvalid, 32 InconsistencyDuringFileTransfer, 32 InitAsyncManagerFailed, 32 Initializing, 30 InvalidIpAddress, 31 List, 30 MakeDirectory, 30 NoCommand, 29 NoCommandToExecute, 30 Operational, 30 OperationSuccessful, 30 ProcessingCommand, 30 RemoveDirectory, 30 Rename, 30 Retrieve, 29 StartAsyncJobFailed, 32 Store, 29 UnableToChangeDirectory, 31 UnableToDeleteFile, 32 UnableToEnterPassiveMode, 31 UnableToEstablishConnection, 31 UnableToEstablishMutlipleConnections, EIO0000002780 12/2019 F FB_FtpClient, 47 FC_EtFtpCommandToString, 50 FC_EtResultToString, 49 fonctions différences entre une fonction et un bloc fonction, 53 utilisation d'une fonction ou d'un bloc fonction en langage IL, 54 utilisation d'une fonction ou d'un bloc fonction en langage ST, 59 FtpRemoteFileHandling, 19 FB_FtpClient, 47 FC_EtFtpCommandToString, 50 GCL (liste des constantes globales), 39 GPL (liste des paramètres globaux), 41 GVL, 43 G GCL (liste des constantes globales) FtpRemoteFileHandling, 39 gestion des fichiers distants par FTP éléments à prendre en compte, 21 GPL (liste des paramètres globaux) FtpRemoteFileHandling, 41 GVL FtpRemoteFileHandling, 43 67 Index L limites du transfert de données FTP, 21 S ST_Content, 34 ST_Credentials, 33 ST_Element, 35 T transfert de données FTP limites, 21 68 EIO0000002780 12/2019 EcoStruxure Machine Expert EIO0000003850 12/2019 EcoStruxure Machine Expert HttpHandling Guide de la bibliothèque EIO0000003850.01 12/2019 www.schneider-electric.com Le présent document comprend des descriptions générales et/ou des caractéristiques techniques des produits mentionnés. Il ne peut pas être utilisé pour définir ou déterminer l'adéquation ou la fiabilité de ces produits pour des applications utilisateur spécifiques. Il incombe à chaque utilisateur ou intégrateur de réaliser l'analyse de risques complète et appropriée, l'évaluation et le test des produits pour ce qui est de l'application à utiliser et de l'exécution de cette application. Ni la société Schneider Electric ni aucune de ses sociétés affiliées ou filiales ne peuvent être tenues pour responsables de la mauvaise utilisation des informations contenues dans le présent document. Si vous avez des suggestions, des améliorations ou des corrections à apporter à cette publication, veuillez nous en informer. Vous acceptez de ne pas reproduire, excepté pour votre propre usage à titre non commercial, tout ou partie de ce document et sur quelque support que ce soit sans l'accord écrit de Schneider Electric. Vous acceptez également de ne pas créer de liens hypertextes vers ce document ou son contenu. Schneider Electric ne concède aucun droit ni licence pour l'utilisation personnelle et non commerciale du document ou de son contenu, sinon une licence non exclusive pour une consultation « en l'état », à vos propres risques. Tous les autres droits sont réservés. Toutes les réglementations locales, régionales et nationales pertinentes doivent être respectées lors de l'installation et de l'utilisation de ce produit. Pour des raisons de sécurité et afin de garantir la conformité aux données système documentées, seul le fabricant est habilité à effectuer des réparations sur les composants. Lorsque des équipements sont utilisés pour des applications présentant des exigences techniques de sécurité, suivez les instructions appropriées. La non-utilisation du logiciel Schneider Electric ou d'un logiciel approuvé avec nos produits matériels peut entraîner des blessures, des dommages ou un fonctionnement incorrect. Le non-respect de cette consigne peut entraîner des lésions corporelles ou des dommages matériels. © 2019 Schneider Electric. Tous droits réservés. 2 EIO0000003850 12/2019 Table des matières Consignes de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . A propos de ce manuel. . . . . . . . . . . . . . . . . . . . . . . . . . Partie I Informations générales . . . . . . . . . . . . . . . . . . . . . . . Chapitre 1 Présentation de la bibliothèque . . . . . . . . . . . . . . . . . . . Informations générales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Partie II Types d'unités de données . . . . . . . . . . . . . . . . . . . . Chapitre 2 Énumérations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ET_Result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ET_State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ET_StatusClass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 3 Alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Partie III Variables globales . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 4 Liste des paramètres globaux. . . . . . . . . . . . . . . . . . . . . Liste des paramètres globaux (GPL) . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 5 Liste de variables globales . . . . . . . . . . . . . . . . . . . . . . . Liste de variables globales (GVL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . Partie IV Unités d'organisation de programme (POU) . . . . . . . Chapitre 6 Blocs fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FB_HttpClient. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Propriétés de FB_HttpClient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AcknowlegeResponse - Méthode. . . . . . . . . . . . . . . . . . . . . . . . . . . ConnectToServer - Méthode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Delete - Méthode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DisconnectFromServer -Méthode . . . . . . . . . . . . . . . . . . . . . . . . . Get - Méthode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Head - Méthode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Post - Méthode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Put - Méthode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reset - Méthode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exemple de code. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EIO0000003850 12/2019 5 11 17 19 19 21 23 24 26 27 29 29 31 33 33 35 35 37 39 40 42 44 45 48 50 51 53 55 58 60 60 3 Chapitre 7 Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1 Types de données (EnumToStringConverters) . . . . . . . . . . . . . . . . . . FC_EtResultToString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FC_EtStateToString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FC_ETStatusClassToString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Glossaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 63 64 65 66 67 69 71 EIO0000003850 12/2019 Consignes de sécurité Informations importantes AVIS Lisez attentivement ces instructions et examinez le matériel pour vous familiariser avec l'appareil avant de tenter de l'installer, de le faire fonctionner, de le réparer ou d'assurer sa maintenance. Les messages spéciaux suivants que vous trouverez dans cette documentation ou sur l'appareil ont pour but de vous mettre en garde contre des risques potentiels ou d'attirer votre attention sur des informations qui clarifient ou simplifient une procédure. EIO0000003850 12/2019 5 REMARQUE IMPORTANTE L'installation, l'utilisation, la réparation et la maintenance des équipements électriques doivent être assurées par du personnel qualifié uniquement. Schneider Electric décline toute responsabilité quant aux conséquences de l'utilisation de ce matériel. Une personne qualifiée est une personne disposant de compétences et de connaissances dans le domaine de la construction, du fonctionnement et de l'installation des équipements électriques, et ayant suivi une formation en sécurité leur permettant d'identifier et d'éviter les risques encourus. QUALIFICATION DU PERSONNEL Une personne qualifiée est une personne qui a les qualifications suivantes : Compétences et connaissances liées à la construction et à l'exploitation d'équipements électriques et à l'installation. Connaissances et expérience en programmation de contrôle industriel. A reçu une formation en sécurité permettant de reconnaître et d'éviter les dangers potentiels. La personne qualifiée doit être capable de détecter d'éventuels dangers qui pourraient découler du paramétrage, de modifications des valeurs de paramétrage et plus généralement des équipements mécaniques, électriques ou électroniques. La personne qualifiée doit connaître les normes, dispositions et régulations liées à la prévention des accidents de travail, et doit les observer lors de la conception et de l'implémentation du système. INSTRUCTIONS D'UTILISATION Ce produit est une bibliothèque à utiliser avec un système de commande et des servoamplificateurs. La bibliothèque n'est conçue qu'en vue d'une utilisation telle que décrite dans la présente documentation, appliquée au secteur industriel. Observez en permanence les instructions applicables liées à la sécurité, les conditions spécifiques et les données techniques. Réalisez une analyse des risques en rapport avec l'utilisation spécifique avant d'utiliser ce produit. Prenez les mesures de sécurité qui découlent des résultats. Étant donné que ce produit est utilisé au sein d'un système qui l'englobe, vous devez assurer la sécurité du personnel par la conception même du système global (la conception de la machine, par exemple). Aucune autre utilisation n'est prévue. Toute autre utilisation pourrait être dangereuse. 6 EIO0000003850 12/2019 AVANT DE COMMENCER N'utilisez pas ce produit sur les machines non pourvues de protection efficace du point de fonctionnement. L'absence de ce type de protection sur une machine présente un risque de blessures graves pour l'opérateur. AVERTISSEMENT EQUIPEMENT NON PROTEGE N'utilisez pas ce logiciel ni les automatismes associés sur des appareils non équipés de protection du point de fonctionnement. N'accédez pas aux machines pendant leur fonctionnement. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Cet automatisme et le logiciel associé permettent de commander des processus industriels divers. Le type ou le modèle d'automatisme approprié pour chaque application dépendra de facteurs tels que la fonction de commande requise, le degré de protection exigé, les méthodes de production, des conditions inhabituelles, la législation, etc. Dans certaines applications, plusieurs processeurs seront nécessaires, notamment lorsque la redondance de sauvegarde est requise. Vous seul, en tant que constructeur de machine ou intégrateur de système, pouvez connaître toutes les conditions et facteurs présents lors de la configuration, de l'exploitation et de la maintenance de la machine, et êtes donc en mesure de déterminer les équipements automatisés, ainsi que les sécurités et verrouillages associés qui peuvent être utilisés correctement. Lors du choix de l'automatisme et du système de commande, ainsi que du logiciel associé pour une application particulière, vous devez respecter les normes et réglementations locales et nationales en vigueur. Le document National Safety Council's Accident Prevention Manual (reconnu aux Etats-Unis) fournit également de nombreuses informations utiles. Dans certaines applications, telles que les machines d'emballage, une protection supplémentaire, comme celle du point de fonctionnement, doit être fournie pour l'opérateur. Elle est nécessaire si les mains ou d'autres parties du corps de l'opérateur peuvent entrer dans la zone de point de pincement ou d'autres zones dangereuses, risquant ainsi de provoquer des blessures graves. Les produits logiciels seuls, ne peuvent en aucun cas protéger les opérateurs contre d'éventuelles blessures. C'est pourquoi le logiciel ne doit pas remplacer la protection de point de fonctionnement ou s'y substituer. Avant de mettre l'équipement en service, assurez-vous que les dispositifs de sécurité et de verrouillage mécaniques et/ou électriques appropriés liés à la protection du point de fonctionnement ont été installés et sont opérationnels. Tous les dispositifs de sécurité et de verrouillage liés à la protection du point de fonctionnement doivent être coordonnés avec la programmation des équipements et logiciels d'automatisation associés. NOTE : La coordination des dispositifs de sécurité et de verrouillage mécaniques/électriques du point de fonctionnement n'entre pas dans le cadre de cette bibliothèque de blocs fonction, du Guide utilisateur système ou de toute autre mise en œuvre référencée dans la documentation. EIO0000003850 12/2019 7 DEMARRAGE ET TEST Avant toute utilisation de l'équipement de commande électrique et des automatismes en vue d'un fonctionnement normal après installation, un technicien qualifié doit procéder à un test de démarrage afin de vérifier que l'équipement fonctionne correctement. Il est essentiel de planifier une telle vérification et d'accorder suffisamment de temps pour la réalisation de ce test dans sa totalité. AVERTISSEMENT RISQUES INHERENTS AU FONCTIONNEMENT DE L'EQUIPEMENT Assurez-vous que toutes les procédures d'installation et de configuration ont été respectées. Avant de réaliser les tests de fonctionnement, retirez tous les blocs ou autres cales temporaires utilisés pour le transport de tous les dispositifs composant le système. Enlevez les outils, les instruments de mesure et les débris éventuels présents sur l'équipement. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Effectuez tous les tests de démarrage recommandés dans la documentation de l'équipement. Conservez toute la documentation de l'équipement pour référence ultérieure. Les tests logiciels doivent être réalisés à la fois en environnement simulé et réel. Vérifiez que le système entier est exempt de tout court-circuit et mise à la terre temporaire non installée conformément aux réglementations locales (conformément au National Electrical Code des Etats-Unis, par exemple). Si des tests diélectriques sont nécessaires, suivez les recommandations figurant dans la documentation de l'équipement afin d'éviter de l'endommager accidentellement. Avant de mettre l'équipement sous tension : Enlevez les outils, les instruments de mesure et les débris éventuels présents sur l'équipement. Fermez le capot du boîtier de l'équipement. Retirez toutes les mises à la terre temporaires des câbles d'alimentation entrants. Effectuez tous les tests de démarrage recommandés par le fabricant. 8 EIO0000003850 12/2019 FONCTIONNEMENT ET REGLAGES Les précautions suivantes sont extraites du document NEMA Standards Publication ICS 7.1-1995 (la version anglaise prévaut) : Malgré le soin apporté à la conception et à la fabrication de l'équipement ou au choix et à l'évaluation des composants, des risques subsistent en cas d'utilisation inappropriée de l'équipement. Il arrive parfois que l'équipement soit déréglé accidentellement, entraînant ainsi un fonctionnement non satisfaisant ou non sécurisé. Respectez toujours les instructions du fabricant pour effectuer les réglages fonctionnels. Les personnes ayant accès à ces réglages doivent connaître les instructions du fabricant de l'équipement et les machines utilisées avec l'équipement électrique. Seuls ces réglages fonctionnels, requis par l'opérateur, doivent lui être accessibles. L'accès aux autres commandes doit être limité afin d'empêcher les changements non autorisés des caractéristiques de fonctionnement. EIO0000003850 12/2019 9 10 EIO0000003850 12/2019 A propos de ce manuel Présentation Objectif du document Ce document décrit la bibliothèque HttpHandling. Champ d'application Ce document a été actualisé pour le lancement d’EcoStruxureTM Machine Expert V1.2. Les caractéristiques techniques des équipements décrits dans ce document sont également fournies en ligne. Pour accéder à ces informations en ligne : Etape Action 1 Accédez à la page d'accueil de Schneider Electric www.schneider-electric.com. 2 Dans la zone Search, saisissez la référence d'un produit ou le nom d'une gamme de produits. N'insérez pas d'espaces dans la référence ou la gamme de produits. Pour obtenir des informations sur un ensemble de modules similaires, utilisez des astérisques (*). 3 Si vous avez saisi une référence, accédez aux résultats de recherche Product Datasheets et cliquez sur la référence qui vous intéresse. Si vous avez saisi une gamme de produits, accédez aux résultats de recherche Product Ranges et cliquez sur la gamme de produits qui vous intéresse. 4 Si plusieurs références s'affichent dans les résultats de recherche Products, cliquez sur la référence qui vous intéresse. 5 Selon la taille de l'écran, vous serez peut-être amené à faire défiler la page pour consulter la fiche technique. 6 Pour enregistrer ou imprimer une fiche technique au format .pdf, cliquez sur Download XXX product datasheet. Les caractéristiques présentées dans ce document devraient être identiques à celles fournies en ligne. Toutefois, en application de notre politique d'amélioration continue, nous pouvons être amenés à réviser le contenu du document afin de le rendre plus clair et plus précis. Si vous constatez une différence entre le document et les informations fournies en ligne, utilisez ces dernières en priorité. EIO0000003850 12/2019 11 Information spécifique au produit AVERTISSEMENT PERTE DE CONTROLE Le concepteur d'un système de commande doit envisager les modes de défaillance possibles des chemins de commande et, pour certaines fonctions de commande critiques, prévoir un moyen d'atteindre un état sécurisé en cas de défaillance d'un chemin, et après cette défaillance. Par exemple, l'arrêt d'urgence, l'arrêt en cas de surcourse, la coupure de courant et le redémarrage sont des fonctions de contrôle cruciales. Des canaux de commande séparés ou redondants doivent être prévus pour les fonctions de commande critique. Les liaisons de communication peuvent faire partie des canaux de commande du système. Soyez particulièrement attentif aux implications des retards de transmission imprévus ou des pannes de liaison. Respectez toutes les réglementations de prévention des accidents ainsi que les consignes de sécurité locales.1 Chaque implémentation de cet équipement doit être testée individuellement et entièrement pour s'assurer du fonctionnement correct avant la mise en service. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. 1 Pour plus d'informations, consultez les documents suivants ou leurs équivalents pour votre site d'installation : NEMA ICS 1.1 (dernière édition), « Safety Guidelines for the Application, Installation, and Maintenance of Solid State Control » (Directives de sécurité pour l'application, l'installation et la maintenance de commande statique) et NEMA ICS 7.1 (dernière édition), « Safety Standards for Construction and Guide for Selection, Installation, and Operation of Adjustable-Speed Drive Systems » (Normes de sécurité relatives à la construction et manuel de sélection, d'installation et d'exploitation de variateurs de vitesse). Avant de tenter de fournir une solution (machine ou processus) pour une application spécifique en utilisant les POU trouvés dans la bibliothèque, vous devez tenir compte de la réalisation et de l'exécution des bonnes pratiques. La liste non exhaustive de ces pratiques liées à cette bibliothèque inclut l'analyse des risques, la sécurité fonctionnelle, la compatibilité des composants, les tests et la validation du système. 12 EIO0000003850 12/2019 AVERTISSEMENT UTILISATION INCORRECTE DES UNITES ORGANISATIONNELLES DU PROGRAMME Effectuez une analyse de la sécurité de l'application et des équipements installés. Vérifiez que les POU sont compatibles avec les équipements du système et n'ont pas d'effets inattendus sur le bon fonctionnement du système. Utilisez les paramètres appropriés, notamment les valeurs limites, et observez l'usure de la machine et son fonctionnement à l'arrêt. Vérifiez que les capteurs et déclencheurs sont compatibles avec les POU sélectionnés. Testez de manière approfondie toutes les fonctions durant la vérification et la mise en service dans tous les modes de fonctionnement. Indiquez des méthodes indépendantes pour les fonctions de commande critiques (arrêt d'urgence, conditions de dépassement des valeurs limites, etc.) en fonction d'une analyse de la sécurité, des règles correspondantes et des réglementations. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. AVERTISSEMENT FONCTIONNEMENT IMPRÉVU DE L'ÉQUIPEMENT N'utilisez que le logiciel approuvé par Schneider Electric pour faire fonctionner cet équipement. Mettez à jour votre programme d'application chaque fois que vous modifiez la configuration matérielle physique. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Les transferts incomplets, qu'il s'agisse de fichiers de données, d'application et/ou de micrologiciel, peuvent avoir des conséquences graves sur votre machine ou votre contrôleur. En cas coupure de courant (volontaire ou non) ou d'interruption de la communication pendant un transfert de fichier, votre machine peut devenir inopérante ou votre application peut tenter d'utiliser un fichier de données endommagé. En cas d'interruption, relancez le transfert. Veillez à inclure l'impact des fichiers de données endommagés dans votre analyse des risques. EIO0000003850 12/2019 13 AVERTISSEMENT FONCTIONNEMENT IMPRÉVU DE L'ÉQUIPEMENT, PERTE DE DONNÉES OU FICHIER ENDOMMAGÉ N'interrompez pas un transfert de données en cours. Si le transfert est interrompu pour une raison quelconque, relancez-le. Ne mettez pas votre machine en service tant que le transfert de fichier n'est pas terminé, sauf si vous avez pris en compte les fichiers endommagés dans votre analyse des risques et si vous avez mis en place des mesures appropriées pour prévenir les conséquences potentiellement graves dues à des échecs de transfert. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. L'utilisation de cette bibliothèque comme outil de contrôle d'une machine nécessite une attention et des dispositions particulières afin d'éviter des conséquences involontaires dues à l'exploitation de la machine commandée, à des changements d'état ou à l'altération de la mémoire de données ou des éléments de fonctionnement de la machine. AVERTISSEMENT FONCTIONNEMENT IMPRÉVU DE L'ÉQUIPEMENT Placer les instruments de l'opérateur du système de commande près de la machine ou à un endroit qui permet d'avoir une vision parfaite de la machine. Protéger les commandes opérateur contre tout accès non autorisé. Si le contrôle à distance est une caractéristique nécessaire de l'application, veiller à ce qu'une personne qualifiée et compétente soit présente sur place pour surveiller le fonctionnement contrôlé à distance. Configurez et installez l'entrée Run/Stop (si elle est présente) ou un autre moyen externe dans l'application, afin que le contrôle local du démarrage ou de l'arrêt de l'équipement puisse être maintenu indépendamment des commandes envoyées à distance à l'équipement. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. 14 EIO0000003850 12/2019 AVERTISSEMENT FONCTIONNEMENT IMPRÉVU DE L'ÉQUIPEMENT Ne mettez en service aucun fichier programme (fichier de réception, fichier G-Code, fichier de micrologiciel, etc.) reçu par e-mail sans avoir au préalable vérifié que la source est fiable et testé le fonctionnement du fichier. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Documents associés Titre du document Référence EcoStruxure Machine Expert - Fonctions et bibliothèques - Guide de l'utilisateur EIO0000002829 (ENG) ; EIO0000002830 (FRE) ; EIO0000002831 (GER) ; EIO0000002832 (ITA) ; EIO0000002833 (SPA) ; EIO0000002834 (CHS) ; EcoStruxure Machine Expert - Guide de programmation EIO0000002854 (ENG) ; EIO0000002855 (FRE) ; EIO0000002856 (GER) ; EIO0000002857 (ITA) ; EIO0000002858 (SPA) ; EIO0000002859 (CHS) ; Terminologie utilisée dans les normes Les termes techniques, la terminologie, les symboles et les descriptions correspondantes employés dans ce manuel ou figurant dans ou sur les produits proviennent généralement des normes internationales. Dans les domaines des systèmes de sécurité fonctionnelle, des variateurs et de l'automatisme en général, les termes employés sont sécurité, fonction de sécurité, état sécurisé, défaut, réinitialisation du défaut, dysfonctionnement, panne, erreur, message d'erreur, dangereux, etc. Entre autres, les normes concernées sont les suivantes : Norme Description IEC 61131-2:2007 Automates programmables - Partie 2 : exigences et essais des équipements ISO 13849-1:2015 Sécurité des machines : parties des systèmes de commande relatives à la sécurité. Principes généraux de conception EN 61496-1:2013 Sécurité des machines : équipements de protection électro-sensibles. Partie 1 : Prescriptions générales et essais EIO0000003850 12/2019 15 Norme Description ISO 12100:2010 Sécurité des machines - Principes généraux de conception - Appréciation du risque et réduction du risque EN 60204-1:2006 Sécurité des machines - Équipement électrique des machines - Partie 1 : règles générales ISO 14119:2013 Sécurité des machines - Dispositifs de verrouillage associés à des protecteurs - Principes de conception et de choix ISO 13850:2015 Sécurité des machines - Fonction d'arrêt d'urgence - Principes de conception IEC 62061:2015 Sécurité des machines - Sécurité fonctionnelle des systèmes de commande électrique, électronique et électronique programmable relatifs à la sécurité IEC 61508-1:2010 Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité : prescriptions générales. IEC 61508-2:2010 Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité : exigences pour les systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité. IEC 61508-3:2010 Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité : exigences concernant les logiciels. IEC 61784-3:2016 Réseaux de communication industriels - Profils - Partie 3 : Bus de terrain de sécurité fonctionnelle - Règles générales et définitions de profils. 2006/42/EC Directive Machines 2014/30/EU Directive sur la compatibilité électromagnétique 2014/35/EU Directive sur les basses tensions De plus, des termes peuvent être utilisés dans le présent document car ils proviennent d'autres normes telles que : Norme Description Série IEC 60034 Machines électriques rotatives Série IEC 61800 Entraînements électriques de puissance à vitesse variable Série IEC 61158 Communications numériques pour les systèmes de mesure et de commande – Bus de terrain utilisés dans les systèmes de commande industriels Enfin, le terme zone de fonctionnement utilisé dans le contexte de la description de dangers spécifiques a la même signification que les termes zone dangereuse ou zone de danger employés dans la directive Machines (2006/42/EC) et la norme ISO 12100:2010. NOTE : Les normes susmentionnées peuvent s'appliquer ou pas aux produits cités dans la présente documentation. Pour plus d'informations sur chacune des normes applicables aux produits décrits dans le présent document, consultez les tableaux de caractéristiques de ces références de produit. 16 EIO0000003850 12/2019 EcoStruxure Machine Expert Informations générales EIO0000003850 12/2019 Partie I Informations générales Informations générales EIO0000003850 12/2019 17 Informations générales 18 EIO0000003850 12/2019 EcoStruxure Machine Expert Description EIO0000003850 12/2019 Chapitre 1 Présentation de la bibliothèque Présentation de la bibliothèque Informations générales Présentation de la bibliothèque Avec la bibliothèque HttpHandling, vous pouvez implémenter la fonctionnalité de client HTTP dans votre application contrôleur. Cette bibliothèque prend en charge le protocole HTTP version 1.1. La fonction HTTP (Hypertext Transfer Protocol) est un protocole de requête/réponse dans le modèle informatique client/serveur. Pour la connexion entre un client et un serveur, le protocole TCP (Transport Layer Protocol) est utilisé. Le client soumet un message de requête HTTP au serveur. Le serveur renvoie un message de réponse au client. La réponse contient les informations d’état sur la requête et peut également inclure le contenu demandé dans le texte de son message. Cette bibliothèque prend en charge le protocole HTTP via une connexion sécurisée à l’aide du protocole TLS (Transport Layer Security), également connu sous le nom de protocole HTTPS. La prise en charge ou non d’une connexion utilisant le protocole TLS dépend du contrôleur sur lequel FB_HttpClient est utilisé. Reportez-vous au manuel spécifique de votre contrôleur pour vérifier si les communications TCP qui utilisent le protocole TLS sont prises en charge. Caractéristiques de la bibliothèque Le tableau suivant indique les caractéristiques de la bibliothèque : Caractéristique Valeur Titre de la bibliothèque HttpHandling Société Schneider Electric Catégorie Communication EIO0000003850 12/2019 19 Description Caractéristique Valeur Composant Internet Protocol Suite Espace de nom par défaut SE_HTTP Attribut du modèle de langage Uniquement accès qualifié (voir EcoStruxure Machine Expert, Fonctions et bibliothèques - Guide de l'utilisateur) Bibliothèque post-compatible Oui (FCL) NOTE : Cette bibliothèque est paramétrée en Uniquement accès qualifié (qualified-access-only). Cela signifie que l'on ne peut accéder aux POU, aux structures de données, aux énumérations et aux constantes qu'en utilisant l'espace de nom de la bibliothèque. L'espace de nom par défaut de la bibliothèque est SE_HTTP. Modèle de fonction Dans EcoStruxure Machine Expert, le modèle de fonction HttpClient est fourni comme composant dans la bibliothèque de modèles de fonction Fonctions de communication. Ce modèle de fonction vous aide à implémenter un client HTTP dans votre application. Pour plus d’informations sur ce modèle de fonction et l’utilisation générale des modèles de fonction, reportez-vous au Guide de la bibliothèque des modèles de fonction (voir EcoStruxure Machine Expert, Function Templates Library Guide). Remarques générales Seules les adresses IP de type IPv4 sont prises en charge pour les fonctions de communication fournies avec cette bibliothèque. La bibliothèque décrite dans ce document utilise la bibliothèque TcpUdpCommunication en interne. Les bibliothèques TcpUdpCommunication (Schneider Electric) et CAA Net Base Services (CAA Technical Workgroup) utilisent les mêmes ressources système sur le contrôleur. Leur utilisation simultanée dans la même application peut perturber le fonctionnement du contrôleur. AVERTISSEMENT FONCTIONNEMENT IMPRÉVU DE L’EQUIPEMENT N'utilisez pas la bibliothèque TcpUdpCommunication (Schneider Electric) avec la bibliothèque CAA Net Base Services (CAA Technical Workgroup) simultanément dans la même application. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. 20 EIO0000003850 12/2019 EcoStruxure Machine Expert Types d'unités de données EIO0000003850 12/2019 Partie II Types d'unités de données Types d'unités de données Contenu de cette partie Cette partie contient les chapitres suivants : Chapitre Titre du chapitre Page 2 Énumérations 23 3 Alias 29 EIO0000003850 12/2019 21 Types d'unités de données 22 EIO0000003850 12/2019 EcoStruxure Machine Expert Énumérations EIO0000003850 12/2019 Chapitre 2 Énumérations Énumérations Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page ET_Result 24 ET_State 26 ET_StatusClass 27 EIO0000003850 12/2019 23 Énumérations ET_Result Présentation Type : Énumération Disponible à partir de : V1.0.0.0 Description L'énumération ET_Result contient les valeurs possibles qui donnent les résultats des opérations exécutées par le bloc fonction. Éléments d'énumération Nom Valeur (UDINT) Description Ok 0 Aucune erreur détectée. NotReady 100 L'opération demandée ne peut pas être exécutée dans l'état actuel. ConnectNotPossible 101 Utilisé par la méthode ConnectToServer : la connexion n’a pas pu être établie. Des informations détaillées sont fournies par l’intermédiaire du message q_sResultMsg de la méthode. ConnectFailed 102 La connexion au serveur a échoué. DisconnectFailed 103 La déconnexion du serveur a échoué. SendFailed 104 L’envoi d’une requête au serveur a échoué. ReceiveFailed 105 Une erreur a été détectée lors du délai de réception de la réponse. InvalidResponse 106 Le format de la réponse reçue du serveur n’est pas pris en charge et ne peut pas être traité. ResponseTimedOut 107 Le délai d’attente d’une réponse à la requête envoyée a été dépassé. Aucune réponse a été reçue du serveur ou la réponse est incomplète. BufferTooSmall 108 La taille de la mémoire tampon du message de réponse est trop petite. Affectez une mémoire tampon de taille suffisante pour l’entrée correspondante de la méthode. ConnectionRefused 110 La tentative d’établissement d’une connexion a échoué. Le serveur a refusé la requête de connexion. Vérifiez l’adresse IP et le port du serveur spécifié. 24 EIO0000003850 12/2019 Énumérations Nom Valeur (UDINT) Description ConnectionTimedOut 111 Le délai de la tentative d’établissement d’une connexion a été dépassé. Vérifiez l’adresse IP et le port du serveur spécifié. InitTlsContextFailed 112 Une erreur interne a été détectée lors de l’initialisation du contexte TLS (Transport Layer Security). Vous pouvez ouvrir simultanément jusqu’à 10 contextes TLS différents. Assurez-vous que le nombre maximal de sockets TCP utilisant TLS ouverts en même temps n’est pas supérieur à 10. CertificateNotFound 113 Le certificat spécifié est introuvable dans le magasin de certificats du contrôleur. ConnectionInterrupted 116 La connexion au serveur a été interrompue. InputParameterFault 117 Au moins un des paramètres d'entrée de la fonction n'est pas valide. Consultez la propriété ErrorResult (voir page 42). OnlineChangeDetected 118 L’exécution a été annulée car une connexion établie en même temps qu’une modification en ligne de l’application a été détectée. NotSupported 119 L’opération demandée n'est pas prise en charge. Par exemple, la sélection de TLS sur un contrôleur qui n’offre pas cette fonctionnalité. SendBufferFull 120 Se produit si une quantité importante de données ont été envoyées comme contenu et que le serveur ne traite pas ces données dans le temps imparti. Le débit d’envoi minimal du client est d’environ 1 500 octets par seconde. InternalError 200 Une erreur interne du client a été détectée. Rétablissez une connexion au serveur, puis recommencez. Utilisé par FB_HttpClient EIO0000003850 12/2019 25 Énumérations ET_State Présentation Type : Énumération Disponible à partir de : V1.0.0.0 Description L'énumération ET_State contient les valeurs possibles qui indiquent l'état du client. Éléments d'énumération Nom Valeur INT Description Idle 0 Le client est à l’état Idle et peut être connecté au serveur. Connecting 10 Le client se connecte au serveur. Connected 20 Le client est connecté au serveur et peut envoyer une requête. SendingRequest 30 Le client envoie une requête au serveur. Disconnecting 40 Le client se déconnecte du serveur. ResponseAvailable 50 Le client a reçu une réponse à la requête envoyée, qui doit être acquittée. Error -10 Le client est à l'état d'erreur. Utilisé par 26 FB_HttpClient EIO0000003850 12/2019 Énumérations ET_StatusClass Présentation Type : Énumération Disponible à partir de : V1.0.0.0 Description L’énumération ET_StatusClass contient les valeurs possibles qui indiquent la classe d’états de la réponse. Les classes d’états sont définies conformément à RFC 2616 qui décrit le protocole HTTP V1.1. Éléments d'énumération Nom Valeur INT Description Informational 1 La requête a été reçue ; le processus se poursuit. Success 2 L’action a été reçue, comprise et acceptée. Redirection 3 Une autre action doit être entreprise pour terminer la requête. ClientError 4 La syntaxe de la requête est incorrecte ou la requête ne peut pas être satisfaite. ServerError 5 Le serveur n’est pas parvenu à satisfaire une requête apparemment valide. Utilisé par FB_HttpClient EIO0000003850 12/2019 27 Énumérations 28 EIO0000003850 12/2019 EcoStruxure Machine Expert Alias EIO0000003850 12/2019 Chapitre 3 Alias Alias Alias Présentation Type : ALIAS (DUT) Disponible à partir de la version : V1.0.0.0 Hérite de : – Description Un alias est un type de données complexe, qui est utilisé dans cette bibliothèque. TlsSettings Nom Type de données TlsSettings TcpUdp.ST_TlsSettings Spécifie les paramètres TLS (Transport Layer Client Security) de la connexion sécurisée à établir. EIO0000003850 12/2019 Description 29 Alias TcpUdp.ST_TlsSettingsClient Nom Type de données Valeur par défaut Description xSendClientCert BOOL FALSE Configurez cet élément sur TRUE si un certificat client est nécessaire. sCertName STRING(255) - Définit le fichier du certificat client. Si la valeur est une chaîne Null, le certificat par défaut du contrôleur est utilisé. Le nom correspond à la valeur “Issued for” du certificat du contrôleur. Le nom peut être obtenu du certificat en utilisant l'écran Security dans Logic Builder. etProtocol TcpUdp.ET_TlsProtocol (voir EcoStruxure Machine Expert, TcpUdpCommunication, Guide de la bibliothèque) TLSv12 Protocole utilisé pour la connexion sécurisée. etCertVerifyMode TcpUdp.ET_CertVerifyMode TrustedOnly Mode pour la vérification du certificat. (voir EcoStruxure Machine Expert, TcpUdpCommunication, Guide de la bibliothèque) 30 EIO0000003850 12/2019 EcoStruxure Machine Expert Variables globales EIO0000003850 12/2019 Partie III Variables globales Variables globales Contenu de cette partie Cette partie contient les chapitres suivants : Chapitre Titre du chapitre Page 4 Liste des paramètres globaux 33 5 Liste de variables globales 35 EIO0000003850 12/2019 31 Variables globales 32 EIO0000003850 12/2019 EcoStruxure Machine Expert Liste des paramètres globaux EIO0000003850 12/2019 Chapitre 4 Liste des paramètres globaux Liste des paramètres globaux Liste des paramètres globaux (GPL) Présentation Type : Paramètres globaux Disponible à partir de la version : V1.0.0.0 Description Cette liste contient les paramètres globaux de la bibliothèque HttpHandling. Vous pouvez les modifier en fonction de votre projet dans le Gestionnaire de bibliothèques. Paramètres globaux Variable Type de données Valeur par défaut Description Gc_uiMaxLengthOfResource UDINT(80...1000) 255 Cette valeur détermine la longueur maximale du paramètre i_sResource d’une méthode de requête. Gc_uiMaxLengthOfHost UDINT(80...1000) 255 Cette valeur détermine la longueur maximale du paramètre i_sHost d’une méthode de requête. EIO0000003850 12/2019 33 Liste des paramètres globaux 34 EIO0000003850 12/2019 EcoStruxure Machine Expert Liste de variables globales EIO0000003850 12/2019 Chapitre 5 Liste de variables globales Liste de variables globales Liste de variables globales (GVL) Présentation Type : Variables globales Disponible à partir de : V1.0.0.0 Description La liste des variables globales contient les variables globales de la bibliothèque. Variables globales Variable Type de données Valeur par défaut Description G_timResponseTimeout TIME T#30 s La valeur détermine le temps d’attente d’une réponse. Le temporisateur est actif si des données sont attendues, mais qu’elles n’ont pas été reçues. Le temporisateur est réinitialisé si de nouvelles données ont été reçues. Il est démarré si la réponse n’est pas encore complète, mais qu’aucune autre donnée n’est reçue. EIO0000003850 12/2019 35 Liste de variables globales 36 EIO0000003850 12/2019 EcoStruxure Machine Expert Unités d'organisation de programme (POU) EIO0000003850 12/2019 Partie IV Unités d'organisation de programme (POU) Unités d'organisation de programme (POU) Contenu de cette partie Cette partie contient les chapitres suivants : Chapitre Titre du chapitre Page 6 Blocs fonction 39 7 Fonctions 63 EIO0000003850 12/2019 37 Unités d'organisation de programme (POU) 38 EIO0000003850 12/2019 EcoStruxure Machine Expert Blocs fonction EIO0000003850 12/2019 Chapitre 6 Blocs fonction Blocs fonction Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page FB_HttpClient 40 Propriétés de FB_HttpClient 42 AcknowlegeResponse - Méthode 44 ConnectToServer - Méthode 45 Delete - Méthode 48 DisconnectFromServer -Méthode 50 Get - Méthode 51 Head - Méthode 53 Post - Méthode 55 Put - Méthode 58 Reset - Méthode 60 Exemple de code 60 EIO0000003850 12/2019 39 Blocs fonction FB_HttpClient Présentation Type : Bloc fonction Disponible à partir de la version : V1.0.0.0 Hérite de : - Implémente : - Tâche Le bloc fonction FB_HttpClient offre la fonctionnalité d’un client HTTP. 40 EIO0000003850 12/2019 Blocs fonction Description fonctionnelle Le bloc fonction ne fournit aucun paramètre (entrées et sorties). Pour contrôler et surveiller le client HTTP, le bloc fonction fournit des méthodes et des propriétés. La méthode ou la propriété qui peut être appelée dépend de l’état du client HTTP. Le diagramme ci-après illustre la machine d’états implémentée par le bloc fonction FB_HttpClient. Le présent état est indiqué par la propriété State : NOTE : La fonctionnalité déclenchée par l'envoi d'une requête HTTP dépend de l'implémentation du serveur. NOTE : Le contenu de la réponse peut être codé en utilisant le codage de transfert par découpage en blocs. Vérifiez la propriété IsContentChunked avant de traiter le contenu. EIO0000003850 12/2019 41 Blocs fonction Propriétés de FB_HttpClient Remarque concernant la surveillance en ligne Les propriétés fournies par FB_HttpClient peuvent être également utilisées dans la surveillance en ligne. Toutefois, vous devez vous assurer que la valeur affichée correspond à celle du dernier appel dans le programme d’application. Présentation Nom Type de données Accès Description ContentLength UDINT Lecture Indique la longueur du contenu reçu qui est stocké dans la mémoire tampon des réponses. ContentStartIndex UDINT Lecture Indique l’index du premier octet du contenu reçu qui est stocké dans la mémoire tampon des réponses. ET_Result Lecture Indique le motif de l’état Error. ErrorResult (voir page 24) HeaderLength UDINT Lecture Indique la longueur de l’en-tête qui est stocké dans la mémoire tampon des réponses. L’en-tête commence au premier octet de la mémoire tampon des réponses. IsConnected BOOL Lecture Indique si la connexion TCP au serveur HTTP est active. IsContentChunked BOOL Lecture Indique si le codage du contenu reçu est découpé en blocs. IsDeleteActive BOOL Lecture Indique si une requête Delete est active ou si la réponse n’a pas encore été acquittée. IsGetActive BOOL Lecture Indique si une requête Get est active ou si la réponse n’a pas encore été acquittée. IsHeadActive BOOL Lecture Indique si une requête Head est active ou si la réponse n’a pas encore été acquittée. IsPostActive BOOL Lecture Indique si une requête Post est active ou si la réponse n’a pas encore été acquittée. IsPutActive BOOL Lecture Indique si une requête Put est active ou si la réponse n’a pas encore été acquittée. ResponseLength UDINT Lecture Indique la longueur de la réponse reçue qui est stockée dans la mémoire tampon des réponses. 42 EIO0000003850 12/2019 Blocs fonction Nom Type de données State ET_State (voir page 26) Lecture Accès Description Indique l’état du client HTTP, surveille la connexion et traite les commandes lancées (par exemple, connect, requests ou disconnect). Par conséquent, la propriété doit être appelée de manière cyclique dans votre programme. NOTE : La valeur renvoyée peut être utilisée comme variable d’état dans votre propre machine d'états. Pour plus d'informations, reportez-vous à la rubrique Exemple de code (voir page 60). StatusClass ET_StatusClass (voir page 27) Lecture Indique la classe d’états HTTP de la réponse reçue. StatusCode UINT Lecture Indique le code d'état HTTP de la réponse reçue. IsTlsUsed BOOL Lecture Indique si la connexion au serveur est sécurisée via TLS (Transport Layer Security). EIO0000003850 12/2019 43 Blocs fonction AcknowlegeResponse - Méthode Présentation Type : Méthode Disponible à partir de la version : V1.0.0.0 Description fonctionnelle En appelant la méthode AcknowlegeResponse, vous reconnaissez que la réponse reçue du serveur HTTP a été traitée dans votre application et qu’elle n’est plus requise. Un appel de la méthode AcknowledgeResponse n’est autorisé qu’à l’état ResponseAvailable. Avec l’entrée i_xStayConnected, vous pouvez indiquer si la connexion au serveur doit être maintenue ou non. Cela vous permet d’envoyer immédiatement d’autres requêtes. Sachez que la plupart des serveurs HTTP arrêtent les connexions aux clients inactifs après un certain délai. Transition d'état du client Étape Description 1 État initial : ResponseAvailable 2 Appel de fonction 3 En fonction de l’entrée i_xStayConnected : Si TRUE : état = Connected Si FALSE : état = Disconnecting -> État final : Idle ; autrement une erreur est détectée NOTE : Pour HTTP 1.1, les connexions sont conservées par défaut, ce qui vous permet d’utiliser une même connexion TCP pour envoyer plusieurs requêtes HTTP. La plupart des serveurs HTTP implémentent un bref délai de connexion. NOTE : Pour HTTP 1.0, l’en-tête supplémentaire Connection: keep-alive doit être utilisé pour établir une connexion TCP persistante avec le serveur HTTP. Interface Entrée Type de données Description i_xStayConnected BOOL 44 Indique si la connexion au serveur doit être maintenue. EIO0000003850 12/2019 Blocs fonction ConnectToServer - Méthode Présentation Type : Méthode Disponible à partir de : V1.0.0.0 Tâche La méthode ConnectToServer lance la connexion TCP au serveur. Description fonctionnelle Cette méthode permet de lancer l’établissement d’une connexion TCP au serveur, qui est spécifié par son adresse IPv4 et le port correspondant. Les ports standard du protocole HTTP sont 80 et 443 (sécurisé, HTTPS). Réglez le paramètre i_xUseTls sur VRAI pour indiquer qu’une connexion sécurisée doit être établie. La valeur renvoyée par cette méthode indique uniquement si la connexion peut être lancée correctement. L'état de la connexion doit être vérifié à l’aide de la propriété State. Évaluez les messages de diagnostic de la méthode, si la valeur renvoyée est FALSE. Une erreur indiquée par ces messages n’exige aucune réinitialisation. Remarques sur l’utilisation avec un proxy HTTP S’il existe un proxy HTTP entre votre contrôleur et le serveur HTTP distant, vous devez spécifier les paramètres de connexion du proxy dans la méthode ConnectToServer. Si le client est connecté au proxy, le trafic HTTP est acheminé entre le client et le serveur distant par l’intermédiaire du serveur proxy. L’adresse et le port sont obtenus du serveur proxy, à partir de l’entête de la requête HTTP envoyée. Ils correspondent au paramètre i_sHost de la méthode correspondante pour l’envoi d’une requête HTTP. NOTE : Pour plus d'informations, consultez la rubrique Exemple de code (voir page 60). EIO0000003850 12/2019 45 Blocs fonction Remarques sur les connexions sécurisées à l’aide de TLS Le protocole TLS est utilisé pour chiffrer les communications entre le client et le serveur. En plus du chiffrement, le protocole TLS permet de vérifier l’identité du partenaire de communication à l’aide de certificats. Ces certificats sont échangés lors de l’établissement d’une connexion ; il s’agit du protocole de transmission TLS. L’envoi de certificats lors du protocole de transmission TLS est facultatif, mais si le partenaire de communication requiert un certificat, son envoi devient obligatoire. Une connexion ne peut être établie avec le partenaire de communication que si le résultat de la vérification du certificat est positif. Si l’exécution de la méthode ConnectToServer avec xUseTls = TRUE se termine à l’état Error avec ErrorResult = ConnectFailed, cela peut être dû à un problème de certificat. Dans ce cas, vérifiez la configuration TLS du serveur et du client. Si… Alors… Si le serveur est configuré pour vérifier le certificat du Assurez-vous que le paramètre client. i_stTlsSettings.xSendClientCertificate est bien réglé sur TRUE. Si le client est configuré pour vérifier le certificat du serveur, i_stTlsSettings.etCertVerifyMode est différent de NotVerified. Assurez-vous que le serveur envoie son certificat. Si le client est configuré pour n’accepter que les certificats sécurisés, i_stTlsSettings.etCertVerifyMode = Truste dOnly. Assurez-vous que le certificat du serveur est déclaré comme sécurisé. Pour cela, il est nécessaire de gérer manuellement les certificats sur votre contrôleur. Vous pouvez effectuer cette opération à l’aide de l’éditeur Écran Security dans Machine Expert Logic Builder. Pour plus d’informations sur la gestion des certificats sur le contrôleur, consultez la rubrique relative à la manière de gérer les certificats sur le contrôleur, dans le document EcoStruxure Machine Expert - Guide de l’utilisateur (voir Comment gérer les certificats sur le contrôleur, Guide utilisateur). Transition d'état du client Étape 46 Description 1 État initial : Idle 2 Appel de fonction 3 État : Connecting ; autrement une erreur est détectée 4 État final : Connected ; autrement une erreur est détectée EIO0000003850 12/2019 Blocs fonction Interface Entrée Type de données Description i_sServerIP STRING[15] Spécifie l’adresse IP du serveur auquel se connecter. i_uiServerPort UINT Spécifie le port du serveur. i_xUseTls BOOL Réglée sur VRAI pour indiquer l’utilisation d’une connexion sécurisée à l’aide de TLS. i_stTlsSettings TlsSettings Spécifie les paramètres TLS de la connexion sécurisée. Sortie Type de données Description q_xError BOOL Si cette sortie est TRUE, une erreur a été détectée. Pour plus d'informations, reportez-vous à q_etResult et q_etResultMsg. ET_Result Fournit des informations de diagnostic et d'état sous la forme d'une valeur numérique. q_etResult (voir page 24) q_sResultMsg EIO0000003850 12/2019 STRING[80] Fournit des informations de diagnostic et d'état sous la forme d'un message textuel. 47 Blocs fonction Delete - Méthode Présentation Type : Méthode Disponible à partir de : V1.0.0.0 Tâche La méthode Delete lance la méthode HTTP pour supprimer la ressource spécifiée. Description fonctionnelle L’en-tête par défaut de la requête HTTP est créé à l’aide des entrées i_sHost (obligatoire) et i_sResource. Si des informations supplémentaires doivent être ajoutées à l’en-tête, elles doivent être transmises par l’intermédiaire de l’entrée i_anyAdditionalHeader. Les données affectées à cette entrée ne sont pas vérifiées. Au niveau de l’entrée i_anyResponseBuffer, vous devez affecter une mémoire tampon de taille suffisante pour stocker l’intégralité de la réponse reçue du serveur. La valeur renvoyée par la méthode est de type BOOL et indique si l’exécution de la méthode a abouti (TRUE) ou non (FALSE). Évaluez les messages de diagnostic de la méthode, si la valeur renvoyée est FALSE. Une erreur indiquée par ces messages n’exige aucune réinitialisation. La propriété State doit être utilisée pour obtenir l’état du traitement. Un appel de la méthode Delete n’est autorisé qu’à l’état Connected. Transition d'état du client Étape 1 Description État initial : Connected 2 Appel de fonction 3 État : SendingRequest ; autrement une erreur est détectée 4 État final : ResponseAvailable ; autrement une erreur est détectée NOTE : Si des modifications sont apportées en ligne alors que le bloc fonction traite une requête Delete, l’exécution est annulée pour éviter une éventuelle violation d’accès due au traitement d’adresses de pointeur erronées. 48 EIO0000003850 12/2019 Blocs fonction Interface Entrée Type de données i_sResource STRING[GPL.Gc_uiMax Spécifie la ressource sur l’hôte à atteindre par la requête. LengthOfResource] i_sHost STRING[GPL.Gc_uiMax Spécifie l’adresse de l’hôte ; si elle est requise avec le HostSize] port. i_anyAdditionalHeader ANY_STRING Description Spécifie les en-têtes supplémentaires à ajouter à la requête HTTP. i_anyContent ANY i_udiContentLength UDINT Longueur du contenu en octets. i_anyResponseBuffer ANY Mémoire tampon permettant de stocker la réponse du serveur. Sortie Type de données Description q_xError BOOL Si cette sortie est TRUE, une erreur a été détectée. Pour plus d'informations, reportez-vous à q_etResult et q_etResultMsg. ET_Result Fournit des informations de diagnostic et d'état sous la forme d'une valeur numérique. q_etResult (voir page 24) q_sResultMsg EIO0000003850 12/2019 STRING[80] Affecte la mémoire tampon dans laquelle est stocké le contenu à soumettre avec la requête HTTP. Fournit des informations de diagnostic et d'état sous la forme d'un message textuel. 49 Blocs fonction DisconnectFromServer -Méthode Présentation Type : Méthode Disponible à partir de la version : V1.0.0.0 Description fonctionnelle Cette méthode DisconnectFromServer lance la déconnexion du serveur HTTP. La valeur renvoyée par cette méthode indique uniquement si la déconnexion peut être lancée correctement. La progression de la connexion doit être vérifiée à l’aide de la propriété State. Évaluez les messages de diagnostic de la méthode, si la valeur renvoyée est FALSE. Une erreur indiquée par ces messages n’exige aucune réinitialisation. Transition d'état du client Étape Description 1 La méthode DisconnectFromServer peut être appelée dans tout état autre que Idle. 2 Appel de fonction 3 État : Disconnecting ; autrement une erreur est détectée 4 État final : Idle ; autrement une erreur est détectée Interface Sortie Type de données Description q_xError BOOL Si cette sortie est TRUE, une erreur a été détectée. Pour plus d'informations, reportez-vous à q_etResult et q_etResultMsg. q_etResult ET_Result Fournit des informations de diagnostic et d'état sous la forme d'une valeur numérique. (voir page 24) q_sResultMsg 50 STRING[80] Fournit des informations de diagnostic et d'état sous la forme d'un message textuel. EIO0000003850 12/2019 Blocs fonction Get - Méthode Présentation Type : Méthode Disponible à partir de : V1.0.0.0 Tâche La méthode Get lance la méthode HTTP pour demander une représentation de la ressource spécifiée. Description fonctionnelle L’en-tête par défaut de la requête HTTP est créé à l’aide des entrées i_sHost (obligatoire) et i_sResource. Si des informations supplémentaires doivent être ajoutées à l’en-tête, elles doivent être transmises par l’intermédiaire de l’entrée i_anyAdditionalHeader. Les données affectées à cette entrée ne sont pas vérifiées. Au niveau de l’entrée i_anyResponseBuffer, vous devez affecter une mémoire tampon de taille suffisante pour stocker l’intégralité de la réponse reçue du serveur. La valeur renvoyée par la méthode est de type BOOL et indique si l’exécution de la méthode a abouti (TRUE) ou non (FALSE). Évaluez les messages de diagnostic de la méthode, si la valeur renvoyée est FALSE. Une erreur indiquée par ces messages n’exige aucune réinitialisation. La propriété State doit être utilisée pour obtenir l’état du traitement. Un appel de la méthode Get n’est autorisé qu’à l’état Connected. Exemple de mise en œuvre L’exemple ci-après montre à quoi ressemble la requête HTTP après l’appel de la méthode Get. Appel de méthode : sAdditionalHeader := 'Content-Type: application/json$r$nConnection: Keep-Alive'; fbHTTP.Get( EIO0000003850 12/2019 i_sRessource:= 'example', i_sHost:= 'se.com', i_anyAdditionalHeader:= sAdditionalHeader, i_anyResponseBuffer:= sResponse); 51 Blocs fonction Requête HTTP résultante : GET /example HTTP/1.1 Host: se.com Content-Length: 0 Content-Type: application/json Connection: Keep-Alive Transition d'état du client Étape Description 1 État initial : Connected 2 Appel de fonction 3 État : SendingRequest ; autrement une erreur est détectée 4 État final : ResponseAvailable ; autrement une erreur est détectée NOTE : Si des modifications sont apportées en ligne alors que le bloc fonction traite une requête Get, l’exécution est annulée pour éviter une éventuelle violation d’accès due au traitement d’adresses de pointeur erronées. Interface Entrée Type de données Description i_sResource STRING[GPL.Gc_uiMax LengthOfResource] Spécifie la ressource sur l’hôte à atteindre par la requête. i_sHost STRING[GPL.Gc_uiMax HostSize] Spécifie l’adresse de l’hôte ; si elle est requise avec le port. i_anyAdditionalHeader ANY_STRING Spécifie les entrées supplémentaires à ajouter à l’en-tête de la requête HTTP. i_anyResponseBuffer ANY Mémoire tampon permettant de stocker la réponse du serveur. Sortie Type de données Description q_xError BOOL Si cette sortie est TRUE, une erreur a été détectée. Pour plus d'informations, reportez-vous à q_etResult et q_etResultMsg. q_etResult ET_Result (voir page 24) Fournit des informations de diagnostic et d'état sous la forme d'une valeur numérique. q_sResultMsg STRING[80] 52 Fournit des informations de diagnostic et d'état sous la forme d'un message textuel. EIO0000003850 12/2019 Blocs fonction Head - Méthode Présentation Type : Méthode Disponible à partir de : V1.0.0.0 Tâche La méthode Head lance la méthode HTTP pour demander une représentation de l'en-tête de la ressource indiquée. Description fonctionnelle L’en-tête par défaut de la requête HTTP est créé à l’aide des entrées i_sHost (obligatoire) et i_sResource. Si des informations supplémentaires doivent être ajoutées à l’en-tête, elles doivent être transmises par l’intermédiaire de l’entrée i_anyAdditionalHeader. Les données affectées à cette entrée ne sont pas vérifiées. Au niveau de l’entrée i_anyResponseBuffer, vous devez affecter une mémoire tampon de taille suffisante pour stocker l’intégralité de la réponse reçue du serveur. La valeur renvoyée par la méthode est de type BOOL et indique si l’exécution de la méthode a abouti (TRUE) ou non (FALSE). Évaluez les messages de diagnostic de la méthode, si la valeur renvoyée est FALSE. Une erreur indiquée par ces messages n’exige aucune réinitialisation. La propriété State doit être utilisée pour obtenir l’état du traitement. Un appel de la méthode Head n’est autorisé qu’à l’état Connected. Transition d'état du client Étape Description 1 État initial : Connected 2 Appel de fonction 3 État : SendingRequest ; autrement une erreur est détectée 4 État final : ResponseAvailable ; autrement une erreur est détectée NOTE : Si des modifications sont apportées en ligne alors que le bloc fonction traite une requête Head, l’exécution est annulée pour éviter une éventuelle violation d’accès due au traitement d’adresses de pointeur erronées. EIO0000003850 12/2019 53 Blocs fonction Interface Entrée Type de données i_sResource STRING[GPL.Gc_uiMax Spécifie la ressource sur l’hôte à atteindre par la requête. LengthOfResource] i_sResource STRING[GPL.Gc_uiMax Spécifie la ressource sur l’hôte à atteindre par la requête. LengthOfResource] i_sHost STRING[GPL.Gc_uiMax Spécifie l’adresse de l’hôte ; si elle est requise avec le HostSize] port. i_anyAdditionalHeader ANY_STRING Description Spécifie les en-têtes supplémentaires à ajouter à la requête HTTP. i_anyResponseBuffer ANY Mémoire tampon permettant de stocker la réponse du serveur. Sortie Type de données Description q_xError BOOL Si cette sortie est TRUE, une erreur a été détectée. Pour plus d'informations, reportez-vous à q_etResult et q_etResultMsg. ET_Result Fournit des informations de diagnostic et d'état sous la forme d'une valeur numérique. q_etResult (voir page 24) q_sResultMsg 54 STRING[80] Fournit des informations de diagnostic et d'état sous la forme d'un message textuel. EIO0000003850 12/2019 Blocs fonction Post - Méthode Présentation Type : Méthode Disponible à partir de : V1.0.0.0 Tâche La méthode Post lance la méthode HTTP pour soumettre les données à traiter à la ressource spécifiée. Description fonctionnelle L’en-tête par défaut de la requête HTTP est créé à l’aide des entrées i_sHost (obligatoire) et i_sResource. Si des informations supplémentaires doivent être ajoutées à l’en-tête, elles doivent être transmises par l’intermédiaire de l’entrée i_anyAdditionalHeader. Les données affectées à cette entrée ne sont pas vérifiées. Au niveau de l’entrée i_anyResponseBuffer, vous devez affecter une mémoire tampon de taille suffisante pour stocker l’intégralité de la réponse reçue du serveur. Les entrées i_anyContent et i_udiContentLength spécifient le contenu à soumettre. La valeur renvoyée par la méthode est de type BOOL et indique si l’exécution de la méthode a abouti (TRUE) ou non (FALSE). Évaluez les messages de diagnostic de la méthode, si la valeur renvoyée est FALSE. Une erreur indiquée par ces messages n’exige aucune réinitialisation. La propriété State doit être utilisée pour obtenir l’état du traitement. Un appel de la méthode Post n’est autorisé qu’à l’état Connected. EIO0000003850 12/2019 55 Blocs fonction Exemple de mise en œuvre L’exemple ci-après montre à quoi ressemble la requête HTTP après l’appel de la méthode Post. Appel de méthode : sAdditionalHeader := 'Content-Type: application/json$r$nConnection: Keep-Alive'; sContent := 'This is the content!'; fbHTTP.Post( i_sRessource:= 'example', i_sHost:= 'se.com', i_anyAdditionalHeader:= sAdditionalHeader, i_anyContent:= sContent, i_udiContentLength:= 20, i_anyResponseBuffer:= sResponse); Requête HTTP résultante : POST /example HTTP/1.1 Host: se.com Content-Length: 20 Content-Type: application/json Connection: Keep-Alive This is the content! Transition d'état du client Étape Description 1 État initial : Connected 2 Appel de fonction 3 État : SendingRequest ; autrement une erreur est détectée 4 État final : ResponseAvailable ; autrement une erreur est détectée NOTE : Si des modifications sont apportées en ligne alors que le bloc fonction traite une requête Post, l’exécution est annulée pour éviter une éventuelle violation d’accès due au traitement d’adresses de pointeur erronées. 56 EIO0000003850 12/2019 Blocs fonction Interface Entrée Type de données i_sResource STRING[GPL.Gc_uiMax Spécifie la ressource sur l’hôte à atteindre par la requête. LengthOfResource] i_sHost STRING[GPL.Gc_uiMax Spécifie l’adresse de l’hôte ; si elle est requise avec le HostSize] port. i_anyAdditionalHeader ANY_STRING Description Spécifie les en-têtes supplémentaires à ajouter à la requête HTTP. i_anyContent ANY i_udiContentLength UDINT Longueur du contenu en octets. i_anyResponseBuffer ANY Mémoire tampon permettant de stocker la réponse du serveur. Sortie Type de données Description q_xError BOOL Si cette sortie est TRUE, une erreur a été détectée. Pour plus d'informations, reportez-vous à q_etResult et q_etResultMsg. ET_Result Fournit des informations de diagnostic et d'état sous la forme d'une valeur numérique. q_etResult (voir page 24) q_sResultMsg EIO0000003850 12/2019 STRING[80] Affecte la mémoire tampon dans laquelle est stocké le contenu à soumettre avec la requête HTTP. Fournit des informations de diagnostic et d'état sous la forme d'un message textuel. 57 Blocs fonction Put - Méthode Présentation Type : Méthode Disponible à partir de : V1.0.0.0 Tâche La méthode Put lance la méthode HTTP pour remplacer toutes les représentations actuelles de la ressource cible par les données utiles de la requête. Description fonctionnelle L’en-tête par défaut de la requête HTTP est créé à l’aide des entrées i_sHost (obligatoire) et i_sResource. Si des informations supplémentaires doivent être ajoutées à l’en-tête, elles doivent être transmises par l’intermédiaire de l’entrée i_anyAdditionalHeader. Les données affectées à cette entrée ne sont pas vérifiées. Au niveau de l’entrée i_anyResponseBuffer, vous devez affecter une mémoire tampon de taille suffisante pour stocker l’intégralité de la réponse reçue du serveur. La valeur renvoyée par la méthode est de type BOOL et indique si l’exécution de la méthode a abouti (TRUE) ou non (FALSE). Évaluez les messages de diagnostic de la méthode, si la valeur renvoyée est FALSE. Une erreur indiquée par ces messages n’exige aucune réinitialisation. La propriété State doit être utilisée pour obtenir l’état du traitement. Un appel de la méthode Put n’est autorisé qu’à l’état Connected. 58 EIO0000003850 12/2019 Blocs fonction Transition d'état du client Étape Description 1 État initial : Connected 2 Appel de fonction 3 État : SendingRequest ; autrement une erreur est détectée 4 État final : ResponseAvailable ; autrement une erreur est détectée NOTE : Si des modifications sont apportées en ligne alors que le bloc fonction traite une requête Put, l’exécution est annulée pour éviter une éventuelle violation d’accès due au traitement d’adresses de pointeur erronées. Interface Entrée Type de données i_sResource STRING[GPL.Gc_uiMax Spécifie la ressource sur l’hôte à atteindre par la requête. LengthOfResource] i_sHost STRING[GPL.Gc_uiMax Spécifie l’adresse de l’hôte ; si elle est requise avec le HostSize] port. i_anyAdditionalHeader ANY_STRING Description Spécifie les en-têtes supplémentaires à ajouter à la requête HTTP. i_anyContent ANY i_udiContentLength UDINT Longueur du contenu en octets. i_anyResponseBuffer ANY Mémoire tampon permettant de stocker la réponse du serveur. Sortie Type de données Description q_xError BOOL Si cette sortie est TRUE, une erreur a été détectée. Pour plus d'informations, reportez-vous à q_etResult et q_etResultMsg. ET_Result Fournit des informations de diagnostic et d'état sous la forme d'une valeur numérique. q_etResult (voir page 24) q_sResultMsg EIO0000003850 12/2019 STRING[80] Affecte la mémoire tampon dans laquelle est stocké le contenu à soumettre avec la requête HTTP. Fournit des informations de diagnostic et d'état sous la forme d'un message textuel. 59 Blocs fonction Reset - Méthode Présentation Type : Méthode Disponible à partir de la version : V1.0.0.0 Description fonctionnelle La méthode Reset permet de quitter l’état Error. En fonction de l’état dans lequel l’erreur a été détectée, l’état correct qui suit l’appel de Reset est Connected ou Disconnecting, puis Idle. Transition d'état du client Étape Description 1 État initial : Error 2 Appel de fonction 3 En fonction de l’état dans lequel l’erreur a été détectée : État = Connected État = Disconnecting -> État final : Idle. Cet état reste Error si une erreur est de nouveau détectée. Exemple de code Présentation L’exemple suivant montre comment envoyer une requête HTTP Get en utilisant cette propriété State comme variable d’état de la machine d’état : PROGRAM SR_HttpClient VAR //FB instance fbHTTP : SE_HTTP.FB_HttpClient; //Application commands xCmdSendRequest : BOOL; xCmdReset : BOOL; //Input parameter of Connect method xUseProxy: BOOL; sTargetServerIP : STRING[15] := '34.227.236.7'; uiTargetServerPort : UINT := 443; sProxyServerIP : STRING[15] := '202.52.85.35'; uiProxyServerPort : UINT := 443; sIPToConnect : STRING[15]; 60 EIO0000003850 12/2019 Blocs fonction uiPortToConnect : UINT; stTlsSettings : SE_HTTP.TlsSettings; //Input parameter of Get method sResource : STRING[SE_HTTP.GPL.Gc_uiMaxLengthOfResource]; sHost : STRING[SE_HTTP.GPL.Gc_uiMaxLengthOfHost] := 'se.com'; sAdditionalHeader : STRING; sResponse : STRING[2000]; //Response evaulation uiResponseCode : UINT; etStatusClass : SE_HTTP.ET_StatusClass; sHeader : STRING[1000]; sContent : STRING[1000]; uiHeaderBufferSize : UINT; uiContentBufferSize : UINT; //Local diagnostic variables xError : BOOL; etResult : SE_HTTP.ET_Result; sResultMsg : STRING; END_VAR VAR CONSTANT c_byNull: BYTE := 16#0; END_VAR CASE fbHTTP.State OF SE_HTTP.ET_State.Idle: //Trigger Send Request IF xCmdSendRequest THEN xCmdSendRequest := FALSE; IF xUseProxy THEN //Connect through proxy server sIPToConnect := sProxyServerIP; uiPortToConnect := uiProxyServerPort; ELSE //Connect directly to target server sIPToConnect := sTargetServerIP; uiPortToConnect := uiTargetServerPort; END_IF fbHTTP.ConnectToServer( i_sServerIP:= sIPToConnect, i_uiServerPort:= uiPortToConnect, i_xUseTls:= TRUE, EIO0000003850 12/2019 61 Blocs fonction i_stTlsSettings:= stTlsSettings, q_xError=> xError, q_etResult=> etResult, q_sResultMsg=> sResultMsg); END_IF SE_HTTP.ET_State.Connected: //Send HTTP method GET fbHTTP.Get( i_sResource:= sResource, i_sHost:= sHost, i_anyAdditionalHeader:= sAdditionalHeader, i_anyResponseBuffer:= sResponse, q_xError=> xError, q_etResult=> etResult, q_sResultMsg=> sResultMsg); SE_HTTP.ET_State.ResponseAvailable: //Process response before acknowledge uiResponseCode := fbHTTP.StatusCode; etStatusClass := fbHTTP.StatusClass; //Extract header and content from response uiHeaderBufferSize := SIZEOF(sHeader); SysMem.SysMemCpy(pDest := ADR(sHeader), pSrc := (ADR(sResponse)), udiCount := MIN(fbHTTP.HeaderLength, uiHeaderBufferSize-1)); sHeader [uiHeaderBufferSize] := c_byNull; uiContentBufferSize := SIZEOF(sContent); SysMem.SysMemCpy(pDest := ADR(sContent), pSrc := (ADR(sResponse) +fbHTTP.ContentStartIndex), udiCount := MIN(fbHTTP.ContentLength,uiContentBufferSize-1)); sContent [uiContentBufferSize] := c_byNull; //Acknowledge response and disconnect from server fbHTTP.AcknowledgeResponse(i_xStayConnected := FALSE); SE_HTTP.ET_State.Error: //Trigger reset of detected error IF xCmdReset THEN xCmdReset := FALSE; fbHTTP.Reset(); END_IF END_CASE 62 EIO0000003850 12/2019 EcoStruxure Machine Expert Fonctions EIO0000003850 12/2019 Chapitre 7 Fonctions Fonctions EIO0000003850 12/2019 63 Fonctions Sous-chapitre 7.1 Types de données (EnumToStringConverters) Types de données (EnumToStringConverters) Contenu de ce sous-chapitre Ce sous-chapitre contient les sujets suivants : Sujet 64 Page FC_EtResultToString 65 FC_EtStateToString 66 FC_ETStatusClassToString 67 EIO0000003850 12/2019 Fonctions FC_EtResultToString Présentation Type : Fonction Disponible à partir de : V1.0.4.0 Hérite de : – Met en œuvre : – Tâche Convertir un élément d'énumération de type ET_Result en une variable de type STRING. Description fonctionnelle La fonction FC_EtResultToString permet de convertir un élément d'énumération de type ET_Result en une variable de type STRING. Interface Entrée Type de données Description i_etResult ET_Result Énumération avec le résultat. Valeur retournée Type de données Description STRING(80) ET_Result converti en texte. Si i_etResult est indéterminable, la valeur de retour est : Unknown Result: <Value of the input i_etResult> EIO0000003850 12/2019 65 Fonctions FC_EtStateToString Présentation Type : Fonction Disponible à partir de la version : V1.0.4.0 Hérite de : - Met en œuvre : - Tâche Convertir un élément d'énumération de type ET_State en une variable de type STRING. Description fonctionnelle La fonction FC_EtStateToString permet de convertir un élément d'énumération de type ET_State en une variable de type STRING. Interface Entrée Type de données Description i_etState ET_State Enumération correspondant à l'état actuel. Valeur retournée 66 Type de données Description STRING(80) ET_State converti en texte. EIO0000003850 12/2019 Fonctions FC_ETStatusClassToString Présentation Type : Fonction Disponible à partir de : V1.0.0.0 Hérite de : - Met en œuvre : - Tâche Convertir un élément d'énumération de type ET_StatusClass en une variable de type STRING. Description fonctionnelle La fonction FC_ETStatusClassToString permet de convertir un élément d'énumération de type ETStatusClass en une variable de type STRING. Interface Entrée Type de données i_etStatusClassToString ET_StatusClassToString Description Énumération correspondant à l'état actuel. Valeur renvoyée Type de données Description STRING(80) ET_StatusClass converti en texte. EIO0000003850 12/2019 67 Fonctions 68 EIO0000003850 12/2019 EcoStruxure Machine Expert Glossaire EIO0000003850 12/2019 Glossaire B bloc fonction Unité de programmation qui possède 1 ou plusieurs entrées et renvoie 1 ou plusieurs sorties. Les blocs fonction (FBs) sont appelés via une instance (copie du bloc fonction avec un nom et des variables dédiés) et chaque instance a un état persistant (sorties et variables internes) d'un appel au suivant. Exemples : temporisateurs, compteurs E entrée/sortie Index d'un ARRAY. F FCL Acronyme de forward compatible library, bibliothèque à compatibilité ascendante. Une bibliothèque post-compatible est développée pour que ses fonctionnalités soient postcompatibles, ce qui signifie que chacune de ses versions reprend l'ensemble des fonctions de la version précédente. Vous pouvez donc facilement utiliser une nouvelle version de bibliothèque dans un projet existant, sans apporter aucune modification. I IP Acronyme de Internet Protocol, protocole Internet. Le protocole IP fait partie de la famille de protocoles TCP/IP, qui assure le suivi des adresses Internet des équipements, achemine les messages sortants et reconnaît les messages entrants. P POU Acronyme de program organization unit, unité organisationnelle de programme. Déclaration de variables dans le code source et jeu d'instructions correspondant. Les POUs facilitent la réutilisation modulaire de programmes logiciels, de fonctions et de blocs fonction. Une fois déclarées, les POUs sont réutilisables. EIO0000003850 12/2019 69 Glossaire T TLS 70 (Transport Layer Security) Protocole de transfert de données chiffrées. Successeur de SSL. EIO0000003850 12/2019 EcoStruxure Machine Expert Index EIO0000003850 12/2019 Index A AcknowlegeResponse, 44 alias, 29 B bibliothèques HttpHandling, 19 C ConnectToServer, 45 D Delete, 48 DisconnectFromServer, 50 E EnumToStringConverters, 64 ET_Result, 24 BufferTooSmall, 24 CertificateNotFound, 25 ConnectFailed, 24 ConnectionInterrupted, 25 ConnectionRefused, 24 ConnectionTimedOut, 25 ConnectNotPossible, 24 DisconnectFailed, 24 InitTlsContextFailed, 25 InputParameterFault, 25 InternalError, 25 InvalidResponse, 24 NotReady, 24 NotSupported, 25 Ok, 24 OnlineChangeDetected, 25 ReceiveFailed, 24 ResponseTimedOut, 24 SendBufferFull, 25 SendFailed, 24 ET_State, 26 Connected, 26 Connecting, 26 Disconnecting, 26 Error, 26 Idle, 26 ResponseAvailable, 26 SendingRequest, 26 ET_StatusClass, 27 ClientError, 27 Informational, 27 Redirection, 27 ServerError, 27 Success, 27 F FB_HttpClient, 40 FC_EtResultToString, 65 FC_EtStateToString, 66 EIO0000003850 12/2019 71 Index FC_ETStatusClassToString, 67 G GPL (liste des paramètres globaux) HttpHandling, 33 GVL (liste de variables globales), 35 S ST_TlsSettingsClient etCertVerifyMode, 30 etProtocol, 30 sCertName, 30 xSendClientCert, 30 H Head, 53 HttpHandling, 19 GPL (liste des paramètres globaux), 33 M méthode AcknowlegeResponse, 44 ConnectToServer, 45 Delete, 48 DisconnectFromServer, 50 Get, 51 Head, 53 Post, 55 Put, 58 Reset, 60 O Obtenir, 51 P Post, 55 Put, 58 R Reset, 60 72 EIO0000003850 12/2019 EcoStruxure Machine Expert EIO0000000491 06/2019 EcoStruxure Machine Expert Fonctions de Modem Guide de la bibliothèque Modem EIO0000000491.05 06/2019 www.schneider-electric.com Le présent document comprend des descriptions générales et/ou des caractéristiques techniques des produits mentionnés. Il ne peut pas être utilisé pour définir ou déterminer l'adéquation ou la fiabilité de ces produits pour des applications utilisateur spécifiques. Il incombe à chaque utilisateur ou intégrateur de réaliser l'analyse de risques complète et appropriée, l'évaluation et le test des produits pour ce qui est de l'application à utiliser et de l'exécution de cette application. Ni la société Schneider Electric ni aucune de ses sociétés affiliées ou filiales ne peuvent être tenues pour responsables de la mauvaise utilisation des informations contenues dans le présent document. Si vous avez des suggestions, des améliorations ou des corrections à apporter à cette publication, veuillez nous en informer. Vous acceptez de ne pas reproduire, excepté pour votre propre usage à titre non commercial, tout ou partie de ce document et sur quelque support que ce soit sans l'accord écrit de Schneider Electric. Vous acceptez également de ne pas créer de liens hypertextes vers ce document ou son contenu. Schneider Electric ne concède aucun droit ni licence pour l'utilisation personnelle et non commerciale du document ou de son contenu, sinon une licence non exclusive pour une consultation « en l'état », à vos propres risques. Tous les autres droits sont réservés. Toutes les réglementations locales, régionales et nationales pertinentes doivent être respectées lors de l'installation et de l'utilisation de ce produit. Pour des raisons de sécurité et afin de garantir la conformité aux données système documentées, seul le fabricant est habilité à effectuer des réparations sur les composants. Lorsque des équipements sont utilisés pour des applications présentant des exigences techniques de sécurité, suivez les instructions appropriées. La non-utilisation du logiciel Schneider Electric ou d'un logiciel approuvé avec nos produits matériels peut entraîner des blessures, des dommages ou un fonctionnement incorrect. Le non-respect de cette consigne peut entraîner des lésions corporelles ou des dommages matériels. © 2019 Schneider Electric. Tous droits réservés. 2 EIO0000000491 06/2019 Table des matières Consignes de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . A propos de ce manuel. . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 1 Généralités sur les modems . . . . . . . . . . . . . . . . . . . . . . Fonctions modem sur les automates. . . . . . . . . . . . . . . . . . . . . . . . . . Paramètres génériques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OperationErrorCodesExt: Codes d'erreur d'opération (Type ENUM) . Chapitre 2 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ajout d'un modem à votre application . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 3 Description des blocs fonction . . . . . . . . . . . . . . . . . . . . 3.1 Ouverture et fermeture de communications transparentes . . . . . . . . . Dial : ouvrir des communications transparentes . . . . . . . . . . . . . . . . . HangUp : Fermer les communications transparentes . . . . . . . . . . . . . 3.2 Envoi et réception de SMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SendSMS : envoyer un SMS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ReceiveSMS : recevoir un SMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 Services de carte SIM du modem GSM . . . . . . . . . . . . . . . . . . . . . . . ConfigSim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Annexes ......................................... Annexe A Représentation des fonctions et blocs fonction . . . . . . . Différences entre une fonction et un bloc fonction . . . . . . . . . . . . . . . Utilisation d'une fonction ou d'un bloc fonction en langage IL . . . . . . . Utilisation d'une fonction ou d'un bloc fonction en langage ST . . . . . . Glossaire Index EIO0000000491 06/2019 ......................................... ......................................... 5 7 9 10 11 13 15 15 21 22 23 25 26 27 29 31 31 35 37 38 39 43 47 49 3 4 EIO0000000491 06/2019 Consignes de sécurité Informations importantes AVIS Lisez attentivement ces instructions et examinez le matériel pour vous familiariser avec l'appareil avant de tenter de l'installer, de le faire fonctionner, de le réparer ou d'assurer sa maintenance. Les messages spéciaux suivants que vous trouverez dans cette documentation ou sur l'appareil ont pour but de vous mettre en garde contre des risques potentiels ou d'attirer votre attention sur des informations qui clarifient ou simplifient une procédure. EIO0000000491 06/2019 5 REMARQUE IMPORTANTE L'installation, l'utilisation, la réparation et la maintenance des équipements électriques doivent être assurées par du personnel qualifié uniquement. Schneider Electric décline toute responsabilité quant aux conséquences de l'utilisation de ce matériel. Une personne qualifiée est une personne disposant de compétences et de connaissances dans le domaine de la construction, du fonctionnement et de l'installation des équipements électriques, et ayant suivi une formation en sécurité leur permettant d'identifier et d'éviter les risques encourus. QUALIFICATION DU PERSONNEL Une personne qualifiée est une personne qui a les qualifications suivantes : Compétences et connaissances liées à la construction et à l'exploitation d'équipements électriques et à l'installation. Connaissance de l'exploitation des fonctionnalités de la machine dans l'implémentation du logiciel. A reçu une formation en sécurité permettant de reconnaître et d'éviter les dangers potentiels. La personne qualifiée doit être capable de détecter d'éventuels dangers qui pourraient découler du paramétrage, de modifications des valeurs de paramétrage et plus généralement des équipements mécaniques, électriques ou électroniques. La personne qualifiée doit connaître les normes, dispositions et régulations liées à la prévention des accidents de travail, et doit les observer lors de la conception et de l'implémentation du système. INSTRUCTIONS D'UTILISATION Ce produit est une bibliothèque à utiliser avec un système de commande et des servoamplificateurs. La bibliothèque n'est conçue qu'en vue d'une utilisation telle que décrite dans la présente documentation, appliquée au secteur industriel. Observez en permanence les instructions applicables liées à la sécurité, les conditions spécifiques et les données techniques. Réalisez une analyse des risques en rapport avec l'utilisation spécifique avant d'utiliser ce produit. Prenez les mesures de sécurité qui découlent des résultats. Étant donné que ce produit est utilisé au sein d'un système qui l'englobe, vous devez assurer la sécurité du personnel par la conception même du système global (la conception de la machine, par exemple). Aucune autre utilisation n'est prévue. Toute autre utilisation pourrait être dangereuse. 6 EIO0000000491 06/2019 A propos de ce manuel Présentation Objectif du document Ce document décrit la bibliothèque des fonctions modem utilisables par les contrôleurs EcoStruxure Machine Expert. Champ d'application Ce document a été actualisé pour le lancement d’EcoStruxureTM Machine Expert V1.1. Information spécifique au produit AVERTISSEMENT PERTE DE CONTROLE Le concepteur d'un système de commande doit envisager les modes de défaillance possibles des chemins de commande et, pour certaines fonctions de commande critiques, prévoir un moyen d'atteindre un état sécurisé en cas de défaillance d'un chemin, et après cette défaillance. Par exemple, l'arrêt d'urgence, l'arrêt en cas de surcourse, la coupure de courant et le redémarrage sont des fonctions de contrôle cruciales. Des canaux de commande séparés ou redondants doivent être prévus pour les fonctions de commande critique. Les chemins de commande système peuvent inclure les liaisons de communication. Soyez particulièrement attentif aux implications des retards de transmission imprévus ou des pannes de liaison. Respectez toutes les réglementations de prévention des accidents ainsi que les consignes de sécurité locales.1 Chaque implémentation de cet équipement doit être testée individuellement et entièrement pour s'assurer du fonctionnement correct avant la mise en service. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. EIO0000000491 06/2019 7 1 Pour plus d'informations, consultez le document NEMA ICS 1.1 (dernière édition), « Safety Guidelines for the Application, Installation, and Maintenance of Solid State Control » (Directives de sécurité pour l'application, l'installation et la maintenance de commande statique) et le document NEMA ICS 7.1 (dernière édition), « Safety Standards for Construction and Guide for Selection, Installation, and Operation of Adjustable-Speed Drive Systems » (Normes de sécurité relatives à la construction et manuel de sélection, installation et opération de variateurs de vitesse) ou son équivalent en vigueur dans votre pays. Avant de tenter de fournir une solution (machine ou processus) pour une application spécifique en utilisant les POU trouvés dans la bibliothèque, vous devez tenir compte de la réalisation et de l'exécution des bonnes pratiques. La liste non exhaustive de ces pratiques liées à cette bibliothèque inclut l'analyse des risques, la sécurité fonctionnelle, la compatibilité des composants, les tests et la validation du système. AVERTISSEMENT UTILISATION INCORRECTE DES UNITES ORGANISATIONNELLES DU PROGRAMME Effectuez une analyse de la sécurité de l'application et des équipements installés. Vérifiez que les POU sont compatibles avec les équipements du système et n'ont pas d'effets inattendus sur le bon fonctionnement du système. Utilisez les paramètres appropriés, notamment les valeurs limites, et observez l'usure de la machine et son fonctionnement à l'arrêt. Vérifiez que les capteurs et déclencheurs sont compatibles avec les POU sélectionnés. Testez de manière approfondie toutes les fonctions durant la vérification et la mise en service dans tous les modes de fonctionnement. Indiquez des méthodes indépendantes pour les fonctions de commande critiques (arrêt d'urgence, conditions de dépassement des valeurs limites, etc.) en fonction d'une analyse de la sécurité, des règles correspondantes et des réglementations. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. 8 EIO0000000491 06/2019 EcoStruxure Machine Expert Généralités sur les modems EIO0000000491 06/2019 Chapitre 1 Généralités sur les modems Généralités sur les modems Introduction Vous pouvez connecter un modem PSTN (Public Switched Telephone Network) ou GSM (Global System for Mobile Communications) à une ligne série pour communiquer de manière transparente avec un équipement distant selon les protocoles ASCII, Modbus ou Machine Expert. Vous pouvez également utiliser un modem GSM pour envoyer ou recevoir des SMS. La bibliothèque modem propose un ensemble de blocs fonction permettant d'utiliser ces fonctions. Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page Fonctions modem sur les automates 10 Paramètres génériques 11 OperationErrorCodesExt: Codes d'erreur d'opération (Type ENUM) 13 EIO0000000491 06/2019 9 Généralités sur les modems Fonctions modem sur les automates Introduction Cette section décrit le fonctionnement et la gestion des fonctions de communication modem des automates. NOTE : Les fonctions de communication sont traitées de manière asynchrone par rapport à la tâche applicative qui a appelé la fonction. Blocs fonction disponibles Ce tableau décrit les blocs fonction modem pouvant être utilisés par les automates : 10 Fonction Description Dial (voir page 23) Dial établit des communications avec un équipement distant via un modem. HangUp (voir page 25) HangUp ferme une connexion établie précédemment. SendSMS (voir page 27) SendSMS envoie des SMS. ReceiveSMS (voir page 27) ReceiveSMS permet à l'automate de recevoir des SMS. ConfigSim (voir page 31) Utilisez ConfigSim si votre carte SIM nécessite un code PIN, un numéro de téléphone de centre SMS ou une commande d'initialisation. EIO0000000491 06/2019 Généralités sur les modems Paramètres génériques Introduction Cette section décrit le fonctionnement et la gestion des fonctions de communication modem, en prenant comme exemple le bloc fonction Dial. Représentation graphique Les paramètres communs à tous les blocs fonction de la bibliothèque modem apparaissent en surbrillance dans le graphique ci-dessous : Paramètres communs Ces paramètres sont partagés par plusieurs blocs fonction de la bibliothèque modem : Entrée Type Commentaire xExecute BOOL La fonction est exécutée sur le front montant de cette entrée. REMARQUE : lorsque l'entrée xExecute est réglée sur TRUE lors du premier cycle de tâche en mode RUN se produisant après un redémarrage à chaud ou à froid, le front montant n'est pas détecté. xAbort BOOL annule l'opération en cours au front montant serialLineNb BYTE le nombre de lignes série (1 ou 2) timeout WORD le timeout de l'échange est un multiple de 100 ms (0 pour l'infini) REMARQUE : une opération du bloc fonction peut nécessiter plusieurs échanges. Le timeout s'applique à chaque échange entre le contrôleur et le modem. Ainsi, la durée totale d'exécution du bloc fonction peut être supérieure au timeout. Sortie Type Commentaire xDone BOOL La sortie xDone est réglée sur TRUE lorsque la fonction s'est exécutée avec succès. xBusy BOOL La sortie xBusy est réglée sur TRUE lorsque la fonction est en cours d'exécution. EIO0000000491 06/2019 11 Généralités sur les modems Sortie Type Commentaire xAborted BOOL La sortie xAborted est réglée sur TRUE dès lors que la fonction est annulée via l'entrée xAbort. xError BOOL La sortie xError est réglée sur TRUE en cas d'interruption de la fonction du fait de la détection d'une erreur. Lorsqu'une erreur a été détectée, nCommError et nOperError permettent d'obtenir des informations sur celle-ci. nCommError SEN.Comm_ErrCodes La sortie nCommError contient les codes des erreurs de communication. Le type ENUM provient de la bibliothèque PLCCommunication associée. (Pour obtenir plus d'informations, reportez-vous au guide Fonctions de communication : Bibliothèque PLCCommunication.) nOperError OperationErrorCodesExt La sortie nOperError contient les codes des erreurs d'opération (voir page 13). REMARQUE : dès que la sortie xBusy est réinitialisée sur FALSE, une de ces sorties (et une seule) est définie sur TRUE : xDone xError xAborted Les blocs fonction nécessitent un front montant pour être initiés. Le bloc fonction doit tout d'abord voir l'entrée xExecute comme FALSE pour détecter un front montant ultérieur. AVERTISSEMENT FONCTIONNEMENT D'EQUIPEMENT NON INTENTIONNEL Composez toujours le premier appel à un bloc fonction en réglant son entrée xExecute sur FALSE de sorte qu'il détecte un front montant ultérieur. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. 12 EIO0000000491 06/2019 Généralités sur les modems OperationErrorCodesExt: Codes d'erreur d'opération (Type ENUM) Description du type énumération Le type énumération OperationErrorCodesExt contient des codes qui correspondent aux erreurs détectées. La valeur du code d'erreur de communication renvoyée par la sortie nCommError affecte la signification du code d'erreur d'opération renvoyé par la sortie nOperError. nCommError = CommunicationOK Lorsque le code d'erreur de communication est 00 hex (transaction correcte), le type énumération OperationErrorCodesExt peut renvoyer les valeurs suivantes : Enumérateur Valeur (hex.) Description OperationOK 00 L'échange est valide. NotProcessed_or_Target ResourceMissing 01 La requête n'a pas été traitée ou la ressource du système cible est absente. BadResponse 02 La réponse reçue est incorrecte. ModemConfSLAsciiFailed 100 La configuration de la ligne série en ASCII a échoué. (Voir Remarque 1.) ModemReconfSLFailed 200 Le repositionnement de la configuration de la ligne série sur la configuration utilisateur a échoué. (Voir Remarque 1.) ModemBusy 300 Le modem répond "BUSY" à la commande Dial. (Voir Remarque 2.) ModemNoDialtone 400 Le modem répond "NO DIALTONE" à la commande Dial. (Voir Remarque 2.) ModemNoCarrier 500 Le signal porteuse du modem a été perdu ou déconnecté. Le modem répond "NO CARRIER" à la commande Dial. (Voir Remarque 2.) ModemBadAnswer 600 La réponse du modem n'est pas valide. SimConfigurationFailed 1000 La configuration de la carte SIM a échoué. (Par exemple, un code PUK est nécessaire ou initSimString n'est pas valide. (voir page 33)) (Voir Remarque 3.) SimPinCodeInvalid 2000 Le code PIN n'est pas valide. (Voir Remarque 3.) SimSmsCenterInvalid 4000 Le numéro de téléphone du centre SMS n'est pas valide. (Voir Remarque 3.) REMARQUE 1 : Ces codes énumération sont utilisés par les blocs fonction Dial et HangUp. REMARQUE 2 : Ces codes énumération sont utilisés par le bloc fonction Dial. REMARQUE 3 : Ces codes énumération sont utilisés par le bloc fonction ConfigSim. EIO0000000491 06/2019 13 Généralités sur les modems nCommError = Refused Lorsque le code d'erreur de communication est FF hex (message refusé), le type énumération OperationErrorCodesExt peut renvoyer les valeurs suivantes : 14 Enumérateur Valeur (hex.) Description NotProcessed_or_Target ResourceMissing 01 La requête n'a pas été traitée ou la ressource du système cible est absente. BadLength 05 La longueur est incorrecte. CommChannelErr 06 La voie de communication est associée à une erreur détectée. BadAddr 07 L'adresse est incorrecte. SystemResourceMissing 0B Une ressource du système fait défaut. TargetCommInactive 0C Une fonction de communication cible n'est pas active. TargetMissing 0D La cible est absente. ChannelNotConfigured 0F La voie n'est pas configurée. EIO0000000491 06/2019 EcoStruxure Machine Expert Configuration EIO0000000491 06/2019 Chapitre 2 Configuration Configuration Ajout d'un modem à votre application Introduction Lorsque vous ajoutez un modem à un gestionnaire de ligne série avec EcoStruxure Machine Expert, la bibliothèque modem est automatiquement incluse dans votre programme. Une fois la bibliothèque ajoutée, vous pouvez utiliser des blocs fonction spécifiques au modem dans les POU de votre application. Le tableau ci-après répertorie les gestionnaires de ligne série et les fonctions compatibles : Gestionnaire de ligne série Communication transparente SMS ASCII Modem PSTN ou GSM Modem GSM SR2MOD03 avec configuration ASCII spécifique Modbus Modem PSTN ou GSM non EcoStruxure Machine Expert Utiliser un modem capable d'ignorer les trames de protocole lorsqu'une connexion n'est pas établie. (Utiliser un modem PSTN TDW33.) non EIO0000000491 06/2019 15 Configuration Ajout d'un gestionnaire à votre ligne série Pour envoyer ou recevoir des SMS via un modem GSM, procédez comme suit : Etape 16 Action 1 Ajoutez le gestionnaire approprié à la ligne série. (Reportez-vous au guide de programmation du contrôleur pour obtenir plus d'informations.) 2 Configurez le gestionnaire pour toutes les communications transparentes nécessaires. 3 L'utilisation de la fonctionnalité SMS nécessite un gestionnaire ASCII. Il est recommandé de définir une détection de fin de trame (aucun caractère de fin et aucune longueur de trame). (Reportez-vous à la figure ci-après.) EIO0000000491 06/2019 Configuration Ajout d'un modem au gestionnaire Ajoutez le modem sélectionné au gestionnaire de ligne série configuré dans la boîte de dialogue Ajouter un équipement : EIO0000000491 06/2019 17 Configuration Dans l'arborescence des équipements, le modem apparaît en racine du gestionnaire de ligne série : 18 EIO0000000491 06/2019 Configuration Editeur de modem Double-cliquez sur le modem pour ouvrir l'éditeur d'équipements : Dans la vue de la configuration, la chaîne Hayes Reset Command est définie par défaut. Pour les modems SR2MOD01 et TDW33 pris en charge par Schneider Electric, cette chaîne de commandes par défaut est à utiliser avec la configuration de ligne série suivante : Débit en bauds 19 200 Parité Aucune Bits de données 8 Bits d'arrêt 1 Si la configuration de ligne série est différente, la chaîne de commandes doit être modifiée en conséquence. NOTE : La chaîne Hayes Reset Command est la chaîne d'initialisation du modem. Elle consiste en une série d'opérations appelées commandes Hayes ("AT"). Elle consiste en une série d'opérations appelées commandes Hayes ("AT"). Cette chaîne est envoyée sur la ligne série lors de la configuration de l'application (c'est-à-dire, après la mise sous tension du contrôleur, le téléchargement de l'application et les commandes de réinitialisation à chaud ou à froid). Si le modem renvoie OK, le modem connecté apparaît sans aucune erreur (vert) dans l'arborescence des équipements en mode connecté. Dans le cas contraire, un triangle rouge signale qu'une erreur a été détectée. NOTE : La préparation du modem peut nécessiter quelques secondes. EIO0000000491 06/2019 19 Configuration 20 EIO0000000491 06/2019 EcoStruxure Machine Expert Description des blocs fonction EIO0000000491 06/2019 Chapitre 3 Description des blocs fonction Description des blocs fonction Introduction Ce chapitre décrit les blocs fonction de la bibliothèque modem. Contenu de ce chapitre Ce chapitre contient les sous-chapitres suivants : Sous-chapitre Sujet Page 3.1 Ouverture et fermeture de communications transparentes 22 3.2 Envoi et réception de SMS 26 3.3 Services de carte SIM du modem GSM 31 EIO0000000491 06/2019 21 Description des blocs fonction Sous-chapitre 3.1 Ouverture et fermeture de communications transparentes Ouverture et fermeture de communications transparentes Introduction Utilisez les blocs fonction Dial et HangUp pour ouvrir et fermer des communications transparentes entre un contrôleur et un équipement distant. Dans ce cas, un modem est nécessaire à chaque extrémité. Vous pouvez ajouter trois types de gestionnaires à une ligne série pour échanger des requêtes : Gestionnaire Modbus Gestionnaire ASCII Gestionnaire de réseau Machine Expert NOTE : L'un des exemples de EcoStruxure Machine Expert utilise les blocs fonction Dial et HangUp pour ouvrir une connexion Modbus entre deux contrôleurs. Le fichier (Modem_Modbus.project) est accessible à partir du menu Accueil. Contenu de ce sous-chapitre Ce sous-chapitre contient les sujets suivants : Sujet 22 Page Dial : ouvrir des communications transparentes 23 HangUp : Fermer les communications transparentes 25 EIO0000000491 06/2019 Description des blocs fonction Dial : ouvrir des communications transparentes Introduction Avec le bloc fonction Dial, le contrôleur peut établir des communications avec un équipement distant via un modem : NOTE : Vous pouvez également établir des communications transparentes avec un modem GSM. Le bloc fonction Dial exécute la commande Dial pour établir une communication transparente entre deux modems. Lorsque xDone a pour valeur TRUE, la communication peut démarrer avec le protocole configuré (Modbus, EcoStruxure Machine Expert ou ASCII). Représentation graphique Description des variables d'E/S Entrée Type Description phoneNb STRING L'entrée phoneNb contient le numéro de téléphone du modem à appeler. NOTE : Les paramètres d'entrée et de sortie communs à tous les blocs fonction de la bibliothèque modem sont décrits dans une autre section (voir page 11). EIO0000000491 06/2019 23 Description des blocs fonction Exemple La figure ci-dessous illustre la déclaration et l'utilisation de la fonction Dial : 24 EIO0000000491 06/2019 Description des blocs fonction HangUp : Fermer les communications transparentes Introduction La fonction HangUp permet à l'automate de fermer une connexion précédemment ouverte. Représentation graphique Description des variables d'E/S Les paramètres d'entrée et de sortie utilisés dans le bloc fonction HangUp sont ceux communs à tous les blocs fonctions de la bibliothèque modem. Ils sont présentés dans d'autres sections (voir page 11). EIO0000000491 06/2019 25 Description des blocs fonction Sous-chapitre 3.2 Envoi et réception de SMS Envoi et réception de SMS Introduction Les blocs fonction SMS (SendSMS et ReceiveSMS) permettent d'établir une connexion avec un modem GSM pour envoyer et recevoir des SMS. NOTE : Un exemple de programme SMS utilisant les blocs fonction SendSMS et ReceiveSMS est inclus dans les exemples de EcoStruxure Machine Expert. Le fichier (Modem_SMS.project) est accessible à partir du menu Accueil. Contenu de ce sous-chapitre Ce sous-chapitre contient les sujets suivants : Sujet 26 Page SendSMS : envoyer un SMS 27 ReceiveSMS : recevoir un SMS 29 EIO0000000491 06/2019 Description des blocs fonction SendSMS : envoyer un SMS Introduction Le bloc fonction SendSMS permet d'établir une connexion avec un modem GSM et d'envoyer un SMS à un récepteur donné. Par exemple, le contrôleur peut envoyer un SMS lorsqu'un déclencheur est actionné pour transmettre une alarme à un téléphone portable spécifié : NOTE : Vérifiez que votre modem GSM est configuré correctement comme suit : Vérifiez que la carte SIM du modem est déverrouillée. Vérifiez que le numéro de téléphone du centre SMS est correct. Vous pouvez utiliser le bloc fonction ConfigSim pour définir correctement ces paramètres à partir de votre application. Représentation graphique Description des variables d'E/S Entrée Type Description phoneNb STRING L'entrée phoneNb contient le numéro de téléphone du récepteur. smsText STRING(255) L'entrée smsText contient le corps du SMS (255 caractères maximum). Les paramètres d'entrée et de sortie communs à tous les blocs fonction de la bibliothèque modem sont décrits dans une autre section (voir page 11). EIO0000000491 06/2019 27 Description des blocs fonction Exemple La figure ci-dessous illustre la déclaration et l'utilisation de la fonction ReceiveSMS : 28 EIO0000000491 06/2019 Description des blocs fonction ReceiveSMS : recevoir un SMS Introduction Le bloc fonction ReceiveSMS permet de capturer des SMS reçus par un modem GSM. Par exemple, le contrôleur peut traiter une commande envoyée par SMS depuis un téléphone portable donné. NOTE : Vérifiez que votre modem GSM est configuré correctement comme suit : Vérifiez que la carte SIM du modem est déverrouillée. Vérifiez que le numéro de téléphone du centre SMS est correct. Vous pouvez utiliser le bloc fonction ConfigSim pour définir correctement ces paramètres dans votre application. Représentation graphique Description des variables d'E/S Sortie Type Description smsText STRING(255) La sortie smsText contient le corps du SMS. phoneNb STRING La sortie phoneNb contient le numéro du téléphone qui a envoyé le SMS. smsDate DATE_AND_TIME La sortie smsDate contient la date de la communication. Les paramètres d'entrée et de sortie communs à tous les blocs fonction de la bibliothèque modem sont décrits dans une autre section (voir page 11). EIO0000000491 06/2019 29 Description des blocs fonction Exemple La figure ci-dessous illustre la déclaration et l'utilisation de la fonction ReceiveSMS. 30 EIO0000000491 06/2019 Description des blocs fonction Sous-chapitre 3.3 Services de carte SIM du modem GSM Services de carte SIM du modem GSM ConfigSim Introduction Avant d'utiliser un autre bloc fonction dans la bibliothèque MODEM, utilisez le bloc fonction ConfigSim si la carte SIM du modem GSM nécessite une des opérations suivantes : Saisir le code PIN. Configurer le numéro de téléphone du centre SMS. Envoyer une commande d'initialisation. Vous pouvez ensuite utiliser directement l'un des blocs fonction SMS dédiés. EIO0000000491 06/2019 31 Description des blocs fonction Plusieurs commandes sont transmises au modem GSM conformément au diagramme ci-après : 32 EIO0000000491 06/2019 Description des blocs fonction AVERTISSEMENT FONCTIONNEMENT ACCIDENTEL DE L'EQUIPEMENT Si vous utilisez un modem SR2MOD03 avec une carte SIM protégée par code PIN, la chaîne d'initialisation par défaut doit être modifiée dans l'éditeur de configuration du modem. Remplacez la valeur de la commande Hayes Reset par : 'AT&F;E0;S0=2;Q0;V1;+WIND=0;+CBST=0,0,1;&W' Utilisez par ailleurs le bloc fonction ConfigSim pour transmettre une commande d'initialisation supplémentaire de la manière suivante : entrée InitSimString = 'AT+CMGF=1;+CNMI=0,2,0,0,0;+CSAS' Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Représentation graphique Description des variables d'E/S Entrée Type Description smsCenterPhoneNb STRING L'entrée smsCenterPhoneNb contient le numéro de téléphone du centre SMS à configurer dans la carte SIM. Si elle est vide, ce numéro n'est pas envoyé et le modem utilise le numéro par défaut. pinCode STRING(4) L'entrée pinCode indique le code PIN de la carte SIM à envoyer pour la débloquer. Si l'entrée pinCode est vide, aucun code PIN n'est envoyé. initSimString STRING(255) L'entrée initSimString indique la chaîne d'initialisation de la carte SIM transmise après l'envoi du code PIN et du numéro de téléphone du centre de services. REMARQUE : pour le modem SR2MOD03, utilisez la commande suivante : 'AT+CMGF=1;+CNMI=0,2,0,0,0;+CSAS' EIO0000000491 06/2019 33 Description des blocs fonction Les paramètres d'entrée et de sortie communs à tous les blocs fonction de la bibliothèque modem sont décrits dans une autre section (voir page 11). Exemple La figure ci-dessous illustre la déclaration et l'utilisation de la fonction ConfigSim : 34 EIO0000000491 06/2019 EcoStruxure Machine Expert EIO0000000491 06/2019 Annexes EIO0000000491 06/2019 35 36 EIO0000000491 06/2019 EcoStruxure Machine Expert Représentation des fonctions et blocs fonction EIO0000000491 06/2019 Annexe A Représentation des fonctions et blocs fonction Représentation des fonctions et blocs fonction Présentation Chaque fonction peut être représentée dans les langages suivants : IL : (Instruction List) liste d'instructions ST : (Structured Text) littéral structuré LD : (Ladder Diagram) schéma à contacts FBD : Function Block Diagram (Langage à blocs fonction) CFC : Continuous Function Chart (Diagramme fonctionnel continu) Ce chapitre fournit des exemples de représentations de fonctions et blocs fonction et explique comment les utiliser dans les langages IL et ST. Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page Différences entre une fonction et un bloc fonction 38 Utilisation d'une fonction ou d'un bloc fonction en langage IL 39 Utilisation d'une fonction ou d'un bloc fonction en langage ST 43 EIO0000000491 06/2019 37 Représentation des fonctions et blocs fonction Différences entre une fonction et un bloc fonction Fonction Une fonction : est une POU (Program Organization Unit ou unité organisationnelle de programme) qui renvoie un résultat immédiat ; est directement appelée par son nom (et non par une instance) ; ne conserve pas son état entre deux appels ; peut être utilisée en tant qu'opérande dans des expressions. Exemples : opérateurs booléens (AND), calculs, conversions (BYTE_TO_INT) Bloc fonction Un bloc fonction : est une POU qui renvoie une ou plusieurs sorties ; doit être appelé par une instance (copie de bloc fonction avec nom et variables dédiées). Chaque instance conserve son état (sorties et variables internes) entre deux appels à partir d'un bloc fonction ou d'un programme. Exemples : temporisateurs, compteurs Dans l'exemple, Timer_ON est une instance du bloc fonction TON : 38 EIO0000000491 06/2019 Représentation des fonctions et blocs fonction Utilisation d'une fonction ou d'un bloc fonction en langage IL Informations générales Cette partie explique comment mettre en œuvre une fonction et un bloc fonction en langage IL. Les fonctions IsFirstMastCycle et SetRTCDrift, ainsi que le bloc fonction TON, sont utilisés à titre d'exemple pour illustrer les mises en œuvre. Utilisation d'une fonction en langage IL La procédure suivante explique comment insérer une fonction en langage IL : Étape 1 Action Ouvrez ou créez une POU en langage IL (Instruction List, ou liste d'instructions). NOTE : La procédure de création d'une POU n'est pas détaillée ici. Pour plus d'informations, reportez-vous à la section Ajout et appel de POU (voir EcoStruxure Machine Expert, Guide de programmation). 2 Créez les variables nécessaires à la fonction. 3 Si la fonction possède une ou plusieurs entrées, chargez la première entrée en utilisant l'instruction LD. 4 Insérez une nouvelle ligne en dessous et : saisissez le nom de la fonction dans la colonne de l'opérateur (champ de gauche), ou utilisez l'Aide à la saisie pour sélectionner la fonction (sélectionnez Insérer l'appel de module dans le menu contextuel). 5 Si la fonction a plus d'une entrée et que l'assistant Aide à la saisie est utilisé, le nombre requis de lignes est automatiquement créé avec ??? dans les champs situés à droite. Remplacez les ??? par la valeur ou la variable appropriée compte tenu de l'ordre des entrées. 6 insérez une nouvelle ligne pour stocker le résultat de la fonction dans la variable appropriée : saisissez l'instruction ST dans la colonne de l'opérateur (champ de gauche) et le nom de la variable dans le champ de droite. Pour illustrer la procédure, utilisons les fonctions IsFirstMastCycle (sans paramètre d'entrée) et SetRTCDrift (avec paramètres d'entrée) représentées graphiquement ci-après : Fonction Représentation graphique sans paramètre d'entrée : IsFirstMastCycle EIO0000000491 06/2019 39 Représentation des fonctions et blocs fonction Fonction Représentation graphique avec paramètres d'entrée : SetRTCDrift En langage IL, le nom de la fonction est utilisé directement dans la colonne de l'opérateur : Fonction Représentation dans l'éditeur IL de POU Exemple en IL d'une fonction sans paramètre d'entrée : IsFirstMastCycle 40 EIO0000000491 06/2019 Représentation des fonctions et blocs fonction Fonction Représentation dans l'éditeur IL de POU Exemple IL d'une fonction avec des paramètres d'entrée : SetRTCDrift Utilisation d'un bloc fonction en langage IL La procédure suivante explique comment insérer un bloc fonction en langage IL : Étape Action 1 Ouvrez ou créez une POU en langage IL (Instruction List, ou liste d'instructions). NOTE : La procédure de création d'une POU n'est pas détaillée ici. Pour plus d'informations, reportez-vous à la section Ajout et appel de POU (voir EcoStruxure Machine Expert, Guide de programmation). 2 Créez les variables nécessaires au bloc fonction (y compris le nom de l'instance). 3 L'appel de blocs fonction nécessite l'utilisation d'une instruction CAL : Utilisez l'Aide à la saisie pour sélectionner le bloc fonction (cliquez avec le bouton droit et sélectionnez Insérer l'appel de module dans le menu contextuel). L'instruction CAL et les E/S nécessaires sont automatiquement créées. Chaque paramètre (E/S) est une instruction : Les valeurs des entrées sont définies à l'aide de « := ». Les valeurs des sorties sont définies à l'aide de =>. 4 Dans le champ CAL de droite, remplacez les ??? par le nom de l'instance. 5 Remplacez les autres ??? par une variable ou une valeur immédiate appropriée. EIO0000000491 06/2019 41 Représentation des fonctions et blocs fonction Pour illustrer la procédure, utilisons le bloc fonction TON représenté graphiquement ci-après : Bloc fonction Représentation graphique TON En langage IL, le nom du bloc fonction est utilisé directement dans la colonne de l'opérateur : Bloc fonction Représentation dans l'éditeur IL de POU TON 42 EIO0000000491 06/2019 Représentation des fonctions et blocs fonction Utilisation d'une fonction ou d'un bloc fonction en langage ST Informations générales Cette partie décrit comment mettre en œuvre une fonction ou un bloc fonction en langage ST. La fonction SetRTCDrift et le bloc fonction TON sont utilisés à titre d'exemple pour illustrer les mises en œuvre. Utilisation d'une fonction en langage ST La procédure suivante explique comment insérer une fonction en langage ST : Étape Action 1 Ouvrez ou créez une POU en langage ST (Structured Text ou Littéral structuré). NOTE : La procédure de création d'une POU n'est pas détaillée ici. Pour plus d'informations, reportez-vous à la section Ajout et appel de POU (voir EcoStruxure Machine Expert, Guide de programmation). 2 Créez les variables nécessaires à la fonction. 3 Utilisez la syntaxe générale dans l'éditeur ST de POU pour la représentation en langage ST d'une fonction. La syntaxe générale est la suivante : RésultatFonction:= NomFonction(VarEntrée1, VarEntrée2, … VarEntréex); Pour illustrer la procédure, utilisons la fonction SetRTCDrift représentée graphiquement ciaprès : Fonction Représentation graphique SetRTCDrift EIO0000000491 06/2019 43 Représentation des fonctions et blocs fonction La représentation en langage ST de cette fonction est la suivante : Fonction Représentation dans l'éditeur ST de POU SetRTCDrift PROGRAM MyProgram_ST VAR myDrift: SINT(-29..29) := 5; myDay: DAY_OF_WEEK := SUNDAY; myHour: HOUR := 12; myMinute: MINUTE; myRTCAdjust: RTCDRIFT_ERROR; END_VAR myRTCAdjust:= SetRTCDrift(myDrift, myDay, myHour, myMinute); Utilisation d'un bloc fonction en langage ST La procédure suivante explique comment insérer un bloc fonction en langage ST : Étape Action 1 Ouvrez ou créez une POU en langage ST (Structured Text ou Littéral structuré). NOTE : La procédure de création d'une POU n'est pas détaillée ici. Pour plus d'informations sur l'ajout, la déclaration et l'appel de POU, reportez-vous à la documentation (voir EcoStruxure Machine Expert, Guide de programmation) associée. 2 Créez les variables d'entrée, les variables de sortie et l'instance requises pour le bloc fonction : Les variables d'entrée sont les paramètres d'entrée requis par le bloc fonction. Les variables de sortie reçoivent la valeur renvoyée par le bloc fonction. 3 Utilisez la syntaxe générale dans l'éditeur ST de POU pour la représentation en langage ST d'un bloc fonction. La syntaxe générale est la suivante : FunctionBlock_InstanceName(Input1:=VarInput1, Input2:=VarInput2,... Ouput1=>VarOutput1, Ouput2=>VarOutput2,...); Pour illustrer la procédure, utilisons le bloc fonction TON représenté graphiquement ci-après : Bloc fonction Représentation graphique TON 44 EIO0000000491 06/2019 Représentation des fonctions et blocs fonction Le tableau suivant montre plusieurs exemples d'appel de bloc fonction en langage ST : Bloc fonction Représentation dans l'éditeur ST de POU TON EIO0000000491 06/2019 45 Représentation des fonctions et blocs fonction 46 EIO0000000491 06/2019 EcoStruxure Machine Expert Glossaire EIO0000000491 06/2019 Glossaire B bloc fonction Unité de programmation qui possède 1 ou plusieurs entrées et renvoie 1 ou plusieurs sorties. Les blocs fonction (FBs) sont appelés via une instance (copie du bloc fonction avec un nom et des variables dédiés) et chaque instance a un état persistant (sorties et variables internes) d'un appel au suivant. Exemples : temporisateurs, compteurs C CFC Acronyme de continuous function chart (diagramme fonctionnel continu). Langage de programmation graphique (extension de la norme IEC 61131-3) basé sur le langage de diagramme à blocs fonction et qui fonctionne comme un diagramme de flux. Toutefois, il n'utilise pas de réseaux et le positionnement libre des éléments graphiques est possible, ce qui permet les boucles de retour. Pour chaque bloc, les entrées se situent à gauche et les sorties à droite. Vous pouvez lier les sorties de blocs aux entrées d'autres blocs pour créer des expressions complexes. F FB Acronyme de function block, bloc fonction. Mécanisme de programmation commode qui consolide un groupe d'instructions de programmation visant à effectuer une action spécifique et normalisée telle que le contrôle de vitesse, le contrôle d'intervalle ou le comptage. Un bloc fonction peut comprendre des données de configuration, un ensemble de paramètres de fonctionnement interne ou externe et généralement une ou plusieurs entrées et sorties de données. I IL INT Acronyme de instruction list, liste d'instructions. Un programme écrit en langage IL est composé d'instructions textuelles qui sont exécutées séquentiellement par le contrôleur. Chaque instruction comprend un numéro de ligne, un code d'instruction et un opérande (voir la norme IEC 61131-3). Abréviation de integer, nombre entier codé sur 16 bits. EIO0000000491 06/2019 47 Glossaire L langage en blocs fonctionnels Un des 5 langages de programmation de logique ou de commande pris en charge par la norme IEC 61131-3 pour les systèmes de commande. FBD est un langage de programmation orienté graphique. Il fonctionne avec une liste de réseaux où chaque réseau contient une structure graphique de zones et de lignes de connexion représentant une expression logique ou arithmétique, un appel de bloc fonction ou une instruction de retour. LD Acronyme de ladder diagram, schéma à contacts. Représentation graphique des instructions d'un programme de contrôleur, avec des symboles pour les contacts, les bobines et les blocs dans une série de réseaux exécutés séquentiellement par un contrôleur (voir IEC 61131-3). O octet Type codé sur 8 bits, de 00 à FF au format hexadécimal. P POU Acronyme de program organization unit, unité organisationnelle de programme. Déclaration de variables dans le code source et jeu d'instructions correspondant. Les POUs facilitent la réutilisation modulaire de programmes logiciels, de fonctions et de blocs fonction. Une fois déclarées, les POUs sont réutilisables. S SMS ST Acronyme de short message service, service de messagerie texte. Service standard de communication pour les téléphones (et d'autres équipements), qui permet d'envoyer des messages alphanumériques de longueur limitée sur le système de communications mobiles. Acronyme de structured text, texte structuré. Langage composé d'instructions complexes et d'instructions imbriquées (boucles d'itération, exécutions conditionnelles, fonctions). Le langage ST est conforme à la norme IEC 61131-3. V variable Unité de mémoire qui est adressée et modifiée par un programme. 48 EIO0000000491 06/2019 EcoStruxure Machine Expert Index EIO0000000491 06/2019 Index B bloc fonction ConfigSim, 31 Dial, 23 HangUp, 25 ReceiveSMS, 29 SendSMS, 27 C ConfigSim bloc fonction, 31 R ReceiveSMS bloc fonction, 29 S SendSMS bloc fonction, 27 T Type d'énumération OperationErrorCodesExt, 13 D Dial bloc fonction, 23 F fonctions différences entre une fonction et un bloc fonction, 38 utilisation d'une fonction ou d'un bloc fonction en langage IL, 39 utilisation d'une fonction ou d'un bloc fonction en langage ST, 43 H HangUp bloc fonction, 25 O OperationErrorCodesExt Type d'énumération, 13 EIO0000000491 06/2019 49 EcoStruxure Machine Expert EIO0000002774 12/2019 EcoStruxure Machine Expert MqttHandling Guide de la bibliothèque EIO0000002774.01 12/2019 www.schneider-electric.com Le présent document comprend des descriptions générales et/ou des caractéristiques techniques des produits mentionnés. Il ne peut pas être utilisé pour définir ou déterminer l'adéquation ou la fiabilité de ces produits pour des applications utilisateur spécifiques. Il incombe à chaque utilisateur ou intégrateur de réaliser l'analyse de risques complète et appropriée, l'évaluation et le test des produits pour ce qui est de l'application à utiliser et de l'exécution de cette application. Ni la société Schneider Electric ni aucune de ses sociétés affiliées ou filiales ne peuvent être tenues pour responsables de la mauvaise utilisation des informations contenues dans le présent document. Si vous avez des suggestions, des améliorations ou des corrections à apporter à cette publication, veuillez nous en informer. Vous acceptez de ne pas reproduire, excepté pour votre propre usage à titre non commercial, tout ou partie de ce document et sur quelque support que ce soit sans l'accord écrit de Schneider Electric. Vous acceptez également de ne pas créer de liens hypertextes vers ce document ou son contenu. Schneider Electric ne concède aucun droit ni licence pour l'utilisation personnelle et non commerciale du document ou de son contenu, sinon une licence non exclusive pour une consultation « en l'état », à vos propres risques. Tous les autres droits sont réservés. Toutes les réglementations locales, régionales et nationales pertinentes doivent être respectées lors de l'installation et de l'utilisation de ce produit. Pour des raisons de sécurité et afin de garantir la conformité aux données système documentées, seul le fabricant est habilité à effectuer des réparations sur les composants. Lorsque des équipements sont utilisés pour des applications présentant des exigences techniques de sécurité, suivez les instructions appropriées. La non-utilisation du logiciel Schneider Electric ou d'un logiciel approuvé avec nos produits matériels peut entraîner des blessures, des dommages ou un fonctionnement incorrect. Le non-respect de cette consigne peut entraîner des lésions corporelles ou des dommages matériels. © 2019 Schneider Electric. Tous droits réservés. 2 EIO0000002774 12/2019 Table des matières Consignes de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . A propos de ce manuel. . . . . . . . . . . . . . . . . . . . . . . . . . Partie I Informations générales . . . . . . . . . . . . . . . . . . . . . . . Chapitre 1 Présentation de la bibliothèque . . . . . . . . . . . . . . . . . . . Informations générales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 2 Entrées et sorties communes . . . . . . . . . . . . . . . . . . . . . Fonctionnement des blocs fonction avec l'entrée i_xEnable . . . . . . Fonctionnement des blocs fonction avec l'entrée i_xExecute . . . . . Fonctionnement des blocs fonction avec l'entrée i_xEnable, i_xExecute et i_xErrorQuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . Partie II Types d'unités de données . . . . . . . . . . . . . . . . . . . . Chapitre 3 Énumérations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ET_Result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ET_QualityOfService . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 4 Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ST_Timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ST_SubscribeTopic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ST_MqttServerParameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ST_Credentials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ST_WillMessage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ST_ConnectionSettings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ST_TlsSettings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ST_PublishMessage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Partie III Variables globales . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 5 Liste des constantes globales. . . . . . . . . . . . . . . . . . . . . Liste des constantes globales (GCL). . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 6 Liste des paramètres globaux. . . . . . . . . . . . . . . . . . . . . Liste des paramètres globaux (GPL) . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 7 Liste de variables globales . . . . . . . . . . . . . . . . . . . . . . . Liste de variables globales (GVL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . EIO0000002774 12/2019 5 11 17 19 19 23 24 25 26 29 31 32 34 35 36 37 38 39 39 41 42 43 45 47 47 49 49 51 51 3 Partie IV Unités d'organisation de programme (POU) . . . . . . Chapitre 8 Description du bloc fonction . . . . . . . . . . . . . . . . . . . . . . . FB_MqttClient - Description fonctionnelle . . . . . . . . . . . . . . . . . . . FB_MqttPublish - Description fonctionnelle. . . . . . . . . . . . . . . . . . . FB_MqttSubscribe - Description fonctionnelle . . . . . . . . . . . . . . . . Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 53 55 56 58 61 65 EIO0000002774 12/2019 Consignes de sécurité Informations importantes AVIS Lisez attentivement ces instructions et examinez le matériel pour vous familiariser avec l'appareil avant de tenter de l'installer, de le faire fonctionner, de le réparer ou d'assurer sa maintenance. Les messages spéciaux suivants que vous trouverez dans cette documentation ou sur l'appareil ont pour but de vous mettre en garde contre des risques potentiels ou d'attirer votre attention sur des informations qui clarifient ou simplifient une procédure. EIO0000002774 12/2019 5 REMARQUE IMPORTANTE L'installation, l'utilisation, la réparation et la maintenance des équipements électriques doivent être assurées par du personnel qualifié uniquement. Schneider Electric décline toute responsabilité quant aux conséquences de l'utilisation de ce matériel. Une personne qualifiée est une personne disposant de compétences et de connaissances dans le domaine de la construction, du fonctionnement et de l'installation des équipements électriques, et ayant suivi une formation en sécurité leur permettant d'identifier et d'éviter les risques encourus. QUALIFICATION DU PERSONNEL Une personne qualifiée est une personne qui a les qualifications suivantes : Compétences et connaissances liées à la construction et à l'exploitation d'équipements électriques et à l'installation. Connaissances et expérience en programmation de contrôle industriel. A reçu une formation en sécurité permettant de reconnaître et d'éviter les dangers potentiels. La personne qualifiée doit être capable de détecter d'éventuels dangers qui pourraient découler du paramétrage, de modifications des valeurs de paramétrage et plus généralement des équipements mécaniques, électriques ou électroniques. La personne qualifiée doit connaître les normes, dispositions et régulations liées à la prévention des accidents de travail, et doit les observer lors de la conception et de l'implémentation du système. INSTRUCTIONS D'UTILISATION Ce produit est une bibliothèque à utiliser avec un système de commande et des servoamplificateurs. La bibliothèque n'est conçue qu'en vue d'une utilisation telle que décrite dans la présente documentation, appliquée au secteur industriel. Observez en permanence les instructions applicables liées à la sécurité, les conditions spécifiques et les données techniques. Réalisez une analyse des risques en rapport avec l'utilisation spécifique avant d'utiliser ce produit. Prenez les mesures de sécurité qui découlent des résultats. Étant donné que ce produit est utilisé au sein d'un système qui l'englobe, vous devez assurer la sécurité du personnel par la conception même du système global (la conception de la machine, par exemple). Aucune autre utilisation n'est prévue. Toute autre utilisation pourrait être dangereuse. AVANT DE COMMENCER N'utilisez pas ce produit sur les machines non pourvues de protection efficace du point de fonctionnement. L'absence de ce type de protection sur une machine présente un risque de blessures graves pour l'opérateur. 6 EIO0000002774 12/2019 AVERTISSEMENT EQUIPEMENT NON PROTEGE N'utilisez pas ce logiciel ni les automatismes associés sur des appareils non équipés de protection du point de fonctionnement. N'accédez pas aux machines pendant leur fonctionnement. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Cet automatisme et le logiciel associé permettent de commander des processus industriels divers. Le type ou le modèle d'automatisme approprié pour chaque application dépendra de facteurs tels que la fonction de commande requise, le degré de protection exigé, les méthodes de production, des conditions inhabituelles, la législation, etc. Dans certaines applications, plusieurs processeurs seront nécessaires, notamment lorsque la redondance de sauvegarde est requise. Vous seul, en tant que constructeur de machine ou intégrateur de système, pouvez connaître toutes les conditions et facteurs présents lors de la configuration, de l'exploitation et de la maintenance de la machine, et êtes donc en mesure de déterminer les équipements automatisés, ainsi que les sécurités et verrouillages associés qui peuvent être utilisés correctement. Lors du choix de l'automatisme et du système de commande, ainsi que du logiciel associé pour une application particulière, vous devez respecter les normes et réglementations locales et nationales en vigueur. Le document National Safety Council's Accident Prevention Manual (reconnu aux Etats-Unis) fournit également de nombreuses informations utiles. Dans certaines applications, telles que les machines d'emballage, une protection supplémentaire, comme celle du point de fonctionnement, doit être fournie pour l'opérateur. Elle est nécessaire si les mains ou d'autres parties du corps de l'opérateur peuvent entrer dans la zone de point de pincement ou d'autres zones dangereuses, risquant ainsi de provoquer des blessures graves. Les produits logiciels seuls, ne peuvent en aucun cas protéger les opérateurs contre d'éventuelles blessures. C'est pourquoi le logiciel ne doit pas remplacer la protection de point de fonctionnement ou s'y substituer. Avant de mettre l'équipement en service, assurez-vous que les dispositifs de sécurité et de verrouillage mécaniques et/ou électriques appropriés liés à la protection du point de fonctionnement ont été installés et sont opérationnels. Tous les dispositifs de sécurité et de verrouillage liés à la protection du point de fonctionnement doivent être coordonnés avec la programmation des équipements et logiciels d'automatisation associés. NOTE : La coordination des dispositifs de sécurité et de verrouillage mécaniques/électriques du point de fonctionnement n'entre pas dans le cadre de cette bibliothèque de blocs fonction, du Guide utilisateur système ou de toute autre mise en œuvre référencée dans la documentation. EIO0000002774 12/2019 7 DEMARRAGE ET TEST Avant toute utilisation de l'équipement de commande électrique et des automatismes en vue d'un fonctionnement normal après installation, un technicien qualifié doit procéder à un test de démarrage afin de vérifier que l'équipement fonctionne correctement. Il est essentiel de planifier une telle vérification et d'accorder suffisamment de temps pour la réalisation de ce test dans sa totalité. AVERTISSEMENT RISQUES INHERENTS AU FONCTIONNEMENT DE L'EQUIPEMENT Assurez-vous que toutes les procédures d'installation et de configuration ont été respectées. Avant de réaliser les tests de fonctionnement, retirez tous les blocs ou autres cales temporaires utilisés pour le transport de tous les dispositifs composant le système. Enlevez les outils, les instruments de mesure et les débris éventuels présents sur l'équipement. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Effectuez tous les tests de démarrage recommandés dans la documentation de l'équipement. Conservez toute la documentation de l'équipement pour référence ultérieure. Les tests logiciels doivent être réalisés à la fois en environnement simulé et réel. Vérifiez que le système entier est exempt de tout court-circuit et mise à la terre temporaire non installée conformément aux réglementations locales (conformément au National Electrical Code des Etats-Unis, par exemple). Si des tests diélectriques sont nécessaires, suivez les recommandations figurant dans la documentation de l'équipement afin d'éviter de l'endommager accidentellement. Avant de mettre l'équipement sous tension : Enlevez les outils, les instruments de mesure et les débris éventuels présents sur l'équipement. Fermez le capot du boîtier de l'équipement. Retirez toutes les mises à la terre temporaires des câbles d'alimentation entrants. Effectuez tous les tests de démarrage recommandés par le fabricant. 8 EIO0000002774 12/2019 FONCTIONNEMENT ET REGLAGES Les précautions suivantes sont extraites du document NEMA Standards Publication ICS 7.1-1995 (la version anglaise prévaut) : Malgré le soin apporté à la conception et à la fabrication de l'équipement ou au choix et à l'évaluation des composants, des risques subsistent en cas d'utilisation inappropriée de l'équipement. Il arrive parfois que l'équipement soit déréglé accidentellement, entraînant ainsi un fonctionnement non satisfaisant ou non sécurisé. Respectez toujours les instructions du fabricant pour effectuer les réglages fonctionnels. Les personnes ayant accès à ces réglages doivent connaître les instructions du fabricant de l'équipement et les machines utilisées avec l'équipement électrique. Seuls ces réglages fonctionnels, requis par l'opérateur, doivent lui être accessibles. L'accès aux autres commandes doit être limité afin d'empêcher les changements non autorisés des caractéristiques de fonctionnement. EIO0000002774 12/2019 9 10 EIO0000002774 12/2019 A propos de ce manuel Présentation Objectif du document Ce document décrit la bibliothèque MqttHandling. La bibliothèque MqttHandling fournit la fonctionnalité Client MQTT pour permettre l’échange de données avec d’autres équipements sur le réseau via un serveur de messages MQTT. Champ d'application Ce document a été actualisé pour le lancement d’EcoStruxureTM Machine Expert V1.2. Les caractéristiques techniques des équipements décrits dans ce document sont également fournies en ligne. Pour accéder à ces informations en ligne : Etape Action 1 Accédez à la page d'accueil de Schneider Electric www.schneider-electric.com. 2 Dans la zone Search, saisissez la référence d'un produit ou le nom d'une gamme de produits. N'insérez pas d'espaces dans la référence ou la gamme de produits. Pour obtenir des informations sur un ensemble de modules similaires, utilisez des astérisques (*). 3 Si vous avez saisi une référence, accédez aux résultats de recherche Product Datasheets et cliquez sur la référence qui vous intéresse. Si vous avez saisi une gamme de produits, accédez aux résultats de recherche Product Ranges et cliquez sur la gamme de produits qui vous intéresse. 4 Si plusieurs références s'affichent dans les résultats de recherche Products, cliquez sur la référence qui vous intéresse. 5 Selon la taille de l'écran, vous serez peut-être amené à faire défiler la page pour consulter la fiche technique. 6 Pour enregistrer ou imprimer une fiche technique au format .pdf, cliquez sur Download XXX product datasheet. Les caractéristiques présentées dans ce document devraient être identiques à celles fournies en ligne. Toutefois, en application de notre politique d'amélioration continue, nous pouvons être amenés à réviser le contenu du document afin de le rendre plus clair et plus précis. Si vous constatez une différence entre le document et les informations fournies en ligne, utilisez ces dernières en priorité. EIO0000002774 12/2019 11 Information spécifique au produit AVERTISSEMENT PERTE DE CONTROLE Le concepteur d'un système de commande doit envisager les modes de défaillance possibles des chemins de commande et, pour certaines fonctions de commande critiques, prévoir un moyen d'atteindre un état sécurisé en cas de défaillance d'un chemin, et après cette défaillance. Par exemple, l'arrêt d'urgence, l'arrêt en cas de surcourse, la coupure de courant et le redémarrage sont des fonctions de contrôle cruciales. Des canaux de commande séparés ou redondants doivent être prévus pour les fonctions de commande critique. Les liaisons de communication peuvent faire partie des canaux de commande du système. Soyez particulièrement attentif aux implications des retards de transmission imprévus ou des pannes de liaison. Respectez toutes les réglementations de prévention des accidents ainsi que les consignes de sécurité locales.1 Chaque implémentation de cet équipement doit être testée individuellement et entièrement pour s'assurer du fonctionnement correct avant la mise en service. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. 1 Pour plus d'informations, consultez les documents suivants ou leurs équivalents pour votre site d'installation : NEMA ICS 1.1 (dernière édition), « Safety Guidelines for the Application, Installation, and Maintenance of Solid State Control » (Directives de sécurité pour l'application, l'installation et la maintenance de commande statique) et NEMA ICS 7.1 (dernière édition), « Safety Standards for Construction and Guide for Selection, Installation, and Operation of Adjustable-Speed Drive Systems » (Normes de sécurité relatives à la construction et manuel de sélection, d'installation et d'exploitation de variateurs de vitesse). Avant de tenter de fournir une solution (machine ou processus) pour une application spécifique en utilisant les POU trouvés dans la bibliothèque, vous devez tenir compte de la réalisation et de l'exécution des bonnes pratiques. La liste non exhaustive de ces pratiques liées à cette bibliothèque inclut l'analyse des risques, la sécurité fonctionnelle, la compatibilité des composants, les tests et la validation du système. 12 EIO0000002774 12/2019 AVERTISSEMENT UTILISATION INCORRECTE DES UNITES ORGANISATIONNELLES DU PROGRAMME Effectuez une analyse de la sécurité de l'application et des équipements installés. Vérifiez que les POU sont compatibles avec les équipements du système et n'ont pas d'effets inattendus sur le bon fonctionnement du système. Utilisez les paramètres appropriés, notamment les valeurs limites, et observez l'usure de la machine et son fonctionnement à l'arrêt. Vérifiez que les capteurs et déclencheurs sont compatibles avec les POU sélectionnés. Testez de manière approfondie toutes les fonctions durant la vérification et la mise en service dans tous les modes de fonctionnement. Indiquez des méthodes indépendantes pour les fonctions de commande critiques (arrêt d'urgence, conditions de dépassement des valeurs limites, etc.) en fonction d'une analyse de la sécurité, des règles correspondantes et des réglementations. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. AVERTISSEMENT FONCTIONNEMENT IMPRÉVU DE L'ÉQUIPEMENT N'utilisez que le logiciel approuvé par Schneider Electric pour faire fonctionner cet équipement. Mettez à jour votre programme d'application chaque fois que vous modifiez la configuration matérielle physique. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Les transferts incomplets, qu'il s'agisse de fichiers de données, d'application et/ou de micrologiciel, peuvent avoir des conséquences graves sur votre machine ou votre contrôleur. En cas coupure de courant (volontaire ou non) ou d'interruption de la communication pendant un transfert de fichier, votre machine peut devenir inopérante ou votre application peut tenter d'utiliser un fichier de données endommagé. En cas d'interruption, relancez le transfert. Veillez à inclure l'impact des fichiers de données endommagés dans votre analyse des risques. EIO0000002774 12/2019 13 AVERTISSEMENT FONCTIONNEMENT IMPRÉVU DE L'ÉQUIPEMENT, PERTE DE DONNÉES OU FICHIER ENDOMMAGÉ N'interrompez pas un transfert de données en cours. Si le transfert est interrompu pour une raison quelconque, relancez-le. Ne mettez pas votre machine en service tant que le transfert de fichier n'est pas terminé, sauf si vous avez pris en compte les fichiers endommagés dans votre analyse des risques et si vous avez mis en place des mesures appropriées pour prévenir les conséquences potentiellement graves dues à des échecs de transfert. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. L'utilisation de cette bibliothèque comme outil de contrôle d'une machine nécessite une attention et des dispositions particulières afin d'éviter des conséquences involontaires dues à l'exploitation de la machine commandée, à des changements d'état ou à l'altération de la mémoire de données ou des éléments de fonctionnement de la machine. AVERTISSEMENT FONCTIONNEMENT IMPRÉVU DE L'ÉQUIPEMENT Placer les instruments de l'opérateur du système de commande près de la machine ou à un endroit qui permet d'avoir une vision parfaite de la machine. Protéger les commandes opérateur contre tout accès non autorisé. Si le contrôle à distance est une caractéristique nécessaire de l'application, veiller à ce qu'une personne qualifiée et compétente soit présente sur place pour surveiller le fonctionnement contrôlé à distance. Configurez et installez l'entrée Run/Stop (si elle est présente) ou un autre moyen externe dans l'application, afin que le contrôle local du démarrage ou de l'arrêt de l'équipement puisse être maintenu indépendamment des commandes envoyées à distance à l'équipement. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. 14 EIO0000002774 12/2019 Documents à consulter Titre du document Référence EcoStruxure Machine Expert - Fonctions et bibliothèques - Guide de l'utilisateur EIO0000002829 (ENG) ; EIO0000002830 (FRE) ; EIO0000002831 (GER) ; EIO0000002832 (ITA) ; EIO0000002833 (SPA) ; EIO0000002834 (CHS) ; EcoStruxure Machine Expert - Guide de programmation EIO0000002854 (ENG) ; EIO0000002855 (FRE) ; EIO0000002856 (GER) ; EIO0000002857 (ITA) ; EIO0000002858 (SPA) ; EIO0000002859 (CHS) ; Terminologie utilisée dans les normes Les termes techniques, la terminologie, les symboles et les descriptions correspondantes employés dans ce manuel ou figurant dans ou sur les produits proviennent généralement des normes internationales. Dans les domaines des systèmes de sécurité fonctionnelle, des variateurs et de l'automatisme en général, les termes employés sont sécurité, fonction de sécurité, état sécurisé, défaut, réinitialisation du défaut, dysfonctionnement, panne, erreur, message d'erreur, dangereux, etc. Entre autres, les normes concernées sont les suivantes : Norme Description IEC 61131-2:2007 Automates programmables - Partie 2 : exigences et essais des équipements ISO 13849-1:2015 Sécurité des machines : parties des systèmes de commande relatives à la sécurité. Principes généraux de conception EN 61496-1:2013 Sécurité des machines : équipements de protection électro-sensibles. Partie 1 : Prescriptions générales et essais ISO 12100:2010 Sécurité des machines - Principes généraux de conception - Appréciation du risque et réduction du risque EN 60204-1:2006 Sécurité des machines - Équipement électrique des machines - Partie 1 : règles générales ISO 14119:2013 Sécurité des machines - Dispositifs de verrouillage associés à des protecteurs - Principes de conception et de choix ISO 13850:2015 Sécurité des machines - Fonction d'arrêt d'urgence - Principes de conception IEC 62061:2015 Sécurité des machines - Sécurité fonctionnelle des systèmes de commande électrique, électronique et électronique programmable relatifs à la sécurité EIO0000002774 12/2019 15 Norme Description IEC 61508-1:2010 Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité : prescriptions générales. IEC 61508-2:2010 Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité : exigences pour les systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité. IEC 61508-3:2010 Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité : exigences concernant les logiciels. IEC 61784-3:2016 Réseaux de communication industriels - Profils - Partie 3 : Bus de terrain de sécurité fonctionnelle - Règles générales et définitions de profils. 2006/42/EC Directive Machines 2014/30/EU Directive sur la compatibilité électromagnétique 2014/35/EU Directive sur les basses tensions De plus, des termes peuvent être utilisés dans le présent document car ils proviennent d'autres normes telles que : Norme Description Série IEC 60034 Machines électriques rotatives Série IEC 61800 Entraînements électriques de puissance à vitesse variable Série IEC 61158 Communications numériques pour les systèmes de mesure et de commande – Bus de terrain utilisés dans les systèmes de commande industriels Enfin, le terme zone de fonctionnement utilisé dans le contexte de la description de dangers spécifiques a la même signification que les termes zone dangereuse ou zone de danger employés dans la directive Machines (2006/42/EC) et la norme ISO 12100:2010. NOTE : Les normes susmentionnées peuvent s'appliquer ou pas aux produits cités dans la présente documentation. Pour plus d'informations sur chacune des normes applicables aux produits décrits dans le présent document, consultez les tableaux de caractéristiques de ces références de produit. 16 EIO0000002774 12/2019 EcoStruxure Machine Expert Informations générales EIO0000002774 12/2019 Partie I Informations générales Informations générales Contenu de cette partie Cette partie contient les chapitres suivants : Chapitre Titre du chapitre Page 1 Présentation de la bibliothèque 19 2 Entrées et sorties communes 23 EIO0000002774 12/2019 17 Informations générales 18 EIO0000002774 12/2019 EcoStruxure Machine Expert Description EIO0000002774 12/2019 Chapitre 1 Présentation de la bibliothèque Présentation de la bibliothèque Informations générales Présentation de la bibliothèque La bibliothèque MqttHandling implémente la fonction client MQTT (Message Queuing Telemetry Transport) dans le programme d’application exécuté sur un contrôleur. Le MQTT fournit l’échange de données entre les clients sur le principe publication/abonnement. Le Client MQTT publie des messages (données) sur une rubrique via un Serveur MQTT. Le Serveur MQTT, représenté par un serveur, transfère (publie) les messages publiés aux clients abonnés à la rubrique respective. Cette bibliothèque prend en charge MQTT via une connexion sécurisée en utilisant TLS (Transport Layer Security). Si une connexion qui utilise TLS est prise en charge selon que le contrôleur où FB_TcpClient2 est utilisé. Consultez le manuel spécifique de votre contrôleur pour vérifier si la communication TCP qui utilise TLS est prise en charge. EIO0000002774 12/2019 19 Description Caractéristiques de la bibliothèque Le tableau suivant indique les caractéristiques de la bibliothèque : Caractéristique Valeur Titre de la bibliothèque MqttHandling Société Schneider Electric Catégorie Communication Composant Internet Protocol Suite Espace de noms par défaut SE_MQTT Attribut du modèle de langage qualified-access-only (voir EcoStruxure Machine Bibliothèque post-compatible Expert, Fonctions et bibliothèques - Guide de l'utilisateur) Oui (FCL (voir EcoStruxure Machine Expert, Fonctions et bibliothèques - Guide de l'utilisateur)) NOTE : Cette bibliothèque est paramétrée en Uniquement accès qualifié . Cela signifie que l'on ne peut accéder aux POU, aux structures de données, aux énumérations, et aux constantes qu'en utilisant l'espace de nom de la bibliothèque. L'espace de noms par défaut de la bibliothèque est SE_MQTT. Remarques générales Seules les adresses IP de type IPv4 sont prises en charge pour les fonctions de communication fournies avec cette bibliothèque. Les bibliothèques TcpUdpCommunication (Schneider Electric) et CAA Net Base Services (CAA Technical Workgroup) utilisent les mêmes ressources système sur le contrôleur. Leur utilisation simultanée dans la même application peut perturber le fonctionnement du contrôleur. AVERTISSEMENT FONCTIONNEMENT IMPRÉVU DE L’EQUIPEMENT N'utilisez pas la bibliothèque TcpUdpCommunication (Schneider Electric) avec la bibliothèque CAA Net Base Services (CAA Technical Workgroup) simultanément dans la même application. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. 20 EIO0000002774 12/2019 Description AVERTISSEMENT INCOMPATIBILITE DES DONNEES ECHANGEES Vérifiez que les données échangées sont compatibles car les alignements de structures de données ne sont pas identiques pour tous les équipements. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. NOTE : Schneider Electric respecte les bonnes pratiques de l'industrie, en vigueur dans le développement et la mise en œuvre des systèmes de contrôle. Cette approche, dite de « défense en profondeur », permet de sécuriser les systèmes de contrôle industriels. Elle place les contrôleurs derrière des pare-feu pour restreindre leur accès aux seuls personnels et protocoles autorisés. AVERTISSEMENT ACCÈS NON AUTHENTIFIÉ ET UTILISATION NON AUTORISÉE DE LA MACHINE Estimer si votre environnement ou vos machines sont connecté(e)s à votre infrastructure vitale et, le cas échéant, prendre les mesures nécessaires de prévention, basées sur le principe de défense en profondeur, avant de connecter le système d'automatisme à un réseau quelconque. Limiter au strict nécessaire le nombre d'équipements connectés à un réseau. Isoler votre réseau industriel des autres réseaux au sein de votre société. Protéger chaque réseau contre les accès non autorisés à l'aide d'un pare-feu, d'un VPN ou d'autres mesures de sécurité éprouvées. Surveiller les activités au sein de votre système. Empêcher tout accès direct ou liaison directe aux équipements sensibles par des utilisateurs non autorisés ou des actions non authentifiées. Préparer un plan de récupération intégrant la sauvegarde des informations de votre système et de votre processus. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. EIO0000002774 12/2019 21 Description 22 EIO0000002774 12/2019 EcoStruxure Machine Expert Entrées et sorties communes EIO0000002774 12/2019 Chapitre 2 Entrées et sorties communes Entrées et sorties communes Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Fonctionnement des blocs fonction avec l'entrée i_xEnable Page 24 Fonctionnement des blocs fonction avec l'entrée i_xExecute 25 Fonctionnement des blocs fonction avec l'entrée i_xEnable, i_xExecute et i_xErrorQuit 26 EIO0000002774 12/2019 23 Entrées et sorties communes Fonctionnement des blocs fonction avec l'entrée i_xEnable Informations générales En configurant l’entrée i_xEnable sur TRUE, le bloc fonction lance le processus d’activation. Le bloc fonction poursuit l’initialisation et la sortie q_xActive est définie sur TRUE. Une fois l’initialisation terminée, la sortie q_xReady est définie sur TRUE. En cas de détection d’erreur, la sortie q_xError reste sur TRUE jusqu’à la désactivation du bloc fonction. Exemple 24 EIO0000002774 12/2019 Entrées et sorties communes Fonctionnement des blocs fonction avec l'entrée i_xExecute Informations générales Un front montant sur l'entrée i_xExecute lance l'exécution du bloc fonction. Le bloc fonction poursuit son exécution et la sortie q_xBusy prend la valeur TRUE. Des fronts montants supplémentaires sur l'entrée i_xExecute sont ignorés pendant l'exécution du bloc fonctionnel. A la fin de l'exécution, les sorties q_xDone ou q_xError restent sur TRUE jusqu'à ce que l'entrée i_xExecute prenne la valeur FALSE. Si l'entrée est réinitialisée avant la fin de l'exécution, les sorties q_xDone ou q_xError sont définies sur TRUE pendant un cycle. Exemple EIO0000002774 12/2019 25 Entrées et sorties communes Fonctionnement des blocs fonction avec l'entrée i_xEnable, i_xExecute et i_xErrorQuit Informations générales En configurant l’entrée i_xEnable sur TRUE, le bloc fonction lance le processus d’activation. Le bloc fonction poursuit l’initialisation et la sortie q_xActive est définie sur TRUE. Une fois l’initialisation terminée et le bloc fonction prêt, la sortie q_xReady est définie sur TRUE. Un front montant sur l'entrée i_xExecute lance l'exécution du bloc fonction. Le bloc fonction poursuit son exécution et la sortie q_xBusy prend la valeur TRUE. Un front montant sur l'entrée i_xExecute est ignoré pendant l'exécution du bloc fonction. Une fois l'exécution terminée, les sorties q_xDone ou q_xError sont définies en fonction du résultat. La sortie q_xDone indique une exécution réussie et elle garde la valeur TRUE jusqu'au front montant de l'entrée i_xExecute. Si q_xError indique TRUE, une erreur a été détectée durant l'exécution. Une nouvelle exécution du bloc fonction est impossible tant que l'état d'erreur est présent. Certains messages d'erreur peuvent être redéfinis en utilisant l'entrée i_xErrorQuit. Si l'état d'erreur persiste sur un front montant de i_xErrorQuit, le bloc fonction doit être désactivé pour réinitialiser l'état d'erreur. En configurant l’entrée i_xEnable sur FALSE, le bloc fonction lance le processus de désactivation. L’appel du bloc fonction continue tant que la sortie q_xActive est égale à TRUE. 26 EIO0000002774 12/2019 Entrées et sorties communes Exemple EIO0000002774 12/2019 27 Entrées et sorties communes 28 EIO0000002774 12/2019 EcoStruxure Machine Expert Types d'unités de données EIO0000002774 12/2019 Partie II Types d'unités de données Types d'unités de données Contenu de cette partie Cette partie contient les chapitres suivants : Chapitre Titre du chapitre Page 3 Énumérations 31 4 Structures 35 EIO0000002774 12/2019 29 Types d'unités de données 30 EIO0000002774 12/2019 EcoStruxure Machine Expert Énumérations EIO0000002774 12/2019 Chapitre 3 Énumérations Énumérations Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page ET_Result 32 ET_QualityOfService 34 EIO0000002774 12/2019 31 Énumérations ET_Result Présentation Type : Énumération Disponible à partir de : V1.0.0.0 Description L'énumération ET_Result contient les valeurs possibles qui donnent le résultat des opérations exécutées par les POU de la bibliothèque. Éléments d'énumération Nom Valeur (UINT) Description Si q_xError d'un bloc fonction (voir page 53) est FALSE, l'un des messages d'état suivants apparaît. Disabled 0 Le bloc fonction est désactivé. Disabling 1 Processus de désactivation en cours du bloc fonction. Initializing 2 Initialisation en cours d'une ressource interne. Connecting 4 Une tentative de connexion est en cours, mais aucun résultat n'a été renvoyé pour l'instant. Connected 6 La connexion au serveur est correctement établie. Idle 7 Le bloc fonction est prêt à être exécuté. SendingMessage 9 Envoi de message au serveur. WaitForAcknowledge 10 Attente d’un message d’acquittement du serveur. OK 99 Le bloc fonction a été exécuté. Si le paramètre q_xError d'un bloc fonction (voir page 53) est TRUE, l'un des messages d'état suivants apparaît. InvalidServerIP 100 L'adresse IP indiquée n'est pas valide. InvalidServerPort 102 Le port indiqué n'est pas valide. InvalidUsername 104 Le nom d’utilisateur indiqué n'est pas valide. Il doit être saisi si le mot de passe est défini. InvalidClientID 106 L'identifiant du client indiqué n'est pas valide. Cette information doit être saisie. ConnectFailed 110 La connexion au serveur n’a pas été établie. NotConnected 111 Aucune connexion au serveur. Vérifiez l’état de l’instance FB_MqttClient. 32 EIO0000002774 12/2019 Énumérations Nom Valeur (UINT) Description InvalidTopic 112 La rubrique indiquée n'est pas valide. Cette information doit être saisie. InvalidTopicLenght 114 La longueur de la rubrique indiquée n'est pas valide. Elle ne peut pas être égale à 0. InvalidMessage 116 Le pointeur indiqué sur les données n'est pas valide. Il ne peut pas être une référence nulle. QoSNotSupported 118 La qualité de service indiquée n’est pas prise en charge. Les valeurs prises en charge pour la qualité de service sont 0 et 1. ConnectionRefused 120 La tentative d'établissement d'une connexion a échoué, car elle a été refusée par le système distant. Vérifiez que l'identificateur défini avec le sClientId paramètre (voir page 41) ne dépasse pas la longueur définie avec la constante globale GPL.Gc_uiMaxLengthOfClientID (voir page 49). AlreadySubscribed 122 La rubrique indiquée est déjà souscrite par une autre instance FB_MqttSubscribe. SubscribeFailed 123 L’abonnement à la rubrique indiquée n’a pas été effectué. NumberOfSubscribtionsExceeded 124 Le nombre maximal d’abonnements est atteint. Consultez la valeur Gc_uiMaxNumberOfSubTotal. NumberOfPublishesExceeded 126 Le nombre maximal de publications est atteint. Consultez la valeur Gc_uiMaxNumberOfQoS1PubPerClient. SendingMessageFailed 140 L’opération TCP pour envoyer un message au serveur n’a pas été correctement effectuée. ReceivingMessageFailed 145 L’opération TCP pour recevoir un message du serveur n’a pas été correctement effectuée. ProcessingBufferSizeTooSmall 150 La taille de la mémoire tampon de traitement est insuffisante. Consultez la valeur Gc_uiMaxSizeOfDataToExchange. MqttClientInvalid 160 Référence non valide sur l’instance FB_MqttClient. InvalidBuffer 170 Le pointeur indiqué sur la mémoire tampon n'est pas valide. Il ne peut pas être une référence nulle. NumberOfQos1MessagesExceeded 180 Le nombre maximal de messages non traités est atteint. Consultez la valeur Gc_uiMaxNumberOfQoS1MessagesPerSub. UnsupportedMessageReceived 190 Le message reçu du serveur n’est pas pris en charge. ConnectionInterrupted 200 La connexion au serveur a été interrompue. Timeout 300 Un délai a expiré durant l’exécution. InternalError 999 Une erreur interne a été détectée. EIO0000002774 12/2019 33 Énumérations Utilisé par FB_MqttClient FB_MqttPublish FB_MqttSubscribe ET_QualityOfService Présentation Type : Énumération Disponible à partir de : V1.0.0.0 Description L’énumération ET_QualityOfService définit la qualité de service (QoS) avec laquelle sont envoyés les messages d’application ou les rubriques souscrites. Éléments de l'énumération Nom Valeur (UDINT) Description QoS0 0 Niveau QoS 0 : au maximum une diffusion. Aucune réponse n’est envoyée par le récepteur et aucun nouvel essai n’est effectué par l’expéditeur. QoS1 1 Niveau QoS 1 : au moins une diffusion. A chaque message d’application est attribué un identificateur de paquet unique et la réception doit être acquittée par le récepteur. Utilisé par 34 ST_WillMessage ST_PublishMessage ST_SubscribeTopic EIO0000002774 12/2019 EcoStruxure Machine Expert Structures EIO0000002774 12/2019 Chapitre 4 Structures Structures Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page ST_Timeout 36 ST_SubscribeTopic 37 ST_MqttServerParameter 38 ST_Credentials 39 ST_WillMessage 39 ST_ConnectionSettings 41 ST_TlsSettings 42 ST_PublishMessage 43 EIO0000002774 12/2019 35 Structures ST_Timeout Présentation Type : Structure Disponible à partir de : V1.0.0.0 Hérite de : - Description La structure ST_Timeout contient le paramètre de configuration du délai. Éléments de la structure Nom Type de données Description timTimeout TIME Une fois cette durée écoulée, l'exécution est annulée. Si la valeur est T#0s, la valeur par défaut T#10s est appliquée. timRetransmissionTimeout TIME Une fois cette durée écoulée, une retransmission du message d’acquittement est déclenchée. Si la valeur est T#0s,, la valeur par défaut T#6s est appliquée. Utilisé par 36 FB_MqttPublish FB_MqttSubscribe EIO0000002774 12/2019 Structures ST_SubscribeTopic Présentation Type : Structure Disponible à partir de : V1.0.0.0 Hérite de : - Description La structure ST_SubscribeTopic indique la rubrique publiée. Éléments de la structure Nom Type de données Description pbyTopic POINTER TO BYTE Pointeur vers la variable contenant le nom de la rubrique à laquelle appartiennent les données. uiLengthOfTopic UINT Longueur du nom de la rubrique en octets. NOTE : La longueur ne doit pas être supérieure à la taille de la variable sur laquelle pointe pbyTopic. etQualityOfService ET_QualityOfService Indique la Qualité de service (QoS) avec laquelle est souscrite la rubrique. Utilisé par FB_MqttSubscribe EIO0000002774 12/2019 37 Structures ST_MqttServerParameter Présentation Type : Structure Disponible à partir de : V1.0.0.0 Hérite de : - Description La structure ST_MqttServerParameter contient le paramètre d’établissement d’une connexion TCP sur le Serveur MQTT. Éléments de la structure Nom Type de données Description sIpAddress STRING[15] Adresse IP du Serveur MQTT auquel se connecter. uiPort UINT Adresse du port du Serveur MQTT. Le port par défaut du protocole MQTT est 1883. Utilisé par 38 ST_ConnectionSettings FB_MqttClient EIO0000002774 12/2019 Structures ST_Credentials Présentation Type : Structure Disponible à partir de : V1.0.0.0 Hérite de : - Description La structure ST_Credentials contient les informations d’identification pour autoriser le Client MQTT sur le Serveur MQTT. L’authentification par nom d’utilisateur et mot de passe est optionnelle et dépend de la configuration du serveur. Laissez le champ du nom d’utilisateur vide si l’authentification n’est pas requise. Éléments de la structure Nom Type de données Description sUsername STRING[255] Nom d’utilisateur pour la connexion au Serveur MQTT. sPassword STRING[255] Mot de passe pour la connexion au Serveur MQTT. Utilisé par ST_ConnectSettings FB_MqttClient ST_WillMessage Présentation Type : Structure Disponible à partir de : V1.0.0.0 Hérite de : - Description La structure ST_WillMessage définit le Will message pour la fonction de dernière volonté et testament (last will and testament). EIO0000002774 12/2019 39 Structures Éléments de la structure Nom Type de données Description sTopic STRING[255] Rubrique à laquelle appartient le Will message indiqué. sData STRING[255] Les données Will message qui sont publiées par le Serveur MQTT en cas de déconnexion du client. xRetain BOOL Indique si le Will message doit être conservé sur le Serveur MQTT. etQualityOfService ET_QualityOfService Indique le niveau de qualité de service (QoS) qui doit être utilisé lors de la publication du Will message. Utilisé par 40 ST_ConnectParameter FB_MqttClient EIO0000002774 12/2019 Structures ST_ConnectionSettings Présentation Type : Structure Disponible à partir de : V1.0.0.0 Hérite de : - Description La structure ST_ConnectionSettings contient le paramètre utilisé pour la connexion sur le Serveur MQTT. Éléments de la structure Nom Type de données Description sClientId STRING[255] Identifiant unique du client. uiKeepAlive UINT Paramètre de maintien de connexion active (Keep Alive), intervalle en secondes durant lequel Serveur MQTT prévoit la réception de messages de contrôle. Lorsque la valeur est égale à une fois et demie la valeur de maintien de connexion active, le serveur déconnecte le client. stServerParameter ST_MqttServerParameter Structure pour définir le paramètre d’établissement d’une connexion TCP sur le Serveur MQTT. stCredentials ST_Credentials Structure pour définir les informations d’identification de l’utilisateur. stWillMessage ST_WillMessage Structure pour définir le Will message. stTlsSettings ST_TlsSettings Structure qui définit la configuration TLS (Transport Layer Security). Utilisé par FB_MqttClient EIO0000002774 12/2019 41 Structures ST_TlsSettings Présentation Type : Structure Disponible à partir de : V1.0.0.0 Hérite de : - Description La structure ST_TlsSettings contient le paramètre utilisé pour la connexion au serveur et contient la sécurité TLS (Transport Layer Security). Éléments de la structure Élément Type de données Valeur par défaut Description xUseTls BOOL FALSE Si la valeur est TRUE, la connexion est établie en utilisant TLS. xSendClientCert BOOL FALSE Configurez cet élément sur TRUE si un certificat client est nécessaire. sCertName STRING[255] - Définit le fichier du certificat client. Si la valeur est une chaîne Null, le certificat par défaut du contrôleur est utilisé. Le nom correspond à la valeur « Issued for » du certificat du contrôleur. Le nom peut être obtenu du certificat en utilisant l'écran Security dans Logic Builder. etProtocol TCPUDP.ET_TlsProt TCPUDP.ET_TlsPr otocol otocol.TLSv12 Protocole utilisé pour la connexion sécurisée. Consultez ET_TlsProtocol (voir EcoStruxure Machine Expert, TcpUdpCommunication, Guide de la bibliothèque). etCertVerifyMode TCPUDP.ET_CertVer TCPUDP.ET_CertV ifyMode erifyMode.Trust edOnly Mode pour la vérification du certificat. Consultez ET_CertVerifyMode (voir EcoStruxure Machine Expert, TcpUdpCommunication, Guide de la bibliothèque). 42 EIO0000002774 12/2019 Structures ST_PublishMessage Présentation Type : Structure Disponible à partir de : V1.0.0.0 Hérite de : - Description La structure ST_PublishMessage indique le message de publication. Éléments de la structure Nom Type de données Description pbyTopic POINTER TO BYTE Pointeur vers la variable contenant le nom de la rubrique à laquelle appartiennent les données. uiLengthOfTopic UINT Longueur du nom de la rubrique en octets. NOTE : La longueur ne doit pas être supérieure à la taille de la variable sur laquelle pointe pbyTopic. pbyData POINTER TO BYTE Pointeur vers la variable contenant les données à inclure dans le message d’application publié via le Serveur MQTT pour les clients avec abonnements appropriés. uiLengthOfData UINT Longueur des données à inclure dans le message d’application en octets. NOTE : La longueur ne doit pas être supérieure à la taille de la variable sur laquelle pointe pbyTopic. BOOL xRetain Indique si le message d’application doit être conservé sur le Serveur MQTT. etQualityOfService ET_QualityOfService Indique la Qualité de service (QoS) avec laquelle est envoyé le message d’application. Utilisé par FB_MqttPublish EIO0000002774 12/2019 43 Structures 44 EIO0000002774 12/2019 EcoStruxure Machine Expert Variables globales EIO0000002774 12/2019 Partie III Variables globales Variables globales Contenu de cette partie Cette partie contient les chapitres suivants : Chapitre Titre du chapitre Page 5 Liste des constantes globales 47 6 Liste des paramètres globaux 49 7 Liste de variables globales 51 EIO0000002774 12/2019 45 Variables globales 46 EIO0000002774 12/2019 EcoStruxure Machine Expert Liste des constantes globales EIO0000002774 12/2019 Chapitre 5 Liste des constantes globales Liste des constantes globales Liste des constantes globales (GCL) Présentation Type : Constantes globales Disponible à partir de : V1.0.0.0 Description La liste des constantes globales contient les constantes globales de la bibliothèque MqttHandling. Constantes globales Variable Type de données Gc_sLibraryVersion STRING[80] Valeur Description (1) Vx.x.x.0 Version de la bibliothèque (1) Cette valeur varie selon la version de la bibliothèque. EIO0000002774 12/2019 47 Liste des constantes globales 48 EIO0000002774 12/2019 EcoStruxure Machine Expert Liste des paramètres globaux EIO0000002774 12/2019 Chapitre 6 Liste des paramètres globaux Liste des paramètres globaux Liste des paramètres globaux (GPL) Présentation Type : Paramètres globaux Disponible à partir de : V1.0.0.0 Description La liste des paramètres globaux (GPL) contient les constantes globales utilisées par certains composants de la bibliothèque. Il est possible de modifier un à un les paramètres pour chaque application dans laquelle la bibliothèque est utilisée. Les modifications doivent être apportées dans le gestionnaire de bibliothèques du projet référençant la bibliothèque. Paramètres globaux Variable Type de Valeur Plage données par défaut Gc_uiMaxNumberOfBytesToExchange UDINT Gc_uiMaxNumberOfMessagesToHandlePerCycle UINT Gc_uiMaxNumberOfQoS1PublishPerClient EIO0000002774 12/2019 UDINT Description 1 000 100 à La valeur indique la somme 1 000 000 de la taille maximale d’un message d’application e octets. Cette valeur prend en compte, outre les données de rubriques et d’applications, également la surcharge requise par le protocole MQTT. 20 1 à 100 La valeur indique le nombre maximal de messages reçus que le Client MQTT doit traiter dans un cycle. 25 1 à 50 La valeur indique le nombre maximal de messages publiés simultanément avec QoS1 par client. 49 Liste des paramètres globaux Variable Type de Valeur Plage données par défaut Description Gc_uiMaxNumberOfSubscribePerClient UINT 25 1 à 100 La valeur indique le nombre maximal de rubriques souscrites par client. Gc_uiMaxNumberOfSubscribeTotal UINT 100 10 à 5 000 La valeur indique le nombre maximal de rubriques souscrites dans l’application. Gc_uiMaxNumberOfQoS1MessagesPerSubscribe UINT 10 1 à 50 UINT 23 23 à 2000 La valeur indique la longueur maximale de l'identificateur du client. Gc_uiMaxLengthOfClientID 50 La valeur indique le nombre maximal de messages reçus et non traités avec QoS1 par rubrique souscrite. EIO0000002774 12/2019 EcoStruxure Machine Expert Liste de variables globales EIO0000002774 12/2019 Chapitre 7 Liste de variables globales Liste de variables globales Liste de variables globales (GVL) Présentation Type : Variables globales Disponible à partir de : V1.0.0.0 Description La liste des variables globales contient les variables globales de la bibliothèque. Variables globales Variable Type de données Valeur par défaut Description Gc_xOnlineChangeAllowed BOOL FALSE Si TRUE, la détection des modifications en ligne est correctement initialisée. Exécute une modification en ligne lorsque le POU est occupé uniquement si Gc_xOnlineChangeAllowed = TRUE. EIO0000002774 12/2019 51 Liste de variables globales 52 EIO0000002774 12/2019 EcoStruxure Machine Expert Unités d'organisation de programme (POU) EIO0000002774 12/2019 Partie IV Unités d'organisation de programme (POU) Unités d'organisation de programme (POU) EIO0000002774 12/2019 53 Unités d'organisation de programme (POU) 54 EIO0000002774 12/2019 EcoStruxure Machine Expert Description du bloc fonction EIO0000002774 12/2019 Chapitre 8 Description du bloc fonction Description du bloc fonction Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page FB_MqttClient - Description fonctionnelle 56 FB_MqttPublish - Description fonctionnelle 58 FB_MqttSubscribe - Description fonctionnelle 61 EIO0000002774 12/2019 55 Description du bloc fonction FB_MqttClient - Description fonctionnelle Présentation Type : Bloc fonction Disponible à partir de : V1.0.0.0 Description fonctionnelle Le bloc fonctionnel FB_MqttClient permet d’établir une connexion avec le Serveur MQTT défini. La connexion est initialisée sur un front montant de l’entre i_xEnable. La sortie q_xActive indique que le bloc fonction est en cours d’exécution et doit être appelé de façon cyclique. L’état de la connexion est indiqué par la sortie q_xReady. Si cette entrée est TRUE, le client est connecté. Si l’entrée i_xEnable est définie sur FALSE lorsque l’établissement de la connexion est en cours, le processus est annulé. Si l’entrée i_xEnable est définie sur FALSE et que la connexion est active, celle-ci est fermée en tant que session de nettoyage. Cela signifie que les abonnements actifs appartenant à cet identifiant client sont effacés sur le Serveur MQTT. Après l’établissement de la connexion, le bloc fonction gère les messages reçus du serveur en arrière plan. Par conséquent, le bloc fonction doit être appelé de façon cyclique après l’établissement de la connexion Interface Entrée Type de données Description i_xEnable BOOL Le bloc fonction établit une connexion avec le Serveur MQTT sur un front montant de cette entrée. Si l’entrée est définie sur FALSE, le bloc fonction est réinitialisé et la connexion existante est fermée ou l’établissement de la connexion est annulé. Consultez Fonctionnement des blocs fonction avec l’entrée i_xEnable (voir page 24). i_stConnectionSettings ST_ConnectionSettings Structure pour transférer le paramètre de connexion. 56 EIO0000002774 12/2019 Description du bloc fonction Entrée Type de données Description i_timTimeout TIME Intervalle de temps durant lequel une connexion doit être établie. Si la valeur est T#0 s, la valeur par défaut T#10 s est appliquée. Sortie Type de données Description q_xActive BOOL Indique que l’exécution du bloc fonction est active. Tant que cette sortie est TRUE, le bloc fonction doit être exécuté de façon cyclique. q_xReady BOOL Indique que la connexion est établie. Le Client MQTT est prêt pour l’échange de messages d’application avec le Serveur MQTT. q_xError BOOL Si cette sortie est TRUE, une erreur a été détectée. Pour plus d'informations, reportez-vous à q_etResult et q_etResultMsg. q_xTlsUsed BOOL Indique si la connexion à Serveur MQTT est sécurisée via TLS (Transport Layer Security). q_etResult ET_Result Fournit des informations de diagnostic et d'état sous la forme d'une valeur numérique. q_sResultMsg STRING [80] Fournit des informations de diagnostic et d'état sous la forme d'un message textuel. EIO0000002774 12/2019 57 Description du bloc fonction FB_MqttPublish - Description fonctionnelle Présentation Type : Bloc fonction Disponible à partir de : V1.0.0.0 Description fonctionnelle Le bloc fonction FB_MqttPublish permet de publier un message d’application dans une rubrique définie sur le Serveur MQTT. Un message de publication est envoyé via la connexion précédemment établie entre le Client MQTT et le Serveur MQTT. Si le client n’est pas connecté, l’exécution du bloc fonction est annulée sans envoi de message. Si le client est bloqué par d’autres processus, le bloc fonction reste à l’état occupé. Les messages sont envoyés lorsque le client est à nouveau disponible. Qualité de service Niveau de publication Description QoS 0 Le message publié est envoyé au serveur, lequel n’acquitte pas le message. Le bloc fonction indique q_xDone = TRUE dès que le message est envoyé. QoS 1 Le message publié est envoyé au serveur, lequel doit acquitter le message avec un message PUBACK. Le bloc fonction indique q_xDone = TRUE dès que le message PUBACK est reçu. Si aucun message PUBACK n’est reçu, une retransmission du message publié est envoyée. L’intervalle de temps de la retransmission peut être configurée configured (voir page 58). Interface Entrée Type de données Description i_xExecute BOOL Le bloc fonction publie les messages d’application définis via le Serveur MQTT connecté sur un front montant de cette entrée. Consultez Fonctionnement des blocs fonction avec l’entrée i_xExecute (voir page 25). 58 EIO0000002774 12/2019 Description du bloc fonction Entrée Type de données Description i_stPublishMessage ST_PublishMessage Structure pour définir le message d’application à publier. i_stTimeout ST_Timeout Structure pour définir les délais. Entrée/sortie Type de données Description iq_fbMqttClient FB_MqttClient Référence au FB_MqttClient associé utilisé pour l’échange de données avec le Serveur MQTT. Sortie Type de données Description q_xDone BOOL Indique que la publication du message d’application a été correctement effectuée. q_xBusy BOOL Indique que la publication du message d’application est en cours. q_xError BOOL Indique qu’une erreur a été détectée durant la publication du message d’application. q_etResult ET_Result Fournit des informations de diagnostic et d'état sous la forme d'une valeur numérique. q_sResultMsg STRING [80] Fournit des informations de diagnostic et d'état sous la forme d'un message textuel. Utilisation des variables de type POINTER TO … ou REFERENCE TO … Le bloc fonction fournit des entrées et/ou des entrées/sorties de type POINTER TO… ou REFENCE TO…. En utilisant ce type de pointeur ou référence, le bloc fonction a accès à la zone de mémoire adressée. En cas de modification en ligne, les zones de mémoire peuvent être déplacées aux nouvelles adresses et par conséquent un pointeur ou une référence peut devenir non valide. Pour éviter les erreurs liées à des pointeurs non valides, les variables de type POINTER TO… ou REFERENCE TO… doivent être mises à jour régulièrement, au moins au début du cycle où elles sont utilisées. ATTENTION POINTEUR NON VALIDE Vérifiez la validité des pointeurs lors de leur utilisation sur les adresses et de l'exécution de la commande Changement en ligne. Le non-respect de ces instructions peut provoquer des blessures ou des dommages matériels. EIO0000002774 12/2019 59 Description du bloc fonction Diagramme de séquence UML (Unified Modeling Language) Le diagramme de séquence UML ci-dessous illustre l’interaction avec le bloc fonction FB_MqttClient, qui doit être appelé de façon cyclique pour traiter les messages reçus et détecter une éventuelle interruption de la communication avec le serveur. NOTE : Le diagramme illustre un processus de publication correctement effectué, sans aucune erreur à traiter. 60 EIO0000002774 12/2019 Description du bloc fonction FB_MqttSubscribe - Description fonctionnelle Présentation Type : Bloc fonction Disponible à partir de : V1.0.0.0 Description fonctionnelle Le bloc fonction FB_MqttSubscribe permet de gérer un abonnement à une rubrique spécifique sur le Serveur MQTT. Les fonctions suivantes sont prises en charge : Abonnement à la rubrique spécifique Désabonnement de la rubrique spécifique Lecture des données en fonction de la rubrique souscrite Le bloc fonction utilise la connexion au Serveur MQTT qui a été précédemment établie avec le FB_MqttClient. Après l’activation du bloc fonction, l’abonnement à la rubrique indiquée est envoyé au Serveur MQTT connecté. L’état de l’abonnement (et donc la possibilité de recevoir des données) est indiqué par la sortie q_xReady. Les nouvelles données reçues sont indiquées par la sortie q_xNewMessage. La désactivation du bloc fonction entraîne l’envoi du désabonnement à la rubrique précédemment souscrite. L’état du désabonnement est indiqué par la sortie q_xActive. Un nouvel abonnement est autorisé uniquement si la sortie q_xActive est définie sur FALSE. Une fois que l’abonnement à une rubrique est effectué, les données reçues dans cette rubrique peuvent être lues en configurant la commande i_xExecute sur TRUE. EIO0000002774 12/2019 61 Description du bloc fonction Qualité de service Niveau d’abonnement Description QoS0 Les dernières données de la rubrique souscrite peuvent être lues. QoS1 Les messages publiés avec QoS 1 peuvent être lus. La séquence de messages reste inchangée (FIFO : First In, First Out - Premier entré, Premier sorti) Le premier message reçu est stocké dans le bloc fonction FB_MqttSubscribe. Il peut être lu immédiatement en déclenchant l’exécution du bloc fonction. Après réception du premier message, le bloc fonction est prêt à recevoir le message suivant. Si le message a déjà été envoyé par le Serveur MQTT, le bloc fonction attend le doublon. Le délai d’envoi du message suivant par le bloc fonction dépend du délai d’envoi du doublon par le serveur. Si Mosquitto est utilisé comme Serveur MQTT, ce délai peut être de 30 secondes. Le dernier message avec QoS 0 peut être lu si les messages QoS 1 précédemment envoyés par le Serveur MQTT ont été reçus et déjà lus. Le message QoS 0 reçu peut être remplacé par un nouveau message à tout moment. Interface Entrée Type de données Description i_xEnable BOOL Le bloc fonction envoie un abonnement à la rubrique définie au Serveur MQTT connecté sur un front montant de cette entrée. Consultez Fonctionnement des blocs fonction avec les entrées i_xExecute et i_xEnable (voir page 26). i_stSubscribeTopic ST_SubscribeTopic Structure pour définir la rubrique à souscrire. i_xExecute BOOL Le bloc fonction lit le dernier message d’application reçu à la rubrique souscrite sur un front montant de cette entrée. Consultez Fonctionnement des blocs fonction avec les entrées i_xExecute et i_xEnable (voir page 26). i_xErrorQuit BOOL Le bloc fonction acquitte une erreur détectée indiquée par q_xError sur un front montant de cette entrée. i_pbyBuffer POINTER TO BYTE Pointeur sur la mémoire tampon où est copié le message reçu. i_udiBufferSize UDINT Taille du tampon en octets. NOTE : La longueur ne doit pas être supérieure à la taille de la variable sur laquelle pointe i_pbyBuffer. i_stTimeout 62 ST_Timeout Structure pour définir les délais. EIO0000002774 12/2019 Description du bloc fonction Entrée/sortie Type de données Description iq_fbMqttClient FB_MqttClient Référence au FB_MqttClient associé utilisé pour l’échange de données avec le Serveur MQTT. Sortie Type de données Description q_xActive BOOL Indique que l’exécution du bloc fonction est active. Tant que cette sortie est TRUE, le bloc fonction doit être exécuté de façon cyclique. q_xReady BOOL Indique que l’abonnement à la rubrique définie a bien été envoyé au Serveur MQTT. q_xDone BOOL Indique que le dernier message d'application a été copié dans la mémoire tampon indiquée avec l'entrée i_pbyBuffer. q_xBusy BOOL Indique que l’abonnement est en cours. q_xError BOOL Indique qu’une erreur a été détectée durant l’exécution du bloc fonction. q_etResult ET_Result Fournit des informations de diagnostic et d'état sous la forme d'une valeur numérique. q_sResultMsg STRING [80] Fournit des informations de diagnostic et d'état sous la forme d'un message textuel. q_xNewMessageAvailable BOOL Indique qu’un nouveau message d’application à la rubrique souscrite est disponible. q_udiMessageLength UDINT Indique que le nombre d’octets copiés dans la mémoire tampon est défini avec l’entrée i_pbyBuffer. q_xTruncated BOOL Si la sortie est définie sur TRUE, le message d’application copié a été tronqué. Utilisation des variables de type POINTER TO … ou REFERENCE TO … Le bloc fonction fournit des entrées et/ou des entrées/sorties de type POINTER TO… ou REFENCE TO…. En utilisant ce type de pointeur ou référence, le bloc fonction a accès à la zone de mémoire adressée. En cas de modification en ligne, les zones de mémoire peuvent être déplacées aux nouvelles adresses et par conséquent un pointeur ou une référence peut devenir non valide. Pour éviter les erreurs liées à des pointeurs non valides, les variables de type POINTER TO… ou REFERENCE TO… doivent être mises à jour régulièrement, au moins au début du cycle où elles sont utilisées. EIO0000002774 12/2019 63 Description du bloc fonction ATTENTION POINTEUR NON VALIDE Vérifiez la validité des pointeurs lors de leur utilisation sur les adresses et de l'exécution de la commande Changement en ligne. Le non-respect de ces instructions peut provoquer des blessures ou des dommages matériels. Diagramme de séquence UML (Unified Modeling Language) Le diagramme de séquence UML ci-dessous illustre l’interaction avec le bloc fonction FB_MqttClient, qui doit être appelé de façon cyclique pour traiter les messages reçus et détecter une éventuelle interruption de la communication avec le serveur. NOTE : Le diagramme illustre un processus d’abonnement correctement effectué, sans aucune erreur à traiter. 64 EIO0000002774 12/2019 EcoStruxure Machine Expert Index EIO0000002774 12/2019 Index E entrées et sorties communes fonctionnement des blocs fonction avec l'entrée i_xEnable, 24 fonctionnement des blocs fonction avec l'entrée i_xEnable, i_xExecute, et i_xErrorQuit, 26 fonctionnement des blocs fonction avec l'entrée i_xExecute, 25 ET_QualityOfService, 34 EIO0000002774 12/2019 ET_Result, 32 AlreadySubscribed, 33 Connected, 32 ConnectFailed, 32 Connecting, 32 ConnectionInterrupted, 33 ConnectionRefused, 33 Disabled, 32 Disabling, 32 Idle, 32 Initializing, 32 InternalError, 33 InvalidBuffer, 33 InvalidClientID, 32 InvalidMessage, 33 InvalidServerIP, 32 InvalidServerPort, 32 InvalidTopic, 33 InvalidTopicLenght, 33 InvalidUsername, 32 MqttClientInvalid, 33 NotConnected, 32 NumberOfPublishesExceeded, 33 NumberOfQos1MessagesExceeded, 33 NumberOfSubscribtionsExceeded, 33 OK, 32 ProcessingBufferSizeTooSmall, 33 QoS0, 34 QoS1, 34 QoSNotSupported, 33 ReceivingMessageFailed, 33 SendingMessage, 32 SendingMessageFailed, 33 SubscribeFailed, 33 Timeout, 33 UnsupportedMessageReceived, 33 WaitForAcknowledge, 32 65 Index F FB_MqttClient, 56 FB_MqttPublish, 58 FB_MqttSubscribe, 61 G GCL (liste des constantes globales) MqttHandling, 47 GPL MqttHandling, 49 GVL (Global Variables List), 51 M MqttHandling, 19 GCL (liste des constantes globales), 47 GPL, 49 S ST_ConnectionSettings, 41 ST_Credentials, 39 ST_MqttServerParameter, 38 ST_PublishMessage, 43 ST_SubscribeTopic, 37 ST_Timeout, 36 ST_TlsSettings, 42 ST_WillMessage, 39 66 EIO0000002774 12/2019 EcoStruxure Machine Expert OpcUaHandling Guide de la bibliothèque EIO0000004022.01 03/2021 www.se.com Mentions légales La marque Schneider Electric et toutes les marques de commerce de Schneider Electric SE et de ses filiales mentionnées dans ce guide sont la propriété de Schneider Electric SE ou de ses filiales. Toutes les autres marques peuvent être des marques de commerce de leurs propriétaires respectifs. Ce guide et son contenu sont protégés par les lois sur la propriété intellectuelle applicables et sont fournis à titre d'information uniquement. Aucune partie de ce guide ne peut être reproduite ou transmise sous quelque forme ou par quelque moyen que ce soit (électronique, mécanique, photocopie, enregistrement ou autre), à quelque fin que ce soit, sans l'autorisation écrite préalable de Schneider Electric. Schneider Electric n'accorde aucun droit ni aucune licence d'utilisation commerciale de ce guide ou de son contenu, sauf dans le cadre d'une licence non exclusive et personnelle, pour le consulter tel quel. Les produits et équipements Schneider Electric doivent être installés, utilisés et entretenus uniquement par le personnel qualifié. Les normes, spécifications et conceptions sont susceptibles d'être modifiées à tout moment. Les informations contenues dans ce guide peuvent faire l'objet de modifications sans préavis. Dans la mesure permise par la loi applicable, Schneider Electric et ses filiales déclinent toute responsabilité en cas d'erreurs ou d'omissions dans le contenu informatif du présent document ou pour toute conséquence résultant de l'utilisation des informations qu'il contient. © 2021 Schneider Electric. Tous droits réservés. OpcUaHandling Table des matières Consignes de sécurité ................................................................................5 QUALIFICATION DU PERSONNEL .......................................................5 INSTRUCTIONS D'UTILISATION ..........................................................6 Avant de commencer ............................................................................6 Démarrage et test .................................................................................7 Fonctionnement et réglages ..................................................................8 A propos de ce manuel ...............................................................................9 Informations générales ............................................................................15 Présentation de la bibliothèque..................................................................16 Informations générales........................................................................16 Entrées et sorties communes ....................................................................19 Fonctionnement des blocs fonction avec l'entrée Execute ......................19 Types d'unités de données ......................................................................20 Énumérations...........................................................................................21 ET_Result ..........................................................................................21 ET_VarType .......................................................................................23 UAAttributeID .....................................................................................24 UABrowseDirection.............................................................................25 UAConnectionStatus...........................................................................26 UAIdentifierType .................................................................................26 UAMonitoringSyncMode......................................................................27 UASecurityMsgMode ..........................................................................27 UASecurityPolicy ................................................................................28 UAServerState ...................................................................................28 UATransportProfile..............................................................................29 UAUserIdentityTokenType ...................................................................29 Structures ................................................................................................31 ST_Variable .......................................................................................31 UABrowseDescription .........................................................................32 UABrowsePath ...................................................................................32 UAExpandedNodeID...........................................................................33 UAIndexRange ...................................................................................33 UALocalizedText.................................................................................34 UAMonitoredVariables ........................................................................35 UAMonitoringParameter ......................................................................35 UANodeAdditionalInfo.........................................................................36 UANodeID..........................................................................................37 UANodeInformation ............................................................................37 UAQualifiedName ...............................................................................39 UAReferenceDescription .....................................................................40 UARelativePath ..................................................................................40 UARelativePathElement ......................................................................41 UASessionConnectInfo .......................................................................41 UAUserIdentityToken ..........................................................................43 Alias ........................................................................................................44 UABrowseResultMask ........................................................................44 UADeadbandType ..............................................................................44 UANodeClassMask.............................................................................45 EIO0000004022.01 3 OpcUaHandling Variables globales .....................................................................................46 Liste des constantes globales ....................................................................47 Liste des constantes globales (GCL) ....................................................47 Liste des paramètres globaux ....................................................................48 Liste des paramètres globaux (GPL) ....................................................48 Unités d'organisation de programme (POU).........................................49 Description du bloc fonction.......................................................................50 Informations générales sur les blocs fonction ........................................50 UA_Browse - Description fonctionnelle .................................................55 UA_Connect - Description fonctionnelle................................................56 UA_ConnectionGetStatus - Description fonctionnelle ............................57 UA_Disconnect - Description fonctionnelle............................................59 UA_MonitoredItemAddList - Description fonctionnelle............................60 UA_MonitoredItemOperateList - Description fonctionnelle......................62 UA_MonitoredItemRemoveList - Description fonctionnelle .....................63 UA_NamespaceGetIndexList - Description fonctionnelle........................64 UA_NodeGetHandleList - Description fonctionnelle ...............................65 UA_NodeGetInformation - Description fonctionnelle ..............................66 UA_NodeReleaseHandleList - Description fonctionnelle ........................67 UA_ReadList - Description fonctionnelle ...............................................68 UA_SubscriptionCreate - Description fonctionnelle................................70 UA_SubscriptionDelete - Description fonctionnelle ................................72 UA_SubscriptionProcessed - Description fonctionnelle ..........................72 UA_TranslatePathList - Description fonctionnelle ..................................74 UA_WriteList - Description fonctionnelle ...............................................75 Fonctions.................................................................................................77 FC_Et•••ToString ................................................................................77 Glossaire ....................................................................................................79 Index ...........................................................................................................81 4 EIO0000004022.01 Consignes de sécurité OpcUaHandling Consignes de sécurité Informations importantes Lisez attentivement ces instructions et examinez le matériel pour vous familiariser avec l'appareil avant de tenter de l'installer, de le faire fonctionner, de le réparer ou d'assurer sa maintenance. Les messages spéciaux suivants que vous trouverez dans cette documentation ou sur l'appareil ont pour but de vous mettre en garde contre des risques potentiels ou d'attirer votre attention sur des informations qui clarifient ou simplifient une procédure. La présence de ce symbole sur une étiquette “Danger” ou “Avertissement” signale un risque d'électrocution qui provoquera des blessures physiques en cas de non-respect des consignes de sécurité. Ce symbole est le symbole d'alerte de sécurité. Il vous avertit d'un risque de blessures corporelles. Respectez scrupuleusement les consignes de sécurité associées à ce symbole pour éviter de vous blesser ou de mettre votre vie en danger. ! DANGER DANGER signale un risque qui, en cas de non-respect des consignes de sécurité, provoque la mort ou des blessures graves. ! AVERTISSEMENT AVERTISSEMENT signale un risque qui, en cas de non-respect des consignes de sécurité, peut provoquer la mort ou des blessures graves. ! ATTENTION ATTENTION signale un risque qui, en cas de non-respect des consignes de sécurité, peut provoquer des blessures légères ou moyennement graves. AVIS AVIS indique des pratiques n'entraînant pas de risques corporels. Remarque Importante L'installation, l'utilisation, la réparation et la maintenance des équipements électriques doivent être assurées par du personnel qualifié uniquement. Schneider Electric décline toute responsabilité quant aux conséquences de l'utilisation de ce matériel. Une personne qualifiée est une personne disposant de compétences et de connaissances dans le domaine de la construction, du fonctionnement et de l'installation des équipements électriques, et ayant suivi une formation en sécurité leur permettant d'identifier et d'éviter les risques encourus. QUALIFICATION DU PERSONNEL Une personne qualifiée est une personne qui a les qualifications suivantes : EIO0000004022.01 • Compétences et connaissances liées à la construction et à l'exploitation d'équipements électriques et à l'installation. • Connaissances et expérience en programmation de contrôle industriel. 5 OpcUaHandling Consignes de sécurité • A reçu une formation en sécurité permettant de reconnaître et d'éviter les dangers potentiels. La personne qualifiée doit être capable de détecter d'éventuels dangers qui pourraient découler du paramétrage, de modifications des valeurs de paramétrage et plus généralement des équipements mécaniques, électriques ou électroniques. La personne qualifiée doit connaître les normes, dispositions et régulations liées à la prévention des accidents de travail, et doit les observer lors de la conception et de l'implémentation du système. INSTRUCTIONS D'UTILISATION Ce produit est une bibliothèque à utiliser avec un système de commande et des servo-amplificateurs. La bibliothèque n'est conçue qu'en vue d'une utilisation telle que décrite dans la présente documentation, appliquée au secteur industriel. Observez en permanence les instructions applicables liées à la sécurité, les conditions spécifiques et les données techniques. Réalisez une analyse des risques en rapport avec l'utilisation spécifique avant d'utiliser ce produit. Prenez les mesures de sécurité qui découlent des résultats. Étant donné que ce produit est utilisé au sein d'un système qui l'englobe, vous devez assurer la sécurité du personnel par la conception même du système global (la conception de la machine, par exemple). Aucune autre utilisation n'est prévue. Toute autre utilisation pourrait être dangereuse. Avant de commencer N'utilisez pas ce produit sur les machines non pourvues de protection efficace du point de fonctionnement. L'absence de ce type de protection sur une machine présente un risque de blessures graves pour l'opérateur. AVERTISSEMENT EQUIPEMENT NON PROTEGE • N'utilisez pas ce logiciel ni les automatismes associés sur des appareils non équipés de protection du point de fonctionnement. • N'accédez pas aux machines pendant leur fonctionnement. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Cet automatisme et le logiciel associé permettent de commander des processus industriels divers. Le type ou le modèle d'automatisme approprié pour chaque application dépendra de facteurs tels que la fonction de commande requise, le degré de protection exigé, les méthodes de production, des conditions inhabituelles, la législation, etc. Dans certaines applications, plusieurs processeurs seront nécessaires, notamment lorsque la redondance de sauvegarde est requise. Vous seul, en tant que constructeur de machine ou intégrateur de système, pouvez connaître toutes les conditions et facteurs présents lors de la configuration, de l'exploitation et de la maintenance de la machine, et êtes donc en mesure de déterminer les équipements automatisés, ainsi que les sécurités et verrouillages associés qui peuvent être utilisés correctement. Lors du choix de l'automatisme et du système de commande, ainsi que du logiciel associé pour une application particulière, vous devez respecter les normes et réglementations locales et nationales en vigueur. Le document National Safety Council's Accident Prevention Manual (reconnu aux Etats-Unis) fournit également de nombreuses informations utiles. 6 EIO0000004022.01 Consignes de sécurité OpcUaHandling Dans certaines applications, telles que les machines d'emballage, une protection supplémentaire, comme celle du point de fonctionnement, doit être fournie pour l'opérateur. Elle est nécessaire si les mains ou d'autres parties du corps de l'opérateur peuvent entrer dans la zone de point de pincement ou d'autres zones dangereuses, risquant ainsi de provoquer des blessures graves. Les produits logiciels seuls, ne peuvent en aucun cas protéger les opérateurs contre d'éventuelles blessures. C'est pourquoi le logiciel ne doit pas remplacer la protection de point de fonctionnement ou s'y substituer. Avant de mettre l'équipement en service, assurez-vous que les dispositifs de sécurité et de verrouillage mécaniques et/ou électriques appropriés liés à la protection du point de fonctionnement ont été installés et sont opérationnels. Tous les dispositifs de sécurité et de verrouillage liés à la protection du point de fonctionnement doivent être coordonnés avec la programmation des équipements et logiciels d'automatisation associés. NOTE: La coordination des dispositifs de sécurité et de verrouillage mécaniques/électriques du point de fonctionnement n'entre pas dans le cadre de cette bibliothèque de blocs fonction, du Guide utilisateur système ou de toute autre mise en œuvre référencée dans la documentation. Démarrage et test Avant toute utilisation de l'équipement de commande électrique et des automatismes en vue d'un fonctionnement normal après installation, un technicien qualifié doit procéder à un test de démarrage afin de vérifier que l'équipement fonctionne correctement. Il est essentiel de planifier une telle vérification et d'accorder suffisamment de temps pour la réalisation de ce test dans sa totalité. AVERTISSEMENT RISQUES INHERENTS AU FONCTIONNEMENT DE L'EQUIPEMENT • Assurez-vous que toutes les procédures d'installation et de configuration ont été respectées. • Avant de réaliser les tests de fonctionnement, retirez tous les blocs ou autres cales temporaires utilisés pour le transport de tous les dispositifs composant le système. • Enlevez les outils, les instruments de mesure et les débris éventuels présents sur l'équipement. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Effectuez tous les tests de démarrage recommandés dans la documentation de l'équipement. Conservez toute la documentation de l'équipement pour référence ultérieure. Les tests logiciels doivent être réalisés à la fois en environnement simulé et réel Vérifiez que le système entier est exempt de tout court-circuit et mise à la terre temporaire non installée conformément aux réglementations locales (conformément au National Electrical Code des Etats-Unis, par exemple). Si des tests diélectriques sont nécessaires, suivez les recommandations figurant dans la documentation de l'équipement afin d'éviter de l'endommager accidentellement. Avant de mettre l'équipement sous tension : EIO0000004022.01 • Enlevez les outils, les instruments de mesure et les débris éventuels présents sur l'équipement. • Fermez le capot du boîtier de l'équipement. • Retirez toutes les mises à la terre temporaires des câbles d'alimentation entrants. • Effectuez tous les tests de démarrage recommandés par le fabricant. 7 OpcUaHandling Consignes de sécurité Fonctionnement et réglages Les précautions suivantes sont extraites du document NEMA Standards Publication ICS 7.1-1995 (la version anglaise prévaut) : 8 • Malgré le soin apporté à la conception et à la fabrication de l'équipement ou au choix et à l'évaluation des composants, des risques subsistent en cas d'utilisation inappropriée de l'équipement. • Il arrive parfois que l'équipement soit déréglé accidentellement, entraînant ainsi un fonctionnement non satisfaisant ou non sécurisé. Respectez toujours les instructions du fabricant pour effectuer les réglages fonctionnels. Les personnes ayant accès à ces réglages doivent connaître les instructions du fabricant de l'équipement et les machines utilisées avec l'équipement électrique. • Seuls ces réglages fonctionnels, requis par l'opérateur, doivent lui être accessibles. L'accès aux autres commandes doit être limité afin d'empêcher les changements non autorisés des caractéristiques de fonctionnement. EIO0000004022.01 A propos de ce manuel OpcUaHandling A propos de ce manuel Champ d'application Ce document décrit la bibliothèque OpcUaHandling. La bibliothèque OpcUaHandling fournit des blocs fonction permettant d'accéder à la fonctionnalité de client OPC UAexécutée sur le contrôleur. Remarque sur la validité Ce document a été actualisé pour le lancement d'EcoStruxureTM Machine Expert V2.0. Les caractéristiques décrites dans le présent document, ainsi que celles décrites dans les documents mentionnés dans la section Documents associés ci-dessous, sont consultables en ligne. Pour accéder aux informations en ligne, allez sur la page d'accueil de Schneider Electric www.se.com/ww/fr/download/. Les caractéristiques décrites dans le présent document doivent être identiques à celles fournies en ligne. Toutefois, en application de notre politique d'amélioration continue, nous pouvons être amenés à réviser le contenu du document afin de le rendre plus clair et plus précis. Si vous constatez une différence entre le document et les informations fournies en ligne, utilisez ces dernières en priorité. Documents associés Titre du document Référence EcoStruxure Machine Expert Recommandations de cybersécurité pour les solutions d'automatisme - Notes techniques du système EIO0000004242 ; EcoStruxure Machine Expert, Fonctions et bibliothèques - Guide de l'utilisateur EIO0000002829 (ENG) ; EIO0000002830 (FRE) ; EIO0000002831 (GER) ; EIO0000002832 (ITA) ; EIO0000002833 (SPA) ; EIO0000002834 (CHS) ; EcoStruxure Machine Expert, Guide de programmation EIO0000002854 (ENG) ; EIO0000002855 (FRE) ; EIO0000002856 (GER) ; EIO0000002857 (ITA) ; EIO0000002858 (SPA) ; EIO0000002859 (CHS) ; Comment gérer les certificats pour le client OPC UA, Guide d'utilisateur EIO0000004065 (ENG) ; EIO0000004066 (FRE) ; EIO0000004067 (GER) ; EIO0000004068 (ITA) ; EIO0000004069 (SPA) ; EIO0000004070 (CHS) ; EIO0000004022.01 9 OpcUaHandling A propos de ce manuel Titre du document Référence Spécification Client PLCopen OPC UA (IEC 61131-3) www.PLCopen.org EcoStruxure Machine Expert OPCUAHandling Example Guide EIO0000004099 (ENG) Informations relatives au produit AVERTISSEMENT PERTE DE CONTROLE • Le concepteur d'un système de commande doit envisager les modes de défaillance possibles des chemins de commande et, pour certaines fonctions de commande critiques, prévoir un moyen d'atteindre un état sécurisé en cas de défaillance d'un chemin, et après cette défaillance. Par exemple, l'arrêt d'urgence, l'arrêt en cas de surcourse, la coupure de courant et le redémarrage sont des fonctions de contrôle cruciales. • Des canaux de commande séparés ou redondants doivent être prévus pour les fonctions de commande critique. • Les liaisons de communication peuvent faire partie des canaux de commande du système. Soyez particulièrement attentif aux implications des retards de transmission imprévus ou des pannes de liaison. • Respectez toutes les réglementations de prévention des accidents ainsi que les consignes de sécurité locales.1 • Chaque implémentation de cet équipement doit être testée individuellement et entièrement pour s'assurer du fonctionnement correct avant la mise en service. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. 1 Pour plus d'informations, consultez les documents suivants ou leurs équivalents pour votre site d'installation : NEMA ICS 1.1 (dernière édition), « Safety Guidelines for the Application, Installation, and Maintenance of Solid State Control » (Directives de sécurité pour l'application, l'installation et la maintenance de commande statique) et NEMA ICS 7.1 (dernière édition), « Safety Standards for Construction and Guide for Selection, Installation, and Operation of AdjustableSpeed Drive Systems » (Normes de sécurité relatives à la construction et manuel de sélection, d'installation et d'exploitation de variateurs de vitesse). Avant de tenter de fournir une solution (machine ou processus) pour une application spécifique en utilisant les POU trouvés dans la bibliothèque, vous devez tenir compte de la réalisation et de l'exécution des bonnes pratiques. La liste non exhaustive de ces pratiques liées à cette bibliothèque inclut l'analyse des risques, la sécurité fonctionnelle, la compatibilité des composants, les tests et la validation du système. 10 EIO0000004022.01 A propos de ce manuel OpcUaHandling AVERTISSEMENT UTILISATION INCORRECTE DES UNITES ORGANISATIONNELLES DU PROGRAMME • Effectuez une analyse de la sécurité de l'application et des équipements installés. • Vérifiez que les POU sont compatibles avec les équipements du système et n'ont pas d'effets inattendus sur le bon fonctionnement du système. • Utilisez les paramètres appropriés, notamment les valeurs limites, et observez l'usure de la machine et son fonctionnement à l'arrêt. • Vérifiez que les capteurs et déclencheurs sont compatibles avec les POU sélectionnés. • Testez de manière approfondie toutes les fonctions durant la vérification et la mise en service dans tous les modes de fonctionnement. • Indiquez des méthodes indépendantes pour les fonctions de commande critiques (arrêt d'urgence, conditions de dépassement des valeurs limites, etc.) en fonction d'une analyse de la sécurité, des règles correspondantes et des réglementations. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. AVERTISSEMENT FONCTIONNEMENT IMPRÉVU DE L'ÉQUIPEMENT • N'utilisez que le logiciel approuvé par Schneider Electric pour faire fonctionner cet équipement. • Mettez à jour votre programme d'application chaque fois que vous modifiez la configuration matérielle physique. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Les transferts incomplets, qu'il s'agisse de fichiers de données, d'application et/ou de micrologiciel, peuvent avoir des conséquences graves sur votre machine ou votre contrôleur. En cas coupure de courant (volontaire ou non) ou d'interruption de la communication pendant un transfert de fichier, votre machine peut devenir inopérante ou votre application peut tenter d'utiliser un fichier de données endommagé. En cas d'interruption, relancez le transfert. Veillez à inclure l'impact des fichiers de données endommagés dans votre analyse des risques. AVERTISSEMENT FONCTIONNEMENT IMPRÉVU DE L'ÉQUIPEMENT, PERTE DE DONNÉES OU FICHIER ENDOMMAGÉ • N'interrompez pas un transfert de données en cours. • Si le transfert est interrompu pour une raison quelconque, relancez-le. • Ne mettez pas votre machine en service tant que le transfert de fichier n'est pas terminé, sauf si vous avez pris en compte les fichiers endommagés dans votre analyse des risques et si vous avez mis en place des mesures appropriées pour prévenir les conséquences potentiellement graves dues à des échecs de transfert. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. L'utilisation de cette bibliothèque comme outil de contrôle d'une machine nécessite une attention et des dispositions particulières afin d'éviter des conséquences involontaires dues à l'exploitation de la machine commandée, à des changements d'état ou à l'altération de la mémoire de données ou des éléments de fonctionnement de la machine. EIO0000004022.01 11 OpcUaHandling A propos de ce manuel AVERTISSEMENT FONCTIONNEMENT IMPRÉVU DE L'ÉQUIPEMENT • Placer les instruments de l'opérateur du système de commande près de la machine ou à un endroit qui permet d'avoir une vision parfaite de la machine. • Protéger les commandes opérateur contre tout accès non autorisé. • Si le contrôle à distance est une caractéristique nécessaire de l'application, veiller à ce qu'une personne qualifiée et compétente soit présente sur place pour surveiller le fonctionnement contrôlé à distance. • Configurez et installez l'entrée Run/Stop (si elle est présente) ou un autre moyen externe dans l'application, afin que le contrôle local du démarrage ou de l'arrêt de l'équipement puisse être maintenu indépendamment des commandes envoyées à distance à l'équipement. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Terminologie utilisée dans les normes Les termes techniques, la terminologie, les symboles et les descriptions correspondantes employés dans ce manuel ou figurant dans ou sur les produits proviennent généralement des normes internationales. Dans les domaines des systèmes de sécurité fonctionnelle, des variateurs et de l'automatisme en général, les termes employés sont sécurité, fonction de sécurité, état sécurisé, défaut, réinitialisation du défaut, dysfonctionnement, panne, erreur, message d'erreur, dangereux, etc. 12 EIO0000004022.01 A propos de ce manuel OpcUaHandling Entre autres, les normes concernées sont les suivantes : Norme Description IEC 61131-2:2007 Automates programmables - Partie 2 : exigences et essais des équipements ISO 13849-1:2015 Sécurité des machines : parties des systèmes de commande relatives à la sécurité. Principes généraux de conception EN 61496-1:2013 Sécurité des machines : équipements de protection électro-sensibles. Partie 1 : Prescriptions générales et essais ISO 12100:2010 Sécurité des machines - Principes généraux de conception Appréciation du risque et réduction du risque EN 60204-1:2006 Sécurité des machines - Équipement électrique des machines - Partie 1 : règles générales ISO 14119:2013 Sécurité des machines - Dispositifs de verrouillage associés à des protecteurs - Principes de conception et de choix ISO 13850:2015 Sécurité des machines - Fonction d'arrêt d'urgence - Principes de conception IEC 62061:2015 Sécurité des machines - Sécurité fonctionnelle des systèmes de commande électrique, électronique et électronique programmable relatifs à la sécurité IEC 61508-1:2010 Sécurité fonctionnelle des systèmes électriques/électroniques/ électroniques programmables relatifs à la sécurité : prescriptions générales. IEC 61508-2:2010 Sécurité fonctionnelle des systèmes électriques/électroniques/ électroniques programmables relatifs à la sécurité : exigences pour les systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité. IEC 61508-3:2010 Sécurité fonctionnelle des systèmes électriques/électroniques/ électroniques programmables relatifs à la sécurité : exigences concernant les logiciels. IEC 61784-3:2016 Réseaux de communication industriels - Profils - Partie 3 : Bus de terrain de sécurité fonctionnelle - Règles générales et définitions de profils. 2006/42/EC Directive Machines 2014/30/EU Directive sur la compatibilité électromagnétique 2014/35/EU Directive sur les basses tensions De plus, des termes peuvent être utilisés dans le présent document car ils proviennent d'autres normes telles que : Norme Description Série IEC 60034 Machines électriques rotatives Série IEC 61800 Entraînements électriques de puissance à vitesse variable Série IEC 61158 Communications numériques pour les systèmes de mesure et de commande – Bus de terrain utilisés dans les systèmes de commande industriels Enfin, le terme zone de fonctionnement utilisé dans le contexte de la description de dangers spécifiques a la même signification que les termes zone dangereuse ou zone de danger employés dans la directive Machines (2006/42/EC) et la norme ISO 12100:2010. NOTE: Les normes susmentionnées peuvent s'appliquer ou pas aux produits cités dans la présente documentation. Pour plus d'informations sur chacune des normes applicables aux produits décrits dans le présent document, consultez les tableaux de caractéristiques de ces références de produit. EIO0000004022.01 13 OpcUaHandling Informations générales Contenu de cette partie Présentation de la bibliothèque .......................................................................16 Entrées et sorties communes ..........................................................................19 EIO0000004022.01 15 OpcUaHandling Présentation de la bibliothèque Présentation de la bibliothèque Contenu de ce chapitre Informations générales ..................................................................................16 Informations générales Présentation de la bibliothèque La bibliothèque OpcUaHandling fournit les blocs de fonction permettant d'implémenter la fonctionnalité client OPC UA dans votre application. Le client OPC UA est lui-même un composant du système d'exécution (micrologiciel contrôleur). Les blocs fonction sont appliqués pour contrôler et surveiller le client depuis l'application, et ainsi pour échanger des données avec le serveur OPC UA. Pour plus d'informations sur le OPC notamment OPC UA, consultez la page Web officielle de OPC Foundation à l'adresse https://opcfoundation.org. Consultez également Informations générales sur les blocs fonction, page 50. Caractéristiques de la bibliothèque Le tableau suivant indique les caractéristiques de la bibliothèque : Caractéristique Valeur Titre de la bibliothèque OpcUaHandling Société Schneider Electric Catégorie Communication Composant OPC UA Handling Espace de noms par défaut SE_OPC Attribut du modèle de langage Qualified-access-only (voir EcoStruxure Machine Expert - Fonctions et bibliothèques Guide de l'utilisateur) Bibliothèque post-compatible Oui (FCL) NOTE: Cette bibliothèque est paramétrée en Uniquement accès qualifié . Cela signifie que l'on ne peut accéder aux POU, aux structures de données, aux énumérations, et aux constantes qu'en utilisant l'espace de nom de la bibliothèque. L'espace de noms par défaut de la bibliothèque est SE_OPC. 16 EIO0000004022.01 Présentation de la bibliothèque OpcUaHandling Plateforme du contrôleur La bibliothèque OpcUaHandling est prise en charge par : • Modicon M262 Logic/Motion Controllers (TM262L20MESE8T, TM262M25MESS8T, TM262M35MESS8T) • les contrôleurs PacDriveLMC Compatibilité/Conformité Les blocs fonction et les types de données fournis avec la bibliothèque sont compatibles avec la spécification PLCopen (PLCopen OPC-UA Client for IEC61131-3 version 1.1). Exemple de projet Un exemple de projet est fourni avec la bibliothèque. L’exemple de projet indique comment implémenter les composants à partir de la bibliothèque OpcUaHandling. L’exemple de projet est installé sur votre PC avec le logiciel de programmation. Pour ouvrir l’exemple de projet, procédez comme suit : Etape Action Commentaire 1 Dans EcoStruxure Machine Expert Logic Builder, exécutez la commande Nouveau projet. – 2 Dans la boîte de dialogue Nouveau projet, sélectionnez A partir de l’exemple dans la liste Type de projet. – 3 Sur le côté droit de la boîte de dialogue Nouveau projet cliquez sur le bouton Activer/désactiver le filtre. Résultat : les exemples disponibles sont répertoriés dans le menu déroulant. 4 Sélectionnez votre exemple dans le menu déroulant. – 5 Sélectionnez votre contrôleur dans la liste Contrôleurs disponibles. – 6 Entrez le nom du nouveau projet et sélectionnez l’emplacement du fichier. – 7 Cliquez sur le bouton OK. Résultat : un nouveau projet est créé en fonction de l’exemple sélectionné. Remarques générales AVERTISSEMENT INCOMPATIBILITE DES DONNEES ECHANGEES Vérifiez que les données échangées sont compatibles car les alignements de structures de données ne sont pas identiques pour tous les équipements. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. NOTE: Schneider Electric respecte les bonnes pratiques de l'industrie, en vigueur dans le développement et la mise en œuvre des systèmes de contrôle. Cette approche, dite de « défense en profondeur », permet de sécuriser les systèmes de contrôle industriels. Elle place les contrôleurs derrière des pare-feu pour restreindre leur accès aux seuls personnels et protocoles autorisés. EIO0000004022.01 17 OpcUaHandling Présentation de la bibliothèque AVERTISSEMENT ACCÈS NON AUTHENTIFIÉ ET UTILISATION NON AUTORISÉE DE LA MACHINE • Estimer si votre environnement ou vos machines sont connecté(e)s à votre infrastructure vitale et, le cas échéant, prendre les mesures nécessaires de prévention, basées sur le principe de défense en profondeur, avant de connecter le système d'automatisme à un réseau quelconque. • Limiter au strict nécessaire le nombre d'équipements connectés à un réseau. • Isoler votre réseau industriel des autres réseaux au sein de votre société. • Protéger chaque réseau contre les accès non autorisés à l'aide d'un parefeu, d'un VPN ou d'autres mesures de sécurité éprouvées. • Surveiller les activités au sein de votre système. • Empêcher tout accès direct ou liaison directe aux équipements sensibles par des utilisateurs non autorisés ou des actions non authentifiées. • Préparer un plan de récupération intégrant la sauvegarde des informations de votre système et de votre processus. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. 18 EIO0000004022.01 Entrées et sorties communes OpcUaHandling Entrées et sorties communes Contenu de ce chapitre Fonctionnement des blocs fonction avec l'entrée Execute ................................19 Fonctionnement des blocs fonction avec l'entrée Execute Informations générales Un front montant sur l'entrée Execute lance l'exécution du bloc fonction. Le bloc fonction poursuit son exécution et la sortie Busy prend la valeur TRUE. Des fronts montants supplémentaires sur l'entrée Execute sont ignorés pendant l'exécution du bloc fonctionnel. A la fin de l'exécution, les sorties Done ou Error restent sur TRUE jusqu'à ce que l'entrée Execute prenne la valeur FALSE. Si l'entrée est réinitialisée avant la fin de l'exécution, les sorties Done ou Error sont définies sur TRUE pendant un cycle. Exemple EIO0000004022.01 19 OpcUaHandling Types d'unités de données Contenu de cette partie Énumérations ................................................................................................21 Structures......................................................................................................31 Alias..............................................................................................................44 20 EIO0000004022.01 Énumérations OpcUaHandling Énumérations Contenu de ce chapitre ET_Result ....................................................................................................21 ET_VarType..................................................................................................23 UAAttributeID................................................................................................24 UABrowseDirection .......................................................................................25 UAConnectionStatus .....................................................................................26 UAIdentifierType ...........................................................................................26 UAMonitoringSyncMode ................................................................................27 UASecurityMsgMode.....................................................................................27 UASecurityPolicy ..........................................................................................28 UAServerState..............................................................................................28 UATransportProfile ........................................................................................29 UAUserIdentityTokenType .............................................................................29 ET_Result Présentation Type : Énumération Disponible à partir de : V1.0.0.0 Description L'énumération ET_Result définit les valeurs possibles qui indiquent le résultat des opérations exécutées par les POU de cette bibliothèque. NOTE: Si l'ID d'erreur renvoyé ne fait pas partie de l'énumération, consultez la spécification PLCopen pour plus d'informations (https://opcfoundation.org). Éléments d'énumération Valeurs spécifiques à Schneider Electric Nom Valeur Description InternalError 16#B0000001 Une erreur interne du client a été détectée. InvalidNodeHdlCount 16#B0000003 La valeur de NodeHdlCount n'est pas valide. Plage valide : 1..GPL.MAX_ELEMENTS_NODELIST InvalidServerEndpointUrl 16#B0000004 La valeur définie pour ServerEndpointUrl ne doit pas être une chaîne nulle. InvalidNodeIDCount 16#B0000006 La valeur de NodeIdCount n'est pas valide. Plage valide : 1..GPL.MAX_ELEMENTS_NODELIST CorruptedResponse 16#B0000007 Réponse non valide ou incorrecte du serveur OPC UA. InvalidTransportProfile 16#B0000011 La valeur de TransportProfile n'est pas prise en charge. InvalidSessionTimeout 16#B0000012 La valeur de SessionTimeout n'est pas prise en charge. Plage de valeurs : 30 s à 1 jour InvalidMonitorConnection 16#B0000013 La valeur de MonitorConnection n'est pas prise en charge. Plage de valeurs : 500 s à 10 minutes InvalidUserIdentityTokenType 16#B0000014 La valeur de UAUserIdentityTokenType n'est pas prise en charge. InvalidIndexRangeCount 16#B0000016 La valeur de IndexRangeCount n'est pas prise en charge. Plage valide : 0 à 3 EIO0000004022.01 21 OpcUaHandling Énumérations Nom Valeur Description InvalidIndexRange 16#B0000017 La valeur de StartIndex ne doit pas être supérieure à la valeur de EndIndex. InvalidIdentifierType 16#B0000018 La valeur de IdentifierType n'est pas prise en charge. InvalidIdentifier 16#B0000019 La valeur définie pour Identifier ne doit pas être une chaîne nulle. DimensionsMismatch 16#B0000021 Les dimensions du type de données du noeud ne correspondent pas aux dimensions du noeud sur le serveur OPC UA. InvalidBufferAddress 16#B0000022 La valeur de BufferAddress doit être 0. BufferSizeMismatch 16#B0000024 La taille des données définies ne correspond pas à la taille des données du noeud cible sur le serveur. InvalidUserIdentityTokenParam 16#B0000025 La valeur définie pour UserIdentityTokenParam n'est pas valide. Avec UserIdentityTokenType = UAUITT_Username, aucun ST_ UserIdentyTokenParams ne peut être une chaîne nulle. InvalidSecurityPolicy 16#B0000026 La valeur définie pour InvalidSecurityPolicy n'est pas valide. InvalidSecurityMsgMode 16#B0000027 La valeur définie pour InvalidSecurityMsgMode n'est pas valide. InvalidAttributeID 16#B0000028 La valeur définie pour AttributeID n'est pas prise en charge. InvalidNamespaceUrisCount 16#B0000029 La valeur de NamespaceUrisCount n'est pas valide. Plage valide : 1...GPL.MAX_ELEMENTS_NAMESPACES InvalidNamespaceUri 16#B0000030 La valeur définie pour NamespaceUri ne doit pas être une chaîne nulle. InvalidBrowsePathCount 16#B0000031 La valeur définie pour BrowsePathCount n'est pas valide. InvalidNumberOfElements 16#B0000032 La valeur définie pour NoOfElements n'est pas valide. InvalidRelativePathTargetName 16#B0000033 La valeur définie pour Name ne doit pas être une chaîne nulle. InvalidBrowseDescriptionDirection 16#B0000034 La valeur définie pour Direction n'est pas valide. InvalidResultMask 16#B0000035 La valeur de ResultMask ne doit pas être 0. InvalidMonitoredItemHdlCount 16#B0000037 La valeur définie pour MonitoredItemHdlCount n'est pas valide. PublishingNotEnabledNotSupported 16#B0000038 Le réglage PublishingEnabled = FALSE n'est pas pris en charge. InvalidQueueSize 16#B0000039 La valeur définie pour QueueSize n'est pas valide. InvalidDeadbandType 16#B0000040 La valeur définie pour DeadbandType n'est pas valide. IncompabileNodeDataTypeWithSyncMode 16#B0000041 La valeur définie pour NodeDataType n'est pas prise en charge. Le nœud utilisant la synchronisation du firmware doit avoir le type de données IecSymbol. IecTimeout 16#B0000099 Le délai s'est écoulé lors de l'attente d'une réponse du client (composant micrologiciel). Timeout 16#B0000100 Le délai s'est écoulé lors de l'attente d'une réponse du serveur OPC UA. DataTypeMismatch 16#B0000102 La valeur définie pour DataType du noeud ne correspond pas au type de données du noeud sur le serveur OPC UA. BufferSizeTooSmall 16#B0000103 La valeur définie pour BufferSize est trop petite. NotEnoughMemory 16#B0000104 Le contrôleur ne fournit pas assez de mémoire pour traiter les données reçues. OnlineChangeDetected 16#B0000105 Après la détection d'une modification en ligne, le client OPC UA a été réinitialisé et l'exécution du bloc fonction a été annulée. SessionNodeHdlAlreadyExist 16#B0000106 Descripteurs de noeud déjà récupérés pour cette session. Libérez les descripteurs de noeud récupérés avant d'en obtenir d'autres. BrowseFailed 16#B0000107 L'opération de recherche a échoué car le client n'est pas connecté. TranslatePathListFailed 16#B0000108 L'opération de conversion de la liste de chemins a échoué car le client n'est pas connecté. SubscriptionExists 16#B0000109 L'inscription demandée existe déjà. SubscriptionNotExists 16#B000010A Le descripteur d'inscription indiqué n'existe pas. MonitoredItemMaxReached 16#B000010B Le nombre maximal d'éléments surveillés (100) a été atteint. 22 EIO0000004022.01 Énumérations OpcUaHandling Nom Valeur Description MonitoredItemsNotExists 16#B000010C Le paramètre MonitoredItemHdl spécifié n'existe pas. IncompatibleDataTypeOfIecSymbol 16#B000010D Le type de données de la variable référencée par IecSymbol n'est pas pris en charge. Il doit s'agir d'un type de données de base, d'une taille maximale de 8 octets. MaxBrowseResultExceeded 16#B000010E Le serveur OPC UA renvoie trop de résultats de recherche. StackNotEnabled 16#B000010F La pile OPC UA n'a pas été activée. Vérifiez que vous avez activé le serveur OPC UA dans EcoStruxure Machine Expert. OpcUa_API_BadSignatureInvalid 16#A0010000 La signature du message n'est pas valide. Vérifiez les paramètres de sécurité. OpcUa_API_ BadExtensibleParameterInvalid 16#A0040000 Le paramètre extensible fourni est incorrect pour le service. Réexécutez le bloc fonction. OpcUa_API_ BadExtensibleParameterUnsupported 16#A0050000 Le serveur ne prend pas en charge le paramètre demandé. Vérifiez les entrées du bloc fonction. OpcUa_API_BadHostUnknown 16#A0060000 Impossible de résoudre le nom d'hôte. OpcUa_API_BadTooManyPosts 16#A0070000 Il y a eu trop de posts sur un sémaphore. Réexécutez le bloc fonction. OpcUa_API_BadSecurityConfig 16#A0080000 La configuration de sécurité n'est pas valide. Vérifiez que les certificats du client et du serveur sont valides. OpcUa_API_BadFileNotFound 16#A0090000 Le nom de fichier indiqué n'est pas valide. Vérifiez que le fichier du certificat (PEM, CRL, DER, fichier de clé, chaîne de certificat) a un nom valide. OpcUa_API_BadContinue 16#A00A0000 Acceptez le résultat non valide et continuez. OpcUa_API_BadHttpMethodNotAllowed 16#A00B0000 Une méthode HTTP non valide est utilisée dans l'appel de point d'extrémité du serveur. OpcUa_API_BadFileExists 16#A00C0000 Le fichier journal ou le répertoire de journaux existe déjà. OpcUa_API_BadCryptoKeyTooShort 16#A0120000 La clé reçue pour le canal sécurisé est trop courte. OpcUa_API_BadCryptoKeyTooLong 16#A0130000 La clé reçue pour le canal sécurisé est trop longue. OpcUa_API_ BadSignatureAlgorithmNotAllowed 16#A0140000 L'algorithme de signature de certificat n'est pas autorisé. OpcUa_API_ BadWrongReceiverCertificate 16#A0150000 L'émetteur a fourni une empreinte de certificat de récepteur incorrecte. OpcUa_API_BadMessageTooLarge 16#A0160000 Le message est trop long et ne peut pas être envoyé. Pour plus d'informations sur les valeurs spécifiques à PLCopen, consultez la page Web de PLCopen (https://www.plcopen.org). Pour plus d'informations sur les codes de diagnostic OPC UA, consultez la page Web de OPC Foundation (https://opcfoundation.org). Utilisé par • Utilisé par tous les blocs fonction. ET_VarType Présentation Type : Énumération Disponible à partir de : V1.0.0.0 Description L'énumération ET_VarType indique les types de variable OPC. EIO0000004022.01 23 OpcUaHandling Énumérations Éléments d'énumération Nom Valeur Description Les types de variable OPC correspondent aux types de données CEI 61131-3 : UATypeNull 0 - UATypeBool 1 BOOL UATypeSByte 2 SINT UATypeByte 3 USINT UATypeInt16 4 INT UATypeUInt16 5 UINT UATypeInt32 6 DINT UATypeUInt32 7 UDINT UATypeInt64 8 LINT UATypeUInt64 9 ULINT UATypeFloat 10 REAL UATypeDouble 11 LREAL UATypeString 12 STRING (longueur maximale de la chaîne : 255 octets). UATypeDateTime 13 DT UATypeIECSymbol 99 La valeur UATypeIECSymbol vous permet de configurer le client à l'aide de Configuration de symboles : • Publiez la mémoire tampon allouée dans l'application, dans Configuration de symboles. • Adressez une chaîne contenant le nom de la mémoire tampon sur pbyBuffer et définissez sa taille sur udiBufferSize. Utilisé par • ST_Variable UAAttributeID Présentation Type : Énumération Disponible à partir de : V1.0.0.0 Description L'énumération UAAttributeID définit les attributs OPC d'un nœud. Éléments d'énumération Nom Valeur Description UAAI_NodeID 1 Identificateur approuvé pour le noeud. UAAI_NodeClass 2 Classe du noeud. UAAI_BrowseName 3 Nom non localisé du nœud. UAAI_DisplayName 4 Nom localisé du nœud. 24 EIO0000004022.01 Énumérations OpcUaHandling Nom Valeur Description UAAI_Description 5 Description localisée du noeud. UAAI_WriteMask 6 Indique quels attributs peuvent être écrits. UAAI_UserWriteMask 7 Indique quels attributs peuvent être écrits manuellement. UAAI_IsAbstract 8 Indique qu'un type de noeud ne peut pas être instancié. UAAI_Symmetric 9 Indique que les références directes et inverses ont la même signification. UAAI_InverseName 10 Nom de navigation pour référence inverse. UAAI_ContainsNoLoops 11 Indique si les références suivantes d'une vue ne causent pas une boucle. UAAI_EventNotifier 12 Indique que le noeud peut être utilisé pour l'inscription à des événements. UAAI_Value 13 Valeur d'une variable. UAAI_DataType 14 ID de noeud du type de données de la valeur de variable. UAAI_ValueRank 15 Nombre de dimensions dans la valeur. UAAI_ArrayDimensions 16 Longueur de chaque dimension d'une valeur de tableau. UAAI_AccessLevel 17 Indique comment accéder à une variable. UAAI_UserAccessLevel 18 Indique comment accéder à une variable en tenant compte des droits d'accès de l'utilisateur. UAAI_MinimumSamplingInterval 19 Indique la vitesse à laquelle le serveur peut échantillonner la valeur pour les modifications [ms]. UAAI_Historizing 20 Indique si le serveur collecte activement les données de la variable. UAAI_Executable 21 Indique si la méthode peut être appelée. UAAI_UserExecutable 22 Indique si la méthode peut être appelée manuellement. Utilisé par • UANodeAdditionalInfo UABrowseDirection Présentation Type : Énumération Disponible à partir de : V2.0.0.0 Description L'énumération UABrowseDirection spécifie la direction des références à renvoyer. Éléments d'énumération Nom Valeur Description UABD_Forward 0 Sélectionner des références directes. UABD_Inverse 1 Sélectionner des références inverses. UABD_Both 2 Sélectionner des références directes et inverses. Utilisé par • EIO0000004022.01 UABrowseDescription 25 OpcUaHandling Énumérations UAConnectionStatus Présentation Type : Énumération Disponible à partir de : V1.0.0.0 Description L'énumération UAConnectionStatus définit l'état de connexion entre le serveur OPC UA et le client OPC UA. Éléments d'énumération Nom Valeur Description UACS_Connected 0 Le client OPC UA est connecté au serveur OPC UA. UACS_ConnectionError 1 Pour la connexion entre le client OPC UA et le serveur OPC UA, une erreur a été détectée. UACS_Shutdown 2 Le client OPC UA a été déconnecté du serveur OPC UA. Utilisé par • UA_ConnectionGetStatus UAIdentifierType Présentation Type : Énumération Disponible à partir de : V1.0.0.0 Description L'énumération UAIdentifierType définit les types de l'identifiant OPC UA. Éléments d'énumération Nom Valeur Description UAIT_Numeric 0 L'identifiant défini avec une valeur numérique. UAIT_String 1 Identifiant défini avec une valeur de type chaîne. UAIT_GUID 2 Non pris en charge. UAIT_Opaque 3 Non pris en charge. Utilisé par • 26 UANodeID EIO0000004022.01 Énumérations OpcUaHandling UAMonitoringSyncMode Présentation Type : Énumération Disponible à partir de : V2.0.0.0 Description L'énumération UAMonitoringSyncMode spécifie le mode de synchronisation. Éléments d'énumération Nom Valeur Description UAMS_Unknown 0 Mode de synchronisation inconnu. UAMS_ControllerSync 1 Mode de synchronisation du contrôleur. UAMS_FwSync 2 Mode de synchronisation du firmware. Utilisé par • UA_MonitoredItemAddList UASecurityMsgMode Présentation Type : Énumération Disponible à partir de : V1.0.0.0 Description L'énumération UASecurityMsgMode définit le mode de sécurité des messages appliqué à la connexion au serveur OPC UA. Éléments d'énumération Nom Valeur Description UASMM_BestAvailable 0 Mode de sécurité le plus adapté pour les messages sur le serveur OPC UA. Le client reçoit les modes de sécurité disponibles issus du serveur et sélectionne le plus adapté. Notez que cela peut également aboutir au niveau UASMM_None. UASMM_None 1 Aucune sécurité n'est appliquée. UASMM_Sign 2 Les messages sont signés mais non chiffrés. UASMM_SignEncrypt 3 Les messages sont signés et chiffrés. Utilisé par • EIO0000004022.01 UASessionConnectInfo 27 OpcUaHandling Énumérations UASecurityPolicy Présentation Type : Énumération Disponible à partir de : V1.0.0.0 Description L'énumération UASecurityPolicy définit le mode de sécurité appliqué à la connexion au serveur OPC UA. Éléments d'énumération Nom Valeur Description UASP_BestAvailable 0 Connexion de sécurité la plus adaptée pour accéder au serveur OPC UA. Le client reçoit les règles disponibles issues du serveur et sélectionne la plus adapté. Notez que cela peut également aboutir au niveau UASP_None. UASP_None 1 Aucun profil de sécurité appliqué. UASP_Basic128Rsal5 2 Profil Basic128Rsa15. UASP_Basic256 3 Profil Basic256. UASP_Basic256Sha256 4 Profil Basic256Sha256. Utilisé par • UASessionConnectInfo UAServerState Présentation Type : Énumération Disponible à partir de : V1.0.0.0 Description L'énumération UAServerState définit l'état actuel du serveur OPC UA. Éléments d'énumération Nom Valeur Description UASS_Running 0 Le serveur est opérationnel. UASS_Failed 1 Le serveur n'est pas opérationnel. UASS_NoConfiguraiton 2 Le serveur est en cours d'exécution mais aucune information de configuration n'est chargée et donc aucun transfert de données n'est exécuté. UASS_Suspended 3 Le serveur a été suspendu provisoirement et il n'envoie ni reçoit aucune donnée. UASS_Shutdown 4 Le serveur est arrêté ou en cours d'arrêt. UASS_Test 5 Le serveur est en mode test. 28 EIO0000004022.01 Énumérations OpcUaHandling Nom Valeur Description UASS_CommunicatonFault 6 Le serveur fonctionne correctement mais ne parvient pas à accéder aux données de ses sources de données. UASS_Unknown 7 Cet état est utilisé uniquement pour indiquer que le serveur OPC UA n'obtient aucune information sur l'état des serveurs sous-jacents. Utilisé par • UA_ConnectionGetStatus UATransportProfile Présentation Type : Énumération Disponible à partir de : V1.0.0.0 Description L'énumération UATransportProfile définit le profil de transport appliqué à la connexion au serveur OPC UA. Éléments d'énumération Nom Valeur Description UATP_UATcp 1 Profil TCP. UATP_WSHttpBinary 2 Non pris en charge. UATP_WSHttpXmlOrBinary 3 Non pris en charge. UATP_WSHttpXml 4 Non pris en charge. Utilisé par • UASessionConnectInfo UAUserIdentityTokenType Présentation Type : Énumération Disponible à partir de : V1.0.0.0 Description L'énumération UAUserIdentityTokenType définit le type d'authentification. Éléments d'énumération Nom Valeur Description UAUITT_Anonymous 0 Aucune authentification appliquée. UAUITT_Username 1 Authentification par nom utilisateur et mot de passe. EIO0000004022.01 29 OpcUaHandling Énumérations Nom Valeur Description UAUITT_x509 2 Authentification par certificat x509. UAUITT_IssuedToken 3 Non pris en charge. Utilisé par • 30 UAUserIdentityToken EIO0000004022.01 Structures OpcUaHandling Structures Contenu de ce chapitre ST_Variable..................................................................................................31 UABrowseDescription....................................................................................32 UABrowsePath .............................................................................................32 UAExpandedNodeID .....................................................................................33 UAIndexRange .............................................................................................33 UALocalizedText ...........................................................................................34 UAMonitoredVariables...................................................................................35 UAMonitoringParameter ................................................................................35 UANodeAdditionalInfo ...................................................................................36 UANodeID ....................................................................................................37 UANodeInformation.......................................................................................37 UAQualifiedName .........................................................................................39 UAReferenceDescription ...............................................................................40 UARelativePath ............................................................................................40 UARelativePathElement ................................................................................41 UASessionConnectInfo..................................................................................41 UAUserIdentityToken.....................................................................................43 ST_Variable Présentation Type : Structure Disponible à partir de la version : V1.0.0.0 Hérite de : - Description La structure ST_Variable permet de fournir des informations sur la variable et la zone de mémoire. Éléments de la structure Nom Type de données Description etNodeDataType ET_VarType, page 23 Type de données du noeud. NOTE: Cette valeur doit correspondre à la définition du type de données du noeud sur le serveur. Dans le cas d'un tableau, indiquez le type de données de base du tableau. pbyBuffer POINTER TO BYTE Adresse de la mémoire tampon allouée dans l'application. udiBufferSize UDINT Taille de la mémoire tampon allouée dans votre application. NOTE: Si etNodeDataType indique UATypeString et UANodeAdditonalInfo un tableau, ce paramètre doit correspondre au nombre d'octets renvoyés par le serveur OPC UA, qui dépendent de la définition du type de données sur le serveur et des informations supplémentaires sur le nœud. NOTE: Utilisez l'opérateur SIZEOF pour obtenir la taille de la variable dans l'application. EIO0000004022.01 31 OpcUaHandling Structures NOTE: La valeur UATypeIECSymbol permet la configuration du client via la configuration de symboles : • Publiez la mémoire tampon allouée dans l'application à l'intérieur de la configuration de symboles. • Effectuez l'adressage d'une chaîne contenant le nom de la mémoire tampon sur pbyBuffer et définissez sa taille sur udiBufferSize. Utilisé par • UA_ReadList • UA_WriteList UABrowseDescription Présentation Type : Structure Disponible à partir de la version : V2.0.0.0 Hérite de : - Description La structure UABrowseDescription permet de fournir des informations nécessaires pour la navigation. Éléments de la structure Nom Type de données Description StartingNodeID UANodeID, page 37 Identificateur du nœud de départ pour la recherche. Direction UABrowseDirection, page 25 Définit la direction de la recherche. ReferenceTypeID UANodeID, page 37 Identificateur du type de référence que le serveur doit suivre. IncludeSubtypes BOOL Définit si les sous-types du type de référence doivent être renvoyés. NodeClass UANodeClassMask, page 45 Classe du nœud renvoyé, par exemple objet, variable ou méthode. ResultMask UABrowseResultMask, page 44 Définit les champs du UAReferenceDescription, page 40 qui sont demandés par le serveur. Utilisé par • UA_Browse • UANodeID UABrowsePath Présentation 32 Type : Structure Disponible à partir de la version : V2.0.0.0 Hérite de : - EIO0000004022.01 Structures OpcUaHandling Description La structure UABrowsePath permet de fournir des informations pour spécifier des nœuds à l'aide de chemins relatifs. Éléments de la structure Nom Type de données Description StartingNode UANodeID, page 37 Identificateur du nœud de départ à partir duquel le chemin relatif va être évalué. RelativePath UARelativePath, page 40 Définit le chemin relatif qui sera évalué. Utilisé par • UA_TranslatePathList UAExpandedNodeID Présentation Type : Structure Disponible à partir de la version : V1.0.0.0 Hérite de : - Description La structure UAExpandedNodeID permet de fournir des informations détaillées sur le noeud. Éléments de la structure Nom Type de données Description ServerIndex UDINT Index du serveur au format numérique base 10. NamespaceUri STRING[255] Espace de noms URI au format chaîne. Tous les caractères réservés dans l'URI sont remplacés par un % suivi de la valeur ANSI 8 bits codée sous la forme de deux chiffres hexadécimaux. ID UANodeID, page 37 Identifiant d'un noeud dans l'espace d'adresses d'un serveur OPC UA. Utilisé par • UAReferenceDescription UAIndexRange Présentation EIO0000004022.01 Type : Structure Disponible à partir de : V1.0.0.0 Hérite de : - 33 OpcUaHandling Structures Description La structure UAIndexRange permet de fournir des informations sur la plage d'index d'une dimension d'une variable publiée par le serveur OPC UA. Éléments de la structure Nom Type de données Description StartIndex UINT Index de début (la valeur d'index du premier élément est 0). EndIndex UINT Index de fin. NOTE: Pour chaque dimension : 1. StartIndex et EndIndex doivent être attribués. 2. La valeur de StartIndex doit être inférieure à la valeur de EndIndex. 3. Pour accéder à tous les éléments d'une dimension, vous devez attribuer StartIndex et EndIndex en fonction du nombre total d'éléments de la dimension. 4. Il est possible de sélectionner un élément dans une dimension en définissant la même valeur pour StartIndex et EndIndex. Utilisé par • UANodeAdditionalInfo UALocalizedText Présentation Type : Structure Disponible à partir de : V1.0.0.0 Hérite de : - Description La structure UALocalizedText permet de fournir des informations sur le texte localisé. Éléments de la structure Nom Type de données Description Locale STRING [6] Identificateur langue et pays/région. Format : <language>-<country/region> Exemple : en-US; zh-CHS Text STRING [255] Indique le texte localisé sous forme de chaîne. Utilisé par 34 • UAReferenceDescription • UANodeInformation EIO0000004022.01 Structures OpcUaHandling UAMonitoredVariables Présentation Type : Structure Disponible à partir de la version : V2.0.0.0 Hérite de : - Description La structure UAMonitoredVariables permet de fournir des informations sur les variables surveillées. Éléments de la structure Nom Type de données Description Values ARRAY [1..GPL.MAX_ ELEMENTS_ QUEUELIST] OF ST_ Variable, page 31 Tableau contenant des informations sur les variables et les zones de mémoire correspondantes. TimeStamps ARRAY [1..GPL.MAX_ ELEMENTS_ QUEUELIST] OF DT Horodatage source renvoyé par le serveur. NodeQualityIDs ARRAY [1..GPL.MAX_ ELEMENTS_ QUEUELIST] OF DWORD Contient un code d'erreur pour chaque élément valide du tableau Variable. NewValuesCount UINT Compte les valeurs qui ont été mises à jour en commençant par l'élément le plus faible des valeurs. Utilisé par • UA_MonitoredItemAddList UAMonitoringParameter Présentation Type : Structure Disponible à partir de la version : V2.0.0.0 Hérite de : - Description La structure UAMonitoringParameter fournit les paramètres de configuration de la surveillance. Éléments de la structure Nom Type de données Description SamplingInterval TIME Intervalle (en millisecondes) pendant lequel le serveur recherche des modifications dans la source de données sousjacente. QueueSize UINT Taille de la file d'attente de l'élément surveillé. EIO0000004022.01 35 OpcUaHandling Structures Nom Type de données Description Valeur par défaut : 1 DiscardOldest BOOL Détermine la politique de rejet en cas file d'attente saturée. DeadbandType UADeadbandType Indique le type de bande morte appliquée, le cas échéant. Deadband REAL Valeur de bande morte (en %). Utilisé par • UA_MonitoredItemAddList • UA_MonitoredItemModifyList • UA_MonitoredItemOperateList • UA_MonitoredVariables UANodeAdditionalInfo Présentation Type : Structure Disponible à partir de : V1.0.0.0 Hérite de : - Description La structure UANodeAdditionalInfo permet de fournir des informations complémentaires sur le noeud. Éléments de la structure Nom Type de données Description AttributeID UAAttributeID, page 24 Attribut à consulter. Valeur par défaut : UAAI_Value IndexRangeCount UINT Nombre de plages d'index valides définies. Chaque plage d'index définit une dimension. NOTE: Un élément de type de données élémentaire est défini par IndexRangeCount = 0. Plage de valeurs : 0 à GPL.MAX_ELEMENTS_INDEXRANGE IndexRange ARRAY [1..GPL.MAX_ ELEMENTS_ INDEXRANGE] OF UAIndexRange, page 34 Liste des plages d'index. Utilisé par 36 • UA_ReadList • UA_WriteList EIO0000004022.01 Structures OpcUaHandling UANodeID Présentation Type : Structure Disponible à partir de : V1.0.0.0 Hérite de : - Description La structure UANodeID permet de fournir des informations pour identifier le noeud cible sur le serveur OPC UA. Éléments de la structure Nom Type de données Description NamespaceIndex UINT Nom de l'espace du serveur OPC UA. Identifier STRING [255] Identificateur. Aucune chaîne nulle n'est autorisée. IdentifierType UAIdentifierType, page 26 Type d'identifiant. Valeur par défaut : UAAI_String Seules les tâches UAAI_Numeric et UAAI_Stringsont prises en charge. Utilisé par • UA_NodeGetHandleList • UA_NodeGetInformation • UAReferenceDescription • UAExpandedNodeID • UABrowseDescription • UANodeInformation UANodeInformation Présentation Type : Structure Disponible à partir de la version : V1.0.0.0 Hérite de : - Description La structure UANodeInformation permet de fournir des informations sur le noeud. EIO0000004022.01 37 OpcUaHandling Structures Éléments de la structure 38 Nom Type de données Description AccessLevel BYTE Masque de bits indiquant si la valeur actuelle d'Attribute est accessible en lecture et écriture, et si les valeurs précédentes sont lisibles et modifiables : Bit Valeur Niveau d'accès - 16#0 None 0 16#1 CurrentRead 1 16#2 CurrentWrite 2 16#4 HistoryRead 3 16#8 HistoryWrite ArrayDimension ARRAY [1..GPL. MAX_ELEMENTS_ ARRAYDIMENSION] OF UDINT Longueur de chaque dimension d'une valeur de tableau. BrowseName UAQualifiedName, page 39 Nom de l'élément. ContainsNoLoops BOOL Indique si les références suivantes d'une vue ne causent pas une boucle. DataType UANodeID, page 37 ID de nœud du type de données de la valeur de variable. Description UALocalizedText, page 34 Description localisée du nœud. DisplayName UALocalizedText, page 34 Nom localisé du nœud. EventNotifier BYTE Cet attribut représente un masque de bits qui indique si l'objet peut être utilisé pour s'inscrire à des événements et si les anciens événements sont accessibles et modifiables : Bit Valeur EventNotifier - 16#0 L'objet ne produit pas des événements et n'est associé à aucun historique d'événements (SubscribeToEvents) 0 16#1 CurrentRead 1 16#2 CurrentWrite 2 16#4 HistoryRead 3 16#8 HistoryWrite Executable BOOL Indique si la méthode peut être appelée. Historizing BOOL Indique si le serveur collecte activement les données précédentes de la variable. InverseName STRING [255] Nom de navigation d'une référence inverse. IsAbstract BOOL Indique qu'un noeud de type ne peut pas être instancié. MinimumSamplingInterval TIME Indique la vitesse à laquelle le serveur peut échantillonner la valeur pour les modifications. NodeClass UANodeClassMask, page 45 Classe du noeud, par exemple : objet, variable ou méthode. Symmetric BOOL Indique que les références directes et inverses ont la même signification. EIO0000004022.01 Structures OpcUaHandling Nom Type de données Description UserAccessLevel BYTE Même information que AccessLevel, avec prise en compte des droits d'accès de l'utilisateur : Bit Valeur Niveau d'accès - 16#0 None 0 16#1 CurrentRead 1 16#2 CurrentWrite 2 16#4 HistoryRead 3 16#8 HistoryWrite UserExecutable BOOL Indique si la méthode peut être appelée manuellement. UserWriteMask UDINT Indique quels attributs peuvent être écrits manuellement. ValueRank DINT Nombre de dimensions dans la valeur. WriteMask UDINT Indique quels attributs peuvent être écrits. Utilisé par • UA_NodeGetInformation UAQualifiedName Présentation Type : Structure Disponible à partir de : V1.0.0.0 Hérite de : - Description La structure UAQualifiedName permet de fournir des informations sur le nom et l'index d'espace de noms correspondant. Éléments de la structure Nom Type de données Description NamespaceIndex UINT Index d'espace de noms où Name est fourni. Name STRING [255] Nom qualifié. Utilisé par • EIO0000004022.01 UANodeInformation 39 OpcUaHandling Structures UAReferenceDescription Présentation Type : Structure Disponible à partir de la version : V2.0.0.0 Hérite de : - Description La structure UAReferenceDescription fournit des informations sur les références et les nœuds cibles. Elément de structure Nom Type de données Description ReferenceTypeID UANodeID, page 37 Identificateur du type de référence entre le nœud de départ et le nœud cible. IsForward BOOL Indique si une référence directe est suivie. NodeID UAExpandedNodeID, page 33 Indique l'ID du nœud cible. Il peut également s'agir d'un nœud sur un autre serveur. BrowseName STRING[255] Indique le nom qualifié du nœud cible. DisplayName UALocalizedText, page 34 Indique le nom localisé du nœud cible. NodeClass UANodeClassMask, page 45 Classe du nœud renvoyé, par exemple objet, variable ou méthode. TypeDefinition UAExpandedNodeID, page 33 Indique l'ID de nœud de l'objet ou le type de variable du nœud cible. Utilisé par • UA_Browse • UANodeID UARelativePath Présentation Type : Structure Disponible à partir de la version : V2.0.0.0 Hérite de : - Description La structure UARelativePath permet de fournir des informations sur une liste d'éléments de chemin relatif. 40 EIO0000004022.01 Structures OpcUaHandling Éléments de la structure Nom Type de données Description NoOfElements UINT Définit le nombre correct d'éléments dans le tableau Elements. Elements ARRAY [1..GPL. MAX_ ELEMENTS_ RELATIVEPATH] OF UARelativePathElement Tableau contenant les éléments de chemin relatif. Utilisé par • UABrowsePath UARelativePathElement Présentation Type : Structure Disponible à partir de la version : V2.0.0.0 Hérite de : - Description La structure UARelativePathElement permet de fournir des informations sur un élément de chemin relatif. Éléments de la structure Nom Type de données Description ReferenceTypeID UANodeID, page 37 Identificateur du type de référence. IsInverse BOOL Si la valeur est TRUE, les références inverses seront évaluées. IncludeSubtypes BOOL Définit si les sous-types du type de référence doivent être renvoyés. Valeur par défaut : TRUE TargetName UAQualifiedName, page 39 Définit le nom de l'élément cible. Utilisé par • UARelativePath UASessionConnectInfo Présentation EIO0000004022.01 Type : Structure Disponible à partir de la version : V1.0.0.0 Hérite de : - 41 OpcUaHandling Structures Description La structure UASessionConnectInfo est utilisée pour fournir les informations de connexion requises pour créer une session OPC UA. Éléments de la structure Nom Type de données Description SessionName STRING [255] Nom de la session attribuée par le client. La chaîne peut être vide. ApplicationName STRING [255] Nom lisible de l'application client OPC UA. La chaîne peut être vide. SecurityMsgMode UASecurityMsgMode, page 27 Mode de sécurité de la communication avec le serveur OPC UA. Valeur par défaut : UASMM_BestAvailable SecurityPolicy UASecurityPolicy, page 28 Profil de sécurité de la communication avec le serveur OPC UA. Valeur par défaut : UASP_BestAvailable CertificateStore STRING [255] Non pris en charge, la valeur est ignorée. ClientCertificateName STRING [255] Non prise en charge, la valeur est ignorée. ServerUri STRING [255] URI du serveur pour la connexion via un serveur de passerelle. La chaîne peut être vide. CheckServerCertificate BOOL Indicateur précisant si le certificat du serveur est vérifié avec la liste de confiance de l'application cliente. Valeur par défaut : TRUE Pour plus d'informations, consultez le document Comment gérer les certificats avec des clients OPC UA, Guide de l'utilisateur (voir Comment gérer les certificats avec des clients OPC UA, Guide de l'utilisateur). TransportProfile UATransportProfile, page 29 Profil de transport. Uniquement UATP_UATcp est pris en charge. UserIdentityToken UAUserIdentityToken, page 43 Données d'authentification utilisateurs. SessionTimeout TIME Période de temps pour laquelle la session est maintenue si la communication est interrompue [ms]. Valeur par défaut : 20 minutes (T#20m) Plage de valeurs : 30 s à 1 jour MonitorConnection TIME Intervalle temporel pour vérifier la connexion. Valeur par défaut : 5 s (T#5s) Plage de valeurs : 0,5 s à 10 minutes LocaleIDs ARRAY [1..5] OF STRING [6] Identificateur langue et pays/région. Format : <language>-<country/region> Exemple : en-US; zh-CHS La chaîne peut être vide. Utilisé par • 42 UA_Connect EIO0000004022.01 Structures OpcUaHandling UAUserIdentityToken Présentation Type : Structure Disponible à partir de : V1.0.0.0 Hérite de : - Description La structure UAUserIdentityToken est utilisée pour fournir les informations à authentifier sur le serveur OPC UA lors de l'établissement de la connexion. Éléments de la structure Nom Type de données Description UserIdentityTokenType UAUserIdentityTokenType, page 29 Jeton d'identité pour authentifier un utilisateur durant la création d'une session. Valeur par défaut : UAUITT_x509 TokenParam1 STRING [255] TokenParam2 STRING [255] Paramètres pour le type de jeton : • UAUITT_Username : nom d'utilisateur • UAUITT_x509 : emplacement du magasin de certificats. La valeur donnée est ignorée, le magasin de certificats par défaut est utilisé. Paramètres pour le type de jeton : • UAUITT_Username : mot de passe • UAUITT_x509 : nom du certificat. La valeur donnée est ignorée, le magasin de certificats par défaut est utilisé. Utilisé par • EIO0000004022.01 UASessionConnectInfo 43 OpcUaHandling Alias Alias Contenu de ce chapitre UABrowseResultMask ...................................................................................44 UADeadbandType .........................................................................................44 UANodeClassMask .......................................................................................45 UABrowseResultMask Présentation Type : Alias Disponible à partir de la version : V2.0.0.0 Description L'alias UABrowseResultMask spécifie quels champs du UAReferenceDescription sont demandés au serveur . UABrowseResultMask est un masque de bits et chaque bit de l'octet représente un champ. Masques de bits pris en charge Masque de bits Description 16#1 ReferenceType 16#2 IsForward 16#4 NodeClass 16#8 BrowseName 16#10 DisplayName 16#20 TypeDefinition Utilisé par • UABrowseDescription UADeadbandType Présentation Type : Alias Disponible à partir de la version : V2.0.0.0 Description L'alias UADeadbandType spécifie le type de bande morte appliquée, le cas échéant. UADeadbandType est un masque de bits et chaque bit de l'octet représente une bande morte. 44 EIO0000004022.01 Alias OpcUaHandling Masques de bits pris en charge Masque de bits Description 16#0 Aucun calcul de bande morte n'est appliqué. 16#1 Un calcul de bande morte absolue est appliqué. 16#2 Un calcul de bande morte en pourcentage est appliqué. Utilisé par • UAMonitoringParameter UANodeClassMask Présentation Type : Alias Disponible à partir de la version : V1.0.0.0 Description L'alias UANodeClassMask définit le NodeClass d'un noeud. UANodeClassMask est un masque de bits et chaque bit de l'octet représente une classe de nœuds. Masques de bits pris en charge Masque de bits Description 16#0 Aucune classe de noeud (non spécifié) 16#1 Classe de noeuds : Objet 16#2 Classe de noeuds : Variable 16#4 Classe de noeuds : Méthode 16#8 Classe de noeuds : Type d'objet 16#10 Classe de noeuds : Type de variable 16#20 Classe de noeuds : Type de référence 16#40 Classe de noeuds : Type de données 16#80 Classe de noeuds : Vue 16#FF Toutes classes de noeuds réunies Utilisé par EIO0000004022.01 • UAReferenceDescription • UABrowseDescription • UANodeInformation 45 OpcUaHandling Variables globales Contenu de cette partie Liste des constantes globales..........................................................................47 Liste des paramètres globaux..........................................................................48 46 EIO0000004022.01 Liste des constantes globales OpcUaHandling Liste des constantes globales Contenu de ce chapitre Liste des constantes globales (GCL)...............................................................47 Liste des constantes globales (GCL) Présentation Type : Constantes globales Disponible à partir de : V1.0.0.0 Description La liste des constantes globales (GCL) contient les constantes globales de la bibliothèque OpcUaHandling. Constantes globales Variable Gc_sLibraryVersion Type de données Valeur Description STRING[80] Vx.x.x.0(1) Version de la bibliothèque (1) Cette valeur varie selon la version de la bibliothèque. EIO0000004022.01 47 OpcUaHandling Liste des paramètres globaux Liste des paramètres globaux Contenu de ce chapitre Liste des paramètres globaux (GPL) ...............................................................48 Liste des paramètres globaux (GPL) Présentation Type : Paramètres globaux Disponible à partir de la version : V1.0.0.0 Description La liste des paramètres globaux (GPL) contient les constantes globales utilisées par certains composants de la bibliothèque. Il est possible de modifier un à un les paramètres pour chaque application dans laquelle la bibliothèque est utilisée. Les modifications doivent être apportées dans le Gestionnaire de bibliothèques du projet référençant la bibliothèque. La liste des paramètres globaux (GPL) contient l'attribut qualified access only. NOTE: Ne modifiez pas les paramètres globaux lorsque le client OPC UA est connecté. Paramètres globaux Variable Type de données Valeur par défaut Plage Description MAX_ELEMENTS_ARRAYDIMENSION UINT 3 3..3 Limite les dimensions maximales d'un nœud. MAX_ELEMENTS_BROWSERESULT UINT 5 1 à 30 Limite le nombre de résultats de recherche, qui pourraient être utilisés par le bloc fonction de recherche. MAX_ELEMENTS_INDEXRANGE UINT 3 3..3 Limite la plage d'index maximale définie. MAX_ELEMENTS_MONITORLIST UINT 10 1 à 100 Limite le nombre d'éléments surveillés, qui pourraient être utilisés par les blocs fonction d'éléments surveillés pour chaque connexion. MAX_ELEMENTS_NAMESPACES UINT 20 1..100 Limite le nombre d'espaces de nom. MAX_ELEMENTS_NODELIST UINT 100 1..5000 Limite le nombre de nœuds pouvant être utilisés par les blocs fonction de liste. MAX_ELEMENTS_QUEUELIST UINT 1 1 à 10 Limite le nombre d'éléments dans la file d'attente pour chaque élément surveillé. MAX_ELEMENTS_RELATIVEPATH UINT 5 1 à 120 Limite le nombre d'éléments dans un chemin relatif. TIMEOUT TIME TIME#30s - Définit le délai par défaut si aucune valeur spécifique n'est affectée à l'entrée du bloc fonction Timeout. 48 EIO0000004022.01 OpcUaHandling Unités d'organisation de programme (POU) Contenu de cette partie Description du bloc fonction ............................................................................50 Fonctions.......................................................................................................77 EIO0000004022.01 49 OpcUaHandling Description du bloc fonction Description du bloc fonction Contenu de ce chapitre Informations générales sur les blocs fonction...................................................50 UA_Browse - Description fonctionnelle ...........................................................55 UA_Connect - Description fonctionnelle ..........................................................56 UA_ConnectionGetStatus - Description fonctionnelle .......................................57 UA_Disconnect - Description fonctionnelle ......................................................59 UA_MonitoredItemAddList - Description fonctionnelle ......................................60 UA_MonitoredItemOperateList - Description fonctionnelle ................................62 UA_MonitoredItemRemoveList - Description fonctionnelle................................63 UA_NamespaceGetIndexList - Description fonctionnelle ..................................64 UA_NodeGetHandleList - Description fonctionnelle .........................................65 UA_NodeGetInformation - Description fonctionnelle.........................................66 UA_NodeReleaseHandleList - Description fonctionnelle...................................67 UA_ReadList - Description fonctionnelle .........................................................68 UA_SubscriptionCreate - Description fonctionnelle ..........................................70 UA_SubscriptionDelete - Description fonctionnelle...........................................72 UA_SubscriptionProcessed - Description fonctionnelle ....................................72 UA_TranslatePathList - Description fonctionnelle .............................................74 UA_WriteList - Description fonctionnelle..........................................................75 Informations générales sur les blocs fonction Séquences de communication Les diagrammes ci-dessous indiquent la corrélation des blocs fonctionnels à implémenter. L'exécution simultanée de blocs fonctionnels avec le même descripteur de connexion n'est pas autorisée. Le bloc fonction exécuté à l'aide d'un descripteur de connexion occupé signale l'ID d'erreur 16#A0000002, qui signifie PLCopenUA_Bad_FW_TempError. Les étapes suivantes doivent être exécutées dans votre application pour lire ou écrire une liste de variables : Le bloc fonction UA_Connect est utilisé pour créer une connexion de transport et une session OPC UA. Le bloc fonction UA_NamespaceGetIndexList doit être exécuté pour obtenir les espaces de noms du serveur OPC UA connecté. Ils sont nécessaires pour récupérer les descripteurs de nœud en exécutant le bloc fonction UA_NodeGetHandleList. Il est possible de lire et d'écrire plusieurs fois les attributs des nœuds. Une fois la communication terminée, les descripteurs de nœud ne sont plus nécessaires. Il est recommandé de les libérer tous en exécutant le bloc fonction UA_NodeReleaseHandleList. Exécutez le bloc fonction UA_Disconnect pour libérer le descripteur de connexion. NOTE: En cas de changement en ligne de l'application, le client OPC UA sera réinitialisé. Par conséquent, les processus en cours seront abandonnés et toutes les connexions, fermées. 50 EIO0000004022.01 Description du bloc fonction OpcUaHandling Les étapes suivantes doivent être exécutées dans votre application pour parcourir l'espace d'adresses sur le serveur : Préparer Nettoyer UA_Connect UA_Browse UA_Disconnect Les étapes suivantes doivent être exécutées pour traiter une inscription d'une liste de nœuds : Préparer UA_MonitoredItemAddList UA_Connect UA_MonitoredItemOperateList OR UA_SubscriptionProcessed UA_NamespaceGetIndexList UA_NodeGetHandleList UA_SubscriptionCreate Nettoyer UA_MonitoredItemRemoveList UA_SubscriptionDelete UA_NodeReleaseHandleList UA_Disconnect L'application cliente déclenche la communication et les valeurs sont publiées par le serveur OPC UA. Comme indiqué dans le schéma de blocs fonction ci-dessus, une inscription et des éléments surveillés sont nécessaires. Les étapes suivantes doivent être exécutées pour obtenir l'état de connexion actuel : Vous pouvez appeler le bloc fonction UA_ConnectionGetStatus à intervalles réguliers. Pour des raisons de performance, ne l'exécutez pas à chaque cycle du programme de commande. Les étapes suivantes doivent être exécutées pour obtenir les paramètres de nœud à l'aide du chemin du nœud : Préparer Nettoyer UA_Connect UA_Disconnect UA_NamespaceGetIndexList UA_TranslatePathList EIO0000004022.01 51 OpcUaHandling Description du bloc fonction Exemple de code Déclaration PROGRAM Example VAR fbUaConnect : SE_Opc.UA_Connect; fbUaNamespaceGetIndexList : fbUaNodeGetHandleList : fbUaReadList : fbUaNodeReleaseHandleList : fbUaDisconnect : fbUaConnectionGetStatus : stSessionConnectInfo dwConnectionHdl auiNamespaceIndexes NAMESPACES] OF UINT; asNamespaceUris NAMESPACES] OF STRING(255); astNodeIds OF SE_Opc.UANodeID; adwNodeHdls OF DWORD; astNodeAddInfos OF SE_Opc.UANodeAdditionalInfo; astVariables OF SE_Opc.ST_Variable; iReadValue xOpcCommunicationOk iState xCmdConnect xCmdReadVariable xCmdCyclicReadVariable xCmdDisconnect END_VAR SE_Opc.UA_NamespaceGetIndexList; SE_Opc.UA_NodeGetHandleList; SE_Opc.UA_ReadList; SE_Opc.UA_NodeReleaseHandleList; SE_Opc.UA_Disconnect; SE_Opc.UA_ConnectionGetStatus; : SE_Opc.UASessionConnectInfo; : DWORD; : ARRAY [1..SE_Opc.GPL.MAX_ELEMENTS_ : ARRAY [1..SE_Opc.GPL.MAX_ELEMENTS_ : ARRAY [1..SE_Opc.GPL.MAX_ELEMENTS_NODELIST] : ARRAY [1..SE_Opc.GPL.MAX_ELEMENTS_NODELIST] : ARRAY [1..SE_Opc.GPL.MAX_ELEMENTS_NODELIST] : ARRAY [1..SE_Opc.GPL.MAX_ELEMENTS_NODELIST] : : : : : : : INT; BOOL; INT; BOOL; BOOL; BOOL; BOOL; Programme CASE iState OF 0: // Idle IF xCmdConnect THEN xCmdConnect := FALSE; stSessionConnectInfo.UserIdentityToken.UserIdentityTokenType := SE_Opc. UAUserIdentityTokenType.UAUITT_Username; stSessionConnectInfo.UserIdentityToken.TokenParam1 := 'Administrator'; stSessionConnectInfo.UserIdentityToken.TokenParam2 := 'Password'; fbUaConnect( Execute:= TRUE, ServerEndpointUrl:= 'opc.tcp://10.128.154.220:4840', SessionConnectInfo:= stSessionConnectInfo); iState := 10; END_IF 10: // Connecting fbUaConnect(); IF fbUaConnect.Done THEN dwConnectionHdl := fbUaConnect.ConnectionHdl; fbUaConnect (Execute := FALSE); asNamespaceUris[1] := 'http://www.unifiedautomation.com/ customprovider/'; fbUaNamespaceGetIndexList( Execute:= TRUE, ConnectionHdl:= dwConnectionHdl, NamespaceUrisCount:= 1, NamespaceUris:= asNamespaceUris, NamespaceIndexes=> auiNamespaceIndexes); 52 EIO0000004022.01 Description du bloc fonction OpcUaHandling iState := 20; ELSIF fbUaConnect.Error THEN ; // Add error handling here END_IF 20: // Wait for IndexList fbUaNamespaceGetIndexList(); IF fbUaNamespaceGetIndexList.Done THEN IF fbUaNamespaceGetIndexList.ErrorIDs[1] = SE_Opc.ET_Result.OpcUa_Good THEN auiNamespaceIndexes := fbUaNamespaceGetIndexList.NamespaceIndexes; fbUaNamespaceGetIndexList(Execute := FALSE); astNodeIds[1].IdentifierType := SE_Opc.UAIdentifierType.UAIT_ String; astNodeIds[1].Identifier := 'Application.GVL.G_iVariableToRead'; astNodeIds[1].NamespaceIndex := auiNamespaceIndexes[1]; fbUaNodeGetHandleList( Execute:= TRUE, ConnectionHdl:= dwConnectionHdl, NodeIDCount:= 1, NodeIDs:= astNodeIds); iState := 30; ELSE ; // Add error handling here END_IF ELSIF fbUaNamespaceGetIndexList.Error THEN ; // Add error handling here END_IF 30: // Wait for HandleList fbUaNodeGetHandleList(); IF fbUaNodeGetHandleList.Done THEN IF fbUaNodeGetHandleList.NodeErrorIDs[1] = SE_Opc.ET_Result.OpcUa_Good THEN adwNodeHdls := fbUaNodeGetHandleList.NodeHdls; fbUaNodeGetHandleList(Execute := FALSE); iState := 100; ELSE ; // Add error handling here END_IF ELSIF fbUaNodeGetHandleList.Error THEN ; // Add error handling here END_IF 100:// client is connected, ready for read & write variables IF xCmdDisconnect THEN xCmdDisconnect := FALSE; fbUaNodeReleaseHandleList( Execute:= TRUE,# ConnectionHdl:= dwConnectionHdl, NodeHdlCount:= 1, NodeHdls:= adwNodeHdls); iState := 200; ELSIF xCmdReadVariable OR xCmdCyclicReadVariable THEN xCmdReadVariable := FALSE; astNodeAddInfos[1].AttributeID := SE_Opc.UAAttributeID.UAAI_Value; astNodeAddInfos[1].IndexRangeCount := 0; astVariables[1].etNodeDataType := SE_Opc.ET_VarType.UATypeInt16; astVariables[1].pbyBuffer := ADR(iReadValue); astVariables[1].udiBufferSize := SIZEOF(iReadValue); fbUaReadList( Execute:= TRUE, EIO0000004022.01 53 OpcUaHandling Description du bloc fonction ConnectionHdl:= dwConnectionHdl, NodeHdlCount:= 1, NodeHdls:= adwNodeHdls, NodeAddInfos:= astNodeAddInfos, Variables:= astVariables); iState := 110; ELSE fbUaConnectionGetStatus( Execute:= TRUE, ConnectionHdl:= dwConnectionHdl); iState := 120; END_IF 110:// Wait for read operatin done fbUaReadList(Variables:= astVariables); IF fbUaReadList.Done THEN IF fbUaReadList.NodeErrorIDs[1] = SE_Opc.ET_Result.OpcUa_Good THEN ; // Read value is valid and can be processed here ELSE ; // Add error handling here END_IF fbUaReadList(Execute := FALSE, Variables:= astVariables); iState := 100; ELSIF fbUaReadList.Error THEN ; // Add error handling here END_IF 120:// Wait for connection status fbUaConnectionGetStatus(); IF fbUaConnectionGetStatus.Done THEN IF fbUaConnectionGetStatus.ServerState = SE_Opc.UAServerState.UASS_ Running AND fbUaConnectionGetStatus.ConnectionStatus = SE_Opc. UAConnectionStatus.UACS_Connected THEN xOpcCommunicationOk := TRUE; ELSE // Add handling of communication interruption here xOpcCommunicationOk := FALSE; END_IF fbUaConnectionGetStatus (Execute := FALSE); iState := 100; ELSIF fbUaConnectionGetStatus.Error THEN ; // Add error handling here END_IF 200:// Wait for HandleList is released fbUaNodeReleaseHandleList(); IF fbUaNodeReleaseHandleList.Done THEN IF fbUaNodeReleaseHandleList.NodeErrorIDs[1] = SE_Opc.ET_Result.OpcUa_ Good THEN fbUaNodeReleaseHandleList(Execute := FALSE); fbUaDisconnect( Execute:= TRUE, ConnectionHdl:= dwConnectionHdl); iState := 210; ELSE ; // Add error handling here END_IF ELSIF fbUaNodeReleaseHandleList.Error THEN ; // Add error handling here END_IF 210:// Wait for disconnection done fbUaDisconnect(); IF fbUaDisconnect.Done THEN fbUaDisconnect( Execute:= FALSE); 54 EIO0000004022.01 Description du bloc fonction OpcUaHandling iState := 0; ELSIF fbUaDisconnect.Error THEN ; // Add error handling here END_IF END_CASE UA_Browse - Description fonctionnelle Présentation Type : Bloc fonction Disponible à partir de la version : V2.0.0.0 Description fonctionnelle Le bloc fonction UA_Browse permet de naviguer dans l'espace d'adresses. Après un nœud de départ, le serveur renvoie une liste de nœuds par références. Si tous les nœuds sont renvoyés, affectez la sortie ContinuationPointOut à l'entrée ContinuationPointIn et réexécutez le bloc fonction. Interface Entrée Type de données Description Execute BOOL Sur un front montant, le bloc fonction est en cours d'exécution. Voir aussi Utilisation des blocs fonction avec l'entrée Execute, page 19. Timeout TIME Temps de réponse maximal. Plage de valeurs : 2 s ... 60 s Si la valeur est hors plage, la limite supérieure ou inférieure est appliquée. Valeur par défaut : GPL.Timeout ConnectionHdl DWORD Descripteur de connexion. ViewDescription UAViewDescription Inutilisé. Valeur par défaut : vide BrowseDescription UABrowseDescription Nœud de départ et autres informations de navigation. NOTE: Ce paramètre est ignoré si l'entrée ContinuationPointIn est différente de 0. ContinuationPointIn EIO0000004022.01 DWORD • Si sa valeur est 0, le processus de navigation commence au nœud de départ. • Si sa valeur est ContinuationPointOut, il est possible de rechercher le service suivant. 55 OpcUaHandling Description du bloc fonction Sortie Type de données Description Done BOOL Indique que l’exécution du bloc fonction est terminée et réussie. Busy BOOL Indique que l’exécution du bloc fonction est en cours. Error BOOL Indique qu'une erreur a été détectée durant l'exécution. NOTE: Même si Error indique FALSE, vérifiez les ErrorIDs correspondants avant de traiter les index d'espace de noms. ErrorID ET_Result, page 21 Fournit des informations de diagnostic complémentaires sous forme de valeur numérique. Pour chaque URI d'espace de noms, un résultat distinct est fourni. BrowseResultCount UINT Indique le nombre d'entrées dans le tableau BrowseResult. BrowseResult ARRAY [1..GPL. MAX_ELEMENTS_ NODELIST] OF UAReferenceDescription Contient les références et informations des nœuds qui transmettent les critères de filtre dans la requête. ContinuationPointOut DWORD Indique que le serveur n'a pas réussi à transmettre tous les résultats. Peut être copié dans ContinuationPointIn pour rechercher le service suivant. UA_Connect - Description fonctionnelle Présentation Type : Bloc fonction Disponible à partir de la version : V1.0.0.0 Description fonctionnelle Le bloc fonction UA_Connect est utilisé pour créer une connexion de transport et une session OPC UA. NOTE: Avant d'exécuter le bloc fonction UA_Connect, activez la pile OPC UA sur votre contrôleur : • Pour Modicon M262 Logic/Motion Controllers, activez l'option Serveur OPC UA activé dans l'onglet Configuration du serveur OPC UA de l'éditeur d'équipement. • Pour les contrôleurs PacDrive, appelez la fonction SystemInterface.FC_ OpcUaStart une fois pendant l'initialisation de votre application. Le bloc fonction UA_Connect doit être exécuté une fois à chaque connexion. La connexion est interrompue en appelant le bloc fonction UA_Disconnect. 56 EIO0000004022.01 Description du bloc fonction OpcUaHandling NOTE: La surveillance des connexions et la gestion des reconnexions doivent être implémentées séparément dans votre application. Consultez la partie 4 de la spécification OPC UA. Interface Entrée Type de données Description Execute BOOL Sur un front montant, le bloc fonction est en cours d'exécution. Voir aussi Utilisation des blocs fonction avec l'entrée Execute, page 19. Timeout TIME Temps de réponse maximal. Plage de valeurs : 2 s ... 60 s Si la valeur est hors plage, la limite supérieure ou inférieure est appliquée. Valeur par défaut : GPL.Timeout ServerEndpointUrl STRING [255] URL du serveur auquel se connecter. Par exemple, opc.tcp://10.128.154.220:4840. La chaîne ne doit pas être une chaîne nulle. SessionConnectInfo UASessionConnectInfo, page 41 Structure utilisée pour définir les informations de connexion requises pour créer une session OPC UA. Sortie Type de données Description Done BOOL Indique que l’exécution du bloc fonction est terminée et réussie. Busy BOOL Indique que l’exécution du bloc fonction est en cours. Error BOOL Indique qu'une erreur a été détectée durant l'exécution. NOTE: Même si Error indique FALSE, vérifiez les ErrorIDs correspondants avant de traiter les index d'espace de noms. ErrorID ET_Result, page 21 Fournit des informations de diagnostic complémentaires sous forme de valeur numérique. Pour chaque URI d'espace de noms, un résultat distinct est fourni. ConnectionHdl DWORD Le descripteur de connexion valide jusqu'au UA_ Disconnect est appelé. UA_ConnectionGetStatus - Description fonctionnelle Présentation EIO0000004022.01 Type : Bloc fonction Disponible à partir de la version : V1.0.0.0 57 OpcUaHandling Description du bloc fonction Description fonctionnelle Le bloc fonction UA_ConnectionGetStatus permet d'obtenir l'état de la connexion définie. Interface Entrée Type de données Description Execute BOOL Sur un front montant, le bloc fonction est en cours d'exécution. Voir aussi Utilisation des blocs fonction avec l'entrée Execute, page 19. Timeout TIME Temps de réponse maximal. Plage de valeurs : 2 s ... 60 s Si la valeur est hors plage, la limite supérieure ou inférieure est appliquée. Valeur par défaut : GPL.Timeout ConnectionHdl DWORD Descripteur de connexion. Sortie Type de données Description Done BOOL Indique que l’exécution du bloc fonction est terminée et réussie. Busy BOOL Indique que l’exécution du bloc fonction est en cours. Error BOOL Indique qu'une erreur a été détectée durant l'exécution. NOTE: Même si Error indique FALSE, vérifiez les ErrorIDs correspondants avant de traiter les index d'espace de noms. ErrorID ET_Result, page 21 Fournit des informations de diagnostic complémentaires sous forme de valeur numérique. Pour chaque URI d'espace de noms, un résultat distinct est fourni. ConnectionStatus UAConnectionStatus, page 26 Indique l'état de la connexion. ServerState UAServerState, page 28 Indique l'état du serveur. ServiceLevel BYTE Indique la capacité du serveur à fournir ses données au client. La plage de valeurs est comprise entre 0 à 255, où 0 indique le niveau le plus faible et 255 le niveau le plus élevé (le meilleur). Il s'agit de fournir aux clients des informations de disponibilité des serveurs redondants. 58 EIO0000004022.01 Description du bloc fonction OpcUaHandling UA_Disconnect - Description fonctionnelle Présentation Type : Bloc fonction Disponible à partir de la version : V1.0.0.0 Description fonctionnelle Le bloc fonction UA_Disconnect permet de fermer la connexion de transport définie pour une session OPC UA. NOTE: Quel que soit le résultat de l'exécution, le bloc fonction UA_Disconnect libère le descripteur de connexion et tous les descripteurs de noeud de la connexion spécifiée. Interface Entrée Type de données Description Execute BOOL Sur un front montant, le bloc fonction est en cours d'exécution. Voir aussi Utilisation des blocs fonction avec l'entrée Execute, page 19. Timeout TIME Temps de réponse maximal. Plage de valeurs : 2 s ... 60 s Si la valeur est hors plage, la limite supérieure ou inférieure est appliquée. Valeur par défaut : GPL.Timeout ConnectionHdl DWORD Descripteur de connexion. Sortie Type de données Description Done BOOL Indique que l’exécution du bloc fonction est terminée et réussie. Busy BOOL Indique que l’exécution du bloc fonction est en cours. Error BOOL Indique qu'une erreur a été détectée durant l'exécution. NOTE: Même si Error indique FALSE, vérifiez les ErrorIDs correspondants avant de traiter les index d'espace de noms. ErrorID ET_Result, page 21 Fournit des informations de diagnostic complémentaires sous forme de valeur numérique. Pour chaque URI d'espace de noms, un résultat distinct est fourni. EIO0000004022.01 59 OpcUaHandling Description du bloc fonction UA_MonitoredItemAddList - Description fonctionnelle Présentation Type : Bloc fonction Disponible à partir de la version : V2.0.0.0 Description fonctionnelle Le bloc fonction UA_MonitoredItemAddList permet d'ajouter des éléments surveillés à une inscription à l'aide d'une liste de descripteurs de nœud. Le bloc fonction met à jour les valeurs de SamplingTime et de QueueSize à l'aide du paramètre d'entrée/sortie MonitoringParameters. Les paramètres d'entrée/sortie restants sont mis à jour séparément selon le SyncMode, page 27 sélectionné : • Pour SyncMode UAMS_ControllerSync, appelez le bloc fonction UA_ MonitoredItemOperateList pour mettre à jour les valeurs. • Pour SyncMode UAMS_FwSync, le firmware met à jour les valeurs automatiquement en fonction de l'intervalle configuré avec l'entrée/sortie PublishingInterval, page 71 de l'inscription. Le bloc fonction UA_ SubscriptionProcessed peut être appelé, le cas échéant, pour vérifier si les nouvelles valeurs ont été publiées. NOTE: Le SyncMode UAMS_FwSync n'est compatible qu'avec le NodeDataType UATypeIECSymbol pour référencer les variables ayant le type de données de base avec une taille maximale de 8 octets. NOTE: Aucune non-concordance de type de données n'a été détectée entre un élément à surveiller spécifié dans les variables d'entrée/sortie et la variable correspondante déclarée. En cas de types de données non concordants, une conversion implicite est effectuée. Interface Entrée Type de données Description Execute BOOL Sur un front montant, le bloc fonction est en cours d'exécution. Voir aussi Utilisation des blocs fonction avec l'entrée Execute, page 19. Timeout TIME Temps de réponse maximal. Plage de valeurs : 2 s ... 60 s 60 EIO0000004022.01 Description du bloc fonction Entrée OpcUaHandling Type de données Description Si la valeur est hors plage, la limite supérieure ou inférieure est appliquée. Valeur par défaut : GPL.Timeout SubscriptionHdl DWORD Descripteur d'inscription NodeHdlCount UINT Nombre de descripteurs de nœud dans le tableau NodeHdls. Plage de valeurs : 1..GPL.MAX_ELEMENTS_ NODELIST] NodeHdls ARRAY [1..GPL. MAX_ELEMENTS_ MONITORLIST] OF DWORD Tableau contenant des descripteurs de nœud. SyncMode UAMonitoringSyncMode Mode de synchronisation. NodeAddInfos ARRAY [1..GPL. MAX_ELEMENTS_ MONITORLIST] OF UANodeAdditionalInfo Tableau contenant des informations complémentaires sur les nœuds, par exemple l'attribut ou la plage d'index. Entrée/Sortie Type de données Description Variables ARRAY [1..GPL. MAX_ELEMENTS_ MONITORLIST] OF UAMonitoredVariables Tableau contenant des informations sur les variables à lire et les zones de mémoire correspondantes. NOTE: Ne traitez les variables que lorsque le bloc fonction indique Done. MonitoringParameters ARRAY [1..GPL. MAX_ELEMENTS_ MONITORLIST] OF UAMonitoringParameter Tableau contenant les paramètres de surveillance de chaque élément valide du tableau NodeHdls. ValuesChanged ARRAY [1..GPL. MAX_ELEMENTS_ MONITORLIST] OF BOOL Indique que les valeurs de l'élément surveillé ont été modifiées. MinLostValueCount ARRAY [1..GPL. MAX_ELEMENTS_ MONITORLIST] OF UINT Indique le nombre de valeurs omises si la file d'attente a une taille supérieure à 1 lorsque la file d'attente sur le client est plus petite que celle sur le serveur. Sortie Type de données Description Done BOOL Indique que l’exécution du bloc fonction est terminée et réussie. Busy BOOL Indique que l’exécution du bloc fonction est en cours. Error BOOL Indique qu'une erreur a été détectée durant l'exécution. NOTE: Même si Error indique FALSE, vérifiez les ErrorIDs correspondants avant de traiter les index d'espace de noms. ErrorID ET_Result, page 21 Fournit des informations de diagnostic complémentaires sous forme de valeur numérique. Pour chaque URI d'espace de noms, un résultat distinct est fourni. NodeErrorIDs ARRAY [1..GPL. MAX_ELEMENTS_ MONITORLIST] OF ET_Result Contient une valeur d'erreur pour chaque élément du tableau NodeHdls. MonitoredItemHdls ARRAY [1..GPL. MAX_ELEMENTS_ NODELIST] OF DWORD Contient les descripteurs d'élément surveillé pour chaque élément valide du tableau NodeHdls. EIO0000004022.01 61 OpcUaHandling Description du bloc fonction UA_MonitoredItemOperateList - Description fonctionnelle Présentation Type : Bloc fonction Disponible à partir de la version : V2.0.0.0 Description fonctionnelle Le bloc fonction UA_MonitoredItemOperateList permet de mettre à jour les valeurs de plusieurs éléments surveillés, en utilisant une liste de descripteurs d'élément surveillé et le descripteur d'inscription correspondant. NOTE: • Le bloc fonction UA_MonitoredItemOperateList n'est utilisable qu'avec le mode de synchronisation de contrôleur (UAMS_ControllerSync), page 27. • Les valeurs des variables Variables, ValuesChanged, TimeStamps et NodeQualityIDs de l'élément surveillé correspondant spécifié avec le bloc fonction UA_MonitoredItemAddList, page 60 ne sont valides que si le bloc fonction UA_MonitoredItemOperateList renvoie Done = TRUE et pas NodeErrorID. • Si le bloc fonction UA_MonitoredItemOperateList n'est pas appelé, les valeurs des éléments surveillés ne sont pas mises à jour. Interface Entrée Type de données Description Execute BOOL Sur un front montant, le bloc fonction est en cours d'exécution. Voir aussi Utilisation des blocs fonction avec l'entrée Execute, page 19. Timeout TIME Temps de réponse maximal. Plage de valeurs : 2 s ... 60 s Si la valeur est hors plage, la limite supérieure ou inférieure est appliquée. Valeur par défaut : GPL.Timeout SubscriptionHdl DWORD Descripteur d'inscription MonitoredItemHdlCount UINT Nombre de descripteurs d'élément surveillé dans le tableau MonitoredItemHdls. MonitoredItemHdls ARRAY [1..GPL. MAX_ELEMENTS_ MONITORLIST] OF DWORD Tableau contenant les descripteurs d'élément surveillé à mettre à jour. Sortie Type de données Description Done BOOL Indique que l’exécution du bloc fonction est terminée et réussie. Busy BOOL Indique que l’exécution du bloc fonction est en cours. 62 EIO0000004022.01 Description du bloc fonction OpcUaHandling Sortie Type de données Description Error BOOL Indique qu'une erreur a été détectée durant l'exécution. NOTE: Même si Error indique FALSE, vérifiez les ErrorIDs correspondants avant de traiter les index d'espace de noms. ErrorID ET_Result, page 21 Fournit des informations de diagnostic complémentaires sous forme de valeur numérique. Pour chaque URI d'espace de noms, un résultat distinct est fourni. NodeErrorIDs ARRAY [1..GPL. MAX_ELEMENTS_ MONITORLIST] OF ET_Result Contient une valeur d'erreur pour chaque élément du tableau MonitoredItemHdls. Published BOOL Indique que les variables ont été publiées depuis le dernier appel. Au moins un élément du tableau ValuesChanged, page 60 a la valeur TRUE. UA_MonitoredItemRemoveList - Description fonctionnelle Présentation Type : Bloc fonction Disponible à partir de la version : V2.0.0.0 Description fonctionnelle Le bloc fonction UA_MonitoredItemRemoveList permet de supprimer des éléments surveillés d'une inscription, en utilisant une liste de descripteurs d'élément surveillé et le descripteur d'inscription correspondant. Interface Entrée Type de données Description Execute BOOL Sur un front montant, le bloc fonction est en cours d'exécution. Voir aussi Utilisation des blocs fonction avec l'entrée Execute, page 19. Timeout TIME Temps de réponse maximal. Plage de valeurs : 2 s ... 60 s Si la valeur est hors plage, la limite supérieure ou inférieure est appliquée. Valeur par défaut : GPL.Timeout SubscriptionHdl DWORD Descripteur d'inscription MonitoredItemHdlCount UINT Nombre de descripteurs d'élément surveillé dans le tableau MonitoredItemHdls. MonitoredItemHdls ARRAY [1..GPL. MAX_ELEMENTS_ MONITORLIST] OF DWORD Tableau contenant les descripteurs d'élément surveillé à supprimer. EIO0000004022.01 63 OpcUaHandling Description du bloc fonction Sortie Type de données Description Done BOOL Indique que l’exécution du bloc fonction est terminée et réussie. Busy BOOL Indique que l’exécution du bloc fonction est en cours. Error BOOL Indique qu'une erreur a été détectée durant l'exécution. NOTE: Même si Error indique FALSE, vérifiez les ErrorIDs correspondants avant de traiter les index d'espace de noms. ErrorID ET_Result, page 21 Fournit des informations de diagnostic complémentaires sous forme de valeur numérique. Pour chaque URI d'espace de noms, un résultat distinct est fourni. NodeErrorIDs ARRAY [1..GPL. MAX_ELEMENTS_ MONITORLIST] OF ET_Result Contient une valeur d'erreur pour chaque élément du tableau MonitoredItemHdls. UA_NamespaceGetIndexList - Description fonctionnelle Présentation Type : Bloc fonction Disponible à partir de la version : V1.0.0.0 Description fonctionnelle Le bloc fonction UA_NamespaceGetIndexList permet d'obtenir les index de plusieurs URIs d'espace de noms. NOTE: Le bloc fonction lit l'objet serveur NamespaceArray et renvoie les index des éléments demandés. L'index d'espace de noms est un élément dans la structure UANodeID, qui est requis pour les blocs fonction, page 50. NOTE: Ne modifiez pas les paramètres lorsque le bloc fonction est en cours d'exécution (Busy = TRUE). Interface Entrée Type de données Description Execute BOOL Sur un front montant, le bloc fonction est en cours d'exécution. Voir aussi Utilisation des blocs fonction avec l'entrée Execute, page 19. Timeout TIME Temps de réponse maximal. Plage de valeurs : 2 s ... 60 s Si la valeur est hors plage, la limite supérieure ou inférieure est appliquée. 64 EIO0000004022.01 Description du bloc fonction OpcUaHandling Entrée Type de données Description Valeur par défaut : GPL.Timeout ConnectionHdl DWORD Descripteur de connexion. NamespaceUrisCount UINT Nombre d'URIs d'espace de noms dans le tableau NamespaceUris. Plage de valeurs : 1.. GPL.MAX_ELEMENTS_ NAMESPACES NamespaceUris ARRAY [1..GPL.MAX_ELEMENTS_ NAMESPACES] OF STRING [255] Tableau contenant les URI d'espace de noms. Sortie Type de données Description Done BOOL Indique que l’exécution du bloc fonction est terminée et réussie. Busy BOOL Indique que l’exécution du bloc fonction est en cours. Error BOOL Indique qu'une erreur a été détectée durant l'exécution. NOTE: Même si Error indique FALSE, vérifiez les ErrorIDs correspondants avant de traiter les index d'espace de noms. ErrorIDs ARRAY [1..GPL.MAX_ELEMENTS_ NAMESPACES] OF ET_Result, page 21 Fournit des informations de diagnostic complémentaires sous forme de valeur numérique. Pour chaque URI d'espace de noms, un résultat distinct est fourni. NamespaceIndexes ARRAY [1..GPL.MAX_ELEMENTS_ NAMESPACES] OF UINT Fournit les index d'espaces de noms récupérés. UA_NodeGetHandleList - Description fonctionnelle Présentation Type : Bloc fonction Disponible à partir de la version : V1.0.0.0 Description fonctionnelle Le bloc fonction UA_NodeGetHandleList permet d'obtenir plusieurs descripteurs de noeud. NOTE: Ne modifiez pas les paramètres lorsque le bloc fonction est en cours d'exécution (Busy = TRUE). EIO0000004022.01 65 OpcUaHandling Description du bloc fonction Interface Entrée Type de données Description Execute BOOL Sur un front montant, le bloc fonction est en cours d'exécution. Voir aussi Utilisation des blocs fonction avec l'entrée Execute, page 19. Timeout TIME Temps de réponse maximal. Plage de valeurs : 2 s ... 60 s Si la valeur est hors plage, la limite supérieure ou inférieure est appliquée. Valeur par défaut : GPL.Timeout ConnectionHdl DWORD Descripteur de connexion. NodeIDCount UINT Nombre d'identifiants de nœud dans le tableau NodeIDs. NodeIDs ARRAY [1..GPL.MAX_ELEMENTS_ NODELIST] OF UANodeID Tableau contenant des identifiants de noeud. Plage de valeurs : 1.. GPL.MAX_ELEMENTS_ NODELIST] Sortie Type de données Description Done BOOL Indique que l’exécution du bloc fonction est terminée et réussie. Busy BOOL Indique que l’exécution du bloc fonction est en cours. Error BOOL Indique qu'une erreur a été détectée durant l'exécution. NOTE: Même si Error indique FALSE, vérifiez les ErrorIDs correspondants avant de traiter les index d'espace de noms. ErrorID ET_Result, page 21 Fournit des informations de diagnostic complémentaires sous forme de valeur numérique. Pour chaque URI d'espace de noms, un résultat distinct est fourni. NodeErrorIDs ARRAY [1..GPL.MAX_ELEMENTS_ NODELIST] OF ET_Result, page 21 Contient une valeur d'erreur pour chaque élément du tableau NodeHdls. NodeHdls ARRAY [1..GPL.MAX_ELEMENTS_ NODELIST] OF DWORD Fournit des descripteurs de noeud récupérés. UA_NodeGetInformation - Description fonctionnelle Présentation 66 Type : Bloc fonction Disponible à partir de la version : V1.0.0.0 EIO0000004022.01 Description du bloc fonction OpcUaHandling Description fonctionnelle Le bloc fonction UA_NodeGetInformation permet d'obtenir des informations relatives aux noeuds. NOTE: Ne modifiez pas les paramètres lorsque le bloc fonction est en cours d'exécution (Busy = TRUE). Interface Entrée Type de données Description Execute BOOL Sur un front montant, le bloc fonction est en cours d'exécution. Voir aussi Utilisation des blocs fonction avec l'entrée Execute, page 19. Timeout TIME Temps de réponse maximal. Plage de valeurs : 2 s ... 60 s Si la valeur est hors plage, la limite supérieure ou inférieure est appliquée. Valeur par défaut : GPL.Timeout ConnectionHdl DWORD Descripteur de connexion. NodeID UANodeID, page 37 ID du nœud. Sortie Type de données Description Done BOOL Indique que l’exécution du bloc fonction est terminée et réussie. Busy BOOL Indique que l’exécution du bloc fonction est en cours. Error BOOL Indique qu'une erreur a été détectée durant l'exécution. NOTE: Même si Error indique FALSE, vérifiez les ErrorIDs correspondants avant de traiter les index d'espace de noms. NodeGetInfoErrorIDs ARRAY [0..21] OF ET_Result, page 21 Fournit une valeur d'erreur pour chaque élément du tableau NodeHdls. NodeInfo UANodeInformation, page 38 Fournit des informations sur les nœuds. UA_NodeReleaseHandleList - Description fonctionnelle Présentation EIO0000004022.01 Type : Bloc fonction Disponible à partir de la version : V1.0.0.0 67 OpcUaHandling Description du bloc fonction Description fonctionnelle Le bloc fonction UA_NodeReleaseHandleList permet de libérer plusieurs descripteurs de noeud. NOTE: Ne modifiez pas les paramètres lorsque le bloc fonction est en cours d'exécution (Busy = TRUE). Interface Entrée Type de données Description Execute BOOL Sur un front montant, le bloc fonction est en cours d'exécution. Voir aussi Utilisation des blocs fonction avec l'entrée Execute, page 19. Timeout TIME Temps de réponse maximal. Plage de valeurs : 2 s ... 60 s Si la valeur est hors plage, la limite supérieure ou inférieure est appliquée. Valeur par défaut : GPL.Timeout ConnectionHdl DWORD Descripteur de connexion. NodeHdlCount UINT Nombre de descripteurs de nœud dans le tableau NodeHdls. Plage de valeurs : 1..GPL.MAX_ELEMENTS_ NODELIST] NodeHdls ARRAY [1..GPL.MAX_ELEMENTS_ NODELIST] OF DWORD Tableau contenant des descripteurs de noeud. Sortie Type de données Description Done BOOL Indique que l’exécution du bloc fonction est terminée et réussie. Busy BOOL Indique que l’exécution du bloc fonction est en cours. Error BOOL Indique qu'une erreur a été détectée durant l'exécution. NOTE: Même si Error indique FALSE, vérifiez les ErrorIDs correspondants avant de traiter les index d'espace de noms. ErrorID ET_Result, page 21 Fournit des informations de diagnostic complémentaires sous forme de valeur numérique. Pour chaque URI d'espace de noms, un résultat distinct est fourni. NodeErrorIDs ARRAY [1..GPL.MAX_ELEMENTS_ NODELIST] OF ET_Result, page 21 Contient une valeur d'erreur pour chaque élément du tableau NodeHdls. UA_ReadList - Description fonctionnelle Présentation 68 Type : Bloc fonction Disponible à partir de la version : V1.0.0.0 EIO0000004022.01 Description du bloc fonction OpcUaHandling Description fonctionnelle Le bloc fonction UA_ReadList permet lire les valeurs de plusieurs nœuds à l'aide d'une liste de descripteurs de nœuds. NOTE: Ne modifiez pas les paramètres lorsque le bloc fonction est en cours d'exécution (Busy = TRUE). Interface Entrée Type de données Description Execute BOOL Sur un front montant, le bloc fonction est en cours d'exécution. Voir aussi Utilisation des blocs fonction avec l'entrée Execute, page 19. Timeout TIME Temps de réponse maximal. Plage de valeurs : 2 s ... 60 s Si la valeur est hors plage, la limite supérieure ou inférieure est appliquée. Valeur par défaut : GPL.Timeout ConnectionHdl DWORD Descripteur de connexion. NodeHdlCount UINT Nombre de descripteurs de nœud dans le tableau NodeHdls. Plage de valeurs : 1..GPL.MAX_ELEMENTS_ NODELIST] NodeHdls ARRAY [1..GPL.MAX_ELEMENTS_ NODELIST] OF DWORD Tableau contenant des descripteurs de noeud. NodeAddInfos ARRAY [1..GPL.MAX_ELEMENTS_ NODELIST] OF UANodeAdditionalInfo, page 36 Tableau contenant des informations complémentaires sur les noeuds, par exemple l'attribut ou la plage d'index. Entrée/sortie Type de données Description Variables ARRAY [1..GPL.MAX_ELEMENTS_ NODELIST] OF ST_Variable Array containing information about the variables to read and the corresponding memory areas. NOTE: Do not process the variables until the function block indicates Done. Sortie Type de données Description Done BOOL Indique que l’exécution du bloc fonction est terminée et réussie. Busy BOOL Indique que l’exécution du bloc fonction est en cours. Error BOOL Indique qu'une erreur a été détectée durant l'exécution. EIO0000004022.01 69 OpcUaHandling Description du bloc fonction Sortie Type de données Description NOTE: Même si Error indique FALSE, vérifiez les ErrorIDs correspondants avant de traiter les index d'espace de noms. ErrorID ET_Result, page 21 Fournit des informations de diagnostic complémentaires sous forme de valeur numérique. Pour chaque URI d'espace de noms, un résultat distinct est fourni. NodeErrorIDs ARRAY [1..GPL.MAX_ELEMENTS_ NODELIST] OF ET_Result, page 21 Contient une valeur d'erreur pour chaque élément du tableau NodeHdls. TimeStamps ARRAY [1..GPL.MAX_ELEMENTS_ NODELIST] OF DATE_AND_TIME Contient un horodatage pour chaque élément valide du tableau NodeHdls. Exemple L'exemple suivant montre comment lire des éléments d'un tableau publié par le serveur OPC UA. Les entrées Variables.pbyBuffer et Variables.udiBufferSize décrivent la mémoire allouée dans l'application du contrôleur où les éléments lus sont écrits. L'entrée NodeAddInfos décrit les éléments à lire sur le serveur OPC UA. NOTE: Dans le cas d'un tableau de type chaîne, la taille de la mémoire tampon doit correspondre au nombre d'octets renvoyés par le serveur OPC UA, qui dépendent de la définition du type de données sur le serveur et des informations supplémentaires fournies sur les nœuds. Pour les autres types de données, la taille de la mémoire tampon doit être au moins égale au nombre d'octets reçus. UA_SubscriptionCreate - Description fonctionnelle Présentation 70 Type : Bloc fonction Disponible à partir de la version : V2.0.0.0 EIO0000004022.01 Description du bloc fonction OpcUaHandling Description fonctionnelle Le bloc fonction UA_SubscriptionCreate permet de créer une inscription. Interface Entrée Type de données Description Execute BOOL Sur un front montant, le bloc fonction est en cours d'exécution. Voir aussi Utilisation des blocs fonction avec l'entrée Execute, page 19. Timeout TIME Temps de réponse maximal. Plage de valeurs : 2 s ... 60 s Si la valeur est hors plage, la limite supérieure ou inférieure est appliquée. Valeur par défaut : GPL.Timeout ConnectionHdl DWORD Descripteur de connexion. PublishingEnable BOOL Activer la publication. Valeur par défaut : TRUE Priority BYTE Priorité de l'inscription située sur le serveur par rapport aux autres inscriptions créées par ce client. Plus la valeur est élevée, plus la priorité est élevée. Entrée/Sortie Type de données Description PublishingInterval TIME Définit l'intervalle selon lequel le serveur publie les nouvelles valeurs. Le serveur peut modifier l'intervalle de publication. Sortie Type de données Description Done BOOL Indique que l’exécution du bloc fonction est terminée et réussie. Busy BOOL Indique que l’exécution du bloc fonction est en cours. Error BOOL Indique qu'une erreur a été détectée durant l'exécution. NOTE: Même si Error indique FALSE, vérifiez les ErrorIDs correspondants avant de traiter les index d'espace de noms. ErrorID ET_Result, page 21 Fournit des informations de diagnostic complémentaires sous forme de valeur numérique. Pour chaque URI d'espace de noms, un résultat distinct est fourni. SubscriptionHdl EIO0000004022.01 DWORD Descripteur d'inscription 71 OpcUaHandling Description du bloc fonction UA_SubscriptionDelete - Description fonctionnelle Présentation Type : Bloc fonction Disponible à partir de la version : V2.0.0.0 Description fonctionnelle Le bloc fonction UA_SubscriptionDelete permet de supprimer une inscription. Interface Entrée Type de données Description Execute BOOL Sur un front montant, le bloc fonction est en cours d'exécution. Voir aussi Utilisation des blocs fonction avec l'entrée Execute, page 19. Timeout TIME Temps de réponse maximal. Plage de valeurs : 2 s ... 60 s Si la valeur est hors plage, la limite supérieure ou inférieure est appliquée. Valeur par défaut : GPL.Timeout SubscriptionHdl DWORD Descripteur d'inscription Sortie Type de données Description Done BOOL Indique que l’exécution du bloc fonction est terminée et réussie. Busy BOOL Indique que l’exécution du bloc fonction est en cours. Error BOOL Indique qu'une erreur a été détectée durant l'exécution. NOTE: Même si Error indique FALSE, vérifiez les ErrorIDs correspondants avant de traiter les index d'espace de noms. ErrorID ET_Result, page 21 Fournit des informations de diagnostic complémentaires sous forme de valeur numérique. Pour chaque URI d'espace de noms, un résultat distinct est fourni. UA_SubscriptionProcessed - Description fonctionnelle Présentation 72 Type : Bloc fonction Disponible à partir de la version : V2.0.0.0 EIO0000004022.01 Description du bloc fonction OpcUaHandling Description fonctionnelle Le bloc fonction UA_SubscriptionProcessed peut être appelé pour vérifier si les valeurs de plusieurs éléments surveillés dans une inscription ont été publiées. NOTE: Le bloc fonction UA_SubscriptionProcessed n'est utilisable qu'avec le mode de synchronisation de firmware SyncMode UAMS_FwSync, page 27. Avec ce mode de synchronisation, les valeurs sont publiées automatiquement par le système sous-jacent. Interface Entrée Type de données Description Execute BOOL Sur un front montant, le bloc fonction est en cours d'exécution. Voir aussi Utilisation des blocs fonction avec l'entrée Execute, page 19. Timeout TIME Temps de réponse maximal. Plage de valeurs : 2 s ... 60 s Si la valeur est hors plage, la limite supérieure ou inférieure est appliquée. Valeur par défaut : GPL.Timeout SubscriptionHdl DWORD Descripteur d'inscription Sortie Type de données Description Done BOOL Indique que l’exécution du bloc fonction est terminée et réussie. Busy BOOL Indique que l’exécution du bloc fonction est en cours. Error BOOL Indique qu'une erreur a été détectée durant l'exécution. NOTE: Même si Error indique FALSE, vérifiez les ErrorIDs correspondants avant de traiter les index d'espace de noms. ErrorID ET_Result, page 21 Fournit des informations de diagnostic complémentaires sous forme de valeur numérique. Pour chaque URI d'espace de noms, un résultat distinct est fourni. Published EIO0000004022.01 BOOL Indique que les variables ont été publiées depuis le dernier appel. 73 OpcUaHandling Description du bloc fonction UA_TranslatePathList - Description fonctionnelle Présentation Type : Bloc fonction Disponible à partir de la version : V2.0.0.0 NOTE: Ne modifiez pas les paramètres lorsque le bloc fonction est en cours d'exécution (Busy = TRUE). Description fonctionnelle Le bloc fonction UA_TranslatePathList permet d'obtenir les paramètres d'un nœud en utilisant le chemin du nœud pour plusieurs nœuds. Interface Entrée Type de données Description Execute BOOL Sur un front montant, le bloc fonction est en cours d'exécution. Voir aussi Utilisation des blocs fonction avec l'entrée Execute, page 19. Timeout TIME Temps de réponse maximal. Plage de valeurs : 2 s ... 60 s Si la valeur est hors plage, la limite supérieure ou inférieure est appliquée. Valeur par défaut : GPL.Timeout ConnectionHdl DWORD Descripteur de connexion. BrowsePathsCount UINT Nombre de chemins de nœuds dans le tableau BrowsePaths. Ne doit pas dépasser la taille définie avec GPL. MAX_ELEMENTS_RELATIVEPATH ou GPL.MAX_ELEMENTS_NODELIST. BrowsePaths ARRAY [1..GPL. MAX_ELEMENTS_ RELATIVEPATH] OF UABrowsePath Tableau contenant des chemins des nœuds. Sortie Type de données Description Done BOOL Indique que l’exécution du bloc fonction est terminée et réussie. Busy BOOL Indique que l’exécution du bloc fonction est en cours. Error BOOL Indique qu'une erreur a été détectée durant l'exécution. NOTE: Même si Error indique FALSE, vérifiez les ErrorIDs correspondants avant de traiter les index d'espace de noms. ErrorID 74 ET_Result, page 21 Fournit des informations de diagnostic complémentaires sous forme de valeur numérique. EIO0000004022.01 Description du bloc fonction OpcUaHandling Sortie Type de données Description Pour chaque URI d'espace de noms, un résultat distinct est fourni. TargetNodeIDs ARRAY [1..GPL. MAX_ELEMENTS_ NODELIST] OF UANodeID Contient les paramètres de chaque nœud cible indiqué dans le tableau BrowsePaths. TargetErrorIDs ARRAY [1..GPL. MAX_ELEMENTS_ NODELIST] OF ET_Result Contient une valeur d'erreur pour chaque élément du tableau BrowsePaths. UA_WriteList - Description fonctionnelle Présentation Type : Bloc fonction Disponible à partir de la version : V1.0.0.0 Description fonctionnelle Le bloc fonction UA_WriteList permet d'écrire les valeurs de plusieurs nœuds à l'aide d'une liste de descripteurs de nœuds. NOTE: Ne modifiez pas les paramètres lorsque le bloc fonction est en cours d'exécution (Busy = TRUE). Interface Entrée Type de données Description Execute BOOL Sur un front montant, le bloc fonction est en cours d'exécution. Voir aussi Utilisation des blocs fonction avec l'entrée Execute, page 19. Timeout TIME Temps de réponse maximal. Plage de valeurs : 2 s ... 60 s Si la valeur est hors plage, la limite supérieure ou inférieure est appliquée. Valeur par défaut : GPL.Timeout ConnectionHdl DWORD Descripteur de connexion. NodeHdlCount UINT Nombre de descripteurs de nœud dans le tableau NodeHdls. Plage de valeurs : 1..GPL.MAX_ELEMENTS_ NODELIST] EIO0000004022.01 75 OpcUaHandling Description du bloc fonction Entrée Type de données Description NodeHdls ARRAY [1..GPL.MAX_ELEMENTS_ NODELIST] OF DWORD Tableau contenant des descripteurs de noeud. NodeAddInfos ARRAY [1..GPL.MAX_ELEMENTS_ NODELIST] OF UANodeAdditionalInfo, page 36 Tableau contenant des informations complémentaires sur les noeuds, par exemple l'attribut ou la plage d'index. Entrée/sortie Type de données Description Variables ARRAY [1..GPL.MAX_ELEMENTS_ NODELIST] OF ST_Variable Array containing information about the variables to read and the corresponding memory areas. NOTE: Do not process the variables until the function block indicates Done. Sortie Type de données Description Done BOOL Indique que l’exécution du bloc fonction est terminée et réussie. Busy BOOL Indique que l’exécution du bloc fonction est en cours. Error BOOL Indique qu'une erreur a été détectée durant l'exécution. NOTE: Même si Error indique FALSE, vérifiez les ErrorIDs correspondants avant de traiter les index d'espace de noms. ErrorID ET_Result, page 21 Fournit des informations de diagnostic complémentaires sous forme de valeur numérique. Pour chaque URI d'espace de noms, un résultat distinct est fourni. NodeErrorIDs ARRAY [1..GPL.MAX_ELEMENTS_ NODELIST] OF ET_Result, page 21 Contient une valeur d'erreur pour chaque élément du tableau NodeHdls. Exemple L'exemple suivant montre comment écrire des éléments d'un tableau publié par le serveur OPC UA. Les entrées Variables.pbyBuffer et Variables.udiBufferSize décrivent la mémoire allouée dans l'application du contrôleur contenant les éléments à écrire. L'entrée NodeAddInfos décrit les éléments du serveur OPC UA à remplacer. 76 EIO0000004022.01 Fonctions OpcUaHandling Fonctions Contenu de ce chapitre FC_Et•••ToString...........................................................................................77 FC_Et•••ToString Présentation Exemple d'une fonction de conversion EnumToString. Tâche Convertir une variable du type d'énumération correspondante, page 21 en variable de type STRING. Interface Entrée Type de données Description i_etResult Énumération correspondante de cette bibliothèque. Énumération à convertir. Type de données Description STRING(80) Fournit le texte correspondant. Valeur renvoyée EIO0000004022.01 77 OpcUaHandling Glossaire F FCL: Acronyme de forward compatible library, bibliothèque à compatibilité ascendante. Une bibliothèque post-compatible est développée pour que ses fonctionnalités soient post-compatibles, ce qui signifie que chacune de ses versions reprend l'ensemble des fonctions de la version précédente. Vous pouvez donc facilement utiliser une nouvelle version de bibliothèque dans un projet existant, sans apporter aucune modification. O OPC UA: Acronyme de « OPC Unified Architecture », architecture unifiée OPC. OPC UA est une norme d'interopérabilité qui régit l'échange sécurisé et fiable de données dans le domaine des automatismes industriels. Il s'agit d'un protocole de communication indépendant des plates-formes qui utilise le modèle serveur/ client. La connexion entre le client et le serveur est généralement basée sur le protocole de couche de transport fiable TCP (Transmission Control Protocol). Pour plus d'informations sur les technologies OPC, en particulier sur la norme OPC UA, consultez le site Web officiel de l'OPC Foundation à l'adresse https:// opcfoundation.org. T TCP: Acronyme de transmission control protocol, protocole de contrôle de transmission. Protocole de couche de transport basé sur la connexion qui assure la transmission de données simultanée dans les deux sens. Le protocole TCP fait partie de la suite de protocoles TCP/IP. EIO0000004022.01 79 OpcUaHandling Index E entrées et sorties communes fonctionnement des blocs fonction avec l'entrée Execute ...........................................................19 ET_Result ............................................................21 BrowseFailed.....................................................22 BufferSizeMismatch ...........................................22 BufferSizeTooSmall............................................22 CorruptedResponse ...........................................21 DataTypeMismatch ............................................22 DimensionsMismatch .........................................22 IecTimeout ........................................................22 IncompatibleDataTypeOfIecSymbol.....................23 IncompatibleNodeDataTypeWithSyncMode .........22 InternalError ......................................................21 InvalidAttributeID ...............................................22 InvalidBrowseDescriptionDirection ......................22 InvalidBrowsePathCount ....................................22 InvalidBufferAddress ..........................................22 InvalidDeadbandType ........................................22 InvalidIdentifier ..................................................22 InvalidIdentifierType ...........................................22 InvalidIndexRange .............................................22 InvalidIndexRangeCount ....................................21 InvalidMonitorConnection ...................................21 InvalidMonitoredItemHdlCount ............................22 InvalidNamespaceUri .........................................22 InvalidNamespaceUrisCount ..............................22 InvalidNodeHdlCount .........................................21 InvalidNodeIDCount ...........................................21 InvalidNumberOfElements..................................22 InvalidQueueSize...............................................22 InvalidRelativePathTargetName ..........................22 InvalidResultMask..............................................22 InvalidSecurityMsgMode ....................................22 InvalidSecurityPolicy ..........................................22 InvalidServerEndpointUrl ....................................21 InvalidSessionTimeout .......................................21 InvalidTransportProfile .......................................21 InvalidUserIdentityTokenParam...........................22 InvalidUserIdentityTokenType .............................21 MaxBrowseResultExceeded ...............................23 MonitoredItemMaxReached................................22 MonitoredItemsNotExists....................................23 NotEnoughMemory ............................................22 OnlineChangeDetected ......................................22 OpcUa_API_BadContinue ..................................23 OpcUa_API_BadCryptoKeyTooLong ...................23 OpcUa_API_BadCryptoKeyTooShort ..................23 OpcUa_API_BadExtensibleParameterInvalid.......23 OpcUa_API_ BadExtensibleParameterUnsupported ...............23 OpcUa_API_BadFileExists .................................23 OpcUa_API_BadFileNotFound ...........................23 OpcUa_API_BadHostUnknown...........................23 OpcUa_API_BadHttpMethodNotAllowed .............23 OpcUa_API_BadMessageTooLarge....................23 OpcUa_API_BadSecurityConfig..........................23 OpcUa_API_ BadSignatureAlgorithmNotAllowed ....................23 OpcUa_API_BadSignatureInvalid .......................23 OpcUa_API_BadTooManyPosts .........................23 OpcUa_API_BadWrongReceiverCertificate .........23 PublishingNotEnabledNotSupported ...................22 SessionNodeHdlAlreadyExist .............................22 EIO0000004022.01 StackNotEnabled ...............................................23 SubscriptionExists .............................................22 SubscriptionNotExists ........................................22 Timeout.............................................................22 TranslatePathListFailed ......................................22 ET_VarType..........................................................23 UATypeBool ......................................................24 UATypeByte ......................................................24 UATypeDateTime...............................................24 UATypeDouble...................................................24 UATypeFloat......................................................24 UATypeIECSymbol ............................................24 UATypeInt16......................................................24 UATypeInt32......................................................24 UATypeInt64......................................................24 UATypeNull .......................................................24 UATypeSByte ....................................................24 UATypeString ....................................................24 UATypeUInt16 ...................................................24 UATypeUInt32 ...................................................24 UATypeUInt64 ...................................................24 F FC_EtResultToString .............................................77 FC_EtVarTypeToString ..........................................77 G GCL (liste des constantes globales) OpcUaHandling .................................................47 GPL OpcUaHandling .................................................48 O OpcUaHandling.....................................................16 GCL (liste des constantes globales) ....................47 GPL ..................................................................48 S ST_Variable ..........................................................31 U UA_Browse ..........................................................55 UA_Connect .........................................................56 UA_ConnectionGetStatus ......................................57 UA_Disconnect .....................................................59 UA_MonitoredItemAddList .....................................60 UA_MonitoredItemOperateList ...............................62 UA_MonitoredItemRemoveList...............................63 UA_NamespaceGetIndexList .................................64 UA_NodeGetHandleList ........................................65 UA_NodeGetInformation........................................66 UA_NodeReleaseHandleList..................................67 UA_ReadList ........................................................68 UA_SubscriptionCreate .........................................70 UA_SubscriptionDelete..........................................72 UA_SubscriptionProcessed ...................................72 UA_TranslatePathList ............................................74 UA_WriteList.........................................................75 UAAttributeID........................................................24 UAAI_AccessLevel ............................................25 UAAI_ArrayDimensions......................................25 81 OpcUaHandling UAAI_BrowseName ...........................................24 UAAI_ContainsNoLoops.....................................25 UAAI_DataType.................................................25 UAAI_Description ..............................................25 UAAI_DisplayName ...........................................24 UAAI_EventNotifier ............................................25 UAAI_Executable...............................................25 UAAI_Historizing................................................25 UAAI_InverseName ...........................................25 UAAI_IsAbstract ................................................25 UAAI_MinimumSamplingInterval.........................25 UAAI_NodeClass...............................................24 UAAI_NodeID....................................................24 UAAI_Symmetric ...............................................25 UAAI_UserAccessLevel .....................................25 UAAI_UserExecutable........................................25 UAAI_UserWriteMask ........................................25 UAAI_Value.......................................................25 UAAI_ValueRank ...............................................25 UAAI_WriteMask ...............................................25 UABrowseDescription............................................32 UABrowseDirection ...............................................25 UABD_Both.......................................................25 UABD_Forward .................................................25 UABD_Inverse...................................................25 UABrowsePath .....................................................32 UABrowseResultMask ...........................................44 UAConnectionStatus .............................................26 UACS_Connected .............................................26 UACS_ConnectionError .....................................26 UACS_Shutdown...............................................26 UADeadbandType .................................................44 UAExpandedNodeID .............................................33 UAIdentifierType ...................................................26 UAIndexRange .....................................................33 UALocalizedText ...................................................34 UAMonitoredVariables...........................................35 UAMonitoringParameter ........................................35 UAMonitoringSyncMode ........................................27 UAMS_ControllerSync .......................................27 UAMS_FwSync .................................................27 UAMS_Unknown ...............................................27 UANodeAdditionalInfo ...........................................36 UANodeClassMask ...............................................45 UANodeID ............................................................37 UANodeInformation...............................................37 UAQualifiedName .................................................39 UAReferenceDescription .......................................40 UARelativePath.....................................................40 UARelativePathElement ........................................41 UASecurityMsgMode.............................................27 UASMM_BestAvailable ......................................27 UASMM_None ..................................................27 UASMM_Sign....................................................27 UASMM_SignEncrypt ........................................27 UASecurityPolicy ..................................................28 UASP_Basic128Rsal5........................................28 UASP_Basic256 ................................................28 UASP_Basic256Sha256.....................................28 UASP_BestAvailable..........................................28 UASP_None......................................................28 UAServerState......................................................28 UASS_CommunicationFault ...............................29 UASS_Failed.....................................................28 UASS_NoConfiguration......................................28 UASS_Running .................................................28 UASS_Shutdown ...............................................28 UASS_Suspended .............................................28 UASS_Test........................................................28 82 UASS_Unknown ................................................29 UASessionConnectInfo..........................................41 UATransportProfile ................................................29 UATP_UATcp.....................................................29 UATP_WSHttpBinary .........................................29 UATP_WSHttpXml .............................................29 UATP_WSHttpXmlOrBinary................................29 UAUserIdentityToken.............................................43 UAUserIdentityTokenType .....................................29 UAUITT_Anonymous .........................................29 UAUITT_IssuedToken ........................................30 UAUITT_Username ...........................................29 UAUITT_x509....................................................30 UITdentifierType UAIT_GUID .......................................................26 UAIT_Numeric ...................................................26 UAIT_Opaque ...................................................26 UAIT_String.......................................................26 EIO0000004022.01 Schneider Electric 35 rue Joseph Monier 92500 Rueil Malmaison France + 33 (0) 1 41 29 70 00 www.se.com Les normes, spécifications et conceptions pouvant changer de temps à autre, veuillez demander la confirmation des informations figurant dans cette publication. © 2021 – Schneider Electric. Tous droits réservés. EIO0000004022.01 EcoStruxure Machine Expert EIO0000002963 09/2020 EcoStruxure Machine Expert Fonctions Lecture/Ecriture Modbus et ASCII Guide de la bibliothèque PLCCommunication EIO0000002963.01 09/2020 www.schneider-electric.com Le présent document comprend des descriptions générales et/ou des caractéristiques techniques des produits mentionnés. Il ne peut pas être utilisé pour définir ou déterminer l'adéquation ou la fiabilité de ces produits pour des applications utilisateur spécifiques. Il incombe à chaque utilisateur ou intégrateur de réaliser l'analyse de risques complète et appropriée, l'évaluation et le test des produits pour ce qui est de l'application à utiliser et de l'exécution de cette application. Ni la société Schneider Electric ni aucune de ses sociétés affiliées ou filiales ne peuvent être tenues pour responsables de la mauvaise utilisation des informations contenues dans le présent document. Si vous avez des suggestions, des améliorations ou des corrections à apporter à cette publication, veuillez nous en informer. Vous acceptez de ne pas reproduire, excepté pour votre propre usage à titre non commercial, tout ou partie de ce document et sur quelque support que ce soit sans l'accord écrit de Schneider Electric. Vous acceptez également de ne pas créer de liens hypertextes vers ce document ou son contenu. Schneider Electric ne concède aucun droit ni licence pour l'utilisation personnelle et non commerciale du document ou de son contenu, sinon une licence non exclusive pour une consultation « en l'état », à vos propres risques. Tous les autres droits sont réservés. Toutes les réglementations locales, régionales et nationales pertinentes doivent être respectées lors de l'installation et de l'utilisation de ce produit. Pour des raisons de sécurité et afin de garantir la conformité aux données système documentées, seul le fabricant est habilité à effectuer des réparations sur les composants. Lorsque des équipements sont utilisés pour des applications présentant des exigences techniques de sécurité, suivez les instructions appropriées. La non-utilisation du logiciel Schneider Electric ou d'un logiciel approuvé avec nos produits matériels peut entraîner des blessures, des dommages ou un fonctionnement incorrect. Le non-respect de cette consigne peut entraîner des lésions corporelles ou des dommages matériels. © 2020 Schneider Electric. Tous droits réservés. 2 EIO0000002963 09/2020 Table des matières Consignes de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . A propos de ce manuel. . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 1 Généralités sur les communications. . . . . . . . . . . . . . . . Fonctions de communication des contrôleurs . . . . . . . . . . . . . . . . . . . Paramètres génériques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 2 Types de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CommunicationErrorCodes : codes d'erreur de communication . . . . . OperationErrorCodes : Codes des erreurs d'opération . . . . . . . . . . . . LinkNumber : numéro de port de communication . . . . . . . . . . . . . . . . ObjectType : Types d'objets disponibles pour lecture/écriture . . . . . . ADDRESS : Adresse d'équipement externe . . . . . . . . . . . . . . . . . . . . ADDR_EXT : Extension d'adresse . . . . . . . . . . . . . . . . . . . . . . . . . . . TCP_ADDR_EXT : Extension d'adresse pour équipements TCP . . . . Chapitre 3 Description des blocs fonction . . . . . . . . . . . . . . . . . . . . Glossaire Index EIO0000002963 09/2020 ADDM : convertir une chaîne en adresse . . . . . . . . . . . . . . . . . . . . . . . READ_VAR : lire les données sur un équipement Modbus. . . . . . . . . . WRITE_VAR : écrire des données sur un équipement Modbus . . . . . . WRITE_READ_VAR : lire et écrire des registres internes sur un équipement Modbus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SINGLE_WRITE : écrire un registre sur un équipement Modbus . . . . SEND_RECV_MSG : envoyer et/ou recevoir des messages définis par l'utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ......................................... ......................................... 5 7 11 12 13 17 18 19 20 21 22 23 24 25 26 31 34 37 41 43 47 49 3 4 EIO0000002963 09/2020 Consignes de sécurité Informations importantes AVIS Lisez attentivement ces instructions et examinez le matériel pour vous familiariser avec l'appareil avant de tenter de l'installer, de le faire fonctionner, de le réparer ou d'assurer sa maintenance. Les messages spéciaux suivants que vous trouverez dans cette documentation ou sur l'appareil ont pour but de vous mettre en garde contre des risques potentiels ou d'attirer votre attention sur des informations qui clarifient ou simplifient une procédure. EIO0000002963 09/2020 5 REMARQUE IMPORTANTE L'installation, l'utilisation, la réparation et la maintenance des équipements électriques doivent être assurées par du personnel qualifié uniquement. Schneider Electric décline toute responsabilité quant aux conséquences de l'utilisation de ce matériel. Une personne qualifiée est une personne disposant de compétences et de connaissances dans le domaine de la construction, du fonctionnement et de l'installation des équipements électriques, et ayant suivi une formation en sécurité leur permettant d'identifier et d'éviter les risques encourus. QUALIFICATION DU PERSONNEL Une personne qualifiée est une personne qui a les qualifications suivantes : Compétences et connaissances liées à la construction et à l'exploitation d'équipements électriques et à l'installation. Connaissances et expérience en programmation de contrôle industriel. A reçu une formation en sécurité permettant de reconnaître et d'éviter les dangers potentiels. La personne qualifiée doit être capable de détecter d'éventuels dangers qui pourraient découler du paramétrage, de modifications des valeurs de paramétrage et plus généralement des équipements mécaniques, électriques ou électroniques. La personne qualifiée doit connaître les normes, dispositions et régulations liées à la prévention des accidents de travail, et doit les observer lors de la conception et de l'implémentation du système. INSTRUCTIONS D'UTILISATION Ce produit est une bibliothèque à utiliser avec un système de commande et des servoamplificateurs. La bibliothèque n'est conçue qu'en vue d'une utilisation telle que décrite dans la présente documentation, appliquée au secteur industriel. Observez en permanence les instructions applicables liées à la sécurité, les conditions spécifiques et les données techniques. Réalisez une analyse des risques en rapport avec l'utilisation spécifique avant d'utiliser ce produit. Prenez les mesures de sécurité qui découlent des résultats. Étant donné que ce produit est utilisé au sein d'un système qui l'englobe, vous devez assurer la sécurité du personnel par la conception même du système global (la conception de la machine, par exemple). Aucune autre utilisation n'est prévue. Toute autre utilisation pourrait être dangereuse. 6 EIO0000002963 09/2020 A propos de ce manuel Présentation Objectif du document Ce document décrit la bibliothèque PLCCommunication utilisée par les contrôleurs. Champ d'application Ce document a été actualisé pour le lancement d’EcoStruxureTM Machine Expert V1.2.5. Information spécifique au produit AVERTISSEMENT PERTE DE CONTROLE Le concepteur d'un système de commande doit envisager les modes de défaillance possibles des chemins de commande et, pour certaines fonctions de commande critiques, prévoir un moyen d'atteindre un état sécurisé en cas de défaillance d'un chemin, et après cette défaillance. Par exemple, l'arrêt d'urgence, l'arrêt en cas de surcourse, la coupure de courant et le redémarrage sont des fonctions de contrôle cruciales. Des canaux de commande séparés ou redondants doivent être prévus pour les fonctions de commande critique. Les liaisons de communication peuvent faire partie des canaux de commande du système. Soyez particulièrement attentif aux implications des retards de transmission imprévus ou des pannes de liaison. Respectez toutes les réglementations de prévention des accidents ainsi que les consignes de sécurité locales.1 Chaque implémentation de cet équipement doit être testée individuellement et entièrement pour s'assurer du fonctionnement correct avant la mise en service. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. 1 Pour plus d'informations, consultez les documents suivants ou leurs équivalents pour votre site d'installation : NEMA ICS 1.1 (dernière édition), « Safety Guidelines for the Application, Installation, and Maintenance of Solid State Control » (Directives de sécurité pour l'application, l'installation et la maintenance de commande statique) et NEMA ICS 7.1 (dernière édition), « Safety Standards for Construction and Guide for Selection, Installation, and Operation of Adjustable-Speed Drive Systems » (Normes de sécurité relatives à la construction et manuel de sélection, d'installation et d'exploitation de variateurs de vitesse). EIO0000002963 09/2020 7 Avant de tenter de fournir une solution (machine ou processus) pour une application spécifique en utilisant les POU trouvés dans la bibliothèque, vous devez tenir compte de la réalisation et de l'exécution des bonnes pratiques. La liste non exhaustive de ces pratiques liées à cette bibliothèque inclut l'analyse des risques, la sécurité fonctionnelle, la compatibilité des composants, les tests et la validation du système. AVERTISSEMENT UTILISATION INCORRECTE DES UNITES ORGANISATIONNELLES DU PROGRAMME Effectuez une analyse de la sécurité de l'application et des équipements installés. Vérifiez que les POU sont compatibles avec les équipements du système et n'ont pas d'effets inattendus sur le bon fonctionnement du système. Utilisez les paramètres appropriés, notamment les valeurs limites, et observez l'usure de la machine et son fonctionnement à l'arrêt. Vérifiez que les capteurs et déclencheurs sont compatibles avec les POU sélectionnés. Testez de manière approfondie toutes les fonctions durant la vérification et la mise en service dans tous les modes de fonctionnement. Indiquez des méthodes indépendantes pour les fonctions de commande critiques (arrêt d'urgence, conditions de dépassement des valeurs limites, etc.) en fonction d'une analyse de la sécurité, des règles correspondantes et des réglementations. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Terminologie utilisée dans les normes Les termes techniques, la terminologie, les symboles et les descriptions correspondantes employés dans ce manuel ou figurant dans ou sur les produits proviennent généralement des normes internationales. Dans les domaines des systèmes de sécurité fonctionnelle, des variateurs et de l'automatisme en général, les termes employés sont sécurité, fonction de sécurité, état sécurisé, défaut, réinitialisation du défaut, dysfonctionnement, panne, erreur, message d'erreur, dangereux, etc. Entre autres, les normes concernées sont les suivantes : 8 Norme Description IEC 61131-2:2007 Automates programmables - Partie 2 : exigences et essais des équipements ISO 13849-1:2015 Sécurité des machines : parties des systèmes de commande relatives à la sécurité. Principes généraux de conception EN 61496-1:2013 Sécurité des machines : équipements de protection électro-sensibles. Partie 1 : Prescriptions générales et essais ISO 12100:2010 Sécurité des machines - Principes généraux de conception - Appréciation du risque et réduction du risque EIO0000002963 09/2020 Norme Description EN 60204-1:2006 Sécurité des machines - Équipement électrique des machines - Partie 1 : règles générales ISO 14119:2013 Sécurité des machines - Dispositifs de verrouillage associés à des protecteurs - Principes de conception et de choix ISO 13850:2015 Sécurité des machines - Fonction d'arrêt d'urgence - Principes de conception IEC 62061:2015 Sécurité des machines - Sécurité fonctionnelle des systèmes de commande électrique, électronique et électronique programmable relatifs à la sécurité IEC 61508-1:2010 Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité : prescriptions générales. IEC 61508-2:2010 Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité : exigences pour les systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité. IEC 61508-3:2010 Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité : exigences concernant les logiciels. IEC 61784-3:2016 Réseaux de communication industriels - Profils - Partie 3 : Bus de terrain de sécurité fonctionnelle - Règles générales et définitions de profils. 2006/42/EC Directive Machines 2014/30/EU Directive sur la compatibilité électromagnétique 2014/35/EU Directive sur les basses tensions De plus, des termes peuvent être utilisés dans le présent document car ils proviennent d'autres normes telles que : Norme Description Série IEC 60034 Machines électriques rotatives Série IEC 61800 Entraînements électriques de puissance à vitesse variable Série IEC 61158 Communications numériques pour les systèmes de mesure et de commande – Bus de terrain utilisés dans les systèmes de commande industriels Enfin, le terme zone de fonctionnement utilisé dans le contexte de la description de dangers spécifiques a la même signification que les termes zone dangereuse ou zone de danger employés dans la directive Machines (2006/42/EC) et la norme ISO 12100:2010. NOTE : Les normes susmentionnées peuvent s'appliquer ou pas aux produits cités dans la présente documentation. Pour plus d'informations sur chacune des normes applicables aux produits décrits dans le présent document, consultez les tableaux de caractéristiques de ces références de produit. EIO0000002963 09/2020 9 10 EIO0000002963 09/2020 EcoStruxure Machine Expert Généralités sur les communications EIO0000002963 09/2020 Chapitre 1 Généralités sur les communications Généralités sur les communications Introduction Les blocs de fonction de communication du contrôleur se trouvent dans la bibliothèque PLCCommunication. Cette bibliothèque est automatiquement ajoutée au gestionnaire de bibliothèques lors de l'ajout au projet d'un contrôleur avec connectivité Ethernet ou lors de l'ajout d'un gestionnaire Modbus ou ASCII à la ligne série d'un contrôleur. Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page Fonctions de communication des contrôleurs 12 Paramètres génériques 13 EIO0000002963 09/2020 11 Généralités sur les communications Fonctions de communication des contrôleurs Introduction Cette section décrit le fonctionnement et la gestion des fonctions de communication des contrôleurs. Ces fonctions facilitent les communications entre des équipements spécifiques. La plupart des fonctions sont destinées aux échanges Modbus. L'une de ces fonctions (SEND_RECV_MSG) est utilisée par un gestionnaire ASCII afin de gérer l'échange de données entre équipements faisant appel à des protocoles autres que Modbus. NOTE : Les fonctions de communication sont traitées de manière asynchrone par rapport à la tâche applicative qui a appelé la fonction. NOTE : N'utilisez pas les blocs fonction de la bibliothèque PLCCommunication sur une ligne série avec un scrutateur d'E/S Modbus configuré. Ceci perturbe les échanges du scrutateur d'E/S Modbus. NOTE : Avant d'utiliser les blocs fonctionnels de cette bibliothèque pour la communication via un port Ethernet, vérifiez que l'état du port Ethernet indiqué par la variable ETH_R.i_wPortAIpStatus est DATA_EXCHANGE. Pour plus d'informations, consultez la description du type de données d'énumération ETH_R_PORT_IP_STATUS dans le guide de la bibliothèque PLCSystem de votre contrôleur (voir Modicon M262 Logic/Motion Controller, Fonctions et variables système, Guide de la bibliothèque système). Blocs fonction disponibles Ce tableau décrit les blocs fonction de communication pouvant être utilisés par les contrôleurs : Fonction Description ADDM (voir page 26) Cette fonction récupère l'adresse de destination d'un équipement externe sous forme de chaîne, puis la convertit en structure ADDRESS. READ_VAR Cette fonction permet de lire des registres ou des bits standard sur un équipement Modbus. WRITE_VAR Cette fonction permet d'écrire des registres ou des bits standard sur un équipement Modbus. (voir page 37) WRITE_READ_VAR Cette fonction permet de lire et d'écrire des registres ou des bits standard sur des équipements Modbus. SINGLE_WRITE Cette fonction permet d'écrire un registre unique sur un équipement externe. SEND_RECV_MSG Cette fonction permet de recevoir et d'envoyer des messages définis par l'utilisateur sur des supports sélectionnés (une ligne série par exemple). (voir page 31) (voir page 34) (voir page 41) (voir page 43) 12 EIO0000002963 09/2020 Généralités sur les communications Paramètres génériques Introduction Cette rubrique décrit la gestion et le fonctionnement des fonctions de communication des contrôleurs, en prenant comme exemple le bloc fonction READ_VAR. (La norme PLCopen définit les règles applicables aux blocs fonction.) NOTE : Ces paramètres sont communs à tous les blocs fonction PLCCommunication (à l'exception d'ADDM). Représentation graphique Les paramètres communs à tous les blocs fonction de la bibliothèque PLCCommunication s'affichent en surbrillance dans le graphique ci-dessous : Paramètres communs Ces paramètres sont partagés par plusieurs blocs fonction de la bibliothèque PLCCommunication : Entrée Type Commentaire Execute BOOL La fonction est exécutée sur le front montant de cette entrée. REMARQUE : lorsque l'entrée xExecute est définie sur TRUE lors du premier cycle de tâche en mode RUN après un redémarrage à froid ou à chaud, le front montant n'est pas détecté. Abort BOOL Abandonne l'opération en cours lors du front montant. Addr ADDRESS Adresse de l'équipement externe ciblé (il peut s'agir de la sortie du bloc fonction ADDM (voir page 26).) Timeout WORD Le timeout de l'échange est un multiple de 100 ms (0 pour l'infini). NOTE : Le paramètre Timeout time est réglé sur 1 s pour le HMI SCU et n'est pas configurable pour les blocs fonction de communication Modbus. REMARQUE : une opération du bloc fonction peut nécessiter plusieurs échanges. Le timeout s'applique à chaque échange entre le contrôleur et le modem. Ainsi, la durée totale d'exécution du bloc fonction peut s'avérer supérieure au timeout. EIO0000002963 09/2020 13 Généralités sur les communications Sortie Type Commentaire Done BOOL Le paramètre Done est défini sur TRUE lorsque la fonction s'est exécutée correctement. Busy BOOL Le paramètre Busy est défini sur TRUE lorsque la fonction est en cours d'exécution. Aborted BOOL Le paramètre Aborted est défini sur TRUE lorsque la fonction est annulée à l'aide de l'entrée Abort. Lorsque la fonction est annulée, CommError contient le code Canceled - 16#02 (échange interrompu à la demande de l'utilisateur). Error BOOL Le paramètre Error est défini sur TRUE lorsque la fonction est arrêtée suite à la détection d'une erreur. Lorsqu'une erreur est détectée, CommError et OperError permettent d'obtenir des informations sur celle-ci. CommError BYTE OperError DWORD Le paramètre CommError contient les codes des erreurs de communication (voir page 18). Le paramètre OperError contient les codes des erreurs d'opération (voir page 19). NOTE : Dès que la sortie Busy est remise à 0, une (et une seule) de ces trois sorties est définie sur 1 : Done Error Aborted Les blocs fonction nécessitent un front montant pour être déclenchés. Le bloc fonction doit d'abord visualiser l'entrée Execute avec la valeur False pour pouvoir détecter le front montant suivant. AVERTISSEMENT COMPORTEMENT IMPREVU DE L'EQUIPEMENT Effectuez toujours le premier appel d'un bloc fonction avec son entrée Execute définie sur FALSE afin que le front montant suivant soit détecté. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. 14 EIO0000002963 09/2020 Généralités sur les communications Exécution de la fonction La fonction est exécutée lors du front montant de l'entrée Execute. La sortie Busy est ensuite définie sur TRUE. La figure ci-dessous présente le comportement d'un bloc fonction lorsque l'opération est exécutée automatiquement (avec ou sans erreurs) : Note 1 : le bit Done ou Error est défini sur TRUE lors d'un cycle de tâche uniquement si Execute a déjà été redéfini sur FALSE à l'issue de l'opération. Annulation d'une fonction La figure ci-dessous présente l'annulation d'une fonction par l'application. Le front montant de l'entrée Abort annule la fonction en cours. En pareils cas, la sortie annulée est définie sur 1 et CommError contient le code Canceled - 16#02 (échange interrompu à la demande de l'utilisateur) : Note 1 : Le bit Abort est défini sur TRUE lors d'un cycle de tâche uniquement si Execute était déjà défini sur FALSE lorsque la demande d'abandon est survenue. EIO0000002963 09/2020 15 Généralités sur les communications 16 EIO0000002963 09/2020 EcoStruxure Machine Expert Types de données EIO0000002963 09/2020 Chapitre 2 Types de données Types de données Introduction Ce chapitre décrit les types de données utilisés par la bibliothèque PLCCommunication. Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page CommunicationErrorCodes : codes d'erreur de communication 18 OperationErrorCodes : Codes des erreurs d'opération 19 LinkNumber : numéro de port de communication 20 ObjectType : Types d'objets disponibles pour lecture/écriture 21 ADDRESS : Adresse d'équipement externe 22 ADDR_EXT : Extension d'adresse 23 TCP_ADDR_EXT : Extension d'adresse pour équipements TCP 24 EIO0000002963 09/2020 17 Types de données CommunicationErrorCodes : codes d'erreur de communication Description du type énumération Le type énumération CommunicationErrorCodes contient des informations relatives aux diagnostics de communication, telles que les interruptions et les erreurs détectées. Les valeurs stockées sont les suivantes : 18 Enumérateur Valeur (hex.) Description CommunicationOK 00 L'échange est valide. TimedOut 01 L'échange a été interrompu sur expiration du délai. Canceled 02 L'échange a été interrompu à la demande de l'utilisateur (commande Abort). BadAddress 03 Le format d'adresse est incorrect. BadRemoteAddr 04 L'adresse distante est incorrecte. BadMgtTable 05 Le format de la table de gestion est incorrect. BadParameters 06 Les paramètres spécifiques sont incorrects. ProblemSendingRq 07 Un problème est survenu lors de l'envoi de la requête à la destination. SystemRessourceMissing 0B Une ressource du système fait défaut. BadTransactionNb 0C Le numéro de transaction est incorrect. BadLength 0E La longueur est incorrecte. ProtocolSpecificError FE Le code d'erreur d'opération contient un code propre au protocole. Refused FF Le message a été refusé. EIO0000002963 09/2020 Types de données OperationErrorCodes : Codes des erreurs d'opération Description du type énumération Le type énumération OperationErrorCodes contient des codes qui correspondent aux erreurs détectées. 00 Lorsque le code d'erreur de communication est 00 hex (transaction correcte), le type énumération OperationErrorCodes peut renvoyer les valeurs suivantes : Enumérateur Valeur (hex.) Description OperationOK 00 L'échange est valide. NotProcessed_or_Target ResourceMissing 01 La requête n'a pas été traitée. BadResponse 02 La réponse reçue est incorrecte. FF Lorsque le code d'erreur de communication est FF hex (message refusé), le type énumération OperationErrorCodes peut renvoyer les valeurs suivantes : Enumérateur Valeur (hex.) Description NotProcessed_or_Target ResourceMissing 01 Ressource du système cible absente. BadLength 05 La longueur est incorrecte. CommChannelErr 06 La voie de communication est associée à une erreur détectée. BadAddr 07 L'adresse est incorrecte. SystemResourceMissing 0B Une ressource du système fait défaut. TargetCommInactive 0C Une fonction de communication cible n'est pas active. TargetMissing 0D La cible est absente. ChannelNotConfigured 0F La voie n'est pas configurée. FE Lorsque le code d'erreur de communication est FE hex, le type énumération OperationErrorCodes contient le code de détection d'erreur propre au protocole. (Reportez-vous aux codes de détection d'erreur de votre protocole.) EIO0000002963 09/2020 19 Types de données LinkNumber : numéro de port de communication Description du type énumération LinkNumber est un type de données énumération qui définit la liste des ports de communication disponibles. Les valeurs stockées sont les suivantes : Enumérateur Valeur (hex.) Description USBConsole 00 port USB non disponible pour les échanges de communication COM1 01 COM 1 série (lien série intégré) COM2 02 COM 2 série EthEmbed and TM4ES4 03 Modules d'extension TM4ES4 et lien Ethernet intégré CANEmbed 04 Lien CANopen intégré COM3 05 COM 3 série Si un module PCI série est installé, le lien de e module PCI est COM 2, quels que soient les emplacements PCI physiques utilisés. Si deux modules PCI sont installés, celui connecté aux emplacements PCI à gauche est COM 2, tandis que celui connecté aux emplacements PCI à droite est COM 3. 20 EIO0000002963 09/2020 Types de données ObjectType : Types d'objets disponibles pour lecture/écriture Description du type énumération Le type de données énumération ObjectType contient les types d'objets accessibles en lecture et/ou écriture. Le tableau ci-dessous donne la liste des valeurs de type de données, les types d'objet correspondants et les codes fonction de la requête Modbus associée à chaque bloc fonction : Fonctions de lecture/écriture et code fonction de requête Modbus associée Enumérateur Valeur (hex.) Type d'objet READ_VAR WRITE_VAR MW 00 Registre de maintien (16 bits) #3 (lecture des registres de sortie) #16 (écriture de #6 (écriture d'un plusieurs seul registre) registres) #23 (écriture-lecture de plusieurs registres) I 01 Sortie numérique (1 bits) #2 (lecture des entrées numériques) — — — Q 02 Bit interne ou sortie numérique (bobine) (1 bit) #1 (lecture des bits de sortie) #15 (écriture de — plusieurs bits de sortie) — IW 03 Registre d'entrée (16 bits) #4 (lecture des registres d'entrée) — — EIO0000002963 09/2020 SINGLE_WRITE — WRITE_READ_VAR 21 Types de données ADDRESS : Adresse d'équipement externe Description de la structure La structure de données ADDRESS contient une adresse d'équipement externe. Les variables stockées sont les suivantes : Variable Type Description _Type BYTE Réservés _CliID BYTE Réservés Rack BYTE Numéro de rack (toujours 0) Module BYTE Numéro de module (toujours 0) Link LinkNumber Numéro du port de communication _ProtId BYTE Réservé (0 pour Modbus) (voir page 20) AddrLen BYTE Longueur des variables Unitld et AddrExt (en octets) UnitId BYTE Numéro d'équipement (ex., adresse d'un esclave Modbus) AddrExt ADDR_EXT Contient une extension d'adresse sous la forme d'un tableau ou d'une structure spécifique (voir page 23) 22 EIO0000002963 09/2020 Types de données ADDR_EXT : Extension d'adresse Description d'union ADDR_EXT est un type de données UNION qui contient une extension d'adresse sous la forme d'un tableau ou d'une structure spécifique pour l'adresse TCP/IP. Les variables stockées sont les suivantes : Variable Type Description as_array ARRAY [0...7] OF BYTE Réservé (ouvert pour adressage de protocole différent) TcpAddr TCP_ADDR_EXT Structure pour les équipements TCP distants EIO0000002963 09/2020 23 Types de données TCP_ADDR_EXT : Extension d'adresse pour équipements TCP Description de la structure TCP_ADDR_EXT est un type de données structure qui contient une extension d'adresse pour des équipements TCP externes. Les variables stockées sont les suivantes : 24 Variable Type Description A BYTE Première valeur dans l'adresse IP A.B.C.D B BYTE Deuxième valeur dans l'adresse IP A.B.C.D C BYTE Troisième valeur dans l'adresse IP A.B.C.D D BYTE Dernière valeur dans l'adresse IP A.B.C.D port WORD numéro de port TCP (Modbus par défaut : 502) EIO0000002963 09/2020 EcoStruxure Machine Expert Description des blocs fonction EIO0000002963 09/2020 Chapitre 3 Description des blocs fonction Description des blocs fonction Introduction Ce chapitre décrit les blocs fonction de la bibliothèque PLCCommunication. Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page ADDM : convertir une chaîne en adresse 26 READ_VAR : lire les données sur un équipement Modbus 31 WRITE_VAR : écrire des données sur un équipement Modbus 34 WRITE_READ_VAR : lire et écrire des registres internes sur un équipement Modbus 37 SINGLE_WRITE : écrire un registre sur un équipement Modbus 41 SEND_RECV_MSG : envoyer et/ou recevoir des messages définis par l'utilisateur 43 EIO0000002963 09/2020 25 Description des blocs fonction ADDM : convertir une chaîne en adresse Description de la fonction Le bloc fonction ADDM convertit une adresse cible représentée sous la forme d'une chaîne, en une structure ADDRESS. Vous pouvez utiliser cette structure ADDRESS comme une entrée dans un bloc fonction de communication. Représentation graphique Description des paramètres spécifiques du bloc fonction ADDM Entrée/Sortie Type Commentaire AddrTable ADDRESS Structure ADDRESS à créer par le bloc fonction. Entrée Type Commentaire Execute BOOL Exécute la fonction lors du front montant. Addr STRING Adresse de type STRING à convertir en type ADDRESS (voir détails ci-dessous). Sortie Type Commentaire Done BOOL Done prend la valeur TRUE lorsque la fonction est exécutée correctement. NOTE : En cas d'annulation de l'opération avec l'entrée Abort, le paramètre Done n'est pas défini sur 1 (Aborted uniquement). Error BOOL Error est défini sur TRUE lorsque la fonction s'arrête suite à la détection d'une erreur. Lorsqu'une erreur est détectée, CommError et OperError permettent d'obtenir des informations sur celle-ci. CommError BYTE CommErrorLe paramètre contient lescodes des erreurs de communication (voir page 18). NOTE : Un front montant sur l'entrée Execute lance la conversion et renvoie une mise à jour instantanée de AddrTable. Cependant, si une erreur est détectée (c'est-à-dire que la chaîne Addr est incorrecte), le paramètre AddrTable conserve la dernière valeur. 26 EIO0000002963 09/2020 Description des blocs fonction Les blocs fonction nécessitent un front montant pour être déclenchés. Le bloc fonction doit d'abord visualiser l'entrée ExecuteFALSE avec la valeur pour pouvoir détecter le front montant suivant. AVERTISSEMENT FONCTIONNEMENT IMPRÉVU DE L'ÉQUIPEMENT Effectuez toujours le premier appel d'un bloc fonction avec son entrée Execute définie sur FALSE afin que le front montant suivant soit détecté. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Chaîne Addr pour le format d'adresse ASCII Pour l'adressage ASCII, seul le numéro du port de communication est nécessaire : '<communication port number>' Par exemple, utilisez la chaîne « 2 » pour envoyer un message libre sur la ligne série 2. Le tableau suivant décrit les champs dans la sortie ADDM pour le format d'adresse ASCII : Champ Type Valeur Exemple _Type BYTE Réservée Non utilisé _CliID BYTE Réservée Non utilisé Rack BYTE Numéro de rack (toujours 0) 0 Module BYTE Numéro de module (toujours 0) 0 Link LinkNumber <communication port number> 2 _ProtId BYTE Non utilisé Non utilisé AddrLen BYTE 0 0 UnitId BYTE Non utilisé Non utilisé AddrExt ADDR_EXT Non utilisé Non utilisé (voir page 20) Addr STRING pour le format d'adresse Modbus TCP Adresse d'un esclave Modbus TCP standard Pour le format d'adresse d'un esclave Modbus TCP standard, le numéro du port de communication (3 pour le port Ethernet intégré) et l'adresse IP cible sont nécessaires : '<communication port number>{<IP address>}' EIO0000002963 09/2020 27 Description des blocs fonction NOTE : Un esclave Modbus TCP standard utilise l'adresse Modbus 255 (la valeur UnitId par défaut). Cependant, la valeur d’un équipement Modbus TCP peut varier (par exemple, un TeSys utilise l'adresse Modbus 1). Dans ce cas, ajoutez la valeur UnitId: '<communication port number>{<IP address>}<UnitId>' Le port TCP 502 est utilisé par défaut. Vous pouvez utiliser un port non standard en ajoutant son numéro à l'adresse IP : '<communication port number>{<IP address>:<port>}' Par exemple, pour envoyer un message à l'adresse IP de l'esclave Modbus TCP 192.168.1.2 avec le port TCP 502 standard, utilisez la chaîne suivante : '3{192.168.1.2}' La fonction ADDM remplit l'entrée/sortie AddrTable avec les valeurs suivantes : Champ Type Valeur Exemple _Type BYTE Réservée Non utilisé _CliID BYTE Réservée Non utilisé Rack BYTE Numéro de rack 0 Module BYTE Numéro de module 0 Link LinkNumber <communication port number> 3 (voir page 20) _ProtId BYTE 0 pour Modbus 0 AddrLen BYTE UnitID + AdrExtLongueur des paramètres en octets 7 UnitId BYTE Adresse Modbus (255 par défaut) 255 AddrExt TCP_ADDR_EXT A 192 B 168 C 1 D 2 <port> (par défaut = 502) 502 Adresse d'un esclave Modbus série par le biais d'une passerelle Ethernet/Ligne série Vous pouvez également adresser un esclave Modbus par le biais d'une passerelle Ethernet/Ligne série : 28 EIO0000002963 09/2020 Description des blocs fonction La requête inclut le numéro du port de communication, l'adresse IP de la passerelle avec ou sans port TCP et l'adresse de l'esclave Modbus série (paramètre UnitId) : '<communication port number>{<IP address>}<slave address>' Par exemple, pour envoyer un message à l'adresse 5 de l'esclave Modbus série par le biais d'une passerelle Ethernet/Ligne série à l'adresse IP 192.168.1.2 avec le port TCP 502 standard, utilisez la chaîne suivante : '3{192.168.1.2}5' La fonction ADDM remplit l'entrée/sortie AddrTable avec les valeurs suivantes : Champ Taille Valeur Exemple _Type BYTE Réservée Non utilisé _CliID BYTE Réservée Non utilisé Rack BYTE Numéro de rack 0 Module BYTE Numéro de module 0 Link LinkNumber <communication port number> 3 (voir page 20) _ProtId BYTE 0 pour Modbus 0 AddrLen BYTE UnitID + AdrExtLongueur des paramètres en octets 7 UnitId BYTE <Adresse de l'esclave> 5 AddrExt TCP_ADDR_EX T A 192 B 168 C 1 D 2 Numéro de port TCP (par défaut = 502) 502 EIO0000002963 09/2020 29 Description des blocs fonction Exemple Cet exemple montre l’implémentation du bloc fonction ADDM en association avec le bloc fonction SINGLE_WRITE. Le bloc fonction ADDM convertit l’objet STRING '1.8' en variable stSlave8OnSL1 de type ADDRESS. Si la conversion est correctement effectuée, l’entrée Execute du bloc fonction suivant SINGLE_WRITE est déclenchée. 30 EIO0000002963 09/2020 Description des blocs fonction READ_VAR : lire les données sur un équipement Modbus Description de la fonction Le bloc fonction READ_VAR permet de lire des données sur un équipement externe utilisant le protocole Modbus. Représentation graphique Description des paramètres spécifiques du bloc fonction READ_VAR Entrée Type Commentaire ObjType ObjectType Le paramètre ObjType indique le type d'objet à lire (MW, I, IW, Q) (voir page 21). FirstObj DINT Le paramètre FirstObj indique la valeur d'index du premier objet à lire. Quantity UINT Le paramètre Quantity indique le nombre d'objets à lire : 1 à 125 : registres (types MW et IW) 1 à 2000 : bits (types I et Q) Buffer POINTER TO BYTE Adresse du pointeur sur le tableau qui contient les données reçues qui ont été lues de l’appareil cible. Le tableau doit être égal ou supérieur aux données à lire. Par exemple, la lecture de 4 registres requiert un tableau de 4 mots et la lecture de 32 bits requiert un tableau de 2 mots ou 4 octets, dont chaque bit est défini sur la valeur correspondante de l'équipement distant. Utilisez la fonction ADR pour transmettre l'adresse du premier octet du tableau (reportez-vous au diagramme CFC dans l'exemple (voir page 32)). EIO0000002963 09/2020 31 Description des blocs fonction NOTE : Pour empêcher tout accès non autorisé, par exemple un accès de pointeur (hors limites) dans la mémoire, veillez à ce que la taille du tableau lié à l’entrée Buffer soit égale ou supérieure aux données qui seront reçues sur l’équipement cible. Il est recommandé de lier le paramètre Quantity défini des données à lire dans la déclaration du tampon comme dans l’exemple suivant. Les paramètres d'entrée et de sortie communs à tous les blocs fonction de la bibliothèque PLCCommunication sont décrits dans une autre section (voir page 13). Exemple Cet exemple montre l’implémentation du bloc fonction READ_VAR en association avec le bloc fonction ADDM afin de lire deux registres commençant à l’adresse 1 d’un esclave Modbus. L’esclave Modbus est défini avec l’adresse 8 et doit être joignable via l’interface de ligne série 1. La condition préalable est la configuration de Modbus Manager en tant que maître sous l'interface de ligne série 1. 32 EIO0000002963 09/2020 Description des blocs fonction La figure ci-dessous illustre la déclaration et l'utilisation de la fonction READ_VAR : EIO0000002963 09/2020 33 Description des blocs fonction WRITE_VAR : écrire des données sur un équipement Modbus Description de la fonction Le bloc fonction WRITE_VAR permet d'écrire des objets sur un équipement externe utilisant le protocole Modbus. Représentation graphique Description des paramètres spécifiques du bloc fonction WRITE_VAR Entrée Type Commentaire ObjType ObjectType ObjType décrit le ou les types d'objet à écrire (MW, Q) (voir page 21). FirstObj DINT Le paramètre FirstObj indique l'index du premier objet à écrire. Quantity UINT Le paramètre Quantity indique le nombre d'objets à lire : 1 à 123 : registres (type MW) 1 à 1968 : bits (type Q) Buffer POINTER TO BYTE Adresse du pointeur sur le tableau qui contient les données à écrire sur l’appareil cible. Le tableau doit être égal ou supérieur aux données à écrire. Par exemple, si 4 registres doivent être écrits dans un tableau de 4 mots et l'écriture de 32 bits requiert un tableau de 2 mots ou 4 octets, chaque bit est défini sur la valeur correspondante. Utilisez la fonction ADR pour transmettre l'adresse du premier octet du tableau (reportez-vous au diagramme CFC dans l'exemple (voir page 36)). NOTE : Pour empêcher tout accès non autorisé, par exemple un accès de pointeur (hors limites) dans la mémoire, veillez à ce que la taille du tableau lié à l’entrée Buffer soit égale ou supérieure aux données qui seront écrites sur l’équipement cible. Il est recommandé de lier le paramètre Quantity défini des données à écrire dans la déclaration du tampon comme dans l’exemple suivant. 34 EIO0000002963 09/2020 Description des blocs fonction Les paramètres d'entrée et de sortie communs à tous les blocs fonction de la bibliothèque PLCCommunication sont décrits dans une autre section (voir page 13). AVERTISSEMENT INCOMPATIBILITE DES DONNEES ECHANGEES Vérifiez que les données échangées sont compatibles car les alignements de structures de données ne sont pas identiques pour tous les équipements. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. EIO0000002963 09/2020 35 Description des blocs fonction Exemple Cet exemple montre l’implémentation du bloc fonction WRITE_VAR en association avec le bloc fonction ADDM afin d’écrire 10 entrées (bobines) commençant à l’adresse 0 d’un esclave Modbus. L’esclave Modbus est défini avec l’adresse 8 et doit être joignable via l’interface de ligne série 1. La condition préalable est la configuration de Modbus Manager en tant que maître sous l'interface de ligne série 1. 36 EIO0000002963 09/2020 Description des blocs fonction WRITE_READ_VAR : lire et écrire des registres internes sur un équipement Modbus Description de la fonction Cette fonction permet de lire et d'écrire des registres internes (de type MW uniquement) sur un équipement externe utilisant le protocole Modbus. Ces opérations de lecture et d'écriture s'effectuent au cours d'une transaction unique. L'opération d'écriture est exécutée en premier. La fonction WRITE_READ_VAR peut ensuite : écrire des registres internes consécutifs et les consulter immédiatement pour vérifier leurs valeurs ; écrire des registres internes consécutifs et en lire d'autres en une seule requête. Représentation graphique Description des paramètres spécifiques du bloc fonction WRITE_READ_VAR Entrée Type Commentaire (voir page 21) ObjectType Le paramètre ObjType indique le type d'objet à écrire et à lire (MW uniquement). FirstWriteObj DINT Le paramètre FirstWriteObj indique l'index du premier objet à écrire. WriteQuantity UINT Le paramètre WriteQuantity indique le nombre d'objets à écrire : 1 à 121 : registres (type MW) WriteBuffer POINTER TO BYTE Adresse du pointeur sur le tableau qui contient les données à écrire sur l’appareil cible. Le tableau doit être égal ou supérieur aux données à écrire. Utilisez la fonction ADR pour transmettre l'adresse du premier octet du tableau (reportez-vous au diagramme CFC dans l'exemple (voir page 39)). FirstReadObj DINT Le paramètre ReadFirstObj indique la valeur d'index du premier objet à lire. ObjType EIO0000002963 09/2020 37 Description des blocs fonction Entrée Type Commentaire ReadQuantity UINT Le paramètre ReadQuantity indique le nombre d'objets à lire : 1 à 125 : registres (type MW) ReadBuffer POINTER TO BYTE Adresse du pointeur sur le tableau qui contient les données reçues qui ont été lues de l’appareil cible. Le tableau doit être égal ou supérieur aux données à lire. Utilisez la fonction ADR pour transmettre l'adresse du premier octet du tableau (reportez-vous au diagramme CFC dans l'exemple (voir page 39)). NOTE : Pour empêcher tout accès non autorisé, par exemple un accès de pointeur (hors limites) dans la mémoire, veillez à ce que la taille du tableau lié à l’entrée Buffer soit égale ou supérieure aux données qui seront écrites sur l’équipement cible. Il est recommandé de lier le paramètre Quantity défini des données à écrire ou à lire dans la déclaration du tampon comme dans l’exemple suivant. Les paramètres d'entrée et de sortie communs à tous les blocs fonction de la bibliothèque PLCCommunication sont décrits dans une autre section (voir page 13). 38 EIO0000002963 09/2020 Description des blocs fonction Exemple Cet exemple montre l’implémentation du bloc fonction WRITE_READ_VAR en association avec le bloc fonction ADDM afin d’écrire deux registres commençant à l’adresse 11 et de lire deux registres commençant à l’adresse 1 d’un esclave Modbus. L’esclave Modbus est défini avec l’adresse 8 et doit être joignable via l’interface de ligne série 1. La condition préalable est la configuration de Modbus Manager en tant que maître sous l'interface de ligne série 1. EIO0000002963 09/2020 39 Description des blocs fonction 40 EIO0000002963 09/2020 Description des blocs fonction SINGLE_WRITE : écrire un registre sur un équipement Modbus Description de la fonction Le bloc fonction SINGLE_WRITE permet d'écrire un registre interne unique sur un équipement Modbus externe. Représentation graphique Description des paramètres spécifiques du bloc fonction SINGLE_WRITE Entrée Type Commentaire ObjType ObjectType ObjType décrit le type d'objet(s) à écrire (MW uniquement) (voir page 21). FirstObject DINT FirstObject indique la valeur d'index de l'objet à écrire. theWord WORD Cette entrée contient la valeur à écrire. Les paramètres d'entrée et de sortie communs à tous les blocs fonction de la bibliothèque PLCCommunication sont décrits dans une autre section (voir page 13). EIO0000002963 09/2020 41 Description des blocs fonction Exemple Cet exemple montre l’implémentation du bloc fonction SINGLE_WRITE en association avec le bloc fonction ADDM afin d’écrire un seul registre à l’adresse 11 d’un esclave Modbus. L’esclave Modbus est défini avec l’adresse 8 et doit être joignable via l’interface de ligne série 1. La condition préalable est la configuration de Modbus Manager en tant que maître sous l’interface de ligne série 1. 42 EIO0000002963 09/2020 Description des blocs fonction SEND_RECV_MSG : envoyer et/ou recevoir des messages définis par l'utilisateur Description de la fonction Le bloc fonction SEND_RECV_MSG envoie et reçoit des messages définis par l'utilisateur. Il envoie un message sur le support sélectionné (une ligne série, par exemple), puis attend une réponse. Vous pouvez également envoyer/recevoir un message sans attendre/envoyer de réponse. Cette fonction doit être utilisée avec un gestionnaire ASCII. Elle peut également être utilisée avec un gestionnaire Modbus si vous souhaitez envoyer une requête qui n'est pas mise en œuvre dans la bibliothèque de communication. Dans ce cas, vous devez créer la requête vous-même. Représentation graphique Description des paramètres spécifiques du bloc fonction SEND_RECV_MSG Entrée Type Commentaire QuantityToSend UINT Le paramètre QuantityToSend indique le nombre d'octets à envoyer. Limitation du contrôleur : M258/LMC058 : 1050 octets M241/M251 : 252 octets BufferToSend POINTER TO BYTE Le paramètre BufferToSend indique l'adresse du tampon (tableau d'octets) dans lequel le message à envoyer est stocké. La définition du pointeur associé nécessite l'utilisation de la fonction standard ADR. (Voir l'exemple cidessous.) Si elle est définie sur 0, la fonction est configurée uniquement pour la réception. SizeRecvBuffer UINT Le paramètre SizeRecvBuffer indique la taille disponible (en octets) du tampon de réception. La taille des données reçues (en octets) est disponible dans la propriété interne de l'instance de bloc fonction (variable interne) : <nom de l'instance>.NbRecvBytes. Limitation du contrôleur : M258/LMC058 : 1050 octets M241/M251 : 252 octets EIO0000002963 09/2020 43 Description des blocs fonction Entrée Type Commentaire BufferToRecv POINTER TO BYTE BufferToRecv indique l'adresse du tampon (tableau d'octets SizeRecvBuffer) dans lequel le message reçu est stocké. La définition du pointeur associé nécessite l'utilisation de la fonction standard ADR. (Voir l'exemple ci-dessous.) Si elle est définie sur 0, la fonction est configurée uniquement pour l'envoi. Pour les opérations d'envoi uniquement, l'échange s'achève (Busy remis à 0) lorsque toutes les données (y compris les possibles caractères de début et de fin) ont été envoyées à la ligne. Pour les opérations d'envoi/réception ou de réception uniquement, le système reçoit des caractères jusqu'à ce que la condition de fin soit remplie. Une fois celle-ci remplie, l'échange s'achève (Busy remis à 0). Les caractères reçus sont alors copiés dans le tampon de réception jusqu'aux caractères sizeRecvBuffer et la taille des données reçues (en octets) est disponible dans la propriété d'instance du bloc fonction (variable interne) : <nom de l'instance>.NbRecvBytes. L'entrée sizeRecvBuffer n'est pas une condition de fin. Les paramètres d'entrée et de sortie communs à tous les blocs fonction de la bibliothèque PLCCommunication sont décrits dans une autre section (voir page 13). Les conditions de début et de fin des messages définis par l’utilisateur sont configurées dans la boîte de dialogue de configuration du gestionnaire ASCII : NOTE : Il n'y a aucun caractère de début et de fin dans l'exemple ci-dessus. La condition de fin de la trame reçue est un délai d'expiration de 250 ms. 44 EIO0000002963 09/2020 Description des blocs fonction Exemple Cette unité organisationnelle de programme (POU) permet d'envoyer (mode envoi uniquement) le message défini par l’utilisateur « hello » sur la ligne série 1 : NOTE : Un front montant sur la variable Start lance la conversion d'une adresse et l'envoi du message. EIO0000002963 09/2020 45 Description des blocs fonction 46 EIO0000002963 09/2020 EcoStruxure Machine Expert Glossaire EIO0000002963 09/2020 Glossaire B bloc fonction Unité de programmation qui possède 1 ou plusieurs entrées et renvoie 1 ou plusieurs sorties. Les blocs fonction (FBs) sont appelés via une instance (copie du bloc fonction avec un nom et des variables dédiés) et chaque instance a un état persistant (sorties et variables internes) d'un appel au suivant. Exemples : temporisateurs, compteurs P PLCopen Pour plus d'informations, reportez-vous à la section http://www.plcopen.org/. EIO0000002963 09/2020 47 Glossaire 48 EIO0000002963 09/2020 EcoStruxure Machine Expert Index EIO0000002963 09/2020 Index A ADDM bloc fonction, 26 ADDR_EXT types de données, 23 ADDRESS types de données, 22 B bloc fonction ADDM, 26 READ_VAR, 31 SEND_RECV_MSG, 43 SINGLE_WRITE, 41 WRITE_READ_VAR, 37 WRITE_VAR, 34 C CommunicationErrorCodes Types de données, 18 L LinkNumber Types de données, 20 S SEND_RECV_MSG bloc fonction, 43 SINGLE_WRITE Bloc fonction, 41 T TCP_ADDR_EXT types de données, 24 types de données ADDR_EXT, 23 ADDRESS, 22 Types de données CommunicationErrorCodes, 18 LinkNumber, 20 types de données ObjectType, 21 OperationErrorCodes, 19 TCP_ADDR_EXT, 24 W WRITE_READ_VAR Bloc fonction , 37 WRITE_VAR bloc fonction, 34 O ObjectType types de données, 21 OperationErrorCodes types de données, 19 R READ_VAR bloc fonction, 31 EIO0000002963 09/2020 49 EcoStruxure Machine Expert EIO0000002975 09/2020 EcoStruxure Machine Expert Configuration de variables de réseau Guide de la bibliothèque SE_NetVarUdp EIO0000002975.01 09/2020 www.schneider-electric.com Le présent document comprend des descriptions générales et/ou des caractéristiques techniques des produits mentionnés. Il ne peut pas être utilisé pour définir ou déterminer l'adéquation ou la fiabilité de ces produits pour des applications utilisateur spécifiques. Il incombe à chaque utilisateur ou intégrateur de réaliser l'analyse de risques complète et appropriée, l'évaluation et le test des produits pour ce qui est de l'application à utiliser et de l'exécution de cette application. Ni la société Schneider Electric ni aucune de ses sociétés affiliées ou filiales ne peuvent être tenues pour responsables de la mauvaise utilisation des informations contenues dans le présent document. Si vous avez des suggestions, des améliorations ou des corrections à apporter à cette publication, veuillez nous en informer. Vous acceptez de ne pas reproduire, excepté pour votre propre usage à titre non commercial, tout ou partie de ce document et sur quelque support que ce soit sans l'accord écrit de Schneider Electric. Vous acceptez également de ne pas créer de liens hypertextes vers ce document ou son contenu. Schneider Electric ne concède aucun droit ni licence pour l'utilisation personnelle et non commerciale du document ou de son contenu, sinon une licence non exclusive pour une consultation « en l'état », à vos propres risques. Tous les autres droits sont réservés. Toutes les réglementations locales, régionales et nationales pertinentes doivent être respectées lors de l'installation et de l'utilisation de ce produit. Pour des raisons de sécurité et afin de garantir la conformité aux données système documentées, seul le fabricant est habilité à effectuer des réparations sur les composants. Lorsque des équipements sont utilisés pour des applications présentant des exigences techniques de sécurité, suivez les instructions appropriées. La non-utilisation du logiciel Schneider Electric ou d'un logiciel approuvé avec nos produits matériels peut entraîner des blessures, des dommages ou un fonctionnement incorrect. Le non-respect de cette consigne peut entraîner des lésions corporelles ou des dommages matériels. © 2020 Schneider Electric. Tous droits réservés. 2 EIO0000002975 09/2020 Table des matières Consignes de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . A propos de ce manuel. . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 1 Liste de variables de réseau (NVL) . . . . . . . . . . . . . . . . Introduction à la liste de variables de réseau (NVL) . . . . . . . . . . . . . . Configuration de l'échange de variables de réseau. . . . . . . . . . . . . . . Règles des listes de variables de réseau (NVL) . . . . . . . . . . . . . . . . . Etat de fonctionnement de l'expéditeur et du récepteur . . . . . . . . . . . Diagnostic d'une liste de variables de réseau (NVL) . . . . . . . . . . . . . . Gestion des erreurs de la liste de variables de réseau (NVL) . . . . . . . Annexes ......................................... Annexe A Exemple d'échange simple de variables de réseau . . . . Exemple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Annexe B Compatibilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Compatibilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Glossaire Index EIO0000002975 09/2020 ......................................... ......................................... 5 7 11 12 16 21 24 25 28 29 31 31 37 37 43 45 3 4 EIO0000002975 09/2020 Consignes de sécurité Informations importantes AVIS Lisez attentivement ces instructions et examinez le matériel pour vous familiariser avec l'appareil avant de tenter de l'installer, de le faire fonctionner, de le réparer ou d'assurer sa maintenance. Les messages spéciaux suivants que vous trouverez dans cette documentation ou sur l'appareil ont pour but de vous mettre en garde contre des risques potentiels ou d'attirer votre attention sur des informations qui clarifient ou simplifient une procédure. EIO0000002975 09/2020 5 REMARQUE IMPORTANTE L'installation, l'utilisation, la réparation et la maintenance des équipements électriques doivent être assurées par du personnel qualifié uniquement. Schneider Electric décline toute responsabilité quant aux conséquences de l'utilisation de ce matériel. Une personne qualifiée est une personne disposant de compétences et de connaissances dans le domaine de la construction, du fonctionnement et de l'installation des équipements électriques, et ayant suivi une formation en sécurité leur permettant d'identifier et d'éviter les risques encourus. QUALIFICATION DU PERSONNEL Une personne qualifiée est une personne qui a les qualifications suivantes : Compétences et connaissances liées à la construction et à l'exploitation d'équipements électriques et à l'installation. Connaissances et expérience en programmation de contrôle industriel. A reçu une formation en sécurité permettant de reconnaître et d'éviter les dangers potentiels. La personne qualifiée doit être capable de détecter d'éventuels dangers qui pourraient découler du paramétrage, de modifications des valeurs de paramétrage et plus généralement des équipements mécaniques, électriques ou électroniques. La personne qualifiée doit connaître les normes, dispositions et régulations liées à la prévention des accidents de travail, et doit les observer lors de la conception et de l'implémentation du système. INSTRUCTIONS D'UTILISATION Ce produit est une bibliothèque à utiliser avec un système de commande et des servoamplificateurs. La bibliothèque n'est conçue qu'en vue d'une utilisation telle que décrite dans la présente documentation, appliquée au secteur industriel. Observez en permanence les instructions applicables liées à la sécurité, les conditions spécifiques et les données techniques. Réalisez une analyse des risques en rapport avec l'utilisation spécifique avant d'utiliser ce produit. Prenez les mesures de sécurité qui découlent des résultats. Étant donné que ce produit est utilisé au sein d'un système qui l'englobe, vous devez assurer la sécurité du personnel par la conception même du système global (la conception de la machine, par exemple). Aucune autre utilisation n'est prévue. Toute autre utilisation pourrait être dangereuse. 6 EIO0000002975 09/2020 A propos de ce manuel Présentation Objectif du document Ce guide explique l'échange de données entre des contrôleurs d'un réseau, via des variables de réseau. Champ d'application Ce document a été actualisé pour le lancement d’EcoStruxureTM Machine Expert V1.2.5. Information spécifique au produit AVERTISSEMENT PERTE DE CONTROLE Le concepteur d'un système de commande doit envisager les modes de défaillance possibles des chemins de commande et, pour certaines fonctions de commande critiques, prévoir un moyen d'atteindre un état sécurisé en cas de défaillance d'un chemin, et après cette défaillance. Par exemple, l'arrêt d'urgence, l'arrêt en cas de surcourse, la coupure de courant et le redémarrage sont des fonctions de contrôle cruciales. Des canaux de commande séparés ou redondants doivent être prévus pour les fonctions de commande critique. Les liaisons de communication peuvent faire partie des canaux de commande du système. Soyez particulièrement attentif aux implications des retards de transmission imprévus ou des pannes de liaison. Respectez toutes les réglementations de prévention des accidents ainsi que les consignes de sécurité locales.1 Chaque implémentation de cet équipement doit être testée individuellement et entièrement pour s'assurer du fonctionnement correct avant la mise en service. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. EIO0000002975 09/2020 7 1 Pour plus d'informations, consultez les documents suivants ou leurs équivalents pour votre site d'installation : NEMA ICS 1.1 (dernière édition), « Safety Guidelines for the Application, Installation, and Maintenance of Solid State Control » (Directives de sécurité pour l'application, l'installation et la maintenance de commande statique) et NEMA ICS 7.1 (dernière édition), « Safety Standards for Construction and Guide for Selection, Installation, and Operation of Adjustable-Speed Drive Systems » (Normes de sécurité relatives à la construction et manuel de sélection, d'installation et d'exploitation de variateurs de vitesse). Avant de tenter de fournir une solution (machine ou processus) pour une application spécifique en utilisant les POU trouvés dans la bibliothèque, vous devez tenir compte de la réalisation et de l'exécution des bonnes pratiques. La liste non exhaustive de ces pratiques liées à cette bibliothèque inclut l'analyse des risques, la sécurité fonctionnelle, la compatibilité des composants, les tests et la validation du système. AVERTISSEMENT UTILISATION INCORRECTE DES UNITES ORGANISATIONNELLES DU PROGRAMME Effectuez une analyse de la sécurité de l'application et des équipements installés. Vérifiez que les POU sont compatibles avec les équipements du système et n'ont pas d'effets inattendus sur le bon fonctionnement du système. Utilisez les paramètres appropriés, notamment les valeurs limites, et observez l'usure de la machine et son fonctionnement à l'arrêt. Vérifiez que les capteurs et déclencheurs sont compatibles avec les POU sélectionnés. Testez de manière approfondie toutes les fonctions durant la vérification et la mise en service dans tous les modes de fonctionnement. Indiquez des méthodes indépendantes pour les fonctions de commande critiques (arrêt d'urgence, conditions de dépassement des valeurs limites, etc.) en fonction d'une analyse de la sécurité, des règles correspondantes et des réglementations. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Terminologie utilisée dans les normes Les termes techniques, la terminologie, les symboles et les descriptions correspondantes employés dans ce manuel ou figurant dans ou sur les produits proviennent généralement des normes internationales. Dans les domaines des systèmes de sécurité fonctionnelle, des variateurs et de l'automatisme en général, les termes employés sont sécurité, fonction de sécurité, état sécurisé, défaut, réinitialisation du défaut, dysfonctionnement, panne, erreur, message d'erreur, dangereux, etc. Entre autres, les normes concernées sont les suivantes : 8 Norme Description IEC 61131-2:2007 Automates programmables - Partie 2 : exigences et essais des équipements EIO0000002975 09/2020 Norme Description ISO 13849-1:2015 Sécurité des machines : parties des systèmes de commande relatives à la sécurité. Principes généraux de conception EN 61496-1:2013 Sécurité des machines : équipements de protection électro-sensibles. Partie 1 : Prescriptions générales et essais ISO 12100:2010 Sécurité des machines - Principes généraux de conception - Appréciation du risque et réduction du risque EN 60204-1:2006 Sécurité des machines - Équipement électrique des machines - Partie 1 : règles générales ISO 14119:2013 Sécurité des machines - Dispositifs de verrouillage associés à des protecteurs - Principes de conception et de choix ISO 13850:2015 Sécurité des machines - Fonction d'arrêt d'urgence - Principes de conception IEC 62061:2015 Sécurité des machines - Sécurité fonctionnelle des systèmes de commande électrique, électronique et électronique programmable relatifs à la sécurité IEC 61508-1:2010 Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité : prescriptions générales. IEC 61508-2:2010 Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité : exigences pour les systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité. IEC 61508-3:2010 Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité : exigences concernant les logiciels. IEC 61784-3:2016 Réseaux de communication industriels - Profils - Partie 3 : Bus de terrain de sécurité fonctionnelle - Règles générales et définitions de profils. 2006/42/EC Directive Machines 2014/30/EU Directive sur la compatibilité électromagnétique 2014/35/EU Directive sur les basses tensions De plus, des termes peuvent être utilisés dans le présent document car ils proviennent d'autres normes telles que : Norme Description Série IEC 60034 Machines électriques rotatives Série IEC 61800 Entraînements électriques de puissance à vitesse variable Série IEC 61158 Communications numériques pour les systèmes de mesure et de commande – Bus de terrain utilisés dans les systèmes de commande industriels Enfin, le terme zone de fonctionnement utilisé dans le contexte de la description de dangers spécifiques a la même signification que les termes zone dangereuse ou zone de danger employés dans la directive Machines (2006/42/EC) et la norme ISO 12100:2010. EIO0000002975 09/2020 9 NOTE : Les normes susmentionnées peuvent s'appliquer ou pas aux produits cités dans la présente documentation. Pour plus d'informations sur chacune des normes applicables aux produits décrits dans le présent document, consultez les tableaux de caractéristiques de ces références de produit. 10 EIO0000002975 09/2020 EcoStruxure Machine Expert Liste de variables de réseau (NVL) EIO0000002975 09/2020 Chapitre 1 Liste de variables de réseau (NVL) Liste de variables de réseau (NVL) Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page Introduction à la liste de variables de réseau (NVL) 12 Configuration de l'échange de variables de réseau 16 Règles des listes de variables de réseau (NVL) 21 Etat de fonctionnement de l'expéditeur et du récepteur 24 Diagnostic d'une liste de variables de réseau (NVL) 25 Gestion des erreurs de la liste de variables de réseau (NVL) 28 EIO0000002975 09/2020 11 Liste de variables de réseau (NVL) Introduction à la liste de variables de réseau (NVL) Présentation La liste de variables de réseau (NVL) se présente sous la forme d'une liste fixe de variables pouvant être envoyées ou reçues via un réseau de communication. Elle permet d'échanger des données dans un réseau via des variables de réseau, si le contrôleur (système cible) prend en charge l'opération. La liste doit être définie dans le contrôleur expéditeur et le contrôleur récepteur (et peut figurer dans un ou plusieurs projets). Ses valeurs sont transmises par la diffusion de datagrammes UDP (User Datagram Protocol). UDP est un protocole de communication Internet sans connexion, défini par l'IETF RFC 768. Il facilite la transmission directe de datagrammes sur des réseaux IP (Internet Protocol). Les messages UDP/IP n'attendent pas de réponse. De ce fait, ils sont particulièrement adaptés aux applications dans lesquelles aucune retransmission des paquets envoyés n'est nécessaire (comme dans la vidéo en continu ou les réseaux exigeant des performances en temps réel). La NVL est une puissante fonctionnalité de EcoStruxure Machine Expert. Elle vous permet de partager et de surveiller les données entre des contrôleurs et leurs applications. Cependant, il n'y a aucune restriction sur le rôle des données échangées entre les contrôleurs. Elles peuvent servir à verrouiller une machine ou un processus, voire à modifier l'état d'un contrôleur. NOTE : Le type de variable réseau n'est pas partagé entre différents contrôleurs. Vous devez vérifier que les types utilisés ont la même définition sur tous les équipements. Sinon, aucune communication avec la NVL n'est possible. Ceci vaut, par exemple, pour les types SEC.ETH_R_STRUCT ou SEC.PLC_R_STRUCT. Ils sont disponibles par défaut dans différents contrôleurs ayant différentes tailles ou différents champs. En tant que concepteur et/ou programmeur de l'application, vous êtes la seule personne à connaître l'ensemble des conditions et facteurs présents pendant le fonctionnement de la machine ou du processus. Vous seul pouvez déterminer les stratégies de communication, les verrouillages et les sécurités nécessaires pour pouvoir échanger des données entre des contrôleurs grâce à cette fonctionnalité. Surveillez attentivement ce type de fonctionnalité de communication et vérifiez que la conception de la machine ou du processus n'expose pas les biens et les personnes à des risques de sécurité. 12 EIO0000002975 09/2020 Liste de variables de réseau (NVL) AVERTISSEMENT PERTE DE CONTROLE Le concepteur d'un système de commande doit envisager les modes de défaillance possibles des chemins de commande et, pour certaines fonctions de commande critiques, prévoir un moyen d'atteindre un état sécurisé en cas de défaillance d'un chemin, et après cette défaillance. Par exemple, l'arrêt d'urgence, l'arrêt en cas de surcourse, la coupure de courant et le redémarrage sont des fonctions de contrôle cruciales. Des canaux de commande séparés ou redondants doivent être prévus pour les fonctions de commande critique. Les liaisons de communication peuvent faire partie des canaux de commande du système. Soyez particulièrement attentif aux implications des retards de transmission imprévus ou des pannes de liaison. Respectez toutes les réglementations de prévention des accidents ainsi que les consignes de sécurité locales.1 Chaque implémentation de cet équipement doit être testée individuellement et entièrement pour s'assurer du fonctionnement correct avant la mise en service. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. 1 Pour plus d'informations, consultez les documents suivants ou leurs équivalents pour votre site d'installation : NEMA ICS 1.1 (dernière édition), « Safety Guidelines for the Application, Installation, and Maintenance of Solid State Control » (Directives de sécurité pour l'application, l'installation et la maintenance de commande statique) et NEMA ICS 7.1 (dernière édition), « Safety Standards for Construction and Guide for Selection, Installation, and Operation of Adjustable-Speed Drive Systems » (Normes de sécurité relatives à la construction et manuel de sélection, d'installation et d'exploitation de variateurs de vitesse). Vous pouvez utiliser les blocs fonction de Diagnostic (voir page 25) et de Gestion des erreurs (voir page 28) ainsi que les paramètres des propriétés de réseau pour contrôler le fonctionnement, l'état et l'intégrité des communications utilisant cette fonctionnalité. Cette dernière a été conçue pour le partage et la surveillance des données. Elle ne peut pas être utilisée pour des fonctions de contrôle critiques. Liste de variables de réseau (NVL) Les variables de réseau à échanger sont définies dans les deux types de listes suivants : des listes de variables globales (GVL) dans un contrôleur expéditeur ; des listes de variables de réseau globales (GNVL) dans un contrôleur récepteur. Les GVL et GNVL correspondantes contiennent les mêmes déclarations de variables. Vous pouvez afficher leur contenu dans l'éditeur approprié en double-cliquant sur le nœud GVL ou GNVL dans le volet Appareils. EIO0000002975 09/2020 13 Liste de variables de réseau (NVL) Une GVL contient les variables de réseau d'un expéditeur. Les paramètres de protocole et de transmission sont définis dans les Propriétés réseau de l'expéditeur. Conformément à ces paramètres, les valeurs des variables sont diffusées au sein du réseau. Elles peuvent être reçues par tous les contrôleurs qui ont une GNVL correspondante. NOTE : pour qu'un échange de variables de réseau ait lieu, les bibliothèques de réseau respectives doivent être installées. Cette opération s'effectue automatiquement pour le type de réseau standard UDP dès que les propriétés réseau d'une GVL sont définies. Les variables réseau sont envoyées de la GVL (expéditeur) à une ou plusieurs GNVL (récepteurs). Pour chaque contrôleur, vous pouvez définir des GVL et des GNVL. Ainsi, chaque contrôleur peut se comporter comme un expéditeur ou un récepteur. Une GVL d'expéditeur peut être fournie par le même projet ou un autre projet. Ainsi, lors de la création d'une GNVL, la GVL (expéditeur) peut être choisie dans la liste des GVL disponibles dans le réseau, ou lue dans un fichier d'exportation généré précédemment (par exemple, à l'aide de la boîte de dialogue Lien avec fichier) à partir de la GVL. NOTE : Le fichier d'exportation est nécessaire si la GVL (expéditeur) à utiliser est définie dans un autre projet. Remarques relatives à la NVL Le tableau ci-dessous montre les contrôleurs qui prennent en charge la fonctionnalité de liste de variables de réseau (NVL) : 14 Nom de la fonction M241 M251 M258 LMC058 M262 LMC Eco LMC Pro LMC Pro2 Liste de variables de réseau Oui Oui Oui Oui Oui EIO0000002975 09/2020 Liste de variables de réseau (NVL) Cette figure montre un réseau constitué d'un émetteurs et de 7 récepteurs (nombre maximum) : Contrôleur expéditeur A : expéditeur avec la liste de variables globales (GVL) et le contrôleur récepteur avec les listes de variables de réseau globales (GNVL) Contrôleurs récepteurs 1 à 7 : récepteurs (avec GNVL) de A et contrôleur expéditeur (GVL) uniquement pour A EIO0000002975 09/2020 15 Liste de variables de réseau (NVL) Configuration de l'échange de variables de réseau Présentation Pour pouvoir échanger des variables de réseau, deux contrôleurs (un expéditeur et un récepteur) doivent être disponibles dans l'arborescence Equipements de EcoStruxure Machine Expert. Ces contrôleurs sont configurés avec les propriétés réseau décrites ci-après. Pour configurer la liste des variables de réseau, procédez comme suit : Étape Action 1 Créez un contrôleur expéditeur et un contrôleur récepteur dans l'arborescence Equipements. 2 Créez un programme (POU) pour le contrôleur expéditeur et le contrôleur récepteur. 3 Ajoutez une tâche pour le contrôleur expéditeur et le contrôleur récepteur. NOTE : Pour garantir des performances transparentes, attribuez à la tâche dédiée à la NVL une priorité supérieure à 25 et régulez les communications afin d'éviter toute saturation superflue du réseau. 4 Définissez la liste des variables globales (GVL) de l'expéditeur. 5 Définissez la liste des variables de réseau globales (GNVL) du récepteur. Un exemple plus détaillé est disponible dans l'Annexe (voir page 31). 16 EIO0000002975 09/2020 Liste de variables de réseau (NVL) Liste de variables globales Pour créer la GVL de l'expéditeur, définissez les propriétés réseau suivantes dans la boîte de dialogue GVL → Propriétés → propriétés réseau : Description des paramètres Paramètre Valeur par défaut Description Type de réseau UDP Seul le type de réseau standard UDP est disponible. Pour modifier l’Adresse de diffusion et le Port, cliquez sur le bouton Paramètres... Tâche MAST Sélectionnez la tâche que vous avez configurée, sous l'élément Configuration de tâche pour exécuter le code de la NVL. Pour maintenir la transparence des performances, il est recommandé de configurer un Intervalle supérieur ou égal à 50 ms pour cette tâche. NOTE : Pour garantir des performances transparentes, attribuez à la tâche dédiée à la NVL une priorité supérieure à 25 et régulez les communications afin d'éviter toute saturation superflue du réseau. Identificateur de liste de variables EIO0000002975 09/2020 1 Entrez un numéro unique pour chaque GVL sur le réseau. Il permet aux récepteurs d'identifier la liste des variables (voir page 22). 17 Liste de variables de réseau (NVL) Paramètre Valeur par défaut Description Compacter les variables Activée Lorsque cette option est activée, les variables sont regroupées en paquets (datagrammes) en vue de leur transmission. Lorsque cette option est désactivée, un paquet par variable est transmis. Transmettre le total de contrôle Désactivée Activez cette option pour ajouter un total de contrôle à chaque paquet de variables pendant la transmission. Les récepteurs vérifient alors le total de contrôle de chaque paquet qu'ils reçoivent, et rejettent ceux dont le total de contrôle ne correspond pas. Une notification est envoyée avec le paramètre (voir page 26) NetVarError_CHECKSUM. Confirmation Désactivée Activez cette option pour demander au récepteur d'envoyer un message de confirmation pour chaque paquet de données qu'il a reçu. Une notification est envoyée avec le paramètre (voir page 26) NetVarError_ACKNOWLEDGE si l'expéditeur ne reçoit pas cette confirmation de la part du récepteur avant qu'il n'envoie le paquet de données suivant. Transmission cyclique Activée Sélectionnez cette option pour la transmission cyclique des données selon l'Intervalle défini. Cet Intervalle doit être un multiple du temps de cycle que vous avez défini dans la tâche d'exécution du code de la NVL pour obtenir un temps de transmission précis des variables de réseau. Transmission en cas de modification Écart minimum T#20ms Désactivée Activez cette option pour transmettre les variables dont la valeur a changé. Intervalle NOTE : Après le premier téléchargement ou l'exécution de la commande Reset froid ou Reset chaud en mode En ligne, les contrôleurs récepteurs ne sont pas mis à jour et conservent leur dernière valeur, tandis que le contrôleur expéditeur prend la valeur 0 (zéro). Le paramètre Écart minimum définit le délai minimum à respecter entre deux transferts de données. Transmission déclenchée par événement Variable Désactivée – Activez cette option pour transmettre des variables tant que la Variable définie a pour valeur TRUE. Cette variable est contrôlée à chaque cycle de la tâche d'exécution du code de la NVL. Description du bouton Paramètres... Paramètre Valeur par défaut Description Port 1202 Entrez un numéro de port unique (≥ 1202) pour chaque expéditeur de GVL. Adresse de diffusion 255.255.255.255 Entrez une adresse IP de diffusion pour votre application. 18 EIO0000002975 09/2020 Liste de variables de réseau (NVL) Liste de variables de réseau globales (GNVL) Une liste de variables de réseau globales ne peut être ajoutée que dans l'arborescence Appareils. Elle définit des variables qui sont spécifiées comme des variables de réseau dans un autre contrôleur du réseau. Ainsi, un objet GNVL ne peut être ajouté à une application que si une liste de variables globales (GVL) avec des propriétés réseau (liste de variables de réseau) a été créée dans l'un des autres contrôleurs du réseau. Ces contrôleurs peuvent appartenir au même projet ou à des projets différents. Pour créer la GNVL, définissez les paramètres suivants dans la boîte de dialogue Ajouter un objet → Liste de variables de réseau globales : Description des paramètres Paramètre Valeur par défaut Description Nom NVL Indiquez le nom de la GNVL. Tâche tâche définie dans le nœud Configuration de tâche de cette Application Sélectionnez une tâche dans la liste de tâches qui recevront les trames émanant de l'expéditeur et qui sont disponibles sous le nœud Configuration de tâche du contrôleur récepteur. EIO0000002975 09/2020 19 Liste de variables de réseau (NVL) Paramètre Valeur par défaut Description Expéditeur 1 des GVL disponibles dans le projet Sélectionnez la GVL de l'expéditeur dans la liste de toutes les GVL d'expéditeur, avec les propriétés réseau actuellement disponibles dans le projet. Sélectionnez l'entrée Importation à partir du fichier dans la liste pour utiliser une GVL d'un autre projet. Cela active le paramètre Importer à partir du fichier : Importation à partir du fichier: – Ce paramètre n'est disponible que si vous avez sélectionné l'option Importer à partir du fichier pour le paramètre Expéditeur. Le bouton ... ouvre une fenêtre standard de l'Explorateur Windows, qui vous permet de naviguer jusqu'au fichier d'exportation *.gvl que vous avez créé à partir d'une GVL dans un autre projet. Pour plus d'informations, reportez-vous au paragraphe Comment ajouter une GNVL d'un autre projet ci-dessous. Comment ajouter une GNVL dans le même projet Lorsque vous ajoutez une GNVL à l'aide de la boîte de dialogue Ajouter un objet, toutes les GVL appropriées qui sont trouvées dans le projet pour le réseau concerné sont répertoriées dans la zone de liste Expéditeur. Les GVL d'autres projets doivent être importées (reportez-vous au paragraphe Comment ajouter une GNVL d'un autre projet ci-dessous). Suite à cette sélection, chaque GNVL du contrôleur actuel (expéditeur) est liée à une GVL spécifique dans un autre contrôleur (récepteur). De plus, vous devez définir un nom et une tâche chargée de gérer les variables de réseau, lors de l'ajout de la GNVL. Comment ajouter une GNVL d'un autre projet Au lieu de choisir directement une GVL d'expéditeur d'un autre contrôleur, vous pouvez également spécifier un fichier d'exportation de GVL que vous avez généré à partir de la GVL à l'aide des propriétés Lien avec fichier. Ceci vous permet d'utiliser une GVL définie dans un autre projet. Pour cela, sélectionnez l’option Importer à partir du fichier pour le paramètre Expéditeur : et définissez le chemin dans le paramètre Importer à partir du fichier :. Ces paramètres sont modifiables ultérieurement dans la boîte de dialogue Propriétés - GVL. Propriétés de GNVL Si vous double-cliquez sur une GNVL dans l'arborescence Appareils, son contenu s'affiche à droite dans un éditeur. Sachez toutefois que le contenu de la GNVL n'est pas modifiable. Ce qui s'affiche n'est qu'une référence au contenu de la GVL correspondante. Le nom exact et le chemin de l'expéditeur contenant la GVL correspondante sont indiqués en haut du volet de l'éditeur, avec le type de protocole réseau utilisé. Si la GVL correspondante est modifiée, le contenu de la GNVL est mis à jour en conséquence. 20 EIO0000002975 09/2020 Liste de variables de réseau (NVL) Règles des listes de variables de réseau (NVL) Règles relatives à la quantité de données En raison de certaines limitations de performances, respectez les règles suivantes : Nombre Règle 1 La transmission de données entre une GVL (expéditeur) et une GNVL (récepteur) ne doit pas dépasser 200 octets. 2 L'échange de données entre plusieurs GVL (expéditeurs) d'un même contrôleur et leurs GNVL associées (récepteurs) ne doit pas dépasser 1000 octets de variables. Règles relatives au nombre de datagrammes Pour limiter la durée maximale du cycle des tâches d'une NVL, respectez les recommandations suivantes : Nombre Règle Description 1 Limitez le nombre de datagrammes reçus par cycle à 20. Lorsque cette limite est dépassée, les datagrammes restants sont traités lors du cycle suivant. Une notification de débordement de réception est consignée dans les données de diagnostic (voir page 26) lorsque la limite est atteinte. Un datagramme peut contenir jusqu'à 256 octets. Cela signifie que vous ne devez pas dépasser la limite de 5120 octets de données reçues par un récepteur. 2 Limitez le nombre de datagrammes émis par cycle à 20. Lorsque cette limite est dépassée, les datagrammes restants sont traités lors du cycle suivant. Une notification de débordement d'émission est consignée dans les données de diagnostic (voir page 26) lorsque la limite est atteinte. Un datagramme peut contenir jusqu'à 256 octets. Cela signifie que vous ne devez pas dépasser la limite de 5120 octets de données émises par un contrôleur expéditeur. Si le nombre de datagrammes reçus/émis par cycle dépasse la limite plusieurs fois, les événements suivants risquent de se produire : perte de datagrammes UDP (User Datagram Protocol) ; échange incohérent de variables. Adaptez les paramètres suivants à vos besoins : durée du cycle du contrôleur expéditeur durée du cycle du contrôleur récepteur nombre d'expéditeurs dans le réseau EIO0000002975 09/2020 21 Liste de variables de réseau (NVL) AVIS PERTE DE DONNEES Testez soigneusement l'application pour vérifier la transmission et la réception des datagrammes UDP avant de mettre votre système en service. Le non-respect de ces instructions peut provoquer des dommages matériels. Nombre maximum de GVL (expéditeurs) Définissez au maximum 7 GVL par contrôleur (expéditeur) pour maintenir la transparence des performances. Règles relatives aux durées des cycles de tâche des GVL (expéditeurs) et des GNVL (récepteurs) Afin d'éviter toute saturation en réception, vous devez définir pour la tâche qui gère la transmission de la GVL une durée de cycle au moins double de celle de la tâche qui gère la réception de la GNVL. Règles relatives à la protection de l'identificateur de liste La fonction NVL inclut une vérification de l'identificateur de liste : Cet identificateur permet d'éviter qu'une GVL (expéditeur) émanant de deux contrôleurs distincts avec le même identificateur de liste (boîte de dialogue GVL → Propriétés → Identificateur de liste de variables :) envoie des datagrammes à la même liste de variables de réseau globales (GNVL) d'un contrôleur. Si l'Identificateur de liste de variables n'est pas unique, l'échange des variables peut être interrompu. AVIS PERTE DE COMMUNICATION Vérifiez que l'identificateur de liste n'est utilisé que par une adresse IP dans le réseau. Le non-respect de ces instructions peut provoquer des dommages matériels. La fonction de vérification de l'identificateur de liste est mise en œuvre dans le contrôleur récepteur. Si une GNVL (récepteur) détecte que deux adresses IP différentes utilisent le même identificateur de liste, le récepteur interrompt immédiatement la réception des datagrammes. De plus, une notification est générée dans le bloc fonction NETVARGETDIAGINFO. Les adresses IP des deux expéditeurs sont indiquées dans les paramètres de sortie dwDuplicateListIdIp1 et dwDuplicateListIdIp de ce bloc fonction (voir page 25). Avec le bloc fonction NETVARRESETERROR, les erreurs de NVL détectées sont réinitialisées et la communication est relancée. 22 EIO0000002975 09/2020 Liste de variables de réseau (NVL) Cohérence dans le type des variables réseau NOTE : Le type de variable réseau n'est pas partagé entre différents contrôleurs. Vous devez vérifier que les types utilisés ont la même définition sur tous les équipements. Sinon, aucune communication avec la NVL n'est possible. Ceci vaut, par exemple, pour les types SEC.ETH_R_STRUCT ou SEC.PLC_R_STRUCT. Ils sont disponibles par défaut dans différents contrôleurs ayant différentes tailles ou différents champs. EIO0000002975 09/2020 23 Liste de variables de réseau (NVL) Etat de fonctionnement de l'expéditeur et du récepteur Etat de fonctionnement Etat de fonctionnement de... Comportement des variables de réseau Expéditeur Récepteur RUN RUN Des variables de réseau sont échangées entre l'expéditeur et le récepteur. STOP RUN L'expéditeur n'envoie plus de variables au récepteur. Aucune variable de réseau n'est échangée entre l'expéditeur et les récepteurs. RUN STOP Le récepteur ne traite pas les variables de réseau envoyées par l'expéditeur. Lorsque le récepteur reprend l'état RUN, les variables de réseau sont de nouveau traitées par ce dernier. STOP STOP Aucune variable n'est échangée. NOTE : Plusieurs erreurs d'initialisation de communication (NetVarError_INITCOMM) sont détectées lorsque vous faites passer l'expéditeur de l'état STOP à l'état RUN. Événements dans la tâche qui gère la NVL Si les événements suivants surviennent dans la tâche qui gère la NVL, le comportement attendu de la NVL est le même que si le contrôleur était en mode STOP dans le tableau ci-dessus : Une exception survient dans l'application qui suspend la tâche. Un point d'arrêt est rencontré ou un cycle est en cours de traitement dans la tâche. 24 EIO0000002975 09/2020 Liste de variables de réseau (NVL) Diagnostic d'une liste de variables de réseau (NVL) Description du bloc fonction Le bloc fonction NETVARGETDIAGINFO collecte des informations sur la fonctionnalité liste de variables de réseau (NVL). Paramètres d'entrée Paramètre Type Commentaire xExecute BOOL Front montant : les informations de diagnostic sont disponibles. Front descendant : les sorties du bloc fonction sont réinitialisées. dwListIdentity DWORD Identificateur de liste de la GVL/GNVL dans laquelle les informations doivent être collectées. Paramètre Type Commentaire xDone BOOL Les informations ont été correctement récupérées. xBusy BOOL Le bloc fonction est actif. Paramètres de sortie EIO0000002975 09/2020 25 Liste de variables de réseau (NVL) Paramètre Type Commentaire xError BOOL TRUE : un identificateur de liste inconnu a été utilisé. FALSE : aucune erreur n'a été détectée dans l'exécution du bloc fonction NETVARGETDIAGINFO. nSendCount UDINT Nombre de datagrammes UDP envoyés. tLastSend TIME Date à laquelle le dernier datagramme UDP a été envoyé. nReceiveCount UDINT Nombre de datagrammes UDP reçus. tLastReceive TIME Date à laquelle le dernier datagramme UDP a été reçu. nWriteCount UDINT Nombre de variables écrites. sLastError NetVarU DPError Dernière erreur détectée sur le protocole de variable de réseau. Consultez la description du paramètre énuméré NetVarUDPError ci-dessous. tLastError TIME Date à laquelle la dernière erreur a été détectée. nErrorCount UINT Nombre d'erreurs détectées. nAcknowledges UINT Nombre de confirmations reçues. dwDuplicateListIdIp1 DWORD Si un identificateur de liste en double a été détecté, ce paramètre indique la première adresse IP de l'expéditeur qui a le même identificateur de liste que dwDuplicateListIdIp1. dwDuplicateListIdIp2 DWORD Si un identificateur de liste en double a été détecté, ce paramètre indique la seconde adresse IP de l'expéditeur qui a le même identificateur de liste que dwDuplicateListIdIp2. Structure NetVarUDPError La structure NetVarUDPError est un paramètre énuméré défini comme suit : Paramètre Valeur Commentaire NetVarError_NOERROR 0 aucune erreur détectée NetVarError_SENDDATA 1 Échec du transfert de données. NetVarError_ACKNOWLEDGE 2 Erreur de confirmation détectée. NOTE : Cette erreur n'est détectée que lorsque l'option Confirmation est activée dans la boîte de dialogue Propriétés - GVL_Sender. NetVarError_INIT_COMM 26 3 Erreur d'initialisation de communication détectée. EIO0000002975 09/2020 Liste de variables de réseau (NVL) Paramètre Valeur Commentaire NetVarError_CHECKSUM 4 Erreur de total de contrôle détectée. NOTE : Cette erreur n'est détectée que lorsque l'option Transmettre le total de contrôle est activée dans la boîte de dialogue Propriétés - GVL_Sender. NetVarError_LAYOUT 5 Erreur de disposition détectée. Le nombre de variables échangées ne correspond pas entre l'expéditeur et le récepteur. NetVarError_LISTID 6 Identificateur de liste en double détecté. Deux expéditeurs sur le réseau ont le même identificateur de liste. NetVarError_TRANSMIT_OVERFLOW 7 Le nombre de datagrammes envoyés par cycle a dépassé la limite de 20 (voir page 21). NetVarError_RECEIVE_OVERFLOW 8 Le nombre de datagrammes envoyés par cycle a atteint la limite de 20 (voir page 21). EIO0000002975 09/2020 27 Liste de variables de réseau (NVL) Gestion des erreurs de la liste de variables de réseau (NVL) Description du bloc fonction Le bloc fonction NETVARRESETERROR relance l'échange de variables après la détection d'une erreur de NVL. Ce bloc fonction réinitialise les identifiants de liste en double, stockés dans le paramètre de sortie dwDuplicateListIdIp1 ou dwDuplicateListIdIp2 du bloc fonction NETVARGETDIAGINFO. Paramètres d'entrée Paramètre Type Commentaire xExecute BOOL Front montant : les erreurs de NVL détectées sont réinitialisées et la communication est restaurée. Front descendant : les sorties du bloc fonction sont réinitialisées. dwListIdentity DWORD Identificateur de liste utilisé par les GVL dont les erreurs doivent être réinitialisées. Paramètre Type Commentaire xDone BOOL Réinitialisation après résolution de la ou des erreurs détectées. xBusy BOOL Le bloc fonction est actif. xError BOOL TRUE : une erreur d'exécution du bloc fonction NETVARRESETERROR a été détectée. FALSE : aucune erreur d'exécution du bloc fonction NETVARRESETERROR n'a été détectée. Paramètres de sortie 28 EIO0000002975 09/2020 EcoStruxure Machine Expert EIO0000002975 09/2020 Annexes Vue d'ensemble Cette annexe fournit des exemples de définition de GVL et de GNVL. Elle détaille un échange de variables de réseau entre des applications dont les systèmes de programmation ont des versions différentes, et fournit des informations générales sur les fonctions et blocs fonction. Contenu de cette annexe Cette annexe contient les chapitres suivants : Chapitre Titre du chapitre Page A Exemple d'échange simple de variables de réseau 31 B Compatibilité 37 EIO0000002975 09/2020 29 30 EIO0000002975 09/2020 EcoStruxure Machine Expert Exemple d'échange simple de variables de réseau EIO0000002975 09/2020 Annexe A Exemple d'échange simple de variables de réseau Exemple d'échange simple de variables de réseau Exemple Vue d'ensemble Dans l'exemple suivant, un échange simple de variables de réseau est défini. Une liste de variables globales (GVL) est créée dans le contrôleur expéditeur. Une liste de variables de réseau globales (GNVL) correspondante est créée dans le contrôleur récepteur. Effectuez les opérations ci-dessous dans un projet standard où un contrôleur expéditeur Dev_Sender et un contrôleur récepteur Dev_Receiver sont disponibles dans l'arborescence Appareils : Créez une POU (programme) prog_sender sous le nœud Application de Dev_Sender. Sous le nœud Configuration de tâche de cette application, ajoutez la tâche Task_S qui appelle prog_sender. Créez une POU (programme) prog_rec sous le nœud Application de Dev_Receiver. Sous le nœud Configuration de tâche de cette application, ajoutez la tâche Task_R qui appelle prog_rec. NOTE : les deux contrôleurs doivent être configurés dans le même sous-réseau du réseau Ethernet. Définition de la GVL de l'expéditeur Étape 1 : définition d'une liste de variables globales dans le contrôleur expéditeur : Etape Action Commentaire 1 Dans le volet Appareils, cliquez avec le bouton droit La boîte de dialogue Ajouter Liste de variables de la souris sur le nœud Application du contrôleur globales s'ouvre. Dev_Sender et sélectionnez Ajouter un objet → Liste de variables globales.... 2 Saisissez GVL_Sender dans le champ Nom et cliquez sur Ouvrir pour créer une liste de variables globales. EIO0000002975 09/2020 Le nœud GVL_Sender apparaît sous le nœud Application dans le volet Appareils, et l'éditeur s'ouvre dans la partie droite. 31 Exemple d'échange simple de variables de réseau Etape 3 Action Commentaire Dans l'éditeur situé à droite, entrez les définitions de – variable suivantes : VAR_GLOBAL iglobvar:INT; bglobvar:BOOL; strglobvar:STRING; END_VAR Étape 2 : définition des propriétés réseau de la GVL de l'expéditeur : Etape 1 32 Action Commentaire Dans le volet Appareils, cliquez avec le bouton droit La boîte de dialogue Propriétés - GVL_Sender de la souris sur le nœud GVL_Sender et s'ouvre. sélectionnez Propriétés.... EIO0000002975 09/2020 Exemple d'échange simple de variables de réseau Etape Action Commentaire 2 Ouvrez l'onglet Propriétés réseau et configurez les paramètres comme indiqué ci-après : – 3 Cliquez sur OK. La boîte de dialogue se referme. Les propriétés réseau de la GVL sont configurées. Définition de la GNVL du récepteur Étape 1 : définition d'une liste de variables de réseau globales dans le contrôleur récepteur : Etape 1 Action Commentaire Dans le volet Appareils, cliquez avec le bouton droit La boîte de dialogue Ajouter Liste de variables de de la souris sur le nœud Application du contrôleur réseau global s'ouvre. Dev_Receiver et sélectionnez Ajouter un objet → Liste de variables de réseau globales.... EIO0000002975 09/2020 33 Exemple d'échange simple de variables de réseau Etape 2 34 Action Commentaire Configurez les paramètres comme indiqué cidessous. Cette liste de variables de réseau globales est l'équivalent de la GVL définie pour le contrôleur expéditeur. EIO0000002975 09/2020 Exemple d'échange simple de variables de réseau Etape 3 Action Commentaire Cliquez sur le bouton Ouvrir. La boîte de dialogue se referme et GNVL_Receiver apparaît sous le nœud Application du contrôleur Dev_Receiver : Cette GNVL contient automatiquement les mêmes déclarations de variable que GVL_Sender. Étape 2 : affichage et/ou modification des paramètres réseau de la GNVL : Etape Action Commentaire 1 Dans le volet Appareils, cliquez avec le bouton droit La boîte de dialogue Propriétés - GNVL_Receiver de la souris sur le nœud GNVL_Receiver et s'ouvre. sélectionnez Propriétés.... 2 Cliquez sur l'onglet Paramètres réseau. – Étape 3 : test de l'échange de variables de réseau en mode en ligne : Etape 1 Action Commentaire Sous le nœud Application du contrôleur Dev_Sender, double-cliquez sur la POU prog_sender. L'éditeur de prog_sender s'ouvre dans la partie droite. EIO0000002975 09/2020 35 Exemple d'échange simple de variables de réseau Etape 36 Action Commentaire 2 Entrez le code suivant pour la variable iglobvar : – 3 Sous le nœud Application du contrôleur L'éditeur de prog_rec s'ouvre dans la partie droite. Dev_Receiver, double-cliquez sur la POU prog_rec. 4 Entrez le code suivant pour la variable ivar_local : 5 Connectez-vous aux applications de l'expéditeur et La variable ivar_local dans le récepteur du récepteur dans le même réseau et démarrez-les. récupère les valeurs de iglobvar affichées dans l'expéditeur. – EIO0000002975 09/2020 EcoStruxure Machine Expert Compatibilité EIO0000002975 09/2020 Annexe B Compatibilité Compatibilité Compatibilité Introduction Même si les contrôleurs fonctionnent avec des applications ayant différentes versions du système de programmation (par exemple, V2.3 et V3.x), la communication via des variables de réseau est possible. Toutefois, en raison des formats différents des fichiers d'export entre les versions (*.exp / *.gvl), il est impossible de procéder à de simples importations et exportations de ces fichiers entre projets. Si une liste de variables de réseau globales (GNVL) est créée dans la dernière version (par exemple, V3.x), la configuration des paramètres réseau requis doit être fournie par un expéditeur de la dernière version (en l'occurrence, V3.x). Un fichier d'exportation *.exp créé par un expéditeur d'une version antérieure (par exemple, V2.3) ne contient pas ces informations. Les paragraphes suivants détaillent une solution permettant d'échanger des variables de réseau entre des applications générées par des systèmes de programmation de différentes versions. Mise à jour de la liste des variables de réseau globales Pour échanger des variables de réseau entre des applications dont le système de programmation a différentes versions (par exemple, V2.3 et V3.x), mettez à jour la liste des variables de réseau globales en procédant comme suit : Étape 1 2 3 Action Commentaire Recréez dans la dernière version (V3.x) la liste des variables de réseau (NVL) disponible dans la version précédente (V2.3). Pour ce faire, ajoutez une liste de variables globales (GVL) avec des propriétés réseau, contenant les mêmes déclarations de variables que la NVL de la version précédente (V2.3). Exportez la nouvelle GVL dans un fichier NOTE : activez l'option Exclure de la compilation *.exp à l'aide de l'onglet Lien avec fichier. Réimportez la liste. dans l'onglet Compiler pour conserver la GVL dans le projet sans obtenir d'événements de précompilation et de noms ambigus. Désactivez cette option pour recréer le fichier *.exp si la GVL doit être modifiée. Pour ce faire, créez une liste de variables de réseau globales (GNVL) à l'aide du fichier *.exp précédemment généré afin d'obtenir une liste des récepteurs correctement configurés. Ces étapes sont décrites dans l'exemple ci-dessous. EIO0000002975 09/2020 37 Compatibilité Exemple Dans cet exemple, la variable trans23 définie dans une application V2.3 est disponible dans une version plus récente (V3.x). Les conditions définies sont les suivantes : Condition 1 38 Description Dans la version précédente du système de programmation (V2.3), le projet 23.pro contient une liste des variables globales GVL_23 avec la déclaration suivante : VAR_GLOBAL trans23:INT; END_VAR EIO0000002975 09/2020 Compatibilité Condition 2 Description Les propriétés réseau de GVL_23 sont configurées comme suit : NOTE : l'exportation de GVL_23 crée un fichier *.exp qui ne contient que la déclaration de variable suivante : VAR_GLOBAL trans23:INT; END_VAR Le fichier *.exp ne contient aucun paramètre de configuration. Le tableau ci-dessous montre les opérations supplémentaires à effectuer pour recréer GVL_23 dans la version plus récente (V3.x) : Étape 1 Action Commentaire Ajoutez un objet GVL nommé GVL_23 – à une application. EIO0000002975 09/2020 39 Compatibilité Étape 40 Action 2 Configurez les propriétés réseau comme indiqué dans le projet 23.pro. 3 Dans l'onglet Lien avec fichier, configurez un fichier d'exportation cible nommé 23.gvl. 4 Dans l'onglet Compiler, activez l'option Exclure de la compilation. Commentaire Ce paramètre vous permet de conserver le fichier sur le disque, en vue de modifications ultérieures. EIO0000002975 09/2020 Compatibilité Étape Action Commentaire 5 Compilez le projet. Le fichier 23.gvl est généré et contient la variable et les paramètres de configuration : 6 Ajoutez un objet GNVL dans le projet V3.x à partir du fichier d'exportation 23.gvl (à l'aide de la commande Importation à partir du fichier :). Cela permet de lire la variable trans23 à partir du contrôleur de l'ancien système de programmation (V.2.3). Si le projet de l'ancienne version (V2.3) et l'application de la nouvelle version (V3.x) sont tous les deux en cours d'exécution sur le réseau, la seconde peut lire la variable trans23 du projet 23.pro. EIO0000002975 09/2020 41 Compatibilité 42 EIO0000002975 09/2020 EcoStruxure Machine Expert Glossaire EIO0000002975 09/2020 Glossaire G GVL Acronyme de Global Variable List, liste de variables globales. Permet de gérer les variables globales d'un projet EcoStruxure Machine Expert. U UDP Acronyme de User Datagram Protocol, protocole de datagramme utilisateur. Protocole de mode sans fil (défini par la norme IETF RFC 768) dans lequel les messages sont livrés dans un datagramme vers un ordinateur cible sur un réseau IP. Le protocole UDP est généralement fourni en même temps que le protocole Internet. Les messages UDP/IP n'attendent pas de réponse et, de ce fait, ils sont particulièrement adaptés aux applications dans lesquelles aucune retransmission des paquets envoyés n'est nécessaire (comme dans la vidéo en continu ou les réseaux exigeant des performances en temps réel). EIO0000002975 09/2020 43 Glossaire 44 EIO0000002975 09/2020 EcoStruxure Machine Expert Index EIO0000002975 09/2020 Index G GNVL liste de variables de réseau globales, 19 N NETVARGETDIAGINFO bibliothèque SE_NetVarUdp, 25 NETVARRESETERROR bibliothèque SE_NetVarUdp, 28 NVL contrôleurs prenant en charge la NVL, 14 diagnostic, 25 exemple de configuration, 31 gestion des erreurs, 28 listes de variables de réseau, 12 règles, 21 remarques, 14 S SE_NetVarUdp NETVARGETDIAGINFO, 25 NETVARRESETERROR, 28 EIO0000002975 09/2020 45 EcoStruxure Machine Expert EIO0000002798 09/2020 EcoStruxure Machine Expert SnmpManager Guide de la bibliothèque EIO0000002798.01 09/2020 www.schneider-electric.com Le présent document comprend des descriptions générales et/ou des caractéristiques techniques des produits mentionnés. Il ne peut pas être utilisé pour définir ou déterminer l'adéquation ou la fiabilité de ces produits pour des applications utilisateur spécifiques. Il incombe à chaque utilisateur ou intégrateur de réaliser l'analyse de risques complète et appropriée, l'évaluation et le test des produits pour ce qui est de l'application à utiliser et de l'exécution de cette application. Ni la société Schneider Electric ni aucune de ses sociétés affiliées ou filiales ne peuvent être tenues pour responsables de la mauvaise utilisation des informations contenues dans le présent document. Si vous avez des suggestions, des améliorations ou des corrections à apporter à cette publication, veuillez nous en informer. Vous acceptez de ne pas reproduire, excepté pour votre propre usage à titre non commercial, tout ou partie de ce document et sur quelque support que ce soit sans l'accord écrit de Schneider Electric. Vous acceptez également de ne pas créer de liens hypertextes vers ce document ou son contenu. Schneider Electric ne concède aucun droit ni licence pour l'utilisation personnelle et non commerciale du document ou de son contenu, sinon une licence non exclusive pour une consultation « en l'état », à vos propres risques. Tous les autres droits sont réservés. Toutes les réglementations locales, régionales et nationales pertinentes doivent être respectées lors de l'installation et de l'utilisation de ce produit. Pour des raisons de sécurité et afin de garantir la conformité aux données système documentées, seul le fabricant est habilité à effectuer des réparations sur les composants. Lorsque des équipements sont utilisés pour des applications présentant des exigences techniques de sécurité, suivez les instructions appropriées. La non-utilisation du logiciel Schneider Electric ou d'un logiciel approuvé avec nos produits matériels peut entraîner des blessures, des dommages ou un fonctionnement incorrect. Le non-respect de cette consigne peut entraîner des lésions corporelles ou des dommages matériels. © 2020 Schneider Electric. Tous droits réservés. 2 EIO0000002798 09/2020 Table des matières Consignes de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . A propos de ce manuel. . . . . . . . . . . . . . . . . . . . . . . . . . Partie I Informations générales . . . . . . . . . . . . . . . . . . . . . . . Chapitre 1 Présentation de la bibliothèque . . . . . . . . . . . . . . . . . . . Informations générales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 2 Utilisation de SnmpManager pour gérer les appareils/clients dans un réseau . . . . . . . . . . . . . . . . . . Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Partie II Énumérations et Structures . . . . . . . . . . . . . . . . . . . Chapitre 3 Énumérations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ET_SnmpTag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ET_Result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ET_SnmpRequest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ET_SnmpProtocolVersion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 4 Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ST_RequestInformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ST_Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ST_Response. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Partie III Variables globales . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 5 Liste des constantes globales. . . . . . . . . . . . . . . . . . . . . Liste des constantes globales (GCL). . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 6 Liste des paramètres globaux. . . . . . . . . . . . . . . . . . . . . Liste des paramètres globaux (GPL). . . . . . . . . . . . . . . . . . . . . . . . . . Partie IV Unités d'organisation de programme (POU). . . . . . . Chapitre 7 Blocs fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FB_SnmpManager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 8 Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FC_EtResultToString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Glossaire Index EIO0000002798 09/2020 ......................................... ......................................... 5 11 17 19 19 25 25 29 31 32 34 42 43 45 46 47 49 51 53 53 55 55 57 59 59 63 63 65 67 3 4 EIO0000002798 09/2020 Consignes de sécurité Informations importantes AVIS Lisez attentivement ces instructions et examinez le matériel pour vous familiariser avec l'appareil avant de tenter de l'installer, de le faire fonctionner, de le réparer ou d'assurer sa maintenance. Les messages spéciaux suivants que vous trouverez dans cette documentation ou sur l'appareil ont pour but de vous mettre en garde contre des risques potentiels ou d'attirer votre attention sur des informations qui clarifient ou simplifient une procédure. EIO0000002798 09/2020 5 REMARQUE IMPORTANTE L'installation, l'utilisation, la réparation et la maintenance des équipements électriques doivent être assurées par du personnel qualifié uniquement. Schneider Electric décline toute responsabilité quant aux conséquences de l'utilisation de ce matériel. Une personne qualifiée est une personne disposant de compétences et de connaissances dans le domaine de la construction, du fonctionnement et de l'installation des équipements électriques, et ayant suivi une formation en sécurité leur permettant d'identifier et d'éviter les risques encourus. QUALIFICATION DU PERSONNEL Une personne qualifiée est une personne qui a les qualifications suivantes : Compétences et connaissances liées à la construction et à l'exploitation d'équipements électriques et à l'installation. Connaissances et expérience en programmation de contrôle industriel. A reçu une formation en sécurité permettant de reconnaître et d'éviter les dangers potentiels. La personne qualifiée doit être capable de détecter d'éventuels dangers qui pourraient découler du paramétrage, de modifications des valeurs de paramétrage et plus généralement des équipements mécaniques, électriques ou électroniques. La personne qualifiée doit connaître les normes, dispositions et régulations liées à la prévention des accidents de travail, et doit les observer lors de la conception et de l'implémentation du système. INSTRUCTIONS D'UTILISATION Ce produit est une bibliothèque à utiliser avec un système de commande et des servoamplificateurs. La bibliothèque n'est conçue qu'en vue d'une utilisation telle que décrite dans la présente documentation, appliquée au secteur industriel. Observez en permanence les instructions applicables liées à la sécurité, les conditions spécifiques et les données techniques. Réalisez une analyse des risques en rapport avec l'utilisation spécifique avant d'utiliser ce produit. Prenez les mesures de sécurité qui découlent des résultats. Étant donné que ce produit est utilisé au sein d'un système qui l'englobe, vous devez assurer la sécurité du personnel par la conception même du système global (la conception de la machine, par exemple). Aucune autre utilisation n'est prévue. Toute autre utilisation pourrait être dangereuse. AVANT DE COMMENCER N'utilisez pas ce produit sur les machines non pourvues de protection efficace du point de fonctionnement. L'absence de ce type de protection sur une machine présente un risque de blessures graves pour l'opérateur. 6 EIO0000002798 09/2020 AVERTISSEMENT EQUIPEMENT NON PROTEGE N'utilisez pas ce logiciel ni les automatismes associés sur des appareils non équipés de protection du point de fonctionnement. N'accédez pas aux machines pendant leur fonctionnement. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Cet automatisme et le logiciel associé permettent de commander des processus industriels divers. Le type ou le modèle d'automatisme approprié pour chaque application dépendra de facteurs tels que la fonction de commande requise, le degré de protection exigé, les méthodes de production, des conditions inhabituelles, la législation, etc. Dans certaines applications, plusieurs processeurs seront nécessaires, notamment lorsque la redondance de sauvegarde est requise. Vous seul, en tant que constructeur de machine ou intégrateur de système, pouvez connaître toutes les conditions et facteurs présents lors de la configuration, de l'exploitation et de la maintenance de la machine, et êtes donc en mesure de déterminer les équipements automatisés, ainsi que les sécurités et verrouillages associés qui peuvent être utilisés correctement. Lors du choix de l'automatisme et du système de commande, ainsi que du logiciel associé pour une application particulière, vous devez respecter les normes et réglementations locales et nationales en vigueur. Le document National Safety Council's Accident Prevention Manual (reconnu aux Etats-Unis) fournit également de nombreuses informations utiles. Dans certaines applications, telles que les machines d'emballage, une protection supplémentaire, comme celle du point de fonctionnement, doit être fournie pour l'opérateur. Elle est nécessaire si les mains ou d'autres parties du corps de l'opérateur peuvent entrer dans la zone de point de pincement ou d'autres zones dangereuses, risquant ainsi de provoquer des blessures graves. Les produits logiciels seuls, ne peuvent en aucun cas protéger les opérateurs contre d'éventuelles blessures. C'est pourquoi le logiciel ne doit pas remplacer la protection de point de fonctionnement ou s'y substituer. Avant de mettre l'équipement en service, assurez-vous que les dispositifs de sécurité et de verrouillage mécaniques et/ou électriques appropriés liés à la protection du point de fonctionnement ont été installés et sont opérationnels. Tous les dispositifs de sécurité et de verrouillage liés à la protection du point de fonctionnement doivent être coordonnés avec la programmation des équipements et logiciels d'automatisation associés. NOTE : La coordination des dispositifs de sécurité et de verrouillage mécaniques/électriques du point de fonctionnement n'entre pas dans le cadre de cette bibliothèque de blocs fonction, du Guide utilisateur système ou de toute autre mise en œuvre référencée dans la documentation. EIO0000002798 09/2020 7 DEMARRAGE ET TEST Avant toute utilisation de l'équipement de commande électrique et des automatismes en vue d'un fonctionnement normal après installation, un technicien qualifié doit procéder à un test de démarrage afin de vérifier que l'équipement fonctionne correctement. Il est essentiel de planifier une telle vérification et d'accorder suffisamment de temps pour la réalisation de ce test dans sa totalité. AVERTISSEMENT RISQUES INHERENTS AU FONCTIONNEMENT DE L'EQUIPEMENT Assurez-vous que toutes les procédures d'installation et de configuration ont été respectées. Avant de réaliser les tests de fonctionnement, retirez tous les blocs ou autres cales temporaires utilisés pour le transport de tous les dispositifs composant le système. Enlevez les outils, les instruments de mesure et les débris éventuels présents sur l'équipement. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Effectuez tous les tests de démarrage recommandés dans la documentation de l'équipement. Conservez toute la documentation de l'équipement pour référence ultérieure. Les tests logiciels doivent être réalisés à la fois en environnement simulé et réel. Vérifiez que le système entier est exempt de tout court-circuit et mise à la terre temporaire non installée conformément aux réglementations locales (conformément au National Electrical Code des Etats-Unis, par exemple). Si des tests diélectriques sont nécessaires, suivez les recommandations figurant dans la documentation de l'équipement afin d'éviter de l'endommager accidentellement. Avant de mettre l'équipement sous tension : Enlevez les outils, les instruments de mesure et les débris éventuels présents sur l'équipement. Fermez le capot du boîtier de l'équipement. Retirez toutes les mises à la terre temporaires des câbles d'alimentation entrants. Effectuez tous les tests de démarrage recommandés par le fabricant. 8 EIO0000002798 09/2020 FONCTIONNEMENT ET REGLAGES Les précautions suivantes sont extraites du document NEMA Standards Publication ICS 7.1-1995 (la version anglaise prévaut) : Malgré le soin apporté à la conception et à la fabrication de l'équipement ou au choix et à l'évaluation des composants, des risques subsistent en cas d'utilisation inappropriée de l'équipement. Il arrive parfois que l'équipement soit déréglé accidentellement, entraînant ainsi un fonctionnement non satisfaisant ou non sécurisé. Respectez toujours les instructions du fabricant pour effectuer les réglages fonctionnels. Les personnes ayant accès à ces réglages doivent connaître les instructions du fabricant de l'équipement et les machines utilisées avec l'équipement électrique. Seuls ces réglages fonctionnels, requis par l'opérateur, doivent lui être accessibles. L'accès aux autres commandes doit être limité afin d'empêcher les changements non autorisés des caractéristiques de fonctionnement. EIO0000002798 09/2020 9 10 EIO0000002798 09/2020 A propos de ce manuel Présentation Objectif du document Ce document décrit la bibliothèque SnmpManager. La bibliothèque SnmpManager met en œuvre un gestionnaire du protocole Internet standard SNMP (Simple Network Management Protocol). Le gestionnaire SNMP permet à votre contrôleur de collecter et d'organiser les informations concernant les équipements pris en charge sur les réseaux IP (Internet Protocol) et de modifier ces informations pour ajuster la configuration de l'équipement. La bibliothèque SnmpManager utilise des fonctions et des ressources système qui sont prises en charge sur certaines plates-formes de contrôleur avec port Ethernet disponibles dans EcoStruxure Machine Expert. Champ d'application Ce document a été actualisé pour le lancement d’EcoStruxureTM Machine Expert V1.2.5. Les caractéristiques techniques des équipements décrits dans ce document sont également fournies en ligne. Pour accéder à ces informations en ligne : Etape Action 1 Accédez à la page d'accueil de Schneider Electric www.schneider-electric.com. 2 Dans la zone Search, saisissez la référence d'un produit ou le nom d'une gamme de produits. N'insérez pas d'espaces dans la référence ou la gamme de produits. Pour obtenir des informations sur un ensemble de modules similaires, utilisez des astérisques (*). 3 Si vous avez saisi une référence, accédez aux résultats de recherche Product Datasheets et cliquez sur la référence qui vous intéresse. Si vous avez saisi une gamme de produits, accédez aux résultats de recherche Product Ranges et cliquez sur la gamme de produits qui vous intéresse. 4 Si plusieurs références s'affichent dans les résultats de recherche Products, cliquez sur la référence qui vous intéresse. 5 Selon la taille de l'écran, vous serez peut-être amené à faire défiler la page pour consulter la fiche technique. 6 Pour enregistrer ou imprimer une fiche technique au format .pdf, cliquez sur Download XXX product datasheet. EIO0000002798 09/2020 11 Les caractéristiques présentées dans ce document devraient être identiques à celles fournies en ligne. Toutefois, en application de notre politique d'amélioration continue, nous pouvons être amenés à réviser le contenu du document afin de le rendre plus clair et plus précis. Si vous constatez une différence entre le document et les informations fournies en ligne, utilisez ces dernières en priorité. Information spécifique au produit AVERTISSEMENT PERTE DE CONTROLE Le concepteur d'un système de commande doit envisager les modes de défaillance possibles des chemins de commande et, pour certaines fonctions de commande critiques, prévoir un moyen d'atteindre un état sécurisé en cas de défaillance d'un chemin, et après cette défaillance. Par exemple, l'arrêt d'urgence, l'arrêt en cas de surcourse, la coupure de courant et le redémarrage sont des fonctions de contrôle cruciales. Des canaux de commande séparés ou redondants doivent être prévus pour les fonctions de commande critique. Les liaisons de communication peuvent faire partie des canaux de commande du système. Soyez particulièrement attentif aux implications des retards de transmission imprévus ou des pannes de liaison. Respectez toutes les réglementations de prévention des accidents ainsi que les consignes de sécurité locales.1 Chaque implémentation de cet équipement doit être testée individuellement et entièrement pour s'assurer du fonctionnement correct avant la mise en service. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. 1 Pour plus d'informations, consultez les documents suivants ou leurs équivalents pour votre site d'installation : NEMA ICS 1.1 (dernière édition), « Safety Guidelines for the Application, Installation, and Maintenance of Solid State Control » (Directives de sécurité pour l'application, l'installation et la maintenance de commande statique) et NEMA ICS 7.1 (dernière édition), « Safety Standards for Construction and Guide for Selection, Installation, and Operation of Adjustable-Speed Drive Systems » (Normes de sécurité relatives à la construction et manuel de sélection, d'installation et d'exploitation de variateurs de vitesse). Avant de tenter de fournir une solution (machine ou processus) pour une application spécifique en utilisant les POU trouvés dans la bibliothèque, vous devez tenir compte de la réalisation et de l'exécution des bonnes pratiques. La liste non exhaustive de ces pratiques liées à cette bibliothèque inclut l'analyse des risques, la sécurité fonctionnelle, la compatibilité des composants, les tests et la validation du système. 12 EIO0000002798 09/2020 AVERTISSEMENT UTILISATION INCORRECTE DES UNITES ORGANISATIONNELLES DU PROGRAMME Effectuez une analyse de la sécurité de l'application et des équipements installés. Vérifiez que les POU sont compatibles avec les équipements du système et n'ont pas d'effets inattendus sur le bon fonctionnement du système. Utilisez les paramètres appropriés, notamment les valeurs limites, et observez l'usure de la machine et son fonctionnement à l'arrêt. Vérifiez que les capteurs et déclencheurs sont compatibles avec les POU sélectionnés. Testez de manière approfondie toutes les fonctions durant la vérification et la mise en service dans tous les modes de fonctionnement. Indiquez des méthodes indépendantes pour les fonctions de commande critiques (arrêt d'urgence, conditions de dépassement des valeurs limites, etc.) en fonction d'une analyse de la sécurité, des règles correspondantes et des réglementations. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. AVERTISSEMENT FONCTIONNEMENT IMPRÉVU DE L'ÉQUIPEMENT N'utilisez que le logiciel approuvé par Schneider Electric pour faire fonctionner cet équipement. Mettez à jour votre programme d'application chaque fois que vous modifiez la configuration matérielle physique. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. AVERTISSEMENT FONCTIONNEMENT INATTENDU DE L'EQUIPEMENT Actualisez votre programme d'application, si nécessaire, en portant une attention particulière aux réglages de l'adresse d'E/S, dès que vous modifiez la configuration matérielle. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. EIO0000002798 09/2020 13 Les transferts incomplets, qu'il s'agisse de fichiers de données, d'application et/ou de micrologiciel, peuvent avoir des conséquences graves sur votre machine ou votre contrôleur. En cas coupure de courant (volontaire ou non) ou d'interruption de la communication pendant un transfert de fichier, votre machine peut devenir inopérante ou votre application peut tenter d'utiliser un fichier de données endommagé. En cas d'interruption, relancez le transfert. Veillez à inclure l'impact des fichiers de données endommagés dans votre analyse des risques. AVERTISSEMENT FONCTIONNEMENT IMPRÉVU DE L'ÉQUIPEMENT, PERTE DE DONNÉES OU FICHIER ENDOMMAGÉ N'interrompez pas un transfert de données en cours. Si le transfert est interrompu pour une raison quelconque, relancez-le. Ne mettez pas votre machine en service tant que le transfert de fichier n'est pas terminé, sauf si vous avez pris en compte les fichiers endommagés dans votre analyse des risques et si vous avez mis en place des mesures appropriées pour prévenir les conséquences potentiellement graves dues à des échecs de transfert. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Documents associés Titre du document Référence EcoStruxure Machine Expert - Fonctions et bibliothèques - Guide de l'utilisateur EIO0000002829 (ENG) ; EIO0000002830 (FRE) ; EIO0000002831 (GER) ; EIO0000002832 (ITA) ; EIO0000002833 (SPA) ; EIO0000002834 (CHS) ; EcoStruxure Machine Expert - Guide de programmation EIO0000002854 (ENG) ; EIO0000002855 (FRE) ; EIO0000002856 (GER) ; EIO0000002857 (ITA) ; EIO0000002858 (SPA) ; EIO0000002859 (CHS) ; Vous pouvez télécharger ces publications ainsi que d'autres informations techniques sur notre site Web : www.schneider-electric.com/en/download. Terminologie utilisée dans les normes Les termes techniques, la terminologie, les symboles et les descriptions correspondantes employés dans ce manuel ou figurant dans ou sur les produits proviennent généralement des normes internationales. 14 EIO0000002798 09/2020 Dans les domaines des systèmes de sécurité fonctionnelle, des variateurs et de l'automatisme en général, les termes employés sont sécurité, fonction de sécurité, état sécurisé, défaut, réinitialisation du défaut, dysfonctionnement, panne, erreur, message d'erreur, dangereux, etc. Entre autres, les normes concernées sont les suivantes : Norme Description IEC 61131-2:2007 Automates programmables - Partie 2 : exigences et essais des équipements ISO 13849-1:2015 Sécurité des machines : parties des systèmes de commande relatives à la sécurité. Principes généraux de conception EN 61496-1:2013 Sécurité des machines : équipements de protection électro-sensibles. Partie 1 : Prescriptions générales et essais ISO 12100:2010 Sécurité des machines - Principes généraux de conception - Appréciation du risque et réduction du risque EN 60204-1:2006 Sécurité des machines - Équipement électrique des machines - Partie 1 : règles générales ISO 14119:2013 Sécurité des machines - Dispositifs de verrouillage associés à des protecteurs - Principes de conception et de choix ISO 13850:2015 Sécurité des machines - Fonction d'arrêt d'urgence - Principes de conception IEC 62061:2015 Sécurité des machines - Sécurité fonctionnelle des systèmes de commande électrique, électronique et électronique programmable relatifs à la sécurité IEC 61508-1:2010 Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité : prescriptions générales. IEC 61508-2:2010 Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité : exigences pour les systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité. IEC 61508-3:2010 Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité : exigences concernant les logiciels. IEC 61784-3:2016 Réseaux de communication industriels - Profils - Partie 3 : Bus de terrain de sécurité fonctionnelle - Règles générales et définitions de profils. 2006/42/EC Directive Machines 2014/30/EU Directive sur la compatibilité électromagnétique 2014/35/EU Directive sur les basses tensions De plus, des termes peuvent être utilisés dans le présent document car ils proviennent d'autres normes telles que : Norme Description Série IEC 60034 Machines électriques rotatives Série IEC 61800 Entraînements électriques de puissance à vitesse variable EIO0000002798 09/2020 15 Norme Description Série IEC 61158 Communications numériques pour les systèmes de mesure et de commande – Bus de terrain utilisés dans les systèmes de commande industriels Enfin, le terme zone de fonctionnement utilisé dans le contexte de la description de dangers spécifiques a la même signification que les termes zone dangereuse ou zone de danger employés dans la directive Machines (2006/42/EC) et la norme ISO 12100:2010. NOTE : Les normes susmentionnées peuvent s'appliquer ou pas aux produits cités dans la présente documentation. Pour plus d'informations sur chacune des normes applicables aux produits décrits dans le présent document, consultez les tableaux de caractéristiques de ces références de produit. 16 EIO0000002798 09/2020 EcoStruxure Machine Expert Informations générales EIO0000002798 09/2020 Partie I Informations générales Informations générales Contenu de cette partie Cette partie contient les chapitres suivants : Chapitre Titre du chapitre Page 1 Présentation de la bibliothèque 19 2 Utilisation de SnmpManager pour gérer les appareils/clients dans un réseau 25 EIO0000002798 09/2020 17 Informations générales 18 EIO0000002798 09/2020 EcoStruxure Machine Expert Description EIO0000002798 09/2020 Chapitre 1 Présentation de la bibliothèque Présentation de la bibliothèque Informations générales Présentation de la bibliothèque La bibliothèque SnmpManager met en œuvre un gestionnaire du protocole Internet standard SNMP (Simple Network Management Protocol). Le gestionnaire SNMP permet à votre contrôleur de collecter et d'organiser les informations concernant les équipements pris en charge sur les réseaux IP (Internet Protocol) et de modifier ces informations pour ajuster la configuration de l'équipement. Le gestionnaire SNMP peut communiquer avec les équipements gérés via les protocoles SNMPv1 et SNMPv2c. Le gestionnaire SNMP est conforme à la version 1 du protocole SNMP défini dans le document IETF RFC 1157. Le gestionnaire SNMP est conforme à la version 2 (de la communauté) du protocole SNMP défini dans l'IETF RFC 1901...1907. Il fournit les fonctions suivantes : Génération et transmission d'une requête GET pour un OID (Object IDentifier, identifiant d'objet). Génération et transmission d'une requête SET pour un OID. Réception et structuration de la réponse de l'agent. Mise à disposition de la valeur décodée d'une réponse dans un type de système approprié. Encodage d'une valeur donnée pour une requête SET correspondante. Gestion des erreurs détectées. Un agent peut être un équipement réseau exécutant des fonctionnalités SNMP, comme un commutateur, un routeur, une imprimante ou d'autres contrôleurs. Vous devez fournir les informations concernant la structure MIB (Management Information Base) spécifique et les OID correspondant à chaque agent. EIO0000002798 09/2020 19 Description Caractéristiques de la bibliothèque Le tableau suivant indique les caractéristiques de la bibliothèque : 20 Caractéristique Valeur Titre de la bibliothèque SnmpManager Société Schneider Electric Catégorie Communication Composant Suite de protocoles Internet Espace de noms par défaut SE_SNMP Attribut du modèle de langage Uniquement accès qualifié (voir EcoStruxure Machine Expert, Fonctions et bibliothèques - Guide de l'utilisateur) EIO0000002798 09/2020 Description Caractéristique Valeur Bibliothèque post-compatible Oui (FCL (voir EcoStruxure Machine Expert, Fonctions et bibliothèques - Guide de l'utilisateur)) NOTE : Cette bibliothèque est paramétrée en Uniquement accès qualifié (qualified-access-only). Cela signifie que l'on ne peut accéder aux POU, aux structures de données, aux énumérations, et aux constantes qu'en utilisant l'espace de nom de la bibliothèque. L'espace de noms par défaut de la bibliothèque est SE_SNMP. Eléments généraux à prendre en compte Prenez en compte les limites suivantes de la communication SNMP : Seul le protocole IPv4 (Internet Protocol version 4) est pris en charge. Seule une requête vers un agent SNMP est autorisée à la fois. Seul un OID peut être traité par requête. La bibliothèque SnmpManager intègre des pointeurs sur les adresses. L'exécution de la commande Changement en ligne peut modifier le contenu des adresses. ATTENTION POINTEUR NON VALIDE Vérifiez la validité des pointeurs lors de leur utilisation sur les adresses et de l'exécution de la commande Changement en ligne. Le non-respect de ces instructions peut provoquer des blessures ou des dommages matériels. La bibliothèque du gestionnaire SNMP repose sur les communications UDP. NOTE : Aucune connexion de bout en bout dédiée n'est configurée avec le protocole UDP. Les homologues communiquent en transmettant des informations de manière unidirectionnelle, d'une source vers une destination. Il est impossible de vérifier si un message a effectivement atteint l'homologue de destination ou si des informations ont été perdues en chemin. Le protocole UDP ne prévoit pas d'options d'acquittement, de retransmission ni de timeout. La bibliothèque décrite dans ce document utilise la bibliothèque TcpUdpCommunication en interne. Les bibliothèques TcpUdpCommunication (Schneider Electric) et CAA Net Base Services (CAA Technical Workgroup) utilisent les mêmes ressources système sur le contrôleur. Leur utilisation simultanée dans la même application peut perturber le fonctionnement du contrôleur. EIO0000002798 09/2020 21 Description AVERTISSEMENT COMPORTEMENT INATTENDU DE L'EQUIPEMENT N'utilisez pas la bibliothèque TcpUdpCommunication (Schneider Electric) avec la bibliothèque CAA Net Base Services (CAA Technical Workgroup) simultanément dans la même application. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Éléments à prendre en compte concernant la cybersécurité Les fonctions de la bibliothèque SnmpManager ne prennent pas en charge les connexions sécurisées telles que TLS (Transport Layer Security) ou SSL (Secure Socket Layer). Les télégrammes SNMP ne sont pas chiffrés et l'authentification n'est pas requise pour obtenir ou définir des informations sur un agent. La communication ne peut s'effectuer qu'au sein de votre réseau industriel, isolé des autres réseaux de votre entreprise et protégé d'Internet. NOTE : Schneider Electric respecte les bonnes pratiques de l'industrie, en vigueur dans le développement et la mise en œuvre des systèmes de contrôle. Cette approche, dite de « défense en profondeur », permet de sécuriser les systèmes de contrôle industriels. Elle place les contrôleurs derrière des pare-feu pour restreindre leur accès aux seuls personnels et protocoles autorisés. AVERTISSEMENT ACCÈS NON AUTHENTIFIÉ ET UTILISATION NON AUTORISÉE DE LA MACHINE Estimer si votre environnement ou vos machines sont connecté(e)s à votre infrastructure vitale et, le cas échéant, prendre les mesures nécessaires de prévention, basées sur le principe de défense en profondeur, avant de connecter le système d'automatisme à un réseau quelconque. Limiter au strict nécessaire le nombre d'équipements connectés à un réseau. Isoler votre réseau industriel des autres réseaux au sein de votre société. Protéger chaque réseau contre les accès non autorisés à l'aide d'un pare-feu, d'un VPN ou d'autres mesures de sécurité éprouvées. Surveiller les activités au sein de votre système. Empêcher tout accès direct ou liaison directe aux équipements sensibles par des utilisateurs non autorisés ou des actions non authentifiées. Préparer un plan de récupération intégrant la sauvegarde des informations de votre système et de votre processus. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. 22 EIO0000002798 09/2020 Description Présentation des POU Bloc fonction / fonction Utilisation FB_SnmpManager (voir page 59) Met en œuvre un gestionnaire SNMP qui envoie des requêtes aux appareils pris en charge. FC_EtResultToString (voir page 63) Convertit un élément d'énumération de type ET_Result en une valeur de chaîne. Présentation des structures dans l'interface propre au module Structure Utilisation ST_RequestInformation (voir page 46) Contient une structure i_stRequest pour l'entrée utilisateur et une structure q_stResponse pour les données de sortie. ST_Request (voir page 47) Contient les informations de l'utilisateur, permettant d'envoyer une requête à un agent. ST_Response (voir page 49) Contient les informations de l'utilisateur reçues d'un agent lors d'une requête. Présentation des énumérations Énumération Utilisation ET_SnmpTag (voir page 32) Décrit les types possibles des valeurs qu'il est possible d'envoyer avec une requête SET. ET_Result (voir page 34) Contient les valeurs possibles qui donnent les résultats des opérations exécutées par le bloc fonction. ET_SnmpRequest (voir page 42) Vous permet de définir les types des requêtes (PDU, Protocol Data Unit) exécutables par le bloc fonction FB_SNMPManager via i_etRequest. ET_SnmpProtocolVersion (voir page 43) Permet de définir le type de version du protocole, que le bloc fonction FB_SNMPManager peut exécuter via i_etVersion. EIO0000002798 09/2020 23 Description 24 EIO0000002798 09/2020 EcoStruxure Machine Expert Utilisation de SnmpManager pour gérer les appareils/clients dans un réseau EIO0000002798 09/2020 Chapitre 2 Utilisation de SnmpManager pour gérer les appareils/clients dans un réseau Utilisation de SnmpManager pour gérer les appareils/clients dans un réseau Principe Configuration système requise Agent SNMP en cours d'exécution sur un appareil/client prenant en charge la version v1 ou v2c du protocole Informations requises Structure de la MIB avec son OID (Object IDentifier). Port et adresse IP de l'appareil/du client sur lequel l'agent SNMP s'exécute. Noms de communauté différents configurés dans l'agent SNMP pour la lecture et l'écriture. Définition d'une nouvelle valeur dans un OID (exemple) Déclaration : PROGRAM SetRequest VAR sNewSysName fbSnmpManager stRequestInfo etRequest etProtocolVersion xError xDone xBusy xActive xReady etResult sResultMsg END_VAR EIO0000002798 09/2020 : : : : : : : : : : STRING[60]; SE_SNMP.FB_SnmpManager; SE_SNMP.ST_RequestInformation; SE_SNMP.ET_SnmpRequest; SE_SNMP.ET_SnmpProtocolVersion; BOOL; BOOL; BOOL; BOOL; BOOL; : SE_SNMP.ET_Result; : STRING(255); 25 Utilisation de SnmpManager pour gérer les appareils/clients dans un réseau Mise en œuvre : sNewSysName := 'SchneiderSystem'; stRequestInfo.i_stRequest.pbyValueBuffer := ADR(sNewSysName); stRequestInfo.i_stRequest.dwNumBytesValue := 60; stRequestInfo.i_stRequest.sAgentIp := '10.128.154.41'; stRequestInfo.i_stRequest.sOid := '1.3.6.1.2.1.1.5.0'; //SysName stRequestInfo.i_stRequest.uiAgentSnmpPort := 161; stRequestInfo.i_stRequest.etValueType := SE_SNMP.ET_SnmpTag.OctetString ; etRequest := SE_SNMP.ET_SnmpRequest.SetRequest; etProtocolVersion := SE_SNMP.ET_SnmpProtocolVersion.Version2c fbSnmpManager( i_xEnable := TRUE, i_xExecute := TRUE, i_etRequest := etRequest, i_etVersion := etProtocolVersion iq_stRequestInfo := stRequestInfo, q_xActive => xActive, q_xReady => xReady, q_xBusy => xBusy, q_xDone => xDone, q_xError => xError, q_etResult => etResult, q_sResultMsg => sResultMsg ) Désignation des paramètres utilisés : Etape 1 2 Action Dans stRequestInfo.i_stRequest (voir page 60), définissez l'adresse IP (sAgentIp (voir page 47)) de votre appareil sur lequel l'agent SNMP s'exécute, par exemple, 10.128.154.47. Dans stRequestInfo.i_stRequest, définissez le port (uiAgentSnmpPort (voir page 47)) de l'agent SNMP. Le port standard de SNMP et le port par défaut de la bibliothèque sont 161. 3 4 Dans stRequestInfo.i_stRequest, définissez l'OID (sOid (voir page 47)) de la valeur à modifier, par exemple, 1.3.6.1.2.1.1.5.0 (SysName). Dans stRequestInfo.i_stRequest, définissez le pointeur (pbyValueBuffer (voir page 47)) de la valeur à définir dans l'OID (en cas de GetRequest, définissez le pointeur du tampon stockant la valeur reçue). 5 26 Dans stRequestInfo.i_stRequest, définissez le type de valeur (etValueType (voir page 47)), par exemple, OctetString (en cas de GetRequest, ce paramètre n'est pas utilisé). EIO0000002798 09/2020 Utilisation de SnmpManager pour gérer les appareils/clients dans un réseau Etape 6 Action Dans stRequestInfo.i_stRequest, définissez la taille de votre valeur (dwNumBytesValue (voir page 47)), par exemple, 60 (en cas de GetRequest, réglez la taille de votre tampon de valeurs). NOTE : Dans le cas des chaînes, ajoutez un octet supplémentaire pour le caractère de fin de la chaîne. 7 Dans le ET_SnmpProtocolVersion (voir page 43), configurez le type de la version du protocole SNMP. La version par défaut de la bibliothèque est Version2c. 8 Dans ET_SnmpRequest (voir page 42), définissez le type de requête, par exemple, SetRequest. 9 Appelez le bloc fonction FB_SnmpManager (voir page 59) avec les réglages/paramètres/variables ci-dessus. EIO0000002798 09/2020 27 Utilisation de SnmpManager pour gérer les appareils/clients dans un réseau 28 EIO0000002798 09/2020 EcoStruxure Machine Expert Énumérations et Structures EIO0000002798 09/2020 Partie II Énumérations et Structures Énumérations et Structures Contenu de cette partie Cette partie contient les chapitres suivants : Chapitre Titre du chapitre Page 3 Énumérations 31 4 Structures 45 EIO0000002798 09/2020 29 Énumérations et Structures 30 EIO0000002798 09/2020 EcoStruxure Machine Expert Énumérations EIO0000002798 09/2020 Chapitre 3 Énumérations Énumérations Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page ET_SnmpTag 32 ET_Result 34 ET_SnmpRequest 42 ET_SnmpProtocolVersion 43 EIO0000002798 09/2020 31 Énumérations ET_SnmpTag Présentation Type : Énumération Disponible à partir de la version : V1.0.0.0 Description L'énumération ET_SnmpTag décrit les types possibles des valeurs qu'il est possible d'envoyer avec une requête SET. NOTE : Le type de valeur Counter64 n'est pas pris en charge dans SNMPv1. Le type de tampon suggéré (voir le tableau ci-après) indique le type de variable qui doit être référencé par le pointeur iq_stRequestInfo.i_stRequest.pbyValueBuffer. Pour une requête SET, ces types de variable sont obligatoires. Pour les types de valeur reçus par une requête GET, le type de tampon suggéré renvoie au type de valeur utilisé par le bloc fonction pour représenter les données reçues. Éléments de l'énumération Nom Type de données Valeur Description Integer BYTE 2 Valeur de type entier signé (32 bits). Type de tampon suggéré : DINT OctetString BYTE 4 Valeur de type chaîne avec des caractères de 8 bits. Type de tampon suggéré : STRING ObjectID BYTE 6 Valeur de type ObjectID. Type de tampon suggéré : STRING (suite de chiffres séparés par des points) IpAddress BYTE 64 Valeur de type OctetString(4). Type de tampon suggéré : STRING[15] Counter32 BYTE 65 Valeur de type entier non signé (32 bits). Type de tampon suggéré : UDINT Gauge32 BYTE 66 Valeur de type entier non signé (32 bits). Type de tampon suggéré : UDINT TimeTicks BYTE 67 Valeur de type entier non signé (32 bits). Type de tampon suggéré : UDINT Counter64 BYTE 70 Valeur de type entier non signé (64 bits). Type de tampon suggéré : ULINT Non pris en charge dans SNMPv1. 32 EIO0000002798 09/2020 Énumérations Utilisé par FB_SnmpManager EIO0000002798 09/2020 33 Énumérations ET_Result Présentation Type : Énumération Disponible à partir de la version : V1.0.0.0 Description L'énumération ET_Result contient les valeurs possibles qui donnent le résultat et les codes d'erreur étendus des opérations exécutées par le bloc fonction. En cas d'erreurs détectées reçues dans le télégramme de réponse renvoyé par l'agent, les sorties iq_stRequestInfo.q_stResponse.sOID et iq_stRequestInfo.q_stResponse.sAgentIp sont toujours définies avec les données de la requête à l'origine de l'erreur. Éléments de l'énumération Nom Type de données Valeur Description Si le bloc fonction q_xError est FALSE, les messages d'état suivants s'affichent : Ok UDINT 0 L'opération a abouti et le bloc fonction est inactif. NotReady UDINT 2 L'opération demandée ne peut pas être exécutée dans l'état actuel. Disabled UDINT 3 Le bloc fonction est désactivé. Sending UDINT 4 Le bloc fonction envoie un télégramme de requête ainsi que les informations spécifiées avec l'entrée iq_stRequestInfo.i_stRequest. Listening UDINT 5 Le bloc fonction attend une réponse de l'agent. Evaluating UDINT 6 Le bloc fonction traite le télégramme reçu. Si le paramètre q_xError du bloc fonction est TRUE, les messages d'état suivants s'affichent : UnknownState UDINT 1 L'opération n'a pas abouti en raison d'une erreur indéterminée. GplMaxUserDataTooBig UDINT 15 GPL.Gc_dwMaxSizeUserData est hors limites. Vérifiez les réglages de la liste des paramètres globaux (voir page 55). 34 EIO0000002798 09/2020 Énumérations Nom Type de données Valeur Description GplMaxUserDataTooSmall UDINT 16 GPL.Gc_dwMaxSizeUserData est hors limites. Vérifiez les réglages de la liste des paramètres globaux (voir page 55). GplMaxOidTooBig UDINT 17 GPL.Gc_dwMaxSizeOid est hors limites. Vérifiez les réglages de la liste des paramètres globaux (voir page 55). GplMaxOidTooSmall UDINT 18 GPL.Gc_dwMaxSizeOid est hors limites. Vérifiez les réglages de la liste des paramètres globaux (voir page 55). GplTimeoutZero UDINT 19 GPL.Gc_udiTimeout est hors limites. Vérifiez les réglages de la liste des paramètres globaux (voir page 55). InputMissingOid UDINT 20 L'entrée obligatoire iq_stRequestInfo.i_stRequest.sOi d n'est pas valide. Vérifiez que l'entrée est affectée. InputInvalidBufferSize UDINT 21 Le tampon doit avoir une taille supérieure à zéro. La taille du tampon est fournie par la valeur iq_stRequestInfo.i_stRequest.dwN umBytesValue. InputInvalidRequest UDINT 22 Seules les tâches ET_SnmpRequest.GetRequest et ET_SnmpRequest.SetRequestsont prises en charge. InputInvalidOid UDINT 23 L'OID doit être fourni en tant que STRING contenant une suite de chiffres séparés par des points. Le premier chiffre ne peut être que 0, 1 ou 2. InputInvalidIp UDINT 24 L'adresse IP est incorrecte. Vérifiez que l'adresse IP est fournie en tant que chaîne STRING contenant une suite de 4 nombres séparés par des points. Les nombres doivent être compris entre 0 et 255. InputInvalidPointer UDINT 25 Le tampon référencé par le pointeur iq_stRequestInfo.i_stRequest.pby ValueBuffer est non valide. Vérifiez l'adresse du pointeur référençant le tampon, sa taille et son accès en écriture. EIO0000002798 09/2020 35 Énumérations Nom Type de données Valeur Description InputSize32BitValue UDINT 26 Le type de données référencé par iq_stRequestInfo.i_stRequest.etV alueType autorise les valeurs d'une taille maximale de 4 octets. InputSize64BitValue UDINT 27 Le type de données référencé par iq_stRequestInfo.i_stRequest.etV alueType autorise les valeurs d'une taille maximale de 8 octets. InputInvalidValueIp UDINT 28 Le type de données référencé par iq_stRequestInfo.i_stRequest.etV alueType requiert un format spécifique : une chaîne STRING contenant quatre nombres séparés par des points. Les nombres doivent être compris entre 0 et 255. InputInvalidValueOid UDINT 29 Le type de données référencé par iq_stRequestInfo.i_stRequest.etV alueType requiert un format spécifique : une chaîne STRING contenant quatre nombres séparés par des points. Le premier chiffre ne peut être que 0, 1 ou 2. InputInvalidValueVersion UDINT 30 Le type de données d'entrée i_etVersion du bloc fonction autorise les valeurs Version1 ou Version2c. UdpIssue UDINT 40 Problème TCP générique. Consultez le document Guide de la bibliothèque TcpUdpCommunication. UdpNotSupported UDINT 41 Ce contrôleur ne prend pas en charge l'opération UDP demandée. UdpSocketMngListTooSmall UDINT 42 Impossible d'ouvrir le socket UDP car la liste de gestion des sockets internes est saturée. La valeur de GPL.Gc_uiSocketManagementListSiz e doit être augmentée dans la bibliothèque TcpUdp. UdpNumBytesSendOutOfRange UDINT 43 Le nombre d'octets à envoyer dépasse la plage valide. Contactez votre service d'assistance Schneider Electric local. UdpInvalidBufferAddress UDINT 44 L'adresse du tampon du télégramme est non valide. Contactez votre service d'assistance Schneider Electric local. 36 EIO0000002798 09/2020 Énumérations Nom Type de données Valeur Description UdpInvalidIp UDINT 45 L'adresse IP indiquée est non valide. Vérifiez l'entrée iq_stRequestInfo.i_stRequest. sAgentIp indiquée. UdpReceiveBufferSizeOutOfRange UDINT 46 La taille du tampon de réception dépasse la plage valide. Contactez votre service d'assistance Schneider Electric local. UdpNotReady UDINT 47 Impossible d'exécuter la requête UDP pour l'instant. UdpTimeout UDINT 48 Aucune réponse reçue de la part de l'agent dans le temps imparti, avec le nombre de tentatives indiquées. Essayez d'augmenter GPL.Gc_udiTimeout et/ou GPL.Gc_uiMaxNumberRetries. ValidateRequestIdNoMatch UDINT 60 L'ID de requête reçu dans la réponse de l'agent ne correspond pas à l'ID de requête envoyé à l'agent. Consultez le paramètre iq_stRequestInfo.q_stResponse pour connaître l'agent (adresse IP) et l'OID à l'origine du message. ValidateOidNoMatch UDINT 61 L'OID renvoyé par l'agent ne correspond pas à l'OID demandé. Consultez le paramètre iq_stRequestInfo.q_stResponse pour connaître l'agent (adresse IP) et l'OID à l'origine du message. ValidateBufferTooSmall UDINT 62 Le tampon fourni dans iq_stRequestInfo.i_stRequest.pby ValueBuffer est insuffisant pour la valeur reçue de l'agent. Consultez le paramètre iq_stRequestInfo.q_stResponse pour connaître l'agent (adresse IP) et l'OID à l'origine de ce message, ainsi que le nombre d'octets reçus pour la valeur. NOTE : si la valeur reçue est de type ObjectId, la valeur décodée est généralement deux fois supérieure au nombre d'octets reçus. Planifiez la taille du tampon en conséquence. ValidateVersionNotSupported EIO0000002798 09/2020 UDINT 63 Version du protocole non concordante entre la requête et la réponse. 37 Énumérations Nom Type de données Valeur Description ValidateNoValue UDINT 69 Le télégramme reçu de l'agent ne contenait aucune valeur et aucun message d'erreur. Consultez le paramètre iq_stRequestInfo.q_stResponse pour connaître l'agent (adresse IP) et l'OID à l'origine du message. SnmpResponseGenErr UDINT 70 Message d'erreur générique reçu de l'agent SNMP. Tout autre problème que ceux indiqués dans cette liste. Consultez le paramètre iq_stRequestInfo.q_stResponse pour connaître l'agent (adresse IP) et l'OID à l'origine du message. SnmpResponseTooBig UDINT 71 Réponse de l'agent à une requête GET ou SET. Le message de la réponse est trop volumineux pour que l'agent puisse l'envoyer. Consultez le paramètre iq_stRequestInfo.q_stResponse pour connaître l'agent (adresse IP) et l'OID à l'origine du message. SnmpResponseSetNoAccess UDINT 72 Réponse de l'agent à une requête SET. Accès refusé à l'OID demandé. Vérifiez le nom de la communauté dans iq_stRequestInfo.i_stRequest.sCo mmunityName. Consultez le paramètre iq_stRequestInfo.q_stResponse pour connaître l'agent (adresse IP) et l'OID à l'origine du message. SnmpResponseSetWrongType UDINT 73 Réponse de l'agent à une requête SET. Le type de valeur indiqué ne correspond pas au type de valeur spécifié par l'OID. Consultez le paramètre iq_stRequestInfo.q_stResponse pour connaître l'agent (adresse IP) et l'OID à l'origine du message. SnmpResponseSetWrongLength UDINT 74 Réponse de l'agent à une requête SET : la longueur de la valeur est incohérente avec la longueur définie de l'OID. Vérifiez la longueur de l'OID. Si le message d'erreur persiste, contactez votre support Schneider Electric. Consultez le paramètre iq_stRequestInfo.q_stResponse pour connaître l'agent (adresse IP) et l'OID à l'origine du message. 38 EIO0000002798 09/2020 Énumérations Nom Type de données Valeur Description SnmpResponseSetWrongEncoding UDINT 75 Réponse de l'agent à une requête SET. Encodage incorrect utilisé pour la valeur. Contactez votre service d'assistance Schneider Electric local. Consultez le paramètre iq_stRequestInfo.q_stResponse pour connaître l'agent (adresse IP) et l'OID à l'origine du message. SnmpResponseSetWrongValue UDINT 76 Réponse de l'agent à une requête SET. La valeur indiquée pour cet OID est incorrect ou n'est pas prise en charge. Vérifiez les données d'entrée dans iq_stRequestInfo.i_stRequest. Consultez le paramètre iq_stRequestInfo.q_stResponse pour connaître l'agent (adresse IP) et l'OID à l'origine du message. SnmpResponseSetNotWritable UDINT 77 Réponse de l'agent à une requête SET. La valeur indiquée pour cet OID est incorrect ou n'est pas prise en charge. Vérifiez les données d'entrée dans iq_stRequestInfo.i_stRequest. Consultez le paramètre iq_stRequestInfo.q_stResponse pour connaître l'agent (adresse IP) et l'OID à l'origine du message. SnmpResponseSetNoSuchName UDINT 78 Réponse de l'agent à une requête SET. Le nom est incohérent ou n'existe pas. Impossible de le créer pour l'instant. Consultez le paramètre iq_stRequestInfo.q_stResponse pour connaître l'agent (adresse IP) et l'OID à l'origine du message. SnmpResponseSetInconsistentValue UDINT 79 Réponse de l'agent à une requête SET. Impossible de définir la valeur, ou ressource indisponible pour définir cette valeur pour l'instant. Consultez le paramètre iq_stRequestInfo.q_stResponse pour connaître l'agent (adresse IP) et l'OID à l'origine du message. EIO0000002798 09/2020 39 Énumérations Nom Type de données Valeur Description SnmpResponseSetNoCreation UDINT 80 Réponse de l'agent à une requête SET. La valeur n'existe pas et ne peut pas être créée. Consultez le paramètre iq_stRequestInfo.q_stResponse pour connaître l'agent (adresse IP) et l'OID à l'origine du message. SnmpResponseGetNoSuchObject UDINT 81 Réponse de l'agent à une requête GET. Le préfixe d'OID ne correspond pas à un préfixe d'OID de variables accessibles. Vérifiez l'OID dans iq_stRequestInfo.i_stRequest.sOi d. Consultez le paramètre iq_stRequestInfo.q_stResponse pour connaître l'agent (adresse IP) et l'OID à l'origine du message. SnmpResponseGetNoSuchInstance UDINT 82 Réponse de l'agent à une requête GET. Aucune correspondance exacte pour l'OID trouvé. Vérifiez l'OID dans iq_stRequestInfo.i_stRequest.sOi d. Consultez le paramètre iq_stRequestInfo.q_stResponse pour connaître l'agent (adresse IP) et l'OID à l'origine du message. SnmpResponseEndofMibView UDINT 83 Réponse de l'agent à une requête GET. Aucune autre variable dans l'ordre lexicographique. Consultez le paramètre iq_stRequestInfo.q_stResponse pour connaître l'agent (adresse IP) et l'OID à l'origine du message. SnmpResponseV1WrongErrorState UDINT 84 Le protocole version 1 ne peut pas gérer la valeur renvoyée de ErrorState. SnmpVersion1SetCounter64 UDINT 88 Le type Counter64 n'est pas disponible pour SNMPv1. ValueNotSupported UDINT 90 La réponse de l'agent contient une valeur indéterminée. Seuls les types de valeur fournis par ET_SnmpTag (voir page 32) sont pris en charge. Consultez le paramètre iq_stRequestInfo.q_stResponse pour connaître l'agent (adresse IP) et l'OID à l'origine du message. UnknownResult UDINT 99 Retour de FC_EtResultToString en cas de valeur indéterminée de EtResult. 40 EIO0000002798 09/2020 Énumérations En cas d'expirations de délai récurrentes ou d'autres problèmes de communication : Vérifiez les connexions physiques du contrôleur, de l'agent SNMP, etc. Vérifiez la configuration de la connexion du contrôleur et de l'agent SNMP. Vérifiez l'itinéraire de communication entre le contrôleur et l'agent SNMP, par exemple, les paramètres de commutateur, de routeur et de pare-feu (la communication UDP et les ports SNMP doivent être autorisés). Vérifiez l'adresse IP et le port SNMP fournis dans iq_stRequestInfo.i_stRequest. Vérifiez le nom de communauté fourni dans iq_stRequestInfo.i_stRequest. Utilisé par FB_SnmpManager EIO0000002798 09/2020 41 Énumérations ET_SnmpRequest Présentation Type : Énumération Disponible à partir de la version : V1.0.0.0 Description L'énumération ET_SnmpRequest définit les types de requêtes (PDU, Protocol Data Unit) exécutables par le bloc fonction (voir page 59) FB_SnmpManager via i_etRequest. Éléments de l'énumération Nom Type de données Valeur Description NoCommand BYTE 0 Aucun type de requête n'est défini. Etat initial et valeur par défaut. GetRequest BYTE 1 Les requêtes GET demandent à un agent la valeur référencée par l'OID. SetRequest BYTE 4 Les requêtes SET définissent une valeur référencée par l'OID sur un agent. Utilisé par 42 FB_SnmpManager EIO0000002798 09/2020 Énumérations ET_SnmpProtocolVersion Présentation Type : Énumération Disponible à partir de la version : V1.0.0.0 Description L'énumération ET_SnmpProtocolVersion définit les versions du protocole SNMP prises en charge dans cette bibliothèque (versions qu'un agent SNMP peut gérer). Le bloc fonction (voir page 59) FB_SnmpManager peut exécuter l'énumération via l'entrée i_etVersion. Éléments de l'énumération Nom Type de données Valeur Description Version1 BYTE 0 Type de protocole SNMP SNMPv1 utilisé pour la communication entre le gestionnaire SNMP et l'agent SNMP Version2c BYTE 1 Type de protocole SNMP SNMPv2c utilisé pour la communication avec le gestionnaire SNMP et l'agent EIO0000002798 09/2020 43 Énumérations 44 EIO0000002798 09/2020 EcoStruxure Machine Expert Structures EIO0000002798 09/2020 Chapitre 4 Structures Structures Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page ST_RequestInformation 46 ST_Request 47 ST_Response 49 EIO0000002798 09/2020 45 Structures ST_RequestInformation Présentation Type : Structure Disponible à partir de la version : V1.0.0.0 Hérite de : – Description La structure ST_RequestInformation contient deux structures : une pour les données d'entrée nécessaires à l'envoi d'une requête, et une pour les données de sortie permettant d'afficher la réponse à l'utilisateur. Éléments de la structure Nom Type de données Description i_stRequest ST_Request (voir page 47) Structure contenant les données d'entrée utilisateur requises q_stResponse ST_Response (voir page 49) Structure contenant la réponse à la requête de l'utilisateur Utilisé par 46 FB_SnmpManager EIO0000002798 09/2020 Structures ST_Request Présentation Type : Structure Disponible à partir de la version : V1.0.0.0 Hérite de : – Description La structure ST_Request contient les informations de l'utilisateur, permettant d'envoyer une requête SNMP à un agent. Éléments de la structure Nom Type de données Description sOid STRING[GPL.Gc_dwMaxSi zeOid] OID demandé Format : suite de nombres séparés par des points, par exemple, 1.3.6.1.2.1.1.5.0. sAgentIp STRING[15] Adresse IP de l'agent SNMP pbyValueBuffer POINTER TO BYTE Pointeur désignant le premier octet du tampon. Pour les requêtes SET, il s'agit du tampon contenant les données d'utilisateur à définir sur l'agent. Pour les requêtes GET, il s'agit du tampon dans lequel le bloc fonction stocke la réponse de l'agent. dwNumBytesValue DWORD Taille du tampon ou valeur dans le tampon Le tampon est référencé par le pointeur pbyValueBuffer. Pour les requêtes GET, ceci définit la taille du tampon qui stocke les valeurs reçues. Pour les requêtes SET, ceci définit la taille de la valeur dans le tampon à envoyer. NOTE : Dans le cas des chaînes, ajoutez un octet supplémentaire pour le caractère de fin de la chaîne. etValueType ET_SnmpTag (voir page 32) Type de la valeur à définir par les requêtes SET (non utilisée pour les requêtes GET). uiAgentSnmpPort UINT Port SNMP de l'agent Valeur par défaut : 161 sCommunityName STRING[255] Nom de communauté de la requête Valeurs par défaut : Requête SET : privée Requête GET : publique EIO0000002798 09/2020 47 Structures Utilisé par 48 FB_SnmpManager EIO0000002798 09/2020 Structures ST_Response Présentation Type : Structure Disponible à partir de la version : V1.0.0.0 Hérite de : – Description La structure ST_Response fournit des informations provenant d'un agent SNMP lors d'une requête. Éléments de la structure Nom Type de données Description sOid STRING[GPL.Gc_dwMaxSizeOid] OID auquel l'agent a répondu. Ces informations supplémentaires vous permettent de faire le lien entre votre requête et la réponse. sAgentIp STRING[15] Adresse IP de l'agent qui envoie la réponse. Ces informations supplémentaires vous permettent de faire le lien entre votre requête et la réponse. pbyValueBuffer POINTER TO BYTE Pointeur du tampon contenant la valeur référencée par l'OID reçu lors d'une requête GET (tampon fourni par iq_stRequestInfo.i_stRequest.pbyValu eBuffer). En cas de requête SET, aucune donnée n'est écrite dans le tampon. dwNumBytesValue DWORD Taille de la valeur référencée par l'OID défini/obtenu par la requête. etProtocolVersion ET_SnmpProtocolVersion Version du protocole SNMP envoyée par l'agent. Utilisé par FB_SnmpManager EIO0000002798 09/2020 49 Structures 50 EIO0000002798 09/2020 EcoStruxure Machine Expert Variables globales EIO0000002798 09/2020 Partie III Variables globales Variables globales Contenu de cette partie Cette partie contient les chapitres suivants : Chapitre Titre du chapitre Page 5 Liste des constantes globales 53 6 Liste des paramètres globaux 55 EIO0000002798 09/2020 51 Variables globales 52 EIO0000002798 09/2020 EcoStruxure Machine Expert Liste des constantes globales EIO0000002798 09/2020 Chapitre 5 Liste des constantes globales Liste des constantes globales Liste des constantes globales (GCL) Présentation Type : Constantes globales Disponible à partir de la version : V1.0.0.0 Description La liste des constantes globales contient les constantes globales de la bibliothèque SnmpManager. Constantes globales Variable Type de données Valeur Description Gc_dwMaxLimitUserData DWORD 1 500 Taille maximale de la combinaison de l'OID et de la valeur en octets, dans le télégramme SNMP. Cette valeur limite le paramètre Gc_MaxSizeUserData. Gc_uiDefaultPortSnmp UINT 161 Numéro du port de l'agent qui envoie/reçoit les requêtes SNMP. La valeur par défaut est le port standard 161. Gc_sLibraryVersion STRING[80] Vx.x.x.01 Version de bibliothèque 1 Cette valeur varie selon la version de la bibliothèque. EIO0000002798 09/2020 53 Liste des constantes globales 54 EIO0000002798 09/2020 EcoStruxure Machine Expert Liste des paramètres globaux EIO0000002798 09/2020 Chapitre 6 Liste des paramètres globaux Liste des paramètres globaux Liste des paramètres globaux (GPL) Présentation Type : Paramètres globaux Disponible à partir de la version : V1.0.0.0 Description Cette liste contient les paramètres globaux de la bibliothèque SnmpManager. Vous pouvez les modifier en fonction de votre projet dans le Gestionnaire de bibliothèques. Paramètres globaux Variable Type de données Valeur plage Description Gc_udiTimeout UDINT >0 Délai maximum à attendre pour une réponse de l'agent (en millisecondes). Valeur par défaut : 10000 Gc_uiMaxNumberRetries UINT 0 à 65355 Nombre maximum de tentatives pour envoyer une requête après un timeout. Valeur par défaut : 2 Gc_dwMaxSizeOid DWORD 1à GPL.Gc_dwMaxSizeUserData Taille maximum de STRING iq_stRequestInfo.i_stRequ est.sOid. Valeur par défaut : 255 Gc_dwMaxSizeUserData DWORD 1à GCL.GC_MaxLimitUserData. Taille maximale de la combinaison de l'OID et de la valeur en octets, dans le télégramme SNMP. Cette valeur est limitée par Gc_dwMaxLimitUserData. Valeur par défaut : 1500 EIO0000002798 09/2020 55 Liste des paramètres globaux 56 EIO0000002798 09/2020 EcoStruxure Machine Expert Unités d'organisation de programme (POU) EIO0000002798 09/2020 Partie IV Unités d'organisation de programme (POU) Unités d'organisation de programme (POU) Contenu de cette partie Cette partie contient les chapitres suivants : Chapitre Titre du chapitre Page 7 Blocs fonction 59 8 Fonctions 63 EIO0000002798 09/2020 57 Unités d'organisation de programme (POU) 58 EIO0000002798 09/2020 EcoStruxure Machine Expert Blocs fonction EIO0000002798 09/2020 Chapitre 7 Blocs fonction Blocs fonction FB_SnmpManager Présentation Type : Bloc fonction Disponible à partir de la version : V1.0.0.0 Tâche Le bloc fonction FB_SnmpManager permet d'envoyer des requêtes SNMP aux appareils pris en charge sur les réseaux IP (Internet Protocol). Description fonctionnelle Le bloc fonction FB_SnmpManager est l'interface utilisateur des communications SNMP. Seule une requête à un agent peut être prise en charge à la fois. EIO0000002798 09/2020 59 Blocs fonction Le bloc fonction doit être activé et prêt à traiter une requête. Au début de l'exécution d'une requête, les entrées i_etRequest et iq_stRequestInfo doivent être définies. Les informations des entrées servent à créer un télégramme SNMP contenant la requête et à l'envoyer à l'agent via UDP. Le bloc fonction attend une réponse de l'agent, la traite et présente les informations reçues à iq_stRequestInfo.stResponse. Tant que le bloc fonction exécute une requête, la sortie q_xBusy est TRUE et q_etResult indique l'état de l'opération. La sortie q_xDone signale une exécution complète et q_xError indique si le bloc fonction détecte une erreur pendant l'exécution avec q_etResult et q_sResultMsg présentant d'autres informations sur la nature ou la cause de l'erreur détectée. Si une erreur est détectée, le bloc fonction doit être réinitialisé en le désactivant et en le réactivant. Interface Entrée Type de données Description i_xEnable BOOL Activation et initialisation du bloc fonction. i_xExecute BOOL La commande spécifiée avec l'entrée i_etRequest est exécutée sur le front montant de cette entrée. i_etRequest ET_SnmpRequest Requête SNMP exécutée si l'entrée i_xExecute est TRUE. Vérifiez que iq_stRequestInfo est disponible avant l'exécution de la requête SNMP. i_etVersion ET_SnmpProtocolVersion Spécifie la version du protocole pour la communication avec l'agent. La valeur par défaut est ET_SnmpProtocolVersion.Version2c. Entrée/sortie Type de données Description iq_stRequestInfo ST_RequestInformation Permet de transmettre la structure contenant les informations permettant d'envoyer une requête à un agent et la structure pour présenter la réponse reçue de l'agent. (voir page 46) Sortie Type de données Description q_xActive BOOL Si le bloc fonction est actif, cette sortie est TRUE. q_xReady BOOL Si l'initialisation aboutit, cette sortie est TRUE tant que le bloc fonction accepte des entrées. q_xBusy BOOL Si cette sortie est TRUE, le bloc fonction exécute la commande spécifiée dans l'entrée i_etRequest. 60 EIO0000002798 09/2020 Blocs fonction Sortie Type de données Description q_xDone BOOL Si cette sortie est TRUE, le bloc fonction a exécuté complètement la commande spécifiée dans l'entrée i_etRequest. Des données supplémentaires sont fournies dans iq_stRequestInfo.q_stResponse. q_xError BOOL Si cette sortie est TRUE, une erreur a été détectée. Pour plus d'informations, reportezvous à q_etResult et q_etResultMsg. q_etResult ET_Result Fournit des informations de diagnostic et d'état. q_sResultMsg STRING[255] Fournit des informations supplémentaires de diagnostic et d'état. EIO0000002798 09/2020 61 Blocs fonction 62 EIO0000002798 09/2020 EcoStruxure Machine Expert Fonctions EIO0000002798 09/2020 Chapitre 8 Fonctions Fonctions FC_EtResultToString Présentation Type : Fonction Disponible à partir de la version : V1.0.0.0 Hérite de : – Met en œuvre : – Tâche Convertir un élément d'énumération de type ET_Result en une variable de type STRING. Description fonctionnelle La fonction FC_EtResultToString permet de convertir un élément d'énumération de type ET_Result en une variable de type STRING. Interface Entrée Type de données Description i_etResult ET_Result Énumération avec le résultat. Sortie Type de données Description q_xError BOOL Si cette sortie est TRUE, une erreur a été détectée. q_etResult ET_Result Énumération avec le résultat. EIO0000002798 09/2020 63 Fonctions Valeur retournée 64 Type de données Description STRING[80] ET_Result converti en texte. EIO0000002798 09/2020 EcoStruxure Machine Expert Glossaire EIO0000002798 09/2020 Glossaire I IP Acronyme de Internet Protocol, protocole Internet. Le protocole IP fait partie de la famille de protocoles TCP/IP, qui assure le suivi des adresses Internet des équipements, achemine les messages sortants et reconnaît les messages entrants. M MIB Acronyme de Management Information Base, base d'informations de gestion. Base de données orientée objets contrôlée par un système de gestion de réseaux tel que SNMP. SNMP surveille des équipements qui sont définis par leurs MIBs. Schneider Electric a obtenu une base MIB privée, appelée groupeschneider (3833). S SNMP Acronyme de simple network management protocol, protocole de gestion de réseau simple. Protocole qui peut contrôler un réseau à distance en interrogeant les équipements pour obtenir leur état et en affichant les informations liées à la transmission de données. Il peut aussi être utilisé pour gérer des logiciels et des bases de données à distance, et il permet d'effectuer des tâches de gestion actives, comme la modification et l'application d'une nouvelle configuration. U UDP Acronyme de User Datagram Protocol, protocole de datagramme utilisateur. Protocole de mode sans fil (défini par la norme IETF RFC 768) dans lequel les messages sont livrés dans un datagramme vers un ordinateur cible sur un réseau IP. Le protocole UDP est généralement fourni en même temps que le protocole Internet. Les messages UDP/IP n'attendent pas de réponse et, de ce fait, ils sont particulièrement adaptés aux applications dans lesquelles aucune retransmission des paquets envoyés n'est nécessaire (comme dans la vidéo en continu ou les réseaux exigeant des performances en temps réel). EIO0000002798 09/2020 65 Glossaire 66 EIO0000002798 09/2020 EcoStruxure Machine Expert Index EIO0000002798 09/2020 Index B bibliothèques SnmpManager, 19 EIO0000002798 09/2020 E ET_Result, 34 Disabled, 34 Evaluating, 34 GplMaxOidTooBig, 35 GplMaxOidTooSmall, 35 GplMaxUserDataTooBig, 34 GplMaxUserDataTooSmall, 35 GplTimeoutZero, 35 InputInvalidBufferSize, 35 InputInvalidIp, 35 InputInvalidOid, 35 InputInvalidPointer, 35 InputInvalidRequest, 35 InputInvalidValueIp, 36 InputInvalidValueOid, 36 InputInvalidVersion, 36 InputMissingOid, 35 InputSize32BitValue, 36 InputSize64BitValue, 36 Listening, 34 NotReady, 34 Ok, 34 Sending, 34 SnmpResponseEndofMibView, 40 SnmpResponseGenErr, 38 SnmpResponseGetNoSuchInstance, 40 SnmpResponseGetNoSuchObject, 40 SnmpResponseSetInconsistentValue, 39 SnmpResponseSetNoAccess, 38 SnmpResponseSetNoCreation, 40 SnmpResponseSetNoSuchName, 39 SnmpResponseSetNotWritable, 39 SnmpResponseSetWrongEncoding, 39 SnmpResponseSetWrongLength, 38 SnmpResponseSetWrongType, 38 SnmpResponseSetWrongValue, 39 SnmpResponseTooBig, 38 SnmpResponseV1WrongErrorState, 40 SnmpVersion1SetCounter64, 40 UdpInvalidBufferAddress, 36 67 Index UdpInvalidIp, 37 UdpIssue, 36 UdpNotReady, 37 UdpNotSupported, 36 UdpNumBytesSendOutOfRange, 36 UdpReceiveBufferSizeOutOfRange, 37 UdpSocketMngListTooSmall, 36 UdpTimeout, 37 UnknownResult, 40 UnknownState, 34 ValidateBufferTooSmall, 37 ValidateNoValue, 38 ValidateOidNoMatch, 37 ValidateRequestIdNoMatch, 37 ValidateVersionNotSupported, 37 ValueNotSupported, 40 ET_SnmpRequest, 42 GetRequest, 42 NoCommand, 42 SetRequest, 42 ET_SnmpTag, 32 Counter32, 32 Counter64, 32 Gauge32, 32 Integer, 32 IpAddress, 32 ObjectID, 32 OctetString, 32 TimeTicks, 32 S SnmpManager, 19 GCL (liste des constantes globales), 53 GPL (liste des paramètres globaux), 55 ST_Request, 47 ST_RequestInformation, 46 ST_Response, 49 F FB_SnmpManager, 59 FC_EtResultToString, 63 G GCL (liste des constantes globales) SnmpManager, 53 GPL (liste des paramètres globaux) SnmpManager, 55 L limites du transfert SNMP, 21 68 EIO0000002798 09/2020 EcoStruxure Machine Expert EIO0000002768 12/2019 EcoStruxure Machine Expert SqlRemoteAccess Guide de la bibliothèque EIO0000002768.01 12/2019 www.schneider-electric.com Le présent document comprend des descriptions générales et/ou des caractéristiques techniques des produits mentionnés. Il ne peut pas être utilisé pour définir ou déterminer l'adéquation ou la fiabilité de ces produits pour des applications utilisateur spécifiques. Il incombe à chaque utilisateur ou intégrateur de réaliser l'analyse de risques complète et appropriée, l'évaluation et le test des produits pour ce qui est de l'application à utiliser et de l'exécution de cette application. Ni la société Schneider Electric ni aucune de ses sociétés affiliées ou filiales ne peuvent être tenues pour responsables de la mauvaise utilisation des informations contenues dans le présent document. Si vous avez des suggestions, des améliorations ou des corrections à apporter à cette publication, veuillez nous en informer. Vous acceptez de ne pas reproduire, excepté pour votre propre usage à titre non commercial, tout ou partie de ce document et sur quelque support que ce soit sans l'accord écrit de Schneider Electric. Vous acceptez également de ne pas créer de liens hypertextes vers ce document ou son contenu. Schneider Electric ne concède aucun droit ni licence pour l'utilisation personnelle et non commerciale du document ou de son contenu, sinon une licence non exclusive pour une consultation « en l'état », à vos propres risques. Tous les autres droits sont réservés. Toutes les réglementations locales, régionales et nationales pertinentes doivent être respectées lors de l'installation et de l'utilisation de ce produit. Pour des raisons de sécurité et afin de garantir la conformité aux données système documentées, seul le fabricant est habilité à effectuer des réparations sur les composants. Lorsque des équipements sont utilisés pour des applications présentant des exigences techniques de sécurité, suivez les instructions appropriées. La non-utilisation du logiciel Schneider Electric ou d'un logiciel approuvé avec nos produits matériels peut entraîner des blessures, des dommages ou un fonctionnement incorrect. Le non-respect de cette consigne peut entraîner des lésions corporelles ou des dommages matériels. © 2019 Schneider Electric. Tous droits réservés. 2 EIO0000002768 12/2019 Table des matières Consignes de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . A propos de ce manuel. . . . . . . . . . . . . . . . . . . . . . . . . . Partie I Informations générales . . . . . . . . . . . . . . . . . . . . . . . Chapitre 1 Présentation de la bibliothèque . . . . . . . . . . . . . . . . . . . Informations générales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 2 Entrées et sorties communes . . . . . . . . . . . . . . . . . . . . . Fonctionnement des blocs fonction avec l'entrée i_xExecute . . . . . Fonctionnement des blocs fonction avec l'entrée i_xEnable, i_xExecute et i_xErrorQuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 3 Transfert de données via SQL Gateway entre le contrôleur et une base de données quelconque. . . . . . . Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Partie II Énumérations et Structures . . . . . . . . . . . . . . . . . . . Chapitre 4 Énumérations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ET_Result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ET_SqlRequest. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 5 Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ST_ConnectionSettings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ST_ExtendedConnectionSettings . . . . . . . . . . . . . . . . . . . . . . . Chapitre 6 ALIAS (DUT). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ALIAS - DUT (Device Unit Type ou type d'unité d'équipement) . . . . . Partie III Variables globales . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 7 Liste des constantes globales. . . . . . . . . . . . . . . . . . . . . Liste des constantes globales (GCL). . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 8 Liste des paramètres globaux. . . . . . . . . . . . . . . . . . . . . Liste des paramètres globaux (GPL) . . . . . . . . . . . . . . . . . . . . . . . . . . Partie IV Unités d'organisation de programme (POU) . . . . . . . Chapitre 9 Blocs fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FB_SqlDbRead. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FB_SqlDbWrite. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FB_SqlDbRequest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EIO0000002768 12/2019 5 11 17 19 19 25 26 26 29 29 35 37 38 42 43 44 45 47 47 49 51 51 53 53 55 57 58 61 63 3 Chapitre 10 Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FC_EtResultToString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Glossaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 67 67 69 71 EIO0000002768 12/2019 Consignes de sécurité Informations importantes AVIS Lisez attentivement ces instructions et examinez le matériel pour vous familiariser avec l'appareil avant de tenter de l'installer, de le faire fonctionner, de le réparer ou d'assurer sa maintenance. Les messages spéciaux suivants que vous trouverez dans cette documentation ou sur l'appareil ont pour but de vous mettre en garde contre des risques potentiels ou d'attirer votre attention sur des informations qui clarifient ou simplifient une procédure. EIO0000002768 12/2019 5 REMARQUE IMPORTANTE L'installation, l'utilisation, la réparation et la maintenance des équipements électriques doivent être assurées par du personnel qualifié uniquement. Schneider Electric décline toute responsabilité quant aux conséquences de l'utilisation de ce matériel. Une personne qualifiée est une personne disposant de compétences et de connaissances dans le domaine de la construction, du fonctionnement et de l'installation des équipements électriques, et ayant suivi une formation en sécurité leur permettant d'identifier et d'éviter les risques encourus. QUALIFICATION DU PERSONNEL Une personne qualifiée est une personne qui a les qualifications suivantes : Compétences et connaissances liées à la construction et à l'exploitation d'équipements électriques et à l'installation. Connaissances et expérience en programmation de contrôle industriel. A reçu une formation en sécurité permettant de reconnaître et d'éviter les dangers potentiels. La personne qualifiée doit être capable de détecter d'éventuels dangers qui pourraient découler du paramétrage, de modifications des valeurs de paramétrage et plus généralement des équipements mécaniques, électriques ou électroniques. La personne qualifiée doit connaître les normes, dispositions et régulations liées à la prévention des accidents de travail, et doit les observer lors de la conception et de l'implémentation du système. INSTRUCTIONS D'UTILISATION Ce produit est une bibliothèque à utiliser avec un système de commande et des servoamplificateurs. La bibliothèque n'est conçue qu'en vue d'une utilisation telle que décrite dans la présente documentation, appliquée au secteur industriel. Observez en permanence les instructions applicables liées à la sécurité, les conditions spécifiques et les données techniques. Réalisez une analyse des risques en rapport avec l'utilisation spécifique avant d'utiliser ce produit. Prenez les mesures de sécurité qui découlent des résultats. Étant donné que ce produit est utilisé au sein d'un système qui l'englobe, vous devez assurer la sécurité du personnel par la conception même du système global (la conception de la machine, par exemple). Aucune autre utilisation n'est prévue. Toute autre utilisation pourrait être dangereuse. AVANT DE COMMENCER N'utilisez pas ce produit sur les machines non pourvues de protection efficace du point de fonctionnement. L'absence de ce type de protection sur une machine présente un risque de blessures graves pour l'opérateur. 6 EIO0000002768 12/2019 AVERTISSEMENT EQUIPEMENT NON PROTEGE N'utilisez pas ce logiciel ni les automatismes associés sur des appareils non équipés de protection du point de fonctionnement. N'accédez pas aux machines pendant leur fonctionnement. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Cet automatisme et le logiciel associé permettent de commander des processus industriels divers. Le type ou le modèle d'automatisme approprié pour chaque application dépendra de facteurs tels que la fonction de commande requise, le degré de protection exigé, les méthodes de production, des conditions inhabituelles, la législation, etc. Dans certaines applications, plusieurs processeurs seront nécessaires, notamment lorsque la redondance de sauvegarde est requise. Vous seul, en tant que constructeur de machine ou intégrateur de système, pouvez connaître toutes les conditions et facteurs présents lors de la configuration, de l'exploitation et de la maintenance de la machine, et êtes donc en mesure de déterminer les équipements automatisés, ainsi que les sécurités et verrouillages associés qui peuvent être utilisés correctement. Lors du choix de l'automatisme et du système de commande, ainsi que du logiciel associé pour une application particulière, vous devez respecter les normes et réglementations locales et nationales en vigueur. Le document National Safety Council's Accident Prevention Manual (reconnu aux Etats-Unis) fournit également de nombreuses informations utiles. Dans certaines applications, telles que les machines d'emballage, une protection supplémentaire, comme celle du point de fonctionnement, doit être fournie pour l'opérateur. Elle est nécessaire si les mains ou d'autres parties du corps de l'opérateur peuvent entrer dans la zone de point de pincement ou d'autres zones dangereuses, risquant ainsi de provoquer des blessures graves. Les produits logiciels seuls, ne peuvent en aucun cas protéger les opérateurs contre d'éventuelles blessures. C'est pourquoi le logiciel ne doit pas remplacer la protection de point de fonctionnement ou s'y substituer. Avant de mettre l'équipement en service, assurez-vous que les dispositifs de sécurité et de verrouillage mécaniques et/ou électriques appropriés liés à la protection du point de fonctionnement ont été installés et sont opérationnels. Tous les dispositifs de sécurité et de verrouillage liés à la protection du point de fonctionnement doivent être coordonnés avec la programmation des équipements et logiciels d'automatisation associés. NOTE : La coordination des dispositifs de sécurité et de verrouillage mécaniques/électriques du point de fonctionnement n'entre pas dans le cadre de cette bibliothèque de blocs fonction, du Guide utilisateur système ou de toute autre mise en œuvre référencée dans la documentation. EIO0000002768 12/2019 7 DEMARRAGE ET TEST Avant toute utilisation de l'équipement de commande électrique et des automatismes en vue d'un fonctionnement normal après installation, un technicien qualifié doit procéder à un test de démarrage afin de vérifier que l'équipement fonctionne correctement. Il est essentiel de planifier une telle vérification et d'accorder suffisamment de temps pour la réalisation de ce test dans sa totalité. AVERTISSEMENT RISQUES INHERENTS AU FONCTIONNEMENT DE L'EQUIPEMENT Assurez-vous que toutes les procédures d'installation et de configuration ont été respectées. Avant de réaliser les tests de fonctionnement, retirez tous les blocs ou autres cales temporaires utilisés pour le transport de tous les dispositifs composant le système. Enlevez les outils, les instruments de mesure et les débris éventuels présents sur l'équipement. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Effectuez tous les tests de démarrage recommandés dans la documentation de l'équipement. Conservez toute la documentation de l'équipement pour référence ultérieure. Les tests logiciels doivent être réalisés à la fois en environnement simulé et réel. Vérifiez que le système entier est exempt de tout court-circuit et mise à la terre temporaire non installée conformément aux réglementations locales (conformément au National Electrical Code des Etats-Unis, par exemple). Si des tests diélectriques sont nécessaires, suivez les recommandations figurant dans la documentation de l'équipement afin d'éviter de l'endommager accidentellement. Avant de mettre l'équipement sous tension : Enlevez les outils, les instruments de mesure et les débris éventuels présents sur l'équipement. Fermez le capot du boîtier de l'équipement. Retirez toutes les mises à la terre temporaires des câbles d'alimentation entrants. Effectuez tous les tests de démarrage recommandés par le fabricant. 8 EIO0000002768 12/2019 FONCTIONNEMENT ET REGLAGES Les précautions suivantes sont extraites du document NEMA Standards Publication ICS 7.1-1995 (la version anglaise prévaut) : Malgré le soin apporté à la conception et à la fabrication de l'équipement ou au choix et à l'évaluation des composants, des risques subsistent en cas d'utilisation inappropriée de l'équipement. Il arrive parfois que l'équipement soit déréglé accidentellement, entraînant ainsi un fonctionnement non satisfaisant ou non sécurisé. Respectez toujours les instructions du fabricant pour effectuer les réglages fonctionnels. Les personnes ayant accès à ces réglages doivent connaître les instructions du fabricant de l'équipement et les machines utilisées avec l'équipement électrique. Seuls ces réglages fonctionnels, requis par l'opérateur, doivent lui être accessibles. L'accès aux autres commandes doit être limité afin d'empêcher les changements non autorisés des caractéristiques de fonctionnement. EIO0000002768 12/2019 9 10 EIO0000002768 12/2019 A propos de ce manuel Présentation Objectif du document Ce document décrit la bibliothèque SqlRemoteAccess. La bibliothèque fournit des blocs fonction clients SQL (Structured Query Language) qui permettent à votre contrôleur de se connecter à une base de données SQL pour exécuter des requêtes SQL de lecture et d'écriture de données. Pour utiliser les fonctions SQL, vous devez installer le logiciel SQL Gateway fourni avec EcoStruxure Machine Expert comme composant facultatif qui requiert une licence spécifique. Champ d'application Ce document a été actualisé pour le lancement d’EcoStruxureTM Machine Expert V1.2. Les caractéristiques techniques des équipements décrits dans ce document sont également fournies en ligne. Pour accéder aux informations en ligne, ouvrez la page d'accueil de Schneider Electric www.schneider-electric.com. Les caractéristiques présentées dans ce document devraient être identiques à celles fournies en ligne. Toutefois, en application de notre politique d'amélioration continue, nous pouvons être amenés à réviser le contenu du document afin de le rendre plus clair et plus précis. Si vous constatez une différence entre le document et les informations fournies en ligne, utilisez ces dernières en priorité. EIO0000002768 12/2019 11 Information spécifique au produit AVERTISSEMENT PERTE DE CONTROLE Le concepteur d'un système de commande doit envisager les modes de défaillance possibles des chemins de commande et, pour certaines fonctions de commande critiques, prévoir un moyen d'atteindre un état sécurisé en cas de défaillance d'un chemin, et après cette défaillance. Par exemple, l'arrêt d'urgence, l'arrêt en cas de surcourse, la coupure de courant et le redémarrage sont des fonctions de contrôle cruciales. Des canaux de commande séparés ou redondants doivent être prévus pour les fonctions de commande critique. Les liaisons de communication peuvent faire partie des canaux de commande du système. Soyez particulièrement attentif aux implications des retards de transmission imprévus ou des pannes de liaison. Respectez toutes les réglementations de prévention des accidents ainsi que les consignes de sécurité locales.1 Chaque implémentation de cet équipement doit être testée individuellement et entièrement pour s'assurer du fonctionnement correct avant la mise en service. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. 1 Pour plus d'informations, consultez les documents suivants ou leurs équivalents pour votre site d'installation : NEMA ICS 1.1 (dernière édition), « Safety Guidelines for the Application, Installation, and Maintenance of Solid State Control » (Directives de sécurité pour l'application, l'installation et la maintenance de commande statique) et NEMA ICS 7.1 (dernière édition), « Safety Standards for Construction and Guide for Selection, Installation, and Operation of Adjustable-Speed Drive Systems » (Normes de sécurité relatives à la construction et manuel de sélection, d'installation et d'exploitation de variateurs de vitesse). Avant de tenter de fournir une solution (machine ou processus) pour une application spécifique en utilisant les POU trouvés dans la bibliothèque, vous devez tenir compte de la réalisation et de l'exécution des bonnes pratiques. La liste non exhaustive de ces pratiques liées à cette bibliothèque inclut l'analyse des risques, la sécurité fonctionnelle, la compatibilité des composants, les tests et la validation du système. 12 EIO0000002768 12/2019 AVERTISSEMENT UTILISATION INCORRECTE DES UNITES ORGANISATIONNELLES DU PROGRAMME Effectuez une analyse de la sécurité de l'application et des équipements installés. Vérifiez que les POU sont compatibles avec les équipements du système et n'ont pas d'effets inattendus sur le bon fonctionnement du système. Utilisez les paramètres appropriés, notamment les valeurs limites, et observez l'usure de la machine et son fonctionnement à l'arrêt. Vérifiez que les capteurs et déclencheurs sont compatibles avec les POU sélectionnés. Testez de manière approfondie toutes les fonctions durant la vérification et la mise en service dans tous les modes de fonctionnement. Indiquez des méthodes indépendantes pour les fonctions de commande critiques (arrêt d'urgence, conditions de dépassement des valeurs limites, etc.) en fonction d'une analyse de la sécurité, des règles correspondantes et des réglementations. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. AVERTISSEMENT FONCTIONNEMENT IMPRÉVU DE L'ÉQUIPEMENT N'utilisez que le logiciel approuvé par Schneider Electric pour faire fonctionner cet équipement. Mettez à jour votre programme d'application chaque fois que vous modifiez la configuration matérielle physique. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. AVERTISSEMENT FONCTIONNEMENT IMPREVU DE L'EQUIPEMENT Actualisez votre programme d'application, si nécessaire, en portant une attention particulière aux réglages de l'adresse d'E/S, dès que vous modifiez la configuration matérielle. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. EIO0000002768 12/2019 13 Les transferts incomplets, qu'il s'agisse de fichiers de données, d'application et/ou de micrologiciel, peuvent avoir des conséquences graves sur votre machine ou votre contrôleur. En cas coupure de courant (volontaire ou non) ou d'interruption de la communication pendant un transfert de fichier, votre machine peut devenir inopérante ou votre application peut tenter d'utiliser un fichier de données endommagé. En cas d'interruption, relancez le transfert. Veillez à inclure l'impact des fichiers de données endommagés dans votre analyse des risques. AVERTISSEMENT FONCTIONNEMENT IMPRÉVU DE L'ÉQUIPEMENT, PERTE DE DONNÉES OU FICHIER ENDOMMAGÉ N'interrompez pas un transfert de données en cours. Si le transfert est interrompu pour une raison quelconque, relancez-le. Ne mettez pas votre machine en service tant que le transfert de fichier n'est pas terminé, sauf si vous avez pris en compte les fichiers endommagés dans votre analyse des risques et si vous avez mis en place des mesures appropriées pour prévenir les conséquences potentiellement graves dues à des échecs de transfert. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Documents associés Titre du document Référence EcoStruxure Machine Expert - Fonctions et bibliothèques - Guide de l'utilisateur EIO0000002829 (ENG) ; EIO0000002830 (FRE) ; EIO0000002831 (GER) ; EIO0000002832 (ITA) ; EIO0000002833 (SPA) ; EIO0000002834 (CHS) ; EcoStruxure Machine Expert - Guide de programmation EIO0000002854 (ENG) ; EIO0000002855 (FRE) ; EIO0000002856 (GER) ; EIO0000002857 (ITA) ; EIO0000002858 (SPA) ; EIO0000002859 (CHS) ; SQL Gateway - Guide de l'utilisateur EIO0000002417 (ENG) ; EIO0000002418 (FRE) ; EIO0000002419 (GER) ; EIO0000002421 (SPA) ; EIO0000002420 (ITA) ; EIO0000002422 (CHS) Vous pouvez télécharger ces publications ainsi que d'autres informations techniques sur notre site Web : www.schneider-electric.com/en/download. 14 EIO0000002768 12/2019 Terminologie utilisée dans les normes Les termes techniques, la terminologie, les symboles et les descriptions correspondantes employés dans ce manuel ou figurant dans ou sur les produits proviennent généralement des normes internationales. Dans les domaines des systèmes de sécurité fonctionnelle, des variateurs et de l'automatisme en général, les termes employés sont sécurité, fonction de sécurité, état sécurisé, défaut, réinitialisation du défaut, dysfonctionnement, panne, erreur, message d'erreur, dangereux, etc. Entre autres, les normes concernées sont les suivantes : Norme Description IEC 61131-2:2007 Automates programmables - Partie 2 : exigences et essais des équipements ISO 13849-1:2015 Sécurité des machines : parties des systèmes de commande relatives à la sécurité. Principes généraux de conception EN 61496-1:2013 Sécurité des machines : équipements de protection électro-sensibles. Partie 1 : Prescriptions générales et essais ISO 12100:2010 Sécurité des machines - Principes généraux de conception - Appréciation du risque et réduction du risque EN 60204-1:2006 Sécurité des machines - Équipement électrique des machines - Partie 1 : règles générales ISO 14119:2013 Sécurité des machines - Dispositifs de verrouillage associés à des protecteurs - Principes de conception et de choix ISO 13850:2015 Sécurité des machines - Fonction d'arrêt d'urgence - Principes de conception IEC 62061:2015 Sécurité des machines - Sécurité fonctionnelle des systèmes de commande électrique, électronique et électronique programmable relatifs à la sécurité IEC 61508-1:2010 Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité : prescriptions générales. IEC 61508-2:2010 Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité : exigences pour les systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité. IEC 61508-3:2010 Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité : exigences concernant les logiciels. IEC 61784-3:2016 Réseaux de communication industriels - Profils - Partie 3 : Bus de terrain de sécurité fonctionnelle - Règles générales et définitions de profils. 2006/42/EC Directive Machines 2014/30/EU Directive sur la compatibilité électromagnétique 2014/35/EU Directive sur les basses tensions EIO0000002768 12/2019 15 De plus, des termes peuvent être utilisés dans le présent document car ils proviennent d'autres normes telles que : Norme Description Série IEC 60034 Machines électriques rotatives Série IEC 61800 Entraînements électriques de puissance à vitesse variable Série IEC 61158 Communications numériques pour les systèmes de mesure et de commande – Bus de terrain utilisés dans les systèmes de commande industriels Enfin, le terme zone de fonctionnement utilisé dans le contexte de la description de dangers spécifiques a la même signification que les termes zone dangereuse ou zone de danger employés dans la directive Machines (2006/42/EC) et la norme ISO 12100:2010. NOTE : Les normes susmentionnées peuvent s'appliquer ou pas aux produits cités dans la présente documentation. Pour plus d'informations sur chacune des normes applicables aux produits décrits dans le présent document, consultez les tableaux de caractéristiques de ces références de produit. 16 EIO0000002768 12/2019 EcoStruxure Machine Expert Informations générales EIO0000002768 12/2019 Partie I Informations générales Informations générales Contenu de cette partie Cette partie contient les chapitres suivants : Chapitre Titre du chapitre Page 1 Présentation de la bibliothèque 19 2 Entrées et sorties communes 25 3 Transfert de données via SQL Gateway entre le contrôleur et une base de données quelconque 29 EIO0000002768 12/2019 17 Informations générales 18 EIO0000002768 12/2019 EcoStruxure Machine Expert Description EIO0000002768 12/2019 Chapitre 1 Présentation de la bibliothèque Présentation de la bibliothèque Informations générales Présentation de la bibliothèque La bibliothèque SqlRemoteAccess fournit des blocs fonction clients SQL (Structured Query Language) qui permettent à votre contrôleur de se connecter à une base de données SQL pour exécuter des requêtes SQL de lecture et d'écriture de données. La communication entre le contrôleur (qui se comporte comme un client SQL) et le serveur de base de données SQL transite par Schneider Electric SQL Gateway. Par conséquent, vous devez installer le logiciel SQL Gateway fourni avec EcoStruxure Machine Expert pour utiliser la fonction SQL. Ce composant facultatif requiert une licence spécifique. Pour plus d'informations, consultez le document SQL Gateway - Guide de l'utilisateur (voir page 14). 1 2 3 4 5 1 à n contrôleurs (clients SQL) Lecture de données Ecriture de données SQL Gateway 1 à n serveurs de base de données Une fois l'installation terminée, le contrôleur peut envoyer une requête SQL personnalisée au serveur de base de données. Par exemple : Interrogation des données des tables. Insertion, modification et suppression de données dans des tables. Exécution de procédures de base de données. EIO0000002768 12/2019 19 Description Caractéristiques de la bibliothèque Le tableau suivant indique les caractéristiques de la bibliothèque : Caractéristique Valeur Titre de la bibliothèque SqlRemoteAccess Société Schneider Electric Catégorie Communication Composant Bibliothèque SQL Espace de noms par défaut SE_SQL Attribut du modèle de langage Uniquement accès qualifié (voir EcoStruxure Machine Expert, Fonctions Bibliothèque post-compatible Oui (FCL (voir EcoStruxure Machine Expert, Fonctions et bibliothèques Guide de l'utilisateur)) et bibliothèques - Guide de l'utilisateur) NOTE : Cette bibliothèque est paramétrée en Uniquement accès qualifié . Cela signifie que l'on ne peut accéder aux POU, aux structures de données, aux énumérations, et aux constantes qu'en utilisant l'espace de nom de la bibliothèque. L'espace de noms par défaut de la bibliothèque est SE_SQL. Exemple de projet Le projet d'exemple SQLRemoteAccessExample est fourni avec la bibliothèque. L’exemple de projet montre comment implémenter les composants à partir de la bibliothèque SqlRemoteAccess. L'exemple de projet est installé sur votre PC avec le logiciel de programmation. Pour ouvrir l’exemple de projet, procédez comme suit : Etape 20 Action Commentaire 1 Dans EcoStruxure Machine Expert Logic Builder, exécutez la commande Nouveau projet. – 2 Dans la boîte de dialogue Nouveau projet, sélectionnez A partir de l’exemple dans la liste Type de projet. – 3 Sur la droite de la boîte de dialogue Nouveau Résultat : les exemples disponibles sont projet, sélectionnez le contrôleur(1) dans la liste répertoriés dans la zone de texte Exemples correspondants. Contrôleur. 4 Sélectionnez l’exemple dans la liste Exemples correspondants. – 5 Entrez le nom du nouveau projet et sélectionnez l’emplacement du fichier. – 6 Cliquez sur le bouton OK. Résultat : un nouveau projet est créé en fonction de l’exemple sélectionné. EIO0000002768 12/2019 Description Eléments généraux à prendre en compte Envisagez les limites suivantes pour les communications SQL : Seul le protocole IPv4 (Internet Protocol version 4) est pris en charge. Seuls les types de données conformes à la norme IEC 61131-3 sont pris en charge. La lecture et l'écriture d'objets BLOB (Binary Large Object) depuis ou dans une base de données ne sont pas prises en charge. La bibliothèque décrite dans ce document utilise la bibliothèque TcpUdpCommunication en interne. Les bibliothèques TcpUdpCommunication (Schneider Electric) et CAA Net Base Services (CAA Technical Workgroup) utilisent les mêmes ressources système sur le contrôleur. Leur utilisation simultanée dans la même application peut perturber le fonctionnement du contrôleur. AVERTISSEMENT FONCTIONNEMENT IMPRÉVU DE L’EQUIPEMENT N'utilisez pas la bibliothèque TcpUdpCommunication (Schneider Electric) avec la bibliothèque CAA Net Base Services (CAA Technical Workgroup) simultanément dans la même application. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Considerations relatives à la cybersécurité Le bloc fonction FB_SqlDbRequest issu de la bibliothèque SqlRemoteAccess prend en charge la communication sécurisée avec SQL Gateway via TLS (Transport Layer Security). La prise en charge ou non d’une connexion utilisant le protocole TLS dépend du contrôleur sur lequel FB_SqlDbRequest est utilisé. Reportez-vous au manuel de votre contrôleur pour vérifier si la communication TCP via TLS est prise en charge. La communication avec des connexions non sécurisées ne peut s'effectuer qu'au sein de votre réseau industriel, isolé des autres réseaux de l'entreprise et protégé d'Internet. NOTE : Schneider Electric respecte les bonnes pratiques de l'industrie, en vigueur dans le développement et la mise en œuvre des systèmes de contrôle. Cette approche, dite de « défense en profondeur », permet de sécuriser les systèmes de contrôle industriels. Elle place les contrôleurs derrière des pare-feu pour restreindre leur accès aux seuls personnels et protocoles autorisés. EIO0000002768 12/2019 21 Description AVERTISSEMENT ACCÈS NON AUTHENTIFIÉ ET UTILISATION NON AUTORISÉE DE LA MACHINE Estimer si votre environnement ou vos machines sont connecté(e)s à votre infrastructure vitale et, le cas échéant, prendre les mesures nécessaires de prévention, basées sur le principe de défense en profondeur, avant de connecter le système d'automatisme à un réseau quelconque. Limiter au strict nécessaire le nombre d'équipements connectés à un réseau. Isoler votre réseau industriel des autres réseaux au sein de votre société. Protéger chaque réseau contre les accès non autorisés à l'aide d'un pare-feu, d'un VPN ou d'autres mesures de sécurité éprouvées. Surveiller les activités au sein de votre système. Empêcher tout accès direct ou liaison directe aux équipements sensibles par des utilisateurs non autorisés ou des actions non authentifiées. Préparer un plan de récupération intégrant la sauvegarde des informations de votre système et de votre processus. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Présentation des POU Bloc fonction / fonction Utilisation FB_SqlDbRead (voir page 58) Exécute des requêtes SQL qui lisent des données de la base de données SQL. FB_SqlDbWrite (voir page 61) Exécute des requêtes SQL qui mettent à jour ou modifient la base de données SQL. FB_SqlDbRequest (voir page 63) Exécute des requêtes SQL qui soit lisent des données de la base SQL, soit mettent à jour (modifient) la base de données SQL. FC_EtResultToString (voir page 67) Convertit un élément d'énumération de type ET_Result en une variable de type chaîne. Présentation des structures dans l'interface propre au module Structure Utilisation ST_ConnectionSettings (voir page 44) Contient les informations de connexion à une SQL Gateway et les informations concernant la base de données SQL. ST_ExtendedConnectionSettings Contient les informations de connexion à une SQL Gateway via une communication TCP (TLS V1.2) sécurisée et les informations concernant la base de données SQL. (voir page 45) 22 EIO0000002768 12/2019 Description Présentation des énumérations Énumération Utilisation ET_Result (voir page 38) Contient les valeurs possibles indiquant les résultats des opérations exécutées par le bloc fonction. ET_SqlRequest (voir page 42) Enumération décrivant quelle requête (lecture ou écriture) est exécutée à l'aide de FB_SqlDbRequest (voir page 63). EIO0000002768 12/2019 23 Description 24 EIO0000002768 12/2019 EcoStruxure Machine Expert Entrées et sorties communes EIO0000002768 12/2019 Chapitre 2 Entrées et sorties communes Entrées et sorties communes Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page Fonctionnement des blocs fonction avec l'entrée i_xExecute 26 Fonctionnement des blocs fonction avec l'entrée i_xEnable, i_xExecute et i_xErrorQuit 26 EIO0000002768 12/2019 25 Entrées et sorties communes Fonctionnement des blocs fonction avec l'entrée i_xExecute Informations générales Un front montant sur l'entrée i_xExecute lance l'exécution du bloc fonction. Le bloc fonction poursuit son exécution et la sortie q_xBusy prend la valeur TRUE. Des fronts montants supplémentaires sur l'entrée i_xExecute sont ignorés pendant l'exécution du bloc fonctionnel. A la fin de l'exécution, les sorties q_xDone ou q_xError restent sur TRUE jusqu'à ce que l'entrée i_xExecute prenne la valeur FALSE. Si l'entrée est réinitialisée avant la fin de l'exécution, les sorties q_xDone ou q_xError sont définies sur TRUE pendant un cycle. Exemple Fonctionnement des blocs fonction avec l'entrée i_xEnable, i_xExecute et i_xErrorQuit Informations générales En configurant l’entrée i_xEnable sur TRUE, le bloc fonction lance le processus d’activation. Le bloc fonction poursuit l’initialisation et la sortie q_xActive est définie sur TRUE. Une fois l’initialisation terminée et le bloc fonction prêt, la sortie q_xReady est définie sur TRUE. Un front montant sur l'entrée i_xExecute lance l'exécution du bloc fonction. Le bloc fonction poursuit son exécution et la sortie q_xBusy prend la valeur TRUE. Un front montant sur l'entrée i_xExecute est ignoré pendant l'exécution du bloc fonction. Une fois l'exécution terminée, les sorties q_xDone ou q_xError sont définies en fonction du résultat. 26 EIO0000002768 12/2019 Entrées et sorties communes La sortie q_xDone indique une exécution réussie et elle garde la valeur TRUE jusqu'au front montant de l'entrée i_xExecute. Si q_xError indique TRUE, une erreur a été détectée durant l'exécution. Une nouvelle exécution du bloc fonction est impossible tant que l'état d'erreur est présent. Certains messages d'erreur peuvent être redéfinis en utilisant l'entrée i_xErrorQuit. Si l'état d'erreur persiste sur un front montant de i_xErrorQuit, le bloc fonction doit être désactivé pour réinitialiser l'état d'erreur. En configurant l’entrée i_xEnable sur FALSE, le bloc fonction lance le processus de désactivation. L’appel du bloc fonction continue tant que la sortie q_xActive est égale à TRUE. Exemple EIO0000002768 12/2019 27 Entrées et sorties communes 28 EIO0000002768 12/2019 EcoStruxure Machine Expert Transfert de données via SQL Gateway entre le contrôleur et une base de données quelconque EIO0000002768 12/2019 Chapitre 3 Transfert de données via SQL Gateway entre le contrôleur et une base de données quelconque Transfert de données via SQL Gateway entre le contrôleur et une base de données quelconque Principe Configuration système requise La configuration système requise est la suivante : Serveur SQL (par exemple, MySQL, non fourni par Schneider Electric) Client SQL (par exemple, MySQL Workbench, non fourni par Schneider Electric) Base de données créée avec le client SQL (par exemple, MySQL Workbench) SQL Gateway (installation séparée sur le DVD de EcoStruxure Machine Expert) Bibliothèque SqlRemoteAccess (incluse dans l'installation de EcoStruxure Machine Expert) Transfert de données via SQL Gateway entre le contrôleur et une base de données quelconque Pour pouvoir transférer les données, la connexion SQL doit être établie avec la SQL Gateway. Pour plus d'informations, consultez le document Passerelle SQL - Guide de l'utilisateur (voir page 14). Les blocs fonction intervenant dans l'échange de données nécessitent l'adresse IP de la SQL Gateway et son port d'écoute. En outre, il convient de fournir au bloc fonction le nom de connexion par lequel la connexion à la base de données SQL est configurée au sein de la passerelle. NOTE : La syntaxe SQL dans les exemples de code présentés correspond à un serveur MySQL. Si vous utilisez un autre serveur SQL, les commandes peuvent être différentes. Ecriture de données depuis un contrôleur vers la base de données à l'aide d'une connexion TCP sécurisée Déclaration : PROGRAM WriteData_Secured VAR fbSqlDbRequest stExtConnectionSettings refRequestWstring refUserData etSqlRequest END_VAR : : : : : SE_SQL.FB_SqlDbRequest; SE_SQL.ST_ExtendedConnectionSettings; SE_SQL.RequestWstring; SE_SQL.UserData; SE_SQL.ET_SqlRequest; Mise en œuvre : EIO0000002768 12/2019 29 Transfert de données via SQL Gateway entre le contrôleur et une base de données quelconque stExtConnectionSettings.wsDbConnectionName := "ConnectionCountry"; stExtConnectionSettings.wsGwIpAddress := "10.128.154.47"; stExtConnectionSettings.wGwPort := 3458; stExtConnectionSettings.timSqlTimeout := T#5S; stExtConnectionSettings.timSqlConnectionTimeout := T#10S; etSqlRequest := SE_SQL.ET_SqlRequest.Write; // SQL Command to insert a new Country refRequestWstring[1] := "INSERT INTO world.countries (Country, CapitalCity, Language)"; refRequestWstring[2] := "values ('Germany', 'Berlin', 'german')"; IF NOT fbSqlDbRequest.q_xReady THEN fbSqlDbRequest(i_xEnable:= TRUE, i_xExecute:= FALSE, i_etSqlRequest:= etSqlRequest, i_refRequestWstring:= refRequestWstring, i_uiNumOfWstrings:= 2, i_refUserData:= refUserData, iq_stExtendedConnSettings:= stExtConnectionSettings); ELSE fbSqlDbRequest(i_xEnable:= TRUE, i_xExecute:= TRUE, i_etSqlRequest:= etSqlRequest, i_refRequestWstring:= refRequestWstring, i_uiNumOfWstrings:= 2, i_refUserData:= refUserData, iq_stExtendedConnSettings:= stExtConnectionSettings); END_IF Désignation des paramètres utilisés Etape 30 Action 1 Dans la configuration de ST_ExtendedConnectionSettings (voir page 45), indiquez le nom de connexion (wsDbConnectionName (voir page 45)) défini dans la SQL Gateway, par exemple ConnectionCountry. 2 Dans la configuration de ST_ExtendedConnectionSettings (voir page 45), indiquez l'adresse IP (wsGwIpAddress (voir page 45)) du PC sur lequel la passerelle s'exécute, par exemple 10.128.154.47. 3 Dans la configuration de ST_ExtendedConnectionSettings (voir page 45), indiquez le port (wGwPort (voir page 45)) de la passerelle (par défaut : 3458). 4 Dans la configuration de ST_ExtendedConnectionSettings (voir page 45), indiquez la temporisation (timSqlTimeout (voir page 45)), par exemple T#5s. EIO0000002768 12/2019 Transfert de données via SQL Gateway entre le contrôleur et une base de données quelconque Etape 5 Action Dans la configuration de ST_ExtendedConnectionSettings (voir page 45), indiquez la temporisation (timSqlConnectionTimeout (voir page 45)), par exemple T#10s. 6 Définissez l'entrée i_etSqlRequest (voir page 64) sur SE_SQL.ET_SqlRequest.Write. 7 Formulez votre requête d'écriture dans refRequestWstring (voir page 63), par exemple INSERT INTO world.countries (Country) values ('France'). 8 Pour i_uiNumOfWstrings (voir page 63), indiquez les lignes de refRequestWstring (voir page 63), par exemple 2. 9 Appelez le bloc fonction FB_SqlDbRequest (voir page 63) avec les paramètres/variables cidessus. NOTE : Il n'est possible d'envoyer qu'une seule requête par appel de bloc fonction. Lecture dans une base de données depuis un contrôleur via une connexion TCP sécurisée Déclaration : PROGRAM ReadData_Secured VAR fbSqlDbRequest stExtConnectionSettings refRequestWstring refUserData etSqlRequest END_VAR : : : : : SE_SQL.FB_SqlDbRequest; SE_SQL.ST_ExtendedConnectionSettings; SE_SQL.RequestWstring; SE_SQL.UserData; SE_SQL.ET_SqlRequest; Mise en œuvre : stExtConnectionSettings.wsDbConnectionName := "ConnectionCountry"; stExtConnectionSettings.wsGwIpAddress := "10.128.154.47"; stExtConnectionSettings.wGwPort := 3458; stExtConnectionSettings.timSqlTimeout := T#5S; stExtConnectionSettings.timSqlConnectionTimeout := T#10S; etSqlRequest := SE_SQL.ET_SqlRequest.Read; // SQL Command to read all Countries in a database refRequestWstring[1] := "SELECT * FROM world.countries"; IF NOT fbSqlDbRequest.q_xReady THEN fbSqlDbRequest(i_xEnable:= TRUE, i_xExecute:= FALSE, i_etSqlRequest:= etSqlRequest, i_refRequestWstring:= refRequestWstring, i_uiNumOfWstrings:= 1, i_refUserData:= refUserData, EIO0000002768 12/2019 31 Transfert de données via SQL Gateway entre le contrôleur et une base de données quelconque iq_stExtendedConnSettings:= stExtConnectionSettings); ELSE fbSqlDbRequest(i_xEnable:= TRUE, i_xExecute:= TRUE, i_etSqlRequest:= etSqlRequest, i_refRequestWstring:= refRequestWstring, i_uiNumOfWstrings:= 1, i_refUserData:= refUserData, iq_stExtendedConnSettings:= stExtConnectionSettings); END_IF Désignation des paramètres utilisés Etape 32 Action 1 Dans la configuration de ST_ExtendedConnectionSettings (voir page 45), indiquez le nom de connexion (wsDbConnectionName (voir page 45)) défini dans la SQL Gateway, par exemple ConnectionCountry. 2 Dans la configuration de ST_ExtendedConnectionSettings (voir page 45), indiquez l'adresse IP (wsGwIpAddress (voir page 45)) du PC sur lequel la SQL Gateway s'exécute, par exemple 10.128.154.47. 3 Dans la configuration de ST_ExtendedConnectionSettings (voir page 45), indiquez le port (wGwPort (voir page 45)) de la passerelle (par défaut : 3458). 4 Dans la configuration de ST_ExtendedConnectionSettings (voir page 45), indiquez la temporisation (timSqlTimeout (voir page 45)), par exemple T#5s. 5 Dans la configuration de ST_ExtendedConnectionSettings (voir page 45), indiquez la temporisation (timSqlConnectionTimeout (voir page 45)), par exemple T#10s. 6 Définissez l'entrée i_etSqlRequest (voir page 64) sur SE_SQL.ET_SqlRequest.Read. 7 Formulez votre requête de lecture dans refRequestWstring (voir page 64), par exemple SELECT * FROM world.countries. 8 Pour i_uiNumOfWstrings (voir page 63), indiquez les lignes de refRequestWstring (voir page 63), par exemple 1. 9 Dans la configuration de i_refUserData (voir page 63), indiquez votre tableau UserData (voir page 63). 10 Appelez le bloc fonction FB_SqlDbRequest (voir page 63) avec les paramètres/variables cidessus. EIO0000002768 12/2019 Transfert de données via SQL Gateway entre le contrôleur et une base de données quelconque Paramètres avancés du tampon de données/de la requête avec les paramètres globaux NOTE : Le Gestionnaire de bibliothèques vous permet de modifier les paramètres avancés en fonction de votre projet. Etape Action 1 Dans Gc_uiMaxRows (voir page 53), configurez le nombre maximum de lignes du tableau ARRAY of UserData (requis uniquement pour FB_SqlDbRead (voir page 58)), par exemple, 20. Résultat : 20 lignes de la base de données configurée peuvent être lues. 2 Dans Gc_uiMaxColumns (voir page 53), configurez le nombre maximum de colonnes du tableau ARRAY of UserData (requis uniquement pour FB_SqlDbRead), par exemple, 10. Résultat : 10 colonnes de la base de données configurée peuvent être lues. 3 Dans Gc_uiTableWstringLength (voir page 53), configurez le nombre maximum de caractères du tableau ARRAY of UserData à double entrée (requis uniquement pour FB_SqlDbRead (voir page 58)), par exemple, 200. Résultat : il est possible de lire un champ de 200 caractères dans la base de données configurée. 4 Dans Gc_uiMaxRequest (voir page 53), configurez le nombre maximum de lignes du tableau ARRAY of RequestWstring, par exemple, 20. Résultat : la requête peut être divisée en 20 lignes du tableau WSTRINGs. 5 Dans Gc_uiRequestWstringLength (voir page 53), configurez le nombre maximum de caractères du tableau ARRAY of RequestWstring, par exemple, 200. Résultat : une ligne de la requête peut comprendre 200 caractères. EIO0000002768 12/2019 33 Transfert de données via SQL Gateway entre le contrôleur et une base de données quelconque 34 EIO0000002768 12/2019 EcoStruxure Machine Expert Énumérations et Structures EIO0000002768 12/2019 Partie II Énumérations et Structures Énumérations et Structures Contenu de cette partie Cette partie contient les chapitres suivants : Chapitre Titre du chapitre Page 4 Énumérations 37 5 Structures 43 6 ALIAS (DUT) 47 EIO0000002768 12/2019 35 Énumérations et Structures 36 EIO0000002768 12/2019 EcoStruxure Machine Expert Énumérations EIO0000002768 12/2019 Chapitre 4 Énumérations Énumérations Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page ET_Result 38 ET_SqlRequest 42 EIO0000002768 12/2019 37 Énumérations ET_Result Présentation Type : Énumération Disponible à partir de la version : V1.0.0.0 Description L'énumération ET_Result contient les valeurs possibles qui donnent les résultats des opérations exécutées par le bloc fonction. Éléments d'énumération Nom Type de Valeur Description données Si le paramètre q_xError d'un bloc fonction (voir page 57) est FALSE, le message d'état suivant apparaît. Ok UDINT 0 L'opération a abouti. Disabled UDINT 2 Le bloc fonction est désactivé. Disabling UDINT 3 Processus de désactivation du bloc fonction en cours (défini uniquement par FB_SqlDbRequest). Connected UDINT 4 La connexion à SQL Gateway est correctement établie. Connecting UDINT 5 Le client est en train de se connecter à SQL Gateway. Processing UDINT 6 La requête SQL est en cours de traitement. Si le paramètre q_xError d'un bloc fonction (voir page 57) est TRUE, l'un des messages d'état suivants apparaît. TcpClientIssue UDINT 1 L'opération TCP n'a pas abouti. Problème TCP général. Consultez le Guide de la bibliothèque TcpUdpCommunication (voir EcoStruxure Machine Expert, TcpUdpCommunication, Guide de la bibliothèque). InvalidIP UDINT 26 L'adresse IP indiquée n'est pas valide. ClientNotConnected UDINT 28 Le client n'est pas connecté au serveur TCP. Vérifiez que le logiciel SQL Gateway est installé et en cours d'exécution avec l'adresse IP et le port spécifiés. ConnectionTimedOut UDINT 41 Le système distant est indisponible ou ne répond pas à la requête. Vérifiez que le logiciel SQL Gateway est installé et en cours d'exécution avec l'adresse IP et le port spécifiés. 38 EIO0000002768 12/2019 Énumérations Nom Type de Valeur Description données CertificateNotFound UDINT 56 Le certificat par défaut du contrôleur est introuvable dans le magasin de certificats du contrôleur. InitTlsContextFailed UDINT 58 Erreur interne détectée durant l'initialisation du contexte TLS. Jusqu'à 10 contextes TLS différents peuvent être ouverts en même temps. Vérifiez que le nombre de sockets TCP utilisant TLS qui sont ouverts simultanément ne dépasse pas 10. DbConnectionNameNull UDINT 61 Le paramètre DbConnectionName est vide (valeur de type Null). L'élément wsDbConnectionName de l'entrée iq_stConnSettings (voir page 44) ou iq_stExtendedConnSettings (voir page 45) est vide. DataBufferTooSmall UDINT 63 Le tampon utilisateur est trop petit pour renvoyer les données. En comparant le nombre de lignes et de colonnes renvoyées avec les paramètres de la liste des paramètres globaux (voir page 53), vous trouverez les réglages minimum de q_uiRetNumOfRows (q_uiRetNumOfColumns) pour le bloc fonction FB_SqlDbRead (voir page 58) ou FB_SqlDbRequest (voir page 63) (lecture) après chaque exécution. SqlDatabaseBusy UDINT 64 Une requête plus ancienne est en cours de traitement. Une autre instance présentant la même entrée pour iq_stConnSettings est en cours d'exécution (sortie q_xBusy = TRUE) ou présentant la même entrée iq_stExtendedConnSettings est actuellement active (sortie q_xActive = TRUE). SqlGwToPlcCorruptedMessage UDINT 65 Le contrôleur a reçu un message non valide de SQL Gateway. Contactez votre service d'assistance Schneider Electric local. TimeoutExpired UDINT 66 Le timeout du bloc fonction a expiré. Vérifiez la valeur de l'entrée iq_stConnSettings.timSqlTimeout (voir page 44) ou iq_stExtendedConnSetting.timSqlTimeout (timSqlConnectionTimeout (voir page 45)). La valeur par défaut doit être augmentée en fonction de la configuration du système. TransactionNumMismatch UDINT 67 Numéro de transaction incohérent. Contactez votre service d'assistance Schneider Electric local. EIO0000002768 12/2019 39 Énumérations Nom Type de Valeur Description données TransmissionNumMismatch UDINT 68 Numéro d'émission incohérent. Contactez votre service d'assistance Schneider Electric local. ConnectionNotIdle UDINT 69 Un autre service occupe la connexion du client TcpUdp. Vérifiez qu'aucune autre instance de TCPUDP.FB_TCPClient dans votre application n'occupe la connexion. SocketNotClosed UDINT 70 La méthode Shutdown ou Close du client TcpUdp n'aboutit pas. Problème de connexion TCP. Redémarrez votre contrôleur. NoDataReturned UDINT 71 Le bloc fonction FB_SqlDbGetData ne fournit aucune donnée. La requête SQL a été exécutée, mais n'a pas renvoyé de données. Vérifiez que la base de données associée contient des données. NotConnected UDINT 72 Le système client TcpUdp n'est pas prêt à recevoir ou envoyer des données. Problème de connexion TCP. Redémarrez votre contrôleur. TimeoutValueInvalid UDINT 73 La valeur de temporisation n'est pas valide. Elle doit être supérieure à 0 s. InvalidPort UDINT 80 Le numéro de port indiqué est égal à zéro. InvalidWstringNumber UDINT 81 L'entrée i_uiNumOfWstrings est inférieure à 1 ou supérieure à GPL.Gc_uiMaxRequest. Vérifiez l'entrée i_uiNumOfWstrings. Au moins une chaîne WSTRING est requise. Vérifiez également que le nombre indiqué est supérieur à la limite GPL.Gc_uiMaxRequest (GPL) (voir page 53). InvalidRequestWstring UDINT 82 Chaîne de requête vide ou référence incorrecte (NULL). Vérifiez l'entrée i_refRequestWstring (voir page 61). La première chaîne WSTRING (i_refRequestWstring[1]) doit contenir un ou plusieurs caractères. Vérifiez que l'entrée est affectée. InvalidUserDataWstring UDINT 83 Référence de données utilisateur incorrecte (NULL). Vérifiez que l'entrée i_refUserData (voir page 58) est affectée. InvalidSqlRequest UDINT 84 Entrée i_etSqlRequest différente de Read (0) ou Write (1). GplMaxRowsExceedsLimits UDINT 85 GPL.Gc_uiMaxRows est hors limites. Vérifiez les valeurs de la liste des paramètres globaux (voir page 53). 40 EIO0000002768 12/2019 Énumérations Nom Type de Valeur Description données GplMaxColumnsExceedsLimits UDINT 86 GPL.Gc_uiMaxColumns est hors limites. Vérifiez les valeurs de la liste des paramètres globaux (voir page 53). GplTableWstringExceedsLimits UDINT 87 GPL.Gc_uiTableWstringLength est hors limites. Vérifiez les valeurs de la liste des paramètres globaux (voir page 53). GplRequestWstringExceedsLimits UDINT 88 GPL.Gc_uiRequestWstringLength est hors limites. Vérifiez les valeurs de la liste des paramètres globaux (voir page 53). GplMaxRequestExceedsLimits UDINT 89 GPL.Gc_uiMaxRequest est hors limites. Vérifiez les valeurs de la liste des paramètres globaux (voir page 53). GplMaxRecBufferExceedsLimits UDINT 91 GPL.Gc_uiRecBufferLength est hors limites. Vérifiez les valeurs de la liste des paramètres globaux (voir page 53). GplMaxSendBufferExceedsLimits UDINT 92 GPL.Gc_uiSendBufferLength est hors limites. Vérifiez les valeurs de la liste des paramètres globaux (voir page 53). ConnectionNameNotExisting UDINT 100 Le nom de la connexion de SQL Gateway n'existe pas. Vérifiez les connexions de base de données disponibles, sur la console de SQL Gateway. DbConfigurationInvalid UDINT 101 La configuration de la connexion de SQL Gateway ne correspond pas. Exécutez Test Database Connection depuis la console SQL Gateway. DbConnectionNotAvailable UDINT 102 La connexion de SQL Gateway à la base de données ne fonctionne pas. Exécutez Test Database Connection depuis la console SQL Gateway. SqlGwProtocolError UDINT 120 Erreur de protocole détectée entre la bibliothèque SQL et la passerelle. Contactez votre service d'assistance Schneider Electric local. CommandExecutionIssue UDINT 150 L'exécution de la requête SQL a échoué. Vérifiez la syntaxe SQL de l'entrée i_refRequestWString (voir page 58). Consultez le manuel SQL Server. NoQueryResultAvailable UDINT 151 La SQL Gateway ne répond pas. Vérifiez que la base de données interrogée contient des données, à l'aide d'une autre application. SqlGwInvalidLicense UDINT 170 Problème avec la licence de SQL Gateway. Ouvrez License Manager pour vérifier que SQL pour EcoStruxure Machine Expert est valide. EIO0000002768 12/2019 41 Énumérations Nom Type de Valeur Description données SqlGwUnexpectedError UDINT 199 Erreur de SQL Gateway détectée. Contactez votre service d'assistance Schneider Electric local. NOTE : les valeurs comprises entre 100 et 199 sont des messages de SQL Gateway. Consultez le document Passerelle SQL - Guide de l'utilisateur (voir page 14). Utilisés par FB_SqlDbRead FB_SqlDbWrite FB_SqlDbRequest ET_SqlRequest Présentation Type : Énumération Disponible à partir de la version : V2.0.0.0 Description L'énumération ET_SqlRequest définit la requête (lecture/écriture) à exécuter. Éléments d'énumération Nom Type de données Valeur Description Read INT 0 Exécute des requêtes SQL qui lisent des données de la base de données SQL. Write INT 1 Exécute des requêtes SQL qui mettent à jour ou modifient la base de données SQL. Utilisé par 42 FB_SqlDbRequest EIO0000002768 12/2019 EcoStruxure Machine Expert Structures EIO0000002768 12/2019 Chapitre 5 Structures Structures Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page ST_ConnectionSettings 44 ST_ExtendedConnectionSettings 45 EIO0000002768 12/2019 43 Structures ST_ConnectionSettings Présentation Type : Structure Disponible à partir de la version : V1.0.0.0 Hérite de : – Description La structure ST_ConnectionSettings contient les informations de connexion à une SQL Gateway et les informations concernant la base de données SQL. Éléments de la structure Nom Type de données Description wsDbConnectionName WSTRING[40] La valeur de cet élément doit correspondre au nom de connexion configuré dans la SQL Gateway. Consultez le document Passerelle SQL - Guide de l'utilisateur (voir page 14). wsGwIpAddress WSTRINGGPL.Gc_uiIpSt ringSize Adresse IP de la SQL Gateway. Il s'agit de l'adresse IP du serveur qui exécute la passerelle. wGwPort WORD Numéro de port de la SQL Gateway. Valeur par défaut : 3457 timSqlTimeout TIME Timeout appliqué aux requêtes SQL. Valeur par défaut : 60s Utilisé par 44 FB_SqlDbRead FB_SqlDbWrite EIO0000002768 12/2019 Structures ST_ExtendedConnectionSettings Présentation Type : Structure Disponible à partir de la version : V2.0.0.0 Hérite de : – Description La structure ST_ExtendedConnectionSettings contient les informations de connexion à une SQL Gateway et les informations concernant la base de données SQL. Éléments de la structure Nom Type de données Description xUseTls BOOL Défini sur la valeur TRUE pour indiquer l’utilisation d’une connexion sécurisée à l’aide de TLS. Valeur par défaut : TRUE wsDbConnectionName WSTRING[40] La valeur de cet élément doit correspondre au nom de connexion configuré dans la SQL Gateway. Consultez le document Passerelle SQL - Guide de l'utilisateur (voir page 14). wsGwIpAddress WSTRING[GPL.Gc_uiIpS tringSize] Adresse IP de la SQL Gateway. Il s'agit de l'adresse IP du serveur qui exécute la passerelle. wGwPort WORD Numéro de port de la SQL Gateway. Valeur par défaut : 3458 (sécurisé) timSqlTimeout TIME Timeout appliqué aux requêtes SQL. Valeur par défaut : 60 s timSqlConnectionTimeout TIME Valeur de temporisation appliquée pour l'établisssement de la connexion permanente. Valeur par défaut : 10 s Considérations relatives à une connexion TCP sécurisée utilisant TLS Si xUseTls = TRUE, TLS (Transport Layer Security) est utilisé pour chiffrer la communication entre le client (bloc fonction FB_SqlDbRequest) et le serveur (outil SQL Gateway). En plus du chiffrement, TLS vérifie l'identité du partenaire de communication (contrôleur et SQL Gateway) à l'aide de certificats. Ces certificats sont échangés lors de l’établissement d’une connexion (transfert TLS). L'envoi de certificats pendant le transfert TLS est obligatoire. EIO0000002768 12/2019 45 Structures Une connexion ne peut être établie avec le partenaire de communication que si la vérification de certificat a un résultat positif. NOTE : Un certificat doit être fourni par la SQL Gateway. La SQL Gateway (serveur) est configurée pour vérifier le certificat du client (paramètres de SQL Gateway). Le certificat SQL Gateway doit être déclaré comme approuvé. Pour cela, il est nécessaire de gérer manuellement les certificats sur votre contrôleur. Vous pouvez effectuer cette opération à l’aide de l’éditeur Security Screen dans EcoStruxure Machine Expert Logic Builder. Le certificat de contrôleur par défaut doit être disponible sur le contrôleur et la date de validité ne doit pas avoir expiré. Pour plus d'informations sur la gestion des certificats sur le contrôleur, consultez le document Comment gérer les certificats sur le contrôleur - Guide utilisateur (voir Comment gérer les certificats sur le contrôleur, Guide utilisateur). Pour plus d'informations sur la SQL Gateway, consultez le document Passerelle SQL - Guide de l'utilisateur (voir page 14). Utilisé par 46 FB_SqlDbRequest EIO0000002768 12/2019 EcoStruxure Machine Expert ALIAS (DUT) EIO0000002768 12/2019 Chapitre 6 ALIAS (DUT) ALIAS (DUT) ALIAS - DUT (Device Unit Type ou type d'unité d'équipement) Présentation Type : ALIAS (DUT) Disponible à partir de la version : V1.0.0.0 Hérite de : – Description Les ALIAS RequestWstring et UserData combinent des structures de données complexes dans un type de données pour contribuer à simplifier l'interface utilisateur. RequestWstring Nom Type de données Description RequestWstring ARRAY [1..GPL.Gc_uiMaxRequest] OF WSTRING(GPL.Gc_uiRequ estWstringLength) RequestWstring est un ALIAS pour un tableau de chaînes WSTRINGS. La requête STRING contient la requête d'interrogation SQL. Une requête SQL doit être divisée en plusieurs chaînes ne dépassant pas 200 caractères. Adaptez la taille des paramètres globaux (voir page 53) Gc_uiMaxRequest et Gc_uiRequestWstringLength à la longueur des requêtes SQL que vous utilisez dans votre application. Nom Type de données Description UserData ARRAY [1..GPL.Gc_uiMaxRows, 1..GPL.Gc_uiMaxColumns] OF WSTRING(GPL.Gc_uiTable WstringLength) UserData est un tableau de chaînes WSTRING qui doit être disponible sur le contrôleur pour stocker les données SQL lues dans la base de données. Adaptez la taille des paramètres globaux (voir page 53) Gc_uiMaxRows, Gc_uiMaxColums et GPL.Gc_uiTableWstringLength à la taille maximale de UserData à recevoir dans votre application. UserData EIO0000002768 12/2019 47 ALIAS (DUT) 48 EIO0000002768 12/2019 EcoStruxure Machine Expert Variables globales EIO0000002768 12/2019 Partie III Variables globales Variables globales Contenu de cette partie Cette partie contient les chapitres suivants : Chapitre Titre du chapitre Page 7 Liste des constantes globales 51 8 Liste des paramètres globaux 53 EIO0000002768 12/2019 49 Variables globales 50 EIO0000002768 12/2019 EcoStruxure Machine Expert Liste des constantes globales EIO0000002768 12/2019 Chapitre 7 Liste des constantes globales Liste des constantes globales Liste des constantes globales (GCL) Présentation Type : Constantes globales Disponible à partir de la version : V1.0.0.0 Description La liste des constantes globales contient les constantes globales de la bibliothèque SqlRemoteAccess. Constantes globales Variable Type de données Gc_sLibraryVersion STRING[80] 1 Valeur Description 1 Vx.x.x.0 Version de bibliothèque Cette valeur varie selon la version de la bibliothèque. EIO0000002768 12/2019 51 Liste des constantes globales 52 EIO0000002768 12/2019 EcoStruxure Machine Expert Liste des paramètres globaux EIO0000002768 12/2019 Chapitre 8 Liste des paramètres globaux Liste des paramètres globaux Liste des paramètres globaux (GPL) Présentation Type : Paramètres globaux Disponible à partir de la version : V1.0.0.0 Description Cette liste contient les paramètres globaux de la bibliothèque SqlRemoteAccess. Vous pouvez les modifier en fonction de votre projet dans le Gestionnaire de bibliothèques. Les paramètres globaux de la bibliothèque SqlRemoteAccess vous permettent de définir la taille de l'ALIAS suivant des tampons de données : Alias UserData (voir page 47) qui doit être disponible dans le contrôleur, pour stocker les données SQL lues dans la base de données SQL. Alias RequestData (voir page 47) qui doit être disponible dans le contrôleur pour segmenter les requêtes SQL en plusieurs chaînes d'au maximum 200 caractères avant leur envoi à la base de données SQL. Paramètres globaux Variable Type de Valeur données plage Description Gc_uiIpStringSize UINT – Limite supérieure du type WSTRING pour l'élément wsGwIpaddress de la ST_ConnectionSettings structure (voir page 44). Valeur par défaut : 15 Gc_uiMaxRows UINT 1 à 50 Nombre maximum de lignes du tableau ARRAY de données utilisateur (voir page 60). Valeur par défaut : 20 Gc_uiMaxColumns UINT 1 à 50 Nombre maximum de colonnes du tableau ARRAY de données utilisateur (voir page 60). Valeur par défaut : 10 Gc_uiTableWstringLength UINT 20 à 200 Longueur de la chaîne WSTRING dans le tableau ARRAY de données utilisateur (voir page 60). Valeur par défaut : 200 EIO0000002768 12/2019 53 Liste des paramètres globaux Variable Type de Valeur données plage Gc_uiRequestWstringLength UINT Description 20 à 200 Longueur de la chaîne WSTRING dans le tableau ARRAY de données utilisateur. Configurez une valeur correspondant à la longueur des requêtes SQL que vous utilisez dans votre application. Valeur par défaut : 200 Limite supérieure du tableau ARRAY des données de la requête. Configurez une valeur correspondant à la longueur des requêtes SQL que vous utilisez dans votre application. Valeur par défaut : 20 Gc_uiMaxRequest UINT 1 à 40 Gc_uiRecBufferLength UINT 512 à 2000 Longueur du tampon de réponse, en octets. Valeur par défaut : 1000 Gc_uiSendBufferLength UINT 512 à 2000 Longueur du tampon d'envoi, en octets. Valeur par défaut : 1000 NOTE : les variables Gc_uiRecBufferLength et Gc_uiSendBufferLength définissent la taille des tampons internes d'envoi et de réception de données. La taille de ces tampons détermine le nombre de cycles requis pour transférer complètement une requête ou une réponse entre le contrôleur et la SQL Gateway. Les valeurs choisies peuvent avoir un impact sur la durée d'exécution des services SQL et sur la mémoire, ce qui a une incidence sur les performances globales de l'application. 54 EIO0000002768 12/2019 EcoStruxure Machine Expert Unités d'organisation de programme (POU) EIO0000002768 12/2019 Partie IV Unités d'organisation de programme (POU) Unités d'organisation de programme (POU) Contenu de cette partie Cette partie contient les chapitres suivants : Chapitre 9 10 EIO0000002768 12/2019 Titre du chapitre Page Blocs fonction 57 Fonctions 67 55 Unités d'organisation de programme (POU) 56 EIO0000002768 12/2019 EcoStruxure Machine Expert Blocs fonction EIO0000002768 12/2019 Chapitre 9 Blocs fonction Blocs fonction Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page FB_SqlDbRead 58 FB_SqlDbWrite 61 FB_SqlDbRequest 63 EIO0000002768 12/2019 57 Blocs fonction FB_SqlDbRead Présentation Type : Bloc fonction Disponible à partir de la version : V1.0.0.0 Tâche Le bloc fonction FB_SqlDbRead permet d'exécuter des requêtes SQL qui lisent des données dans la base de données SQL. Les données sont renvoyées dans un tableau à double entrée dont la taille est définie par les paramètres globaux (voir page 53). Description fonctionnelle Le bloc fonction FB_SqlDbRead est l'interface utilisateur qui permet de lire des données provenant de la base de données SQL. Lorsqu'un front montant est détecté sur i_xExecute, une connexion à la SQL Gateway est établie à l'aide des paramètres définis dans la structure ST_ConnectionSettings. Dès la connexion établie, le bloc fonction peut envoyer une requête SQL à la base de données SQL. Les messages d'état et les informations de diagnostic sont fournis à l'aide des sorties q_xError (TRUE si une erreur a été détectée), q_etResult et q_etResultMsg. Interface Entrée Type de données Description i_xExecute BOOL Le bloc fonction exécute une requête SQL pour lire des données de la base de données SQL en cas de front montant sur cette entrée. Pour plus d'informations, reportez-vous également à la section Fonctionnement des blocs fonction avec l'entrée i_xExecute (voir page 26). 58 EIO0000002768 12/2019 Blocs fonction Entrée Type de données Description i_refRequestWstring REFERENCE TO [RequestWstring] Référence aux données qui contiennent la requête d'interrogation SQL (comme Select * from DB limit 10;). Une requête SQL doit être divisée en plusieurs chaînes ne dépassant pas 200 caractères. Adaptez la taille des paramètres globaux (voir page 53) Gc_uiMaxRequest et Gc_uiRequestWstringLength à la longueur des requêtes SQL que vous utilisez dans votre application. (voir page 47) NOTE : Pour concaténer des chaînes WSTRINGS, utilisez la fonction WCONCAT de la bibliothèque Standard64. i_uiNumOfWstrings UINT Nombre de chaînes WSTRINGS requises qui contiennent la requête SQL divisée. Le nombre maximum est limité par le paramètre global (voir page 53) Gc_uiMaxRequest. i_refUserData REFERENCE TO [UserData] (voir page 47) Référence aux UserData (voir page 60) qui doivent être disponibles sur le contrôleur pour stocker les données SQL lues dans la base de données. In_Out Type de données Description iq_stConnSettings ST_ConnectionSettings Contient les informations de connexion à une SQL Gateway et les informations concernant la base de données SQL. (voir page 44) Sortie Type de données Description q_xBusy BOOL Si cette sortie est TRUE, le bloc fonction est en cours d'exécution. q_xDone BOOL Si cette sortie est TRUE, l'exécution s'est effectuée correctement. q_xError BOOL Si cette sortie est TRUE, une erreur a été détectée. Pour plus d'informations, reportez-vous à q_etResult et q_etResultMsg. q_etResult ET_Result Fournit des informations de diagnostic et d'état. q_sResultMsg STRING[255] Fournit des informations supplémentaires de diagnostic et d'état. q_uiRetNumOfRows UINT Nombre de lignes dans les données renvoyées. Cette sortie est mise à jour avec le nombre d'enregistrements reçus de la base de données SQL. q_uiRetNumOfColumns UINT Nombre de colonnes dans les données renvoyées. Cette sortie est mise à jour avec le nombre d'enregistrements reçus de la base de données SQL. EIO0000002768 12/2019 59 Blocs fonction Pour plus d'informations, reportez-vous également à la section Entrées et sorties communes (voir page 25). Définition d'un tableau ARRAY de données utilisateur Un tableau ARRAY à double entrée doit être disponible sur le contrôleur pour stocker temporairement les données SQL lues dans la base de données. Le tableau ARRAY à double entrée est défini dans l'ALIAS UserData (voir page 47). La taille du tableau ARRAY peut être adaptée par les paramètres globaux (voir page 53) Gc_uiMaxRows, Gc_uiMaxColumns et Gc_uiTableWstringLength. Lorsque vous configurez ces paramètres, tenez compte du volume de données SQL que vous espérez recevoir. Avant le début du transfert, les données SQL sont segmentées en fonction de la taille de ce tampon. Si les données SQL reçues dépassent la taille du tableau ARRAY, le transfert des données SQL s'interrompt et le bloc fonction signale une erreur détectée. 60 EIO0000002768 12/2019 Blocs fonction FB_SqlDbWrite Présentation Type : Bloc fonction Disponible à partir de la version : V1.0.0.0 Tâche Le bloc fonction FB_SqlDbWrite permet d'exécuter des requêtes SQL qui modifient ou mettent à jour la base de données SQL. Les requêtes ne renvoient aucune donnée. Description fonctionnelle Le bloc fonction FB_SqlDbWrite est l'interface utilisateur qui permet de modifier ou de mettre à jour la base de données SQL. Lorsqu'un front montant est détecté sur i_xExecute, une connexion à la SQL Gateway est établie à l'aide des paramètres définis dans la structure ST_ConnectionSettings (voir page 44). Une fois la connexion établie, le bloc fonction peut envoyer une requête SQL (indiqué à l'entrée i_refRequestWstring) à la base de données SQL. Les messages d'état et les informations de diagnostic sont fournis à l'aide des sorties q_xError (TRUE si une erreur a été détectée), q_etResult et q_etResultMsg. Interface Entrée Type de données Description i_xExecute BOOL Le bloc fonction exécute une requête SQL pour modifier ou mettre à jour la base de données SQL en cas de front montant sur cette entrée. Pour plus d'informations, reportez-vous également à la section Fonctionnement des blocs fonction avec l'entrée i_xExecute (voir page 26). EIO0000002768 12/2019 61 Blocs fonction Entrée Type de données i_refRequestWstring REFERENCE TO Référence aux données qui contiennent une requête de mise à [RequestWstring] jour SQL. Les types d'interrogation SQL pris en charge sont les suivants : (voir page 47) INSERT INTO UPDATE DELETE FROM CREATE TABLE CREATE VIEW CREATE INDEX ALTER TABLE DROP TABLE TRUNCATE TABLE Description Une requête SQL doit être divisée en plusieurs chaînes ne dépassant pas 200 caractères. Adaptez la taille des paramètres globaux (voir page 53) Gc_uiMaxRequest et Gc_uiRequestWstringLength à la longueur des requêtes SQL que vous utilisez dans votre application. NOTE : Pour concaténer des chaînes WSTRINGS, utilisez la fonction CONCAT de la bibliothèque Standard64. UINT i_uiNumOfWstrings Nombre de chaînes WSTRINGS requises qui contiennent la requête SQL divisée. Le nombre maximum est limité par le paramètre global (voir page 53) Gc_uiMaxRequest. In_Out Type de données Description iq_stConnSettings ST_ConnectionSettings Contient les informations de connexion à une SQL Gateway et les informations concernant la base de données SQL. (voir page 44) Sortie Type de données Description q_xBusy BOOL Si cette sortie est TRUE, le bloc fonction est en cours d'exécution. q_xDone BOOL Si cette sortie est TRUE, l'exécution s'est effectuée correctement. q_xError BOOL Si cette sortie est TRUE, une erreur a été détectée. Pour plus d'informations, reportez-vous à q_etResult et q_etResultMsg. q_etResult ET_Result Fournit des informations de diagnostic et d'état. q_sResultMsg STRING[255] Fournit des informations supplémentaires de diagnostic et d'état. Pour plus d'informations, reportez-vous également à la section Entrées et sorties communes (voir page 25). 62 EIO0000002768 12/2019 Blocs fonction FB_SqlDbRequest Présentation Type : Bloc fonction Disponible à partir de la version : V2.0.0.0 Tâche Le bloc fonction FB_SqlDbRequest est utilisé pour : Etablir une connexion TCP permanente et sécurisée (non sécurisée) à la SQL Gateway. Pour plus d'informations, consultez ST_ExtendedConnectionSettings (voir page 45). Exécuter des requêtes SQL qui lisent des données de la base de données SQL. Les données sont renvoyées dans un tableau à double entrée dont la taille est définie par les paramètres globaux (voir page 53). Exécuter des requêtes SQL qui mettent à jour ou modifient la base de données SQL. Ces requêtes ne renvoient aucune donnée. Description fonctionnelle Une fois le bloc fonction activé (i_xEnable défini sur TRUE), une connexion TCP (sécurisée par TLS V1.2 ou non sécurisée) à la SQL Gateway est établie à l'aide des paramètres définis dans la variable iq_stExtendedConnSettings. Dès que la connexion est établie, la sortie q_xReady est définie sur TRUE et le bloc fonction est en mesure d'envoyer des requêtes SQL à la SQL Gateway, laquelle les transfère à la base de données SQL configurée en utilisant le nom de connexion. Après qu'un front montant a été détecté sur i_xExecute, le bloc fonction envoie la requête SQL à la SQL Gateway et traite la réponse. Les messages d'état et les informations de diagnostic sont fournis à l'aide des sorties q_xError (TRUE si une erreur a été détectée), q_etResult et q_etResultMsg. EIO0000002768 12/2019 63 Blocs fonction Les messages de diagnostic en cas d'échec d'exécution de commande peuvent être acquittés via la définition de l'entrée i_xErrorQuit sur TRUE. Le bloc fonction reste actif et la connexion TCP n'est pas fermée. Au terme de l'échange de données avec la base de données SQL, désactivez le bloc fonction. Définissez i_xEnable sur FALSE pour fermer la connexion. NOTE : La prise en charge ou non d’une connexion utilisant le protocole TLS dépend du contrôleur sur lequel FB_SqlDbRequest est utilisé. Reportez-vous au manuel de votre contrôleur pour vérifier si la communication TCP via TLS est prise en charge. Interface Entrée Type de données Description i_xEnable BOOL Le bloc fonction établit une connexion avec le SQL Gateway sur un front montant de cette entrée. Si l’entrée est définie sur FALSE, le bloc fonction est réinitialisé et la connexion existante est fermée ou l’établissement de connexion est annulé. Pour plus d'informations, reportez-vous également à la section Fonctionnement des blocs fonction avec l'entrée i_xEnable et i_xExecute et i_xErrorQuit (voir page 26). i_xExecute BOOL Le bloc fonction exécute une requête SQL pour lire ou écrire des données dans la base de données SQL en cas de front montant sur cette entrée. Pour plus d'informations, reportez-vous également à la section Fonctionnement des blocs fonction avec l'entrée i_xEnable et i_xExecute et i_xErrorQuit (voir page 26). i_xErrorQuit BOOL Le bloc fonction acquitte une erreur détectée indiquée par q_xError sur un front montant de cette entrée. Pour plus d'informations, reportez-vous également à la section Fonctionnement des blocs fonction avec l'entrée i_xEnable et i_xExecute et i_xErrorQuit (voir page 26). i_etSqlRequest ET_SqlRequest Définit le type de requête SQL (lecture ou écriture) à exécuter. Par défaut : ET_SqlRequest.Read REFERENCE TO [RequestWstring] Référence aux données de la requête qui contiennent une seule demande SQL (de lecture ou d'écriture). Une requête SQL doit être divisée en plusieurs chaînes ne dépassant pas 200 caractères. Adaptez la taille des paramètres globaux (voir page 53) Gc_uiMaxRequest et Gc_uiRequestWstringLength à la longueur des requêtes SQL que vous utilisez dans votre application. (voir page 42) i_refRequestWstring (voir page 47) NOTE : Pour concaténer des chaînes WSTRINGS, utilisez la fonction WCONCAT de la bibliothèque Standard64. 64 EIO0000002768 12/2019 Blocs fonction Entrée Type de données Description i_uiNumOfWstrings UINT Nombre de chaînes WSTRINGS requises qui contiennent la requête SQL divisée. Le nombre maximum est limité par le paramètre global (voir page 53) Gc_uiMaxRequest. i_refUserData REFERENCE TO [UserData] Référence aux UserData (voir page 60) qui doivent être disponibles sur le contrôleur pour stocker les données SQL lues dans la base de données. (voir page 47) In_Out Type de données Description iq_stExtendedConnSettings ST_ExtendedConnection Settings (voir page 45) Contient les informations nécessaires pour la connexion à une SQL Gateway. Sortie Type de données Description q_xActive BOOL Indique que l’exécution du bloc fonction est active. Tant que cette sortie est TRUE, le bloc fonction doit être exécuté de façon cyclique. q_xReady BOOL Indique que l'initialisation a réussi et que la connexion TCP est établie. Cette sortie indique TRUE tant que le bloc fonction est capable d'accepter des entrées. q_xBusy BOOL Si cette sortie est TRUE, le bloc fonction est en cours d'exécution. q_xDone BOOL Si cette sortie est TRUE, l'exécution s'est effectuée correctement. q_xError BOOL Si cette sortie est TRUE, une erreur a été détectée. Pour plus d'informations, reportez-vous à q_etResult et q_etResultMsg. q_etResult ET_Result Fournit des informations de diagnostic et d'état. q_sResultMsg STRING[255] Fournit des informations supplémentaires de diagnostic et d'état. q_uiRetNumOfRows UINT Nombre de lignes dans les données renvoyées. Cette sortie est mise à jour avec le nombre d'enregistrements reçus de la base de données SQL. NOTE : Valide uniquement après le succès d'une requête de lecture. q_uiRetNumOfColumns UINT Nombre de colonnes dans les données renvoyées. Cette sortie est mise à jour avec le nombre d'enregistrements reçus de la base de données SQL. NOTE : Valide uniquement après le succès d'une requête de lecture. Pour plus d'informations, reportez-vous également à la section Entrées et sorties communes (voir page 25). EIO0000002768 12/2019 65 Blocs fonction Définition d'un ARRAY de données utilisateur Un tableau ARRAY à double entrée doit être disponible sur le contrôleur pour stocker temporairement les données SQL lues dans la base de données. Le tableau ARRAY à double entrée est défini dans l'ALIAS UserData (voir page 47). La taille du tableau ARRAY peut être adaptée par les paramètres globaux (voir page 53) Gc_uiMaxRows, Gc_uiMaxColumns et Gc_uiTableWstringLength. Lorsque vous configurez ces paramètres, tenez compte du volume de données SQL que vous espérez recevoir. Avant le début du transfert, les données SQL sont segmentées en fonction de la taille de ce tampon. Si les données SQL reçues dépassent la taille du tableau ARRAY, le transfert des données SQL s'interrompt et le bloc fonction signale une erreur. NOTE : Même si l'application exécute uniquement des requêtes d'écriture, un tableau à deux entrées valide doit être connecté au bloc fonction. Sinon, un problème de compilation se produit. 66 EIO0000002768 12/2019 EcoStruxure Machine Expert Fonctions EIO0000002768 12/2019 Chapitre 10 Fonctions Fonctions FC_EtResultToString Présentation Type : Fonction Disponible à partir de la version : V1.0.0.0 Hérite de : – Met en œuvre : – Tâche Convertir un élément d'énumération de type ET_Result en une variable de type STRING. Description fonctionnelle La fonction FC_EtResultToString permet de convertir un élément d'énumération de type ET_Result en une variable de type STRING. Interface Entrée Type de données Description i_etResult ET_Result Énumération avec le résultat. Valeur retournée Type de données Description STRING(80) ET_Result converti en texte. Si i_etResult est indéterminable, la valeur de retour est : Unknown Result: <Value of the input i_etResult> EIO0000002768 12/2019 67 Fonctions 68 EIO0000002768 12/2019 EcoStruxure Machine Expert Glossaire EIO0000002768 12/2019 Glossaire S SQL Le SQL (Structured Query Language) est un langage de programmation qui permet de gérer les données stockées dans les systèmes de gestion de bases de données relationnelles (SGBDR). T TCP TLS Acronyme de transmission control protocol, protocole de contrôle de transmission. Protocole de couche de transport basé sur la connexion qui assure la transmission de données simultanée dans les deux sens. Le protocole TCP fait partie de la suite de protocoles TCP/IP. (Transport Layer Security) Protocole de transfert de données chiffrées. Successeur de SSL. EIO0000002768 12/2019 69 Glossaire 70 EIO0000002768 12/2019 EcoStruxure Machine Expert Index EIO0000002768 12/2019 Index A ALIAS - Type d'unité d'équipement (DUT), 47 B bibliothèques SqlRemoteAccess, 19 C communications SQL éléments à prendre en compte, 21 E entrées et sorties communes fonctionnement des blocs fonction avec l'entrée i_xEnable, i_xExecute, et i_xErrorQuit, 26 fonctionnement des blocs fonction avec l'entrée i_xExecute, 26 EIO0000002768 12/2019 ET_Result, 38 CertificateNotFound, 39 ClientNotConnected, 38 CommandExecutionIssue, 41 Connected, 38 Connecting, 38 ConnectionNameNotExisting, 41 ConnectionNotIdle, 40 ConnectionTimedOut, 38 DataBufferTooSmall, 39 DbConfigurationInvalid, 41 DbConnectionNameNull, 39 DbConnectionNotAvailable, 41 Disabled, 38 Disabling, 38 GplMaxColumnsExceedsLimits, 41 GplMaxRecBufferExceedsLimits, 41 GplMaxRequestExceedsLimits, 41 GplMaxRowsExceedsLimits, 40 GplMaxSendBufferExceedsLimits, 41 GplRequestWstringExceedsLimits, 41 GplTableWstringExceedsLimits, 41 InitTlsContextFailed, 39 InvalidIP, 38 InvalidPort, 40 InvalidRequestWstring, 40 InvalidSqlRequest, 40 InvalidUserDataWstring, 40 InvalidWstringNumber, 40 NoDataReturned, 40 NoQueryResultAvailable, 41 NotConnected, 40 Ok, 38 Processing, 38 SocketNotClosed, 40 SqlDatabaseBusy, 39 SqlGwInvalidLicense, 41 SqlGwProtocolError, 41 SqlGwToPlcCorruptedMessage, 39 SqlGwUnexpectedError, 42 TcpClientIssue, 38 71 Index TimeoutExpired, 39 TimeoutValueInvalid, 40 TransactionNumMismatch, 39 TransmissionNumMismatch, 40 ET_SqlRequest, 42 Read, 42 Write, 42 F FB_SqlDbRead, 58 FB_SqlDbRequest, 63 FB_SqlDbWrite, 61 FC_EtResultToString, 67 G GCL (liste des constantes globales) SqlRemoteAccess, 51 GPL (liste des paramètres globaux) SqlRemoteAccess, 53 S SqlRemoteAccess, 19 FB_SqlDbRead, 58 FB_SqlDbRequest, 63 FB_SqlDbWrite, 61 GCL (liste des constantes globales), 51 GPL (liste des paramètres globaux), 53 ST_ConnectionSettings, 44 ST_ExtendedConnectionSettings, 45 72 EIO0000002768 12/2019 EcoStruxure Machine Expert EIO0000002804 09/2020 EcoStruxure Machine Expert TcpUdpCommunication Guide de la bibliothèque EIO0000002804.02 09/2020 www.schneider-electric.com Le présent document comprend des descriptions générales et/ou des caractéristiques techniques des produits mentionnés. Il ne peut pas être utilisé pour définir ou déterminer l'adéquation ou la fiabilité de ces produits pour des applications utilisateur spécifiques. Il incombe à chaque utilisateur ou intégrateur de réaliser l'analyse de risques complète et appropriée, l'évaluation et le test des produits pour ce qui est de l'application à utiliser et de l'exécution de cette application. Ni la société Schneider Electric ni aucune de ses sociétés affiliées ou filiales ne peuvent être tenues pour responsables de la mauvaise utilisation des informations contenues dans le présent document. Si vous avez des suggestions, des améliorations ou des corrections à apporter à cette publication, veuillez nous en informer. Vous acceptez de ne pas reproduire, excepté pour votre propre usage à titre non commercial, tout ou partie de ce document et sur quelque support que ce soit sans l'accord écrit de Schneider Electric. Vous acceptez également de ne pas créer de liens hypertextes vers ce document ou son contenu. Schneider Electric ne concède aucun droit ni licence pour l'utilisation personnelle et non commerciale du document ou de son contenu, sinon une licence non exclusive pour une consultation « en l'état », à vos propres risques. Tous les autres droits sont réservés. Toutes les réglementations locales, régionales et nationales pertinentes doivent être respectées lors de l'installation et de l'utilisation de ce produit. Pour des raisons de sécurité et afin de garantir la conformité aux données système documentées, seul le fabricant est habilité à effectuer des réparations sur les composants. Lorsque des équipements sont utilisés pour des applications présentant des exigences techniques de sécurité, suivez les instructions appropriées. La non-utilisation du logiciel Schneider Electric ou d'un logiciel approuvé avec nos produits matériels peut entraîner des blessures, des dommages ou un fonctionnement incorrect. Le non-respect de cette consigne peut entraîner des lésions corporelles ou des dommages matériels. © 2020 Schneider Electric. Tous droits réservés. 2 EIO0000002804 09/2020 Table des matières Consignes de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . A propos de ce manuel. . . . . . . . . . . . . . . . . . . . . . . . . . Partie I Informations générales . . . . . . . . . . . . . . . . . . . . . . . Chapitre 1 Présentation de la bibliothèque . . . . . . . . . . . . . . . . . . . Informations générales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 2 Entrées et sorties communes . . . . . . . . . . . . . . . . . . . . . Fonctionnement des blocs fonction avec l'entrée i_xEnable et i_xExecute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Partie II Énumérations et Structures . . . . . . . . . . . . . . . . . . . Chapitre 3 Énumérations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ET_CertVerifyMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ET_Result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ET_State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ET_TlsProtocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 4 Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ST_ClientConnection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ST_ClientConnection2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ST_DefaultSocketOptionsTCPClient . . . . . . . . . . . . . . . . . . . . ST_DefaultSocketOptionsTCPServer . . . . . . . . . . . . . . . . . . . . ST_DefaultSocketOptionsUDPPeer . . . . . . . . . . . . . . . . . . . . . . ST_DnsAdressInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ST_TlsSettingsClient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ST_TlsSettingsServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Partie III Variables globales . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 5 Liste des paramètres globaux. . . . . . . . . . . . . . . . . . . . . GPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 6 Liste de variables globales . . . . . . . . . . . . . . . . . . . . . . . GVL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Partie IV Unités d'organisation de programme (POU). . . . . . . Chapitre 7 Blocs fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1 EIO0000002804 09/2020 Présentation du TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Communication TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 13 19 21 21 25 25 27 29 30 31 35 36 37 38 39 40 42 44 46 47 48 49 51 51 53 53 55 57 58 58 3 7.2 7.3 4 TCP Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FB_TCPClient/FB_TCPClient2 . . . . . . . . . . . . . . . . . . . . . . . . . . . Propriétés de FB_TCPClient/FB_TCPClient2. . . . . . . . . . . . . . . . Méthodes de FB_TCPClient/FB_TCPClient2 . . . . . . . . . . . . . . . . Méthode Close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Méthode Connect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Méthode ConnectTls. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Méthode GetBoundIPAddress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Méthode GetBoundPort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Méthode Peek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Méthode Receive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Méthode ReceiveOutOfBand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Méthode ResetByteCounters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Méthode ResetResult . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Méthode Send . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Méthode SendOutOfBand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Méthode Shutdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Serveur TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FB_TCPServer/FB_TCPServer2 . . . . . . . . . . . . . . . . . . . . . . . . . . . Propriétés de FB_TCPServer/FB_TCPServer2. . . . . . . . . . . . . . . . Méthodes de FB_TCPServer/FB_TCPServer2 . . . . . . . . . . . . . . . . Méthode Accept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Méthode CheckClients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Méthode Close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Méthode DisconnectAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Méthode DisconnectClient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Méthode GetBoundIPAddress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Méthode GetBoundPort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Méthode Open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Méthode OpenTls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Méthode PeekFromFirstAvailableClient . . . . . . . . . . . . . . . . . Méthode PeekFromSpecificClient. . . . . . . . . . . . . . . . . . . . . . . . Méthode ReceiveFromFirstAvailableClient . . . . . . . . . . . . . . Méthode ReceiveFromSpecificClient . . . . . . . . . . . . . . . . . . . . Méthode ReceiveOutOfBandFromFirstAvailableClient . . . . Méthode ReceiveOutOfBandFromSpecificClient. . . . . . . . . . . Méthode ResetByteCounters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Méthode ResetResult . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 60 63 65 66 67 69 71 71 73 75 78 80 81 82 86 88 89 90 94 97 98 100 101 102 103 104 105 106 108 110 112 114 116 118 120 122 122 EIO0000002804 09/2020 7.4 7.5 Méthode SendOutOfBandToAll. . . . . . . . . . . . . . . . . . . . . . . . . . . . Méthode SendOutOfBandToSpecificClient . . . . . . . . . . . . . . . . Méthode SendToAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Méthode SendToSpecificClient . . . . . . . . . . . . . . . . . . . . . . . . . UDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Communication UDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FB_UDPPeer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Propriétés de FB_UDPPeer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Méthodes de FB_UDPPeer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FB_UDPPeer - Méthode Bind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FB_UDPPeer - Méthode Close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FB_UDPPeer - Méthode GetBoundIPAddress . . . . . . . . . . . . . . . . FB_UDPPeer - Méthode GetBoundPort . . . . . . . . . . . . . . . . . . . . . . FB_UDPPeer - Méthode LeaveMulticastGroup . . . . . . . . . . . . . . FB_UDPPeer - Méthode JoinMulticastGroup . . . . . . . . . . . . . . . FB_UDPPeer - Méthode Open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FB_UDPPeer - Méthode ReceiveFrom . . . . . . . . . . . . . . . . . . . . . . . FB_UDPPeer - Méthode ResetByteCounters . . . . . . . . . . . . . . . . FB_UDPPeer - Méthode ResetResult . . . . . . . . . . . . . . . . . . . . . . . FB_UDPPeer - Méthode SendTo . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utils - FB_DnsClient. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FB_DnsClient. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 8 Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1 8.2 EIO0000002804 09/2020 Types de données (EnumToStringConverters) . . . . . . . . . . . . . . . . . . FC_EtCertVerifyModeToString . . . . . . . . . . . . . . . . . . . . . . . . . FC_EtResultToString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FC_EtStateToString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FC_EtTlsProtocolToString. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FC_GetSubNetBroadcastAddr. . . . . . . . . . . . . . . . . . . . . . . . . . . . FC_InetAddrDWORDtoString. . . . . . . . . . . . . . . . . . . . . . . . . . . . . FC_InetAddrStringtoDWORD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . FC_IsMulticastIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FC_IsValidIP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FC_ReadSTRING. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FC_WriteSTRING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 124 126 127 129 130 131 136 138 139 141 142 142 144 145 146 147 149 149 150 151 151 155 156 157 158 159 160 161 162 163 164 165 166 167 169 5 8.3 Utils (Byteorder) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FC_Read<Data type> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FC_Write<Data type> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Glossaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 171 172 174 177 181 EIO0000002804 09/2020 Consignes de sécurité Informations importantes AVIS Lisez attentivement ces instructions et examinez le matériel pour vous familiariser avec l'appareil avant de tenter de l'installer, de le faire fonctionner, de le réparer ou d'assurer sa maintenance. Les messages spéciaux suivants que vous trouverez dans cette documentation ou sur l'appareil ont pour but de vous mettre en garde contre des risques potentiels ou d'attirer votre attention sur des informations qui clarifient ou simplifient une procédure. EIO0000002804 09/2020 7 REMARQUE IMPORTANTE L'installation, l'utilisation, la réparation et la maintenance des équipements électriques doivent être assurées par du personnel qualifié uniquement. Schneider Electric décline toute responsabilité quant aux conséquences de l'utilisation de ce matériel. Une personne qualifiée est une personne disposant de compétences et de connaissances dans le domaine de la construction, du fonctionnement et de l'installation des équipements électriques, et ayant suivi une formation en sécurité leur permettant d'identifier et d'éviter les risques encourus. QUALIFICATION DU PERSONNEL Une personne qualifiée est une personne qui a les qualifications suivantes : Compétences et connaissances liées à la construction et à l'exploitation d'équipements électriques et à l'installation. Connaissances et expérience en programmation de contrôle industriel. A reçu une formation en sécurité permettant de reconnaître et d'éviter les dangers potentiels. La personne qualifiée doit être capable de détecter d'éventuels dangers qui pourraient découler du paramétrage, de modifications des valeurs de paramétrage et plus généralement des équipements mécaniques, électriques ou électroniques. La personne qualifiée doit connaître les normes, dispositions et régulations liées à la prévention des accidents de travail, et doit les observer lors de la conception et de l'implémentation du système. INSTRUCTIONS D'UTILISATION Ce produit est une bibliothèque à utiliser avec un système de commande et des servoamplificateurs. La bibliothèque n'est conçue qu'en vue d'une utilisation telle que décrite dans la présente documentation, appliquée au secteur industriel. Observez en permanence les instructions applicables liées à la sécurité, les conditions spécifiques et les données techniques. Réalisez une analyse des risques en rapport avec l'utilisation spécifique avant d'utiliser ce produit. Prenez les mesures de sécurité qui découlent des résultats. Étant donné que ce produit est utilisé au sein d'un système qui l'englobe, vous devez assurer la sécurité du personnel par la conception même du système global (la conception de la machine, par exemple). Aucune autre utilisation n'est prévue. Toute autre utilisation pourrait être dangereuse. AVANT DE COMMENCER N'utilisez pas ce produit sur les machines non pourvues de protection efficace du point de fonctionnement. L'absence de ce type de protection sur une machine présente un risque de blessures graves pour l'opérateur. 8 EIO0000002804 09/2020 AVERTISSEMENT EQUIPEMENT NON PROTEGE N'utilisez pas ce logiciel ni les automatismes associés sur des appareils non équipés de protection du point de fonctionnement. N'accédez pas aux machines pendant leur fonctionnement. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Cet automatisme et le logiciel associé permettent de commander des processus industriels divers. Le type ou le modèle d'automatisme approprié pour chaque application dépendra de facteurs tels que la fonction de commande requise, le degré de protection exigé, les méthodes de production, des conditions inhabituelles, la législation, etc. Dans certaines applications, plusieurs processeurs seront nécessaires, notamment lorsque la redondance de sauvegarde est requise. Vous seul, en tant que constructeur de machine ou intégrateur de système, pouvez connaître toutes les conditions et facteurs présents lors de la configuration, de l'exploitation et de la maintenance de la machine, et êtes donc en mesure de déterminer les équipements automatisés, ainsi que les sécurités et verrouillages associés qui peuvent être utilisés correctement. Lors du choix de l'automatisme et du système de commande, ainsi que du logiciel associé pour une application particulière, vous devez respecter les normes et réglementations locales et nationales en vigueur. Le document National Safety Council's Accident Prevention Manual (reconnu aux Etats-Unis) fournit également de nombreuses informations utiles. Dans certaines applications, telles que les machines d'emballage, une protection supplémentaire, comme celle du point de fonctionnement, doit être fournie pour l'opérateur. Elle est nécessaire si les mains ou d'autres parties du corps de l'opérateur peuvent entrer dans la zone de point de pincement ou d'autres zones dangereuses, risquant ainsi de provoquer des blessures graves. Les produits logiciels seuls, ne peuvent en aucun cas protéger les opérateurs contre d'éventuelles blessures. C'est pourquoi le logiciel ne doit pas remplacer la protection de point de fonctionnement ou s'y substituer. Avant de mettre l'équipement en service, assurez-vous que les dispositifs de sécurité et de verrouillage mécaniques et/ou électriques appropriés liés à la protection du point de fonctionnement ont été installés et sont opérationnels. Tous les dispositifs de sécurité et de verrouillage liés à la protection du point de fonctionnement doivent être coordonnés avec la programmation des équipements et logiciels d'automatisation associés. NOTE : La coordination des dispositifs de sécurité et de verrouillage mécaniques/électriques du point de fonctionnement n'entre pas dans le cadre de cette bibliothèque de blocs fonction, du Guide utilisateur système ou de toute autre mise en œuvre référencée dans la documentation. EIO0000002804 09/2020 9 DEMARRAGE ET TEST Avant toute utilisation de l'équipement de commande électrique et des automatismes en vue d'un fonctionnement normal après installation, un technicien qualifié doit procéder à un test de démarrage afin de vérifier que l'équipement fonctionne correctement. Il est essentiel de planifier une telle vérification et d'accorder suffisamment de temps pour la réalisation de ce test dans sa totalité. AVERTISSEMENT RISQUES INHERENTS AU FONCTIONNEMENT DE L'EQUIPEMENT Assurez-vous que toutes les procédures d'installation et de configuration ont été respectées. Avant de réaliser les tests de fonctionnement, retirez tous les blocs ou autres cales temporaires utilisés pour le transport de tous les dispositifs composant le système. Enlevez les outils, les instruments de mesure et les débris éventuels présents sur l'équipement. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Effectuez tous les tests de démarrage recommandés dans la documentation de l'équipement. Conservez toute la documentation de l'équipement pour référence ultérieure. Les tests logiciels doivent être réalisés à la fois en environnement simulé et réel. Vérifiez que le système entier est exempt de tout court-circuit et mise à la terre temporaire non installée conformément aux réglementations locales (conformément au National Electrical Code des Etats-Unis, par exemple). Si des tests diélectriques sont nécessaires, suivez les recommandations figurant dans la documentation de l'équipement afin d'éviter de l'endommager accidentellement. Avant de mettre l'équipement sous tension : Enlevez les outils, les instruments de mesure et les débris éventuels présents sur l'équipement. Fermez le capot du boîtier de l'équipement. Retirez toutes les mises à la terre temporaires des câbles d'alimentation entrants. Effectuez tous les tests de démarrage recommandés par le fabricant. 10 EIO0000002804 09/2020 FONCTIONNEMENT ET REGLAGES Les précautions suivantes sont extraites du document NEMA Standards Publication ICS 7.1-1995 (la version anglaise prévaut) : Malgré le soin apporté à la conception et à la fabrication de l'équipement ou au choix et à l'évaluation des composants, des risques subsistent en cas d'utilisation inappropriée de l'équipement. Il arrive parfois que l'équipement soit déréglé accidentellement, entraînant ainsi un fonctionnement non satisfaisant ou non sécurisé. Respectez toujours les instructions du fabricant pour effectuer les réglages fonctionnels. Les personnes ayant accès à ces réglages doivent connaître les instructions du fabricant de l'équipement et les machines utilisées avec l'équipement électrique. Seuls ces réglages fonctionnels, requis par l'opérateur, doivent lui être accessibles. L'accès aux autres commandes doit être limité afin d'empêcher les changements non autorisés des caractéristiques de fonctionnement. EIO0000002804 09/2020 11 12 EIO0000002804 09/2020 A propos de ce manuel Présentation Objectif du document Ce document décrit la bibliothèque TcpUdpCommunication. La bibliothèque offre les principales fonctionnalités nécessaires à la mise en œuvre de protocoles de communication réseau par sockets reposant sur un client et un serveur TCP (Transmission Control Protocol), ou UDP (User Datagram Protocol) pour la diffusion et la multidiffusion, par exemple (si pris en charge par la plate-forme). Seules les communications IPv4 via les ports Ethernet du contrôleur sont prises en charge. Champ d'application Ce document a été actualisé pour le lancement d’EcoStruxureTM Machine Expert V1.2.5. Les caractéristiques techniques des équipements décrits dans ce document sont également fournies en ligne. Pour accéder à ces informations en ligne : Etape Action 1 Accédez à la page d'accueil de Schneider Electric www.schneider-electric.com. 2 Dans la zone Search, saisissez la référence d'un produit ou le nom d'une gamme de produits. N'insérez pas d'espaces dans la référence ou la gamme de produits. Pour obtenir des informations sur un ensemble de modules similaires, utilisez des astérisques (*). 3 Si vous avez saisi une référence, accédez aux résultats de recherche Product Datasheets et cliquez sur la référence qui vous intéresse. Si vous avez saisi une gamme de produits, accédez aux résultats de recherche Product Ranges et cliquez sur la gamme de produits qui vous intéresse. 4 Si plusieurs références s'affichent dans les résultats de recherche Products, cliquez sur la référence qui vous intéresse. 5 Selon la taille de l'écran, vous serez peut-être amené à faire défiler la page pour consulter la fiche technique. 6 Pour enregistrer ou imprimer une fiche technique au format .pdf, cliquez sur Download XXX product datasheet. Les caractéristiques présentées dans ce document devraient être identiques à celles fournies en ligne. Toutefois, en application de notre politique d'amélioration continue, nous pouvons être amenés à réviser le contenu du document afin de le rendre plus clair et plus précis. Si vous constatez une différence entre le document et les informations fournies en ligne, utilisez ces dernières en priorité. EIO0000002804 09/2020 13 Information spécifique au produit AVERTISSEMENT PERTE DE CONTROLE Le concepteur d'un système de commande doit envisager les modes de défaillance possibles des chemins de commande et, pour certaines fonctions de commande critiques, prévoir un moyen d'atteindre un état sécurisé en cas de défaillance d'un chemin, et après cette défaillance. Par exemple, l'arrêt d'urgence, l'arrêt en cas de surcourse, la coupure de courant et le redémarrage sont des fonctions de contrôle cruciales. Des canaux de commande séparés ou redondants doivent être prévus pour les fonctions de commande critique. Les liaisons de communication peuvent faire partie des canaux de commande du système. Soyez particulièrement attentif aux implications des retards de transmission imprévus ou des pannes de liaison. Respectez toutes les réglementations de prévention des accidents ainsi que les consignes de sécurité locales.1 Chaque implémentation de cet équipement doit être testée individuellement et entièrement pour s'assurer du fonctionnement correct avant la mise en service. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. 1 Pour plus d'informations, consultez les documents suivants ou leurs équivalents pour votre site d'installation : NEMA ICS 1.1 (dernière édition), « Safety Guidelines for the Application, Installation, and Maintenance of Solid State Control » (Directives de sécurité pour l'application, l'installation et la maintenance de commande statique) et NEMA ICS 7.1 (dernière édition), « Safety Standards for Construction and Guide for Selection, Installation, and Operation of Adjustable-Speed Drive Systems » (Normes de sécurité relatives à la construction et manuel de sélection, d'installation et d'exploitation de variateurs de vitesse). Avant de tenter de fournir une solution (machine ou processus) pour une application spécifique en utilisant les POU trouvés dans la bibliothèque, vous devez tenir compte de la réalisation et de l'exécution des bonnes pratiques. La liste non exhaustive de ces pratiques liées à cette bibliothèque inclut l'analyse des risques, la sécurité fonctionnelle, la compatibilité des composants, les tests et la validation du système. 14 EIO0000002804 09/2020 AVERTISSEMENT UTILISATION INCORRECTE DES UNITES ORGANISATIONNELLES DU PROGRAMME Effectuez une analyse de la sécurité de l'application et des équipements installés. Vérifiez que les POU sont compatibles avec les équipements du système et n'ont pas d'effets inattendus sur le bon fonctionnement du système. Utilisez les paramètres appropriés, notamment les valeurs limites, et observez l'usure de la machine et son fonctionnement à l'arrêt. Vérifiez que les capteurs et déclencheurs sont compatibles avec les POU sélectionnés. Testez de manière approfondie toutes les fonctions durant la vérification et la mise en service dans tous les modes de fonctionnement. Indiquez des méthodes indépendantes pour les fonctions de commande critiques (arrêt d'urgence, conditions de dépassement des valeurs limites, etc.) en fonction d'une analyse de la sécurité, des règles correspondantes et des réglementations. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Les transferts incomplets, qu'il s'agisse de fichiers de données, d'application et/ou de micrologiciel, peuvent avoir des conséquences graves sur votre machine ou votre contrôleur. En cas coupure de courant (volontaire ou non) ou d'interruption de la communication pendant un transfert de fichier, votre machine peut devenir inopérante ou votre application peut tenter d'utiliser un fichier de données endommagé. En cas d'interruption, relancez le transfert. Veillez à inclure l'impact des fichiers de données endommagés dans votre analyse des risques. AVERTISSEMENT FONCTIONNEMENT IMPRÉVU DE L'ÉQUIPEMENT, PERTE DE DONNÉES OU FICHIER ENDOMMAGÉ N'interrompez pas un transfert de données en cours. Si le transfert est interrompu pour une raison quelconque, relancez-le. Ne mettez pas votre machine en service tant que le transfert de fichier n'est pas terminé, sauf si vous avez pris en compte les fichiers endommagés dans votre analyse des risques et si vous avez mis en place des mesures appropriées pour prévenir les conséquences potentiellement graves dues à des échecs de transfert. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. EIO0000002804 09/2020 15 Documents à consulter Titre du document Référence EcoStruxure Machine Expert - Fonctions et bibliothèques - Guide de l'utilisateur EIO0000002829 (ENG) ; EIO0000002830 (FRE) ; EIO0000002831 (GER) ; EIO0000002832 (ITA) ; EIO0000002833 (SPA) ; EIO0000002834 (CHS) ; Terminologie utilisée dans les normes Les termes techniques, la terminologie, les symboles et les descriptions correspondantes employés dans ce manuel ou figurant dans ou sur les produits proviennent généralement des normes internationales. Dans les domaines des systèmes de sécurité fonctionnelle, des variateurs et de l'automatisme en général, les termes employés sont sécurité, fonction de sécurité, état sécurisé, défaut, réinitialisation du défaut, dysfonctionnement, panne, erreur, message d'erreur, dangereux, etc. Entre autres, les normes concernées sont les suivantes : 16 Norme Description IEC 61131-2:2007 Automates programmables - Partie 2 : exigences et essais des équipements ISO 13849-1:2015 Sécurité des machines : parties des systèmes de commande relatives à la sécurité. Principes généraux de conception EN 61496-1:2013 Sécurité des machines : équipements de protection électro-sensibles. Partie 1 : Prescriptions générales et essais ISO 12100:2010 Sécurité des machines - Principes généraux de conception - Appréciation du risque et réduction du risque EN 60204-1:2006 Sécurité des machines - Équipement électrique des machines - Partie 1 : règles générales ISO 14119:2013 Sécurité des machines - Dispositifs de verrouillage associés à des protecteurs - Principes de conception et de choix ISO 13850:2015 Sécurité des machines - Fonction d'arrêt d'urgence - Principes de conception IEC 62061:2015 Sécurité des machines - Sécurité fonctionnelle des systèmes de commande électrique, électronique et électronique programmable relatifs à la sécurité IEC 61508-1:2010 Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité : prescriptions générales. IEC 61508-2:2010 Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité : exigences pour les systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité. IEC 61508-3:2010 Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité : exigences concernant les logiciels. EIO0000002804 09/2020 Norme Description IEC 61784-3:2016 Réseaux de communication industriels - Profils - Partie 3 : Bus de terrain de sécurité fonctionnelle - Règles générales et définitions de profils. 2006/42/EC Directive Machines 2014/30/EU Directive sur la compatibilité électromagnétique 2014/35/EU Directive sur les basses tensions De plus, des termes peuvent être utilisés dans le présent document car ils proviennent d'autres normes telles que : Norme Description Série IEC 60034 Machines électriques rotatives Série IEC 61800 Entraînements électriques de puissance à vitesse variable Série IEC 61158 Communications numériques pour les systèmes de mesure et de commande – Bus de terrain utilisés dans les systèmes de commande industriels Enfin, le terme zone de fonctionnement utilisé dans le contexte de la description de dangers spécifiques a la même signification que les termes zone dangereuse ou zone de danger employés dans la directive Machines (2006/42/EC) et la norme ISO 12100:2010. NOTE : Les normes susmentionnées peuvent s'appliquer ou pas aux produits cités dans la présente documentation. Pour plus d'informations sur chacune des normes applicables aux produits décrits dans le présent document, consultez les tableaux de caractéristiques de ces références de produit. EIO0000002804 09/2020 17 18 EIO0000002804 09/2020 EcoStruxure Machine Expert Informations générales EIO0000002804 09/2020 Partie I Informations générales Informations générales Contenu de cette partie Cette partie contient les chapitres suivants : Chapitre Titre du chapitre Page 1 Présentation de la bibliothèque 21 2 Entrées et sorties communes 25 EIO0000002804 09/2020 19 Informations générales 20 EIO0000002804 09/2020 EcoStruxure Machine Expert Description EIO0000002804 09/2020 Chapitre 1 Présentation de la bibliothèque Présentation de la bibliothèque Informations générales Présentation de la bibliothèque La bibliothèque offre les principales fonctionnalités nécessaires à la mise en œuvre de protocoles de communication réseau par sockets reposant sur un client et un serveur TCP(Transmission Control Protocol), ou UDP (User Datagram Protocol) pour la diffusion et la multidiffusion, par exemple (si pris en charge par la plate-forme). Seules les communications IPv4 via les ports Ethernet du contrôleur sont prises en charge. Vous devez mettre en place le protocole d'application utilisé sur le site distant (qui correspond à du matériel, comme des lecteurs de code-barres, des caméras, des robots industriels, ou à des systèmes informatiques exécutant des logiciels de type serveur de bases de données, par exemple). L'interface utilisateur de la bibliothèque est dérivée de mises en œuvre de sockets de type BSD semblables à celles servant pour la programmation d'applications de communication sous UNIX ou Microsoft Windows. Les principales fonctions utilisées sont les suivantes : Open/Bind/Connect pour initialiser la communication Accept pour accepter les connexions TCP entrantes en cas de recours à un serveur TCP Close / Disconnect / Shutdown pour terminer la communication Send/SendTo pour transmettre des données aux systèmes distants Receive/ReceiveFrom pour traiter les données envoyées par les systèmes distants SocketOptions pour définir le comportement de la communication au bas niveau Pour cette bibliothèque, nous avons privilégié une approche orientée objets dans l'optique d'obtenir un programme d'application parfaitement ordonné. Par conséquent, les fonctions présentées ci-dessus sont disponibles en tant que méthodes et propriétés des blocs fonction correspondants décrits au chapitre Unités d'organisation de programme (POU) (voir page 55). EIO0000002804 09/2020 21 Description Caractéristiques de la bibliothèque Le tableau suivant indique les caractéristiques de la bibliothèque : Caractéristique Valeur Titre de la bibliothèque TcpUdpCommunication Société Schneider Electric Catégorie Communication Composant Core Libraries Espace de noms par défaut TCPUDP Attribut du modèle de langage qualified-access-only (voir EcoStruxure Machine Bibliothèque post-compatible Oui (FCL (voir EcoStruxure Machine Expert, Expert, Fonctions et bibliothèques - Guide de l'utilisateur) Fonctions et bibliothèques - Guide de l'utilisateur)) NOTE : Cette bibliothèque est paramétrée en Uniquement accès qualifié (qualified-access-only). Cela signifie que l'on ne peut accéder aux POU, aux structures de données, aux énumérations, et aux constantes qu'en utilisant l'espace de noms de la bibliothèque. L'espace de noms par défaut de la bibliothèque est TCPUDP. Exemple de projet Avec la bibliothèque est fourni l'exemple de projet Exemple de communication TCP & UDP. Le projet d'exemple montre comment mettre en œuvre un échange de données entre deux contrôleurs via le réseau Ethernet en utilisant la bibliothèque TcpUdpCommunication. L'exemple de projet est installé sur votre PC avec le logiciel de programmation. Pour ouvrir l’exemple de projet, procédez comme suit : Etape 22 Action Commentaire 1 Dans EcoStruxure Machine Expert Logic Builder, exécutez la commande Nouveau projet. – 2 Dans la boîte de dialogue Nouveau projet, sélectionnez A partir de l’exemple dans la liste Type de projet. – 3 Sur la droite de la boîte de dialogue Nouveau Résultat : les exemples disponibles sont projet, sélectionnez le contrôleur(1) dans la liste répertoriés dans la zone de texte Exemples correspondants. Contrôleur. 4 Sélectionnez l’exemple dans la liste Exemples correspondants. – 5 Entrez le nom du nouveau projet et sélectionnez l’emplacement du fichier. – EIO0000002804 09/2020 Description Etape 6 (1) Action Commentaire Cliquez sur le bouton OK. Résultat : un nouveau projet est créé en fonction de l’exemple sélectionné. PacDrive LMC Pro/Pro2, TM251MESE, TM262M25MESS8T. Remarques générales Seules les adresses IP de type IPv4 sont prises en charge pour les fonctions de communication fournies avec cette bibliothèque. Les bibliothèques TcpUdpCommunication (Schneider Electric) et CAA Net Base Services (CAA Technical Workgroup) utilisent les mêmes ressources système sur le contrôleur. Leur utilisation simultanée dans la même application peut perturber le fonctionnement du contrôleur. AVERTISSEMENT COMPORTEMENT INATTENDU DE L'EQUIPEMENT N'utilisez pas la bibliothèque TcpUdpCommunication (Schneider Electric) avec la bibliothèque CAA Net Base Services (CAA Technical Workgroup) simultanément dans la même application. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. NOTE : Schneider Electric respecte les bonnes pratiques de l'industrie, en vigueur dans le développement et la mise en œuvre des systèmes de contrôle. Cette approche, dite de « défense en profondeur », permet de sécuriser les systèmes de contrôle industriels. Elle place les contrôleurs derrière des pare-feu pour restreindre leur accès aux seuls personnels et protocoles autorisés. EIO0000002804 09/2020 23 Description AVERTISSEMENT ACCÈS NON AUTHENTIFIÉ ET UTILISATION NON AUTORISÉE DE LA MACHINE Estimer si votre environnement ou vos machines sont connecté(e)s à votre infrastructure vitale et, le cas échéant, prendre les mesures nécessaires de prévention, basées sur le principe de défense en profondeur, avant de connecter le système d'automatisme à un réseau quelconque. Limiter au strict nécessaire le nombre d'équipements connectés à un réseau. Isoler votre réseau industriel des autres réseaux au sein de votre société. Protéger chaque réseau contre les accès non autorisés à l'aide d'un pare-feu, d'un VPN ou d'autres mesures de sécurité éprouvées. Surveiller les activités au sein de votre système. Empêcher tout accès direct ou liaison directe aux équipements sensibles par des utilisateurs non autorisés ou des actions non authentifiées. Préparer un plan de récupération intégrant la sauvegarde des informations de votre système et de votre processus. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. 24 EIO0000002804 09/2020 EcoStruxure Machine Expert Entrées et sorties communes EIO0000002804 09/2020 Chapitre 2 Entrées et sorties communes Entrées et sorties communes Fonctionnement des blocs fonction avec l'entrée i_xEnable et i_xExecute Informations générales En configurant l’entrée i_xEnable sur TRUE, le bloc fonction lance le processus d’activation. Le bloc fonction poursuit l’initialisation et la sortie q_xActive est définie sur TRUE. Une fois l’initialisation terminée et le bloc fonction prêt, la sortie q_xReady est définie sur TRUE. Un front montant sur l'entrée i_xExecute lance l'exécution du bloc fonction. Le bloc fonction poursuit son exécution et la sortie q_xBusy prend la valeur TRUE. Un front montant sur l'entrée i_xExecute est ignoré pendant l'exécution du bloc fonction. Une fois l'exécution terminée, les sorties q_xDone ou q_xError sont définies en fonction du résultat. La sortie q_xDone indique une exécution réussie et elle garde la valeur TRUE jusqu'au front montant de l'entrée i_xExecute. Si q_xError indique TRUE, une erreur a été détectée durant l'exécution. Une nouvelle exécution du bloc fonction est impossible tant que l'état d'erreur est présent. Le bloc fonction doit être désactivé afin de réinitialiser l'état d'erreur. En configurant l’entrée i_xEnable sur FALSE, le bloc fonction lance le processus de désactivation. L’appel du bloc fonction continue tant que la sortie q_xActive est égale à TRUE. EIO0000002804 09/2020 25 Entrées et sorties communes Exemple 26 EIO0000002804 09/2020 EcoStruxure Machine Expert Énumérations et Structures EIO0000002804 09/2020 Partie II Énumérations et Structures Énumérations et Structures Contenu de cette partie Cette partie contient les chapitres suivants : Chapitre Titre du chapitre Page 3 Énumérations 29 4 Structures 37 EIO0000002804 09/2020 27 Énumérations et Structures 28 EIO0000002804 09/2020 EcoStruxure Machine Expert Énumérations EIO0000002804 09/2020 Chapitre 3 Énumérations Énumérations Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page ET_CertVerifyMode 30 ET_Result 31 ET_State 35 ET_TlsProtocol 36 EIO0000002804 09/2020 29 Énumérations ET_CertVerifyMode Présentation Type : Énumération Disponible à partir de : V1.0.4.0 Description L'énumération ET_CertVerifyMode est utilisée pour définir le mode de la vérification de certificat pour les connexions TCP/IP en utilisant TLS (Transport Layer Security). Dans le contexte de TLS, les certificats peuvent être utilisés pour vérifier l'identité des partenaires de communication. Les certificats sont envoyés durant l'établissement d'une connexion (transfert TLS). L'envoi des certificats durant le transfert TLS est facultatif, mais si le partenaire de communication requiert un certificat, son envoi est obligatoire. Uniquement si le résultat de la vérification du certificat est positif une connexion avec le partenaire de communication peut être établie. Si le client ou le serveur est configuré pour vérifier le certificat du serveur en mode TrustedOnly, il est nécessaire de gérer les certificats sur votre contrôleur de façon manuelle. Cela peut être effectué en utilisant l'éditeur Écran Securitydans Machine Expert Logic Builder. NOTE : TrustedOnly est la seule façon de vérifier l'identité du partenaire de communication. Éléments d'énumération Nom Valeur Description NotVerified 1 Aucune vérification du certificat, les homologues sont acceptés même sans l'envoi de certificat. Ce paramètre est utilisé pour le serveur par défaut car la plupart des clients ne fournissent pas de certificat. AllCertificat es 4 Un certificat par homologue est obligatoire mais il peut être non défini. Chaque certificat est considéré comme approuvé. TrustedOnly 6 Un certificat par homologue est obligatoire et doit être connu et marqué comme approuvé. Pour plus d'informations sur la gestion des certificats sur le contrôleur, consultez Comment gérer les certificats sur le contrôleur - Guide utilisateur. Utilisé par 30 FB_TCPClient2 FB_TCPServer2 FC_CertVerifyModeToString EIO0000002804 09/2020 Énumérations ET_Result Présentation Type : Énumération Disponible à partir de : V1.0.9.0 Description L'énumération ET_Result contient les valeurs possibles qui donnent les résultats des opérations exécutées par le bloc fonction. Éléments d'énumération Les valeurs 0 à 99 sont utilisées pour indiquer le résultat des opérations exécutées par les blocs fonction FB_TCPClient/FB_TCPClient2, FB_TCPServer/FB_TCPServer2 et FB_UDPPeer. Nom Valeur Description Ok 0 L'opération a abouti. Failed 1 L'opération n'a pas abouti. NotReady 10 L'opération demandée ne peut pas être exécutée dans l'état en cours ou la propriété Result était différente de Ok avant l'appel de la fonction. NotSupported 11 L'opération demandée n'est pas prise en charge par ce contrôleur. AddressInUse 12 L'adresse de port demandée est déjà utilisée. AddressNotAvailable 13 L'adresse IP demandée n'est pas disponible car elle n'est configurée sur aucune interface Ethernet. InputOutOfRange 20 La valeur se situe hors de la plage valide. ReceiveBufferSizeOutOfRa nge 21 La valeur de l'entrée indiquant la taille du tampon de réception se situe hors de la plage valide. NumBytesToSendOutOfRange 22 La valeur de l'entrée indiquant le nombre d'octets à envoyer se situe hors de la plage valide. FillLevelOutOfRange 23 La valeur de l'entrée indiquant le niveau de remplissage du tampon se situe hors de la plage valide. TooMuchOOBData 24 La quantité de données demandée dépasse la limite maximale autorisée (égale à 1 octet de données OutOfBand). InvalidBufferAddress 25 L'adresse du tampon n'est pas valide. InvalidIP 26 L'adresse IP indiquée n'est pas valide. EIO0000002804 09/2020 31 Énumérations Nom Valeur Description InvalidMulticastIP 27 L'adresse IP indiquée n'est pas valide ou n'est pas comprise dans la plage d'adresses multidiffusion. NoSuchClient 28 Le client indiqué n'a pas pu être trouvé, car il n'est pas connecté au serveur TCP. ClosedByPeer 40 L'opération demandée ne peut pas être exécutée, car la connexion a déjà été fermée par le site distant. ConnectionTimedOut 41 Le délai d'établissement d'une connexion a expiré, car le système distant n'est pas disponible ou ne répond pas à la requête. ConnectionRefused 42 La tentative d'établissement d'une connexion a échoué, car elle a été refusée par le système distant. NotEnoughResources 50 L'opération demandée n'a pas pu être exécutée, car le nombre de ressources internes disponibles pouvant être configurées est insuffisant. Réduisez la quantité de données par appel. SocketManagementListTooS mall 51 Le socket n'a pas pu être ouvert, car la taille de la liste interne de gestion des sockets est insuffisante. Fermez un socket déjà ouvert ou augmentez la valeur de Gc_uiSocketManagementListSize dans la liste de paramètres globaux (GPL). ClientListTooSmall 52 Le serveur TCP ne peut plus accepter d'autres clients. Déconnectez un client ou augmentez la valeur de Gc_uiTCPServerMaxConnections dans la liste de paramètres globaux (GPL). SendToAllSizeTooSmall 53 Le nombre d'octets à envoyer dépasse la limite autorisée. Réduisez la quantité de données à envoyer ou augmentez la valeur de Gc_udiTCPServerMaxSendToAllSize dans la liste de paramètres globaux (GPL). BufferFull 54 Le tampon d'envoi de la pile TCP est plein, aucune donnée ne peut être copiée. Augmentez la taille du tampon d'envoi en utilisant l'option de socket correspondante ou effectuez à nouveau l'envoi ultérieurement. CertificateNotFound 56 Le certificat n'a pas été trouvé dans le magasin de certificat du contrôleur. TlsError 57 Uniquement disponible pour FB_TcpServer2 Le transfert TLS (Transport Layer Security) n'a pas pu être effectué. Si le paramètre etCertVerifyMode est défini sur AllCertificates ou TrustedOnly, vérifiez que le client envoie un certificat et, si nécessaire, qu'il est placé dans la catégorie approuvé. InitTlsContextFailed 58 Erreur interne détectée durant l'initialisation du contexte TLS. Jusqu'à 10 contextes TLS différents peuvent être ouverts en même temps. Vérifiez que maximum 10 sockets TCP utilisant TLS sont ouverts en même temps. 32 EIO0000002804 09/2020 Énumérations Nom Valeur Description InitAsyncManagerFailed 60 Erreur interne détectée durant l'initialisation du gestionnaire async. L'utilisation du gestionnaire async peut être configurée par les variables globales GVL.G_xDisableAsyncExecTcpClient et GVL.G_xDisableAsyncExecTcpServer. StartAsyncJobFailed 61 Erreur interne détectée durant le démarrage de la tâche async. L'utilisation du gestionnaire async peut être configurée par les variables globales GVL.G_xDisableAsyncExecTcpClient et GVL.G_xDisableAsyncExecTcpServer. Les valeurs 1001 à 1100 indiquent l'état du bloc fonction FB_DnsClient. Si la valeur q_xError du bloc fonction est FALSE, l'un des messages d'état suivants est fourni via q_etResult. Nom Valeur Description Disabled 1001 Le bloc fonction est désactivé. Initializing 1002 Le bloc fonction est en cours d'initialisation. Disabling 1003 Le bloc fonction est désactivé. Ready 1004 Le bloc fonction est prêt. SendDnsQuery 1010 Le bloc fonction envoie la requête au serveur DNS. WaitForDnsAnswer 1012 Le bloc fonction attend la réponse de Serveur DNS. AnalyzeDnsAnswer 1014 Le bloc fonction analyse la réponse. Les valeurs 1500 à 1600 indiquent les opérations exécutées par le bloc fonction FB_DnsClient. Si le paramètre q_xError du bloc fonction a pour valeur TRUE, le paramètre q_etResult affiche l'un des messages d'erreur suivants. Nom Valeur Description InvalidDnsServerIP 1500 L'adresse IP définie du serveur DNS n'est pas valide. NOTE : i_sDnsServerIP doit avoir une valeur autre que de type null et avoir le format correct. InvalidDomainName 1502 Aucun domaine ou le domaine indiqué n'est pas valide. OpenSocketFailed 1506 Une erreur a été détectée lors de l'ouverture d'un socket UDP. SendDnsQueryFailed 1508 Une erreur a été détectée lors de l'envoi de la requête au serveur DNS. BufferSizeTooSmall 1510 La taille de la mémoire tampon définie par GPL.Gc_udiDnsBufferSize est insuffisante. ReceiveDnsAnswerFailed 1512 Une erreur a été détectée lors de la réception des données du serveur DNS. InvalidDnsAnswer 1514 La réponse DNS du serveur n'est pas valide. EIO0000002804 09/2020 33 Énumérations Nom Valeur Description InvalidNumberOfIPs 1516 La valeur du paramètre GPL.Gc_udiDnsNumberOfIPs ne peut pas être 0. DnsResolutionFailed 1518 Le serveur DNS n'a pas pu résoudre le nom de domaine demandé. InternalError 1525 Erreur interne DnsServerError 1526 La réponse du serveur DNS contient un code d'erreur. Consultez la sortie q_sResultMsg de FB_DnsClient. InvalidDnsTimeOut 1527 La valeur du paramètre GPL.Gc_timDnsTimeOut ne peut pas être 0. Utilisé par 34 FB_Dns_Client FB_TCPClient/FB_TCPClient2 FB_TCPServer/FB_TCPServer2 FB_UDPPeer FC_EtResultToString EIO0000002804 09/2020 Énumérations ET_State Présentation Type : Énumération Disponible à partir de : V1.0.4.0 Description L'énumération ET_State contient les valeurs possibles qui indiquent l'état des blocs fonction. Éléments d'énumération Nom Valeur Description Idle 0 Etat par défaut, prêt pour Connect et ConnectTls (FB_TCPClient/FB_TCPClient2) ou Open et OpenTls (FB_TCPServer/FB_TCPServer2 et FB_UDPPeer). Connecting 10 Une tentative de connexion est en cours, mais aucun résultat n'a été renvoyé pour l'instant. Connected 11 La connexion a été établie et le transfert de données est possible. Shutdown 12 La connexion a été fermée par le site distant et aucune donnée supplémentaire ne peut être envoyée. Listening 20 Le serveur a démarré et attend des connexions entrantes. Accepting 22 La tentative d'acceptation d'une connexion entrante pour le serveur est en cours. Closing 24 La fermeture du socket est en cours. Opened 30 Le socket UDP est ouvert, mais n'est pas encore lié à un port local. Il est possible d'envoyer des messages ou de lier le socket à un port. Bound 31 Le socket UDP est lié à un port local. Il est possible d'envoyer et de recevoir des messages. Utilisé par FB_TCPClient/FB_TCPClient2 FB_TCPServer/FB_TCPServer2 FB_UDPPeer FC_EtStateToString EIO0000002804 09/2020 35 Énumérations ET_TlsProtocol Présentation Type : Énumération Disponible à partir de : V1.0.4.0 Description L'énumération ET_TlsProtocol permet de définir la version du protocole des connexions TCP/IP en utilisant TLS (Transport Layer Security). Éléments d'énumération Nom Valeur Description TLSv11 0 Client ou serveur TLS V1.1 TLSv12 1 Client ou serveur TLS V1.2 Utilisé par 36 FB_TCPClient/FB_TCPClient2 FB_TCPServer/FB_TCPServer2 FB_UDPPeer FC_EtStateToString EIO0000002804 09/2020 EcoStruxure Machine Expert Structures EIO0000002804 09/2020 Chapitre 4 Structures Structures Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page ST_ClientConnection 38 ST_ClientConnection2 39 ST_DefaultSocketOptionsTCPClient 40 ST_DefaultSocketOptionsTCPServer 42 ST_DefaultSocketOptionsUDPPeer 44 ST_DnsAdressInfo 46 ST_TlsSettingsClient 47 ST_TlsSettingsServer 48 EIO0000002804 09/2020 37 Structures ST_ClientConnection Présentation Type : Structure Disponible à partir de : V1.0.4.0 Hérite de : - Description La structure ST_ClientConnection contient des informations sur les clients connectés au serveur. Éléments de la structure Nom Type de données Description sClientIP STRING(15) Adresse IP du client connecté. uiClientPort UINT Numéro de port du client connecté. udiBytesAvailableToRead UDINT Nombre d'octets pouvant être lus à partir du client. uliTotalBytesReceived ULINT Nombre total d'octets reçus du client. uliTotalBytesSent ULINT Nombre total d'octets envoyés au client. Utilisé par 38 FB_TCPServer EIO0000002804 09/2020 Structures ST_ClientConnection2 Présentation Type : Structure Disponible à partir de : V1.0.4.0 Hérite de : - Description La structure ST_ClientConnection2 contient des informations sur les clients connectés au serveur. Éléments de la structure Nom Type de données Description sClientIP STRING(15) Adresse IP du client connecté. uiClientPort UINT Numéro de port du client connecté. xIsReadable BOOL Indique que des données pas encore traitées par la méthode Receive ont été reçues. uliTotalBytesReceived ULINT Nombre total d'octets reçus du client. uliTotalBytesSent ULINT Nombre total d'octets envoyés au client. Utilisé par FB_TCPServer/FB_TCPServer2 EIO0000002804 09/2020 39 Structures ST_DefaultSocketOptionsTCPClient Présentation Type : Structure Disponible à partir de : V1.0.4.0 Hérite de : - Description La structure ST_DefaultSocketOptionsTCPClient contient des informations sur les options de socket à définir automatiquement ou à modifier lorsqu'une nouvelle connexion est établie. Reportez-vous à la description de la propriété pour en savoir plus sur les différentes options de socket disponibles. Éléments de la structure Nom Type de données Valeur par défaut Description xModifyKeepAlive BOOL TRUE Si TRUE, définit l'option de socket KeepAlive sur la valeur xKeepAliveValue. xKeepAliveValue BOOL TRUE Valeur à appliquer à l'option de socket KeepAlive. xModifyNoDelay BOOL FALSE Si TRUE, définit l'option de socket NoDelay sur la valeur xNoDelayValue. xNoDelayValue BOOL TRUE Valeur à appliquer à l'option de socket NoDelay. xModifySendBufferSize BOOL FALSE Si TRUE, définit l'option de socket SendBufferSize sur la valeur udiSendBufferSizeValue. udiSendBufferSizeValu UDINT e 10 000 Valeur à appliquer à l'option de socket SendBufferSize. xModifyReceiveBufferS BOOL ize FALSE Si TRUE, définit l'option de socket ReceiveBufferSize sur la valeur udiReceiveBufferSizeValue. udiReceiveBufferSizeV UDINT alue 10 000 Valeur à appliquer à l'option de socket ReceiveBufferSize. xModifyOutOfBandInlin BOOL e FALSE Si TRUE, définit l'option de socket OutOfBandInline sur la valeur xOutOfBandInlineValue. xOutOfBandInlineValue BOOL TRUE Valeur à appliquer à l'option de socket OutOfBandInline. 40 EIO0000002804 09/2020 Structures Nom Type de données Valeur par défaut Description xModifyTimeoutConnect BOOL Tls FALSE Si TRUE, définit l'option de socket correspondante TimeoutConnectTls sur la valeur uiTimeoutConnectTlsValue. timTimeoutConnectTlsV TIME alue T#30s Délai en secondes pour l'établissement d'une connexion en utilisant la méthode ConnectTls. Utilisé par FB_TCPClient/FB_TCPClient2 EIO0000002804 09/2020 41 Structures ST_DefaultSocketOptionsTCPServer Présentation Type : Structure Disponible à partir de : V1.0.8.0 Hérite de : - Description La structure ST_DefaultSocketOptionsTCPServer contient des informations sur les options de socket à définir automatiquement ou à modifier lorsqu'une nouvelle instance de serveur est ouverte. Éléments de la structure 42 Nom Type de Valeur par Description données défaut xModifyKeepAlive BOOL TRUE Si TRUE, définit l'option de socket KeepAlive sur la valeur xKeepAliveValue. xKeepAliveValue BOOL TRUE Valeur à appliquer à l'option de socket KeepAlive. xModifyReuseAddres s BOOL TRUE Si TRUE, définit l'option de socket ReuseAddress sur la valeur xReuseAddressValue. xReuseAddressValue BOOL TRUE Valeur à appliquer à l'option de socket ReuseAddress. xModifySendBufferS ize BOOL FALSE Si TRUE, définit l'option de socket SendBufferSize sur la valeur udiSendBufferSizeValue. udiSendBufferSizeV alue UDINT 10 000 Valeur à appliquer à l'option de socket SendBufferSize. xModifyReceiveBuff erSize BOOL FALSE Si TRUE, définit l'option de socket ReceiveBufferSize sur la valeur udiReceiveBufferSizeValue. udiReceiveBufferSi zeValue UDINT 10 000 Valeur à appliquer à l'option de socket ReceiveBufferSize. xModifyTimeoutAcce ptTls BOOL FALSE Si TRUE, définit l'option de socket correspondante TimeoutAcceptTls sur la valeur uiTimeoutAcceptTlsValue. timTimeoutAcceptTl sValue TIME T#30s Délai d'acceptation d'une connexion entrante en utilisant la méthode Accept sur les ports ouverts avec la méthode OpenTls. EIO0000002804 09/2020 Structures Utilisé par FB_TCPServer/FB_TCPServer2 EIO0000002804 09/2020 43 Structures ST_DefaultSocketOptionsUDPPeer Présentation Type : Structure Disponible à partir de : V1.0.4.0 Hérite de : - Description La structure ST_DefaultSocketOptionsUDPPeer contient des informations sur les options de socket à définir automatiquement ou à modifier lorsqu'une nouvelle instance d'homologue est ouverte. Éléments de la structure Nom Type de données Valeur par défaut Description xModifySendBufferSize BOOL FALSE Si TRUE, définit l'option de socket SendBufferSize sur la valeur udiSendBufferSizeValue. udiSendBufferSizeValue UDINT 10 000 Valeur à appliquer à l'option de socket SendBufferSize. xModifyReceiveBufferSize BOOL FALSE Si TRUE, définit l'option de socket ReceiveBufferSize sur la valeur udiReceiveBufferSizeValue. udiReceiveBufferSizeValue UDINT 10 000 Valeur à appliquer à l'option de socket ReceiveBufferSize. xModifyBroadcast BOOL TRUE Si TRUE, définit l'option de socket Broadcast sur la valeur xBroadcastValue. xBroadcastValue BOOL TRUE Valeur à appliquer à l'option de socket Broadcast. xModifyMulticastDefaultInte BOOL rface FALSE Si TRUE, définit l'option de socket MulticastDefaultInterface sur la valeur sMulticastDefaultInterfaceValue. sMulticastDefaultInterfaceV STRING alue (15) '' (chaîne nulle) Valeur à appliquer à l'option de socket MulticastDefaultInterface. xModifyMulticastDefaultTime BOOL ToLive FALSE Si TRUE, définit l'option de socket MulticastDefaultTimeToLive sur la valeur siMulticastDefaultTimeToLiveValue. 44 EIO0000002804 09/2020 Structures Nom Type de données siMulticastDefaultTimeToLiv SINT eValue Valeur par défaut Description 16 Valeur à appliquer à l'option de socket MulticastDefaultTimeToLive. xModifyMulticastLoopback BOOL FALSE Si TRUE, définit l'option de socket MulticastLoopback sur la valeur xMulticastLoopbackValue. xMulticastLoopbackValue BOOL FALSE Valeur à appliquer à l'option de socket MulticastLoopback. Utilisé par FB_UDPPeer EIO0000002804 09/2020 45 Structures ST_DnsAdressInfo Présentation Type : Structure Disponible à partir de : V1.0.4.0 Hérite de : - Description La structure ST_DnsAddressInfo contient des informations sur le nom de domaine résolu, reçu du Serveur DNS. Éléments de la structure Nom Type de données Description sIpAddress STRING(15) Adresse IP du nom de domaine résolu. dwTTL DWORD Le temps de validité (TTL) de l'adresse IP. (Durée en secondes de mise en cache de l'adresse IP.) Utilisé par 46 FB_DnsClient EIO0000002804 09/2020 Structures ST_TlsSettingsClient Présentation Type : Structure Disponible à partir de : V1.0.4.0 Hérite de : - Description La structure ST_TlsSettingsClient permet de fournir les paramètres TLS (Transport Layer Security) pour la connexion sécurisée que doit établir le client TCP. Éléments de la structure Nom Type de données Valeur par défaut Description xSendClientCert BOOL FALSE Configurez cet élément sur TRUE si un certificat client est nécessaire. sCertName STRING(255) - etProtocol ET_TlsProt ocol Définit le fichier du certificat client. Si la valeur est une chaîne Null, le certificat par défaut du contrôleur est utilisé. Le nom correspond à la valeur “Issued for” du certificat du contrôleur. Le nom peut être obtenu du certificat en utilisant l'écran Security dans Logic Builder. TLSv12 Protocole utilisé pour la connexion sécurisée. TrustedOnl y Mode pour la vérification du certificat. (voir page 36) etCertVerifyMode ET_CertVer ifyMode (voir page 30) Utilisé par FB_TCPClient/FB_TCPClient2 EIO0000002804 09/2020 47 Structures ST_TlsSettingsServer Présentation Type : Structure Disponible à partir de : V1.0.4.0 Hérite de : - Description La structure ST_TlsSettingsServer est utilisée pour fournir les paramètres TLS (Transport Layer Security) pour le port sécurisé que doit ouvrir le serveur TCP. Éléments de la structure Nom Type de données Valeur par défaut sCertName STRING(255) - etProtocol ET_TlsProt ocol etCertVerifyMode ET_CertVer ifyMode Description Nom du fichier de certificat, si la valeur est une chaîne vide (Null), le certificat par défaut du contrôleur est utilisé. Le nom correspond à la valeur “Issued for” du certificat du contrôleur. Le nom peut être obtenu du certificat en utilisant l'écran Security dans Logic Builder. TLSv12 Protocole utilisé pour la connexion sécurisée. NotVerifie d Mode pour la vérification du certificat. (voir page 36) (voir page 30) Utilisé par 48 FB_TCPServer/FB_TCPServer2 EIO0000002804 09/2020 EcoStruxure Machine Expert Variables globales EIO0000002804 09/2020 Partie III Variables globales Variables globales Contenu de cette partie Cette partie contient les chapitres suivants : Chapitre Titre du chapitre Page 5 Liste des paramètres globaux 51 6 Liste de variables globales 53 EIO0000002804 09/2020 49 Variables globales 50 EIO0000002804 09/2020 EcoStruxure Machine Expert Liste des paramètres globaux EIO0000002804 09/2020 Chapitre 5 Liste des paramètres globaux Liste des paramètres globaux GPL Présentation Type : Paramètres globaux Disponible à partir de : V1.0.4.0 Description La liste de paramètres globaux (GPL) contient les paramètres globaux de la bibliothèque TcpUdpCommunication. Les paramètres sont modifiables dans la fenêtre info de la bibliothèque dans le Gestionnaire de bibliothèques. Paramètres globaux Variable Type de données Valeur Description Gc_uiTCPServerMaxConnections UINT 30 Nombre maximal de connexions pouvant être gérées par une instance de FB_TCPServer/FB_TCPSer ver2. Gc_uiTCPServerMaxBacklog UINT 5 Nombre maximal de connexions entrantes (mais pas encore acceptées) pouvant être gérées par une instance de FB_TCPServer/FB_TCPSer ver2. 2 000 Nombre maximal d'octets à envoyer à l'aide de la méthode SendToAll. 200 Nombre maximal de sockets pris en charge par la bibliothèque (correspondant à la somme des sockets UDP, client TCP et serveur TCP). Gc_udiTCPServerMaxSendToAllSize UDINT Gc_uiSocketManagementListSize EIO0000002804 09/2020 UINT 51 Liste des paramètres globaux Variable Type de données Valeur Description Gc_uiDnsBufferSize UINT 512 Taille (en octets) du tampon d'envoi et de réception utilisé par FB_DnsClient. NOTE : Toute diminution de la valeur par défaut peut générer le message d'erreur ET_Result.BufferSizeTo oSmall. 52 Gc_timDnsTimeOut TIME T#10s Délai d'attente de réponse de Serveur DNS Gc_uiDnsNumberOfIPs UINT 1 Nombre d'adresses IP à renvoyer de Serveur DNS. EIO0000002804 09/2020 EcoStruxure Machine Expert Liste de variables globales EIO0000002804 09/2020 Chapitre 6 Liste de variables globales Liste de variables globales GVL Présentation Type : Variables globales Disponible à partir de : V1.0.4.0 Description La liste des variables globales contient les variables globales de la bibliothèque TcpUdpCommunication. Les variables globales sont automatiquement utilisées par les blocs fonction correspondants. Variables globales Variable Type de données G_stDefaultSocketOptionsTCPClie nt ST_DefaultSocketOptionsTCP Options de socket définies par Client (voir page 40) défaut en cas d'initialisation d'une connexion client TCP. Description G_stDefaultSocketOptionsTCPServ er ST_DefaultSocketOptionsTCP Options de socket définies par défaut en cas d'initialisation d'un Server (voir page 42) socket serveur TCP. G_stDefaultSocketOptionsUDPPeer ST_DefaultSocketOptionsUDP Options de socket définies par défaut en cas d'initialisation d'un Peer (voir page 44) socket UDP. G_xDisableAsyncExecTcpClient BOOL Si TRUE, l'exécution asynchrone du code du programme pour l'établissement d'une connexion sécurisée est désactivée.(1) Valeur par défaut : FALSE (1) Remarque : la désactivation de l'exécution asynchrone signifie que le code de programme respectif est exécuté de façon synchrone dans la tâche appelante. Cela allonge le temps d'exécution d'au moins un cycle de tâche durant le processus correspondant. EIO0000002804 09/2020 53 Liste de variables globales Variable Type de données Description G_xDisableAsyncExecTcpServer BOOL Si TRUE, l'exécution asynchrone du code du programme pour l'ouverture d'un socket sécurisé et l'acceptation d'une connexion entrante est désactivée.(1) Valeur par défaut : FALSE (1) Remarque : la désactivation de l'exécution asynchrone signifie que le code de programme respectif est exécuté de façon synchrone dans la tâche appelante. Cela allonge le temps d'exécution d'au moins un cycle de tâche durant le processus correspondant. Exemple de code Cet exemple de code montre comment modifier l'option de socket par défaut pour l'implémentation du client TCP. Dans cet exemple, la taille par défaut du tampon de réception est définie à 10 000 octets. Cette valeur par défaut est appliquée à chaque nouvelle connexion tant que la variable xModifyReceiveBufferSize est TRUE. IF NOT xInitDone THEN // Enable the use of user defined default socket options TCPUDP.GVL.G_stDefaultSocketOptionsTCPClient.xModifyReceiveBufferSize := TRUE; // Set the values for the default socket options TCPUDP.GVL.G_stDefaultSocketOptionsTCPClient.udiReceiveBufferSizeValue := 10000; xInitDone := TRUE; END_IF // Connect to the server IF (fbTcpClient.State = TCPUDP.ET_State.Idle) AND xConnect THEN xConnectDone := fbTcpClient.Connect(i_sServerIP:= '192.168.100.11', i_uiServerPort:= 12345); IF NOT xConnectDone THEN ; // error handling END_IF xConnect :=FALSE; END_IF NOTE : Indépendamment des options de socket par défaut, il est possible de modifier les options de chaque socket ouvert. Pour modifier les options de socket, utilisez la Propriété correspondante de l'instance de bloc fonction concernée. 54 EIO0000002804 09/2020 EcoStruxure Machine Expert Unités d'organisation de programme (POU) EIO0000002804 09/2020 Partie IV Unités d'organisation de programme (POU) Unités d'organisation de programme (POU) Contenu de cette partie Cette partie contient les chapitres suivants : Chapitre Titre du chapitre 7 Blocs fonction 8 Fonctions EIO0000002804 09/2020 Page 57 155 55 Unités d'organisation de programme (POU) 56 EIO0000002804 09/2020 EcoStruxure Machine Expert Blocs fonction EIO0000002804 09/2020 Chapitre 7 Blocs fonction Blocs fonction Contenu de ce chapitre Ce chapitre contient les sous-chapitres suivants : Sous-chapitre 7.1 Sujet Page Présentation du TCP 58 7.2 TCP Client 59 7.3 Serveur TCP 89 7.4 UDP 129 7.5 Utils - FB_DnsClient 151 EIO0000002804 09/2020 57 Blocs fonction Sous-chapitre 7.1 Présentation du TCP Présentation du TCP Communication TCP Présentation Les connexions TCP assurent des transferts de données fiables et par flux entre plusieurs systèmes. L'un des système joue le rôle de serveur : il écoute les connexions entrantes sur un port TCP défini et les accepte. Les autres font office de clients et se connectent au serveur sur le port TCP indiqué. Le transfert de données peut s'effectuer dans les deux sens une fois la connexion établie. Le protocole TCP permet de s'assurer que les paquets sont transmis dans le bon ordre, et que les paquets éventuellement perdus sont détectés et renvoyés. 58 EIO0000002804 09/2020 Blocs fonction Sous-chapitre 7.2 TCP Client TCP Client Contenu de ce sous-chapitre Ce sous-chapitre contient les sujets suivants : Sujet Page FB_TCPClient/FB_TCPClient2 60 Propriétés de FB_TCPClient/FB_TCPClient2 63 Méthodes de FB_TCPClient/FB_TCPClient2 65 Méthode Close 66 Méthode Connect 67 Méthode ConnectTls 69 Méthode GetBoundIPAddress 71 Méthode GetBoundPort 71 Méthode Peek 73 Méthode Receive 75 Méthode ReceiveOutOfBand 78 Méthode ResetByteCounters 80 Méthode ResetResult 81 Méthode Send 82 Méthode SendOutOfBand 86 Méthode Shutdown 88 EIO0000002804 09/2020 59 Blocs fonction FB_TCPClient/FB_TCPClient2 Présentation Type : Bloc fonction Disponible à partir de la version : V1.0.4.0 Hérite de : - Implémente : - Tâche Se connecter à un serveur TCP pour permettre l'échange de données Description fonctionnelle La bibliothèque fournit deux versions du bloc fonction FB_TCPClient. Le FB_TCPClient2 est une version améliorée qui prend en charge les connexions en utilisant TLS (Transport Layer Security). Si une connexion qui utilise TLS est prise en charge selon que le contrôleur où FB_TcpClient2 est utilisé. Consultez le manuel spécifique de votre contrôleur pour vérifier si la communication TCP qui utilise TLS est prise en charge. Le principe de fonctionnement des blocs fonction est le même. Il y a quelques différences pour les propriétés fournies et les méthodes qui sont décrites dans les chapitres respectifs. En général la méthode Connect ou ConnectTls est appelée en premier, en définissant l'IP du serveur et le port TCP à connecter. L'étape suivante consiste à récupérer la valeur de la propriété State, de façon cyclique, jusqu'à ce qu'elle soit différente de Connecting. Un état autre que Connected signifie que la connexion n'a pas pu être établie. Vous pouvez alors déterminer la cause du problème d'après la valeur de la propriété Result. La méthode Close doit être appelée avant toute nouvelle tentative de connexion. Lorsque l'état est Connected et que la valeur de IsWritable est TRUE, il est possible d'échanger des données avec les méthodes Send et Receive. La propriété IsReadable permet de savoir si des données peuvent être lues. Les méthodes Peek et Receive peuvent être utilisées de la même manière. La seule différence est que lors d'un appel de Peek, les données du tampon de réception de TCP sont conservées et peuvent être lues plusieurs fois. Cela permet notamment de déterminer si un nombre suffisant de données à traiter sont arrivées lorsque la longueur ne peut pas être déterminée pour que les données soient disponibles. Si les données entrantes sont suffisantes pour pouvoir être traitées correctement, utilisez la méthode Receive pour supprimer les données du tampon de réception afin de laisser de la place aux nouvelles données entrantes. 60 EIO0000002804 09/2020 Blocs fonction Pour détecter une déconnexion du site distant, consultez la valeur de la propriété PeerHasDisconnected. La valeur de State passe automatiquement à Shutdown lorsque la connexion est fermée par le serveur. Dans ce cas, les données non traitées restantes peuvent être lues, mais il est impossible d'envoyer de nouvelles données. Pour fermer une connexion comme il se doit, appelez la méthode Shutdown. La connexion passe alors à l'état Shutdown, ce qui permet aux données entrantes d'être lues. Par contre, il est impossible d'envoyer d'autres données. Lorsque les données entrantes ont été lues, traitées ou ne sont pas pertinentes, la méthode Close peut être appelée, mettant ainsi fin à la connexion. L'échec du traitement d'une méthode est indiqué dans la valeur de la propriété Result. La valeur de Result doit être vérifiée après chaque appel de méthode. La méthode ResetResult permet de réinitialiser le résultat sur Ok. NOTE : Toutes les méthodes sont bloquées tant que la valeur de la propriété Result est différente de Ok. Dans ce cas, un appel de méthode est annulé, sans modification des informations de la propriété Result. Interface Le bloc fonction n'a ni entrées, ni sorties. Il remplit sa fonction par le biais de méthodes et de propriétés. Vous n'avez pas à l'appeler directement dans l'application. Exemple d'implémentation pour FB_Client2 PROGRAM LibDocu_TcpClient2 VAR xConnect : BOOL; xConnectTls : BOOL; xClose : BOOL; etResult : TCPUDP.ET_Result; etState : TCPUDP.ET_State; iState : INT; fbTcpClient : TCPUDP.FB_TCPClient2; stTlsSettings : TCPUDP.ST_TlsSettingsClient; sIp : STRING(15) := '192.168.1.2'; uiPort : UINT := 12345; END_VAR EIO0000002804 09/2020 61 Blocs fonction CASE iState OF 0: // idle IF xConnect OR xConnectTls THEN IF xConnect AND_THEN fbtcpclient.Connect(sIp, uiPort) THEN iState := 10; ELSIF xConnectTls AND_THEN fbtcpclient.ConnectTls(sIp, uiPort, stTlsSettings) THEN iState := 10; ELSE iState := 100; // error state END_IF xConnect := xConnectTls := FALSE; END_IF 10: // connecting CASE fbtcpclient.State OF TCPUDP.ET_State.Connecting: iState := 10; // stay in connecting TCPUDP.ET_State.Connected: iState := 20; // connected ELSE iState := 100; // unexpected state END_CASE 20: // connected IF xClose OR fbTcpClient.State = TCPUDP.ET_State.Shutdown THEN xClose := FALSE; fbTcpClient.Close(); END_IF IF fbTcpClient.State = TCPUDP.ET_State.Closing THEN ; ELSIF fbTcpClient.State = TCPUDP.ET_State.Idle THEN iState := 0; ELSIF fbTcpClient.State <> TCPUDP.ET_State.Connected THEN iState := 100; END_IF (* your code comes here, e.g send data to the connected server *) 100: // error state (* your code comes here*) END_CASE etResult := fbTcpClient.Result; etState := fbTcpClient.State; 62 EIO0000002804 09/2020 Blocs fonction Propriétés de FB_TCPClient/FB_TCPClient2 Informations générales Les blocs fonction FB_TCPClient et FB_TCPClient2 fournissent plusieurs propriétés pour leur surveillance et contrôle. Les tableaux suivants indiquent leur appartenance et leurs propriétés. Propriétés communes de FB_TCPClient et FB_TCPClient2 Nom Type de données Accès Description IsReadable BOOL Lecture Indique que des données pas encore traitées par la méthode Receive ont été reçues. IsWritable BOOL Lecture Indique que l'état de la connexion permet l'envoi de données au serveur. PeerHasDisconnecte BOOL d Lecture Indique que la connexion a été fermée par le site distant. Dans ce cas, la méthode Shutdown est automatiquement appelée et l'état passe à Shutdown. Result Lecture Indique le résultat du dernier appel de méthode. Si le résultat est différent de Ok, la valeur du résultat est conservée même si une autre méthode est appelée. ET_Result (voir page 31) State ET_State (voir page 35) Lecture Indique l'état du socket. TotalBytesReceived ULINT Lecture Indique le nombre total d'octets reçus. (Plage : 1 à 264-1) ULINT Lecture Indique le nombre total d'octets envoyés. (Plage : 1 à 264-1) TotalBytesSent SockOpt_CustomPort UDINT Lecture/écrit Permet de définir le port TCP auquel doit être lié ure la connexion ouverte par le FB_TcpClient. Si la valeur est définie sur 0 (valeur par défaut), le port disponible suivant est utilisé. BOOL Lecture/écrit Si la valeur est TRUE, la pile TCP doit envoyer ure régulièrement des paquets vides pour vérifier que le site distant est joignable. Si ce n'est plus le cas, la connexion passe à l'état Shutdown. SockOpt_KeepAlive NOTE : Dans la plupart des cas, définissez cette option de façon à détecter si le site distant est inaccessible (mise hors tension ou câble débranché). NOTE : Une fois désactivée pour le serveur, l'option de socket KeepAlive ne peut pas être activée pour les clients connectés. EIO0000002804 09/2020 63 Blocs fonction Nom Type de données Accès Description SockOpt_NoDelay BOOL Lecture/écrit ure Si TRUE, la pile TCP doit envoyer les données sans attendre un paquet complet. Cette option réduit le débit, mais elle améliore la latence, un critère important en environnement industriel. SockOpt_ReceiveBuf UDINT ferSize Lecture/écrit ure Permet de définir ou d'obtenir la taille du tampon de réception de la pile. Cette valeur doit toujours être supérieure à la quantité de données reçues pendant un transfert, pour éviter de perdre des données. (Plage : 1 à 2 147 483 647) SockOpt_SendBuffer UDINT Size Lecture/écrit ure Permet de définir ou d'obtenir la taille du tampon d'envoi de la pile. Cette valeur doit toujours être supérieure à la quantité de données envoyées durant un transfert. (Plage : 1 à 2 147 483 647) Accès Description BytesAvailableToRe UDINT ad Lecture Indique le nombre d'octets dans le tampon de réception qui peuvent être lus à l'aide de la méthode Receive. (Plage : 0 à 2 147 483 647) SockOpt_OutOfBandI BOOL nline Lecture/écrit ure Si TRUE, la pile TCP doit envoyer les données OutOfBand avec le flux de données standard. Propriétés complémentaires de FB_TCPClient Nom Type de données Propriétés complémentaires de FB_TCPClient2 Nom Type de données Accès TimeoutConnectTls UDINT Lecture/Ecrit Indique le délai en secondes pour ure l'établissement d'une connexion en utilisant la méthode ConnectTls. TlsUsed BOOL Lecture 64 Description Indique si la connexion TCP au serveur a été établie en utilisant la méthode ConnectTls. EIO0000002804 09/2020 Blocs fonction Méthodes de FB_TCPClient/FB_TCPClient2 Présentation Les méthodes fournies par FB_TCPClient2 ont presque la même fonction que les méthodes correspondantes fournies par le bloc fonction FB_TCPClient. Les différences sont décrites dans le tableau ci-dessous. Méthode FB_TCPClient FB_TCPClient2 Close (voir page 66) x x Connect (voir page 67) x x ConnectTls (voir page 69) - x GetBoundIPAddress x x GetBoundPort (voir page 71) x x Peek (voir page 73) x x Receive (voir page 75) x x ReceiveOutOfBand (voir page 78) x - ResetByteCounters (voir page 80) x x ResetResult (voir page 81) x x Send (voir page 82) x x SendOutOfBand (voir page 86) x - Shutdown (voir page 88) x x (voir page 71) x - Pris en charge par le bloc fonction. Non pris en charge par le bloc fonction. Performances Lorsque le traitement correct est conditionné par la mise à disposition d'une quantité suffisante de données, l'application peut suivre deux approches : La méthode Peek sert à copier les données disponibles dans un tampon vide fourni par l'application. Ces dernières peuvent ensuite être utilisées pour déterminer s'il y a suffisamment de données dans le tampon. Si tel est le cas, la méthode Receive permet de déplacer les données du tampon de réception du système vers l'application, où elles seront traitées. La méthode Receive est la seule appelée, toujours sur le même tampon fourni par l'application et en précisant le niveau de remplissage du tampon. Résultat : les données ne sont copiées qu'une fois. L'application peut évaluer si les données sont suffisantes et les traiter par un seul appel de méthode (car elles figurent déjà dans le tampon utilisé par l'application). La seconde approche est recommandée puisqu'elle évite de copier plusieurs fois les données en mémoire. EIO0000002804 09/2020 65 Blocs fonction Méthode Close Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Fermer le socket Description fonctionnelle Ferme le socket, en ignorant éventuellement les données du tampon de réception. La valeur de retour de BOOL est TRUE si l’exécution de la fonction est correcte. Evaluez la propriété Result, si la valeur de retour est FALSE. Transition d'état du client Etape Description 1 Etat initial : Connected 2 Appel de fonction 3 Etat : Idle Utilisé par 66 FB_TCPClient/FB_TCPClient2 EIO0000002804 09/2020 Blocs fonction Méthode Connect Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Etablir une connexion avec un serveur TCP Description fonctionnelle Etablit une connexion à un serveur TCP. La valeur de retour de BOOL est TRUE si l’exécution de la fonction est correcte. Evaluez la propriété Result, si la valeur de retour est FALSE. NOTE : La valeur de retour de cette fonction indique uniquement si la connexion peut être initialisée avec succès. L'état de la connexion doit être vérifié en utilisant la propriété Etat. Transition d'état du client Etape Description 1 Etat initial : Idle 2 Appel de fonction 3 Etat : Connecting, sinon une erreur est détectée 4 Etat final : Connected, sinon une erreur est détectée Interface Entrée Type de données Plage valide Description i_sServerIP STRING(15) - Adresse IP du serveur auquel se connecter. i_uiServerPort UINT 1…65 535 Port TCP du serveur auquel se connecter. EIO0000002804 09/2020 67 Blocs fonction Utilisé par 68 FB_TCPClient/FB_TCPClient2 EIO0000002804 09/2020 Blocs fonction Méthode ConnectTls Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Etablir une connexion à un serveur TCP en utilisant TLS (Transport Layer Security). Description fonctionnelle Etablit une connexion à un serveur TCP en utilisant TLS (Transport Layer Security). Si une connexion qui utilise TLS est prise en charge selon que le contrôleur où FB_TcpClient2 est utilisé. Consultez le manuel spécifique de votre contrôleur pour vérifier si la communication TCP qui utilise TLS est prise en charge. La valeur de retour de BOOL est TRUE si l’exécution de la fonction est correcte. Evaluez la propriété Result, si la valeur de retour est FALSE. NOTE : La valeur de retour de cette fonction indique uniquement si la connexion peut être initialisée avec succès. L'état de la connexion doit être vérifié en utilisant la propriété Etat. Transition d'état du client Etape Description 1 Etat initial : Idle 2 Appel de fonction 3 Etat : Connecting, sinon une erreur est détectée 4 Etat final : Connected, sinon une erreur est détectée Interface Entrée Type de données Plage valide Description i_sServerIP STRING(15) - Adresse IP du serveur auquel se connecter. EIO0000002804 09/2020 69 Blocs fonction Entrée Type de données Plage valide Description i_uiServerPort UINT 1…65 535 Port TCP du serveur auquel se connecter. ST_TlsSettingsClient - Paramètres TLS pour la connexion que doit établir FB_TCPClient. i_stTlsSettings (voir page 47) Utilisé par 70 FB_TCPClient2 EIO0000002804 09/2020 Blocs fonction Méthode GetBoundIPAddress Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Renvoyer l'adresse IP de liaison Description fonctionnelle Cette fonction permet d'obtenir l'adresse IP liée au socket. Si la valeur de retour est une chaîne nulle (''), l'adresse IP ne peut pas être obtenue. Cette fonction est prise en charge sur les plates-formes où la bibliothèque SysSocket version 3.5.6.0 ou ultérieure est installée. Utilisé par FB_TCPClient/FB_TCPClient2 Méthode GetBoundPort Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Renvoyer le port de liaison EIO0000002804 09/2020 71 Blocs fonction Description fonctionnelle Cette fonction permet d'obtenir le port lié au socket. Si la valeur de retour UINT est 0, le numéro de port ne peut pas être obtenu. Cette fonction est prise en charge sur les plates-formes où la bibliothèque SysSocket version 3.5.6.0 ou ultérieure est installée. Utilisé par 72 FB_TCPClient/FB_TCPClient2 EIO0000002804 09/2020 Blocs fonction Méthode Peek Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Lire les données enregistrées dans le tampon de réception, sans les supprimer Description fonctionnelle Lit les données enregistrées dans le tampon de réception, sans les supprimer du tampon après leur lecture. La méthode Peek peut être utilisée si le traitement correct requiert la disponibilité d'une certaine quantité de données et si cette quantité peut être déterminée d'après une partie des données (un champ de longueur, par exemple). Dans ce cas, les données peuvent être copiées dans l'application par un appel de la méthode Receive. La valeur de retour UDINT indique le nombre d’octets écrits dans la mémoire tampon fournie par l’application. Considérations pour les connexions en utilisant TLS Le fonctionnement des méthodes Peek et Receive peut être différent pour les différentes connexions avec et sans la sécurité TLS. En particulier si des paquets volumineux sont échangés. Lors de l'exécution des méthodes sur une connexion qui utilise TLS, il peut être nécessaire d'exécuter des appels de méthode jusqu'à la copie ou le déplacement de toutes les données déplacées sur la mémoire tampon de l'application. Dans tous les cas, vérifiez avant le traitement des données, la quantité de données copiées ou déplacées et si les données sont complètes. EIO0000002804 09/2020 73 Blocs fonction Interface Entrée Type de données Plage valide Description i_pbyReceiveBuffer POINTER TO BYTE - Adresse de départ du tampon à partir de laquelle les données reçues doivent être écrites. i_udiReceiveBufferSize UDINT 1…2 147 483 647 Nombre d’octets à lire. NOTE : La valeur ne doit pas dépasser la taille de la mémoire tampon. NOTE : Pour empêcher tout accès non autorisé, par exemple un accès de pointeur (hors limites) dans la mémoire, utilisez l'opérateur arithmétique SIZEOF avec le tampon cible pour déterminer la valeur de i_udiReceiveBufferSize. Utilisé par 74 FB_TCPClient/FB_TCPClient2 EIO0000002804 09/2020 Blocs fonction Méthode Receive Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Lire les données enregistrées dans le tampon de réception et les supprimer Description fonctionnelle Lit les données enregistrées dans le tampon de réception et les supprime du tampon si aucune erreur n'a été détectée pendant leur lecture. La valeur de retour UDINT indique le nombre d’octets écrits dans la mémoire tampon fournie par l’application. Pour plus d'informations sur les méthodes de réception, consultez la section Méthode de réception (voir page 76). Considérations pour les connexions en utilisant TLS Le fonctionnement des méthodes Peek et Receive peut être différent pour les différentes connexions avec et sans la sécurité TLS. En particulier si des paquets volumineux sont échangés. Lors de l'exécution des méthodes sur une connexion qui utilise TLS, il peut être nécessaire d'exécuter des appels de méthode jusqu'à la copie ou le déplacement de toutes les données déplacées sur la mémoire tampon de l'application. Dans tous les cas, vérifiez avant le traitement des données, la quantité de données copiées ou déplacées et si les données sont complètes. Interface Entrée Type de données Plage valide Description i_pbyReceiveBuffer POINTER TO BYTE - Adresse de départ du tampon à partir de laquelle les données reçues doivent être écrites. EIO0000002804 09/2020 75 Blocs fonction Entrée Type de données Plage valide Description i_udiReceiveBufferSize UDINT 1…2 147 483 647 Nombre d’octets à lire. NOTE : La valeur ne doit pas dépasser la taille de la mémoire tampon. NOTE : Pour empêcher tout accès non autorisé, par exemple un accès de pointeur (hors limites) dans la mémoire, utilisez l'opérateur arithmétique SIZEOF avec le tampon cible pour déterminer la valeur de i_udiReceiveBufferSize. In_Out Type de données Plage valide Description iq_udiFillLevel UDINT 1…2 147 483 647 Niveau de remplissage du tampon fourni par l'application avant l'opération (les données sont écrites à partir de ce point) et niveau de remplissage après l'écriture des octets reçus dans le tampon. Utilisé par FB_TCPClient/FB_TCPClient2 Méthodes de réception Les méthodes de réception des données, fournies par les blocs fonction FB_TCPClient/FB_TCPClient2 et FB_TCPServer/FB_TCPServer2 dans cette bibliothèque fournissent le paramètre d'entrée/sortie iq_udiFillLevel. Ce paramètre détermine le décalage du tampon, donc là où les données doivent être écrites. A chaque exécution de la fonction, la valeur est mise à jour en ajoutant le nombre d'octets écrits à la valeur d'origine. Si des données sont reçues dans plusieurs paquets, mais doivent être stockées dans un tampon et traitées ultérieurement ensemble, la fonction de réception respective peut être appelée à nouveau sans modification du paramètre iq_udiFillLevel du dernier appel de fonction. La différence de la taille du tampon de réception (i_udiReceiveBufferSize) et le niveau de remplissage permettent de déterminer le nombre maximal d'octets à lire. 76 EIO0000002804 09/2020 Blocs fonction Exemple d'appel de fonction Les graphiques suivants représentent le contenu du tampon et la modification du paramètre iq_udiFillLevel pour deux appels de fonction, via lesquels la fonction a été correctement exécutée à chaque fois. Etape Description 1 Avant le premier appel de la fonction, le pointeur est défini sur le premier index du tampon. Le niveau de remplissage est défini sur 0. Le paramètre i_udiReceiveBufferSize indique la taille absolue du tampon en octets. 2 A chaque appel de fonction, le tampon est effacé à partir du début du niveau de remplissage. Lors du premier appel de fonction dans cet exemple, les données disponibles ont été déplacées de la pile TCP vers le tampon. Le niveau de remplissage est mis à jour par la fonction et indique le nombre d'octets lus dans le tampon. Dès que la pile TCP a de l'espace mémoire disponible, le site distant en est informé et envoie le paquet de données suivant. Le second appel de fonction est exécuté sans modification des paramètres d'entrée. EIO0000002804 09/2020 Illustration 77 Blocs fonction Etape 3 Description Illustration Lors du second appel de fonction, les données disponibles sont déplacées à nouveau de la pile TCP vers le tampon. Le niveau de remplissage est mis à jour par la fonction. La valeur est alors égale à la valeur de i_udiReceiveBufferSize. Cela signifie que le tampon de réception est plein. Un autre appel de fonction serait annulé avec le résultat FillLevelOutOfRange. Enfin, si le tampon de réception est plein, vous devez traiter les données et mettre à jour le niveau de remplissage du tampon en conséquence. Limites de données par appel de fonction Selon le contrôleur, la quantité de données à déplacer dans un appel de fonction de l'une des méthodes Receive, Send ou Peek est limitée. Contrôleur Nombre d'octets qui peuvent être déplacés en même temps* M258, LMC058, M241, M251 2048 octets PacDrive LMC, M262 > 10 000 000 octets (limite : mémoire de l'application) *Valeur maximale de la différence entre la taille du tampon et le niveau de remplissage. Méthode ReceiveOutOfBand Présentation 78 Type : Méthode Disponible à partir de : V1.0.4.0 EIO0000002804 09/2020 Blocs fonction Tâche Lire les données OutOfBand enregistrées dans le tampon de réception et les supprimer Description fonctionnelle Lit les données OutOfBand enregistrées dans le tampon de réception et les supprime du tampon si aucune erreur n'a été détectée pendant leur lecture. La valeur de retour UDINT indique le nombre d’octets écrits dans la mémoire tampon fournie par l’application. Pour plus d'informations sur les méthodes de réception, consultez la section Méthode de réception (voir page 76). Interface Entrée Type de données Plage valide Description i_pbyReceiveBuffer POINTER TO BYTE - Adresse de départ du tampon à partir de laquelle les données reçues doivent être écrites. i_udiReceiveBufferSize UDINT 1…2 147 483 647 Nombre d’octets à lire. NOTE : La valeur ne doit pas dépasser la taille de la mémoire tampon. NOTE : Pour empêcher tout accès non autorisé, par exemple un accès de pointeur (hors limites) dans la mémoire, utilisez l'opérateur arithmétique SIZEOF avec le tampon cible pour déterminer la valeur de i_udiReceiveBufferSize. In_Out Type de données Plage valide Description iq_udiFillLevel UDINT 1…2 147 483 647 Indique le niveau de remplissage du tampon. Avant l’appel de la fonction : Les données sont écrites à partir de ce point. Après l’appel de la fonction : Mise à jour en ajoutant le nombre d’octets écrits sur la valeur d’origine. Utilisé par FB_TCPClient EIO0000002804 09/2020 79 Blocs fonction Méthode ResetByteCounters Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Remettre à zéro les compteurs du nombre total d'octets reçus et envoyés Description fonctionnelle Remet à zéro les compteurs du nombre total d'octets reçus et envoyés. Ne renvoie aucune valeur. Utilisé par 80 FB_TCPClient/FB_TCPClient2 EIO0000002804 09/2020 Blocs fonction Méthode ResetResult Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Réinitialiser les valeurs de la propriété Result sur Ok Description fonctionnelle Réinitialise les valeurs de la propriété Result sur Ok. Ne renvoie aucune valeur. Utilisé par FB_TCPClient/FB_TCPClient2 EIO0000002804 09/2020 81 Blocs fonction Méthode Send Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Transmettre des données à l'homologue Description fonctionnelle Transmet des données à l'homologue. Les données sont lues depuis le tampon fourni par l'application. Renvoie le nombre d'octets envoyés au site distant UDINT. Pour plus d'informations sur les méthodes d'envoi, consultez la section Méthode d'envoi (voir page 83). Interface Entrée Type de données Plage valide Description i_pbySendBuffer POINTER TO BYTE - Adresse de départ du tampon contenant les données à envoyer. In_Out Type de données Plage valide Description iq_udiFillLevel UDINT 1…2 147 483 647 Indique le niveau de remplissage du tampon. Avant l’appel de la fonction : Nombre d’octets à envoyer à partir de l’adresse de départ du tampon. Après l’appel de la fonction : Nombre d'octets du tampon qui n’ont pas pu être envoyés. 82 EIO0000002804 09/2020 Blocs fonction Utilisé par FB_TCPClient/FB_TCPClient2 Méthodes d'envoi Les méthodes d'envoi des données, fournies par les blocs fonction FB_TCPClient/FB_TCPClient2 et FB_TCPServer/FB_TCPServer2 dans cette bibliothèque fournissent le paramètre d'entrée/sortie iq_udiFillLevel. Ce paramètre détermine le nombre d'octets dans le tampon qui ne sont pas encore envoyés. A chaque exécution de la fonction, la valeur est mise à jour en retirant le nombre d'octets écrits de la valeur d'origine. De plus, les octets conservés dans le tampon sont copiés dans la zone supérieure du tampon (les données sont envoyées à partir de l'adresse de début i_pbySendBuffer). Si le niveau de remplissage est 0 après l'appel de fonction, toutes les données ont été envoyées et le contenu du tampon reste inchangé. Si des données n'ont pas été copiées complètement dans la pile TCP du contrôleur dans un appel de fonction, la fonction d'envoi respective peut être appelée à nouveau sans modification du paramètre iq_udiFillLevel du dernier appel de fonction et sans déplacement des données dans le tampon. Exemple d'appel de fonction Les graphiques suivants représentent le contenu du tampon et la modification du paramètre iq_udiFillLevel pour deux appels de fonction, via lesquels la fonction a été correctement exécutée à chaque fois. Etape 1 Description Illustration Avant le premier appel de la fonction, le pointeur est défini sur le premier index du tampon. Le niveau de remplissage est défini sur le nombre d'octets à envoyer. Dans l'exemple représenté, le tampon de la pile TCP est vide et sa taille est inférieure au tampon d'envoi de l'application. EIO0000002804 09/2020 83 Blocs fonction Etape Description 2 Lors du premier appel de fonction, la quantité maximale de données (taille de la pile TCP) a été copiée du tampon d'envoi de l'application dans la pile TCP. Les données restant dans le tampon d'envoi de l'application ont été copiées par la fonction dans la zone supérieure du tampon. Le paramètre iq_udiFillLevel a été mis à jour par la fonction et indique le nombre d'octets qui n'ont pas pu être envoyés. Le second appel de fonction est exécuté sans modification des paramètres. Pendant ce temps, la pile TCP a envoyé les données au site distant, libérant de l'espace dans son tampon. 3 Lors du deuxième appel de fonction, les données restant dans le tampon d'envoi de l'application ont été copiées dans la pile TCP. Le paramètre iq_udiFillLevel a été mis à jour par la fonction et indique 0. Le contenu du tampon d'envoi reste inchangé. Un autre appel de fonction serait annulé avec le résultat FillLevelOutOfRange. Illustration Même si la fonction vous permet d'envoyer des données dans différents appels de fonction, veillez bien au rapport équilibré entre : Tampon d'envoi de l'application et tampon d'envoi du socket TCP Tampon d'envoi local et tampon d'envoi du site distant. Intervalle d'envoi de l'application et temps de traitement du site distant. Pour modifier la taille du tampon d'envoi, utilisez les propriétés correspondantes du bloc fonction ou réglez les paramètres par défaut à l'aide des variables globales dans TCPUDP.GVL (consultez la section GVL (voir page 53)). 84 EIO0000002804 09/2020 Blocs fonction Limites de données par appel de fonction Selon le contrôleur, la quantité de données à copier dans un appel de fonction de l'une des deux méthodes (Receive, Send ou Peek) est limitée. Contrôleur Nombre d'octets qui peuvent être copiés en même temps* M258, LMC058, M241, M251 2048 octets PacDrive LMC, M262 > 10 000 000 octets (limite : mémoire de l'application) *Valeur maximale de la différence entre la taille du tampon et le niveau de remplissage. Cas particulier - Aucune donnée envoyée Si la valeur de retour de la méthode indique 0, aucune donnée n'est envoyée et le résultat du bloc fonction associé est différent de Ok. Vérifiez le résultat avec la méthode Result de l'instance du bloc fonction, après chaque appel de fonction. Si le résultat indique BufferFull, vous devez le réinitialiser et essayer d'envoyer les données à nouveau lors du cycle de programme suivant, si toutes n'ont pas été envoyées. Si le résultat BufferFull est identique, optimisez le paramètre d'application : Augmentez la taille du tampon du socket Augmentez la taille du tampon de réception du socket sur le site distant Adaptez le cycle d'envoi du temps au temps de traitement du site distant. EIO0000002804 09/2020 85 Blocs fonction Méthode SendOutOfBand Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Transmettre des données à l'homologue, au format OutOfBand Description fonctionnelle Transmet des données à l'homologue, au format OutOfBand. Les données sont lues depuis le tampon fourni par l'application. Renvoie le nombre d'octets envoyés au site distant UDINT. Pour plus d'informations sur les méthodes d'envoi, consultez la section Méthode d'envoi (voir page 83). Interface Entrée Type de données Plage valide Description i_pbySendBuffer POINTER TO BYTE - Adresse de départ du tampon contenant les données à envoyer. In_Out Type de données Plage valide Description iq_udiFillLevel UDINT 1 Niveau de remplissage du tampon fourni par l'application, avant l'opération. Réglez cette valeur sur 1. Cette valeur sera conservée après l'opération si les données n'ont été envoyées que partiellement. 86 EIO0000002804 09/2020 Blocs fonction Utilisé par FB_TCPClient EIO0000002804 09/2020 87 Blocs fonction Méthode Shutdown Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Envoyer une demande de fin de connexion au serveur Description fonctionnelle Envoie une demande de fin de connexion au serveur. Les données entrantes peuvent encore être lues, mais il est impossible d'envoyer de nouvelles données. Une fois les données entrantes reçues et traitées, appelez la méthode Close. La valeur de retour de BOOL est TRUE si l’exécution de la fonction est correcte. Evaluez la propriété Result, si la valeur de retour est FALSE. Utilisé par 88 FB_TCPClient/FB_TCPClient2 EIO0000002804 09/2020 Blocs fonction Sous-chapitre 7.3 Serveur TCP Serveur TCP Contenu de ce sous-chapitre Ce sous-chapitre contient les sujets suivants : Sujet Page FB_TCPServer/FB_TCPServer2 90 Propriétés de FB_TCPServer/FB_TCPServer2 94 Méthodes de FB_TCPServer/FB_TCPServer2 97 Méthode Accept 98 Méthode CheckClients 100 Méthode Close 101 Méthode DisconnectAll 102 Méthode DisconnectClient 103 Méthode GetBoundIPAddress 104 Méthode GetBoundPort 105 Méthode Open 106 Méthode OpenTls 108 Méthode PeekFromFirstAvailableClient 110 Méthode PeekFromSpecificClient 112 Méthode ReceiveFromFirstAvailableClient 114 Méthode ReceiveFromSpecificClient 116 Méthode ReceiveOutOfBandFromFirstAvailableClient 118 Méthode ReceiveOutOfBandFromSpecificClient 120 Méthode ResetByteCounters 122 Méthode ResetResult 122 Méthode SendOutOfBandToAll 123 Méthode SendOutOfBandToSpecificClient 124 Méthode SendToAll 126 Méthode SendToSpecificClient 127 EIO0000002804 09/2020 89 Blocs fonction FB_TCPServer/FB_TCPServer2 Présentation Type : Bloc fonction Disponible à partir de la version : V1.0.4.0 Hérite de : - Implémente : - Tâche Le serveur TCP écoute et traite les connexions client entrantes sur un port déterminé. Dès qu'une connexion a été acceptée, il est possible de recevoir des données de la part des clients, et d'en envoyer vers un client spécifique ou vers tous les clients. Description fonctionnelle La bibliothèque fournit deux versions du bloc fonction FB_TCPServer. Le FB_TCPServer2 est une version améliorée qui prend en charge les connexions en utilisant TLS (Transport Layer Security). Si une connexion qui utilise TLS est prise en charge selon que le contrôleur où FB_TcpClient2 est utilisé. Consultez le manuel spécifique de votre contrôleur pour vérifier si la communication TCP qui utilise TLS est prise en charge. Le principe de fonctionnement des blocs fonction est le même. Il y a quelques différences pour les propriétés fournies et les méthodes qui sont décrites dans les chapitres respectifs. En général la méthode Open ou OpenTls est appelée en premier, en définissant le numéro de port TCP et éventuellement une adresse IP d'une interface permettant l'écoute. L'étape suivante consiste à récupérer la valeur de la propriété State, de façon cyclique, jusqu'à ce qu'elle soit différente de Opening. Si l'état ne passe pas à Opened, une erreur s'est produite. Vous pouvez alors déterminer la cause du problème d'après la valeur de la propriété Result. Si l'opération aboutit (état = Opened), le serveur est prêt à accepter des connexions entrantes. Comme indiqué par la propriété IsNewConnectionAvailable. Elle doit être vérifiée de façon cyclique par l'application. Si sa valeur est TRUE, la méthode Accept doit être appelée. L'adresse IP et le port d'origine de la connexion sont alors renvoyés. À l'aide d'un programme, vous pouvez ensuite décider de maintenir ou non la connexion. La propriété NumberOfConnectedClients permet de vérifier le nombre de clients connectés. 90 EIO0000002804 09/2020 Blocs fonction Pour vérifier si un client a envoyé des données au serveur et si celles-ci peuvent être lues, utilisez la propriété IsDataAvailable. Avec les méthodes ReceiveFromFirstAvailableClient et PeekFromFirstAvailableClient, il est possible de lire les données sur le premier client où des données sont disponibles sans connaître son adresse IP ni son port. Tant que la méthode n'est pas appelée, l'application ne permet pas de savoir à partir de quel client les données sont lues. L'adresse IP et le port du client sont donc fournies comme sorties des méthodes. Sauf mention contraire dans la présente description, le principe de fonctionnement des méthodes FB_TCPServer/FB_TCPServer2 est identique à celui de FB_TCPClient/FB_TCPClient2 (voir page 60) . La méthode SendToSpecificClient peut être utilisée pour répondre directement à un client après réception des données via la méthode ReceiveFromFirstAvailableClient. Dans ce cas, l'application doit fournir l'adresse IP et le port d'un client connecté au serveur TCP. Le principe est ensuite le même qu'avec la méthode Send de FB_TCPClient/FB_TCPClient2. Pour envoyer des données aux clients connectés, utilisez la méthode SendToAll. Avec la méthode SendToAll, une erreur du client met fin à la transmission vers ce dernier et le nombre d'octets envoyés est retourné. Par la suite, vous pouvez déterminer si tous les octets ont été envoyés à l'ensemble des clients en comparant la somme des octets envoyés et la quantité de données à envoyer multipliée par le nombre de clients. Lorsque le serveur TCP est à l'état Listening, la méthode CheckClients doit être appelée de façon cyclique pour déterminer si un client a fermé la connexion. Il est aussi possible de récupérer la propriété NumberOfConnectedClients. En cas de déconnexion par un client et s'il n'y a plus aucune donnée à lire de cette connexion client, celle-ci est fermée et libérée pour permettre une nouvelle connexion entrante. Sinon, la connexion est maintenue disponible jusqu'à la lecture des données ou l'appel de la méthode DisconnectClient pour cette connexion. Lors de l'appel de la méthode DisconnectClient, les données reçues du client indiqué non encore traitées sont rejetées. L'échec du traitement d'une méthode est indiqué dans la valeur de la propriété Result. La valeur de Result doit être vérifiée après chaque appel de méthode. La méthode ResetResult permet de réinitialiser le résultat sur Ok. NOTE : Toutes les méthodes sont bloquées tant que la valeur de la propriété Result est différente de Ok. Dans ce cas, un appel de méthode est annulé, sans modification des informations de la propriété Result. Interface Le bloc fonction n'a ni entrées, ni sorties. Il remplit sa fonction par le biais de méthodes et de propriétés. Afin de détecter les déconnexions des clients connectés, la méthode CheckClients doit être appelée cycliquement. Vous pouvez aussi récupérer la propriété NumberOfConnectedClients. Vous pouvez vérifier que les clients sont encore connectés ou si la connexion a été fermée. EIO0000002804 09/2020 91 Blocs fonction Exemple de mise en œuvre PROGRAM LibDocu_TcpServer2 VAR xOpen : BOOL; xOpenTls : BOOL; xClose : BOOL; etResult : TCPUDP.ET_Result; etState : TCPUDP.ET_State; iState : INT; fbTcpServer : TCPUDP.FB_TCPServer2; stTlsSettings : TCPUDP.ST_TlsSettingsServer; sIp : STRING(15) := ''; uiPort : UINT := 12345; END_VAR CASE iState OF 0: // idle IF xOpen OR xOpenTls THEN IF xOpen AND_THEN NOT fbTcpServer.Open(sIp, uiPort) THEN iState := 100; // error state ELSIF xOpenTls AND_THEN NOT fbTcpServer.OpenTls(sIp, uiPort, stTlsSettings) THEN iState := 100; // error state END_IF xOpen := xOpenTls := FALSE; END_IF IF fbTcpServer.State = TCPUDP.ET_State.Listening THEN iState := 10; END_IF 10: // listening IF fbTcpServer.State = TCPUDP.ET_State.Idle THEN iState := 0; ELSIF fbTcpServer.State <> TCPUDP.ET_State.Listening AND fbTcpServer.State <> TCPUDP.ET_State.Closing THEN iState := 100; // unexpected state ELSIF fbtcpserver.IsNewConnectionAvailable THEN fbTcpServer.Accept(); iState := 20; // state accepting ELSE IF xClose THEN xClose := FALSE; fbTcpServer.Close(); END_IF (* your code comes here, e.g. check for data available to read *) 92 EIO0000002804 09/2020 Blocs fonction END_IF 20: // accepting IF fbTcpServer.State <> TCPUDP.ET_State.Accepting AND fbTcpServer.State <> TCPUDP.ET_State.Listening THEN iState := 100; // unexpected, go to error state ELSIF fbTcpServer.State = TCPUDP.ET_State.Listening THEN iState := 10;// incoming connection successful accepted END_IF 100: // error state (* your code comes here*) END_CASE etResult := fbTcpServer.Result; etState := fbTcpServer.State; EIO0000002804 09/2020 93 Blocs fonction Propriétés de FB_TCPServer/FB_TCPServer2 Informations générales Les propriétés fournies par FB_TCPServer2 ont presque la même fonction que les propriétés correspondantes fournies par le bloc fonction FB_TCPServer. Les différences sont décrites dans le tableau ci-dessous. Propriétés communes de FB_TCPServer et FB_TCPServer2 Nom Type de données Accès Description IsDataAvailable BOOL Lecture Indique si des données peuvent être lues sur un client au moins. IsNewConnectionAvailable BOOL Lecture Indique si une nouvelle connexion entrante est en attente d'acceptation. NumberOfConnectedClients UINT Lecture Renvoie le nombre de clients connectés (y compris ceux déconnectés, mais qui disposent de données à lire). (Plage : 0 à GPL.Gc_uiTCPServerMaxConnectio ns) ET_Result Lecture Indique le résultat du dernier appel de méthode. Si le résultat est différent de Ok, la valeur n'est pas remplacée et aucune méthode n'est appelée. Lecture Indique l'état du socket. Result (voir page 31) State ET_State (voir page 35) TotalBytesReceived TotalBytesSent SockOpt_CustomPort 94 ULINT Lecture Indique le nombre total d'octets reçus. ULINT Lecture UDINT Lecture/écrit Permet d’activer/désactiver l’option de ure socket SO_LINGER pour la connexion ouverte par FB_TcpServer. (Plage : 1 à 264-1) Indique le nombre total d'octets envoyés. (Plage : 1 à 264-1) EIO0000002804 09/2020 Blocs fonction Nom Type de données Accès SockOpt_KeepAlive BOOL Lecture/écrit Si la valeur est TRUE, la pile TCP doit ure envoyer régulièrement des paquets vides pour vérifier que le site distant est joignable. Si ce n'est plus le cas, la connexion passe à l'état Shutdown. Description NOTE : Dans la plupart des cas, définissez cette option de façon à détecter si le site distant est déconnecté (mise hors tension ou câble débranché). NOTE : Une fois désactivée pour le serveur, l'option de socket KeepAlive ne peut pas être activée pour les clients connectés. SockOpt_ReuseAddress BOOL Lecture/écrit Si TRUE, permet d'ouvrir un serveur même ure si le port est toujours lié mais n'est pas utilisé activement par une autre ressource. SockOpt_ReceiveBufferSize UDINT Lecture/écrit Permet de définir ou d'obtenir la taille du ure tampon de réception de la pile. Cette valeur doit toujours être supérieure à la quantité de données reçues pendant un transfert, pour éviter de perdre des données. (Plage : 1 à 2 147 483 647) SockOpt_SendBufferSize UDINT Lecture/écrit Permet de définir ou d'obtenir la taille du ure tampon d'envoi de la pile. Cette valeur doit toujours être supérieure à la quantité de données envoyées pendant un transfert. (Plage : 1 à 2 147 483 647) Propriétés complémentaires de FB_TCPServer Nom Type de données Accès Description BytesAvailableToReadFirstA vailableClient UDINT Lecture Indique le nombre d'octets pouvant être lus sur le premier client contenant des données. (Plage : 0 à 2 147 483 647) BytesAvailableToReadTotal UDINT Lecture Indique le nombre total (la somme) des octets pouvant être lus sur les clients connectés. (Plage : 0 à 2 147 483 647) ConnectedClients ARRAY [1..GPL. Lecture Gc_uiTCPServer MaxConnections ] OF ST_ClientConne ction EIO0000002804 09/2020 Renvoie un tableau contenant des informations sur les clients connectés. Consultez ST_ClientConnection (voir page 38). 95 Blocs fonction Propriétés complémentaires de FB_TCPServer2 Nom Type de données ConnectedClients2 ARRAY [1..GPL. Lecture Gc_uiTCPServer MaxConnections ] OF ST_ClientConne ction2 TimeoutAcceptTls UDINT Lecture/écrit Indique le délai en secondes d'acceptation ure d'une connexion en utilisant la méthode Accept sur les ports ouverts avec la méthode OpenTls. TlsUsed BOOL Lecture 96 Accès Description Renvoie un tableau contenant des informations sur les clients connectés. Consultez ST_ClientConnection2 (voir page 39). Indique si le port a été ouvert en utilisant la méthode OpenTls. EIO0000002804 09/2020 Blocs fonction Méthodes de FB_TCPServer/FB_TCPServer2 Présentation Les méthodes fournies par FB_TCPServer2 ont presque la même fonction que les méthodes correspondantes fournies par le bloc fonction FB_TCPServer. Les différences sont décrites dans le tableau ci-dessous. Méthode FB_TCPServer FB_TCPServer2 Accept (voir page 98) x x CheckClients (voir page 100) x x Close (voir page 101) x x DisconnectAll (voir page 102) x x DisconnectClient (voir page 103) x x GetBoundIPAddress (voir page 104) x x GetBoundPort (voir page 105) x x Open (voir page 106) x x OpenTls (voir page 108) - x PeekFromFirstAvailableClient (voir page 110) x x PeekFromSpecificClient (voir page 112) x x ReceiveFromFirstAvailableClient (voir page 114) x x ReceiveFromSpecificClient (voir page 116) x x ReceiveOutOfBandFromFirstAvailableClient x - ReceiveOutOfBandFromSpecificClient x - ResetByteCounters (voir page 122) x x ResetResult (voir page 122) x x SendOutOfBandToAll (voir page 123) x - SendOutOfBandToSpecificClient (voir page 124) x - SendToAll (voir page 126) x x SendToSpecificClient (voir page 127) x x (voir page 118) (voir page 120) x - Pris en charge par le bloc fonction. Non pris en charge par le bloc fonction. EIO0000002804 09/2020 97 Blocs fonction Méthode Accept Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Accepter une connexion entrante, la rendant ainsi disponible pour le transfert de données Description fonctionnelle Accepte une connexion entrante, ce qui la rend disponible pour le transfert de données. L'adresse IP de la source et le port d'origine de la connexion sont disponibles comme sorties. La valeur de retour de BOOL est TRUE si l’exécution de la fonction est correcte. Evaluez la propriété Result, si la valeur de retour est FALSE. Transition d'état du serveur Etape 98 Description 1 Etat initial : Idle, NewConnectionAvailable est TRUE 2 Appel de fonction 3 Etat : Accepting 4 Etat final : Listening, sinon une erreur est détectée EIO0000002804 09/2020 Blocs fonction Gestion du backlog La pile TCP accepte immédiatement les connexions entrantes et les conserve dans le backlog. Pour le client, il s'agit d'une connexion normale et il peut envoyer des données au serveur. Par conséquent, il est possible qu'une connexion soit acceptée alors qu'elle a été fermée par le client. Les données reçues de ce client sont encore disponibles tant que les données n'ont pas été lues en utilisant l'une des méthodes de réception, la connexion demeure enregistrée dans la propriété ConnectedClients. Dès que toutes les données d'une connexion cliente ont été lues à l'aide d'une méthode Receive, cette connexion disparaît de la liste fournie par la propriété ConnectedClients. Le nombre de connexions conservées par le backlog peut être défini dans le GPL de cette bibliothèque avec le paramètre Gc_uiTCPServerMaxBacklog (voir Variables globales (voir page 49) Interface Sortie Type de données Plage valide Description q_sClientIP STRING(15) - Adresse IP du client acceptée, codée sous forme de chaîne. q_dwClientIP DWORD - Adresse IP du client sous la forme DWORD. Chaque octet représente un chiffre de l'adresse IPv4. q_uiClientPort UINT 1…65 535 Port source à partir duquel le client se connecte. Utilisé par FB_TCPServer/FB_TCPServer2 EIO0000002804 09/2020 99 Blocs fonction Méthode CheckClients Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Vérifier les connexions client en cas de déconnexions déclenchées par un client Description fonctionnelle Vérifie les connexions client en cas de déconnexions déclenchées par un client et ferme la connexion s'il n'y a plus aucune donnée non lue sur le client déconnecté. Ne renvoie aucune valeur. Utilisé par 100 FB_TCPServer/FB_TCPServer2 EIO0000002804 09/2020 Blocs fonction Méthode Close Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Déconnecter les clients et fermer le socket serveur Description fonctionnelle Déconnecte les clients et ferme le socket serveur, en ignorant éventuellement les données des tampons de réception du client. Alors le serveur n'écoute plus les nouvelles connexions. La valeur de retour de BOOL est TRUE si l’exécution de la fonction est correcte. Evaluez la propriété Result, si la valeur de retour est FALSE. Transition d'état du client Etape Description 1 Etat initial : Listening 2 Appel de fonction 3 Etat : Idle Utilisé par FB_TCPServer/FB_TCPServer2 EIO0000002804 09/2020 101 Blocs fonction Méthode DisconnectAll Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Déconnecter les clients connectés Description fonctionnelle Déconnecte les clients connectés et continue d'écouter les nouvelles connexions entrantes. La valeur de retour de BOOL est TRUE si l’exécution de la fonction est correcte. Evaluez la propriété Result, si la valeur de retour est FALSE. Utilisé par 102 FB_TCPServer/FB_TCPServer2 EIO0000002804 09/2020 Blocs fonction Méthode DisconnectClient Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Déconnecter un client spécifique Description fonctionnelle Déconnecte un client particulier. La valeur de retour de BOOL est TRUE si l’exécution de la fonction est correcte. Evaluez la propriété Result, si la valeur de retour est FALSE. Interface Entrée Type de données Plage valide Description i_sClientIP STRING(15) - Adresse IP du client à déconnecter. i_uiClientPort UINT 1…65 535 Port source du client à déconnecter. Utilisé par FB_TCPServer/FB_TCPServer2 EIO0000002804 09/2020 103 Blocs fonction Méthode GetBoundIPAddress Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Renvoyer l'adresse IP de liaison Description fonctionnelle Cette fonction permet d'obtenir l'adresse IP liée au socket. Si la valeur de retour est une chaîne nulle (''), l'adresse IP ne peut pas être obtenue. Cette fonction est prise en charge sur les plates-formes où la bibliothèque SysSocket version 3.5.6.0 ou ultérieure est installée. Utilisé par 104 FB_TCPServer/FB_TCPServer2 EIO0000002804 09/2020 Blocs fonction Méthode GetBoundPort Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Renvoyer le port de liaison Description fonctionnelle Cette fonction permet d'obtenir le port lié au socket. Si la valeur de retour UINT est 0, le numéro de port ne peut pas être obtenu. Cette fonction est prise en charge sur les plates-formes où la bibliothèque SysSocket version 3.5.6.0 ou ultérieure est installée. Utilisé par FB_TCPServer/FB_TCPServer2 EIO0000002804 09/2020 105 Blocs fonction Méthode Open Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Ouvrir le socket serveur Description fonctionnelle Ouvre le socket serveur et démarre l'écoute des connexions entrantes. La valeur de retour de BOOL est TRUE si l’exécution de la fonction est correcte. Evaluez la propriété Result, si la valeur de retour est FALSE. Transition d'état du serveur Etape Description 1 Etat initial : Idle 2 Appel de fonction 3 Etat : Opening 4 Etat final : Listening, sinon une erreur est détectée Interface Entrée Type de données Plage valide Description i_sInterfaceIP STRING(15) - Adresse IP de l'interface à lier. Si la valeur est nulle ou égale à 0.0.0.0, le serveur est disponible sur toutes les interfaces. i_uiServerPort UINT 1…65 535 Port TCP sur lequel écouter. 106 EIO0000002804 09/2020 Blocs fonction Utilisé par FB_TCPServer/FB_TCPServer2 EIO0000002804 09/2020 107 Blocs fonction Méthode OpenTls Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Ouvrir le socket serveur en utilisant TLS (Transport Layer Security). Description fonctionnelle Ouvrir le port défini en utilisant TLS (Transport Layer Security) et lancer l'écoute pour les connexions entrantes. La valeur de retour de BOOL est TRUE si l’exécution de la fonction est correcte. Evaluez la propriété Result, si la valeur de retour est FALSE. Transition d'état du serveur Etape Description 1 Etat initial : Idle 2 Appel de fonction 3 Etat : Opening 4 Etat final : Listening, sinon une erreur est détectée Interface Entrée Type de données Plage valide Description i_sInterfaceIP STRING(15) - Adresse IP de l'interface à lier. Si la valeur est nulle ou égale à 0.0.0.0, le serveur est disponible sur toutes les interfaces. i_uiServerPort UINT 1…65 535 Port TCP sur lequel écouter. 108 EIO0000002804 09/2020 Blocs fonction Entrée Type de données Plage valide Description i_stTlsSettings ST_TlsSettingsServer - Paramètres TLS pour la connexion que doit établir FB_TCPServer2. (voir page 48) Utilisé par FB_TCPServer2 EIO0000002804 09/2020 109 Blocs fonction Méthode PeekFromFirstAvailableClient Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Lire les données enregistrées dans le tampon de réception du premier client qui contient des données pouvant être lues Description fonctionnelle Lit les données enregistrées dans le tampon de réception du premier client qui contient des données pouvant être lues, sans les supprimer du tampon après leur lecture. La méthode Peek peut être utilisée si le traitement correct requiert la disponibilité d'une certaine quantité de données et si cette quantité peut être déterminée d'après une partie des données (un champ de longueur, par exemple). Dans ce cas, les données peuvent être copiées dans l'application par un appel de la méthode Receive. La valeur de retour UDINT indique le nombre d’octets écrits dans la mémoire tampon fournie par l’application. Considérations pour les connexions en utilisant TLS Le fonctionnement des méthodes Peek et Receive peut être différent pour les différentes connexions avec et sans la sécurité TLS. En particulier si des paquets volumineux sont échangés. Lors de l'exécution des méthodes sur une connexion qui utilise TLS, il peut être nécessaire d'exécuter des appels de méthode jusqu'à la copie ou le déplacement de toutes les données déplacées sur la mémoire tampon de l'application. Dans tous les cas, vérifiez avant le traitement des données, la quantité de données copiées ou déplacées et si les données sont complètes. 110 EIO0000002804 09/2020 Blocs fonction Interface Entrée Type de données Plage valide Description i_pbyReceiveBuffer POINTER TO BYTE - Adresse de départ du tampon à partir de laquelle les données reçues doivent être écrites. i_udiReceiveBufferSize UDINT 1…2 147 483 647 Nombre d’octets à lire. NOTE : La valeur ne doit pas dépasser la taille de la mémoire tampon. NOTE : Pour empêcher tout accès non autorisé, par exemple un accès de pointeur (hors limites) dans la mémoire, utilisez l'opérateur arithmétique SIZEOF avec le tampon cible pour déterminer la valeur de i_udiReceiveBufferSize. Sortie Type de données Plage valide Description q_sClientIP STRING(15) - Adresse IP du client. q_dwClientIP DWORD - Adresse IP du client sous la forme DWORD. Chaque octet représente un chiffre de l'adresse IPv4. q_uiClientPort UINT - Port source du client. Utilisé par FB_TCPServer/FB_TCPServer2 EIO0000002804 09/2020 111 Blocs fonction Méthode PeekFromSpecificClient Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Lire les données enregistrées dans le tampon de réception du client identifié par une adresse IP et un port source Description fonctionnelle Lit les données enregistrées dans le tampon de réception du client identifié par l'adresse IP et le port source, sans les supprimer du tampon après leur lecture. La méthode Peek peut être utilisée si le traitement correct requiert la disponibilité d'une certaine quantité de données et si cette quantité peut être déterminée d'après une partie des données (un champ de longueur, par exemple). Dans ce cas, les données peuvent être copiées dans l'application par un appel de la méthode Receive. La valeur de retour UDINT indique le nombre d’octets écrits dans la mémoire tampon fournie par l’application. Considérations pour les connexions en utilisant TLS Le fonctionnement des méthodes Peek et Receive peut être différent pour les différentes connexions avec et sans la sécurité TLS. En particulier si des paquets volumineux sont échangés. Lors de l'exécution des méthodes sur une connexion qui utilise TLS, il peut être nécessaire d'exécuter des appels de méthode jusqu'à la copie ou le déplacement de toutes les données déplacées sur la mémoire tampon de l'application. Dans tous les cas, vérifiez avant le traitement des données, la quantité de données copiées ou déplacées et si les données sont complètes. 112 EIO0000002804 09/2020 Blocs fonction Interface Entrée Type de données Plage valide Description i_sClientIP STRING(15) - Adresse IP du client connecté à partir duquel les données doivent être lues. i_uiClientPort UINT 1…65 535 Port source du client connecté à partir duquel les données doivent être lues. i_pbyReceiveBuffer POINTER TO BYTE - Adresse de départ du tampon à partir de laquelle les données reçues doivent être écrites. i_udiReceiveBufferSize UDINT 1…2 147 483 647 Nombre d’octets à lire. NOTE : La valeur ne doit pas dépasser la taille de la mémoire tampon. Utilisé par FB_TCPServer/FB_TCPServer2 EIO0000002804 09/2020 113 Blocs fonction Méthode ReceiveFromFirstAvailableClient Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Lire les données enregistrées dans le tampon de réception du premier client qui contient des données pouvant être lues et les supprimer du tampon si aucune erreur n'a été détectée pendant leur lecture Description fonctionnelle Lit les données enregistrées dans le tampon de réception du premier client qui contient des données pouvant être lues et les supprime du tampon si aucune erreur n'a été détectée pendant leur lecture. La valeur de retour UDINT indique le nombre d’octets écrits dans la mémoire tampon fournie par l’application. Pour plus d'informations sur les méthodes de réception, consultez la section Méthode de réception (voir page 76). Considérations pour les connexions en utilisant TLS Le fonctionnement des méthodes Peek et Receive peut être différent pour les différentes connexions avec et sans la sécurité TLS. En particulier si des paquets volumineux sont échangés. Lors de l'exécution des méthodes sur une connexion qui utilise TLS, il peut être nécessaire d'exécuter des appels de méthode jusqu'à la copie ou le déplacement de toutes les données déplacées sur la mémoire tampon de l'application. Dans tous les cas, vérifiez avant le traitement des données, la quantité de données copiées ou déplacées et si les données sont complètes. 114 EIO0000002804 09/2020 Blocs fonction Interface Entrée Type de données Plage valide Description i_pbyReceiveBuffer POINTER TO BYTE - Adresse de départ du tampon à partir de laquelle les données reçues doivent être écrites. i_udiReceiveBufferSize UDINT 1…2 147 483 647 Nombre d’octets à lire. NOTE : La valeur ne doit pas dépasser la taille de la mémoire tampon. NOTE : Pour empêcher tout accès non autorisé, par exemple un accès de pointeur (hors limites) dans la mémoire, utilisez l'opérateur arithmétique SIZEOF avec le tampon cible pour déterminer la valeur de i_udiReceiveBufferSize. In_Out Type de données Plage valide Description iq_udiFillLevel UDINT 1…2 147 483 647 Indique le niveau de remplissage du tampon. Avant l’appel de la fonction : Les données sont écrites à partir de ce point. Après l’appel de la fonction : Mise à jour en ajoutant le nombre d’octets écrits sur la valeur d’origine. Sortie Type de données Plage valide Description q_sClientIP STRING(15) - Adresse IP du client. q_dwClientIP DWORD - Adresse IP du client sous la forme DWORD. Chaque octet représente un chiffre de l'adresse IPv4. q_uiClientPort UINT - Port source du client. Utilisé par FB_TCPServer/FB_TCPServer2 EIO0000002804 09/2020 115 Blocs fonction Méthode ReceiveFromSpecificClient Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Lire les données enregistrées dans le tampon de réception du client identifié par une adresse IP et un port source et les supprimer du tampon si aucune erreur n'a été détectée pendant leur lecture Description fonctionnelle Lit les données enregistrées dans le tampon de réception du client identifié par une adresse IP et un port source et les supprime du tampon si aucune erreur n'a été détectée pendant leur lecture. La valeur de retour UDINT indique le nombre d’octets écrits dans la mémoire tampon fournie par l’application. Pour plus d'informations sur les méthodes de réception, consultez la section Méthode de réception (voir page 76). Considérations pour les connexions en utilisant TLS Le fonctionnement des méthodes Peek et Receive peut être différent pour les différentes connexions avec et sans la sécurité TLS. En particulier si des paquets volumineux sont échangés. Lors de l'exécution des méthodes sur une connexion qui utilise TLS, il peut être nécessaire d'exécuter des appels de méthode jusqu'à la copie ou le déplacement de toutes les données déplacées sur la mémoire tampon de l'application. Dans tous les cas, vérifiez avant le traitement des données, la quantité de données copiées ou déplacées et si les données sont complètes. 116 EIO0000002804 09/2020 Blocs fonction Interface Entrée Type de données Plage valide Description i_sClientIP STRING(15) - Adresse IP du client connecté à partir duquel les données doivent être lues. i_uiClientPort UINT 1…65 535 Port source du client connecté à partir duquel les données doivent être lues. i_pbyReceiveBuffer POINTER TO BYTE - Adresse de départ du tampon à partir de laquelle les données reçues doivent être écrites. i_udiReceiveBufferSize UDINT 1…2 147 483 647 Nombre d’octets à lire. NOTE : La valeur ne doit pas dépasser la taille de la mémoire tampon. NOTE : Pour empêcher tout accès non autorisé, par exemple un accès de pointeur (hors limites) dans la mémoire, utilisez l'opérateur arithmétique SIZEOF avec le tampon cible pour déterminer la valeur de i_udiReceiveBufferSize. In_Out Type de données Plage valide Description iq_udiFillLevel UDINT 1…2 147 483 647 Indique le niveau de remplissage du tampon. Avant l’appel de la fonction : Les données sont écrites à partir de ce point. Après l’appel de la fonction : Mise à jour en ajoutant le nombre d’octets écrits sur la valeur d’origine. Utilisé par FB_TCPServer/FB_TCPServer2 EIO0000002804 09/2020 117 Blocs fonction Méthode ReceiveOutOfBandFromFirstAvailableClient Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Lire les données OutOfBand enregistrées dans le tampon de réception du premier client qui contient des données pouvant être lues Description fonctionnelle Lit les données OutOfBand enregistrées dans le tampon de réception du premier client qui contient des données pouvant être lues et les supprime du tampon si aucune erreur n'a été détectée pendant leur lecture. La valeur de retour UDINT indique le nombre d’octets écrits dans la mémoire tampon fournie par l’application. Pour plus d'informations sur les méthodes de réception, consultez la section Méthode de réception (voir page 76). Interface Entrée Type de données Plage valide Description i_pbyReceiveBuffer POINTER TO BYTE - Adresse de départ du tampon à partir de laquelle les données reçues doivent être écrites. i_udiReceiveBufferSize UDINT 1…2 147 483 647 Nombre d’octets à lire. NOTE : La valeur ne doit pas dépasser la taille de la mémoire tampon. NOTE : Pour empêcher tout accès non autorisé, par exemple un accès de pointeur (hors limites) dans la mémoire, utilisez l'opérateur arithmétique SIZEOF avec le tampon cible pour déterminer la valeur de i_udiReceiveBufferSize. 118 EIO0000002804 09/2020 Blocs fonction In_Out Type de données Plage valide Description iq_udiFillLevel UDINT 1…2 147 483 647 Indique le niveau de remplissage du tampon. Avant l’appel de la fonction : Les données sont écrites à partir de ce point. Après l’appel de la fonction : Mise à jour en ajoutant le nombre d’octets écrits sur la valeur d’origine. Sortie Type de données Plage valide Description q_sClientIP STRING(15) - Adresse IP du client. q_dwClientIP DWORD - Adresse IP du client sous la forme DWORD. Chaque octet représente un chiffre de l'adresse IPv4. q_uiClientPort UINT - Port source du client. Utilisé par FB_TCPServer EIO0000002804 09/2020 119 Blocs fonction Méthode ReceiveOutOfBandFromSpecificClient Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Lire les données OutOfBand enregistrées dans le tampon de réception du client identifié par une adresse IP et un port source Description fonctionnelle Lit les données OutOfBand enregistrées dans le tampon de réception du client identifié par une adresse IP et un port source et les supprime du tampon si aucune erreur n'a été détectée pendant leur lecture. La valeur de retour UDINT indique le nombre d’octets écrits dans la mémoire tampon fournie par l’application. Pour plus d'informations sur les méthodes de réception, consultez la section Méthode de réception (voir page 76). Interface Entrée Type de données Plage valide Description i_sClientIP STRING(15) - Adresse IP du client connecté à partir duquel les données doivent être lues. i_uiClientPort UINT 1…65 535 Port source du client connecté à partir duquel les données doivent être lues. i_pbyReceiveBuffer POINTER TO BYTE - Adresse de départ du tampon à partir de laquelle les données reçues doivent être écrites. 120 EIO0000002804 09/2020 Blocs fonction Entrée Type de données Plage valide Description i_udiReceiveBufferSize UDINT 1…2 147 483 647 Nombre d’octets à lire. NOTE : La valeur ne doit pas dépasser la taille de la mémoire tampon. NOTE : Pour empêcher tout accès non autorisé, par exemple un accès de pointeur (hors limites) dans la mémoire, utilisez l'opérateur arithmétique SIZEOF avec le tampon cible pour déterminer la valeur de i_udiReceiveBufferSize. In_Out Type de données Plage valide Description iq_udiFillLevel UDINT 1…2 147 483 647 Indique le niveau de remplissage du tampon. Avant l’appel de la fonction : Les données sont écrites à partir de ce point. Après l’appel de la fonction : Mise à jour en ajoutant le nombre d’octets écrits sur la valeur d’origine. Utilisé par FB_TCPServer EIO0000002804 09/2020 121 Blocs fonction Méthode ResetByteCounters Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Remettre à zéro les compteurs du nombre total d'octets reçus et envoyés Description fonctionnelle Remet à zéro les compteurs du nombre total d'octets reçus et envoyés. Ne renvoie aucune valeur. Utilisé par FB_TCPServer/FB_TCPServer2 Méthode ResetResult Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Réinitialiser les valeurs de la propriété Result sur Ok Description fonctionnelle Réinitialise les valeurs de la propriété Result sur Ok. Ne renvoie aucune valeur. Utilisé par 122 FB_TCPServer/FB_TCPServer2 EIO0000002804 09/2020 Blocs fonction Méthode SendOutOfBandToAll Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Envoyer des données OutOfBand aux clients connectés Description fonctionnelle Envoie des données OutOfBand aux clients connectés. Les erreurs éventuellement détectées au niveau des clients sont ignorées. Renvoie la somme des octets envoyés, au format UDINT. Si celle-ci est égale au nombre de clients connectés multiplié par la quantité de données à envoyer, cela signifie que les données ont bien été transmises aux clients. NOTE : Pour savoir si une erreur a été détectée au niveau d'un client, utilisez ensuite la méthode SendOutOfBandToSpecificClient. Vous pouvez récupérer le tableau des clients connectés avec la propriété ConnectedClients et transmettre le message à chacun des clients connectés. Interface Entrée Type de données Plage valide Description i_pbySendBuffer POINTER TO BYTE - Adresse de départ du tampon contenant les données à envoyer. i_udiNumBytesToSend UDINT 1 Nombre d'octets à envoyer dans le tampon. Réglez cette valeur sur 1. Utilisé par FB_TCPServer EIO0000002804 09/2020 123 Blocs fonction Méthode SendOutOfBandToSpecificClient Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Envoyer des données OutOfBand seulement à un client particulier, identifié par une adresse IP et un port Description fonctionnelle Envoie des données OutOfBand seulement à un client particulier, identifié par une adresse IP et un port. Renvoie le nombre d'octets envoyés au site distant UDINT. Pour plus d'informations sur les méthodes d'envoi, consultez la section Méthode d'envoi (voir page 83). Interface Entrée Type de données Plage valide Description i_sClientIP STRING(15) - Adresse IP du client connecté auquel les données doivent être envoyées. i_uiClientPort UINT 1…65 535 Port source du client connecté auquel les données doivent être envoyées. i_pbySendBuffer POINTER TO BYTE - Adresse de départ du tampon contenant les données à envoyer. 124 EIO0000002804 09/2020 Blocs fonction In_Out Type de données Plage valide Description iq_udiFillLevel UDINT 1 Niveau de remplissage du tampon fourni par l'application, avant l'opération. Réglez cette valeur sur 1. Cette valeur sera conservée après l'opération si les données n'ont été envoyées que partiellement. Utilisé par FB_TCPServer EIO0000002804 09/2020 125 Blocs fonction Méthode SendToAll Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Envoyer des données aux clients connectés Description fonctionnelle Envoie des données aux clients connectés. Les erreurs éventuellement détectées au niveau des clients sont ignorées. Renvoie la somme des octets envoyés, au format UDINT. Si celle-ci est égale au nombre de clients connectés multiplié par la quantité de données à envoyer, cela signifie que les données ont bien été transmises aux clients. NOTE : Pour savoir si une erreur a été détectée au niveau d'un client, utilisez ensuite la méthode SendToSpecificClient. Vous pouvez récupérer le tableau des clients connectés avec la propriété ConnectedClients et transmettre le message à chacun des clients connectés. Interface Entrée Type de données Plage valide Description i_pbySendBuffer POINTER TO BYTE - Adresse de départ du tampon contenant les données à envoyer. i_udiNumBytesToSend UDINT 1…2 147 483 647 Nombre d'octets à envoyer dans le tampon. Utilisé par 126 FB_TCPServer/FB_TCPServer2 EIO0000002804 09/2020 Blocs fonction Méthode SendToSpecificClient Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Envoie des données seulement à un client particulier, identifié par une adresse IP et un port Description fonctionnelle Envoie des données seulement à un client particulier, identifié par une adresse IP et un port. Renvoie le nombre d'octets envoyés au site distant UDINT. Pour plus d'informations sur les méthodes d'envoi, consultez la section Méthode d'envoi (voir page 83). Interface Entrée Type de données Plage valide Description i_sClientIP STRING(15) - Adresse IP du client connecté auquel les données doivent être envoyées. i_uiClientPort UINT 1…65 535 Port source du client connecté auquel les données doivent être envoyées. i_pbySendBuffer POINTER TO BYTE - Adresse de départ du tampon contenant les données à envoyer. EIO0000002804 09/2020 127 Blocs fonction In_Out Type de données Plage valide Description iq_udiFillLevel UDINT 1…2 147 483 647 Indique le niveau de remplissage du tampon. Avant l’appel de la fonction : Nombre d’octets à envoyer à partir de l’adresse de départ du tampon. Après l’appel de la fonction : Nombre d'octets du tampon qui n’ont pas pu être envoyés. Utilisé par 128 FB_TCPServer/FB_TCPServer2 EIO0000002804 09/2020 Blocs fonction Sous-chapitre 7.4 UDP UDP Contenu de ce sous-chapitre Ce sous-chapitre contient les sujets suivants : Sujet Page Communication UDP 130 FB_UDPPeer 131 Propriétés de FB_UDPPeer 136 Méthodes de FB_UDPPeer 138 FB_UDPPeer - Méthode Bind 139 FB_UDPPeer - Méthode Close 141 FB_UDPPeer - Méthode GetBoundIPAddress 142 FB_UDPPeer - Méthode GetBoundPort 142 FB_UDPPeer - Méthode LeaveMulticastGroup 144 FB_UDPPeer - Méthode JoinMulticastGroup 145 FB_UDPPeer - Méthode Open 146 FB_UDPPeer - Méthode ReceiveFrom 147 FB_UDPPeer - Méthode ResetByteCounters 149 FB_UDPPeer - Méthode ResetResult 149 FB_UDPPeer - Méthode SendTo 150 EIO0000002804 09/2020 129 Blocs fonction Communication UDP Présentation Le protocole UDP permet l'échange de données de type message entre deux systèmes ou plus, qui sont considérés comme des homologues. Les exigences en termes de connexion sont moindres. Un système peut envoyer un message à un autre homologue (monodiffusion), à plusieurs homologues (multidiffusion) ou aux homologues du même sous-réseau (diffusion). NOTE : Aucune connexion de bout en bout dédiée n'est configurée avec le protocole UDP. Les homologues communiquent en transmettant des informations de manière unidirectionnelle, d'une source vers une destination. Il est impossible de vérifier si un message a effectivement atteint l'homologue de destination ou si des informations ont été perdues en chemin. Le protocole UDP ne prévoit pas d'options d'acquittement, de retransmission ni de timeout. 130 EIO0000002804 09/2020 Blocs fonction FB_UDPPeer Présentation Type : Bloc fonction Disponible à partir de la version : V1.0.4.0 Hérite de : - Implémente : - Tâche Désigner un point de sortie pour l'envoi et la réception de messages via le protocole UDP Description fonctionnelle La méthode Open est généralement appelée en premier. Si elle aboutit, des messages peuvent être envoyés. Si vous prévoyez d'écouter un port particulier, la méthode Bind doit être utilisée pour lier le socket à ce port et éventuellement à une interface Ethernet particulière. Si les messages doivent être reçus sur toutes les interfaces Ethernet disponibles et si l'interface sortante doit être utilisée automatiquement, définissez l'entrée d'interface de la méthode sur une chaîne nulle ou sur 0.0.0.0. Pour envoyer des données à d'autres homologues, utilisez la méthode Send. Lors du premier envoi à partir d'un socket non lié, celui-ci est automatiquement lié, ce qui permet ensuite l'utilisation de la méthode Receive. L'adresse IP et le port liés au socket peuvent être demandés à l'aide des propriétés BoundIPAddress et BoundPort (si cette possibilité est prise en charge lors de l'exécution). Les propriétés IsReadable et BytesAvailableToRead permettent de savoir si des données sont prêtes à être lues. Pour les deux méthodes Send et Receive, l'application doit fournir un tampon contenant les données reçues via la méthode Received et les données à envoyer pour Send. Aucune opération préalable n'est nécessaire pour envoyer ou recevoir des diffusions. Un groupe de multidiffusion ne peut recevoir des messages de multidiffusion que si vous le reliez. Cela explique pourquoi les méthodes JoinMulticastGroup et LeaveMulticastGroup sont fournies. EIO0000002804 09/2020 131 Blocs fonction Si vous prévoyez d'envoyer des paquets de multi-diffusion UDP à l'aide du bloc fonction FB_UDPPeer, attribuez à la propriété SockOpt_MulticastDefaultInterface l'adresse IP de l'interface depuis laquelle envoyer des paquets. Ceci doit être effectué après l'appel de la méthode Open et avant le premier appel de la méthode SendTo. NOTE : En définissant l'interface par défaut pour les packages multi-diffusion avec la valeur de la propriété SockOpt_MulticastDefaultInterface, vous évitez que les packages soient envoyés à tout réseau disponible. La méthode Close peut servir à bloquer tout nouveau transfert de données et à fermer le socket. L'échec du traitement d'une méthode est indiqué dans la valeur de la propriété Result. La valeur de Result doit être vérifiée après chaque appel de méthode. La méthode ResetResult permet de réinitialiser le résultat sur Ok. NOTE : Toutes les méthodes sont bloquées tant que la valeur de la propriété Result est différente de Ok. Dans ce cas, un appel de méthode est annulé, sans modification des informations de la propriété Result. Interface Le bloc fonction n'a ni entrées, ni sorties. Il remplit sa fonction par le biais de méthodes et de propriétés. Vous n'avez pas à l'appeler directement dans l'application. Exemples de mise en œuvre Les exemples d'application suivants indiquent comment rejoindre un groupe multi-diffusion et comment y envoyer un message : Peer1 : PROGRAM Peer1 VAR //Commands xOpen : BOOL ; xSend : BOOL ; xClose : BOOL ; //UDP peer1 instance fbUdpPeer1 : TCPUDP.FB_UDPPeer ; //Peer1 state etResult : TCPUDP.ET_State ; etState : TCPUDP.ET_Result ; 132 EIO0000002804 09/2020 Blocs fonction //Application parameters iState : INT ; sSendMessage : STRING ; //Connection parameters peer1 sIpAddressLocal : STRING := '120.120.120.13' ; //IP //Multicast group parameters sMulticastIP : STRING := '224.0.1.38' ; //Unassigned multicast IP uiPortPeer2 : UINT := 8002 ; //Port of peer2 joined to multicast group END_VAR CASE iState OF 0 : //idle IF xOpen THEN fbUdpPeer1.Open ( ) ; IF fbUdpPeer1.State = TcpUdp.ET_State.Opened THEN //opened fbUdpPeer1.SockOpt_MulticastDefaultInterface := sIpAddressLocal ; //IP address of the interface from which the packages should be sent iState := 20 ; ELSE iState := 100 ; //error detected END_IF END_IF 20 : //opened IF xSend THEN //Send from peer1 to multicast group sSendMessage := 'Hello world!' ; fbUdpPeer1.SendTo ( i_pbySendBuffer := ADR (sSendMessage ) , i_udiNumBytesToSend := INT_TO_UDINT ( LEN ( sSendMessage ) ) , i_sPeerIP := sMulticastIP , i_uiPeerPort := uiPortPeer2 ) ; IF fbUdpPeer1.Result <> TcpUdp.ET_Result.Ok THEN iState := 100 ; //error detected END_IF ELSIF xClose THEN fbUdpPeer1.Close ( ) ; IF fbUdpPeer1.State = TcpUdp.ET_State.Idle THEN iState := 0 ; //closed = idle ELSE iState := 100 ; //error detected END_IF EIO0000002804 09/2020 133 Blocs fonction END_IF 100 : //error state (*your code comes here*) END_CASE //check cyclically state etResult := fbUdpPeer1.State ; etState := fbUdpPeer1.Result ; //reset commands xOpen := xSend := xClose := FALSE ; Peer2 : PROGRAM Peer2 VAR //Commands xOpenAndBind : BOOL ; xJoinMulticastGroup : BOOL ; xReceive : BOOL ; xClose : BOOL ; //UDP Peer2 instance fbUdpPeer2 : TCPUDP.FB_UDPPeer ; //Peer2 state etResult : TCPUDP.ET_State ; etState : TCPUDP.ET_Result ; //Application parameters iState : INT ; sReceiveMessage : STRING ; //Connection parameters Peer2 sIpAddressLocal : STRING ;= '120.120.120.13' ; //IP uiPortLocal : UINT := 8002 ; //Port //Multicast group parameters sMulticastIP : STRING ;= '224.0.1.38' ; //Unassigned multicast IP END_VAR CASE iState OF 0 : //idle IF xOpenAndBind THEN //open fbUdpPeer2.Open ( ) ; IF fbUdpPeer2.State = TcpUdp.ET_State.Opened THEN fbUdpPeer2.Bind ( i_sLocalIP := '' , i_uiLocalPort := uiPortLocal ) ; //opened... now bind IF fbUdpPeer2.State = TcpUdp.ET_State.Bound THEN iState := 20 ; //bound END_IF END_IF IF fbUdpPeer2.Result <> TcpUdp.ET_Result.Ok THEN 134 EIO0000002804 09/2020 Blocs fonction iState := 100 ; //error detected END_IF END_IF 20 : //bound IF xJoinMulticastGroup THEN fbUdpPeer2.JoinMulticastGroup ( i_sInterfaceIP := sIpAddressLocal , i_sGroupIP := sMulticastIP ) ; IF fbUdpPeer2.Result <> TcpUdp.ET_Result.Ok THEN iState := 100 ; //error detected END_IF ELSIF xReceive THEN //Receive message fbUdpPeer2.ReceiveFrom ( i_pbyReceiveBuffer := ADR ( sReceiveMessage ) , i_udiReceiveBufferSize := SIZEOF ( sReceiveMessage ) ) ; IF fbUdpPeer2.Result <> TcpUdp.ET_Result.Ok THEN iState := 100 ; //error detected END_IF ELSIF xClose THEN fbUdpPeer2.Close ( ) ; IF fbUdpPeer2.State = TcpUdp.ET_State.Idle THEN iState := 0 ; //closed = idle ELSE iState := 100 ; //error detected END_IF END_IF 100 : //error state (*your code comes here*) END_CASE //check cyclically state etResult := fbUdpPeer2.State ; etState := fbUdpPeer2.Result ; //reset commands xOpenAndBind := xJoinMulticastGroup := xReceive := xClose := FALSE ; EIO0000002804 09/2020 135 Blocs fonction Propriétés de FB_UDPPeer Présentation Nom Accès Description BytesAvailableToRe UDINT ad Type de données Lecture Indique le nombre d'octets dans le tampon de réception qui peuvent être lus à l'aide de la méthode Receive. (Plage : 0 à 2 147 483 647) IsReadable BOOL Lecture Indique que des données pas encore traitées par la méthode Receive ont été reçues. IsWritable BOOL Lecture Indique que l'état de la connexion permet l'envoi de données au serveur. Result ET_Result Lecture Indique le résultat du dernier appel de méthode. Si le résultat est différent de Ok, la valeur n'est pas remplacée et aucune méthode n'est appelée. State ET_State Lecture Indique l'état du socket. TotalBytesReceived ULINT Lecture Indique le nombre total d'octets reçus. (Plage : 1 à 264-1) TotalBytesSent ULINT Lecture Indique le nombre total d'octets envoyés. (Plage : 1 à 264-1) SockOpt_Broadcast BOOL Lecture/écrit Permet d'envoyer des paquets de diffusion via ure le socket UDP. Si FALSE, la méthode Send renvoie un message d'erreur lors de l'envoi de messages de diffusion UDP. SockOpt_MulticastD STRING(15)] efaultInterface Lecture/écrit Permet de définir l'adresse IP de l'interface ure permettant d'envoyer les messages de multidiffusion lorsqu'aucune action n'a déclenché la liaison du socket. SockOpt_MulticastL BOOL oopback Lecture/écrit Si TRUE, les messages de multidiffusion ure envoyés sont également copiés dans le tampon de réception, comme s'ils provenaient d'un homologue UDP externe. SockOpt_MulticastT SINT TL Lecture/écrit Indique la durée de vie (TTL) des messages de ure multidiffusion envoyés. Cette valeur a une incidence sur l'espace vers lequel les packages sont acheminés. (Plage : 0 à 255) 136 EIO0000002804 09/2020 Blocs fonction Nom Type de données Accès Description SockOpt_ReceiveBuf UDINT ferSize Lecture/écrit Définit la taille du tampon de réception de la pile ure UDP. Cette valeur doit toujours être supérieure à la quantité de données reçues pendant un transfert, pour éviter de perdre des données. (Plage : 1 à 2 147 483 647) SockOpt_SendBuffer UDINT Size Lecture/écrit Définit la taille du tampon d'envoi de la pile ure UDP. Cette valeur doit toujours être supérieure à la quantité de données envoyées pendant un transfert, pour éviter d'éventuelles erreurs. (Plage : 1 à 2 147 483 647) EIO0000002804 09/2020 137 Blocs fonction Méthodes de FB_UDPPeer Présentation 138 Bind (voir page 139) Close (voir page 141) GetBoundIPAddress (voir page 142) GetBoundPort (voir page 142) JoinMulticastGroup (voir page 145) LeaveMulticastGroup (voir page 144) Open (voir page 146) ReceiveFrom (voir page 147) ResetByteCounters (voir page 149) ResetResult (voir page 149) SendTo (voir page 150) EIO0000002804 09/2020 Blocs fonction FB_UDPPeer - Méthode Bind Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Configurer les homologues UDP ouverts pour une adresse IP et un port locaux spécifiques Description fonctionnelle Configure les homologues UDP ouverts pour une adresse IP et un port locaux spécifiques comme sources d'envoi et de réception des messages. NOTE : Pour recevoir des messages en diffusion ou multidiffusion, il faut laisser l’entrée i_sLocalIp non connectée ou connectée à une chaîne nulle. La valeur de retour de BOOL est TRUE si l’exécution de la fonction est correcte. Evaluez la propriété Result, si la valeur de retour est FALSE. NOTE : Le socket est automatiquement lié à un port disponible, lorsque les données sont envoyées depuis un socket non lié. Transition d'état de l'homologue Etape Description 1 Etat initial : Opened 2 Appel de fonction 3 Etat : Bound EIO0000002804 09/2020 139 Blocs fonction Interface Entrée Type de données Plage valide Description i_sLocalIP STRING(15) - Adresse IP de l'interface à lier. Si la valeur est nulle ou 0.0.0.0, l'homologue écoute toutes les interfaces. i_uiLocalPort UINT 1…65 535 Port UDP à lier. 140 EIO0000002804 09/2020 Blocs fonction FB_UDPPeer - Méthode Close Présentation Type : Méthode Disponible à partir de la version : V1.0.4.0 Tâche Fermer le socket Description fonctionnelle Ferme le socket, en ignorant éventuellement les données du tampon de réception. Les groupes de multidiffusion reliés sont automatiquement abandonnés. La valeur de retour de BOOL est TRUE si l’exécution de la fonction est correcte. Evaluez la propriété Result, si la valeur de retour est FALSE. Transition d'état de l'homologue Etape Description 1 Etat initial : Opened ou Bound 2 Appel de fonction 3 Etat : Idle EIO0000002804 09/2020 141 Blocs fonction FB_UDPPeer - Méthode GetBoundIPAddress Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Renvoyer l'adresse IP de liaison Description fonctionnelle Cette fonction permet d'obtenir l'adresse IP liée au socket. Si la valeur de retour est une chaîne nulle (''), l'adresse IP ne peut pas être obtenue. Cette fonction est prise en charge sur les plates-formes où la bibliothèque SysSocket version 3.5.6.0 ou ultérieure est installée. FB_UDPPeer - Méthode GetBoundPort Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Renvoyer le port de liaison 142 EIO0000002804 09/2020 Blocs fonction Description fonctionnelle Cette fonction permet d'obtenir le port lié au socket. Si la valeur de retour UINT est 0, le numéro de port ne peut pas être obtenu. Cette fonction est prise en charge sur les plates-formes où la bibliothèque SysSocket version 3.5.6.0 ou ultérieure est installée. EIO0000002804 09/2020 143 Blocs fonction FB_UDPPeer - Méthode LeaveMulticastGroup Présentation Type : Méthode Disponible à partir de la version : V1.0.4.0 Tâche Quitter un groupe multidiffusion. Description fonctionnelle Quitter un groupe multi-diffusion en envoyant un message DropMembership IGMP. Une fois le groupe multi-diffusion abandonné, les messages envoyés à l'adresse de ce groupe ne sont plus reçus. La valeur de retour de BOOL est TRUE si l’exécution de la fonction est correcte. Evaluez la propriété Result, si la valeur de retour est FALSE. Interface 144 Entrée Type de données Plage valide Description i_sInterfaceIP STRING(15) - Adresse IP de l'interface sur laquelle le groupe de multidiffusion doit être abandonné. i_sGroupIP STRING(15) - Adresse de multidiffusion du groupe à abandonner. EIO0000002804 09/2020 Blocs fonction FB_UDPPeer - Méthode JoinMulticastGroup Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Relier un groupe de multidiffusion pour la réception de messages Description fonctionnelle Relie un groupe de multidiffusion pour la réception de messages envoyés à cette adresse de groupe, en envoyant un message IGMP (Internet Group Management Protocol) AddMembership. La valeur de retour de BOOL est TRUE si l’exécution de la fonction est correcte. Evaluez la propriété Result, si la valeur de retour est FALSE. NOTE : Pour recevoir des messages en multidiffusion, utilisez d’abord la méthode (voir page 139) Bind avec une chaîne nulle pour l’entrée i_sLocalIp, puis laissez l’entrée non connectée. Consultez également les exemples de mise en œuvre (voir page 132). Interface Entrée Type de données Plage valide Description i_sInterfaceIP STRING(15) - Adresse IP de l'interface sur laquelle le groupe de multidiffusion doit être relié. i_sGroupIP STRING(15) - Adresse de multidiffusion du groupe à relier. EIO0000002804 09/2020 145 Blocs fonction FB_UDPPeer - Méthode Open Présentation Type : Méthode Disponible à partir de la version : V1.0.4.0 Tâche Initialiser et ouvrir les homologues UDP Description fonctionnelle Initialise et ouvre l'homologue UDP. La valeur de retour de BOOL est TRUE si l’exécution de la fonction est correcte. Evaluez la propriété Result, si la valeur de retour est FALSE. NOTE : Si vous prévoyez l'écoute sur un port particulier, la méthode Bind doit être utilisée après la méthode Open pour lier le socket ouvert. Transition d'état de l'homologue Etape 146 Description 1 Etat initial : Idle 2 Appel de fonction 3 Etat : Opened EIO0000002804 09/2020 Blocs fonction FB_UDPPeer - Méthode ReceiveFrom Présentation Type : Méthode Disponible à partir de : V1.0.4.0 Tâche Lire les données enregistrées dans le tampon de réception Description fonctionnelle Lit les données enregistrées dans le tampon de réception et les supprime du tampon si aucune erreur n'a été détectée pendant leur lecture. Un seul message est lu tout au plus, peu importe la quantité de données à lire et la taille du tampon fourni par l'application. La valeur de retour UDINT indique le nombre d’octets écrits dans la mémoire tampon fournie par l’application. Interface Entrée Type de données Plage valide Description i_pbyReceiveBuffer POINTER TO BYTE - Adresse de départ du tampon à partir de laquelle les données reçues doivent être écrites. i_udiReceiveBufferSize UDINT 1…2 147 483 647 Nombre d’octets à lire. NOTE : La valeur ne doit pas dépasser la taille de la mémoire tampon. Sortie Type de données Plage valide Description q_xDataReceived BOOL - Indique si un message a été reçu. EIO0000002804 09/2020 147 Blocs fonction Sortie Type de données Plage valide Description q_sPeerIP STRING(15) - Adresse IP source de l'homologue d'où provient le message, au format STRING. q_dwPeerIP DWORD - L'adresse IP de l'homologue (expéditeur) sous la forme DWORD. Chaque octet représente un chiffre de l'adresse IPv4. q_uiPeerPort UINT - Port source d'où provient le message. 148 EIO0000002804 09/2020 Blocs fonction FB_UDPPeer - Méthode ResetByteCounters Présentation Type : Méthode Disponible à partir de la version : V1.0.4.0 Tâche Remettre à zéro les compteurs du nombre total d'octets reçus et envoyés Description fonctionnelle Remet à zéro les compteurs du nombre total d'octets reçus et envoyés. Ne renvoie aucune valeur. FB_UDPPeer - Méthode ResetResult Présentation Type : Méthode Disponible à partir de la version : V1.0.4.0 Tâche Réinitialiser les valeurs de la propriété Result sur Ok Description fonctionnelle Réinitialise les valeurs de la propriété Result sur Ok. Ne renvoie aucune valeur. EIO0000002804 09/2020 149 Blocs fonction FB_UDPPeer - Méthode SendTo Présentation Type : Méthode Disponible à partir de la version : V1.0.4.0 Tâche Transmettre un message Description fonctionnelle Transmet un message. Les données sont lues depuis le tampon fourni par l'application. Cette méthode permet d'envoyer des messages de diffusion, de multidiffusion et de monodiffusion. Le socket est automatiquement lié à un port disponible, si ce n'était pas déjà le cas. Renvoie le nombre d'octets envoyés, au format UDINT. Interface Entrée Type de données Plage valide Description i_sPeerIP STRING(15) - Adresse de destination du message. i_uiPeerPort UINT - Port de destination du message. i_pbySendBuffer POINTER TO BYTE - Adresse de départ du tampon contenant les données à envoyer. i_udiNumBytesToSend UDINT 1…2 147 483 647 Nombre d'octets à envoyer à partir du tampon fourni par l'application. 150 EIO0000002804 09/2020 Blocs fonction Sous-chapitre 7.5 Utils - FB_DnsClient Utils - FB_DnsClient FB_DnsClient Présentation Type : Bloc fonction Disponible à partir de la version : V1.1.0.0 Tâche Communique avec le serveur Serveur DNS défini pour demander la résolution d'un nom de domaine en adresse IPv4. Description fonctionnelle Ce bloc fonction permet de communiquer avec un Serveur DNS (conformément à RFC1035) afin d'obtenir l'adresse IPv4 enregistrée correspondant au nom de domaine défini. Par conséquent, un socket UDP est ouvert et une demande DNS est envoyée au serveur, qui est défini par les entrées i_sDnsServerIp et i_uiDnsServerPort. Lorsqu'une réponse est reçue du serveur ou que le délai expire, le socket est à nouveau fermé. NOTE : Le bloc fonction prend en charge les réponses autoritaires et récursives fournies par le serveur DNS. Si le server a résolu le nom de domaine et que la réponse a été reçue correctement, l'adresse IPv4 résolue et la durée de vie correspondante (TTL) sont disponibles sur la sortie q_astDnsAddressInfo. Pour limiter le trafic réseau, la valeur TTL peut servir à mettre en cache les adresses résolues. NOTE : Actualisez le cache IP en fonction des informations fournies par TTL. EIO0000002804 09/2020 151 Blocs fonction La communication avec Serveur DNS requiert plusieurs cycles du programme. L'état du bloc fonction est indiqué par les sorties q_xBusy, q_xError et q_xDone. Tant que le bloc fonction est exécuté, la sortie q_xBusy est TRUE. La sortie q_xDone est TRUE lorsque le bloc fonction s'est exécuté correctement. Les messages d'état et les informations de diagnostic sont fournis à l'aide des sorties q_xError (TRUE si une erreur a été détectée), q_etResult et q_etResultMsg. Pour acquitter les erreurs détectées, désactivez et réactivez le bloc fonction pour pouvoir effectuer une nouvelle tentative de résolution du nom de domaine. Interface 152 Entrée Type de données Description i_xEnable BOOL Activation et initialisation du bloc fonction. i_xExecute BOOL Sur un front montant de cette entrée, la requête DNS est envoyée au serveur DNS. i_sDnsServerIP STRING(15) Indique l'adresse IP du serveur DNS externe. i_uiDnsServerPort UINT Indique le port Serveur DNS externe. Si la broche n'est pas attribuée, la valeur par défaut 53 est utilisée. i_sDomainName STRING(255) Nom de domaine à résoudre.(Seuls les symboles ASCII sont pris en charge) Sortie Type de données Description q_xActive BOOL Si le bloc fonction est actif, cette sortie est TRUE. q_xReady BOOL Indique TRUE si le bloc fonction est prêt à recevoir une commande d'exécution. q_xBusy BOOL Si cette sortie est TRUE, le bloc fonction est en cours d'exécution. q_xDone BOOL Si cette sortie est TRUE, l'exécution s'est effectuée correctement. q_xError BOOL Si cette sortie est TRUE, une erreur a été détectée. Pour plus d'informations, reportez-vous à q_etResult et q_etResultMsg. EIO0000002804 09/2020 Blocs fonction Sortie Type de données Description q_etResult ET_Result Fournit des informations de diagnostic et d'état sous la forme d'une valeur numérique. q_sResultMsg STRING(80) Fournit des informations de diagnostic et d'état sous la forme d'un message textuel. q_uiNumberOfIpAddresse s UINT Nombre d'adresses IP renvoyées par le Serveur DNS. q_astDnsAddressInfo ARRAY La structure contient des informations [0..GPL.Gc_uiDnsNumberOfIPs-1] sur le nom de domaine résolu, reçu de OF ST_DnsAddressInfo la part du serveur DNS. EIO0000002804 09/2020 153 Blocs fonction 154 EIO0000002804 09/2020 EcoStruxure Machine Expert Fonctions EIO0000002804 09/2020 Chapitre 8 Fonctions Fonctions Contenu de ce chapitre Ce chapitre contient les sous-chapitres suivants : Sous-chapitre 8.1 Sujet Page Types de données (EnumToStringConverters) 156 8.2 Utils 161 8.3 Utils (Byteorder) 171 EIO0000002804 09/2020 155 Fonctions Sous-chapitre 8.1 Types de données (EnumToStringConverters) Types de données (EnumToStringConverters) Contenu de ce sous-chapitre Ce sous-chapitre contient les sujets suivants : Sujet 156 Page FC_EtCertVerifyModeToString 157 FC_EtResultToString 158 FC_EtStateToString 159 FC_EtTlsProtocolToString 160 EIO0000002804 09/2020 Fonctions FC_EtCertVerifyModeToString Présentation Type : Fonction Disponible à partir de : V1.0.4.0 Hérite de : - Met en œuvre : - Tâche Convertir un élément d'énumération de type ET_CertVerifyMode en une variable de type STRING. Description fonctionnelle La fonction FC_EtCertVerifyModeToString permet de convertir un élément d'énumération de type ET_CertVerifyMode en une variable de type STRING. Interface Entrée Type de données Description i_etCertVerifyMode ET_CertVerifyMode Enumération correspondant à l'état actuel. Valeur retournée Type de données Description STRING(80) Nom du composant d'énumération converti en texte. EIO0000002804 09/2020 157 Fonctions FC_EtResultToString Présentation Type : Fonction Disponible à partir de : V1.0.4.0 Hérite de : – Met en œuvre : – Tâche Convertir un élément d'énumération de type ET_Result en une variable de type STRING. Description fonctionnelle La fonction FC_EtResultToString permet de convertir un élément d'énumération de type ET_Result en une variable de type STRING. Interface Entrée Type de données Description i_etResult ET_Result Énumération avec le résultat. Valeur retournée 158 Type de données Description STRING(80) ET_Result converti en texte. Si i_etResult est indéterminable, la valeur de retour est : Unknown Result: <Value of the input i_etResult> EIO0000002804 09/2020 Fonctions FC_EtStateToString Présentation Type : Fonction Disponible à partir de la version : V1.0.4.0 Hérite de : - Met en œuvre : - Tâche Convertir un élément d'énumération de type ET_State en une variable de type STRING. Description fonctionnelle La fonction FC_EtStateToString permet de convertir un élément d'énumération de type ET_State en une variable de type STRING. Interface Entrée Type de données Description i_etState ET_State Enumération correspondant à l'état actuel. Valeur retournée Type de données Description STRING(80) ET_State converti en texte. EIO0000002804 09/2020 159 Fonctions FC_EtTlsProtocolToString Présentation Type : Fonction Disponible à partir de : V1.0.4.0 Hérite de : - Met en œuvre : - Tâche Convertir un élément d'énumération de type ET_TlsProtocol en une variable de type STRING. Description fonctionnelle La fonction FC_EtTlsProtocolToString permet de convertir un élément d'énumération de type ET_TlsProtocol en une variable de type STRING. Interface Entrée Type de données Description i_etTlsProtocol ET_TlsProtocol Enumération correspondant à l'état actuel. Valeur retournée 160 Type de données Description STRING(80) Nom du composant d'énumération converti en texte. EIO0000002804 09/2020 Fonctions Sous-chapitre 8.2 Utils Utils Contenu de ce sous-chapitre Ce sous-chapitre contient les sujets suivants : Sujet Page FC_GetSubNetBroadcastAddr 162 FC_InetAddrDWORDtoString 163 FC_InetAddrStringtoDWORD 164 FC_IsMulticastIP 165 FC_IsValidIP 166 FC_ReadSTRING 167 FC_WriteSTRING 169 EIO0000002804 09/2020 161 Fonctions FC_GetSubNetBroadcastAddr Présentation Type Fonction Disponible à partir de la version : V1.0.4.0 Hérite de : - Met en œuvre : - Tâche Calculer l'adresse de diffusion d'un sous-réseau Description fonctionnelle Calcule l'adresse IP de diffusion d'un sous-réseau d'après une adresse IP et un masque de sousréseau particulier. Les paquets envoyés à cette adresse IP de diffusion sont reçus par les équipements de ce sous-réseau. Utilisez une adresse IP de diffusion de sous-réseau au lieu d'une adresse IP de diffusion (255.255.255.255). Interface Entrée Type de données Description i_sIPInSubnet STRING(15) Adresse IPv4 du sous-réseau. i_sSubnetMask STRING(15) Masque de sous-réseau. Valeur retournée 162 Type de données Description STRING(15) Adresse IP de diffusion du sous-réseau. EIO0000002804 09/2020 Fonctions FC_InetAddrDWORDtoString Présentation Type Fonction Disponible à partir de la version : V1.0.4.0 Hérite de : - Met en œuvre : - Tâche Convertir l'adresse IPv4 DWORD au format STRING Description fonctionnelle Convertit une adresse IP DWORD au format STRING. Interface Entrée Type de données Description i_dwAddress DWORD Adresse IPv4, au format DWORD. Valeur retournée Type de données Description STRING(15) Adresse IPv4, au format STRING. EIO0000002804 09/2020 163 Fonctions FC_InetAddrStringtoDWORD Présentation Type Fonction Disponible à partir de la version : V1.0.4.0 Hérite de : - Met en œuvre : - Tâche Convertir l'adresse IPv4 STRING au format DWORD Description fonctionnelle Convertit une adresse IPv4 STRING au format DWORD. Interface Entrée Type de données Description i_sAddress STRING(15) Adresse IPv4, au format STRING. Valeur retournée 164 Type de données Description DWORD Adresse IPv4, au format DWORD. EIO0000002804 09/2020 Fonctions FC_IsMulticastIP Présentation Type Fonction Disponible à partir de la version : V1.0.4.0 Hérite de : - Met en œuvre : - Tâche Déterminer si l'adresse IPv4 indiquée se situe dans la plage de multidiffusion Description fonctionnelle Détermine si l'adresse IPv4 indiquée se situe dans la plage d'adresses de multidiffusion (de 224.0.0.0 à 239.255.255.255), conformément aux directives RFC 5771. Interface Entrée Type de données Description i_sIP STRING(15) Adresse IPv4. Valeur retournée Type de données Description BOOL TRUE si l'adresse est une adresse de multidiffusion, FALSE dans le cas contraire. EIO0000002804 09/2020 165 Fonctions FC_IsValidIP Présentation Type Fonction Disponible à partir de la version : V1.0.4.0 Hérite de : - Met en œuvre : - Tâche Déterminer si la chaîne indiquée est une adresse IPv4 valide Description fonctionnelle Détermine si la chaîne indiquée est une adresse IPv4 valide. Interface Entrée Type de données Description i_sIP STRING(15) Chaîne à vérifier. Valeur retournée 166 Type de données Description BOOL TRUE si la chaîne est une adresse IPv4 valide, FALSE dans le cas contraire. EIO0000002804 09/2020 Fonctions FC_ReadSTRING Présentation Type Fonction Disponible à partir de : V1.0.4.0 Hérite de : - Met en œuvre : - Tâche Copiez les caractères enregistrés dans un type de données en variable de type STRING. Description fonctionnelle Avec l'utilisation de cette fonction, les caractères ASCII reçus peuvent être copiés depuis le tampon de réception dans une variable de type STRING. La source de données de tout type de données est transmis à la fonction en utilisant un pointeur via l'entrée i_pbyBuffer. La destination des données, la variable de type STRING, est transmise à la fonction en utilisant un pointeur via l'entrée i_psString. Le nombre maximal de caractères à copier est déterminé via l'entrée i_uiMaxLength. L'entrée i_xStopAtZero permet de déterminer si la fonction doit copier tous les octets définis par i_uiMaxLength ou si la copie doit s'arrêter au premier caractère NUL (16#0) détecté. Notez que le caractère NUL marque la fin de la valeur d'une variable de type STRING. Si aucun caractère NUL n'est détecté jusqu'à ce que le nombre maximal de caractères soit copié ou que l'entrée i_xStopAtZero soit FALSE, la fonction écrit le caractère NUL dans le nème octet de la mémoire de destination. n = i_uiMaxLength +1. Cela signifie que la valeur maximale de i_uiMaxLength est égale à la taille de la mémoire de destination - 1. NOTE : Pour empêcher tout accès non autorisé, par exemple un accès de pointeur (hors limites) dans la mémoire, utilisez l'opérateur arithmétique SIZEOF avec la mémoire de destination pour déterminer la valeur de i_uiMaxLength. EIO0000002804 09/2020 167 Fonctions Exemple de code Exemple de code pour l'utilisation de FC_ReadSTRING dans le texte structuré : // Copier les données dans une variable de type STRING TCPUDP.FC_ReadSTRING( i_pbyBuffer i_psString := ADR(abyReceiveBuffer), := ADR(sData), i_uiMaxLength := SIZEOF(sData)-1, i_xStopAtZero := TRUE); Interface Entrée Type de données Description i_pbyBuffer POINTER TO BYTE Pointeur sur adresse mémoire à copier (de la source) i_psString POINTER TO STRING Pointeur sur adresse mémoire à copier (sur destination, variable de type STRING) i_uiMaxLength UINT Nombre maximal d'octets à copier. i_xStopAtZero BOOL Si la valeur est TRUE, la copie s'arrête lorsque le premier caractère NUL (16#0) est détecté. Si la valeur est FALSE, le nombre d'octets définis avec i_uiMaxLength et un caractère NUL sont écrits dans la mémoire de destination. Valeur retournée 168 Type de données Description UINT Nombre d'octets écrits dans la mémoire de destination. EIO0000002804 09/2020 Fonctions FC_WriteSTRING Présentation Type Fonction Disponible à partir de : V1.0.4.0 Hérite de : - Met en œuvre : - Tâche Copiez les caractères enregistrés dans une variable de type STRING dans un tampon de tout type de données. Description fonctionnelle Avec l'utilisation de cette fonction, la valeur d'une variable de type STRING peut être facilement copiée dans le tampon d'envoi de tout type de données. La source des données, la variable de type STRING, est transmise en utilisant un pointeur via l'entrée i_psString. La destination des données, un tampon de tout type de données, est transmis à la fonction en utilisant un pointeur via l'entrée i_pbyBuffer. Le nombre maximal de caractères à copier est déterminé via l'entrée i_uiMaxLength. Si la longueur de la valeur de la variable de type STRING est inférieure à la valeur de i_uiMaxLength, la fonction arrête la copie lorsque le premier caractère NUL (16#0) est détecté. Notez que le caractère NUL marque la fin de la valeur d'une variable de type STRING. Si la longueur est supérieure à la valeur de i_uiMaxLength, le nombre maximal d'octets est copié et le dernier octet est remplacé par 16#0 dans le tampon. NOTE : Pour empêcher tout accès non autorisé, par exemple un accès de pointeur (hors limites) dans la mémoire, utilisez l'opérateur arithmétique SIZEOF avec le tampon cible pour déterminer la valeur de i_uiMaxLength. EIO0000002804 09/2020 169 Fonctions Exemple de code Exemple de code pour l'utilisation de FC_WriteSTRING dans le texte structuré : // Copier la valeur de la variable de type STRING dans le tampon TCPUDP.FC_WriteSTRING( i_pbyBuffer i_psString := ADR(abySendBuffer), := ADR(sData), i_uiMaxLength := SIZEOF(abySendBuffer); Interface Entrée Type de données Description i_pbyBuffer POINTER TO BYTE Pointeur sur adresse mémoire à copier dans la mémoire de destination. i_psString POINTER TO STRING Pointeur sur adresse mémoire à copier (de la variable source de type STRING). i_uiMaxLength UINT Nombre maximal d'octets à copier. Valeur retournée 170 Type de données Description UINT Nombre d'octets écrits dans la mémoire de destination. EIO0000002804 09/2020 Fonctions Sous-chapitre 8.3 Utils (Byteorder) Utils (Byteorder) Contenu de ce sous-chapitre Ce sous-chapitre contient les sujets suivants : Sujet Page FC_Read<Data type> 172 FC_Write<Data type> 174 EIO0000002804 09/2020 171 Fonctions FC_Read<Data type> Présentation Type Fonction Disponible à partir de la version : V1.0.4.0 Hérite de : - Met en œuvre : - Exemple de fonction FC_ReadDINT Tâche Lire une valeur dans un tampon, la convertir dans l'ordre des octets du contrôleur, puis la renvoyer au format de type de données spécial Description fonctionnelle Lit la valeur dans un tampon, dans l'ordre des octets du réseau, la convertit dans l'ordre des octets du contrôleur, puis la renvoie au format de type de données spécial <Data type>. Fonctions disponibles Les fonctions disponibles pour les différents types de données sont les suivantes : 172 Fonction Type de données FC_ReadDINT DINT FC_ReadINT INT FC_ReadSINT SINT FC_ReadUDINT UDINT FC_ReadUINT UINT FC_ReadUSINT USINT EIO0000002804 09/2020 Fonctions Interface Entrée Type de données Description i_pbyBuffer POINTER TO BYTE Adresse de départ du tampon à lire. Valeur retournée Type de données Description <Data type> (voir tableau ci-dessus) Valeur au format <Data type>. EIO0000002804 09/2020 173 Fonctions FC_Write<Data type> Présentation Type Fonction Disponible à partir de la version : V1.0.4.0 Hérite de : - Met en œuvre : - Exemple de fonction FC_WriteDINT Tâche Ecrire la valeur (au format de type de données spécial) dans le tampon, en respectant l'ordre des octets du réseau Description fonctionnelle Ecrit la valeur au format <Data type> spécial dans le tampon, en respectant l'ordre des octets du réseau, et renvoie TRUE si l'opération a abouti. Fonctions disponibles Les fonctions disponibles pour les différents types de données sont les suivantes : 174 Fonction Type de données FC_WriteDINT DINT FC_WriteINT INT FC_WriteSINT SINT FC_WriteUDINT UDINT FC_WriteUINT UINT FC_WriteUSINT USINT EIO0000002804 09/2020 Fonctions Interface Entrée Type de données Description i_pbyBuffer POINTER TO BYTE Adresse de départ du tampon à partir de laquelle la valeur doit être écrite. i_<Data type>Value (Exemple : i_diValue pour FC_WriteDINT) <Data type> (voir tableau cidessus) Valeur au format de type de données spécial. Valeur retournée Type de données Description BOOL TRUE si l'opération a abouti. EIO0000002804 09/2020 175 Fonctions 176 EIO0000002804 09/2020 EcoStruxure Machine Expert Glossaire EIO0000002804 09/2020 Glossaire A adresse L'adresse d'un système correspond généralement à l'adresse IP (192.168.5.45, par exemple). Dans le cas d'un serveur, d'un client ou d'un homologue, elle inclut aussi le numéro de port (192.168.5.45:5548, par exemple). adresse IP L'adresse IP de IPv4 (Internet Protocol version 4) est une valeur de 4 octets permettant d'identifier les équipements connectés à un réseau IP. B broadcast Voir "unicast". BSD Berkeley Software Distribution C client Composante d'une application de communications. La partie initialement active établit une connexion (TCP) ou envoie des données au serveur. D DNS Abréviation de Domain Name System. E Ethernet Technologie de couche physique et de liaison de données pour les réseaux locaux (LAN), également appelée IEE 802.3. La technologie Ethernet est la plus répandue pour les réseaux locaux. Chaque contrôleur PacDrive possède un port Ethernet. La norme Ethernet définit les couches 1 et 2 de la communication. Il existe une multitude de protocoles réseau au-dessus d'Ethernet, mais seul le protocole IP est utilisé. EIO0000002804 09/2020 177 Glossaire H homologue Autre système impliqué dans la communication. Ce terme est utilisé lorsque le rôle de l'autre système (serveur ou client) n'a pas d'importance. I IGMP IP Internet Group Management Protocol. Protocole de communications utilisé par les hôtes et les routeurs adjacents sur les réseaux IPv4 pour définir l'appartenance au groupe de multidiffusion. Internet Protocol. Situé sous TCP et UDP, ce protocole sert pour le transport de données sur l'ensemble du réseau. Branche de la famille de protocoles TCP/IP, qui gère les adresses Internet des équipements, achemine les messages sortants et reconnaît les messages entrants. M monodiffusion/diffusion/multidiffusion (unicast/broadcast/multicast) La communication de type monodiffusion (Unicast) cible un système comme destination. En monodiffusion (unicast), vous avez le choix entre le protocole TCP ou UDP. La communication de type diffusion (Broadcast) cible tous les systèmes appartenant à un même sous-réseau. Tout comme en multidiffusion (multicast), seul le protocole UDP peut être utilisé. La communication de type multidiffusion (Multicast) cible des systèmes spécifiques qui doivent être reliés à un groupe multicast particulier avant de recevoir des paquets destinés à ce groupe. multicast Voir "unicast". P paquet et datagramme Au niveau du réseau, le terme "paquet" désigne les paquets de données qui sont transmis à ce niveau. Dans le contexte du protocole UDP, les deux termes "paquet" et "datagramme" sont synonymes. port/numéro de port Souvent désigné par le terme "port", le numéro de port est un nombre compris entre 1 et 65 535. Combiné à une adresse IP, il désigne le point de sortie d'une communication. Un socket est systématiquement connecté à un numéro de port. Etant donné que les sockets sont utilisés par les blocs fonction de communication TCP/UDP qui, à leur tour, sont utilisés par un programme, le numéro de port identifie un programme, un serveur ou un client exécuté sur un contrôleur. 178 EIO0000002804 09/2020 Glossaire Lorsque vous communiquez avec <adresse IP d'un contrôleur>:<numéro de port> (<IP of a controller>:<Port number>), vous communiquez en fait avec un programme qui s'est luimême connecté à ce numéro de port. (Le programme a configuré son bloc fonction de communication de manière à se connecter à ce numéro de port.) S serveur socket Composante d'une application de communications. Au départ, le serveur est passif. Il attend que des clients initialisent une communication. Le serveur s'exécute sur un numéro de port défini ; son adresse est connue des clients. Ressource utilisée en interne par la communication TCP/UDP pour permettre l'accès aux fonctions de communications au niveau du micrologiciel. T TCP TTL TCP (Transmission Control Protocol) est un protocole de transmission employé dans les réseaux IP. Le TTL (Time to live), également appelé « limite de sauts », est un mécanisme qui limite la portée ou la durée de vie des données dans un ordinateur ou un réseau. Dans le protocole IP (Internet Protocol), TTL peut se présenter comme un compteur ou un horodatage associé ou intégré aux données. Une fois le nombre d'événements atteint ou le temps imparti aux événements écoulé, les données sont refusées. Dans le DNS, le TTL empêche un paquet de données de circuler indéfiniment. U UDP UDP (User Datagram Protocol) est un protocole de transmission employé dans les réseaux IP. EIO0000002804 09/2020 179 Glossaire 180 EIO0000002804 09/2020 EcoStruxure Machine Expert Index EIO0000002804 09/2020 Index E entrées et sorties communes fonctionnement des blocs fonction avec l'entrée i_xEnable et i_xExecute, 25 EnumToStringConverters, 156 ET_CertVerifyMode, 30 AllCertificates, 30 NotVerified, 30 TrustedOnly, 30 ET_Result, 31 AddressInUse, 31 AddressNotAvailable, 31 AnalyzeDnsAnswer, 33 BufferFull, 32 BufferSizeTooSmall, 33 CertificateNotFound, 32 ClientListTooSmall, 32 ET_REsult ClosedByPeer, 32 ET_Result ConnectionRefused, 32 ConnectionTimedOut, 32 Disabled, 33 Disabling, 33 DnsResolutionFailed, 34 DnsServerError, 34 Failed, 31 FillLevelOutOfRange, 31 InitAsyncManagerFailed, 33 Initialing, 33 InitTlsContextFailed, 32 InputOutOfRange, 31 InternalError, 34 InvalidBufferAddress, 31 InvalidDnsAnswer, 33 InvalidDnsServerIP, 33 InvalidDnsTimeOut, 34 InvalidDomainName, 33 InvalidIP, 31 InvalidMulticastIP, 32 InvalidNumberOfIPs, 34 EIO0000002804 09/2020 ET_REsult NoSuchClient, 32 ET_Result NotEnoughResources, 32 NotReady, 31 NotSupported, 31 NumBytesToSendOutOfRange, 31 Ok, 31 OpenSocketFailed, 33 Ready, 33 ReceiveBufferSizeOutOfRange, 31 ReceiveDnsAnswerFailed, 33 SendDnsQuery, 33 SendDnsQueryFailed, 33 SendToAllSizeTooSmall, 32 SocketManagementListTooSmall, 32 StartAsyncJobFailed, 33 TlsError, 32 TooMuchOOBData, 31 WaitForDnsAnswer, 33 ET_State, 35 Accepting, 35 Bound, 35 Closing, 35 Connected, 35 Connecting, 35 Idle, 35 Listening, 35 Opened, 35 Shutdown, 35 ET_TlsProtocol, 36 TLSv11, 36 TLSv12, 36 F FB_DnsClient, 151 FB_TCPClient/FB_TCPClient2, 60 FB_TCPServer/FB_TCPServer2, 90 FB_UDPPeer, 131 FC_EtCertVerifyModeToString, 157 181 Index FC_EtResultToString, 158 FC_EtStateToString, 159 FC_EtTlsProtocolToString, 160 FC_GetSubNetBroadcastAddr, 162 FC_InetAddrDWORDtoString, 163 FC_InetAddrStringtoDWORD, 164 FC_IsMulticastIP, 165 FC_IsValidIP, 166 FC_ReadDINT, 172 FC_ReadINT, 172 FC_ReadSINT, 172 FC_ReadSTRING, 167 FC_ReadUDINT, 172 FC_ReadUINT, 172 FC_ReadUSINT, 172 FC_WriteDINT, 174 FC_WriteINT, 174 FC_WriteSINT, 174 FC_WriteSTRING, 169 FC_WriteUDINT, 174 FC_WriteUINT, 174 FC_WriteUSINT, 174 G GPL TcpUdpCommunication, 51 GVL TcpUdpCommunication, 53 182 M méthode Accept, 98 Bind, 139 CheckClients, 100 Close, 66, 101, 141 Connect, 67 ConnectTls, 69 DisconnectAll, 102 DisconnectClient, 103 GetBoundIPAddress, 71, 104, 142 GetBoundPort, 71, 105, 142 JoinMulticastGroup, 145 LeaveMulticastGroup, 144 Open, 106, 146 OpenTls, 108 Peek, 73 PeekFromFirstAvailableClient, 110 PeekFromSpecificClient, 112 Receive, 75 ReceiveFrom, 147 ReceiveFromFirstAvailableClient, 114 ReceiveFromSpecificClient, 116 ReceiveOutOfBand, 78 ReceiveOutOfBandFromFirstAvailableClient, 118 ReceiveOutOfBandFromSpecificClient, 120 ResetByteCounters, 80, 122, 149 ResetResult, 81, 122, 149 Send, 82 SendOutOfBand, 86 SendOutOfBandToAll, 123 SendOutOfBandToSpecificClient, 124 SendTo, 150 SendToAll, 126 SendToSpecificClient, 127 Shutdown, 88 EIO0000002804 09/2020 Index S ST_ClientConnection, 38 sClientIP, 38, 39 udiBytesAvailableToRead, 38 uiClientPort, 38, 39 uliTotalBytesReceived, 38, 39 uliTotalBytesSent, 38, 39 xIsReadable, 39 ST_ClientConnection2, 39 ST_DefaultSocketOptionsTCPClient, 40 timTimeoutConnectTlsValue, 41 udiReceiveBufferSizeValue, 40 udiSendBufferSizeValue, 40 xKeepAliveValue, 40 xModifyKeepAlive, 40 xModifyNoDelay, 40 xModifyOutOfBandInline, 40 xModifyReceiveBufferSize, 40 xModifySendBufferSize, 40 xModifyTimeoutConnectTls, 41 xNoDelayValue, 40 xOutOfBandInlineValue, 40 ST_DefaultSocketOptionsTCPServer, 42 timTimeoutAcceptTlsValue, 42 udiReceiveBufferSizeValue, 42 udiSendBufferSizeValue, 42 xKeepAliveValue, 42 xModifyKeepAlive, 42 xModifyReceiveBufferSize, 42 xModifyReuseAddress, 42 xModifySendBufferSize, 42 xModifyTimeoutAcceptTls, 42 xReuseAddressValue, 42 EIO0000002804 09/2020 ST_DefaultSocketOptionsUDPPeer, 44 siMulticastDefaultTimeToLiveValue, 45 sMulticastDefaultInterfaceValue, 44 udiReceiveBufferSizeValue, 44 udiSendBufferSizeValue, 44 xBroadcastValue, 44 xModifyBroadcast, 44 xModifyMulticastDefaultInterface, 44 xModifyMulticastDefaultTimeToLive, 44 xModifyMulticastLoopback, 45 xModifyReceiveBufferSize, 44 xModifySendBufferSize, 44 xMulticastLoopbackValue, 45 ST_DnsAdressInfo, 46 dwTTL, 46 sIpAddress, 46 ST_TlsSettingsClient, 47 etCertVerifyMode, 47 etProtocol, 47 sCertName, 47 xSendClientCert, 47 ST_TlsSettingsServer, 48 etCertVerifyMode, 48 etProtocol, 48 sCertName, 48 T TcpUdpCommunication, 21 GPL, 51 GVL, 53 183 EcoStruxure Machine Expert EIO0000002792 06/2019 EcoStruxure Machine Expert TimeSync Guide de la bibliothèque EIO0000002792.00 06/2019 www.schneider-electric.com Le présent document comprend des descriptions générales et/ou des caractéristiques techniques des produits mentionnés. Il ne peut pas être utilisé pour définir ou déterminer l'adéquation ou la fiabilité de ces produits pour des applications utilisateur spécifiques. Il incombe à chaque utilisateur ou intégrateur de réaliser l'analyse de risques complète et appropriée, l'évaluation et le test des produits pour ce qui est de l'application à utiliser et de l'exécution de cette application. Ni la société Schneider Electric ni aucune de ses sociétés affiliées ou filiales ne peuvent être tenues pour responsables de la mauvaise utilisation des informations contenues dans le présent document. Si vous avez des suggestions, des améliorations ou des corrections à apporter à cette publication, veuillez nous en informer. Vous acceptez de ne pas reproduire, excepté pour votre propre usage à titre non commercial, tout ou partie de ce document et sur quelque support que ce soit sans l'accord écrit de Schneider Electric. Vous acceptez également de ne pas créer de liens hypertextes vers ce document ou son contenu. Schneider Electric ne concède aucun droit ni licence pour l'utilisation personnelle et non commerciale du document ou de son contenu, sinon une licence non exclusive pour une consultation « en l'état », à vos propres risques. Tous les autres droits sont réservés. Toutes les réglementations locales, régionales et nationales pertinentes doivent être respectées lors de l'installation et de l'utilisation de ce produit. Pour des raisons de sécurité et afin de garantir la conformité aux données système documentées, seul le fabricant est habilité à effectuer des réparations sur les composants. Lorsque des équipements sont utilisés pour des applications présentant des exigences techniques de sécurité, suivez les instructions appropriées. La non-utilisation du logiciel Schneider Electric ou d'un logiciel approuvé avec nos produits matériels peut entraîner des blessures, des dommages ou un fonctionnement incorrect. Le non-respect de cette consigne peut entraîner des lésions corporelles ou des dommages matériels. © 2019 Schneider Electric. Tous droits réservés. 2 EIO0000002792 06/2019 Table des matières Consignes de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . A propos de ce manuel. . . . . . . . . . . . . . . . . . . . . . . . . . Partie I Informations générales . . . . . . . . . . . . . . . . . . . . . . . Chapitre 1 Présentation de la bibliothèque . . . . . . . . . . . . . . . . . . . Informations générales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Partie II Énumérations et Structures . . . . . . . . . . . . . . . . . . . Chapitre 2 Énumérations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ET_ComMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ET_Result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 3 Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ST_TimeRequest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ST_TimeResponse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Partie III Variables globales . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 4 Liste des constantes globales. . . . . . . . . . . . . . . . . . . . . Liste des constantes globales (GCL). . . . . . . . . . . . . . . . . . . . . . . . . . Partie IV Unités d'organisation de programme (POU) . . . . . . . Chapitre 5 Blocs fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FB_SntpClient. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 6 Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FC_EtResultToString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Annexes ......................................... Annexe A Représentation des fonctions et blocs fonction . . . . . . . Différences entre une fonction et un bloc fonction . . . . . . . . . . . . . . . Utilisation d'une fonction ou d'un bloc fonction en langage IL . . . . . . . Utilisation d'une fonction ou d'un bloc fonction en langage ST . . . . . . Glossaire Index EIO0000002792 06/2019 ......................................... ......................................... 5 11 17 19 19 25 27 28 29 31 32 33 35 37 37 39 41 41 45 45 47 49 50 51 55 59 63 3 4 EIO0000002792 06/2019 Consignes de sécurité Informations importantes AVIS Lisez attentivement ces instructions et examinez le matériel pour vous familiariser avec l'appareil avant de tenter de l'installer, de le faire fonctionner, de le réparer ou d'assurer sa maintenance. Les messages spéciaux suivants que vous trouverez dans cette documentation ou sur l'appareil ont pour but de vous mettre en garde contre des risques potentiels ou d'attirer votre attention sur des informations qui clarifient ou simplifient une procédure. EIO0000002792 06/2019 5 REMARQUE IMPORTANTE L'installation, l'utilisation, la réparation et la maintenance des équipements électriques doivent être assurées par du personnel qualifié uniquement. Schneider Electric décline toute responsabilité quant aux conséquences de l'utilisation de ce matériel. Une personne qualifiée est une personne disposant de compétences et de connaissances dans le domaine de la construction, du fonctionnement et de l'installation des équipements électriques, et ayant suivi une formation en sécurité leur permettant d'identifier et d'éviter les risques encourus. QUALIFICATION DU PERSONNEL Une personne qualifiée est une personne qui a les qualifications suivantes : Compétences et connaissances liées à la construction et à l'exploitation d'équipements électriques et à l'installation. Connaissance de l'exploitation des fonctionnalités de la machine dans l'implémentation du logiciel. A reçu une formation en sécurité permettant de reconnaître et d'éviter les dangers potentiels. La personne qualifiée doit être capable de détecter d'éventuels dangers qui pourraient découler du paramétrage, de modifications des valeurs de paramétrage et plus généralement des équipements mécaniques, électriques ou électroniques. La personne qualifiée doit connaître les normes, dispositions et régulations liées à la prévention des accidents de travail, et doit les observer lors de la conception et de l'implémentation du système. INSTRUCTIONS D'UTILISATION Ce produit est une bibliothèque à utiliser avec un système de commande et des servoamplificateurs. La bibliothèque n'est conçue qu'en vue d'une utilisation telle que décrite dans la présente documentation, appliquée au secteur industriel. Observez en permanence les instructions applicables liées à la sécurité, les conditions spécifiques et les données techniques. Réalisez une analyse des risques en rapport avec l'utilisation spécifique avant d'utiliser ce produit. Prenez les mesures de sécurité qui découlent des résultats. Étant donné que ce produit est utilisé au sein d'un système qui l'englobe, vous devez assurer la sécurité du personnel par la conception même du système global (la conception de la machine, par exemple). Aucune autre utilisation n'est prévue. Toute autre utilisation pourrait être dangereuse. AVANT DE COMMENCER N'utilisez pas ce produit sur les machines non pourvues de protection efficace du point de fonctionnement. L'absence de ce type de protection sur une machine présente un risque de blessures graves pour l'opérateur. 6 EIO0000002792 06/2019 AVERTISSEMENT EQUIPEMENT NON PROTEGE N'utilisez pas ce logiciel ni les automatismes associés sur des appareils non équipés de protection du point de fonctionnement. N'accédez pas aux machines pendant leur fonctionnement. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Cet automatisme et le logiciel associé permettent de commander des processus industriels divers. Le type ou le modèle d'automatisme approprié pour chaque application dépendra de facteurs tels que la fonction de commande requise, le degré de protection exigé, les méthodes de production, des conditions inhabituelles, la législation, etc. Dans certaines applications, plusieurs processeurs seront nécessaires, notamment lorsque la redondance de sauvegarde est requise. Vous seul, en tant que constructeur de machine ou intégrateur de système, pouvez connaître toutes les conditions et facteurs présents lors de la configuration, de l'exploitation et de la maintenance de la machine, et êtes donc en mesure de déterminer les équipements automatisés, ainsi que les sécurités et verrouillages associés qui peuvent être utilisés correctement. Lors du choix de l'automatisme et du système de commande, ainsi que du logiciel associé pour une application particulière, vous devez respecter les normes et réglementations locales et nationales en vigueur. Le document National Safety Council's Accident Prevention Manual (reconnu aux Etats-Unis) fournit également de nombreuses informations utiles. Dans certaines applications, telles que les machines d'emballage, une protection supplémentaire, comme celle du point de fonctionnement, doit être fournie pour l'opérateur. Elle est nécessaire si les mains ou d'autres parties du corps de l'opérateur peuvent entrer dans la zone de point de pincement ou d'autres zones dangereuses, risquant ainsi de provoquer des blessures graves. Les produits logiciels seuls, ne peuvent en aucun cas protéger les opérateurs contre d'éventuelles blessures. C'est pourquoi le logiciel ne doit pas remplacer la protection de point de fonctionnement ou s'y substituer. Avant de mettre l'équipement en service, assurez-vous que les dispositifs de sécurité et de verrouillage mécaniques et/ou électriques appropriés liés à la protection du point de fonctionnement ont été installés et sont opérationnels. Tous les dispositifs de sécurité et de verrouillage liés à la protection du point de fonctionnement doivent être coordonnés avec la programmation des équipements et logiciels d'automatisation associés. NOTE : La coordination des dispositifs de sécurité et de verrouillage mécaniques/électriques du point de fonctionnement n'entre pas dans le cadre de cette bibliothèque de blocs fonction, du Guide utilisateur système ou de toute autre mise en œuvre référencée dans la documentation. EIO0000002792 06/2019 7 DEMARRAGE ET TEST Avant toute utilisation de l'équipement de commande électrique et des automatismes en vue d'un fonctionnement normal après installation, un technicien qualifié doit procéder à un test de démarrage afin de vérifier que l'équipement fonctionne correctement. Il est essentiel de planifier une telle vérification et d'accorder suffisamment de temps pour la réalisation de ce test dans sa totalité. AVERTISSEMENT RISQUES INHERENTS AU FONCTIONNEMENT DE L'EQUIPEMENT Assurez-vous que toutes les procédures d'installation et de configuration ont été respectées. Avant de réaliser les tests de fonctionnement, retirez tous les blocs ou autres cales temporaires utilisés pour le transport de tous les dispositifs composant le système. Enlevez les outils, les instruments de mesure et les débris éventuels présents sur l'équipement. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Effectuez tous les tests de démarrage recommandés dans la documentation de l'équipement. Conservez toute la documentation de l'équipement pour référence ultérieure. Les tests logiciels doivent être réalisés à la fois en environnement simulé et réel. Vérifiez que le système entier est exempt de tout court-circuit et mise à la terre temporaire non installée conformément aux réglementations locales (conformément au National Electrical Code des Etats-Unis, par exemple). Si des tests diélectriques sont nécessaires, suivez les recommandations figurant dans la documentation de l'équipement afin d'éviter de l'endommager accidentellement. Avant de mettre l'équipement sous tension : Enlevez les outils, les instruments de mesure et les débris éventuels présents sur l'équipement. Fermez le capot du boîtier de l'équipement. Retirez toutes les mises à la terre temporaires des câbles d'alimentation entrants. Effectuez tous les tests de démarrage recommandés par le fabricant. 8 EIO0000002792 06/2019 FONCTIONNEMENT ET REGLAGES Les précautions suivantes sont extraites du document NEMA Standards Publication ICS 7.1-1995 (la version anglaise prévaut) : Malgré le soin apporté à la conception et à la fabrication de l'équipement ou au choix et à l'évaluation des composants, des risques subsistent en cas d'utilisation inappropriée de l'équipement. Il arrive parfois que l'équipement soit déréglé accidentellement, entraînant ainsi un fonctionnement non satisfaisant ou non sécurisé. Respectez toujours les instructions du fabricant pour effectuer les réglages fonctionnels. Les personnes ayant accès à ces réglages doivent connaître les instructions du fabricant de l'équipement et les machines utilisées avec l'équipement électrique. Seuls ces réglages fonctionnels, requis par l'opérateur, doivent lui être accessibles. L'accès aux autres commandes doit être limité afin d'empêcher les changements non autorisés des caractéristiques de fonctionnement. EIO0000002792 06/2019 9 10 EIO0000002792 06/2019 A propos de ce manuel Présentation Objectif du document Ce document décrit la bibliothèque TimeSync. La bibliothèque TimeSync implémente la fonction client SNTP (Simple Network Time Protocol). Elle permet au contrôleur de se connecter à un serveur de temps NTP (Network Time Protocol) ou SNTP afin de synchroniser l'horloge interne RTC (Real-Time Clock) du contrôleur en conformité à la norme temporelle UTC (Universal Time Coordinated), internationale et unique. Champ d'application Ce document a été actualisé pour le lancement d’EcoStruxureTM Machine Expert V1.1. Les caractéristiques techniques des équipements décrits dans ce document sont également fournies en ligne. Pour accéder à ces informations en ligne : Etape Action 1 Accédez à la page d'accueil de Schneider Electric www.schneider-electric.com. 2 Dans la zone Search, saisissez la référence d'un produit ou le nom d'une gamme de produits. N'insérez pas d'espaces dans la référence ou la gamme de produits. Pour obtenir des informations sur un ensemble de modules similaires, utilisez des astérisques (*). 3 Si vous avez saisi une référence, accédez aux résultats de recherche Product Datasheets et cliquez sur la référence qui vous intéresse. Si vous avez saisi une gamme de produits, accédez aux résultats de recherche Product Ranges et cliquez sur la gamme de produits qui vous intéresse. 4 Si plusieurs références s'affichent dans les résultats de recherche Products, cliquez sur la référence qui vous intéresse. 5 Selon la taille de l'écran, vous serez peut-être amené à faire défiler la page pour consulter la fiche technique. 6 Pour enregistrer ou imprimer une fiche technique au format .pdf, cliquez sur Download XXX product datasheet. Les caractéristiques présentées dans ce document devraient être identiques à celles fournies en ligne. Toutefois, en application de notre politique d'amélioration continue, nous pouvons être amenés à réviser le contenu du document afin de le rendre plus clair et plus précis. Si vous constatez une différence entre le document et les informations fournies en ligne, utilisez ces dernières en priorité. EIO0000002792 06/2019 11 Information spécifique au produit AVERTISSEMENT PERTE DE CONTROLE Le concepteur d'un système de commande doit envisager les modes de défaillance possibles des chemins de commande et, pour certaines fonctions de commande critiques, prévoir un moyen d'atteindre un état sécurisé en cas de défaillance d'un chemin, et après cette défaillance. Par exemple, l'arrêt d'urgence, l'arrêt en cas de surcourse, la coupure de courant et le redémarrage sont des fonctions de contrôle cruciales. Des canaux de commande séparés ou redondants doivent être prévus pour les fonctions de commande critique. Les chemins de commande système peuvent inclure les liaisons de communication. Soyez particulièrement attentif aux implications des retards de transmission imprévus ou des pannes de liaison. Respectez toutes les réglementations de prévention des accidents ainsi que les consignes de sécurité locales.1 Chaque implémentation de cet équipement doit être testée individuellement et entièrement pour s'assurer du fonctionnement correct avant la mise en service. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. 1 Pour plus d'informations, consultez le document NEMA ICS 1.1 (dernière édition), « Safety Guidelines for the Application, Installation, and Maintenance of Solid State Control » (Directives de sécurité pour l'application, l'installation et la maintenance de commande statique) et le document NEMA ICS 7.1 (dernière édition), « Safety Standards for Construction and Guide for Selection, Installation, and Operation of Adjustable-Speed Drive Systems » (Normes de sécurité relatives à la construction et manuel de sélection, installation et opération de variateurs de vitesse) ou son équivalent en vigueur dans votre pays. Avant de tenter de fournir une solution (machine ou processus) pour une application spécifique en utilisant les POU trouvés dans la bibliothèque, vous devez tenir compte de la réalisation et de l'exécution des bonnes pratiques. La liste non exhaustive de ces pratiques liées à cette bibliothèque inclut l'analyse des risques, la sécurité fonctionnelle, la compatibilité des composants, les tests et la validation du système. 12 EIO0000002792 06/2019 AVERTISSEMENT UTILISATION INCORRECTE DES UNITES ORGANISATIONNELLES DU PROGRAMME Effectuez une analyse de la sécurité de l'application et des équipements installés. Vérifiez que les POU sont compatibles avec les équipements du système et n'ont pas d'effets inattendus sur le bon fonctionnement du système. Utilisez les paramètres appropriés, notamment les valeurs limites, et observez l'usure de la machine et son fonctionnement à l'arrêt. Vérifiez que les capteurs et déclencheurs sont compatibles avec les POU sélectionnés. Testez de manière approfondie toutes les fonctions durant la vérification et la mise en service dans tous les modes de fonctionnement. Indiquez des méthodes indépendantes pour les fonctions de commande critiques (arrêt d'urgence, conditions de dépassement des valeurs limites, etc.) en fonction d'une analyse de la sécurité, des règles correspondantes et des réglementations. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. AVERTISSEMENT FONCTIONNEMENT IMPRÉVU DE L'ÉQUIPEMENT N'utiliser que le logiciel approuvé par Schneider Electric pour faire fonctionner cet équipement. Mettez à jour votre programme d'application chaque fois que vous modifiez la configuration matérielle physique. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. AVERTISSEMENT FONCTIONNEMENT INATTENDU DE L'EQUIPEMENT Actualisez votre programme d'application, si nécessaire, en portant une attention particulière aux réglages de l'adresse d'E/S, dès que vous modifiez la configuration matérielle. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. EIO0000002792 06/2019 13 Les transferts incomplets, qu'il s'agisse de fichiers de données, d'application et/ou de micrologiciel, peuvent avoir des conséquences graves sur votre machine ou votre contrôleur. En cas coupure de courant (volontaire ou non) ou d'interruption de la communication pendant un transfert de fichier, votre machine peut devenir inopérante ou votre application peut tenter d'utiliser un fichier de données endommagé. En cas d’interrruption, relancez le transfert. Veillez à inclure l'impact des fichiers de données endommagés dans votre analyse des risques. AVERTISSEMENT FONCTIONNEMENT IMPRÉVU DE L'ÉQUIPEMENT, PERTE DE DONNÉES OU FICHIER ENDOMMAGÉ N'interrompez pas un transfert de données en cours. Si le transfert est interrompu pour une raison quelconque, relancez-le. Ne mettez pas votre machine en service tant que le transfert de fichier n'est pas terminé, sauf si vous avez pris en compte les fichiers endommagés dans votre analyse des risques et si vous avez mis en place des mesures appropriées pour prévenir les conséquences potentiellement graves dues à des échecs de transfert. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Documents à consulter 14 Titre du document Référence EcoStruxure Machine Expert - Fonctions et bibliothèques - Guide de l'utilisateur EIO0000002829 (ENG) ; EIO0000002830 (FRE) ; EIO0000002831 (GER) ; EIO0000002832 (ITA) ; EIO0000002833 (SPA) ; EIO0000002834 (CHS) ; EcoStruxure Machine Expert - Guide de programmation EIO0000002854 (ENG) ; EIO0000002855 (FRE) ; EIO0000002856 (GER) ; EIO0000002857 (ITA) ; EIO0000002858 (SPA) ; EIO0000002859 (CHS) ; - Affichage et réglage de l'horodateur - Guide des bibliothèques SysTimeRtc et SysTimeCore EIO0000002944 (ENG) ; EIO0000002945 (FRE) ; EIO0000002946 (GER) ; EIO0000002947 (ITA) ; EIO0000002948 (SPA) ; EIO0000002949 (CHS) EIO0000002792 06/2019 Titre du document Référence EcoStruxure Machine Expert TcpUdpCommunication EIO0000002803 (ENG) ; - Guide de la bibliothèque EIO0000002804 (FRE) ; EIO0000002805 (GER) ; EIO0000002806 (ITA) ; EIO0000002807 (SPA) ; EIO0000002808 (CHS) RTC Control / Daylight Saving Time / SNTP Client Example Guide EIO0000002445 (ENG) Vous pouvez télécharger ces publications ainsi que d'autres informations techniques sur notre site Web : www.schneider-electric.com/en/download. Terminologie utilisée dans les normes Les termes techniques, la terminologie, les symboles et les descriptions correspondantes employés dans ce manuel ou figurant dans ou sur les produits proviennent généralement des normes internationales. Dans les domaines des systèmes de sécurité fonctionnelle, des variateurs et de l'automatisme en général, les termes employés sont sécurité, fonction de sécurité, état sécurisé, défaut, réinitialisation du défaut, dysfonctionnement, panne, erreur, message d'erreur, dangereux, etc. Entre autres, les normes concernées sont les suivantes : Norme Description IEC 61131-2:2007 Automates programmables - Partie 2 : exigences et essais des équipements ISO 13849-1:2015 Sécurité des machines : parties des systèmes de commande relatives à la sécurité. Principes généraux de conception EN 61496-1:2013 Sécurité des machines : équipements de protection électro-sensibles. Partie 1 : Prescriptions générales et essais ISO 12100:2010 Sécurité des machines - Principes généraux de conception - Appréciation du risque et réduction du risque EN 60204-1:2006 Sécurité des machines - Équipement électrique des machines - Partie 1 : règles générales ISO 14119:2013 Sécurité des machines - Dispositifs de verrouillage associés à des protecteurs - Principes de conception et de choix ISO 13850:2015 Sécurité des machines - Fonction d'arrêt d'urgence - Principes de conception IEC 62061:2015 Sécurité des machines - Sécurité fonctionnelle des systèmes de commande électrique, électronique et électronique programmable relatifs à la sécurité IEC 61508-1:2010 Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité : prescriptions générales. EIO0000002792 06/2019 15 Norme Description IEC 61508-2:2010 Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité : exigences pour les systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité. IEC 61508-3:2010 Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité : exigences concernant les logiciels. IEC 61784-3:2016 Réseaux de communication industriels - Profils - Partie 3 : Bus de terrain de sécurité fonctionnelle - Règles générales et définitions de profils. 2006/42/EC Directive Machines 2014/30/EU Directive sur la compatibilité électromagnétique 2014/35/EU Directive sur les basses tensions De plus, des termes peuvent être utilisés dans le présent document car ils proviennent d'autres normes telles que : Norme Description Série IEC 60034 Machines électriques rotatives Série IEC 61800 Entraînements électriques de puissance à vitesse variable Série IEC 61158 Communications numériques pour les systèmes de mesure et de commande – Bus de terrain utilisés dans les systèmes de commande industriels Enfin, le terme zone de fonctionnement utilisé dans le contexte de la description de dangers spécifiques a la même signification que les termes zone dangereuse ou zone de danger employés dans la directive Machines (2006/42/EC) et la norme ISO 12100:2010. NOTE : Les normes susmentionnées peuvent s'appliquer ou pas aux produits cités dans la présente documentation. Pour plus d'informations sur chacune des normes applicables aux produits décrits dans le présent document, consultez les tableaux de caractéristiques de ces références de produit. 16 EIO0000002792 06/2019 EcoStruxure Machine Expert Informations générales EIO0000002792 06/2019 Partie I Informations générales Informations générales EIO0000002792 06/2019 17 Informations générales 18 EIO0000002792 06/2019 EcoStruxure Machine Expert Description EIO0000002792 06/2019 Chapitre 1 Présentation de la bibliothèque Présentation de la bibliothèque Informations générales Présentation de la bibliothèque La bibliothèque TimeSync implémente la fonction client SNTP (Simple Network Time Protocol). Elle permet au contrôleur de se connecter à un serveur de temps NTP (Network Time Protocol) ou SNTP afin de synchroniser l'horloge interne RTC (Real-Time Clock) du contrôleur en conformité à la norme temporelle UTC (Universal Time Coordinated), internationale et unique. Le client SNTP est conforme à la version 4 du protocole SNTP. Il fournit les fonctions suivantes : Envoi d'une requête à un serveur (S)NTP Réception et structuration de la réponse du serveur (S)NTP Calcul du délai d'aller-retour et du décalage d'horloge Fourniture de l'horodatage synchronisé pour la synchronisation de l'horloge RTC du contrôleur et prise en compte du décalage entre l'horloge RTC locale et le serveur de temps (S)NTP ainsi que du délai d'aller-retour Gestion des erreurs détectées 1 2 3 Serveur de temps : serveur SNTP ou NTP Contrôleur X : client SNTP Contrôleur Y : client SNTP EIO0000002792 06/2019 19 Description Caractéristiques de la bibliothèque Le tableau suivant indique les caractéristiques de la bibliothèque : Caractéristique Valeur Titre de la bibliothèque TimeSync Société Schneider Electric Catégorie Communication Espace de noms par défaut TIMS Attribut du modèle de langage Uniquement accès qualifié (voir EcoStruxure Machine Expert, Fonctions et bibliothèques - Guide de l'utilisateur) Bibliothèque post-compatible Oui (FCL (voir EcoStruxure Machine Expert, Fonctions et bibliothèques - Guide de l'utilisateur)) NOTE : Cette bibliothèque est paramétrée en Uniquement accès qualifié . Cela signifie que l'on ne peut accéder aux POU, aux structures de données, aux énumérations, et aux constantes qu'en utilisant l'espace de nom de la bibliothèque. L'espace de noms par défaut de la bibliothèque est TIMS. Exemple de projet Le projet d'exemple FB_SntpClient est fourni avec la bibliothèque. L’exemple de projet montre comment implémenter les composants à partir de la bibliothèque TimeSync. L'exemple de projet est installé sur votre PC avec le logiciel de programmation. Pour ouvrir l’exemple de projet, procédez comme suit : Étape 20 Action Commentaire 1 Dans EcoStruxure Machine Expert Logic Builder, exécutez la commande Nouveau projet. – 2 Dans la boîte de dialogue Nouveau projet, sélectionnez A partir de l’exemple dans la liste Type de projet. – 3 Sur la droite de la boîte de dialogue Nouveau Résultat : les exemples disponibles sont projet, sélectionnez le contrôleur(1) dans la liste répertoriés dans la zone de texte Exemples correspondants. Contrôleur. 4 Sélectionnez l’exemple dans la liste Exemples correspondants. – 5 Entrez le nom du nouveau projet et sélectionnez l’emplacement du fichier. – 6 Cliquez sur le bouton OK. Résultat : un nouveau projet est créé en fonction de l’exemple sélectionné. EIO0000002792 06/2019 Description Remarques générales NOTE : le réglage de l'horodateur (RTC) du contrôleur génère des entrées dans le fichier journal du contrôleur. Par conséquent, n'utilisez pas cette fonction plus d'une fois par jour pour les ajustements automatiques. L'horloge RTC interne du contrôleur peut être définie par le bloc fonction sur une valeur comprise entre 01.01.1970 et 01.01.2100. Le niveau de précision dépend du serveur (S)NTP utilisé. La synchronisation de l'heure UTC peut atteindre un niveau de précision de l'ordre de la seconde. NOTE : Les entrées du fichier journal du contrôleur sont enregistrées avec un horodatage. Sachez qu'en définissant l'horloge RTC interne du contrôleur sur une date antérieur, vous risquez de créer deux entrées de journal distinctes, associées à un horodatage en apparence erroné. Tenez compte des limites suivantes concernant la communication (S)NTP : Seul le protocole IPv4 (Internet Protocol version 4) est pris en charge. Une seule requête à la fois peut être envoyée à un serveur de temps (S)NTP. La bibliothèque TimeSync intègre des pointeurs sur les adresses. N'utilisez pas un intervalle d'interrogation inférieur à 15 secondes. Utilisez des serveurs locaux, si disponibles, pour éviter tout trafic superflu sur le réseau principal. L'exécution de la commande Changement en ligne peut modifier le contenu des adresses. ATTENTION POINTEUR INCORRECT Vérifiez la validité des pointeurs lors de leur utilisation sur les adresses et de l'exécution de la commande Changement en ligne. Le non-respect de ces instructions peut provoquer des blessures ou des dommages matériels. La bibliothèque décrite dans ce document utilise la bibliothèque TcpUdpCommunication en interne. Les bibliothèques TcpUdpCommunication (Schneider Electric) et CAA Net Base Services (CAA Technical Workgroup) utilisent les mêmes ressources système sur le contrôleur. Leur utilisation simultanée dans la même application peut perturber le fonctionnement du contrôleur. AVERTISSEMENT FONCTIONNEMENT IMPRÉVU DE L’EQUIPEMENT N'utilisez pas la bibliothèque TcpUdpCommunication (Schneider Electric) avec la bibliothèque CAA Net Base Services (CAA Technical Workgroup) simultanément dans la même application. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. EIO0000002792 06/2019 21 Description Éléments à prendre en compte concernant la cybersécurité Les fonctions de la bibliothèque TimeSync ne prennent pas en charge les connexions sécurisées telles que TLS (Transport Layer Security) ou SSL (Secure Socket Layer). Les télégrammes SNTP ne sont pas chiffrés et l'authentification n'est pas nécessaire pour obtenir ou définir des informations sur un agent. La communication ne peut s'effectuer qu'au sein de votre réseau industriel, isolé des autres réseaux de votre entreprise et protégé d'Internet. NOTE : Schneider Electric respecte les bonnes pratiques de l'industrie, en vigueur dans le développement et la mise en œuvre des systèmes de contrôle. Cette approche, dite de « défense en profondeur », permet de sécuriser les systèmes de contrôle industriels. Elle place les contrôleurs derrière des pare-feu pour restreindre leur accès aux seuls personnels et protocoles autorisés. AVERTISSEMENT ACCÈS NON AUTHENTIFIÉ ET UTILISATION NON AUTORISÉE DE LA MACHINE Estimer si votre environnement ou vos machines sont connecté(e)s à votre infrastructure vitale et, le cas échéant, prendre les mesures nécessaires de prévention, basées sur le principe de défense en profondeur, avant de connecter le système d'automatisme à un réseau quelconque. Limiter au strict nécessaire le nombre d'équipements connectés à un réseau. Isoler votre réseau industriel des autres réseaux au sein de votre société. Protéger chaque réseau contre les accès non autorisés à l'aide d'un pare-feu, d'un VPN ou d'autres mesures de sécurité éprouvées. Surveiller les activités au sein de votre système. Empêcher tout accès direct ou liaison directe aux équipements sensibles par des utilisateurs non autorisés ou des actions non authentifiées. Préparer un plan de récupération intégrant la sauvegarde des informations de votre système et de votre processus. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Pour plus d'informations sur les mesures organisationnelles et les règles d'accès aux infrastructures, reportez-vous aux normes suivantes : famille de normes ISO/IEC 27000, Critères Communs pour l'évaluation de la sécurité des Technologies de l'Information, ISO/IEC 15408, IEC 62351, ISA/IEC 62443, Cybersecurity Framework (Cadre de cybersécurité) du NIST, Standard of Good Practice for Information Security (Bonne pratique de sécurité de l'information) de l'Information Security Forum. La bibliothèque contient les fonctions suivantes, destinées à éviter les erreurs de communication : Vérification de l'horodatage envoyé à l'origine au serveur pour permettre la détection des erreurs de transmission. Vérification de la conformité de la définition du protocole avec la norme. Vérification de la version du serveur et envoi d'un message de diagnostic en cas de divergence. 22 EIO0000002792 06/2019 Description Présentation des POU Bloc fonction / fonction Utilisation FB_SntpClient (voir page 41) Fournit les fonctions client SNTP. FC_EtResultToString (voir page 45) Convertit un élément d'énumération de type ET_Result en une valeur de chaîne. Présentation des structures dans l'interface propre au module Structure Utilisation ST_TimeRequest (voir page 32) Contient des informations spécifiques pour l'envoi d'une requête SNTP à un serveur de temps (S)NTP. ST_TimeResponse (voir page 33) Contient l'horodatage et peut être utilisé pour synchroniser l'horloge RTC. Présentation des énumérations Énumération Utilisation ET_ComMode (voir page 28) Définit le mode de communication du client SNTP. ET_Result (voir page 29) Contient les valeurs possibles indiquées par les résultats des opérations exécutées par le bloc fonction. EIO0000002792 06/2019 23 Description 24 EIO0000002792 06/2019 EcoStruxure Machine Expert Énumérations et Structures EIO0000002792 06/2019 Partie II Énumérations et Structures Énumérations et Structures Contenu de cette partie Cette partie contient les chapitres suivants : Chapitre Titre du chapitre Page 2 Énumérations 27 3 Structures 31 EIO0000002792 06/2019 25 Énumérations et Structures 26 EIO0000002792 06/2019 EcoStruxure Machine Expert Énumérations EIO0000002792 06/2019 Chapitre 2 Énumérations Énumérations Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page ET_ComMode 28 ET_Result 29 EIO0000002792 06/2019 27 Énumérations ET_ComMode Présentation Type : Énumération Disponible à partir de la version : V1.0.7.0 Description L'énumération ET_ComMode définit le mode de communication du client SNTP. Cette version de la bibliothèque ne prend pas en charge le mode monodiffusion. Par conséquent, la valeur est toujours réglée sur 0. Éléments de l'énumération Nom Type de données Valeur Description Unicast UDINT 0 Une connexion point à point est établie : un client monodiffusion envoie une demande à un serveur désigné à son adresse monodiffusion et attend une réponse qui lui permet de déterminer la date/heure. Utilisé par 28 ST_TimeRequest EIO0000002792 06/2019 Énumérations ET_Result Présentation Type : Énumération Disponible à partir de la version : V1.0.7.0 Description L'énumération ET_Result contient les valeurs possibles qui donnent le résultat et les codes d'erreur étendus des opérations exécutées par le bloc fonction. Éléments de l'énumération q_xError of the function block is TRUE as long as these results are set: Nom Type de données Valeur Description Les messages d'état suivants s'affichent si aucune erreur n'est détectée : Ok UDINT 0 L'opération a abouti et le bloc fonction est inactif. Initializing UDINT 1 Le bloc fonction est en cours d'initialisation. UDPopen UDINT 2 Le bloc fonction ouvre un socket UDP. UDPsend UDINT 3 Le bloc fonction utilise des données d'entrée pour créer et envoyer un télégramme de demande. Processing UDINT 4 Le bloc fonction traite le télégramme reçu. Disabled UDINT 5 Le bloc fonction est désactivé. Les messages d'état suivants s'affichent si aucune erreur n'est détectée dans les données d'entrée : InvalidServerIp UDINT 21 La valeur détectée de i_sServerIp n'est pas valide. L'adresse IP définie par cette entrée (voir page 32) doit être constituée de 4 nombres situés dans la plage 0-255 séparés par un point. InputTimeoutZero UDINT 22 La valeur détectée de i_timServerTimeOut (voir page 32) n'est pas valide. Elle doit être supérieure à zéro car elle définit le temps durant lequel le bloc fonction attend une réponse du serveur. InvalidMaxRtcOffset UDINT 23 La valeur détectée de q_liRtcOffset (voir page 33) est supérieure à 7200 (secondes). InvalidComMode UDINT 24 La valeur détectée de ET_ComMode n'est pas valide. Vérifiez les éléments d'énumération des paramètres de ET_ComMode (voir page 28). EIO0000002792 06/2019 29 Énumérations Nom Type de données Valeur Description InvalidTimeZone UDINT 25 Les valeurs du fuseau horaire sont supérieures à 86400 (secondes) (24 heures). Les messages d'état suivants s'affichent si aucune erreur n'a été détectée dans les données reçues : UDINT 30 L'horodatage qui a été envoyé au serveur de temps pour vérification n'a pas été renvoyé. Effectuez un autre essai de connexion au serveur de temps ou connectez-vous à un autre serveur de temps avec adresse IP différente. ClockNotSynchronized UDINT 31 L'horloge du serveur de temps n'a pas été synchronisée. Connectez-vous à un autre serveur de temps. VersionNumberInvalid UDINT 32 La version détectée du serveur de temps n'est pas valide. Vérifiez que la version du serveur de temps est 3 ou 4. ProtocolModeInvalid UDINT 33 Le mode de protocole détecté du serveur de temps n'est pas valide. Vérifiez que le mode de protocole utilisé par le serveur de temps est 4 ou 5. KodPacketReceived UDINT 34 Un paquet de protocole de protection (S)NTP a été reçu. La transmission de données à ce serveur est interrompue. Connectez-vous à un autre serveur de temps. NewRtcValueOutOfRang UDINT e 35 La nouvelle valeur RTC calculée n'est pas dans la plage de la valeur actuelle ± entrée i_uiMaxRtcOffset (voir page 43). TimeStampInvalid Les messages d'état suivants s'affichent si aucune erreur n'est détectée dans les communications UDP : UdpIssue UDINT 40 Une erreur générique a été reçue de la bibliothèque TcpUdpCommunication. Consultez le document TcpUdpCommunication - Guide de la bibliothèque (voir EcoStruxure Machine Expert, TcpUdpCommunication, Guide de la bibliothèque). UdpTimeout UDINT 41 Aucune réponse reçue de la part de l'agent dans le temps imparti, avec le nombre de tentatives indiquées. UnknownResult UDINT 99 Retour de FC_EtResultToString en cas de valeur indéterminée de EtResult. En cas d'expirations de délai récurrentes ou d'autres problèmes de communication : Vérifiez les connexions physiques du contrôleur, de l'agent SNTP, etc. Vérifiez l'itinéraire de communication entre le contrôleur et l'agent SNTP, par exemple, les paramètres du commutateur, du routeur et du pare-feu (la communication UDP et les ports SNTP doivent être autorisés. Vérifiez l'adresse IP et le port SNTP du serveur de temps (S)NTP fournis. Utilisé par 30 FB_SntpClient EIO0000002792 06/2019 EcoStruxure Machine Expert Structures EIO0000002792 06/2019 Chapitre 3 Structures Structures Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page ST_TimeRequest 32 ST_TimeResponse 33 EIO0000002792 06/2019 31 Structures ST_TimeRequest Présentation Type : Structure Disponible à partir de la version : V1.0.7.0 Hérite de : – Description La structure ST_TimeRequest contient des informations spécifiques pour l'envoi d'une demande SNTP à un serveur de temps (S)NTP. Éléments de la structure Nom Type de données Description i_sServerIp STRING[15] Adresse IP du serveur de temps (S)NTP. Il s'agit d'une adresse unique constituée de quatre nombres compris entre 0 et 255, séparés par un point. L'adresse IP doit être unique dans le réseau. i_uiServerPort UINT Port SNTP du serveur de temps. Si l'entrée est vide, le port par défaut 123 est utilisé. i_timServerTimeOut TIME Délai d'attente maximal d'une réponse du serveur. La valeur doit être supérieure à zéro. i_etComMode ET_ComMode Mode de communication défini avec l'ET_ComMode énumération (voir page 28). Utilisé par 32 FB_SntpClient EIO0000002792 06/2019 Structures ST_TimeResponse Présentation Type : Structure Disponible à partir de la version : V1.0.7.0 Hérite de : – Description La structure ST_TimeResponse contient l'horodatage synchronisé notamment le décalage i_diTimeZone défini pour FB_SntpClient (voir page 41). Elle peut être utilisée pour synchroniser l'horloge RTC du contrôleur, et elle prend en compte les informations de date/heure reçues concernant le décalage du serveur et le délai d'aller-retour. Éléments de la structure Nom Type de données Description q_stSyncTimestamp SysTimeRtc.RTS_SYSTIMEDATE Contient l'horodatage synchronisé (notamment le décalage i_diTimeZone) présenté dans un format lisible. Structure fournie par la bibliothèque (voir EcoStruxure Machine Expert, Getting & Setting Real Time Clock, SysTimeRtc and SysTimeCore Library Guide) SysTimeRtc. q_uliUnixTimestamp ULINT Horodatage synchronisé (notamment décalage i_diTimeZone) sous forme d'horodatage UNIX. q_liRtcOffset LINT Décalage calculé (en ms) entre l'horloge RTC locale du contrôleur et le serveur de temps (S)NTP. Les valeurs négatives sont possibles, par exemple - 2 h = - 7 200 000. q_udiRoundTripDelay UDINT Délai d'aller-retour calculé (en ms) Exemple : 30 = 30 ms Utilisé par FB_SntpClient EIO0000002792 06/2019 33 Structures 34 EIO0000002792 06/2019 EcoStruxure Machine Expert Variables globales EIO0000002792 06/2019 Partie III Variables globales Variables globales EIO0000002792 06/2019 35 Variables globales 36 EIO0000002792 06/2019 EcoStruxure Machine Expert Liste des constantes globales EIO0000002792 06/2019 Chapitre 4 Liste des constantes globales Liste des constantes globales Liste des constantes globales (GCL) Présentation Type : Constantes globales Disponible à partir de la version : V1.0.7.0 Description La liste des constantes globales contient les constantes globales de la bibliothèque TimeSync. Constantes globales Variable Type de données Gc_sLibraryVersion STRING[80] 1 Valeur Description 1 Vx.x.x.0 Version de bibliothèque Cette valeur varie selon la version de la bibliothèque. EIO0000002792 06/2019 37 Liste des constantes globales 38 EIO0000002792 06/2019 EcoStruxure Machine Expert Unités d'organisation de programme (POU) EIO0000002792 06/2019 Partie IV Unités d'organisation de programme (POU) Unités d'organisation de programme (POU) Contenu de cette partie Cette partie contient les chapitres suivants : Chapitre Titre du chapitre Page 5 Blocs fonction 41 6 Fonctions 45 EIO0000002792 06/2019 39 Unités d'organisation de programme (POU) 40 EIO0000002792 06/2019 EcoStruxure Machine Expert Blocs fonction EIO0000002792 06/2019 Chapitre 5 Blocs fonction Blocs fonction FB_SntpClient Présentation Type : Bloc fonction Disponible à partir de la version : V1.0.7.0 Tâche Le bloc fonction FB_SntpClient fournit des fonctions client SNTP. Description fonctionnelle Le bloc fonction FB_SntpClient est l'interface utilisateur des communications SNTP. Le bloc fonction doit être activé et prêt à traiter une requête. Lors de l'exécution d'une requête, les informations issues des entrées permettent de créer un télégramme SNTP contenant une demande de date/heure. Le télégramme est envoyé à un seul serveur en utilisant UDP. Le bloc fonction attend une réponse du serveur, la traite et présente les informations reçues à la sortie q_stTimeResponse. Tant que le bloc fonction exécute une requête, la sortie q_xBusy est TRUE et q_etResult indique l'état de l'opération. La sortie q_xDone signale une exécution complète et q_xError indique si le bloc fonction détecte une erreur pendant l'exécution avec q_etResult et q_sResultMsg présentant d'autres informations sur la nature ou la cause de l'erreur détectée. Si une erreur est détectée, le bloc fonction doit être réinitialisé (vous devez le désactiver, puis le réactiver). EIO0000002792 06/2019 41 Blocs fonction Selon l'entrée i_xSyncRtc, les valeurs calculées servent à définir l'horloge RTC des contrôleurs en attribuant la valeur reçue du serveur (en tenant compte du décalage, ou offset, défini avec l'entrée i_diTimeZone). La synchronisation de l'heure UTC peut atteindre un niveau de précision de l'ordre de la seconde. NOTE : Le réglage heure d'été n'est pas pris en compte par le bloc fonction. Vous devez le configurer dans votre application. Consultez aussi le document (voir page 14) RTC Control / Timezone / Daylight Saving Time Example Guide. L'entrée i_uiMaxRtcOffset peut être utilisée pour le contrôle de plausibilité des résultats du serveur avant le réglage de l'horloge RTC du contrôleur. NOTE : le réglage de l'horodateur (RTC) du contrôleur génère des entrées dans le fichier journal du contrôleur. Par conséquent, n'utilisez pas cette fonction plus d'une fois par jour pour les ajustements automatiques. 42 EIO0000002792 06/2019 Blocs fonction Interface Entrée Type de données Description i_xEnable BOOL Activation et initialisation du bloc fonction. i_xExecute BOOL La requête définie avec l'entrée iq_stTimeRequest est exécutée sur le front montant de cette entrée. i_xSyncRtc BOOL Si l'entrée est définie sur TRUE, l'horloge RTC du contrôleur est automatiquement définie après la réception d'une réponse du serveur de temps (S)NTP. Valeur par défaut : FALSE NOTE : le réglage de l'horodateur (RTC) du contrôleur génère des entrées dans le fichier journal du contrôleur. Par conséquent, n'utilisez pas cette fonction plus d'une fois par jour pour les ajustements automatiques. i_diTimeZone DINT i_uiMaxRtcOffset UINT i_stTimeRequest Décalage qui est ajouté à l'horodatage reçu du serveur de temps (S)NTP, en secondes. Valeur par défaut : 0 Plage de valeurs : -86400...+86400 (24 h x 60 min x 60 s) Différence maximale autorisée entre la valeur actuelle et la nouvelle valeur de RTC si i_xSyncRtc est TRUE. Peut être utilisé pour un contrôle de plausibilité pour éviter un réglage indésirable de RTC. Par exemple, si l'horloge RTC est synchronisée une fois avec un serveur de temps, toutes les synchronisations ultérieures (décalages) doivent être comprises dans une plage de ± 30 s. Valeur par défaut : 0 (fonction inactive) Valeur maximale : 7200 s (2 heures) ST_TimeRequest Structure contenant les données d'entrée utilisateur requises concernant le serveur de temps (S)NTP. (voir page 32) EIO0000002792 06/2019 43 Blocs fonction Sortie Type de données Description q_xActive BOOL Si le bloc fonction est actif, cette sortie est TRUE. q_xReady BOOL Valeur TRUE si le bloc fonction est prêt à recevoir l'entrée utilisateur. q_xBusy BOOL Si cette sortie est TRUE, le bloc fonction est en cours de traitement. q_xDone BOOL Si cette sortie est TRUE, le bloc fonction a exécuté la commande demandée. Des données supplémentaires peuvent être collectées sur iq_stTimeRequest. q_stTimeResponse ST_TimeResponse Structure contenant l'horodatage synchronisé (notamment le décalage i_diTimeZone), le décalage entre l'horloge RTC locale du contrôleur et le serveur de temps (S)NTP, et le délai d'aller-retour. (voir page 33) q_Error BOOL Si cette sortie est TRUE, une erreur a été détectée. Pour plus d'informations, reportez-vous à q_etResult et q_etResultMsg. q_etResult ET_Result Fournit des informations de diagnostic et d'état sous la forme d'une valeur numérique. (voir page 29) q_sResultMsg 44 STRING[255] Fournit des informations de diagnostic et d'état sous la forme d'un message textuel. EIO0000002792 06/2019 EcoStruxure Machine Expert Fonctions EIO0000002792 06/2019 Chapitre 6 Fonctions Fonctions FC_EtResultToString Présentation Type : Fonction Disponible à partir de la version : V1.0.7.0 Hérite de : – Met en œuvre : – Tâche Convertir un élément d'énumération de type ET_Result en une variable de type STRING. Description fonctionnelle La fonction FC_EtResultToString permet de convertir un élément d'énumération de type ET_Result en une variable de type STRING. Interface Entrée Type de données Description i_etResult ET_Result Énumération avec le résultat. Valeur retournée Type de données Description STRING(80) ET_Result converti en texte. Si i_etResult est indéterminable, la valeur de retour est : Unknown Result: <Value of the input i_etResult> EIO0000002792 06/2019 45 Fonctions 46 EIO0000002792 06/2019 EcoStruxure Machine Expert EIO0000002792 06/2019 Annexes EIO0000002792 06/2019 47 48 EIO0000002792 06/2019 EcoStruxure Machine Expert Représentation des fonctions et blocs fonction EIO0000002792 06/2019 Annexe A Représentation des fonctions et blocs fonction Représentation des fonctions et blocs fonction Présentation Chaque fonction peut être représentée dans les langages suivants : IL : (Instruction List) liste d'instructions ST : (Structured Text) littéral structuré LD : (Ladder Diagram) schéma à contacts FBD : Function Block Diagram (Langage à blocs fonction) CFC : Continuous Function Chart (Diagramme fonctionnel continu) Ce chapitre fournit des exemples de représentations de fonctions et blocs fonction et explique comment les utiliser dans les langages IL et ST. Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page Différences entre une fonction et un bloc fonction 50 Utilisation d'une fonction ou d'un bloc fonction en langage IL 51 Utilisation d'une fonction ou d'un bloc fonction en langage ST 55 EIO0000002792 06/2019 49 Représentation des fonctions et blocs fonction Différences entre une fonction et un bloc fonction Fonction Une fonction : est une POU (Program Organization Unit ou unité organisationnelle de programme) qui renvoie un résultat immédiat ; est directement appelée par son nom (et non par une instance) ; ne conserve pas son état entre deux appels ; peut être utilisée en tant qu'opérande dans des expressions. Exemples : opérateurs booléens (AND), calculs, conversions (BYTE_TO_INT) Bloc fonction Un bloc fonction : est une POU qui renvoie une ou plusieurs sorties ; doit être appelé par une instance (copie de bloc fonction avec nom et variables dédiées). Chaque instance conserve son état (sorties et variables internes) entre deux appels à partir d'un bloc fonction ou d'un programme. Exemples : temporisateurs, compteurs Dans l'exemple, Timer_ON est une instance du bloc fonction TON : 50 EIO0000002792 06/2019 Représentation des fonctions et blocs fonction Utilisation d'une fonction ou d'un bloc fonction en langage IL Informations générales Cette partie explique comment mettre en œuvre une fonction et un bloc fonction en langage IL. Les fonctions IsFirstMastCycle et SetRTCDrift, ainsi que le bloc fonction TON, sont utilisés à titre d'exemple pour illustrer les mises en œuvre. Utilisation d'une fonction en langage IL La procédure suivante explique comment insérer une fonction en langage IL : Étape 1 Action Ouvrez ou créez une POU en langage IL (Instruction List, ou liste d'instructions). NOTE : La procédure de création d'une POU n'est pas détaillée ici. Pour plus d'informations, reportez-vous à la section Ajout et appel de POU (voir EcoStruxure Machine Expert, Guide de programmation). 2 Créez les variables nécessaires à la fonction. 3 Si la fonction possède une ou plusieurs entrées, chargez la première entrée en utilisant l'instruction LD. 4 Insérez une nouvelle ligne en dessous et : saisissez le nom de la fonction dans la colonne de l'opérateur (champ de gauche), ou utilisez l'Aide à la saisie pour sélectionner la fonction (sélectionnez Insérer l'appel de module dans le menu contextuel). 5 Si la fonction a plus d'une entrée et que l'assistant Aide à la saisie est utilisé, le nombre requis de lignes est automatiquement créé avec ??? dans les champs situés à droite. Remplacez les ??? par la valeur ou la variable appropriée compte tenu de l'ordre des entrées. 6 insérez une nouvelle ligne pour stocker le résultat de la fonction dans la variable appropriée : saisissez l'instruction ST dans la colonne de l'opérateur (champ de gauche) et le nom de la variable dans le champ de droite. Pour illustrer la procédure, utilisons les fonctions IsFirstMastCycle (sans paramètre d'entrée) et SetRTCDrift (avec paramètres d'entrée) représentées graphiquement ci-après : Fonction Représentation graphique sans paramètre d'entrée : IsFirstMastCycle EIO0000002792 06/2019 51 Représentation des fonctions et blocs fonction Fonction Représentation graphique avec paramètres d'entrée : SetRTCDrift En langage IL, le nom de la fonction est utilisé directement dans la colonne de l'opérateur : Fonction Représentation dans l'éditeur IL de POU Exemple en IL d'une fonction sans paramètre d'entrée : IsFirstMastCycle 52 EIO0000002792 06/2019 Représentation des fonctions et blocs fonction Fonction Représentation dans l'éditeur IL de POU Exemple IL d'une fonction avec des paramètres d'entrée : SetRTCDrift Utilisation d'un bloc fonction en langage IL La procédure suivante explique comment insérer un bloc fonction en langage IL : Étape Action 1 Ouvrez ou créez une POU en langage IL (Instruction List, ou liste d'instructions). NOTE : La procédure de création d'une POU n'est pas détaillée ici. Pour plus d'informations, reportez-vous à la section Ajout et appel de POU (voir EcoStruxure Machine Expert, Guide de programmation). 2 Créez les variables nécessaires au bloc fonction (y compris le nom de l'instance). 3 L'appel de blocs fonction nécessite l'utilisation d'une instruction CAL : Utilisez l'Aide à la saisie pour sélectionner le bloc fonction (cliquez avec le bouton droit et sélectionnez Insérer l'appel de module dans le menu contextuel). L'instruction CAL et les E/S nécessaires sont automatiquement créées. Chaque paramètre (E/S) est une instruction : Les valeurs des entrées sont définies à l'aide de « := ». Les valeurs des sorties sont définies à l'aide de « => ». 4 Dans le champ CAL de droite, remplacez les ??? par le nom de l'instance. 5 Remplacez les autres ??? par une variable ou une valeur immédiate appropriée. EIO0000002792 06/2019 53 Représentation des fonctions et blocs fonction Pour illustrer la procédure, utilisons le bloc fonction TON représenté graphiquement ci-après : Bloc fonction Représentation graphique TON En langage IL, le nom du bloc fonction est utilisé directement dans la colonne de l'opérateur : Bloc fonction Représentation dans l'éditeur IL de POU TON 54 EIO0000002792 06/2019 Représentation des fonctions et blocs fonction Utilisation d'une fonction ou d'un bloc fonction en langage ST Informations générales Cette partie décrit comment mettre en œuvre une fonction ou un bloc fonction en langage ST. La fonction SetRTCDrift et le bloc fonction TON sont utilisés à titre d'exemple pour illustrer les mises en œuvre. Utilisation d'une fonction en langage ST La procédure suivante explique comment insérer une fonction en langage ST : Étape Action 1 Ouvrez ou créez une POU en langage ST (Structured Text ou Littéral structuré). NOTE : La procédure de création d'une POU n'est pas détaillée ici. Pour plus d'informations, reportez-vous à la section Ajout et appel de POU (voir EcoStruxure Machine Expert, Guide de programmation). 2 Créez les variables nécessaires à la fonction. 3 Utilisez la syntaxe générale dans l'éditeur ST de POU pour la représentation en langage ST d'une fonction. La syntaxe générale est la suivante : RésultatFonction:= NomFonction(VarEntrée1, VarEntrée2, … VarEntréex); Pour illustrer la procédure, utilisons la fonction SetRTCDrift représentée graphiquement ciaprès : Fonction Représentation graphique SetRTCDrift EIO0000002792 06/2019 55 Représentation des fonctions et blocs fonction La représentation en langage ST de cette fonction est la suivante : Fonction Représentation dans l'éditeur ST de POU SetRTCDrift PROGRAM MyProgram_ST VAR myDrift: SINT(-29..29) := 5; myDay: DAY_OF_WEEK := SUNDAY; myHour: HOUR := 12; myMinute: MINUTE; myRTCAdjust: RTCDRIFT_ERROR; END_VAR myRTCAdjust:= SetRTCDrift(myDrift, myDay, myHour, myMinute); Utilisation d'un bloc fonction en langage ST La procédure suivante explique comment insérer un bloc fonction en langage ST : Étape Action 1 Ouvrez ou créez une POU en langage ST (Structured Text ou Littéral structuré). NOTE : La procédure de création d'une POU n'est pas détaillée ici. Pour plus d'informations sur l'ajout, la déclaration et l'appel de POU, reportez-vous à la documentation (voir EcoStruxure Machine Expert, Guide de programmation) associée. 2 Créez les variables d'entrée, les variables de sortie et l'instance requises pour le bloc fonction : Les variables d'entrée sont les paramètres d'entrée requis par le bloc fonction. Les variables de sortie reçoivent la valeur renvoyée par le bloc fonction. 3 Utilisez la syntaxe générale dans l'éditeur ST de POU pour la représentation en langage ST d'un bloc fonction. La syntaxe générale est la suivante : BlocFonction_NomInstance(Entrée1:=VarEntrée1, Entrée2:=VarEntrée2,… Sortie1=>VarSortie1, Sortie2=>VarSortie2,…); Pour illustrer la procédure, utilisons le bloc fonction TON représenté graphiquement ci-après : Bloc fonction Représentation graphique TON 56 EIO0000002792 06/2019 Représentation des fonctions et blocs fonction Le tableau suivant montre plusieurs exemples d'appel de bloc fonction en langage ST : Bloc fonction Représentation dans l'éditeur ST de POU TON EIO0000002792 06/2019 57 Représentation des fonctions et blocs fonction 58 EIO0000002792 06/2019 EcoStruxure Machine Expert Glossaire EIO0000002792 06/2019 Glossaire C CFC Acronyme de continuous function chart (diagramme fonctionnel continu). Langage de programmation graphique (extension de la norme IEC 61131-3) basé sur le langage de diagramme à blocs fonction et qui fonctionne comme un diagramme de flux. Toutefois, il n'utilise pas de réseaux et le positionnement libre des éléments graphiques est possible, ce qui permet les boucles de retour. Pour chaque bloc, les entrées se situent à gauche et les sorties à droite. Vous pouvez lier les sorties de blocs aux entrées d'autres blocs pour créer des expressions complexes. F FB Acronyme de function block, bloc fonction. Mécanisme de programmation commode qui consolide un groupe d'instructions de programmation visant à effectuer une action spécifique et normalisée telle que le contrôle de vitesse, le contrôle d'intervalle ou le comptage. Un bloc fonction peut comprendre des données de configuration, un ensemble de paramètres de fonctionnement interne ou externe et généralement une ou plusieurs entrées et sorties de données. I IL INT Acronyme de instruction list, liste d'instructions. Un programme écrit en langage IL est composé d'instructions textuelles qui sont exécutées séquentiellement par le contrôleur. Chaque instruction comprend un numéro de ligne, un code d'instruction et un opérande (voir la norme IEC 61131-3). Abréviation de integer, nombre entier codé sur 16 bits. EIO0000002792 06/2019 59 Glossaire L langage en blocs fonctionnels Un des 5 langages de programmation de logique ou de commande pris en charge par la norme IEC 61131-3 pour les systèmes de commande. FBD est un langage de programmation orienté graphique. Il fonctionne avec une liste de réseaux où chaque réseau contient une structure graphique de zones et de lignes de connexion représentant une expression logique ou arithmétique, un appel de bloc fonction ou une instruction de retour. LD Acronyme de ladder diagram, schéma à contacts. Représentation graphique des instructions d'un programme de contrôleur, avec des symboles pour les contacts, les bobines et les blocs dans une série de réseaux exécutés séquentiellement par un contrôleur (voir IEC 61131-3). M monodiffusion/diffusion/multidiffusion (unicast/broadcast/multicast) La communication de type monodiffusion (Unicast) cible un système comme destination. En monodiffusion (unicast), vous avez le choix entre le protocole TCP ou UDP. La communication de type diffusion (Broadcast) cible tous les systèmes appartenant à un même sous-réseau. Tout comme en multidiffusion (multicast), seul le protocole UDP peut être utilisé. La communication de type multidiffusion (Multicast) cible des systèmes spécifiques qui doivent être reliés à un groupe multicast particulier avant de recevoir des paquets destinés à ce groupe. O octet Type codé sur 8 bits, de 00 à FF au format hexadécimal. P POU 60 Acronyme de program organization unit, unité organisationnelle de programme. Déclaration de variables dans le code source et jeu d'instructions correspondant. Les POUs facilitent la réutilisation modulaire de programmes logiciels, de fonctions et de blocs fonction. Une fois déclarées, les POUs sont réutilisables. EIO0000002792 06/2019 Glossaire R RTC Acronyme de real-time clock, horloge en temps réel. Horloge horaire et calendaire supportée par une batterie qui fonctionne en continu, même lorsque le contrôleur n'est pas alimenté, jusqu'à la fin de l'autonomie de la batterie. S SNTP ST (Simple Network Time Protocol) Version simplifiée du protocole NTP (Network Time Protocol). Il permet de synchroniser l'heure sur des ordinateurs en réseau. Il utilise le temps universel coordonné (Coordinated Universal Time, UTC) pour synchroniser les horloges des ordinateurs à une milliseconde, et parfois à une fraction de milliseconde. Acronyme de structured text, texte structuré. Langage composé d'instructions complexes et d'instructions imbriquées (boucles d'itération, exécutions conditionnelles, fonctions). Le langage ST est conforme à la norme IEC 61131-3. U UDP UDP UTC Acronyme de User Datagram Protocol, protocole de datagramme utilisateur. Protocole de mode sans fil (défini par la norme IETF RFC 768) dans lequel les messages sont livrés dans un datagramme vers un ordinateur cible sur un réseau IP. Le protocole UDP est généralement fourni en même temps que le protocole Internet. Les messages UDP/IP n'attendent pas de réponse et, de ce fait, ils sont particulièrement adaptés aux applications dans lesquelles aucune retransmission des paquets envoyés n'est nécessaire (comme dans la vidéo en continu ou les réseaux exigeant des performances en temps réel). UDP (User Datagram Protocol) est un protocole de transmission employé dans les réseaux IP. Acronyme de Universal Time Coordinated. Principal standard horaire utilisé dans le monde pour régler les horloges. V variable Unité de mémoire qui est adressée et modifiée par un programme. EIO0000002792 06/2019 61 Glossaire 62 EIO0000002792 06/2019 EcoStruxure Machine Expert Index EIO0000002792 06/2019 Index B bibliothèques TimeSync, 19 E ET_ComMode, 28 Unicast, 28 ET_Result, 29 ClockNotSynchronized, 30 Disabled, 29 Initializing, 29 InputTimeoutZero, 29 InvalidComMode, 29 InvalidMaxRtcOffset, 29 InvalidServerIp, 29 InvalidTimeZone, 30 KodPacketReceived, 30 NewRtcValueOutOfRange, 30 Ok, 29 Processing, 29 ProtocolModeInvalid, 30 TimeStampInvalid, 30 UdpIssue, 30 UDPopen, 29 UDPSend, 29 UdpTimeout, 30 UnknownResult, 30 VersionNumberInvalid, 30 fonction en langage ST, 55 G GCL (liste des constantes globales) TimeSync, 37 R Remarques générales relatives au transfert SNTP, 21 S ST_TimeRequest, 32 ST_TimeResponse, 33 T TimeSync, 19 GCL (liste des constantes globales), 37 F FB_SntpClient, 41 FC_EtResultToString, 45 fonctions différences entre une fonction et un bloc fonction, 50 utilisation d'une fonction ou d'un bloc fonction en langage IL, 51 utilisation d'une fonction ou d'un bloc EIO0000002792 06/2019 63