Schneider Electric SoMachine Mode d'emploi

Ajouter à Mes manuels
57 Des pages
Schneider Electric SoMachine Mode d'emploi | Fixfr
SoMachine
EIO0000001152 11/2016
SoMachine
Configuration de variables de réseau
Guide de la bibliothèque SE_NetVarUdp
EIO0000001152.03
11/2016
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.
© 2016 Schneider Electric. Tous droits réservés.
2
EIO0000001152 11/2016
Table des matières
Consignes de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . .
A propos de ce manuel. . . . . . . . . . . . . . . . . . . . . . . . . .
Chapitre 1 Liste de variables de réseau (NVL) . . . . . . . . . . . . . . . .
Introduction à la liste de variables de réseau (NVL) . . . . . . . . . . . . . .
Configuration de l'échange de variables de réseau. . . . . . . . . . . . . . .
Règles des listes de variables de réseau (NVL) . . . . . . . . . . . . . . . . .
Etat de fonctionnement de l'expéditeur et du récepteur . . . . . . . . . . .
Diagnostic d'une liste de variables de réseau (NVL) . . . . . . . . . . . . . .
Gestion des erreurs de la liste de variables de réseau (NVL) . . . . . . .
Annexes
.........................................
Annexe A Exemple d'échange simple de variables de réseau . . . .
Exemple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Annexe B Compatibilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Compatibilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Annexe C 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
EIO0000001152 11/2016
.........................................
.........................................
5
7
11
12
16
21
24
25
28
29
31
31
37
37
43
44
45
49
53
57
3
4
EIO0000001152 11/2016
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.
EIO0000001152 11/2016
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
EIO0000001152 11/2016
A propos de ce manuel
Présentation
Objectif du document
Ce guide explique l'échange de données entre des contrôleurs d'un réseau, via des variables de
réseau.
Champ d'application
Ce document a été actualisé pour le lancement de SoMachine V4.2.
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. Une
attention particulière doit être prêtée aux implications des délais de transmission non prévus
ou des pannes de la 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.
EIO0000001152 11/2016
7
Terminologie utilisée dans les normes
Les termes techniques, la terminologie, les symboles et les descriptions correspondantes
employés dans ce manuel ou figurant dans ou sur les produits proviennent généralement des
normes internationales.
Dans les domaines des systèmes de sécurité fonctionnelle, des variateurs et de l'automatisme en
général, les termes employés sont sécurité, fonction de sécurité, état sécurisé, défaut, réinitialisation du défaut, dysfonctionnement, panne, erreur, message d'erreur, dangereux, etc.
Entre autres, les normes concernées sont les suivantes :
8
Norme
Description
EN 61131-2:2007
Automates programmables - Partie 2 : exigences et essais des équipements
ISO 13849-1:2008
Sécurité des machines - Parties des systèmes de commande relatives à la
sécurité Principes généraux de conception
EN 61496-1:2013
Sécurité des machines - Équipements de protection électro-sensibles Partie 1 : prescriptions générales et essais
ISO 12100:2010
Sécurité des machines - Principes généraux de conception - Appréciation du
risque et réduction du risque
EN 60204-1:2006
Sécurité des machines - Équipement électrique des machines - Partie 1 : règles
générales
EN 1088:2008
ISO 14119:2013
Sécurité des machines - Dispositifs de verrouillage associés à des protecteurs
- Principes de conception et de choix
ISO 13850:2006
Sécurité des machines - Fonction d'arrêt d'urgence - Principes de conception
EN/IEC 62061:2005
Sécurité des machines - Sécurité fonctionnelle des systèmes de commande
électrique, électronique et électronique programmable relatifs à la sécurité
IEC 61508-1:2010
Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques
programmables relatifs à la sécurité - Exigences générales
IEC 61508-2:2010
Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques
programmables relatifs à la sécurité - Exigences pour les systèmes
électriques/électroniques/électroniques programmables relatifs à la sécurité
IEC 61508-3:2010
Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques
programmables relatifs à la sécurité - Exigences concernant les logiciels
IEC 61784-3:2008
Communications numériques pour les systèmes de mesure et de commande Bus de terrain de sécurité fonctionnelle
2006/42/EC
Directive Machines
2014/30/EU
Directive sur la compatibilité électromagnétique
2014/35/EU
Directive sur les basses tensions
EIO0000001152 11/2016
De plus, des termes peuvent être utilisés dans le présent document car ils proviennent d'autres
normes telles que :
Norme
Description
Série IEC 60034
Machines électriques rotatives
Série IEC 61800
Entraînements électriques de puissance à vitesse variable
Série IEC 61158
Communications numériques pour les systèmes de mesure et de commande Bus de terrain utilisés dans les systèmes de commande industriels
Enfin, le terme zone de fonctionnement utilisé dans le contexte de la description de dangers
spécifiques a la même signification que les termes zone dangereuse ou zone de danger employés
dans la directive Machines (2006/42/EC) et la norme ISO 12100:2010.
NOTE : Les normes susmentionnées peuvent s'appliquer ou pas aux produits cités dans la
présente documentation. Pour plus d'informations sur chacune des normes applicables aux
produits décrits dans le présent document, consultez les tableaux de caractéristiques de ces
références de produit.
EIO0000001152 11/2016
9
10
EIO0000001152 11/2016
SoMachine
Liste de variables de réseau (NVL)
EIO0000001152 11/2016
Chapitre 1
Liste de variables de réseau (NVL)
Liste de variables de réseau (NVL)
Contenu de ce chapitre
Ce chapitre contient les sujets suivants :
Sujet
Page
Introduction à la liste de variables de réseau (NVL)
12
Configuration de l'échange de variables de réseau
16
Règles des listes de variables de réseau (NVL)
21
Etat de fonctionnement de l'expéditeur et du récepteur
24
Diagnostic d'une liste de variables de réseau (NVL)
25
Gestion des erreurs de la liste de variables de réseau (NVL)
28
EIO0000001152 11/2016
11
Liste de variables de réseau (NVL)
Introduction à la liste de variables de réseau (NVL)
Présentation
La liste de variables de réseau (NVL) se présente sous la forme d'une liste fixe de variables
pouvant être envoyées ou reçues via un réseau de communication. Elle permet d'échanger des
données dans un réseau via des variables de réseau, si le contrôleur (système cible) prend en
charge l'opération.
La liste doit être définie dans le contrôleur expéditeur et le contrôleur récepteur (et peut figurer
dans un ou plusieurs projets). Ses valeurs sont transmises par la diffusion de datagrammes UDP
(User Datagram Protocol). UDP est un protocole de communication Internet sans connexion, défini
par l'IETF RFC 768. Il facilite la transmission directe de datagrammes sur des réseaux IP (Internet
Protocol). Les messages UDP/IP n'attendent pas de réponse. De ce fait, ils sont particulièrement
adaptés aux applications dans lesquelles aucune retransmission des paquets envoyés n'est
nécessaire (comme dans la vidéo en continu ou les réseaux exigeant des performances en temps
réel).
La NVL est une puissante fonctionnalité de SoMachineSoMachine BasicSoMachine Motion. Elle
vous permet de partager et de surveiller les données entre des contrôleurs et leurs applications.
Cependant, il n'y a aucune restriction sur le rôle des données échangées entre les contrôleurs.
Elles peuvent servir à verrouiller une machine ou un processus, voire à modifier l'état d'un
contrôleur.
NOTE : Le type de variable réseau n'est pas partagé entre différents contrôleurs. Vous devez
vérifier que les types utilisés ont la même définition sur tous les équipements. Sinon, aucune
communication avec la NVL n'est possible. Ceci vaut, par exemple, pour les types
SEC.ETH_R_STRUCT ou SEC.PLC_R_STRUCT. Ils sont disponibles par défaut dans différents
contrôleurs ayant différentes tailles ou différents champs.
En tant que concepteur et/ou programmeur de l'application, vous êtes la seule personne à
connaître l'ensemble des conditions et facteurs présents pendant le fonctionnement de la machine
ou du processus. Vous seul pouvez déterminer les stratégies de communication, les verrouillages
et les sécurités nécessaires pour pouvoir échanger des données entre des contrôleurs grâce à
cette fonctionnalité. Surveillez attentivement ce type de fonctionnalité de communication et vérifiez
que la conception de la machine ou du processus n'expose pas les biens et les personnes à des
risques de sécurité.
12
EIO0000001152 11/2016
Liste de variables de réseau (NVL)
AVERTISSEMENT
PERTE DE CONTROLE





Le concepteur d'un système de commande doit envisager les modes de défaillance possibles
des chemins de commande et, pour certaines fonctions de commande critiques, prévoir un
moyen d'atteindre un état sécurisé en cas de défaillance d'un chemin, et après cette
défaillance. Par exemple, l'arrêt d'urgence, l'arrêt en cas de surcourse, la coupure de courant
et le redémarrage sont des fonctions de 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. Une
attention particulière doit être prêtée aux implications des délais de transmission non prévus
ou des pannes de la 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.
Vous pouvez utiliser les blocs fonction de Diagnostic (voir page 25) et de Gestion des erreurs
(voir page 28) ainsi que les paramètres des propriétés de réseau pour contrôler le fonctionnement,
l'état et l'intégrité des communications utilisant cette fonctionnalité. Cette dernière a été conçue
pour le partage et la surveillance des données. Elle ne peut pas être utilisée pour des fonctions de
contrôle critiques.
Liste de variables de réseau (NVL)
Les variables de réseau à échanger sont définies dans les deux types de listes suivants :
 des listes de variables globales (GVL) dans un contrôleur expéditeur ;
 des listes de variables de réseau globales (GNVL) dans un contrôleur récepteur.
Les GVL et GNVL correspondantes contiennent les mêmes déclarations de variables. Vous
pouvez afficher leur contenu dans l'éditeur approprié en double-cliquant sur le nœud GVL ou
GNVL dans le volet Appareils.
EIO0000001152 11/2016
13
Liste de variables de réseau (NVL)
Une GVL contient les variables de réseau d'un expéditeur. Les paramètres de protocole et de
transmission sont définis dans les Propriétés réseau de l'expéditeur. Conformément à ces
paramètres, les valeurs des variables sont diffusées au sein du réseau. Elles peuvent être reçues
par tous les contrôleurs qui ont une GNVL correspondante.
NOTE : pour qu'un échange de variables de réseau ait lieu, les bibliothèques de réseau
respectives doivent être installées. Cette opération s'effectue automatiquement pour le type de
réseau standard UDP dès que les propriétés réseau d'une GVL sont définies.
Les variables réseau sont envoyées de la GVL (expéditeur) à une ou plusieurs GNVL (récepteurs).
Pour chaque contrôleur, vous pouvez définir des GVL et des GNVL. Ainsi, chaque contrôleur peut
se comporter comme un expéditeur ou un récepteur.
Une GVL d'expéditeur peut être fournie par le même projet ou un autre projet. Ainsi, lors de la
création d'une GNVL, la GVL (expéditeur) peut être choisie dans la liste des GVL disponibles dans
le réseau, ou lue dans un fichier d'exportation généré précédemment (par exemple, à l'aide de la
boîte de dialogue Lien avec fichier) à partir de la GVL.
NOTE : Le fichier d'exportation est nécessaire si la GVL (expéditeur) à utiliser est définie dans un
autre projet.
Éléments à prendre en compte pour la NVL
Le tableau ci-dessous montre les contrôleurs qui prennent en charge la fonctionnalité de liste de
variables de réseau (NVL) :
Nom de la fonction
M238
Liste de variables de réseau Non
M241
M251
M258
LMC058
XBTGC
XBT GK
XBT GT
ATV IMC
Oui
Oui
Oui
Oui
Oui*
*L'ATV IMC ne prend en charge la NVL que dans les tâches à exécution libre.
Le tableau ci-dessous montre les contrôleurs qui prennent en charge la fonctionnalité de liste de
variables de réseau (NVL) :
Nom de la fonction
LMC Eco
LMC Pro
LMC Pro2
Liste de variables de réseau Oui
14
EIO0000001152 11/2016
Liste de variables de réseau (NVL)
Cette figure montre un réseau constitué d'un émetteurs et de 7 récepteurs (nombre maximum) :
Contrôleur expéditeur A : expéditeur avec la liste de variables globales (GVL) et le contrôleur récepteur avec
les listes de variables de réseau globales (GNVL)
Contrôleurs récepteurs 1 à 7 : récepteurs (avec GNVL) de A et contrôleur expéditeur (GVL) uniquement
pour A
EIO0000001152 11/2016
15
Liste de variables de réseau (NVL)
Configuration de l'échange de variables de réseau
Présentation
Pour pouvoir échanger des variables de réseau, deux contrôleurs (un expéditeur et un récepteur)
doivent être disponibles dans l'arborescence Equipements de SoMachine. Ces contrôleurs sont
configurés avec les propriétés réseau décrites ci-après.
Pour configurer la liste des variables de réseau, procédez comme suit :
Étape
Action
1
Créez un contrôleur expéditeur et un contrôleur récepteur dans l'arborescence
Equipements.
2
Créez un programme (POU) pour le contrôleur expéditeur et le contrôleur
récepteur.
3
Ajoutez une tâche pour le contrôleur expéditeur et le contrôleur récepteur.
NOTE : Pour garantir des performances transparentes, attribuez à la tâche
dédiée à la NVL une priorité supérieure à 25 et régulez les communications afin
d'éviter toute saturation superflue du réseau.
4
Définissez la liste des variables globales (GVL) de l'expéditeur.
5
Définissez la liste des variables de réseau globales (GNVL) du récepteur.
Un exemple plus détaillé est disponible dans l'Annexe (voir page 31).
16
EIO0000001152 11/2016
Liste de variables de réseau (NVL)
Liste de variables globales
Pour créer la GVL de l'expéditeur, définissez les propriétés réseau suivantes dans la boîte de
dialogue GVL → Propriétés → Propriétés réseau :
Description des paramètres
Paramètre
Valeur par défaut
Description
Type de réseau
UDP
Seul le type de réseau standard UDP est disponible.
Pour modifier les valeurs de Broadcast Adr. et de Port, cliquez sur le
bouton Paramètres....
Tâche
MAST
Sélectionnez la tâche que vous avez configurée, sous l'élément
Configuration de tâche, pour exécuter le code de la NVL.
Pour maintenir la transparence des performances, il est recommandé
de configurer un Intervalle supérieur ou égal à 50 ms pour cette tâche.
NOTE : Pour garantir des performances transparentes, attribuez à la
tâche dédiée à la NVL une priorité supérieure à 25 et régulez les
communications afin d'éviter toute saturation superflue du réseau.
Identificateur de liste
de variables
EIO0000001152 11/2016
1
Entrez un numéro unique pour chaque GVL sur le réseau. Il permet
aux récepteurs d'identifier la liste des variables (voir page 22).
17
Liste de variables de réseau (NVL)
Paramètre
Valeur par défaut
Description
Compacter les
variables
Activée
Lorsque cette option est activée, les variables sont regroupées en
paquets (datagrammes) en vue de leur transmission.
Lorsque cette option est désactivée, un paquet par variable est
transmis.
Transmettre le total de
contrôle
Désactivée
Activez cette option pour ajouter un total de contrôle à chaque paquet
de variables pendant la transmission.
Les récepteurs vérifient alors le total de contrôle de chaque paquet
qu'ils reçoivent, et rejettent ceux dont le total de contrôle ne
correspond pas. Une notification est envoyée avec le paramètre
(voir page 26) NetVarError_CHECKSUM.
Confirmation
Désactivée
Activez cette option pour demander au récepteur d'envoyer un
message de confirmation pour chaque paquet de données qu'il a reçu.
Une notification est envoyée avec le paramètre (voir page 26)
NetVarError_ACKNOWLEDGE si l'expéditeur ne reçoit pas cette
confirmation de la part du récepteur avant qu'il n'envoie le paquet de
données suivant.
Transmission cyclique
 Intervalle
Activée
Activez cette option pour effectuer des transmissions cycliques selon
l'Intervalle spécifié.
Cet Intervalle doit être un multiple du temps de cycle que vous avez
défini dans la tâche d'exécution du code de la NVL pour obtenir un
temps de transmission précis des variables de réseau.
Désactivée
Activez cette option pour transmettre les variables dont la valeur a
changé.
Transmission en cas
de modification
 Écart minimum
 T#20ms
NOTE : Après le premier téléchargement ou l'exécution de la
commande Reset froid ou Reset chaud en mode En ligne, les
contrôleurs récepteurs ne sont pas mis à jour et conservent leur
dernière valeur, tandis que le contrôleur expéditeur prend la valeur 0
(zéro).
Le paramètre Écart minimum définit le délai minimum à respecter
entre deux transferts de données.
Transmission
déclenchée par
événement
 Variable
Désactivée
 –
Activez cette option pour transmettre des variables tant que la Variable
spécifiée a pour valeur TRUE. Cette variable est contrôlée à chaque
cycle de la tâche d'exécution du code de la NVL.
Description du bouton Paramètres...
Paramètre
Valeur par défaut
Description
Port
1202
Entrez un numéro de port unique (≥ 1202) pour chaque expéditeur
de GVL.
Broadcast Adr.
255.255.255.255
Entrez une adresse IP de diffusion pour votre application.
18
EIO0000001152 11/2016
Liste de variables de réseau (NVL)
Liste de variables de réseau globales (GNVL)
Une liste de variables de réseau globales ne peut être ajoutée que dans l'arborescence Appareils.
Elle définit des variables qui sont spécifiées comme des variables de réseau dans un autre
contrôleur du réseau.
Ainsi, un objet GNVL ne peut être ajouté à une application que si une liste de variables
globales (GVL) avec des propriétés réseau (liste de variables de réseau) a été créée dans l'un des
autres contrôleurs du réseau. Ces contrôleurs peuvent appartenir au même projet ou à des projets
différents.
Pour créer la GNVL, définissez les paramètres suivants dans la boîte de dialogue Ajouter un objet
→ Liste de variables de réseau globales :
Description des paramètres
Paramètre
Valeur par défaut
Description
Nom
NVL
Indiquez le nom de la GNVL.
Tâche
Tâche définie dans
le nœud
Configuration de
tâche de cette
Application
Sélectionnez une tâche dans la liste de celles qui recevront les trames
émanant de l'expéditeur et qui sont disponibles sous le nœud
Configuration de tâche du contrôleur récepteur.
EIO0000001152 11/2016
19
Liste de variables de réseau (NVL)
Paramètre
Valeur par défaut
Description
Expéditeur
1 des GVL
disponibles dans le
projet
Sélectionnez la GVL de l'expéditeur dans la liste de toutes les GVL
d'expéditeur, avec les propriétés réseau actuellement disponibles
dans le projet.
Sélectionnez l'entrée Importation à partir du fichier dans la liste pour
utiliser une GVL d'un autre projet. Ceci active le paramètre Importation
à partir du fichier : ci-dessous.
Importation à partir du
fichier:
–
Ce paramètre n'est disponible que si vous avez sélectionné l'option
Importation à partir du fichier pour le paramètre Expéditeur.
Le bouton ... ouvre une fenêtre standard de l'Explorateur Windows, qui
vous permet de naviguer jusqu'au fichier d'exportation *.gvl que vous
avez créé à partir d'une GVL dans un autre projet.
Pour plus d'informations, reportez-vous au paragraphe Comment
ajouter une GNVL d'un autre projet ci-dessous.
Comment ajouter une GNVL dans le même projet
Lorsque vous ajoutez une GNVL à l'aide de la boîte de dialogue Ajouter un objet, toutes les GVL
appropriées qui sont trouvées dans le projet pour le réseau concerné sont répertoriées dans la
zone de liste Expéditeur. Les GVL d'autres projets doivent être importées (reportez-vous au
paragraphe Comment ajouter une GNVL d'un autre projet ci-dessous).
Suite à cette sélection, chaque GNVL du contrôleur actuel (expéditeur) est liée à une GVL
spécifique dans un autre contrôleur (récepteur).
De plus, vous devez définir un nom et une tâche chargée de gérer les variables de réseau, lors de
l'ajout de la GNVL.
Comment ajouter une GNVL d'un autre projet
Au lieu de choisir directement une GVL d'expéditeur d'un autre contrôleur, vous pouvez également
spécifier un fichier d'exportation de GVL que vous avez généré à partir de la GVL à l'aide des
propriétés Lien avec fichier. Ceci vous permet d'utiliser une GVL définie dans un autre projet.
Pour ce faire, sélectionnez l'option Importation à partir du fichier dans le paramètre Expéditeur : et
spécifiez le chemin dans le paramètre Importation à partir du fichier :.
Ces paramètres sont modifiables ultérieurement dans la boîte de dialogue Propriétés - GVL.
Propriétés de GNVL
Si vous double-cliquez sur une GNVL dans l'arborescence Appareils, son contenu s'affiche à
droite dans un éditeur. Sachez toutefois que le contenu de la GNVL n'est pas modifiable. Ce qui
s'affiche n'est qu'une référence au contenu de la GVL correspondante. Le nom exact et le chemin
de l'expéditeur contenant la GVL correspondante sont indiqués en haut du volet de l'éditeur, avec
le type de protocole réseau utilisé. Si la GVL correspondante est modifiée, le contenu de la GNVL
est mis à jour en conséquence.
20
EIO0000001152 11/2016
Liste de variables de réseau (NVL)
Règles des listes de variables de réseau (NVL)
Règles relatives à la quantité de données
En raison de certaines limitations de performances, respectez les règles suivantes :
Nombre
Règle
1
La transmission de données entre une GVL (expéditeur) et une GNVL (récepteur) ne doit pas dépasser
200 octets.
2
L'échange de données entre plusieurs GVL (expéditeurs) d'un même contrôleur et leurs GNVL
associées (récepteurs) ne doit pas dépasser 1000 octets de variables.
Règles relatives au nombre de datagrammes
Pour limiter la durée maximale du cycle des tâches d'une NVL, respectez les recommandations
suivantes :
Nombre
Règle
Description
1
Limitez le nombre de datagrammes
reçus par cycle à 20.
Lorsque cette limite est dépassée, les datagrammes restants
sont traités lors du cycle suivant. Une notification de
débordement de réception est consignée dans les données de
diagnostic (voir page 26) lorsque la limite est atteinte.
Un datagramme peut contenir jusqu'à 256 octets. Cela signifie
que vous ne devez pas dépasser la limite de 5120 octets de
données reçues par un récepteur.
2
Limitez le nombre de datagrammes
émis par cycle à 20.
Lorsque cette limite est dépassée, les datagrammes restants
sont traités lors du cycle suivant. Une notification de
débordement d'émission est consignée dans les données de
diagnostic (voir page 26) lorsque la limite est atteinte.
Un datagramme peut contenir jusqu'à 256 octets. Cela signifie
que vous ne devez pas dépasser la limite de 5120 octets de
données émises par un contrôleur expéditeur.
Si le nombre de datagrammes reçus/émis par cycle dépasse la limite plusieurs fois, les
événements suivants risquent de se produire :
 perte de datagrammes UDP (User Datagram Protocol) ;
 échange incohérent de variables.
Adaptez les paramètres suivants à vos besoins :
durée du cycle du contrôleur expéditeur
 durée du cycle du contrôleur récepteur
 nombre d'expéditeurs dans le réseau

EIO0000001152 11/2016
21
Liste de variables de réseau (NVL)
AVIS
PERTE DE DONNEES
Testez soigneusement l'application pour vérifier la transmission et la réception des datagrammes
UDP avant de mettre votre système en service.
Le non-respect de ces instructions peut provoquer des dommages matériels.
Nombre maximum de GVL (expéditeurs)
Définissez au maximum 7 GVL par contrôleur (expéditeur) pour maintenir la transparence des
performances.
Règles relatives aux durées des cycles de tâche des GVL (expéditeurs) et des GNVL (récepteurs)
Afin d'éviter toute saturation en réception, vous devez définir pour la tâche qui gère la transmission
de la GVL une durée de cycle au moins double de celle de la tâche qui gère la réception de la
GNVL.
Règles relatives à la protection de l'identificateur de liste
La fonction NVL inclut une vérification de l'identificateur de liste :
Cet identificateur permet d'éviter qu'une GVL (expéditeur) émanant de deux contrôleurs distincts
avec le même identificateur de liste (boîte de dialogue GVL → Propriétés → Identificateur de liste
de variables :) envoie des datagrammes à la même liste de variables de réseau globales (GNVL)
d'un contrôleur. Si l'Identificateur de liste de variables n'est pas unique, l'échange des variables
peut être interrompu.
AVIS
PERTE DE COMMUNICATION
Vérifiez que l'identificateur de liste n'est utilisé que par une adresse IP dans le réseau.
Le non-respect de ces instructions peut provoquer des dommages matériels.
La fonction de vérification de l'identificateur de liste est mise en œuvre dans le contrôleur
récepteur.
Si une GNVL (récepteur) détecte que deux adresses IP différentes utilisent le même identificateur
de liste, le récepteur interrompt immédiatement la réception des datagrammes.
De plus, une notification est générée dans le bloc fonction NETVARGETDIAGINFO. Les adresses
IP des deux expéditeurs sont indiquées dans les paramètres de sortie dwDuplicateListIdIp1
et dwDuplicateListIdIp de ce bloc fonction (voir page 25).
22
EIO0000001152 11/2016
Liste de variables de réseau (NVL)
Avec le bloc fonction NETVARRESETERROR, les erreurs de NVL détectées sont réinitialisées et la
communication est relancée.
Cohérence dans le type des variables réseau
NOTE : Le type de variable réseau n'est pas partagé entre différents contrôleurs. Vous devez
vérifier que les types utilisés ont la même définition sur tous les équipements. Sinon, aucune
communication avec la NVL n'est possible.
Ceci vaut, par exemple, pour les types SEC.ETH_R_STRUCT ou SEC.PLC_R_STRUCT. Ils sont
disponibles par défaut dans différents contrôleurs ayant différentes tailles ou différents champs.
EIO0000001152 11/2016
23
Liste de variables de réseau (NVL)
Etat de fonctionnement de l'expéditeur et du récepteur
Etat de fonctionnement
Etat de fonctionnement de...
Comportement des variables de réseau
Expéditeur
Récepteur
RUN
RUN
Des variables de réseau sont échangées entre
l'expéditeur et le récepteur.
STOP
RUN
L'expéditeur n'envoie plus de variables au récepteur.
Aucune variable de réseau n'est échangée entre
l'expéditeur et les récepteurs.
RUN
STOP
Le récepteur ne traite pas les variables de réseau
envoyées par l'expéditeur.
Lorsque le récepteur reprend l'état RUN, les variables
de réseau sont de nouveau traitées par ce dernier.
STOP
STOP
Aucune variable n'est échangée.
NOTE : Plusieurs erreurs d'initialisation de communication (NetVarError_INITCOMM) sont
détectées lorsque vous faites passer l'expéditeur de l'état STOP à l'état RUN.
Événements dans la tâche qui gère la NVL
Si les événements suivants surviennent dans la tâche qui gère la NVL, le comportement attendu
de la NVL est le même que si le contrôleur était en mode STOP dans le tableau ci-dessus :
 Une exception survient dans l'application qui suspend la tâche.
 Un point d'arrêt est rencontré ou un cycle est en cours de traitement dans la tâche.
24
EIO0000001152 11/2016
Liste de variables de réseau (NVL)
Diagnostic d'une liste de variables de réseau (NVL)
Description du bloc fonction
Le bloc fonction NETVARGETDIAGINFO collecte des informations sur la fonctionnalité liste de
variables de réseau (NVL).
Paramètres d'entrée
Paramètre
Type
Commentaire
xExecute
BOOL
Front montant : les informations de diagnostic sont
disponibles.
Front descendant : les sorties du bloc fonction sont
réinitialisées.
dwListIdentity
DWORD
Identificateur de liste de la GVL/GNVL dans laquelle les
informations doivent être collectées.
Paramètres de sortie
Paramètre
Type
Commentaire
xDone
BOOL
Les informations ont été correctement récupérées.
xBusy
BOOL
Le bloc fonction est actif.
EIO0000001152 11/2016
25
Liste de variables de réseau (NVL)
Paramètre
Type
Commentaire
xError
BOOL
TRUE : un identificateur de liste inconnu a été utilisé.
FALSE : aucune erreur n'a été détectée dans l'exécution du
bloc fonction NETVARGETDIAGINFO.
nSendCount
UDINT
Nombre de datagrammes UDP envoyés.
tLastSend
TIME
Date à laquelle le dernier datagramme UDP a été envoyé.
nReceiveCount
UDINT
Nombre de datagrammes UDP reçus.
tLastReceive
TIME
Date à laquelle le dernier datagramme UDP a été reçu.
nWriteCount
UDINT
Nombre de variables écrites.
sLastError
NetVarU
DPError
Dernière erreur détectée sur le protocole de variable de
réseau.
Consultez la description du paramètre énuméré
NetVarUDPError ci-dessous.
tLastError
TIME
Date à laquelle la dernière erreur a été détectée.
nErrorCount
UINT
Nombre d'erreurs détectées.
nAcknowledges
UINT
Nombre de confirmations reçues.
dwDuplicateListIdIp1
DWORD
Si un identificateur de liste en double a été détecté, ce
paramètre indique la première adresse IP de l'expéditeur
qui a le même identificateur de liste que
dwDuplicateListIdIp1.
dwDuplicateListIdIp2
DWORD
Si un identificateur de liste en double a été détecté, ce
paramètre indique la seconde adresse IP de l'expéditeur qui
a le même identificateur de liste que
dwDuplicateListIdIp2.
Structure NetVarUDPError
La structure NetVarUDPError est un paramètre énuméré défini comme suit :
Paramètre
Valeur
Commentaire
NetVarError_NOERROR
0
aucune erreur détectée
NetVarError_SENDDATA
1
Échec du transfert de données.
NetVarError_ACKNOWLEDGE
2
Erreur de confirmation détectée.
NOTE : Cette erreur n'est détectée que lorsque l'option
Confirmation est activée dans la boîte de dialogue
Propriétés - GVL_Sender.
NetVarError_INIT_COMM
26
3
Erreur d'initialisation de communication détectée.
EIO0000001152 11/2016
Liste de variables de réseau (NVL)
Paramètre
Valeur
Commentaire
NetVarError_CHECKSUM
4
Erreur de total de contrôle détectée.
NOTE : Cette erreur n'est détectée que lorsque l'option
Transmettre le total de contrôle est activée dans la boîte de
dialogue Propriétés - GVL_Sender.
NetVarError_LAYOUT
5
Erreur de disposition détectée.
Le nombre de variables échangées ne correspond pas entre
l'expéditeur et le récepteur.
NetVarError_LISTID
6
Identificateur de liste en double détecté.
Deux expéditeurs sur le réseau ont le même identificateur
de liste.
NetVarError_TRANSMIT_OVERFLOW
7
Le nombre de datagrammes envoyés par cycle a dépassé
la limite de 20 (voir page 21).
NetVarError_RECEIVE_OVERFLOW
8
Le nombre de datagrammes envoyés par cycle a atteint la
limite de 20 (voir page 21).
EIO0000001152 11/2016
27
Liste de variables de réseau (NVL)
Gestion des erreurs de la liste de variables de réseau (NVL)
Description du bloc fonction
Le bloc fonction NETVARRESETERROR relance l'échange de variables après la détection d'une
erreur de NVL.
Ce bloc fonction réinitialise les identifiants de liste en double, stockés dans le paramètre de sortie
dwDuplicateListIdIp1 ou dwDuplicateListIdIp2 du bloc fonction
NETVARGETDIAGINFO.
Paramètres d'entrée
Paramètre
Type
Commentaire
xExecute
BOOL
Front montant : les erreurs de NVL détectées sont
réinitialisées et la communication est restaurée.
Front descendant : les sorties du bloc fonction sont
réinitialisées.
dwListIdentity
DWORD
Identificateur de liste utilisé par les GVL dont les
erreurs doivent être réinitialisées.
Paramètre
Type
Commentaire
xDone
BOOL
Réinitialisation après résolution de la ou des erreurs
détectées.
xBusy
BOOL
Le bloc fonction est actif.
xError
BOOL
TRUE : une erreur d'exécution du bloc fonction
NETVARRESETERROR a été détectée.
FALSE : aucune erreur d'exécution du bloc fonction
NETVARRESETERROR n'a été détectée.
Paramètres de sortie
28
EIO0000001152 11/2016
SoMachine
EIO0000001152 11/2016
Annexes
Vue d'ensemble
Cette annexe fournit des exemples de définition de GVL et de GNVL. Elle détaille un échange de
variables de réseau entre des applications dont les systèmes de programmation ont des versions
différentes, et fournit des informations générales sur les fonctions et blocs fonction.
Contenu de cette annexe
Cette annexe contient les chapitres suivants :
Chapitre
Titre du chapitre
Page
A
Exemple d'échange simple de variables de réseau
31
B
Compatibilité
37
C
Représentation des fonctions et blocs fonction
43
EIO0000001152 11/2016
29
30
EIO0000001152 11/2016
SoMachine
Exemple d'échange simple de variables de réseau
EIO0000001152 11/2016
Annexe A
Exemple d'échange simple de variables de réseau
Exemple d'échange simple de variables de réseau
Exemple
Vue d'ensemble
Dans l'exemple suivant, un échange simple de variables de réseau est défini. Une liste de
variables globales (GVL) est créée dans le contrôleur expéditeur. Une liste de variables de réseau
globales (GNVL) correspondante est créée dans le contrôleur récepteur.
Effectuez les opérations ci-dessous dans un projet standard où un contrôleur expéditeur
Dev_Sender et un contrôleur récepteur Dev_Receiver sont disponibles dans l'arborescence
Appareils :
 Créez une POU (programme) prog_sender sous le nœud Application de Dev_Sender.
 Sous le nœud Configuration de tâche de cette application, ajoutez la tâche Task_S qui appelle
prog_sender.
 Créez une POU (programme) prog_rec sous le nœud Application de Dev_Receiver.
 Sous le nœud Configuration de tâche de cette application, ajoutez la tâche Task_R qui appelle
prog_rec.
NOTE : les deux contrôleurs doivent être configurés dans le même sous-réseau du réseau
Ethernet.
Définition de la GVL de l'expéditeur
Étape 1 : définition d'une liste de variables globales dans le contrôleur expéditeur :
Etape
Action
Commentaire
1
Dans le volet Appareils, cliquez avec le bouton droit La boîte de dialogue Ajouter Liste de variables
de la souris sur le nœud Application du contrôleur globales s'ouvre.
Dev_Sender et sélectionnez Ajouter un objet →
Liste de variables globales....
2
Saisissez GVL_Sender dans le champ Nom et
cliquez sur Ouvrir pour créer une liste de variables
globales.
EIO0000001152 11/2016
Le nœud GVL_Sender apparaît sous le nœud
Application dans le volet Appareils, et l'éditeur
s'ouvre dans la partie droite.
31
Exemple d'échange simple de variables de réseau
Etape
3
Action
Commentaire
Dans l'éditeur situé à droite, entrez les définitions de –
variable suivantes :
VAR_GLOBAL iglobvar:INT;
bglobvar:BOOL; strglobvar:STRING;
END_VAR
Étape 2 : définition des propriétés réseau de la GVL de l'expéditeur :
Etape
1
32
Action
Commentaire
Dans le volet Appareils, cliquez avec le bouton droit La boîte de dialogue Propriétés - GVL_Sender
de la souris sur le nœud GVL_Sender et
s'ouvre.
sélectionnez Propriétés....
EIO0000001152 11/2016
Exemple d'échange simple de variables de réseau
Etape
Action
Commentaire
2
Ouvrez l'onglet Propriétés réseau et configurez les
paramètres comme indiqué ci-après :
–
3
Cliquez sur OK.
La boîte de dialogue se referme. Les propriétés
réseau de la GVL sont configurées.
Définition de la GNVL du récepteur
Étape 1 : définition d'une liste de variables de réseau globales dans le contrôleur récepteur :
Etape
1
Action
Commentaire
Dans le volet Appareils, cliquez avec le bouton droit La boîte de dialogue Ajouter Liste de variables de
de la souris sur le nœud Application du contrôleur réseau global s'ouvre.
Dev_Receiver et sélectionnez Ajouter un objet →
Liste de variables de réseau globales....
EIO0000001152 11/2016
33
Exemple d'échange simple de variables de réseau
Etape
2
34
Action
Commentaire
Configurez les paramètres comme indiqué cidessous.
Cette liste de variables de réseau globales est
l'équivalent de la GVL définie pour le contrôleur
expéditeur.
EIO0000001152 11/2016
Exemple d'échange simple de variables de réseau
Etape
3
Action
Commentaire
Cliquez sur le bouton Ouvrir.
La boîte de dialogue se referme et GNVL_Receiver
apparaît sous le nœud Application du contrôleur
Dev_Receiver :
Cette GNVL contient automatiquement les mêmes
déclarations de variable que GVL_Sender.
Étape 2 : affichage et/ou modification des paramètres réseau de la GNVL :
Etape
Action
Commentaire
1
Dans le volet Appareils, cliquez avec le bouton droit La boîte de dialogue Propriétés - GNVL_Receiver
de la souris sur le nœud GNVL_Receiver et
s'ouvre.
sélectionnez Propriétés....
2
Cliquez sur l'onglet Paramètres réseau.
–
Étape 3 : test de l'échange de variables de réseau en mode en ligne :
Etape
1
Action
Commentaire
Sous le nœud Application du contrôleur
Dev_Sender, double-cliquez sur la POU
prog_sender.
L'éditeur de prog_sender s'ouvre dans la partie
droite.
EIO0000001152 11/2016
35
Exemple d'échange simple de variables de réseau
Etape
36
Action
Commentaire
2
Entrez le code suivant pour la variable iglobvar : –
3
Sous le nœud Application du contrôleur
L'éditeur de prog_rec s'ouvre dans la partie droite.
Dev_Receiver, double-cliquez sur la POU prog_rec.
4
Entrez le code suivant pour la variable
ivar_local :
5
Connectez-vous aux applications de l'expéditeur et La variable ivar_local dans le récepteur
du récepteur dans le même réseau et démarrez-les. récupère les valeurs de iglobvar affichées dans
l'expéditeur.
–
EIO0000001152 11/2016
SoMachine
Compatibilité
EIO0000001152 11/2016
Annexe B
Compatibilité
Compatibilité
Compatibilité
Introduction
Même si les contrôleurs fonctionnent avec des applications ayant différentes versions du système
de programmation (par exemple, V2.3 et V3.x), la communication via des variables de réseau est
possible.
Toutefois, en raison des formats différents des fichiers d'export entre les versions (*.exp / *.gvl), il
est impossible de procéder à de simples importations et exportations de ces fichiers entre projets.
Si une liste de variables de réseau globales (GNVL) est créée dans la dernière version (par
exemple, V3.x), la configuration des paramètres réseau requis doit être fournie par un expéditeur
de la dernière version (en l'occurrence, V3.x). Un fichier d'exportation *.exp créé par un expéditeur
d'une version antérieure (par exemple, V2.3) ne contient pas ces informations.
Les paragraphes suivants détaillent une solution permettant d'échanger des variables de réseau
entre des applications générées par des systèmes de programmation de différentes versions.
Mise à jour de la liste des variables de réseau globales
Pour échanger des variables de réseau entre des applications dont le système de programmation
a différentes versions (par exemple, V2.3 et V3.x), mettez à jour la liste des variables de réseau
globales en procédant comme suit :
Étape
Action
Commentaire
1
Recréez dans la dernière version (V3.x) la
liste des variables de réseau (NVL)
disponible dans la version
précédente (V2.3).
Pour ce faire, ajoutez une liste de variables globales
(GVL) avec des propriétés réseau, contenant les
mêmes déclarations de variables que la NVL de la
version précédente (V2.3).
2
Exportez la nouvelle GVL dans un fichier
*.exp à l'aide de l'onglet Lien avec fichier.
NOTE : activez l'option Exclure de la compilation
dans l'onglet Compiler pour conserver la GVL dans
le projet sans obtenir d'événements de
précompilation et de noms ambigus. Désactivez
cette option pour recréer le fichier *.exp si la GVL
doit être modifiée.
3
Réimportez la liste.
Pour ce faire, créez une liste de variables de réseau
globales (GNVL) à l'aide du fichier *.exp
précédemment généré afin d'obtenir une liste des
récepteurs correctement configurés.
Ces étapes sont décrites dans l'exemple ci-dessous.
EIO0000001152 11/2016
37
Compatibilité
Exemple
Dans cet exemple, la variable trans23 définie dans une application V2.3 est disponible dans une
version plus récente (V3.x).
Les conditions définies sont les suivantes :
Condition
1
38
Description
Dans la version précédente du système de programmation (V2.3), le projet 23.pro contient une liste
des variables globales GVL_23 avec la déclaration suivante :
VAR_GLOBAL trans23:INT; END_VAR
EIO0000001152 11/2016
Compatibilité
Condition
2
Description
Les propriétés réseau de GVL_23 sont configurées comme suit :
NOTE : l'exportation de GVL_23 crée un fichier *.exp qui ne contient que la déclaration de variable
suivante :
VAR_GLOBAL trans23:INT; END_VAR
Le fichier *.exp ne contient aucun paramètre de configuration.
Le tableau ci-dessous montre les opérations supplémentaires à effectuer pour recréer GVL_23
dans la version plus récente (V3.x) :
Étape
1
Action
Commentaire
Ajoutez un objet GVL nommé GVL_23 –
à une application.
EIO0000001152 11/2016
39
Compatibilité
Étape
40
Action
2
Configurez les propriétés réseau
comme indiqué dans le projet 23.pro.
3
Dans l'onglet Lien avec fichier,
configurez un fichier d'exportation
cible nommé 23.gvl.
4
Dans l'onglet Compiler, activez
l'option Exclure de la compilation.
Commentaire
Ce paramètre vous permet de conserver le fichier sur le disque,
en vue de modifications ultérieures.
EIO0000001152 11/2016
Compatibilité
Étape
Action
Commentaire
5
Compilez le projet.
Le fichier 23.gvl est généré et contient la variable et les
paramètres de configuration :
6
Ajoutez un objet GNVL dans le
projet V3.x à partir du fichier
d'exportation 23.gvl (à l'aide de la
commande Importation à partir du
fichier :).
Cela permet de lire la variable trans23 à partir du contrôleur de
l'ancien système de programmation (V.2.3).
Si le projet de l'ancienne version (V2.3) et l'application de la
nouvelle version (V3.x) sont tous les deux en cours d'exécution
sur le réseau, la seconde peut lire la variable trans23 du
projet 23.pro.
EIO0000001152 11/2016
41
Compatibilité
42
EIO0000001152 11/2016
SoMachine
Représentation des fonctions et blocs fonction
EIO0000001152 11/2016
Annexe C
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
44
Utilisation d'une fonction ou d'un bloc fonction en langage IL
45
Utilisation d'une fonction ou d'un bloc fonction en langage ST
49
EIO0000001152 11/2016
43
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 :
44
EIO0000001152 11/2016
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 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,
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 choisir la fonction (sélectionnez Insérer l'appel de module dans le
menu contextuel).
5
Si la fonction a plusieurs entrées et que l'Aide à la saisie est utilisée, 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 en fonction 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 un nom de variable
dans le champ situé à droite.
Pour illustrer la procédure, utilisons les fonctions IsFirstMastCycle (sans paramètre d'entrée)
et SetRTCDrift (avec paramètres d'entrée) représentées graphiquement ci-après :
Fonction
Représentation graphique
sans paramètre d'entrée :
IsFirstMastCycle
EIO0000001152 11/2016
45
Représentation des fonctions et blocs fonction
Fonction
Représentation graphique
avec paramètres d'entrée :
SetRTCDrift
En langage IL, le nom de la fonction est utilisé directement dans la colonne de l'opérateur :
Fonction
Représentation dans l'éditeur IL de POU de SoMachineSoMachine BasicSoMachine
Motion
Exemple IL d'une
fonction sans paramètre
d'entrée :
IsFirstMastCycle
46
EIO0000001152 11/2016
Représentation des fonctions et blocs fonction
Fonction
Représentation dans l'éditeur IL de POU de SoMachineSoMachine BasicSoMachine
Motion
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.
EIO0000001152 11/2016
47
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 de SoMachineSoMachine BasicSoMachine
Motion
TON
48
EIO0000001152 11/2016
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
EIO0000001152 11/2016
49
Représentation des fonctions et blocs fonction
La représentation en langage ST de cette fonction est la suivante :
Fonction
Représentation dans l'éditeur ST de POU de SoMachineSoMachine BasicSoMachine
Motion
SetRTCDrift
PROGRAM MyProgram_ST
VAR myDrift: SINT(-29..29) := 5;
myDay: DAY_OF_WEEK := SUNDAY;
myHour: HOUR := 12;
myMinute: MINUTE;
myRTCAdjust: RTCDRIFT_ERROR;
END_VAR
myRTCAdjust:= SetRTCDrift(myDrift, myDay, myHour, myMinute);
Utilisation d'un bloc fonction en langage ST
La procédure suivante explique comment insérer un bloc fonction en langage ST :
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 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
50
EIO0000001152 11/2016
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 de SoMachineSoMachine BasicSoMachine
Motion
TON
EIO0000001152 11/2016
51
Représentation des fonctions et blocs fonction
52
EIO0000001152 11/2016
SoMachine
Glossaire
EIO0000001152 11/2016
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
EIO0000001152 11/2016
53
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.
G
GVL
Acronyme de Global Variable List, liste de variables globales. Permet de gérer les variables
globales d'un projet SoMachineSoMachine BasicSoMachine Motion.
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
54
Type codé sur 8 bits, de 00 à FF au format hexadécimal.
EIO0000001152 11/2016
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
UDP
Acronyme de User Datagram Protocol, protocole de datagramme utilisateur. Protocole de mode
sans fil (défini par la norme IETF RFC 768) dans lequel les messages sont livrés dans un
datagramme vers un ordinateur cible sur un réseau IP. Le protocole UDP est généralement fourni
en même temps que le protocole Internet. Les messages UDP/IP n'attendent pas de réponse et,
de ce fait, ils sont particulièrement adaptés aux applications dans lesquelles aucune
retransmission des paquets envoyés n'est nécessaire (comme dans la vidéo en continu ou les
réseaux exigeant des performances en temps réel).
V
variable
Unité de mémoire qui est adressée et modifiée par un programme.
EIO0000001152 11/2016
55
Glossaire
56
EIO0000001152 11/2016
SoMachine
Index
EIO0000001152 11/2016
Index
F
fonctions
différences entre une fonction et un bloc
fonction, 44
utilisation d'une fonction ou d'un bloc
fonction en langage IL, 45
utilisation d'une fonction ou d'un bloc
fonction en langage ST, 49
G
GNVL
liste de variables de réseau globales, 19
N
NETVARGETDIAGINFO
bibliothèque SE_NetVarUdp, 25
NETVARRESETERROR
bibliothèque SE_NetVarUdp, 28
NVL
contrôleurs prenant en charge la NVL, 14
diagnostic, 25
éléments à prendre en compte, 14
exemple de configuration, 31
gestion des erreurs, 28
listes de variables de réseau, 12
règles, 21
S
SE_NetVarUdp
NETVARGETDIAGINFO, 25
NETVARRESETERROR, 28
EIO0000001152 11/2016
57

Manuels associés