Schneider Electric SoMachine - Fonctions de journalisation des données Mode d'emploi
Ajouter à Mes manuels38 Des pages
▼
Scroll to page 2
of
38
SoMachine EIO0000000486 04/2014 SoMachine Fonctions de journalisation des données Guide de la bibliothèque DataLogging EIO0000000486.03 04/2014 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 d’amélioration ou de correction ou avez relevé des erreurs dans 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 l’autorisation écrite expresse de Schneider Electric. Toutes les réglementations locales, régionales et nationales pertinentes doivent être respectées lors de l’installation et de l’utilisation de ce produit. Pour des raisons de sécurité et afin de garantir la conformité aux données système documentées, seul le fabricant est habilité à effectuer des réparations sur les composants. Lorsque des équipements sont utilisés pour des applications présentant des exigences techniques de sécurité, suivez les instructions appropriées. La non-utilisation du logiciel Schneider Electric ou d’un logiciel approuvé avec nos produits matériels peut entraîner des blessures, des dommages ou un fonctionnement incorrect. Le non-respect de cette consigne peut entraîner des lésions corporelles ou des dommages matériels. © 2014 Schneider Electric. Tous droits réservés. 2 EIO0000000486 04/2014 Table des matières Consignes de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . A propos de ce manuel . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 1 Journalisation des données . . . . . . . . . . . . . . . . . . . . . Présentation de la journalisation des données . . . . . . . . . . . . . . . . . . Configuration du journal des données. . . . . . . . . . . . . . . . . . . . . . . . . Gestion des fichiers de journalisation des données . . . . . . . . . . . . . . Informations supplémentaires sur le fichier de journalisation des données. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ajout des blocs fonction LogRecord et Dump . . . . . . . . . . . . . . . . . . . Création d’une chaîne WSTRING . . . . . . . . . . . . . . . . . . . . . . . . . . . . Annexes ......................................... Annexe A Représentation des fonctions et blocs fonction . . . . Différences entre une fonction et un bloc fonction . . . . . . . . . . . . . . . Utilisation d’une fonction ou d’un bloc fonction en langage IL . . . . . . . Utilisation d’une fonction ou d’un bloc fonction en langage ST . . . . . . Glossaire Index EIO0000000486 04/2014 ......................................... ......................................... 5 7 9 10 12 15 20 21 22 23 25 26 27 31 35 37 3 4 EIO0000000486 04/2014 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 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. EIO0000000486 04/2014 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 EIO0000000486 04/2014 A propos de ce manuel Présentation Objectif du document Ce guide présente les fonctions de journalisation des données utilisables par les contrôleurs qui prennent en charge les opérations de gestion de fichiers. Champ d’application Le présent document a été mis à jour suite au lancement de SoMachine V4.0. Information spécifique au produit AVERTISSEMENT PERTE DE CONTROLE Le concepteur d’un circuit de commande doit tenir compte des modes de défaillance potentiels des canaux de commande et, pour certaines fonctions de commande critiques, prévoir un moyen d’assurer la sécurité en maintenant un état sûr pendant et après la défaillance. Par exemple, l’arrêt d’urgence, l’arrêt en cas de surcourse, la coupure de courant et le redémarrage sont des fonctions de contrôle cruciales. Des canaux de commande séparés ou redondants doivent être prévus pour les fonctions de commande critique. Les liaisons de communication peuvent faire partie des canaux de commande du système. 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. EIO0000000486 04/2014 7 8 EIO0000000486 04/2014 SoMachine Journalisation des données EIO0000000486 04/2014 Chapitre 1 Journalisation des données Journalisation des données Introduction Ce document présente la fonctionnalité de journalisation des données utilisable par les automates qui prennent en charge les opérations de gestion de fichiers. Un journal des données est un fichier texte de chaînes définies par l’utilisateur contenant des informations sur les données d’application relatives à un processus ou une machine. Il est stocké sur l’automate. Vous pouvez le télécharger et l’ouvrir avec un éditeur de texte standard. Ces informations incluents des valeurs de variables intégrées et le texte qui leur est associé. L’indication de l’heure et de la date est une option supplémentaire. Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page Présentation de la journalisation des données 10 Configuration du journal des données 12 Gestion des fichiers de journalisation des données 15 Informations supplémentaires sur le fichier de journalisation des données 20 Ajout des blocs fonction LogRecord et Dump 21 Création d’une chaîne WSTRING 22 EIO0000000486 04/2014 9 Journalisation des données Présentation de la journalisation des données Présentation Vous pouvez contrôler et analyser les données d’application en examinant le fichier de journalisation des données (.log). Téléchargement de fichiers depuis SoMachine, le serveur Web du contrôleur ou à la demande du client FTP Application du contrôleur Mémoire du contrôleur Fichier journal BF Enregistrement Fichier journal Commande de vidage BF Vidage Mémoire tampon du fichier journal Journal des données x Journal des données y Journal des données z Vidage automatique Nouveau journal de données Forcer le vidage de la mémoire tampon JournalDonnées.log Journal des données 1 Journal des données 2 Journal des données 3 Journal des données 4 Journal des données 5 Journal des données 6 … La figure illustre une application composée de deux blocs fonction, LogRecord etDump. Le bloc fonction LogRecord écrit les données dans la mémoire tampon qui les transfère, lors de son vidage, au fichier de journalisation (.log) situé dans la mémoire du contrôleur. Le vidage de la mémoire tampon est automatiquement déclenché lorsqu’elle est pleine à 80 %. Ce vidage peut également être forcé à l’aide de la fonction Dump. En tant que client FTP standard, un PC peut accéder au fichier de journalisation des données dès lors que le contrôleur sert de serveur FTP. Vous pouvez également télécharger le fichier depuis SoMachine ou le serveur Web du contrôleur. NOTE : seuls les contrôleurs disposant de fonctionnalités de gestion des fichiers peuvent prendre en charge la journalisation des données. Reportez-vous au manuel de programmation de l’automate pour savoir s’il prend en charge la gestion des fichiers. Le logiciel ne vérifie pas si votre contrôleur est compatible avec les opérations de journalisation des données. 10 EIO0000000486 04/2014 Journalisation des données Exemple de fichier de journalisation des données (.log) Entries in File: 8; Last Entry: 8; 18/06/2009;14:12:33;cycle: 1182; 18/06/2009;14:12:35;cycle: 1292; 18/06/2009;14:12:38;cycle: 1450; 18/06/2009;14:12:40;cycle: 1514; 18/06/2009;14:12:41;cycle: 1585; 18/06/2009;14:12:43;cycle: 1656; 18/06/2009;14:14:20;cycle: 6346; 18/06/2009;14:14:26;cycle: 6636; Procédure de mise en œuvre Avant de commencer à écrire votre programme, vous devez d’abord déclarer et configurer les fichiers de journalisation dans votre application. EIO0000000486 04/2014 11 Journalisation des données Configuration du journal des données Ajouter un gestionnaire de journaux de données Avant de configurer la journalisation des données, ajoutez un gestionnaire de journaux de données à votre configuration : Étape 12 Action 1 Dans l’arborescence Outils, sélectionnez le nœud Application, cliquez sur le signe plus vert, puis sélectionnez Ajouter d’autres objets →Gestionnaire de journaux de données.... Résultat : la boîte de dialogue Add Data Log Manager s’ouvre. 2 Dans la boîte de dialogue Add Data Log Manager, cliquez sur Ajouter. Résultat : un nœud Gestionnaire de journaux de données apparaît sous le nœud Application. 3 Sélectionnez le nœud Gestionnaire de journaux de données, cliquez sur le signe plus vert, puis sélectionnez Journal de données.... Résultat : la boîte de dialogue Add DataLog s’ouvre. 4 Dans la zone de texte Data Logging File Name, saisissez le nom de fichier de votre journal de données et cliquez sur Ajouter. Résultat : le journal de données apparaît avec ce nom sous le nœud Gestionnaire de journaux de données et l’écran de configuration s’ouvre dans la vue éditeur au milieu de l’écran SoMachine Logic Builder. Remarque : il est impossible de modifier le nom du journal de données ultérieurement. 5 Définissez les paramètres du journal de données (voir page 13). 6 Répétez les étapes 3 à 5 pour créer d’autres journaux de données. EIO0000000486 04/2014 Journalisation des données Ecran de configuration Cet écran de configuration n’apparaît qu’une fois que vous avez ajouté un journal de données à votre configuration : Paramètres de configuration Paramètre Description Add Date Ces options permettent d’inscrire la date et l’heure de chaque enregistrement. Par exemple, une instance ajoutée le 10 juin 2009 à 14h:30 peut apparaître sous les formes suivantes : 10/06/2009, 06/10/2009 ou 20090610 ... à 14:30 ou 02:30:00 pm, etc. Add Time Max number of entries EIO0000000486 04/2014 Cette option permet de définir le nombre maximum d’enregistrements contenus dans le journal de données. La valeur doit être comprise entre 10 et 65 536. (Elle est de 10 000 par défaut.) 13 Journalisation des données Paramètre Description Mode Circular (par défaut) Lorsque la valeur Max number of entries est atteinte, les nouveaux enregistrements remplacent les anciens. Vous pouvez utiliser la première ligne du journal de données pour connaître la position du dernier enregistrement. Les cas suivants sont basés sur un fichier configuré pour un maximum de 10 enregistrements : Cas 1 : Entries in File: 8; Last Entry: 8 Explication : le nombre d’entrées dans le fichier est égal à la valeur de Last Entry. Les enregistrements sont classés du N° 1 (le plus ancien) au N° 8 (le plus récent). Cas 2 : Entries in File: 10; Last Entry: 5 Explication : le nombre d’entrées dans le fichier est supérieur à la valeur de Last Entry. Le fichier est saturé et chaque nouvel enregistrement replace le plus ancien. Les 10 enregistrements sont classés dans cet ordre (du plus ancien au plus récent) : 6, 7, 8, 9, 10, 1, 2, 3, 4, 5 Stop when full Lorsque la valeur Max number of entries est atteinte, la tentative d’enregistrement suivante renvoie un message d’erreur. Internal Buffer Size Configurez la taille de la mémoire tampon qui stocke les nouveaux enregistrements. Vous pouvez entrer une valeur comprise entre 1 et celle configurée dans Max number of entries. (Valeur par défaut : 10.) Max characters per entry (optimization) Définissez la longueur maximale de chaque entrée. Les valeurs autorisées vont de 10 à 255. (Valeur par défaut : 64.) La longueur maximale inclut les séparateurs et les éventuelles informations de date et heure. Des espaces supplémentaires sont ajoutés à la fin de la ligne pour obtenir le nombre de caractères définis. Separator between date, time Définissez le caractère à insérer entre les différents champs du journal des données. and record Un séparateur supplémentaire est ajouté après l’enregistrement. REMARQUE : pour chaque journal de données configuré, il existe une instance du bloc fonction LogRecord portant le même nom que ce journal de données. Cette instance gère toutes les données internes et assure la journalisation des données. 14 EIO0000000486 04/2014 Journalisation des données Gestion des fichiers de journalisation des données Introduction Un bloc fonction, LogRecord, est disponible pour écrire des entrées de chaîne de texte dans le fichier de journalisation des données. Ce bloc fonction stocke la chaîne d’entrée dans une mémoire tampon interne. Lorsque celle-ci atteint 80 % de sa capacité, les chaînes sont envoyées vers le fichier réel sur le contrôleur. En utilisant le bloc fonction Dump, vous pouvez forcer ce mécanisme. Lorsque l’alimentation est coupée, vous risquez de perdre les données conservées dans la mémoire tampon interne ou de rallonger la durée du cycle avant vidage. AVIS PERTE DE DONNEES Ne coupez pas l’alimentation du contrôleur tant que les informations de la mémoire tampon interne n’ont pas été déplacées vers le système de fichiers réel. Si les données enregistrées sont importantes pour l’application, configurez la taille de la mémoire tampon interne sur 1. Le non-respect de ces instructions peut provoquer des dommages matériels. Ajout d’un enregistrement à l’aide du Bloc Fonction LogRecord Ce bloc fonction permet de journaliser une chaîne UNICODE dans un journal spécifique : Paramètres d’entrée Paramètre Type Commentaire xExecute BOOL La fonction est exécutée lors du front montant de cette entrée. REMARQUE : lorsque l’entrée xExecute est définie sur TRUE lors du premier cycle de tâche en mode RUN après un redémarrage à froid ou à chaud, le front montant n’est pas détecté. EIO0000000486 04/2014 15 Journalisation des données Paramètre Type Commentaire wsRecord WSTRING Cette chaîne de texte UNICODE définie par l’utilisateur est écrite dans le fichier de journalisation des données. NOTE : Le type WSTRING (voir page 22) est disponible dans la bibliothèque Standard64.lib, insérée automatiquement lorsque le gestionnaire des journaux de données est ajouté à l’application. Paramètres de sortie Paramètre Type Commentaire xDone BOOL Cette sortie est définie sur TRUE lorsque l’enregistrement est sauvegardé dans la mémoire tampon interne sans messages d’erreur. xBusy BOOL Cette sortie reste sur TRUE tant que LogRecord est en cours d’exécution (jusqu’à la fin du transfert vers la mémoire tampon). xError BOOL Cette sortie est définie sur TRUE lorsque qu’une erreur survient (lorsque la mémoire tampon interne est pleine, par exemple). eError ERROR Cette sortie contient le code d’erreur lorsque xError prend la valeur TRUE : NO_ERROR INIT_ERROR DUMP_ERROR BUFFER_FULL_ERROR FILE_FULL_ERROR DUMP_INCOMPLETED INPUT_ERROR FILE_OPEN_ERROR FILE_SETPOINTER_ERROR FILE_WRITE_ERROR FILE_CLOSE_ERROR NOTE : Si la chaîne dépasse la longueur définie, elle est tronquée. Les sorties xDone et xError restent sur TRUE tant que xExecute prend la valeur TRUE. Lorsque xExecute est défini sur FALSE avant que xDone ou xError soit défini sur TRUE (xBusy prend toujours la valeur TRUE), l’un de ces paramètres passe à la valeur TRUE lorsque le bloc fonction est exécuté sur un seul cycle de contrôleur pour que l’application détecte cet achèvement : 1 1 16 Un cycle en tant que Ex prend la valeur FALSE. EIO0000000486 04/2014 Journalisation des données Le bloc fonction LogRecord inclut une instance correspondant à chaque fichier de journalisation des données configuré. La déclaration d’instance du bloc fonction étant automatique, il est inutile de déclarer explicitement les blocs fonction. Ajoutez le bloc fonction à votre unité organisationnelle de programme (POU) et définissez l’instance du fichier de journalisation appropriée avec la fonction d’aide à la saisie (voir Ajout de LogRecord (voir page 21)). Forçage d’enregistrement à l’aide de la méthode Dump Vous pouvez utiliser la méthode Dump (une méthode peut être considérée comme une sousfonction d’un bloc fonction, en l’occurrence LogRecord) pour forcer les données d’application à déplacer les enregistrements sauvegardés dans la mémoire tampon interne vers le fichier réel qui se trouve dans le système de fichiers du contrôleur : Paramètres Entrée Type Commentaire xExecute BOOL La fonction d’enregistrement est exécutée sur le front montant de cette entrée. NOTE : Lorsque xExecute est défini sur 1 lors du premier cycle de tâche du contrôleur, le front montant n’est pas détecté. Sortie Type Commentaire xDone BOOL Cette sortie est définie sur TRUE lorsque les enregistrements sont sauvegardés sans messages d’erreur. xBusy BOOL Cette sortie reste sur TRUE tant que Dump est en cours d’exécution (jusqu’à la fin de l’écriture du fichier). xError BOOL Cette sortie est définie sur TRUE lorsque qu’une erreur est détectée (lorsque le fichier de journalisation des données est plein, par exemple). EIO0000000486 04/2014 17 Journalisation des données Sortie Type Commentaire eError ERROR Cette sortie contient le code d’erreur lorsque xError prend la valeur TRUE : NO_ERROR INIT_ERROR DUMP_ERROR BUFFER_FULL_ERROR FILE_FULL_ERROR DUMP_INCOMPLETED INPUT_ERROR FILE_OPEN_ERROR FILE_SETPOINTER_ERROR FILE_WRITE_ERROR FILE_CLOSE_ERROR Reportez-vous à la section Ajout d’une méthode Dump (voir page 21) pour plus d’informations sur la mise en œuvre de la méthode Dump. Enregistrement automatique dans le fichier de journalisation des données Lorsque le bloc fonction LogRecord est utilisé et que la mémoire tampon interne est pleine à 80 %, le système déplace automatiquement les données contenues dans le tampon interne vers le fichier de journalisation des données. Le bloc fonction Dump permet de forcer ce déplacement sans attendre la limite de 80 %. Cette limite de 80 % permet de lancer le processus d’écriture avant que la mémoire tampon soit pleine et lors de l’ajout d’une nouvelle chaîne. Le tableau ci-après indique à quel stade s’effectue l’enregistrement dans le fichier pour une taille de tampon configurée donnée (80 % de la taille de la mémoire tampon arrondie à l’entier inférieur le plus proche) : 18 Taille du tampon Limite de 80 % Commentaire 1 1 La sauvegarde dans le fichier de journalisation des données est activée dès qu’un enregistrement est ajouté avec un emplacement supplémentaire disponible pour un nouvel enregistrement lors de la sauvegarde. 2 1 3 2 4 3 La sauvegarde dans le fichier de journalisation des données est activée lorsque la mémoire tampon est pleine à 80 % avec un emplacement supplémentaire disponible pour un nouvel enregistrement arrivant au cours de la sauvegarde. EIO0000000486 04/2014 Journalisation des données Taille du tampon Limite de 80 % Commentaire La sauvegarde dans le fichier de journalisation des données est activée lorsque la mémoire tampon est pleine à 80 % avec des emplacements supplémentaires disponibles pour de nouveaux enregistrements arrivant au cours de la sauvegarde. 5 4 6 4 7 5 8 6 ... Lors d’un enregistrement explicité (Dump) ou automatique (80 %), le fichier de journalisation des données est fermé après la sauvegarde de chaque enregistrement (ou groupe d’enregistrements) pour parer à une éventuelle coupure de courant externe. EIO0000000486 04/2014 19 Journalisation des données Informations supplémentaires sur le fichier de journalisation des données Propriétés du journal des données Vous pouvez accéder aux propriétés du journal des données après avoir configuré le bloc fonction. Les propriétés LogRecord sont des variables supplémentaires (lecture seule) automatiquement associées à l’instance LogRecord, qui fournissent des informations sur l’état du fichier de journalisation des données : Variables Type Description <Nom de fichier journal>.NumberOfRecords UDINT Nombre d’enregistrements contenus dans le fichier de journalisation des données. <Nom de fichier journal>.NumberOfBufferedRecords UINT Nombre d’enregistrements contenus dans la mémoire tampon. <Nom de fichier journal>.FileStatus FILE_STATUS Informations d’état sur le fichier de journalisation des données (type FILE_STATUS) : 0: OK 1: FILE_FULL 2: NO_WRITE_ACCESS 3: FILE_NOT_EXISTS <Nom de fichier journal>.DumpInProgress BOOL TRUE lorsque les enregistrements mis en mémoire tampon sont stockés dans le fichier de journalisation des données. Recommandation Le bloc fonction LogRecord nécessite bien plus que quinze cycles d’intervalle après avoir été activé (avec xExecute) pour pouvoir enregistrer un enregistrement dans le fichier journal. Par conséquent, il est vivement recommandé d’utiliser ce bloc fonction dans une tâche FAST : Type de tâche Temps minimum nécessaire au stockage de l’enregistrement Cyclique 20 300 ms Cyclique 1 15 ms : vivement recommandé Evénement 20 Intervalle (ms) Nécessite 15 événements : pas recommandé EIO0000000486 04/2014 Journalisation des données Ajout des blocs fonction LogRecord et Dump Vue d’ensemble Pour ajouter le bloc fonction LogRecord et la méthode Dump à votre projet, procédez comme suit : Ajout de LogRecord Ajoutez le bloc fonction LogRecord à votre projet : Etape Action Commentaire 1 Insérez un bloc fonction LogRecord dans votre POU avec Input Assistant ou en entrant directement LogRecord. Dans la boîte de dialogue Input Assistant, effectuez les sélections suivantes : Catégories : Function Blocks (Libraries) Eléments : {} SEDL →LogRecord (éléments en représentation structurée) 2 Cliquez sur OK ou appuyez sur ENTER. Le bloc fonction LogRecord est désormais intégré à votre projet. 3 Sélectionnez le fichier de journalisation des données approprié comme nom d’instance LogRecord. Dans l’Aide à la saisie, sélectionnez le fichier de journalisation des données approprié ou entrez son nom. 4 Configurez les entrées et sorties comme d’habitude. Reportez-vous à la description des paramètres de ce bloc fonction (voir page 15). Ajout de la méthode Dump Ajoutez la méthode Dump à votre projet : Etape Action Commentaire 1 Insérez une méthode Dump dans votre POU avec Input Assistant ou en entrant directement LogRecord.Dump. Dans la boîte de dialogue Input Assistant, effectuez les sélections suivantes : Catégories : Function Blocks (Libraries) Items: SEDL →LogRecord →Dump (éléments en représentation structurée) 2 Cliquez sur OK ou appuyez sur ENTER. La méthode LogRecord.Dump est désormais intégrée à votre projet. 3 Sélectionnez le fichier de journalisation des données approprié comme nom d’instance LogRecord. Dans l’Input Assistant, sélectionnez le fichier de journalisation des données approprié ou entrez son nom. 4 Configurez les entrées et sorties comme d’habitude. Reportez-vous à la description des paramètres de ce bloc fonction (voir page 17). EIO0000000486 04/2014 21 Journalisation des données Création d’une chaîne WSTRING Vue d’ensemble L’entrée wsRecord du bloc fonction LogRecord est du type WSTRING (wide string). Pour créer la chaîne de journal, vous devez d’abord ajouter la bibliothèque Standard64 à votre application et utiliser des fonctions de chaîne étendue. Exemple La figure ci-après illustre la création d’une chaîne WSTRING qui inclut une valeur de variable : 22 EIO0000000486 04/2014 SoMachine EIO0000000486 04/2014 Annexes EIO0000000486 04/2014 23 24 EIO0000000486 04/2014 SoMachine Représentation des fonctions et blocs fonction EIO0000000486 04/2014 Annexe A Représentation des fonctions et blocs fonction Représentation des fonctions et blocs fonction Présentation Chaque fonction peut être représentée dans les langages suivants : IL : (Instruction List) liste d’instructions ST : (Structured Text) littéral structuré LD : (Ladder Diagram) schéma à contacts FBD : Function Block Diagram (Langage à blocs fonction) CFC : Continuous Function Chart (Diagramme fonctionnel continu) Ce chapitre fournit des exemples de représentations de fonctions et blocs fonction et explique comment les utiliser dans les langages IL et ST. Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page Différences entre une fonction et un bloc fonction 26 Utilisation d’une fonction ou d’un bloc fonction en langage IL 27 Utilisation d’une fonction ou d’un bloc fonction en langage ST 31 EIO0000000486 04/2014 25 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 : 26 EIO0000000486 04/2014 Représentation des fonctions et blocs fonction Utilisation d’une fonction ou d’un bloc fonction en langage IL Informations générales Cette partie explique comment mettre en œuvre une fonction et un bloc fonction en langage IL. Les fonctions IsFirstMastCycle et SetRTCDrift, ainsi que le bloc fonction TON, sont utilisés à titre d’exemple pour illustrer les mises en œuvre. Utilisation d’une fonction en langage IL La procédure suivante explique comment insérer une fonction en langage IL : Etape Action 1 Ouvrez ou créez une POU en langage IL (Instruction List, ou liste d’instructions). NOTE : La procédure de création d’une POU n’est pas détaillée ici. Pour plus d’informations, reportez-vous à la section Ajout, déclaration et appel de POU. 2 Créez les variables nécessaires à la fonction. 3 Si la fonction possède une ou plusieurs entrées, chargez la première entrée en utilisant l’instruction LD. 4 Insérez une nouvelle ligne en dessous et : saisissez le nom de la fonction dans la colonne de l’opérateur (champ de gauche), ou utilisez l’Aide à la saisie pour sélectionner la fonction (sélectionnez Insérer l’appel de module dans le menu contextuel). 5 Si la fonction a plus d’une entrée et que l’Aide à la saisie est utilisé, le nombre requis de lignes est automatiquement créé avec ??? dans les champs situés à droite. Remplacez les ??? par la valeur ou la variable appropriée compte tenu de l’ordre des entrées. 6 Insérez une nouvelle ligne pour stocker le résultat de la fonction dans la variable appropriée : saisissez l’instruction ST dans la colonne de l’opérateur (champ de gauche) et 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 EIO0000000486 04/2014 27 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 SoMachine Exemple IL d’une fonction sans paramètre d’entrée : IsFirstMastCycle Exemple IL d’une fonction avec des paramètres d’entrée : SetRTCDrift 28 EIO0000000486 04/2014 Représentation des fonctions et blocs fonction Utilisation d’un bloc fonction en langage IL La procédure suivante explique comment insérer un bloc fonction en langage IL : Etape Action 1 Ouvrez ou créez une POU en langage IL (Instruction List, ou liste d’instructions). NOTE : La procédure de création d’une POU n’est pas détaillée ici. Pour plus d’informations, reportez-vous à la section Ajout, déclaration et appel de POU. 2 Créez les variables nécessaires au bloc fonction (y compris le nom de l’instance). 3 L’appel de blocs fonction nécessite l’utilisation d’une instruction CAL : Utilisez l’Aide à la saisie pour sélectionner le bloc fonction (cliquez avec le bouton droit et sélectionnez Insérer l’appel de module dans le menu contextuel). L’instruction CAL et les E/S nécessaires sont automatiquement créées. Chaque paramètre (E/S) est une instruction : Les valeurs des entrées sont définies à l’aide de « := ». Les valeurs des sorties sont définies à l’aide de « => ». 4 Dans le champ CAL de droite, remplacez les ??? par le nom de l’instance. 5 Remplacez les autres ??? par une variable ou une valeur immédiate appropriée. Pour illustrer la procédure, utilisons le bloc fonction TON représenté graphiquement ci-après : Bloc fonction Représentation graphique TON En langage IL, le nom du bloc fonction est utilisé directement dans la colonne de l’opérateur : EIO0000000486 04/2014 29 Représentation des fonctions et blocs fonction Bloc fonction Représentation dans l’éditeur IL de POU de SoMachine TON 30 EIO0000000486 04/2014 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 une POU en langage ST (Structured Text ou Littéral structuré). NOTE : La procédure de création d’une POU n’est pas détaillée ici. Pour plus d’informations, reportez-vous à la section Ajout, déclaration et appel de POU. 2 Créez les variables nécessaires à la fonction. 3 Utilisez la syntaxe générale dans l’éditeur ST de POU pour la représentation en langage ST d’une fonction. La syntaxe générale est la suivante : RésultatFonction:= NomFonction(VarEntrée1, VarEntrée2, … VarEntréex); Pour illustrer la procédure, utilisons la fonction SetRTCDrift représentée graphiquement ciaprès : Fonction Représentation graphique SetRTCDrift La représentation en langage ST de cette fonction est la suivante : Fonction Représentation dans l’éditeur ST de POU de SoMachine 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); EIO0000000486 04/2014 31 Représentation des fonctions et blocs fonction Utilisation d’un bloc fonction en langage ST La procédure suivante explique comment insérer un bloc fonction en langage ST : Etape Action 1 Ouvrez ou créez une POU en langage ST (Structured Text ou Littéral structuré). NOTE : La procédure de création d’une POU n’est pas détaillée ici. Pour plus d’informations sur l’ajout, la déclaration et l’appel de POU, reportez-vous à la documentation 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 32 EIO0000000486 04/2014 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 SoMachine TON EIO0000000486 04/2014 33 Représentation des fonctions et blocs fonction 34 EIO0000000486 04/2014 SoMachine Glossaire EIO0000000486 04/2014 Glossaire C CFC Acronyme de continuous function chart, diagramme fonctionnel continu. Langage de programmation graphique (extension de la norme IEC 61131-3) basé sur le langage de diagramme à blocs fonction et qui fonctionne comme un diagramme de flux. Toutefois, il n’utilise pas de réseaux et le positionnement libre des éléments graphiques est possible, ce qui permet les boucles de retour. Pour chaque bloc, les entrées se situent à gauche et les sorties à droite. Vous pouvez lier les sorties de blocs aux entrées d’autres blocs pour créer des expressions complexes. F FB Acronyme de function block, bloc fonction. Mécanisme de programmation commode qui consolide un groupe d’instructions de programmation visant à effectuer une action spécifique et normalisée telle que le contrôle de vitesse, le contrôle d’intervalle ou le comptage. Un bloc fonction peut comprendre des données de configuration, un ensemble de paramètres de fonctionnement interne ou externe et généralement une ou plusieurs entrées et sorties de données. FBD Acronyme de function block diagram, diagramme à blocs fonction. Un des 5 langages de programmation de logique ou de contrôle pris en charge par la norme IEC 61131-3 pour les systèmes de contrôle. 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. I IL 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). INT Abréviation de integer), nombre entier codé sur 16 bits. EIO0000000486 04/2014 35 Glossaire L LD Acronyme de ladder diagram, schéma à contacts. Représentation graphique des instructions d’un programme de contrôleur, avec des symboles pour les contacts, les bobines et les blocs dans une série de réseaux exécutés séquentiellement par un contrôleur (voir IEC 61131-3). O octet Type codé sur 8 bits, de 16#00 à 16#FF en représentation hexadécimale. P POU Acronyme de program organization unit, unité organisationnelle de programme. Déclaration de variables dans le code source et jeu d’instructions correspondant. Les POUs facilitent la réutilisation modulaire de programmes logiciels, de fonctions et de blocs fonction. Une fois déclarées, les POUs sont réutilisables. S ST Acronyme de structured text, texte structuré. Langage composé d’instructions complexes et d’instructions imbriquées (boucles d’itération, exécutions conditionnelles, fonctions). Le langage ST est conforme à la norme IEC 61131-3. V variable Unité de mémoire qui est adressée et modifiée par un programme. 36 EIO0000000486 04/2014 SoMachine Index EIO0000000486 04/2014 Index B N Bloc Fonction Dump, 17 LogRecord, 15 NumberOfBufferedRecords Variables, 20 NumberOfRecords Variables, 20 D Dump Bloc Fonction, 17 DumpInProgress Variables, 20 E ERROR Type de paramètre de sortie, 16, 18 F FILE_STATUS Type, 20 FileStatus Variables, 20 fonctions différences entre une fonction et un bloc fonction, 26 utilisation d’une fonction ou d’un bloc fonction en langage IL, 27 utilisation d’une fonction ou d’un bloc fonction en langage ST, 31 T Type FILE_STATUS, 20 Type de paramètre de sortie ERROR, 16, 18 V Variables DumpInProgress, 20 FileStatus, 20 NumberOfBufferedRecords, 20 NumberOfRecords, 20 J journalisation des données, 9 L LogRecord Bloc Fonction, 15 EIO0000000486 04/2014 37 Index 38 EIO0000000486 04/2014