Schneider Electric EcoStruxure Machine Expert Mode d'emploi

Ajouter à Mes manuels
887 Des pages
Schneider Electric EcoStruxure Machine Expert Mode d'emploi | Fixfr
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

Manuels associés