Schneider Electric SoMachine - Affichage et réglage de l'horodateur Mode d'emploi

Ajouter à Mes manuels
65 Des pages
Schneider Electric SoMachine - Affichage et réglage de l'horodateur Mode d'emploi | Fixfr
SoMachine
EIO0000000668 06/2017
SoMachine
Affichage et réglage de l'horodateur
Guide des bibliothèques SysTimeRtc et
SysTimeCore
EIO0000000668.08
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.
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.
© 2017 Schneider Electric. Tous droits réservés.
2
EIO0000000668 06/2017
Table des matières
Consignes de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . .
A propos de ce manuel. . . . . . . . . . . . . . . . . . . . . . . . . .
Chapitre 1 Informations générales . . . . . . . . . . . . . . . . . . . . . . . . . .
Informations générales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapitre 2 Mise en route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ajout des bibliothèques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Afficher la date et l'heure du contrôleur . . . . . . . . . . . . . . . . . . . . . . . .
Régler la date et l'heure du contrôleur. . . . . . . . . . . . . . . . . . . . . . . . .
Chapitre 3 Bibliothèque SysTimeCore . . . . . . . . . . . . . . . . . . . . . . .
3.1 Description des fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SysTimeGetMs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SysTimeGetNs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SysTimeGetUs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapitre 4 Bibliothèque SysTimeRtc . . . . . . . . . . . . . . . . . . . . . . . .
4.1 Description des fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SysTimeRtcControl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SysTimeRtcGet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SysTimeRtcHighResGet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SysTimeRtcSet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SysTimeRtcHighResSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SysTimeRtcConvertDateToUtc. . . . . . . . . . . . . . . . . . . . . . . . . . .
SysTimeRtcConvertDateToHighRes . . . . . . . . . . . . . . . . . . . . . .
SysTimeRtcConvertUtcToDate. . . . . . . . . . . . . . . . . . . . . . . . . . .
SysTimeRtcConvertHighResToDate . . . . . . . . . . . . . . . . . . . . . .
SysTimeRtcGetTimezone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SysTimeRtcSetTimezone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SysTimeRtcConvertLocalToUtc . . . . . . . . . . . . . . . . . . . . . . . . .
SysTimeRtcConvertLocalToHighRes . . . . . . . . . . . . . . . . . . . . .
SysTimeRtcConvertUtcToLocal . . . . . . . . . . . . . . . . . . . . . . . . .
SysTimeRtcConvertHighResToLocal . . . . . . . . . . . . . . . . . . . . .
4.2 Description des types de données . . . . . . . . . . . . . . . . . . . . . . . . . . .
SYSTIMEDATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RTS_SYSTIMEDATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TimezoneInformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Annexes
EIO0000000668 06/2017
.........................................
5
7
11
11
13
14
15
18
21
22
23
24
25
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
45
46
47
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
49
50
51
55
59
63
EIO0000000668 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.
EIO0000000668 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.
6
EIO0000000668 06/2017
A propos de ce manuel
Présentation
Objectif du document
Cette documentation décrit les bibliothèques SysTimeRtc et SysTimeCore.
La bibliothèque SysTimeRtc met en œuvre les fonctions de gestion du système d'exécution par
l'horodateur (RTC).
La bibliothèque SysTimeCore permet d'accéder aux routines horaires haute résolution qui
calculent les horodatages.
Le tableau suivant répertorie les fonctions des deux bibliothèques et les contrôleurs qui les
prennent en charge :
Nom de la fonction
Nom de la
bibliothèque
M238 M241, M251, M258
LMC058, LMC078
XBT-GC ATV IMC
XBT-GK
XBT-GT
HMISCU
SysTimeGetMs
SysTimeCore
x
x
x
x
SysTimeGetNs
SysTimeCore
-
x
x
x
SysTimeGetUs
SysTimeCore
x
x
x
x
SysTimeRtcConvertDateToHighRes
SysTimeRtc
-
x
x
-
SysTimeRtcConvertHighResToDate
SysTimeRtc
-
x
x
-
SysTimeRtcHighResGet
SysTimeRtc
-
x
x
-
SysTimeRtcHighResSet
SysTimeRtc
-
x
x
-
SysTimeRtcControl
SysTimeRtc
-
Prise en charge
uniquement sur
LMC078
x
x
SysTimeRtcConvertDateToUtc
SysTimeRtc
x
x
x
x
SysTimeRtcConvertUtcToDate
SysTimeRtc
x
x
x
x
SysTimeRtcConvertLocalToUtc
SysTimeRtc
-
-
-
-
SysTimeRtcConvertUtcToLocal
SysTimeRtc
-
-
-
-
SysTimeRtcGet
SysTimeRtc
x
x
x
x
SysTimeRtcSet
SysTimeRtc
x
x
x
x
SysTimeRtcConvertHighResToLocal
SysTimeRtc
-
-
-
-
SysTimeRtcConvertLocalToHighRes
SysTimeRtc
-
-
-
-
x Pris en charge
- Non pris en charge
EIO0000000668 06/2017
7
Nom de la fonction
Nom de la
bibliothèque
M238 M241, M251, M258
LMC058, LMC078
XBT-GC ATV IMC
XBT-GK
XBT-GT
HMISCU
SysTimeRtcGetTimezone
SysTimeRtc
x
x
x
x
SysTimeRtcSetTimezone
SysTimeRtc
x
x
x
x
x Pris en charge
- Non pris en charge
Champ d'application
Ce document a été actualisé pour le lancement de SoMachine V4.3.
Documents à consulter
8
Titre du document
Référence
Modicon M238 Logic Controller - Fonctions et
variables système - Guide de la bibliothèque
PLCSystem
EIO0000000364 (ENG) ;
EIO0000000757 (FRE) ;
EIO0000000758 (GER) ;
EIO0000000759 (SPA) ;
EIO0000000760 (ITA) ;
EIO0000000761 (CHS)
Modicon M241 Logic Controller - Fonctions et
variables système - Guide de la bibliothèque
PLCSystem
EIO0000001438 (ENG) ;
EIO0000001439 (FRE) ;
EIO0000001440 (GER) ;
EIO0000001441 (SPA) ;
EIO0000001442 (ITA) ;
EIO0000001443 (CHS)
Modicon M251 Logic Controller - Fonctions et
variables système - Guide de la bibliothèque
PLCSystem M
EIO0000001468 (ENG) ;
EIO0000001469 (FRE) ;
EIO0000001470 (GER) ;
EIO0000001471 (SPA) ;
EIO0000001472 (ITA) ;
EIO0000001473 (CHS)
Modicon M258 Logic Controller - Fonctions et
variables système - Guide de la bibliothèque
PLCSystem
EIO0000000584 (ENG) ;
EIO0000000585 (FRE) ;
EIO0000000586 (GER) ;
EIO0000000587 (ITA) ;
EIO0000000588 (SPA) ;
EIO0000000589 (CHS)
EIO0000000668 06/2017
Titre du document
Référence
Variateur Altivar ATV IMC - Fonctions et variables
système - Guide de la bibliothèque PLCSystem
EIO0000000596 (ENG) ;
EIO0000000597 (FRE) ;
EIO0000000598 (GER) ;
EIO0000000599 (SPA) ;
EIO0000000600 (ITA) ;
EIO0000000601 (CHS)
Modicon LMC058 Motion Controller - Fonctions et
variables système - Guide de la bibliothèque
PLCSystem
EIO0000000566 (ENG) ;
EIO0000000567 (FRE) ;
EIO0000000568 (GER) ;
EIO0000000569 (ITA) ;
EIO0000000570 (SPA) ;
EIO0000000571 (CHS)
Modicon LMC078 Motion Controller - Fonctions et
variables système - Guide de la bibliothèque
PLCSystem
EIO0000001917 (ENG) ;
EIO0000001918 (FRE) ;
EIO0000001919 (GER) ;
EIO0000001920 (SPA) ;
EIO0000001921 (ITA) ;
EIO0000001922 (CHS)
Magelis XBTGC, XBTGT, XBTGK HMI Controller Fonctions système et variables - Guide de la
bibliothèque PLCSystem
EIO0000000626 (ENG) ;
EIO0000000627 (FRE) ;
EIO0000000628 (GER) ;
EIO0000000629 (ITA) ;
EIO0000000630 (SPA) ;
EIO0000000631 (CHS)
Magelis SCU HMI Controller - Fonctions système et
variables - Guide de la bibliothèque PLCSystem
EIO0000001246 (ENG) ;
EIO0000001247 (FRE) ;
EIO0000001248 (GER) ;
EIO0000001249 (SPA) ;
EIO0000001250 (ITA) ;
EIO0000001251 (CHS)
Vous pouvez télécharger ces publications ainsi que d'autres informations techniques sur notre site
Web : http://www.schneider-electric.com/en/download.
EIO0000000668 06/2017
9
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 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.
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.
10
EIO0000000668 06/2017
SoMachine
Informations générales
EIO0000000668 06/2017
Chapitre 1
Informations générales
Informations générales
Informations générales
Présentation
Selon le système d'exécution, l'horodateur (RTC) du contrôleur est fourni sous la forme d'un
horodatage standard ou à haute résolution. Cet horodatage indique le nombre de secondes
(résolution standard) ou de millisecondes (haute résolution) écoulées depuis le 1er janvier 1970 à
00:00:00. C'est également le format UNIX.
Tous les contrôleurs SoMachine prennent en charge l'horodateur RTC en résolution standard.
Pour identifier les contrôleurs prenant en charge l'horodateur RTC à haute résolution, consultez le
tableau (voir page 7) dans le chapitre Objectif de ce document.
EIO0000000668 06/2017
11
Informations générales
12
EIO0000000668 06/2017
SoMachine
Mise en route
EIO0000000668 06/2017
Chapitre 2
Mise en route
Mise en route
Présentation
Ce chapitre fournit des informations essentielles pour l'utilisation des fonctions SysTime.
Contenu de ce chapitre
Ce chapitre contient les sujets suivants :
Sujet
Page
Ajout des bibliothèques
14
Afficher la date et l'heure du contrôleur
15
Régler la date et l'heure du contrôleur
18
EIO0000000668 06/2017
13
Mise en route
Ajout des bibliothèques
Marche à suivre
Pour accéder aux fonctions, vous devez ajouter manuellement une bibliothèque (ou les deux) :
Etape
14
Action
1
Double-cliquez sur le nœud Gestionnaire de bibliothèques du nœud
Application du contrôleur dans Outils.
2
Cliquez sur Ajouter une bibliothèque.
3
Naviguez jusqu'à Système → SysLibs, qui s'affiche lorsque le filtre Société est
réglé sur Système ou All Company.
Résultat : la liste des bibliothèques système s'affiche.
4
Sélectionnez la bibliothèque SysTimeRtc ou SysTimeCore, puis cliquez sur
OK.
Résultat : la bibliothèque apparaît dans la liste Gestionnaire de bibliothèques.
EIO0000000668 06/2017
Mise en route
Afficher la date et l'heure du contrôleur
Présentation
Pour afficher l'horodateur (RTC) du contrôleur dans un format structuré et ergonomique, vous
devez utiliser 2 fonctions.
1. Lisez l'horodateur (RTCà l'aide de la fonction SysTimeRtcGet (voir page 30) ou SysTimeRtcHighResGet (voir page 31).
2. Convertissez l'horodatage du format UNIX au format SYSTIMEDATE à l'aide de la fonction
SysTimeRtcConvertUtcToDate (voir page 36) ou SysTimeRtcConvertHighResToDate
(voir page 37).
NOTE : comme l'heure UTC (temps universel coordonné) est la même dans le monde entier, la
plupart des systèmes ne stockent et ne traitent que l'heure UTC.
Schéma de principe - Afficher l'horodateur (RTC) du contrôleur en résolution standard
EIO0000000668 06/2017
15
Mise en route
Exemple
Cet exemple de programme permet d'obtenir la date et l'heure du contrôleur.
Déclaration des variables :
VAR
uidResultRtcGet: UDINT
stGetDate: SysTimeRtc.RTS_SYSTIMEDATE;
uiGetYear: UINT;
uiGetMonth: UINT;
uiGetDay: UINT;
uiGetHour: UINT;
uiGetMinute: UINT;
uiGetSecond: UINT;
uiGetMSecond: UINT;
uiGetDayOfWeek: UINT;
uiGetYday: UINT;
uidResultConvertToDate: UDINT;
END_VAR
16
EIO0000000668 06/2017
Mise en route
Programme de la POU :
1
2
Affichez l'horodateur (RTC) du contrôleur sous la forme d'un horodatage.
Convertissez cet horodatage au format SYSTIMEDATE.
EIO0000000668 06/2017
17
Mise en route
Régler la date et l'heure du contrôleur
Présentation
Pour régler l'horodateur (RTC) du contrôleur dans un format structuré et ergonomique, vous devez
utiliser 2 fonctions.
1. Convertissez le format SYSTIMEDATE de l'horodatage au format UNIX à l'aide de la fonction
SysTimeRtcConvertDateToUtc (voir page 34) ou SysTimeRtcConvertDateToHighRes
(voir page 35).
2. Ecrivez l'horodateur (RTC) à l'aide de la fonction SysTimeRtcSet (voir page 32) ou
SysTimeRtcHighResSet (voir page 33).
NOTE : certains contrôleurs prennent en charge une fonction de correction automatique
hebdomadaire de l'horodateur. Cette fonction s'appelle SetRTCDrift. Vous pouvez l'utiliser à la
place de la fonction SysTimeRtcSet pour réajuster en permanence l'horodateur (RTC). Pour
vérifier si cette fonction est prise en charge et en savoir plus sur celle-ci, consultez le Guide de la
bibliothèque PLCSystem (voir page 8) de votre contrôleur.
NOTE : comme l'heure UTC (temps universel coordonné) est la même dans le monde entier, la
plupart des systèmes ne stockent et ne traitent que l'heure UTC.
Schéma de principe - Régler l'horodateur (RTC) du contrôleur avec la résolution standard
18
EIO0000000668 06/2017
Mise en route
Exemple
Cet exemple de programme permet à l'utilisateur de régler l'horodateur de l'automate sur une date
et une heure personnalisée.
Déclaration des variables :
VAR
uiSetYear: UINT;
uiSetMonth: UINT;
uiSetDay: UINT;
uiSetHour: UINT;
uiSetMinute: UINT;
uiSetSecond: UINT;
uiSetMSecond: UINT
udiResultConvertToUtc: UDINT;
dwSetTimeStamp: DWORD;
xCommandSetRtc: BOOL;
uidResultRtcSet: UDINT;
END_VAR
EIO0000000668 06/2017
19
Mise en route
Programme de la POU :
1
2
3
20
Attribuez le paramètre de date et d'heure à la structure.
Convertissez le format SYSTIMEDATE en un horodatage.
Réglez un nouvel horodatage sur l'horodateur (RTC) du contrôleur si xCommandSetRtc = TRUE et si la
conversion a abouti.
EIO0000000668 06/2017
SoMachine
Bibliothèque SysTimeCore
EIO0000000668 06/2017
Chapitre 3
Bibliothèque SysTimeCore
Bibliothèque SysTimeCore
EIO0000000668 06/2017
21
Bibliothèque SysTimeCore
Sous-chapitre 3.1
Description des fonctions
Description des fonctions
Présentation
Cette section décrit les fonctions de la bibliothèque SysTimeCore.
Contenu de ce sous-chapitre
Ce sous-chapitre contient les sujets suivants :
Sujet
22
Page
SysTimeGetMs
23
SysTimeGetNs
24
SysTimeGetUs
25
EIO0000000668 06/2017
Bibliothèque SysTimeCore
SysTimeGetMs
Description de la fonction
Renvoie un compteur croissant monotone de millisecondes. Cette valeur est utilisée pour les
mesures de timeout et d'heure relatives. Ce compteur est réinitialisé à chaque redémarrage du
contrôleur.
NOTE : l'horodateur n'a aucune influence sur ce compteur.
Représentation graphique
Description des variables d'E/S
Sortie
Type
Description
SysTimeGetMs
UDINT
Valeur du compteur de millisecondes, réinitialisée au
démarrage.
EIO0000000668 06/2017
23
Bibliothèque SysTimeCore
SysTimeGetNs
Description de la fonction
Renvoie un compteur croissant monotone de nanosecondes. Cette valeur est utilisée pour les
mesures de timeout et d'heure à haute résolution.
Ce compteur est réinitialisé à chaque redémarrage du contrôleur.
NOTE : l'horodateur n'a aucune influence sur ce compteur.
Représentation graphique
Description des variables d'E/S
Sortie
Type
Description
SysTimeGetNs
UDINT
Code d'erreur du système d'exécution (consultez
CmpErrors.library) :
0 = aucune erreur détectée
Entrée/Sortie
Type
Description
pUsTime
SYSTIME
Valeur du compteur de nanosecondes, réinitialisée au
démarrage.
NOTE : SYSTIME est un type d'alias basé sur le type de données ULINT.
24
EIO0000000668 06/2017
Bibliothèque SysTimeCore
SysTimeGetUs
Description de la fonction
Renvoie un compteur croissant monotone de microsecondes. Cette valeur est utilisée pour les
mesures de timeout et d'heure à haute résolution.
Ce compteur est réinitialisé à chaque redémarrage du contrôleur.
NOTE : l'horodateur n'a aucune influence sur ce compteur.
Représentation graphique
Description des variables d'E/S
Sortie
Type
Description
SysTimeGetUs
UDINT
Code d'erreur du système d'exécution (consultez
CmpErrors.library) :
0 = aucune erreur détectée
Entrée/Sortie
Type
Description
pUsTime
SYSTIME
Valeur du compteur de microsecondes, réinitialisée à
chaque redémarrage.
NOTE : SYSTIME est un type d'alias basé sur le type de données ULINT.
EIO0000000668 06/2017
25
Bibliothèque SysTimeCore
26
EIO0000000668 06/2017
SoMachine
Bibliothèque SysTimeRtc
EIO0000000668 06/2017
Chapitre 4
Bibliothèque SysTimeRtc
Bibliothèque SysTimeRtc
Contenu de ce chapitre
Ce chapitre contient les sous-chapitres suivants :
Sous-chapitre
Sujet
Page
4.1
Description des fonctions
28
4.2
Description des types de données
44
EIO0000000668 06/2017
27
Bibliothèque SysTimeRtc
Sous-chapitre 4.1
Description des fonctions
Description des fonctions
Présentation
Cette section décrit les fonctions de la bibliothèque SysTimeRtc.
La fonction de l'horodateur gère deux types d'horodatage :
Heure UTC : heure en temps universel coordonné, qui a remplacé l'heure du méridien de
Greenwich. Les fuseaux horaires sont indiqués avec un décalage positif ou négatif par rapport
à l'heure UTC. Par exemple, UTC+1 correspond à l'heure de l'Europe centrale (CET) et UTC+2
à l'heure d'été de l'Europe centrale (CEST).
Heure locale : heure locale, avec l'heure d'été et le décalage du fuseau horaire.
NOTE : comme l'heure UTC (temps universel coordonné) est la même dans le monde entier, la
plupart des systèmes ne stockent et ne traitent que l'heure UTC.
Contenu de ce sous-chapitre
Ce sous-chapitre contient les sujets suivants :
Sujet
28
Page
SysTimeRtcControl
29
SysTimeRtcGet
30
SysTimeRtcHighResGet
31
SysTimeRtcSet
32
SysTimeRtcHighResSet
33
SysTimeRtcConvertDateToUtc
34
SysTimeRtcConvertDateToHighRes
35
SysTimeRtcConvertUtcToDate
36
SysTimeRtcConvertHighResToDate
37
SysTimeRtcGetTimezone
38
SysTimeRtcSetTimezone
39
SysTimeRtcConvertLocalToUtc
40
SysTimeRtcConvertLocalToHighRes
41
SysTimeRtcConvertUtcToLocal
42
SysTimeRtcConvertHighResToLocal
43
EIO0000000668 06/2017
Bibliothèque SysTimeRtc
SysTimeRtcControl
Description de la fonction
Cette fonction permet de lire les informations sur l'état matériel de l'horodateur (RTC).
Représentation graphique
Description des variables d'E/S
Entrée
Type
Description
iControlTag
DINT
0 = pour vérifier la pile de l'horodateur (RTC)
1 = pour vérifier le format des heures de l'horodateur
(RTC)
Entrée/Sortie
Type
Description
pdiControlResult
DINT
Résultat de la vérification.
Vérification du format des heures :
0 = format 12 heures
1 = format 24 heures
Vérification de la pile :
0 = indique que la pile doit être remplacée
1 = pile chargée
Sortie
Type
Description
SysTimeRtcControl
UDINT
Code d'erreur du système d'exécution (consultez
CmpErrors.library) :
0 = aucune erreur détectée
EIO0000000668 06/2017
29
Bibliothèque SysTimeRtc
SysTimeRtcGet
Description de la fonction
Cette fonction permet de lire la valeur de l'horodateur (RTC) du contrôleur. Le RTC est fourni sous
la forme d'un horodatage qui indique le nombre de secondes écoulées depuis le 1er janvier 1970
à 00:00:00.
Représentation graphique
Description des variables d'E/S
Entrée/Sortie
Type
Description
pResult
UDINT
Code d'erreur du système d'exécution
(consultez CmpErrors.library) :
0 = aucune erreur détectée
Sortie
Type
Description
SysTimeRtcGet
DWORD
RTC du contrôleur (nombre de secondes
écoulées depuis le 1er janvier 1970 à
00:00:00)
NOTE : un exemple d'utilisation de cette fonction est fourni dans ce document. (voir page 16)
30
EIO0000000668 06/2017
Bibliothèque SysTimeRtc
SysTimeRtcHighResGet
Description de la fonction
Cette fonction permet de lire la valeur de l'horodateur (RTC) du contrôleur. L'horodateur (RTC)
fournit un horodatage à haute résolution, qui indique le nombre de millisecondes écoulées depuis
le 1er janvier 1970 à 00:00:00:000.
Représentation graphique
Description des variables d'E/S
Entrée/Sortie
Type
Description
pTimestamp
SYSTIME
Heure en millisecondes depuis le
1er janvier 1970 à 00:00:00:000
Sortie
Type
Description
SysTimeRtcHighResGet
UDINT
Code d'erreur du système d'exécution
(consultez CmpErrors.library) :
0 = aucune erreur détectée
NOTE : SYSTIME est un type d'alias basé sur le type de données ULINT.
EIO0000000668 06/2017
31
Bibliothèque SysTimeRtc
SysTimeRtcSet
Description de la fonction
Cette fonction permet de régler l'horodateur du contrôleur à l'aide d'un horodatage fourni qui
indique le nombre de secondes écoulées depuis le 1er janvier 1970 à 00:00:00.
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.
Représentation graphique
Description des variables d'E/S
Entrée
Type
Description
ulTimestamp
DWORD
Valeur d'horodatage (nombre de secondes
écoulées depuis le 1er janvier 1970
00:00:00)
Sortie
Type
Description
SysTimeRtcSet
UDINT
Code d'erreur du système d'exécution
(consultez CmpErrors.library) :
0 = aucune erreur détectée
NOTE : un exemple d'utilisation de cette fonction est fourni dans ce document. (voir page 19)
32
EIO0000000668 06/2017
Bibliothèque SysTimeRtc
SysTimeRtcHighResSet
Description de la fonction
Cette fonction permet de régler l'horodateur (RTC) du contrôleur à l'aide d'un horodatage à haute
résolution fourni, qui indique le nombre de secondes écoulées depuis le 1er janvier 1970 à
00:00:00:000.
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.
Représentation graphique
Description des variables d'E/S
Entrée/Sortie
Type
Description
pTimestamp
SYSTIME
Horodatage (nombre de secondes écoulées depuis le
1er janvier 1970 00:00:00:000)
Sortie
Type
Description
SysTimeRtcHighResSet
UDINT
Code d'erreur du système d'exécution (consultez
CmpErrors.library) :
0 = aucune erreur détectée
EIO0000000668 06/2017
33
Bibliothèque SysTimeRtc
SysTimeRtcConvertDateToUtc
Description de la fonction
Cette fonction convertit une date et une heure au format SYSTIMEDATE (voir page 45) en
l'horodatage correspondant. Cet horodatage indique le nombre de secondes écoulées depuis le
1er janvier 1970 à 00:00:00.
Représentation graphique
Description des variables d'E/S
Entrée/Sortie
Type
Description
SYSTIMEDATE
Date et heure à convertir.
pdwTimestampUtc
DWORD
Horodatage calculé à partir de pDate.
Sortie
Type
Description
SysTimeRtcConvertDateToUtc
UDINT
Code d'erreur du système d'exécution
(consultez CmpErrors.library) :
0 = aucune erreur détectée
pDate
(voir page 45)
NOTE : un exemple d'utilisation de cette fonction est fourni dans ce document. (voir page 19)
34
EIO0000000668 06/2017
Bibliothèque SysTimeRtc
SysTimeRtcConvertDateToHighRes
Description de la fonction
Cette fonction convertit une date et une heure au format SYSTIMEDATE (voir page 45) en un
horodatage à haute résolution. L'horodatage indique le nombre de millisecondes écoulées depuis
le 1er janvier 1970 à 00:00:00:000.
Représentation graphique
Description des variables d'E/S
Entrée/Sortie
Type
Description
pDate
SYSTIMEDATE
Heure à convertir.
pTimestamp
SYSTIME
Horodatage calculé à partir de pDate.
Sortie
Type
Description
SysTimeRtcConvertDateToHighRes
UDINT
Code d'erreur du système d'exécution
(consultez CmpErrors.library) :
0 = aucune erreur détectée
(voir page 45)
NOTE : SYSTIME est un type d'alias basé sur le type de données ULINT.
EIO0000000668 06/2017
35
Bibliothèque SysTimeRtc
SysTimeRtcConvertUtcToDate
Description de la fonction
Cette fonction convertit un horodatage en une date et une heure au format SYSTIMEDATE
(voir page 45). Cet horodatage indique le nombre de secondes écoulées depuis le
1er janvier 1970 à 00:00:00.
Représentation graphique
Description des variables d'E/S
Entrée
Type
Description
dwTimestampUtc
DWORD
Horodatage à convertir.
Entrée/Sortie
Type
Description
(voir page 45)
SYSTIMEDATE
Date et heure calculées à partir de la valeur
d'entrée.
Sortie
Type
Description
SysTimeRtcConvertUtcToDate
UDINT
Code d'erreur du système d'exécution
(consultez CmpErrors.library) :
0 = aucune erreur détectée
pDate
NOTE : un exemple d'utilisation de cette fonction est fourni dans ce document. (voir page 16)
36
EIO0000000668 06/2017
Bibliothèque SysTimeRtc
SysTimeRtcConvertHighResToDate
Description de la fonction
Cette fonction convertit un horodatage à haute résolution en une date et une heure au format
SYSTIMEDATE (voir page 45). L'horodatage indique le nombre de millisecondes écoulées depuis
le 1er janvier 1970 à 00:00:00:000.
Représentation graphique
Description des variables d'E/S
Entrée/Sortie
Type
Description
pTimestamp
SYSTIME
Horodatage à convertir.
pDate
SYSTIMEDATE
(voir page 45)
Date et heure calculées à partir de la
valeur d'entrée.
Sortie
Type
Description
SysTimeRtcConvertHighResToDate
UDINT
Code d'erreur du système d'exécution
(consultez CmpErrors.library) :
0 = aucune erreur détectée
NOTE : SYSTIME est un type d'alias basé sur le type de données ULINT.
EIO0000000668 06/2017
37
Bibliothèque SysTimeRtc
SysTimeRtcGetTimezone
Description de la fonction
Cette fonction permet de lire les paramètres du fuseau horaire du contrôleur.
Représentation graphique
Description des variables d'E/S
Entrée/Sortie
Type
Description
TimezoneInformation
Paramètres du fuseau horaire du contrôleur.
Sortie
Type
Description
SysTimeRtcGetTimezone
UDINT
Code d'erreur du système d'exécution (consultez
CmpErrors.library) :
0 = aucune erreur détectée
pTimezone
(voir page 46)
38
EIO0000000668 06/2017
Bibliothèque SysTimeRtc
SysTimeRtcSetTimezone
Description de la fonction
Cette fonction permet de régler les paramètres du fuseau horaire spécifié.
Représentation graphique
Description des variables d'E/S
Entrée/Sortie
Type
Description
(voir page 46)
TimezoneInformation
Paramètres du fuseau horaire à régler pour le
contrôleur.
Sortie
Type
Description
SysTimeRtcSetTimezone
UDINT
Code d'erreur du système d'exécution (consultez
CmpErrors.library) :
0 = aucune erreur détectée
pTimezone
EIO0000000668 06/2017
39
Bibliothèque SysTimeRtc
SysTimeRtcConvertLocalToUtc
Description de la fonction
Cette fonction calcule l'horodatage UTC (temps universel coordonné) à partir d'une heure locale,
en fonction du fuseau horaire configuré sur le système d'exécution. L'horodatage (UTC) et
l'horodatage local indiquent le nombre de secondes écoulées depuis le 1er janvier 1970 à
00:00:00.
Représentation graphique
Description des variables d'E/S
40
Entrée
Type
Description
dwTimestampLocal
DWORD
Horodatage local
Entrée/Sortie
Type
Description
pdwTimestampUTC
DWORD
Horodatage UTC calculé à partir de l'entrée
Sortie
Type
Description
SysTimeRtcConvertLocalToUtc
UDINT
Code d'erreur du système d'exécution
(consultez CmpErrors.library) :
0 = aucune erreur détectée
EIO0000000668 06/2017
Bibliothèque SysTimeRtc
SysTimeRtcConvertLocalToHighRes
Description de la fonction
Cette fonction convertit une date et une heure au SYSTIMEDATE (voir page 45) en un horodatage
à haute résolution, en fonction des paramètres du fuseau horaire du système d'exécution.
La valeur pDate représente l'heure locale et sera convertie en une valeur UTC fournie sur
pTimestamp. La valeur pTimestamp indique le nombre de millisecondes écoulées depuis le
1er janvier 1970 à 00:00:00:000.
Représentation graphique
Description des variables d'E/S
Entrée/Sortie
Type
Description
pDate
SYSTIMEDATE
Heure à locale à convertir.
pTimestamp
SYSTIME
Horodatage calculé à partir de pDate.
Sortie
Type
Description
SysTimeRtcConvertLocalToHighRes
UDINT
Code d'erreur du système d'exécution
(consultez CmpErrors.library) :
0 = aucune erreur détectée
(voir page 45)
NOTE : SYSTIME est un type d'alias basé sur le type de données ULINT.
EIO0000000668 06/2017
41
Bibliothèque SysTimeRtc
SysTimeRtcConvertUtcToLocal
Description de la fonction
Cette fonction calcule l'heure locale à partir de l'horodatage UTC (temps universel coordonné), en
fonction du fuseau horaire configuré sur le système d'exécution. L'horodatage UTC et l'horodatage
local indiquent le nombre de secondes écoulées depuis le 1er janvier 1970 à 00:00:00.
Représentation graphique
Description des variables d'E/S
42
Entrée
Type
Description
dwTimestampUtc
DWORD
Horodatage UTC
Entrée/Sortie
Type
Description
pdwTimestampLocal
DWORD
Horodatage local calculé à partir de l'entrée.
Sortie
Type
Description
SysTimeRtcConvertUtcToLocal
UDINT
Code d'erreur du système d'exécution
(consultez CmpErrors.library) :
0 = aucune erreur détectée
EIO0000000668 06/2017
Bibliothèque SysTimeRtc
SysTimeRtcConvertHighResToLocal
Description de la fonction
Cette fonction convertit un horodatage à haute résolution en un horodatage au format
SYSTIMEDATE (voir page 45), en fonction des paramètres du fuseau horaire du système
d'exécution. La valeur pTimestamp représente l'horodatage UTC et sera convertie en l'heure
locale fournie sur pDate.
Représentation graphique
Description des variables d'E/S
Entrée/Sortie
Type
Description
pTimestamp
SYSTIME
Horodatage à convertir.
pDate
SYSTIMEDATE
(voir page 45)
Heure locale calculée à partir de
pTimestamp.
Sortie
Type
Description
SysTimeRtcConvertHighResToLocal
UDINT
Code d'erreur du système d'exécution
(consultez CmpErrors.library) :
0 = aucune erreur détectée
NOTE : SYSTIME est un type d'alias basé sur le type de données ULINT.
EIO0000000668 06/2017
43
Bibliothèque SysTimeRtc
Sous-chapitre 4.2
Description des types de données
Description des types de données
Contenu de ce sous-chapitre
Ce sous-chapitre contient les sujets suivants :
Sujet
44
Page
SYSTIMEDATE
45
RTS_SYSTIMEDATE
45
TimezoneInformation
46
EIO0000000668 06/2017
Bibliothèque SysTimeRtc
SYSTIMEDATE
Description du type de données
Le type de données SYSTIMEDATE est un type d'alias basé sur le type de données
RTS_SYSTIMEDATE.
RTS_SYSTIMEDATE
Description du type de données
Le type de données RTS_SYSTIMEDATE est une structure qui met en œuvre les éléments
nécessaires pour représenter un horodatage haute résolution.
Cette structure contient des informations détaillées sur la date et l'heure, qui sont présentées dans
un format lisible (contrairement à l'horodatage).
Nom
Type
Description
wYear
UINT
Année
wMonth
UINT
Mois, valeurs de 1 à 12 (1 = janvier, 12 = décembre)
wDay
UINT
Jour du mois, valeurs de 1 à 31
wHour
UINT
Heure du jour, valeurs de 0 à 23
wMinute
UINT
Minutes de l'heure, valeurs de 0 à 59
wSecond
UINT
Secondes de la minute, valeurs de 0 à 59
wMilliseconds
UINT
Millisecondes de la seconde, valeurs de 0 à 999
wDayOfWeek
UINT
Jour de la semaine, valeurs de 1 à 7 (lundi = 1,
dimanche = 7)
wYday
UINT
Jour de l'année, valeurs de 1 à 366 (1 = 1er janvier, 365
ou 366 = 31 décembre)
EIO0000000668 06/2017
45
Bibliothèque SysTimeRtc
TimezoneInformation
Description du type de données
Cette information décrit un fuseau horaire local avec l'heure normale et l'heure d'été (également
appelées heure d'hiver et heure d'été).
Nom
Type
Description
ulStandardDate
UDINT
Date à convertir en heure normale (de l'heure d'été à
l'heure d'hiver).
ulDaylightDate
UDINT
Nombre de
secondes
écoulées depuis
Date à convertir en heure d'été (de l'heure d'hiver à l'heure
le
d'été).
1er janvier 1970
à 00:00:00.
szStandardName
STRING (32)
Heure normale du fuseau horaire (heure d'hiver).
Chaîne de
32 caractères au
maximum
szDaylightName
STRING (32)
Heure d'été.
Chaîne de
32 caractères au
maximum
iBias
INT
UTC = heure locale + décalage
minutes
iStandardBias
INT
Décalage supplémentaire par rapport à l'heure normale
(heure d'hiver).
minutes
iDayligthBias
INT
Décalage supplémentaire par rapport à l'heure d'été.
minutes
46
Unité
EIO0000000668 06/2017
SoMachine
EIO0000000668 06/2017
Annexes
EIO0000000668 06/2017
47
48
EIO0000000668 06/2017
SoMachine
Représentation des fonctions et blocs fonction
EIO0000000668 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
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
EIO0000000668 06/2017
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
EIO0000000668 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
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'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.
EIO0000000668 06/2017
51
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
52
EIO0000000668 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.
EIO0000000668 06/2017
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
EIO0000000668 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);
EIO0000000668 06/2017
55
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
56
EIO0000000668 06/2017
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
EIO0000000668 06/2017
57
Représentation des fonctions et blocs fonction
58
EIO0000000668 06/2017
SoMachine
Glossaire
EIO0000000668 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
EIO0000000668 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).
O
octet
60
Type codé sur 8 bits, de 00 à FF au format hexadécimal.
EIO0000000668 06/2017
Glossaire
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.
S
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.
U
UTC
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.
EIO0000000668 06/2017
61
Glossaire
62
EIO0000000668 06/2017
SoMachine
Index
EIO0000000668 06/2017
Index
A
affichage de l'horodateur du contrôleur, 15
exemples, 16
C
compteurs horaires
SysTimeCore, 22
conversion
SysTimeRtcConvertDateToUtc, 34
SysTimeRtcConvertUtcToDate, 36
D
date
SysTimeRtcConvertDateToUtc, 34
SysTimeRtcConvertUtcToDate, 36
date et heure du contrôleur
affichage, 15
réglage, 18
E
exemples
affichage de la date et de l'heure du
contrôleur, 16
réglage de l'heure et de l'heure du contrôleur, 19
F
fonctions
différences entre une fonction et un bloc
fonction, 50
SysTimeCore, 22
SysTimeRtc, 28
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
EIO0000000668 06/2017
H
heure
SysTimeGetMs, 23
SysTimeGetNs, 24
SysTimeGetUs, 25
horodatage
SysTimeRtc, 28
SysTimeRtcConvertDateToUtc, 34
SysTimeRtcConvertUtcToDate, 36
horodatage à haute résolution
SysTimeRtc, 28
horodatage à résolution standard
SysTimeRtc, 28
horodateur
SysTimeRtcControl, 29
SysTimeRtcConvertDateToHighRes, 35
SysTimeRtcConvertHighResToDate, 37
SysTimeRtcConvertHighResToLocal, 43
SysTimeRtcConvertLocalToHighRes, 41
SysTimeRtcGet, 30
SysTimeRtcGetTimezone, 38
SysTimeRtcHighResGet, 31
SysTimeRtcHighResSet, 33
SysTimeRtcSet, 32
SysTimeRtcSetTimezone, 39
R
réglage de l'horodateur du contrôleur, 18
exemples, 19
RTC
SysTimeRtcControl, 29
SysTimeRtcConvertDateToHighRes, 35
SysTimeRtcConvertHighResToDate, 37
SysTimeRtcConvertHighResToLocal, 43
SysTimeRtcConvertLocalToHighRes, 41
SysTimeRtcGet, 30
SysTimeRtcHighResGet, 31
SysTimeRtcHighResSet, 33
63
Index
RTC (horodateur), 13
SysTimeRtcGetTimezone, 38
SysTimeRtcSet, 32
SysTimeRtcSetTimezone, 39
RTS_SYSTIMEDATE, 45
S
SysTime, fonctions
SysTimeCore, bibliothèque, 13
SysTimeRtc, bibliothèque, 13
SysTimeCore
compteurs horaires, 22
fonctions, 22
informations générales, 11
SysTimeGetMs, 23
SysTimeGetNs, 24
SysTimeGetUs, 25
SYSTIMEDATE, 45
SysTimeGetMs, 23
SysTimeGetNs, 24
SysTimeGetUs, 25
SysTimeRtc
fonctions, 28
informations générales, 11
RTS_SYSTIMEDATE, 45
SYSTIMEDATE, 45
SysTimeRtcControl, 29
SysTimeRtcConvertDateToHighRes, 35
SysTimeRtcConvertDateToUtc, 34
SysTimeRtcConvertHighResToDate, 37
SysTimeRtcConvertHighResToLocal, 43
SysTimeRtcConvertLocalToHighRes, 41
SysTimeRtcConvertUtcToDate, 36
SysTimeRtcConvertUtcToLocal, 42
SysTimeRtcGet, 30
SysTimeRtcGetTimezone, 38
SysTimeRtcHighResGet, 31
SysTimeRtcHighResSet, 33
SysTimeRtcSet, 32
SysTimeRtcSetTimezone, 39
TimezoneInformation, 46
SysTimeRtcControl, 29
SysTimeRtcConvertDateToHighRes, 35
SysTimeRtcConvertDateToUtc, 34
64
SysTimeRtcConvertHighResToDate, 37
SysTimeRtcConvertHighResToLocal, 43
SysTimeRtcConvertLocalToHighRes, 41
SysTimeRtcConvertLocalToUtc, 40
SysTimeRtcConvertLocalToUtc, 40
SysTimeRtcConvertUtcToDate, 36
SysTimeRtcConvertUtcToLocal, 42
SysTimeRtcGet, 30
SysTimeRtcGetTimezone, 38
SysTimeRtcHighResGet, 31
SysTimeRtcHighResSet, 33
SysTimeRtcSet, 32
SysTimeRtcSetTimezone, 39
T
temps universel coordonné (UTC)
SysTimeRtcConvertLocalToUtc, 40
SysTimeRtcConvertUtcToLocal, 42
TimezoneInformation, 46
types de données
RTS_SYSTIMEDATE, 45
SYSTIMEDATE, 45
SysTimeRtc, 44
TimezoneInformation, 46
U
UTC
SysTimeRtcConvertLocalToUtc, 40
SysTimeRtcConvertUtcToDate, 36
SysTimeRtcConvertUtcToLocal, 42
UTC (temps universel coordonné), 13
EIO0000000668 06/2017
Index
EIO0000000668 06/2017
65

Manuels associés