Schneider Electric SoMachine - TimeSync Mode d'emploi

Ajouter à Mes manuels
63 Des pages
Schneider Electric SoMachine - TimeSync Mode d'emploi | Fixfr
SoMachine
EIO0000002543 06/2017
SoMachine
TimeSync
Guide de la bibliothèque
EIO0000002543.00
06/2017
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.
Aucune partie de ce document ne peut être reproduite sous quelque forme ou par quelque moyen
que ce soit, électronique, mécanique ou photocopie, sans autorisation préalable de Schneider
Electric.
Toutes les réglementations de sécurité pertinentes locales doivent être observé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.
© 2017 Schneider Electric. Tous droits réservés.
2
EIO0000002543 06/2017
Table des matières
Consignes de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . .
A propos de ce manuel. . . . . . . . . . . . . . . . . . . . . . . . . .
Partie I Informations générales . . . . . . . . . . . . . . . . . . . . . . .
Chapitre 1 Informations spécifiques de sécurité . . . . . . . . . . . . . . .
Qualification du Personnel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Instructions d'utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Informations relatives au produit . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapitre 2 Présentation de la bibliothèque . . . . . . . . . . . . . . . . . . .
Informations générales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Partie II Énumérations et Structures . . . . . . . . . . . . . . . . . . .
Chapitre 3 Énumérations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ET_ComMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ET_Result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapitre 4 Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ST_TimeRequest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ST_TimeResponse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Partie III Variables globales . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapitre 5 Liste des constantes globales. . . . . . . . . . . . . . . . . . . . .
Liste des constantes globales (GCL). . . . . . . . . . . . . . . . . . . . . . . . . .
Partie IV Unités d'organisation de programme (POU) . . . . . . .
Chapitre 6 Blocs fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
FB_SntpClient. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapitre 7 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
EIO0000002543 06/2017
.........................................
.........................................
5
9
11
13
14
14
15
19
19
25
27
28
29
33
34
35
37
39
39
41
43
43
47
47
49
51
52
53
57
59
63
3
4
EIO0000002543 06/2017
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.
EIO0000002543 06/2017
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.
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.
6
EIO0000002543 06/2017
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.
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.
EIO0000002543 06/2017
7
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.
8
EIO0000002543 06/2017
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.
La bibliothèque TimeSync utilise des fonctions et des ressources système qui sont prises en
charge sur certaines plateformes de contrôleur :





Modicon M241 Logic Controller
Modicon M251 Logic Controller
Modicon M258 Logic Controller
Modicon LMC078 Motion Controller
Modicon LMC058 Motion Controller
Champ d'application
Ce document a été actualisé pour le lancement de SoMachine V4.3.
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 Fiches produit 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.
EIO0000002543 06/2017
9
Les caractéristiques présentées dans ce manuel 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 manuel et les informations fournies en ligne, utilisez ces
dernières en priorité.
Documents à consulter
Titre du document
Référence
SoMachine - Fonctions et bibliothèques - Guide de
l'utilisateur
EIO0000000735 (ENG) ;
EIO0000000792 (FRE) ;
EIO0000000793 (GER) ;
EIO0000000795 (SPA) ;
EIO0000000794 (ITA) ;
EIO0000000796 (CHS)
SoMachine - Guide de programmation
EIO0000000067 (ENG) ;
EIO0000000069 (FRE) ;
EIO0000000068 (GER) ;
EIO0000000071 (SPA) ;
EIO0000000070 (ITA) ;
EIO0000000072 (CHS)
SoMachine - Affichage et réglage de l'horodateur EIO0000000667 (ENG) ;
Guide des bibliothèques SysTimeRtc et SysTimeCore EIO0000000668 (FRE) ;
EIO0000000669 (GER) ;
EIO0000000671 (SPA) ;
EIO0000000670 (ITA) ;
EIO0000000672 (CHS)
SoMachine TcpUdpCommunication - Guide de la
bibliothèque
EIO0000002204 (ENG) ;
EIO0000002255 (FRE) ;
EIO0000002205 (GER) ;
EIO0000002257 (SPA) ;
EIO0000002256 (ITA) ;
EIO0000002258 (CHS)
SoMachine Example Guide - RTC Control / Timezone EIO0000002445 (ENG)
/ Daylight Saving Time
Vous pouvez télécharger ces publications ainsi que d'autres informations techniques sur notre site
Web : http://www.schneider-electric.com/en/download.
10
EIO0000002543 06/2017
SoMachine
Informations générales
EIO0000002543 06/2017
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
Informations spécifiques de sécurité
13
2
Présentation de la bibliothèque
19
EIO0000002543 06/2017
11
Informations générales
12
EIO0000002543 06/2017
SoMachine
Informations spécifiques de sécurité
EIO0000002543 06/2017
Chapitre 1
Informations spécifiques de sécurité
Informations spécifiques de sécurité
Présentation
Cette rubrique contient les informations permettant de travailler avec la bibliothèque TimeSync. Le
personnel amené à travailler avec la bibliothèque TimeSync doit lire et observer ces informations .
Contenu de ce chapitre
Ce chapitre contient les sujets suivants :
Sujet
Page
Qualification du Personnel
14
Instructions d'utilisation
14
Informations relatives au produit
15
EIO0000002543 06/2017
13
Informations spécifiques de sécurité
Qualification du Personnel
Présentation
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 et du fonctionnement des équipements électriques et installations et
ayant bénéficié d'une formation de sécurité afin de reconnaître et d’éviter les risques encourus.
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
Présentation
Ce produit est une bibliothèque à utiliser avec un système de commande et des servoamplificateurs. La bibliothèque est exclusivement réservée à l'utilisation décrite dans la présente
documentation, appliquée au secteur de l'automatisme 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 vous assurer
de la sécurité du personnel par le biais du concept de ce système global (le concept de machine,
par exemple).
Aucune autre utilisation n'est prévue. Toute autre utilisation pourrait être dangereuse.
L’installation, l’utilisation, la réparation et la maintenance des appareils et équipements électriques
doivent être assurées par du personnel qualifié uniquement.
14
EIO0000002543 06/2017
Informations spécifiques de sécurité
Informations relatives au produit
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 commande cruciales.
Des canaux de commande séparés ou redondants doivent être prévus pour les fonctions de
commande critiques.
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.
EIO0000002543 06/2017
15
Informations spécifiques de sécurité
AVERTISSEMENT
MAUVAISE UTILISATION DES POU






Effectuez une analyse de la sécurité de l'application et des appareils installés.
Assurez-vous que les POU sont compatibles avec les appareils 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 comportement à 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 IMPREVU DE L’EQUIPEMENT


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.
16
EIO0000002543 06/2017
Informations spécifiques de sécurité
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é. Si une interruption survient, relancez le transfert. Veillez à inclure
l'impact des fichiers de données endommagés dans votre analyse des risques.
AVERTISSEMENT
FONCTIONNEMENT IMPREVU DE L'EQUIPEMENT, PERTE DE DONNEES OU FICHIER
ENDOMMAGE



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.
EIO0000002543 06/2017
17
Informations spécifiques de sécurité
18
EIO0000002543 06/2017
SoMachine
Description
EIO0000002543 06/2017
Chapitre 2
Présentation de la bibliothèque
Présentation de la bibliothèque
Informations générales
Introduction
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

EIO0000002543 06/2017
19
Description
1
2
3
Serveur de temps : serveur SNTP ou NTP
Contrôleur X : client SNTP
Contrôleur Y : client SNTP
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 SoMachine,
Fonctions et bibliothèques - Guide de l'utilisateur)
Bibliothèque post-compatible
Oui (FCL (voir SoMachine, 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.
20
EIO0000002543 06/2017
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 IMPREVU 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.
EIO0000002543 06/2017
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
ACCES NON AUTHENTIFIE ET EXPLOITATION PAR CONSEQUENT NON AUTORISEE DES
MACHINES







Estimez si votre environnement ou vos machines sont connecté(e)s à votre infrastructure
vitale et, le cas échéant, prenez 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.
Limitez au strict nécessaire le nombre d'équipements connectés à un réseau.
Isolez votre réseau industriel des autres réseaux au sein de votre société.
Protégez 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.
Surveillez les activités au sein de votre système.
Empêchez tout accès direct ou liaison directe aux équipements sensibles par des utilisateurs
non autorisés ou des actions non authentifiées.
Préparez 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
EIO0000002543 06/2017
Description
Présentation des POU
Bloc fonction / fonction
Utilisation
FB_SntpClient (voir page 43)
Fournit les fonctions client SNTP.
FC_EtResultToString (voir page 47)
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 34)
Contient des informations spécifiques pour l'envoi
d'une requête SNTP à un serveur de temps (S)NTP.
ST_TimeResponse (voir page 35)
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.
EIO0000002543 06/2017
23
Description
24
EIO0000002543 06/2017
SoMachine
Énumérations et Structures
EIO0000002543 06/2017
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
27
4
Structures
33
EIO0000002543 06/2017
25
Énumérations et Structures
26
EIO0000002543 06/2017
SoMachine
Énumérations
EIO0000002543 06/2017
Chapitre 3
Énumérations
Énumérations
Contenu de ce chapitre
Ce chapitre contient les sujets suivants :
Sujet
Page
ET_ComMode
28
ET_Result
29
EIO0000002543 06/2017
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
EIO0000002543 06/2017
É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 34) 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 34) 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.
EIO0000002543 06/2017
29
Énumérations
Nom
Type de
données
Valeur
InvalidMaxRtcOffset
UDINT
23
Description
La valeur détectée de q_liRtcOffset
(voir page 35) 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).
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 :
TimeStampInvalid
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.
NewRtcValueOutOfRange
UDINT
35
La nouvelle valeur RTC calculée n'est pas
dans la plage de la valeur actuelle ± entrée
i_uiMaxRtcOffset (voir page 45).
Les messages d'état suivants s'affichent si aucune erreur n'est détectée dans les communications UDP :
30
EIO0000002543 06/2017
Énumérations
Nom
Type de
données
Valeur
Description
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 SoMachine,
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. Essayez d'augmenter
GPL.Gc_udiTimeout et/ou
GPL.Gc_uiMaxNumberRetries.
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

FB_SntpClient
EIO0000002543 06/2017
31
Énumérations
32
EIO0000002543 06/2017
SoMachine
Structures
EIO0000002543 06/2017
Chapitre 4
Structures
Structures
Contenu de ce chapitre
Ce chapitre contient les sujets suivants :
Sujet
Page
ST_TimeRequest
34
ST_TimeResponse
35
EIO0000002543 06/2017
33
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

34
FB_SntpClient
EIO0000002543 06/2017
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 43). 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 SoMachine, Affichage et
réglage de l'horodateur, Guide des
bibliothèques SysTimeRtc et SysTimeCore)
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
EIO0000002543 06/2017
35
Structures
36
EIO0000002543 06/2017
SoMachine
Variables globales
EIO0000002543 06/2017
Partie III
Variables globales
Variables globales
EIO0000002543 06/2017
37
Variables globales
38
EIO0000002543 06/2017
SoMachine
Liste des constantes globales
EIO0000002543 06/2017
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.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.
EIO0000002543 06/2017
39
Liste des constantes globales
40
EIO0000002543 06/2017
SoMachine
Unités d'organisation de programme (POU)
EIO0000002543 06/2017
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
43
7
Fonctions
47
EIO0000002543 06/2017
41
Unités d'organisation de programme (POU)
42
EIO0000002543 06/2017
SoMachine
Blocs fonction
EIO0000002543 06/2017
Chapitre 6
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).
EIO0000002543 06/2017
43
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 10) 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.
44
EIO0000002543 06/2017
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
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)
i_uiMaxRtcOffset
UINT
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.
i_stTimeRequest
(voir page 34)
EIO0000002543 06/2017
45
Blocs fonction
Sortie
Type de données
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.
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.
q_stTimeResponse
(voir page 35)
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
46
Description
STRING[255]
Fournit des informations de diagnostic et d'état sous la
forme d'un message textuel.
EIO0000002543 06/2017
SoMachine
Fonctions
EIO0000002543 06/2017
Chapitre 7
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.
EIO0000002543 06/2017
47
Fonctions
48
EIO0000002543 06/2017
SoMachine
EIO0000002543 06/2017
Annexes
EIO0000002543 06/2017
49
50
EIO0000002543 06/2017
SoMachine
Représentation des fonctions et blocs fonction
EIO0000002543 06/2017
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
52
Utilisation d'une fonction ou d'un bloc fonction en langage IL
53
Utilisation d'une fonction ou d'un bloc fonction en langage ST
57
EIO0000002543 06/2017
51
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 :
52
EIO0000002543 06/2017
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 :
Etape
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'un POU n'est pas détaillée ici. Pour plus d'informations, reportez-vous
à la section Ajout et appel de POU (voir SoMachine, 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.
EIO0000002543 06/2017
53
Représentation des fonctions et blocs fonction
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
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
54
EIO0000002543 06/2017
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 :
Etape Action
1
Ouvrez ou créez un POU en langage IL (Instruction List, ou liste d'instructions).
NOTE : La procédure de création d'un POU n'est pas détaillée ici. Pour plus d'informations, reportezvous à la section Ajout et appel de POU (voir SoMachine, 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.
EIO0000002543 06/2017
55
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
56
EIO0000002543 06/2017
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 :
Etape
Action
1
Ouvrez ou créez un POU en langage ST (Structured Text ou Littéral structuré).
NOTE : La procédure de création d'un POU n'est pas détaillée ici. Pour plus d'informations,
reportez-vous à la section Ajout et appel de POU (voir SoMachine, 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
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);
EIO0000002543 06/2017
57
Représentation des fonctions et blocs fonction
Utilisation d'un bloc fonction en langage ST
La procédure suivante explique comment insérer un bloc fonction en langage ST :
Etape Action
1
Ouvrez ou créez un 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 SoMachine, 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
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
58
EIO0000002543 06/2017
SoMachine
Glossaire
EIO0000002543 06/2017
Glossaire
A
application
Programme comprenant des données de configuration, des symboles et de la documentation.
B
bus d'extension
Bus de communication électronique entre des modules d'E/S d'extension et un contrôleur.
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.
configuration
Agencement et interconnexions des composants matériels au sein d'un système, ainsi que les
paramètres matériels et logiciels qui déterminent les caractéristiques de fonctionnement du
système.
contrôleur
Automatise des processus industriels. On parle également de contrôleur logique programmable
(PLC) ou de contrôleur programmable.
E
E/S
Entrée/sortie
EIO0000002543 06/2017
59
Glossaire
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.
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.
60
EIO0000002543 06/2017
Glossaire
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.
programme
Composant d'une application constitué de code source compilé qu'il est possible d'installer dans
la mémoire d'un contrôleur logique.
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.
EIO0000002543 06/2017
61
Glossaire
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.
62
EIO0000002543 06/2017
SoMachine
Index
EIO0000002543 06/2017
Index
B
bibliothèques
TimeSync, 19
E
ET_ComMode, 28
Unicast, 28
ET_Result, 29
ClockNotSynchronized, 30
Disabled, 29
Initializing, 29
InputTimeoutZero, 29
InvalidComMode, 30
InvalidMaxRtcOffset, 30
InvalidServerIp, 29
InvalidTimeZone, 30
KodPacketReceived, 30
NewRtcValueOutOfRange, 30
Ok, 29
Processing, 29
ProtocolModeInvalid, 30
TimeStampInvalid, 30
UdpIssue, 31
UDPopen, 29
UDPSend, 29
UdpTimeout, 31
UnknownResult, 31
VersionNumberInvalid, 30
fonction en langage ST, 57
G
GCL (liste des constantes globales)
TimeSync, 39
Q
qualification du personnel, 14
R
Remarques générales relatives au transfert
SNTP, 21
S
ST_TimeRequest, 34
ST_TimeResponse, 35
T
TimeSync, 19
GCL (liste des constantes globales), 39
F
FB_SntpClient, 43
FC_EtResultToString, 47
fonctions
différences entre une fonction et un bloc
fonction, 52
utilisation d'une fonction ou d'un bloc
fonction en langage IL, 53
utilisation d'une fonction ou d'un bloc
EIO0000002543 06/2017
63

Manuels associés