▼
Scroll to page 2
of
57
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