▼
Scroll to page 2
of
72
Twido Emulation Support EIO0000001693 11/2016 Twido Emulation Support Guide de la bibliothèque EIO0000001693.02 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 EIO0000001693 11/2016 Table des matières Consignes de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . A propos de ce manuel. . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 1 Informations générales sur la bibliothèque TwidoEmulationSupport . . . . . . . . . . . . . . . . . . . . . . . . . Informations générales sur la bibliothèque TwidoEmulationSupport. . Chapitre 2 Blocs fonction standard . . . . . . . . . . . . . . . . . . . . . . . . . FB_Timer : temporisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FB_Counter : compteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FB_FiFo et FB_LiFo : bloc fonction Registre . . . . . . . . . . . . . . . . . . FB_ShiftBitRegister : registre de bits à décalage . . . . . . . . . . . Chapitre 3 Blocs fonction avancés . . . . . . . . . . . . . . . . . . . . . . . . . . FB_ScheduleBlock : bloc fonction ScheduleBlock . . . . . . . . . . . . . FB_Drum : programmateur cyclique . . . . . . . . . . . . . . . . . . . . . . . . . . FB_StepCounter : compteur d'étapes . . . . . . . . . . . . . . . . . . . . . . . FB_PID : bloc fonction PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 4 Blocs fonction de communication . . . . . . . . . . . . . . . . . . FB_EXCH : bloc fonction d'échange . . . . . . . . . . . . . . . . . . . . . . . . . . FB_ReadVar : bloc fonction de lecture de données . . . . . . . . . . . . . . FB_WriteVar : bloc fonction d'écriture de données . . . . . . . . . . . . . FB_WriteReadVar : bloc fonction de lecture et d'écriture. . . . . . . . . FB_SendRecvMsg : bloc fonction d'envoi et de réception de message Chapitre 5 Fonctions Twido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions Twido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Glossaire Index EIO0000001693 11/2016 ......................................... ......................................... 5 9 13 13 15 16 19 21 23 25 26 29 33 35 39 40 43 46 48 51 53 53 69 71 3 4 EIO0000001693 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. EIO0000001693 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. AVANT DE COMMENCER N'utilisez pas ce produit sur les machines non pourvues de protection efficace du point de fonctionnement. L'absence de ce type de protection sur une machine présente un risque de blessures graves pour l'opérateur. AVERTISSEMENT EQUIPEMENT NON PROTEGE N'utilisez pas ce logiciel ni les automatismes associés sur des appareils non équipés de protection du point de fonctionnement. N'accédez pas aux machines pendant leur fonctionnement. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Cet automatisme et le logiciel associé permettent de commander des processus industriels divers. Le type ou le modèle d'automatisme approprié pour chaque application dépendra de facteurs tels que la fonction de commande requise, le degré de protection exigé, les méthodes de production, des conditions inhabituelles, la législation, etc. Dans certaines applications, plusieurs processeurs seront nécessaires, notamment lorsque la redondance de sauvegarde est requise. Vous seul, en tant que constructeur de machine ou intégrateur de système, pouvez connaître toutes les conditions et facteurs présents lors de la configuration, de l'exploitation et de la maintenance de la machine, et êtes donc en mesure de déterminer les équipements automatisés, ainsi que les sécurités et verrouillages associés qui peuvent être utilisés correctement. Lors du choix de l'automatisme et du système de commande, ainsi que du logiciel associé pour une application particulière, vous devez respecter les normes et réglementations locales et nationales en vigueur. Le document National Safety Council's Accident Prevention Manual (reconnu aux Etats-Unis) fournit également de nombreuses informations utiles. Dans certaines applications, telles que les machines d'emballage, une protection supplémentaire, comme celle du point de fonctionnement, doit être fournie pour l'opérateur. Elle est nécessaire si les mains ou d'autres parties du corps de l'opérateur peuvent entrer dans la zone de point de pincement ou d'autres zones dangereuses, risquant ainsi de provoquer des blessures graves. Les produits logiciels seuls, ne peuvent en aucun cas protéger les opérateurs contre d'éventuelles blessures. C'est pourquoi le logiciel ne doit pas remplacer la protection de point de fonctionnement ou s'y substituer. 6 EIO0000001693 11/2016 Avant de mettre l'équipement en service, assurez-vous que les dispositifs de sécurité et de verrouillage mécaniques et/ou électriques appropriés liés à la protection du point de fonctionnement ont été installés et sont opérationnels. Tous les dispositifs de sécurité et de verrouillage liés à la protection du point de fonctionnement doivent être coordonnés avec la programmation des équipements et logiciels d'automatisation associés. NOTE : La coordination des dispositifs de sécurité et de verrouillage mécaniques/électriques du point de fonctionnement n'entre pas dans le cadre de cette bibliothèque de blocs fonction, du Guide utilisateur système ou de toute autre mise en œuvre référencée dans la documentation. DEMARRAGE ET TEST Avant toute utilisation de l'équipement de commande électrique et des automatismes en vue d'un fonctionnement normal après installation, un technicien qualifié doit procéder à un test de démarrage afin de vérifier que l'équipement fonctionne correctement. Il est essentiel de planifier une telle vérification et d'accorder suffisamment de temps pour la réalisation de ce test dans sa totalité. AVERTISSEMENT RISQUES INHERENTS AU FONCTIONNEMENT DE L'EQUIPEMENT Assurez-vous que toutes les procédures d'installation et de configuration ont été respectées. Avant de réaliser les tests de fonctionnement, retirez tous les blocs ou autres cales temporaires utilisés pour le transport de tous les dispositifs composant le système. Enlevez les outils, les instruments de mesure et les débris éventuels présents sur l'équipement. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Effectuez tous les tests de démarrage recommandés dans la documentation de l'équipement. Conservez toute la documentation de l'équipement pour référence ultérieure. Les tests logiciels doivent être réalisés à la fois en environnement simulé et réel. Vérifiez que le système entier est exempt de tout court-circuit et mise à la terre temporaire non installée conformément aux réglementations locales (conformément au National Electrical Code des Etats-Unis, par exemple). Si des tests diélectriques sont nécessaires, suivez les recommandations figurant dans la documentation de l'équipement afin d'éviter de l'endommager accidentellement. Avant de mettre l'équipement sous tension : Enlevez les outils, les instruments de mesure et les débris éventuels présents sur l'équipement. Fermez le capot du boîtier de l'équipement. Retirez toutes les mises à la terre temporaires des câbles d'alimentation entrants. Effectuez tous les tests de démarrage recommandés par le fabricant. EIO0000001693 11/2016 7 FONCTIONNEMENT ET REGLAGES Les précautions suivantes sont extraites du document NEMA Standards Publication ICS 7.1-1995 (la version anglaise prévaut) : Malgré le soin apporté à la conception et à la fabrication de l'équipement ou au choix et à l'évaluation des composants, des risques subsistent en cas d'utilisation inappropriée de l'équipement. Il arrive parfois que l'équipement soit déréglé accidentellement, entraînant ainsi un fonctionnement non satisfaisant ou non sécurisé. Respectez toujours les instructions du fabricant pour effectuer les réglages fonctionnels. Les personnes ayant accès à ces réglages doivent connaître les instructions du fabricant de l'équipement et les machines utilisées avec l'équipement électrique. Seuls ces réglages fonctionnels, requis par l'opérateur, doivent lui être accessibles. L'accès aux autres commandes doit être limité afin d'empêcher les changements non autorisés des caractéristiques de fonctionnement. 8 EIO0000001693 11/2016 A propos de ce manuel Présentation Objectif du document Ce document décrit la bibliothèque TwidoEmulationSupport, qui fournit les fonctions et blocs fonction permettant de convertir les projets de SoMachine Basic / TwidoSoft / TwidoSuite en une mise en œuvre compatible dans SoMachine. Pour plus d'informations sur Twido, consultez Conversion de projets SoMachine Basic et Twido (voir SoMachine, Guide de programmation) et les listes Ensembles de fonctionnalités du contrôleur relatives à la migration (voir SoMachine, Guide de programmation). Champ d'application Ce document a été actualisé pour le lancement de SoMachine Basic V1.5. Ce document a été actualisé pour le lancement de SoMachine V4.2. Document(s) à consulter Titre de documentation Référence SoMachine - Guide de programmation EIO0000000067 (ENG) ; EIO0000000069 (FRE) ; EIO0000000068 (GER) ; EIO0000000071 (SPA) ; EIO0000000070 (ITA) ; EIO0000000072 (CHS) SoMachine Basic - Fonctions génériques - Guide de la bibliothèque EIO0000001474 (ENG); EIO0000001475 (FRE) ; EIO0000001476 (GER) ; EIO0000001477 (SPA) ; EIO0000001478 (ITA) ; EIO0000001479 (CHS) SoMachine Basic - Guide d'utilisation EIO0000001693 11/2016 EIO0000001354 (ENG) ; EIO0000001356 (FRE) ; EIO0000001410 (GER) ; EIO0000001357 (SPA) ; EIO0000001358 (ITA) ; EIO0000001359 (CHS) 9 Titre de documentation Référence SoMachine - Fonctions de lecture/écriture Modbus et ASCII - Guide de la bibliothèque PLCCommunication EIO0000000361 (ENG) ; EIO0000000742 (FRE) ; EIO0000000743 (GER) ; EIO0000000744 (SPA) ; EIO0000000745 (ITA) ; EIO0000000746 (CHS) Vous pouvez télécharger ces publications et autres informations techniques depuis notre site web à l'adresse : http://download.schneider-electric.com 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. 10 EIO0000001693 11/2016 AVERTISSEMENT FONCTIONNEMENT INATTENDU DE L’EQUIPEMENT N'utilisez que le logiciel approuvé par Schneider Electric pour faire fonctionner cet équipement. Mettez à jour votre programme d'application chaque fois que vous modifiez la configuration matérielle physique. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. 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 : 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é EIO0000001693 11/2016 11 Norme Description 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 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. 12 EIO0000001693 11/2016 Twido Emulation Support Informations générales sur la bibliothèque TwidoEmulationSupport EIO0000001693 11/2016 Chapitre 1 Informations générales sur la bibliothèque TwidoEmulationSupport Informations générales sur la bibliothèque TwidoEmulationSupport Informations générales sur la bibliothèque TwidoEmulationSupport Conversion de blocs fonction Les options suivantes sont fournies pour la conversion de blocs fonction : Le bloc fonction est converti en un type qui existe déjà dans SoMachine, par exemple dans la bibliothèque standard. Pour plus d'informations sur les bibliothèques standard, reportez-vous à la rubrique SoMachine / CoDeSys Libraries/ Standard Library de l'aide en ligne. Un nouveau bloc fonction entièrement compatible avec SoMachine Basic est mis en œuvre et fait partie de la bibliothèque TwidoEmulationSupport. Pour les fonctions et blocs fonction non conçus pour être utilisés dans un projet SoMachine, le convertisseur peut générer un type sans mise en œuvre. Pour plus d'informations sur la conversion de blocs fonction, consultez Conversion de projets SoMachine Basic et Twido (voir SoMachine, Guide de programmation). EIO0000001693 11/2016 13 Informations générales sur la bibliothèque TwidoEmulationSupport 14 EIO0000001693 11/2016 Twido Emulation Support Blocs fonction standard EIO0000001693 11/2016 Chapitre 2 Blocs fonction standard Blocs fonction standard Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page FB_Timer : temporisateur 16 FB_Counter : compteur 19 FB_FiFo et FB_LiFo : bloc fonction Registre 21 FB_ShiftBitRegister : registre de bits à décalage 23 EIO0000001693 11/2016 15 Blocs fonction standard FB_Timer : temporisateur Vue d'ensemble Le graphique suivant présente le schéma d'affectation des broches du bloc fonction FB_Timer : Le bloc fonction %TM dans SoMachine Basic peut configurer 3 types de temporisateur : TON (Timer On-Delay, temporisateur de délai à l'activation) : ce type de temporisateur permet de réguler les actions de délai à l'activation. TOF (Timer Off-Delay, temporisateur de délai à la désactivation) : ce type de temporisateur permet de réguler les actions de délai à la désactivation. TP (Timer-Pulse, temporisateur de pulsations) : ce type de temporisateur permet de générer des impulsions d'une durée précise. Pour plus d'informations consultez l'aide en ligne de CoDeSys dans SoMachine : CoDesSys- Libraries/Standard Library/Timer. NOTE : lorsque le type de temporisateur est modifié en ligne et que i_xEnable est TRUE, l'ancien type de temporisateur sélectionné est réinitialisé et le nouveau type de temporisateur démarre. Le comportement des sorties des blocs fonction est conforme au nouveau temporisateur sélectionné. Description des variables d'E/S La bibliothèque TwidoEmulationSupport fournit la fonction FB_Timer, qui appelle le type de temporisateur TON, TOF ou TP selon l'entrée i_etTimerType. La valeur TimeBase indiquée permet de calculer la durée prédéfinie. Le tableau décrit les variables d'entrée du bloc fonction dans la bibliothèque TwidoEmulationSupport : 16 Entrée Type de données Description i_xEnable BOOL Le front montant commence à compter q_iCurrentValue. i_iPreset INT Valeur initiale de la valeur de présélection (0 à 32 767) i_etTimerType ET_TimerType Indique le type de temporisateur : TON, TOF ou TP EIO0000001693 11/2016 Blocs fonction standard Entrée Type de données Description i_etTimeBase ET_TimerTimeBases Base de temps de 1 ms, 10 ms, 100 ms, 1 s, 1 min Par défaut : 1 min i_etMaxVal ET_TimerCounterMaxVal Valeur maximale i_xRetentive BOOL Comportement du temporisateur : TRUE : le temporisateur conserve la valeur de la sortie q_iCurrentValue lorsqu'il est désactivé et continue de compter à partir de la valeur précédente lorsqu'il est réactivé. FALSE : le temporisateur réinitialise la sortie q_iCurrentValue lorsqu'il est désactivé. Le type de données de la variable d'entrée i_etTimerType est : TYPE ET_TimeType: ( TON := 1, // TOF := 2, // TP := 3, // ) INT; END_TYPE On-delay Timer Off-delay Timer Pulse Timer NOTE : Si une valeur non valide est transmise à i_etTimerType, q_xOutput conserve la valeur FALSE et q_iCurrentValue reste à 0. Le type de données de la variable d'entrée i_etTimeBase est : TYPE ET_TimerTimeBases: ( tb1MS := 1, // 1 millisecond time base tb10MS := 2, // 10 millisecond time base tb100MS := 3, // 100 millisecond time base tb1S := 4, // 10 second time base tb1M := 5, // 1 minute time base ) INT; ET_TYPE Le type de données de la variable d'entrée i_etMaxVal est : TYPE ET_TimerCounterMaxVal: ( Val9999 := 0, // Value Val32767 := 1 // Value ) INT END_TYPE EIO0000001693 11/2016 9999 3267 17 Blocs fonction standard Le tableau décrit les variables de sortie du bloc fonction dans la bibliothèque TwidoEmulationSupport : 18 Sortie Type de données Description q_xOutput BOOL Sortie du temporisateur q_iCurrentValue INT Temps écoulé EIO0000001693 11/2016 Blocs fonction standard FB_Counter : compteur Présentation Le bloc fonction FB_Counter permet de compter ou de décompter des événements. Le graphique suivant présente le schéma d'affectation des broches du bloc fonction FB_Counter : Description des variables d'E/S La bibliothèque TwidoEmulationSupport fournit un bloc fonction FB_Counter qui appelle le bloc fonction CTUD. Le comportement standard de CTUD est étendu par un traitement des valeurs de présélection et un comportement de dépassement conforme à Twido. Pour plus d'informations sur les compteurs, consultez l'aide en ligne de CoDeSys dans SoMachine Standard Library / Counter. Le tableau décrit les variables d'entrée du bloc fonction dans la bibliothèque TwidoEmulationSupport : Entrée Type de données Description i_xLoad BOOL Règle la valeur courante sur la valeur de présélection. i_xReset BOOL Réinitialise l'entrée. i_xCountUp BOOL Comptage croissant de l'entrée. i_xCountDown BOOL Comptage décroissant de l'entrée. i_iPreset INT Valeur de présélection Par défaut : 32767 i_etMaxVal ET_TimerCounterMaxVal Valeur maximale du compteur et de présélection EIO0000001693 11/2016 19 Blocs fonction standard Le tableau décrit les variables de sortie du bloc fonction dans la bibliothèque TwidoEmulationSupport : 20 Sortie Type de données Description q_xUnderflow BOOL Comptage décroissant du dépassement par valeur inférieure / vide q_xDone BOOL q_iCounterValue = i_iPreset / présélection atteinte / terminé q_iCounterValue INT Valeur courante (0 à 32767) q_xOverflow BOOL Comptage croissant du dépassement par valeur supérieure / plein EIO0000001693 11/2016 Blocs fonction standard FB_FiFo et FB_LiFo : bloc fonction Registre Présentation Le bloc fonction registre dans SoMachine Basic possède 2 types : File d'attente (FIFO) Pile (LIFO) Les graphiques suivants présentent les schémas d'affectation des broches des blocs fonction FB_FiFo et FB_LiFo : Description des variables d'E/S Le tableau décrit les variables d'entrée/sortie du bloc fonction dans la bibliothèque TwidoEmulationSupport : Entrée/sortie Type de données Description iq_iInput INT Mot d'entrée (variable en lecture et écriture) iq_iOutput INT Mot de sortie (variable en lecture et écriture) Le tableau décrit les variables d'entrée du bloc fonction dans la bibliothèque TwidoEmulationSupport : Entrée Type de données Description i_xReset BOOL L'entrée de réinitialisation initialise le registre à l'état 1. i_xStorage BOOL L'entrée de stockage stocke le contenu dans le registre, en cas de front montant. EIO0000001693 11/2016 21 Blocs fonction standard Entrée Type de données Description i_xRetrieve BOOL L'entrée de récupération charge un mot de données du registre, en cas de front montant. Le tableau décrit les variables de sortie du bloc fonction dans la bibliothèque TwidoEmulationSupport : 22 Sortie Type de données Description q_xEmpty BOOL Cette sortie indique que le registre est vide. q_xFull BOOL Cette sortie indique que le registre est plein. EIO0000001693 11/2016 Blocs fonction standard FB_ShiftBitRegister : registre de bits à décalage Présentation Le bloc fonction FB_ShiftBitRegister provoque un décalage vers la gauche ou la droite des bits de données binaires. Il ne s'agit pas d'un décalage de bits circulaire. Les bits de dépassement sont perdus. Le graphique suivant présente le schéma d'affectation des broches du bloc fonction FB_ShiftBitRegister : Description des variables d'E/S Le tableau décrit les variables d'entrée/sortie du bloc fonction dans la bibliothèque TwidoEmulationSupport : Entrée/sortie Type de données Description iq_iRegister (16 bits) INT Bit de registre Le tableau décrit les variables d'entrée du bloc fonction dans la bibliothèque TwidoEmulationSupport : Entrée Type de données Description i_xReset BOOL L'entrée de réinitialisation remet tous les bits à 0. i_xShiftLeft BOOL En cas de front montant, décale un bit de registre vers la gauche. i_xShiftRight BOOL En cas de front montant, décale un bit de registre vers la droite. EIO0000001693 11/2016 23 Blocs fonction standard 24 EIO0000001693 11/2016 Twido Emulation Support Blocs fonction avancés EIO0000001693 11/2016 Chapitre 3 Blocs fonction avancés Blocs fonction avancés Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page FB_ScheduleBlock : bloc fonction ScheduleBlock 26 FB_Drum : programmateur cyclique 29 FB_StepCounter : compteur d'étapes 33 FB_PID : bloc fonction PID 35 EIO0000001693 11/2016 25 Blocs fonction avancés FB_ScheduleBlock : bloc fonction ScheduleBlock Vue d'ensemble Le bloc fonction FB_ScheduleBlock sert à contrôler les actions à un mois, un jour et une heure définis. Le graphique suivant présente le schéma d'affectation des broches du bloc fonction FB_ScheduleBlock : Description des variables d'E/S Le tableau décrit les variables d'entrée du bloc fonction dans la bibliothèque TwidoEmulationSupport : 26 Entrée Type de données Description i_xEnable BOOL Activez le bloc fonction FB_ScheduleBlock. i_etStartMonth ET_Month Mois auquel initialiser la sortie. (janvier à décembre). i_etEndMonth ET_Month Mois auquel réinitialiser la sortie. (janvier à décembre). i_uiStartDay UINT [1 à 31] Jour de début d'activation i_uiEndDay UINT [1 à 31] Jour de fin d'activation i_uiStartHour UINT [0 à 23] Heure de début d'activation i_uiEndHour UINT [0 à 23] Heure de fin d'activation EIO0000001693 11/2016 Blocs fonction avancés Entrée Type de données Description i_uiStartMinute UINT [0 à 59] Minute de début d'activation i_uiEndMinute UINT [0 à 59] Minute de fin d'activation i_xMonday BOOL Exécuter l'activité le lundi i_xTuesday BOOL Exécuter l'activité le mardi i_xWednesday BOOL Exécuter l'activité le mercredi i_xThursday BOOL Exécuter l'activité le jeudi i_xFriday BOOL Exécuter l'activité le vendredi i_xSaturday BOOL Exécuter l'activité le samedi i_xSunday BOOL Exécuter l'activité le dimanche Le tableau décrit les variables de sortie du bloc fonction dans la bibliothèque TwidoEmulationSupport : Sortie Type de données Description q_xOutput BOOL Cette sortie est mise à 1 lorsque les paramètres d'horodatage courants sont compris entre les paramètres de début et de fin de la période active. q_etScheduleBlockDiag ET_ScheduleBlockDiag Code de diagnostic ET_ScheduleBlockDiag. q_sMsg String Message de diagnostic EIO0000001693 11/2016 27 Blocs fonction avancés La structure de données DTU.ERROR (ENUM) décrit les erreurs qui se produisent lors de l'utilisation des fonctions de la bibliothèque CAA_DtUtility. Dans cette bibliothèque, la plage de codes d'erreur 5750-5799 est réservée à l'enregistrement du préfixe des bibliothèques. Pour plus d'informations, consultez CAA libraries/CAA_DTUtil.library/Data types/Enumerations/DTU.ERROR (ENUM). 28 EIO0000001693 11/2016 Blocs fonction avancés FB_Drum : programmateur cyclique Présentation Le programmateur cyclique fonctionne selon un principe semblable à celui des programmateurs cycliques électromécaniques. Il peut fournir jusqu'à 8 états qui sont activés de façon cyclique. Bien qu'un front montant sur l'entrée i_xNextStep fasse tourner le programmateur, le numéro de l'étape peut également être défini par le logiciel. Chaque état du programmateur active un schéma pouvant comporter jusqu'à 16 bits de contrôle, de sorte que le programmateur cyclique représente une sorte de machine à états. Le graphique suivant présente le schéma d'affectation des broches du bloc fonction FB_Drum : Description des variables d'E/S Le tableau décrit les variables d'entrée/sortie du bloc fonction dans la bibliothèque TwidoEmulationSupport : Entrée/sortie Type de données Description iq_iStepNumberAct INT Numéro d'étape courante qui peut être lu et écrit. Une fois écrite, la valeur sera prise en compte à la prochaine exécution du bloc fonction. EIO0000001693 11/2016 29 Blocs fonction avancés Le tableau décrit les variables d'entrée du bloc fonction dans la bibliothèque TwidoEmulationSupport : Entrée Type de données Description i_xReset BOOL L'entrée de réinitialisation règle le programmateur cyclique sur l'étape 0. i_xNextStep BOOL Un front montant sur cette entrée fait passer le programmateur cyclique à l'étape suivante et met à jour les bits de contrôle. i_iNumberOfSteps INT 1-8 (nombre d'étapes) i_abyAssignOutputsToSteps ARRAY OF BYTE Attribution des sorties 0..15 aux étapes 0..7 Le tableau décrit les variables de sortie du bloc fonction dans la bibliothèque TwidoEmulationSupport : 30 Sortie Type de données Description q_xFull BOOL La sortie "plein" indique que l'étape courante est égale à la dernière étape définie. q_x00 - q_x15 BOOL Sorties ou bits internes associés à l'étape (16 bits de contrôle) et définis dans l'éditeur de configuration de SoMachine Basic. EIO0000001693 11/2016 Blocs fonction avancés La configuration de FB_Drum n'en est pas réellement une, mais représente un tableau d'entrées du bloc fonction. Le graphique suivant représente l'Assistant Drum dans SoMachine Basic : 1 2 3 Nombre d'étapes disponibles dans le programmateur cyclique (jusqu'à 8). Masque de bits 8x16 permettant d'attribuer des états à toutes les sorties en bits (ARRAY [0..15] OF BYTE représente ce masque). Sorties 16 bits EIO0000001693 11/2016 31 Blocs fonction avancés Nouveau bloc fonction dans la bibliothèque TwidoEmulationSupport : 32 EIO0000001693 11/2016 Blocs fonction avancés FB_StepCounter : compteur d'étapes Présentation Le bloc fonction FB_StepCounter fournit une série d'étapes auxquelles il est possible d'attribuer des actions. Le passage d'une étape à l'autre dépend d'événements internes ou externes. Le graphique suivant présente le schéma d'affectation des broches du bloc fonction FB_StepCounter : Description des variables d'E/S Le tableau décrit les variables d'entrée/sortie du bloc fonction dans la bibliothèque TwidoEmulationSupport : Entrée/sortie Type de données Description iq_axCurrentStep ARRAY OF BOOL Bits de ///compteur d'étape de 0 à 255. Le tableau décrit les variables d'entrée du bloc fonction dans la bibliothèque TwidoEmulationSupport : Entrée Type de données Description i_xReset BOOL Réinitialise le compteur d'étapes. i_xUp BOOL Le passage à l'entrée de gauche incrémente le compteur d'une étape, en cas de front montant. i_xDown BOOL L'entrée de décalage à droite décrémente le ///compteur d'étapes d'une étape, en cas de front montant. EIO0000001693 11/2016 33 Blocs fonction avancés Le tableau décrit les variables de sortie du bloc fonction dans la bibliothèque TwidoEmulationSupport : Sortie Type de données Description q_byCurrentStepNumber BYTE Bits de ///compteur d'étape de 0 à 255. Chaque fois qu'une étape est active, le bit associé est réglé sur 1. Le ///compteur d'étapes peut contrôler les bits de sortie (bits de mémoire). Une seule étape d'une ///fonction pas à pas peut être active à la fois. Si un bit dans iq_axCurrentStep est défini en externe, tous les autres bits sont réinitialisés et q_byCurrentStepNumber est réglé en conséquence. 34 EIO0000001693 11/2016 Blocs fonction avancés FB_PID : bloc fonction PID Vue d'ensemble Le bloc fonction FB_PID fournit un contrôleur PID Le graphique suivant présente le schéma d'affectation des broches du bloc fonction FB_PID : L'algorithme principal est représenté par l'organigramme suivant : Il est calculé comme suit : EIO0000001693 11/2016 35 Blocs fonction avancés Bien qu'une constante de temps dérivée Td nulle désactive la branche dérivée du contrôleur PID, un gain proportionnel Kp de 0 est interdit. Cela entraînerait un gain de 100 %. La définition d'une constante de temps intégrale Ti nulle permet de passer à une autre règle de calcul : Cela permettrait de centrer le signal de sortie analogique qui se trouve dans la plage [0..10000]. La valeur mesurée peut être convertie en une plage de valeurs paramétrées. Cette nouvelle plage est alors appliquée au point de consigne ainsi qu'aux niveaux d'alarme de mesure. Dans chaque cas, la sortie figure dans la plage [0..10000] mais peut être limitée. Description des variables d'E/S Le tableau décrit les variables d'entrée du bloc fonction dans la bibliothèque TwidoEmulationSupport : 36 Entrée Type de données Description i_iMeasure INT Variable de contrôle [1 à 10000] i_iSetpoint INT Point de consigne de l'automate [1..10000] ou [min configuré..max configuré] i_etOpMode ET_PidOpMode PID / PI - Dans le cas d'un PID, elle peut être remplacée par etCorrectorType pour assurer la compatibilité. i_xMeasConversion BOOL Active la conversion des valeurs mesurées aux limites données, de [0 à 10000] en [i_iConversionMin à i_iConversionMax]. i_iConversionMin INT Conversion de la valeur minimale. i_iConversionMax INT Conversion de la valeur maximale. i_xMeasAlarm BOOL Active les alarmes de la plage de valeurs mesurée. i_iAlarmHigh INT Valeur haute de seuil d'alarme pour q_iAnalogOutput. i_iAlarmLow INT Valeur basse de seuil d'alarme pour q_iAnalogOutput. i_iKp INT Facteur de gain proportionnel i_iTi INT Constante de temps intégrale i_iTd INT Constante de temps dérivée (ignorée dans le cas de PI) EIO0000001693 11/2016 Blocs fonction avancés Entrée Type de données Description i_xDirectOutput BOOL TRUE : action directe FALSE : action inverse i_xLimitOutput BOOL Active la limite de sortie. i_iLimitMin INT Limite inférieure de sortie i_iLimitMax INT Limite supérieure de sortie i_iPWMPeriod INT Signal PWM Le tableau décrit les variables de sortie du bloc fonction dans la bibliothèque TwidoEmulationSupport : Sortie Type de données Description q_iAnalogOutput INT Sortie numérique de l'automate à convertir en analogique [1 à 10000] q_rDutyCycleOutput REAL Réduction à une valeur [0 à 1] pouvant être attribuée à un module PWM manuellement. q_xPWM BOOL Sortie PWM générée par voie logicielle q_xMeasureValueLowAlarm BOOL Surveillance de la variable de pilotage. Réglé sur 1 si le niveau d'alarme bas n'est pas atteint. q_xMeasureValueHighAlarm BOOL Surveillance de la variable de pilotage. Réglé sur 1 si le niveau d'alarme haut est dépassé. q_etPidDiag ET_PidDiag Code de diagnostic émis par le contrôleur PID q_sMsg STRING Message de diagnostic La configuration du bloc PID dans SoMachine Basic fournit la ///période d'échantillonnage de paramètres supplémentaires (dans l'onglet PID de l'Assistant PID). La période d'échantillonnage est le temps de cycle de la tâche qui exécute le bloc PID. Pour s'assurer que le signal au niveau de q_xPWM est correctement généré, la période i_iPWMPeriod configurée doit être un multiple du temps d'échantillonnage. Une période PWM nulle désactive la génération de signal. EIO0000001693 11/2016 37 Blocs fonction avancés L'entrée i_etOpMode est du type suivant : La sortie i_etPidDiag est du type suivant : 38 EIO0000001693 11/2016 Twido Emulation Support Blocs fonction de communication EIO0000001693 11/2016 Chapitre 4 Blocs fonction de communication Blocs fonction de communication Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page FB_EXCH : bloc fonction d'échange 40 FB_ReadVar : bloc fonction de lecture de données 43 FB_WriteVar : bloc fonction d'écriture de données 46 FB_WriteReadVar : bloc fonction de lecture et d'écriture 48 FB_SendRecvMsg : bloc fonction d'envoi et de réception de message 51 EIO0000001693 11/2016 39 Blocs fonction de communication FB_EXCH : bloc fonction d'échange Vue d'ensemble Le graphique suivant présente le schéma d'affectation des broches du bloc fonction FB_EXCH : Le contrôleur M221 peut communiquer avec un équipement esclave Modbus ou envoyer/recevoir des messages en mode caractère (ASCII). Twido et SoMachine Basic fournissent les fonctions suivantes pour la communication : Instruction EXCH permettant d'émettre/recevoir des messages Bloc fonction de contrôle d'échange (MSG) assurant le contrôle des échanges de données La bibliothèque TwidoEmulationSupport gère la communication avec le bloc fonction FB_EXCH. Ce bloc fonction utilise le bloc fonction SEN.SEND_RECV_MSG de la bibliothèque PLCCommunication. Il permet d'envoyer et de recevoir les messages définis par l'utilisateur et attend une réponse. Description des variables d'E/S Le tableau décrit les variables d'entrée du bloc fonction dans la bibliothèque TwidoEmulationSupport : 40 Entrée Type de données Description i_xExecute BOOL La fonction démarre sur le front montant. i_xReset BOOL L'émission de message courante s'arrête sur le front montant et la communication est réinitialisée. i_byPort BYTE Port de communication [1..3] 1 = Port série 1 2 = Port série 2 3 = Ethernet EIO0000001693 11/2016 Blocs fonction de communication Entrée Type de données Description i_pbyBuffer POINTER TO BYTE Pointeur vers le tampon d'envoi et/ou de réception. Les 2 premiers mots sont des mots de commande. 2 premiers mots : 4 octets de contrôle : 1. Longueur d'octet de contrôle : L'octet de longueur contient la longueur de la table d'émission (250 octets au maximum), qui est remplacée par le nombre de caractères reçus à la fin de la réception (si la réception est demandée). 2. Commande d'octet de contrôle : [0..2] 0 = émission seule 1 = émission/réception 2 = réception seule 3. Octet de contrôle SndBytePosDiscard : la position de l'octet n'est pas envoyée. 4. Octet de contrôle RcvBytePosDiscard : la position de l'octet reçu est rejetée. i_uiLengthInByte UINT Longueur du tampon d'émission/réception + 2 mots de commande i_xAsciiMode BOOL TRUE = mode ASCII configuré. FALSE = mode Modbus TCP configuré. Le tableau décrit les variables de sortie du bloc fonction dans la bibliothèque TwidoEmulationSupport : Sortie Type de données Description q_xBusy BOOL q_xBusy prend la valeur TRUE lorsque la fonction est en cours d'exécution. q_xDone BOOL q_xDone prend la valeur TRUE lorsque la fonction s'est exécutée correctement. q_xError BOOL q_xError prend la valeur TRUE lorsque la fonction est arrêtée suite à la détection d'une erreur. q_etExchDiag ET_ExchDiag Code de diagnostic. q_sMsg STRING [80] Message de diagnostic. EIO0000001693 11/2016 41 Blocs fonction de communication Le bloc fonction FB_EXCH a les codes d'erreur suivants : 42 EIO0000001693 11/2016 Blocs fonction de communication FB_ReadVar : bloc fonction de lecture de données Vue d'ensemble Le graphique suivant présente le schéma d'affectation des broches du bloc fonction FB_ReadVar : le bloc fonction FB_ReadVar lit les données d'un équipement externe à l'aide du protocole Modbus SL ou Modbus TCP. Description des variables d'E/S Le tableau décrit les variables d'entrée du bloc fonction dans la bibliothèque TwidoEmulationSupport : Entrée Type de données Description i_xExecute BOOL La fonction est exécutée sur le front montant de cette entrée. NOTE : lorsque ixExecute prend la valeur TRUE lors du premier cycle de tâche en mode RUN après un redémarrage à chaud ou à froid, le front montant n'est pas détecté. i_xAbort BOOL Annule l'opération en cours sur le front montant. i_iLink INT Indique le port utilisé pour communiquer. 1 = Port série 1 2 = Port série 2 3 = Ethernet / Modbus TCP i_iId INT Identificateur de l'équipement externe ciblé : Adresse esclave de ligne série : 1 à 247 ou Index Ethernet : 1 à 16 (Selon la configuration de liaison) i_iTimeout EIO0000001693 11/2016 INT Définit la durée d'attente maximale de la réponse du modem. Spécifié en ms. La valeur 0 signifie aucun délai. 43 Blocs fonction de communication Entrée Type de données Description i_etObjType SEN.ObjectType La valeur du type de données énuméré (SEN.ObjectType (voir SoMachine, Fonctions Lecture/Ecriture Modbus et ASCII, Guide de la bibliothèque PLCCommunication)) contient les types d'objet pouvant être écrits : MW : lecture du registre de maintien (16 bits) I : lecture de l'entrée numérique (1 bit) Q : lecture des bits de sortie (1 bit) IW : lecture du registre d'entrée (16 bits) i_diFirstObj DINT Adresse du premier objet à partir duquel les valeurs sont lues. i_iQuantity INT Nombre d'objets à lire. i_pbyBuffer POINTER TO BYTE Adresse du tampon dans lequel les valeurs d'objet lues sont stockées. i_astRemoteDevices ARRAY [1..Gc_uiRemoteAddr essTableLen] OF ST_RemoteDevice Contient la liste des adresses d'équipement distant pour la communication Modbus TCP. Le tableau décrit les variables de sortie du bloc fonction dans la bibliothèque TwidoEmulationSupport : 44 Sortie Type de données Description q_xDone BOOL q_xDone prend la valeur TRUE lorsque la fonction s'est exécutée correctement. q_xBusy BOOL q_xBusy prend la valeur TRUE lorsque la fonction est en cours d'exécution. q_xAborted BOOL q_xAborted prend la valeur TRUE lorsque la fonction est annulée à l'aide de l'entrée i_xAbort. q_xError BOOL q_xError prend la valeur TRUE lorsque la fonction est arrêtée suite à la détection d'une erreur. q_etCommError SEN.CommunicationEr rorCodes q_etCommError contient la valeur des codes d'erreur de communication SEN.CommunicationErrorCodes (voir SoMachine, Fonctions Lecture/Ecriture Modbus et ASCII, Guide de la bibliothèque PLCCommunication). EIO0000001693 11/2016 Blocs fonction de communication Sortie Type de données Description q_etOperError SEN.OperationErrorC odes q_etOperError contient la valeur des codes d'erreur de fonctionnement SEN.OperationErrorCodes (voir SoMachine, Fonctions Lecture/Ecriture Modbus et ASCII, Guide de la bibliothèque PLCCommunication). EIO0000001693 11/2016 45 Blocs fonction de communication FB_WriteVar : bloc fonction d'écriture de données Vue d'ensemble Le graphique suivant présente le schéma d'affectation des broches du bloc fonction FB_WriteVar : Le bloc fonction FB_WriteVar écrit les données sur un équipement externe à l'aide du protocole Modbus SL ou Modbus TCP. Description des variables d'E/S Le tableau décrit les variables d'entrée du bloc fonction dans la bibliothèque TwidoEmulationSupport : Entrée Type de données Description i_xExecute BOOL La fonction est exécutée sur le front montant de cette entrée. NOTE : lorsque xExecute prend la valeur TRUE lors du premier cycle de tâche en mode RUN après un redémarrage à chaud ou à froid, le front montant n'est pas détecté. i_xAbort BOOL Annule l'opération en cours sur le front montant. i_iLink INT Indique le port utilisé pour communiquer. 1 = Port série 1 2 = Port série 2 3 = Ethernet / Modbus TCP i_iId INT Identificateur de l'équipement externe ciblé : Adresse esclave de ligne série : 1 à 247 ou Index Ethernet : 1 à 16 (Selon la configuration de liaison) NOTE : La valeur 0 est non valide et ne représente pas un message de diffusion. i_iTimeout 46 INT Définit la durée d'attente maximale de la réception d'une réponse. Spécifié en ms. La valeur 0 signifie aucun délai. EIO0000001693 11/2016 Blocs fonction de communication Entrée Type de données Description i_etObjType SEN.ObjectType La valeur du type de données énuméré (SEN.ObjectType (voir SoMachine, Fonctions Lecture/Ecriture Modbus et ASCII, Guide de la bibliothèque PLCCommunication)) contient les types d'objet pouvant être écrits : MW : écriture de plusieurs registres (16 bits) Q : écriture de plusieurs bits de sortie (1 bit) i_diFirstObj DINT Adresse du premier objet à partir duquel les valeurs sont écrites. i_iQuantity INT Nombre d'objets à écrire. i_pbyBuffer POINTER TO BYTE Adresse du tampon dans lequel les valeurs d'objet à écrire sont stockées. i_astRemoteDevices ARRAY [1..Gc_uiRemoteAd dressTableLen] OF ST_RemoteDevice Contient la liste des adresses d'équipement distant pour la communication Modbus TCP. Le tableau décrit les variables de sortie du bloc fonction dans la bibliothèque TwidoEmulationSupport : Sortie Type de données Description q_xDone BOOL q_xDone prend la valeur TRUE lorsque la fonction s'est exécutée correctement. q_xBusy BOOL q_xBusy prend la valeur TRUE lorsque la fonction est en cours d'exécution. q_xAborted BOOL q_xAborted prend la valeur TRUE lorsque la fonction est annulée à l'aide de l'entrée i_xAbort. q_xError BOOL q_xError prend la valeur TRUE lorsque la fonction est arrêtée suite à la détection d'une erreur. q_etCommError SEN.Communication ErrorCodes q_etCommError contient la valeur des codes d'erreur de communication SEN.CommunicationErrorCodes (voir SoMachine, Fonctions Lecture/Ecriture Modbus et ASCII, Guide de la bibliothèque PLCCommunication). q_etOperError SEN.OperationErro rCodes q_etOperError contient la valeur des codes d'erreur de fonctionnement SEN.OperationErrorCodes (voir SoMachine, Fonctions Lecture/Ecriture Modbus et ASCII, Guide de la bibliothèque PLCCommunication). EIO0000001693 11/2016 47 Blocs fonction de communication FB_WriteReadVar : bloc fonction de lecture et d'écriture Vue d'ensemble Le bloc fonction FB_WriteReadVar sert à : écrire des registres internes consécutifs et relire leurs valeurs pendant le même cycle d'exécution du bloc fonction (transaction unique) ; écrire des registres internes consécutifs et lire différents registres. Le graphique suivant présente le schéma d'affectation des broches du bloc fonction FB_WriteReadVar : Le bloc fonction FB_WriteReadVar lit et écrit des registres internes (de type MW uniquement) sur un équipement externe utilisant le protocole Modbus. Ces opérations de lecture et d'écriture s'effectuent au cours d'une transaction unique. Notez que l'opération d'écriture intervient en premier. Description des variables d'E/S Le tableau décrit les variables d'entrée du bloc fonction dans la bibliothèque TwidoEmulationSupport : Entrée Type de données Description i_xExecute BOOL La fonction est exécutée sur le front montant de cette entrée. NOTE : lorsque i_xExecute prend la valeur TRUE lors du premier cycle de tâche en mode RUN après un redémarrage à chaud ou à froid, le front montant n'est pas détecté. 48 i_xAbort BOOL Annule l'opération en cours sur le front montant. i_iLink INT Indique le port utilisé pour communiquer. 1 = Port série 1 2 = Port série 2 3 = Ethernet / Modbus TCP EIO0000001693 11/2016 Blocs fonction de communication Entrée Type de données Description i_iId INT Identificateur de l'équipement externe ciblé : Adresse esclave de ligne série : 1 à 247 ou Index Ethernet : 1 à 16 i_iTimeout INT Définit la durée d'attente maximale de la réponse du modem. Spécifié en ms. La valeur 0 signifie aucun délai. i_diFirstReadObj DINT Adresse du premier objet à partir duquel les valeurs sont lues. i_iReadQuantity INT Nombre d'objets à lire. i_pbyReadBuffer POINTER TO BYTE Adresse du tampon dans lequel les valeurs d'objet lues sont stockées. i_diFirstWriteObj DINT Adresse du premier objet à partir duquel les valeurs sont écrites. i_iWriteQuantity INT Nombre d'objets à écrire. i_pbyWriteBuffer POINTER TO BYTE Adresse du tampon dans lequel les valeurs d'objet à écrire sont stockées. (Selon la configuration de liaison) i_astRemoteDevices ARRAY [1..Gc_uiRemoteAd dressTableLen] OF ST_RemoteDevice Contient la liste des adresses d'équipement distant pour la communication Modbus TCP. Le tableau décrit les variables de sortie du bloc fonction dans la bibliothèque TwidoEmulationSupport : Sortie Type de données Description q_xDone BOOL q_xDone prend la valeur TRUE lorsque la fonction s'est exécutée correctement. q_xBusy BOOL q_xBusy prend la valeur TRUE lorsque la fonction est en cours d'exécution. q_xAborted BOOL q_xAborted prend la valeur TRUE lorsque la fonction est annulée à l'aide de l'entrée i_xAbort. q_xError BOOL q_xError prend la valeur TRUE lorsque la fonction est arrêtée suite à la détection d'une erreur. q_etCommError SEN.Communication ErrorCodes q_etCommError contient la valeur des codes d'erreur de communication SEN.CommunicationErrorCodes (voir SoMachine, Fonctions Lecture/Ecriture Modbus et ASCII, Guide de la bibliothèque PLCCommunication). EIO0000001693 11/2016 49 Blocs fonction de communication 50 Sortie Type de données Description q_etOperError SEN.OperationErro rCodes q_etOperError contient la valeur des codes d'erreur de fonctionnement SEN.OperationErrorCodes (voir SoMachine, Fonctions Lecture/Ecriture Modbus et ASCII, Guide de la bibliothèque PLCCommunication). EIO0000001693 11/2016 Blocs fonction de communication FB_SendRecvMsg : bloc fonction d'envoi et de réception de message Vue d'ensemble Le graphique suivant présente le schéma d'affectation des broches du bloc fonctionFB_SendRecvMsg : Le bloc fonction FB_SendRecvMsg envoie et reçoit des messages définis par l'utilisateur. Il envoie un message sur une ligne série, puis attend une réponse. Vous pouvez également envoyer/recevoir un message sans attendre/envoyer de réponse. Cette fonction doit être utilisée avec un gestionnaire ASCII. Description des variables d'E/S Le tableau décrit les variables d'entrée du bloc fonction dans la bibliothèque TwidoEmulationSupport : Entrée Type de données Description i_xExecute BOOL La fonction est exécutée sur le front montant de cette entrée. NOTE : lorsque i_xExecute prend la valeur TRUE lors du premier cycle de tâche en mode RUN après un redémarrage à chaud ou à froid, le front montant n'est pas détecté. i_xAbort BOOL Annule l'opération en cours sur le front montant. i_iLink INT Indique le port utilisé pour communiquer. 1 = Port série 1 2 = Port série 2 i_iTimeout INT Définit la durée d'attente maximale de la réception d'une réponse. Spécifié en ms. La valeur 0 signifie aucun délai. i_iQuantityToSend INT Nombre d'objets à envoyer. i_pbyBufferToSend POINTER TO BYTE Adresse du tampon dans lequel les valeurs d'objet à envoyer sont stockées. Les 2 premiers mots sont des mots de commande. i_iSizeRecvBuffer INT Nombre d'objets à recevoir. EIO0000001693 11/2016 51 Blocs fonction de communication Entrée Type de données Description i_pbyBufferToRecv POINTER TO BYTE Adresse du tampon dans lequel les valeurs d'objet reçues sont stockées. Le tableau décrit les variables de sortie du bloc fonction dans la bibliothèque TwidoEmulationSupport : 52 Sortie Type de données Description q_xDone BOOL q_xDone prend la valeur TRUE lorsque la fonction s'est exécutée correctement. q_xBusy BOOL q_xBusy prend la valeur TRUE lorsque la fonction est en cours d'exécution. q_Aborted BOOL q_Aborted prend la valeur TRUE lorsque la fonction est annulée à l'aide de l'entrée i_xAbort. q_xError BOOL q_xError prend la valeur TRUE lorsque la fonction est arrêtée suite à la détection d'une erreur. q_etCommError SEN.Communication ErrorCodes q_etCommError contient la valeur des codes d'erreur de communication SEN.CommunicationErrorCodes (voir SoMachine, Fonctions Lecture/Ecriture Modbus et ASCII, Guide de la bibliothèque PLCCommunication). q_etOperError SEN.OperationErro rCodes q_etOperError contient la valeur des codes d'erreur de fonctionnement SEN.OperationErrorCodes (voir SoMachine, Fonctions Lecture/Ecriture Modbus et ASCII, Guide de la bibliothèque PLCCommunication). q_iQuantiyRecv INT Nombre d'objets reçus EIO0000001693 11/2016 Twido Emulation Support Fonctions Twido EIO0000001693 11/2016 Chapitre 5 Fonctions Twido Fonctions Twido Fonctions Twido Présentation La liste suivante présente les fonctions Twido : FC_AsciiCharToInt (voir page 54) FC_AsciiToInt (voir page 54) FC_AsciiToReal (voir page 55) FC_ConcatOfInt (voir page 55) FC_CopyArrDint (voir page 56) FC_CopyArrInt (voir page 56) FC_CopyArrReal (voir page 56) FC_CopyBitString (voir page 56) FC_CopyPackedBitString (voir page 57) FC_DegToRad (voir page 57) FC_EqualArrDint (voir page 57) FC_EqualArrReal (voir page 58) FC_FindEqDint (voir page 58) FC_FindEqReal (voir page 58) FC_FindGtDint (voir page 59) FC_FindGtReal (voir page 59) FC_FindLtDint (voir page 59) FC_FindLtReal (voir page 60) FC_HiOfDint (voir page 60) FC_IntToAscii (voir page 60) FC_Lkup (voir page 60) FC_LoOfDint (voir page 62) FC_MaxArrDint (voir page 62) FC_MaxArrReal (voir page 62) FC_MeanArrReal (voir page 62) FC_MinArrDint (voir page 63) FC_MinArrReal (voir page 63) FC_MoveArrDint (voir page 63) FC_MoveArrInt (voir page 63) FC_MoveArrReal (voir page 64) FC_OccurArrDint (voir page 64) EIO0000001693 11/2016 53 Fonctions Twido FC_OccurArrReal (voir page 64) FC_RadToDeg (voir page 64) FC_RealToAscii (voir page 65) FC_RolArrDint (voir page 65) FC_RolArrReal (voir page 65) FC_RorArrDint (voir page 66) FC_RorArrReal (voir page 66) FC_Round (voir page 66) FC_SortArrDint (voir page 67) FC_SortArrReal (voir page 67) FC_SumArrDint (voir page 68) FC_SumArrReal (voir page 68) FC_AsciiCharToInt Cette fonction renvoie les deux caractères sous la forme d'une valeur entière. Valeurs d'entrée i_sChar : STRING avec 2 caractères. Valeurs renvoyées Renvoie les caractères sous la forme d'une valeur entière. Si la chaîne est non valide, la variable globale G_xSystemBitS18 prend la valeur TRUE. FC_AsciiToInt La fonction de conversion d'ASCII en entier convertit une valeur de type chaîne ASCII en sa valeur entière correspondante. Nom dans SoMachine Basic / Twido ASCII_TO_INT Valeurs d'entrée i_psStartAddr : POINTER TO STRING ; Valeurs renvoyées ASCII_TO_INT : INT Les règles de conversion d'une valeur ASCII en valeur entière sont les suivantes : La valeur ASCII doit être comprise entre -32 768 et 32 767. La fonction lit toujours l'octet de poids fort en premier. Tout caractère ASCII en dehors de l'intervalle [0...9] ([30 hex - 39 hex]]) est considéré comme un caractère de fin, à l'exception du signe moins '-' (2D hex) lorsqu'il est le premier caractère. En cas de dépassement (> 32 767 ou < -32 768), la variable globale G_xSystemBitS18 (erreur détectée ou dépassement arithmétique) est réglée sur 1 et la valeur 32 767 ou -32 768 est renvoyée. Si le premier caractère de l'opérande est un caractère de « fin », la valeur 0 est renvoyée et la variable globale G_xSystemBitS18 est mise à TRUE. 54 EIO0000001693 11/2016 Fonctions Twido FC_AsciiToReal La fonction de conversion d'ASCII en REAL en entier convertit la valeur de chaîne ASCIIen sa valeur REAL correspondante. Nom dans SoMachine Basic / Twido ASCII_TO_FLOAT Valeurs d'entrée i_psStartAddr : POINTER TO STRING Valeurs renvoyées FC_AsciiToReal : REAL Les règles de conversion d'une valeur ASCII en REAL sont les suivantes : La fonction lit l'octet de poids fort en premier. Tout caractère ASCII non compris dans l'intervalle [0 à 9] ([30 hex - 39 hex]) est considéré comme un caractère de « fin », sauf les caractères suivants : le point décimal '.' (2E hex) ; le signe moins '-' (2D hex) ; le signe plus '+' (2B hex) ; l'exposant 'e' ou 'E' (65 hex ou 45 hex). La chaîne ASCII peut figurer en notation exponentielle (c'est-à-dire « -2.34567e+13 ») ou décimale (c'est-à-dire 9826.3457). En cas de dépassement (si le résultat du calcul est > 3.402824E+38 ou < -3.402824E+38-) : La variable globale G_xSystemBitS18 (dépassement arithmétique ou erreur détectée) prend la valeur TRUE. La valeur +/- 1.#INF (valeur + ou - infini) est renvoyée. Si le résultat du calcul est compris entre -1.175494E-38 et 1.175494E-38, il est arrondi à 0,0. Si l'opérande n'est pas un nombre, la valeur 1.#QNAN est renvoyée et la variable globale G_xSystemBitS18 prend la valeur TRUE. FC_ConcatOfInt Cette fonction concatène deux entiers en un entier double. Nom dans SoMachine Basic / Twido CONCATW Valeurs d'entrée i_iLowVal : INT i_iHighVal : INT Valeurs renvoyées FC_ConcatOfInt : DINT EIO0000001693 11/2016 55 Fonctions Twido FC_CopyArrDint La fonction copie un tableau de valeurs DINT dans une autre adresse mémoire donnée. Nom dans SoMachine Basic / Twido COPY_ARR_DINT Valeurs d'entrée i_pdiSource : POINTER TO DINT i_pdiDestination : POINTER TO DINT i_bySize : BYTE Valeurs renvoyées FC_CopyArrDint : BOOL FC_CopyArrInt La fonction copie un tableau de valeurs INT dans une autre adresse mémoire donnée. Nom dans SoMachine Basic / Twido COPY_ARR_INT Valeurs d'entrée i_piSource : POINTER TO INT i_piDestination : POINTER TO INT i_bySize : BYTE Valeurs renvoyées FC_CopyArrInt : BOOL FC_CopyArrReal La fonction copie un tableau de valeurs REAL dans une autre adresse mémoire donnée. Nom dans SoMachine Basic / Twido COPY_ARR_REAL Valeurs d'entrée i_prSource : POINTER TO REAL i_prDestination : POINTER TO REAL i_bySize : BYTE Valeurs renvoyées FC_CopyArrReal : BOOL FC_CopyBitString La fonction copie un tableau de valeurs BOOL dans une autre adresse mémoire donnée. 56 Nom dans SoMachine Basic / Twido COPY_ARR_BOOL Valeurs d'entrée i_pxSource : POINTER TO BOOL i_pxDestination : POINTER TO BOOL i_bySize : BYTE Valeurs renvoyées FC_CopyBitString : BOOL EIO0000001693 11/2016 Fonctions Twido FC_CopyPackedBitString La fonction copie un BitString empaqueté de la longueur des bits i_bySize dans un autre emplacement mémoire. Nom dans SoMachine Basic / Twido FC_CopyPackedBitString Valeurs d'entrée i_pbySource : POINTER TO BYTE i_pbyDestination : POINTER TO BYTE i_bySize : BYTE - limited to SIZE OF (DINT) Valeurs renvoyées FC_CopyPackedBitString : DINT FC_DegToRad La fonction FC_DegToRad convertit en radians un angle exprimé en degrés. Nom dans SoMachine Basic / Twido DEG_TO_RAD Valeurs d'entrée i_rDeg : REAL ; Valeurs renvoyées FC_DegToRad : REAL Formule Radian = Degrees * (Pi / 180) Where, Pi = 3.1415926535 Règles d'utilisation : L'angle à convertir doit être compris entre -737 280 et +737 280. Pour les valeurs situées hors de ces plages, le résultat affiché est + 1.#QNAN et la variable globale G_xSystemBitS18 prend la valeur TRUE. FC_EqualArrDint La fonction FC_EqualArrDint compare 2 tables de taille définie, élément par élément. Si une différence apparaît, le rang du premier élément dissemblable est renvoyé sous forme d'entier. S'il n'y a aucune différence, la valeur "-1" est renvoyée. Nom dans SoMachine Basic / Twido EQUAL_ARR Valeurs d'entrée i_pdiFirstArrStartValue : POINTER TO DINT i_pdiSecondArrStartValue : POINTER TO DINT i_bySize : BYTE Valeurs renvoyées FC_EqualArrDint : INT Les adresses de début des 2 tableaux à comparer sont fournies au niveau des 2 entrées de pointeur. Le nombre d'éléments à comparer doit être défini à l'entrée i_bySize. EIO0000001693 11/2016 57 Fonctions Twido FC_EqualArrReal La fonction FC_EqualArrReal compare 2 tables de taille définie, élément par élément. Si une différence apparaît, le rang du premier élément dissemblable est renvoyé sous forme d'entier. S'il n'y a aucune différence, la valeur -1 est renvoyée. Nom dans SoMachine Basic / Twido EQUAL_ARR Valeurs d'entrée i_pdiFirstArrStartValue : POINTER TO REAL i_pdiSecondArrStartValue : POINTER TO REAL i_bySize : BYTE Valeurs renvoyées FC_EqualArrReal : INT Les adresses de début des 2 tableaux à comparer sont fournies au niveau des 2 entrées de pointeur. Le nombre d'éléments à comparer doit être défini à l'entrée i_bySize. FC_FindEqDint La fonction FC_FindEqDint recherche dans un ensemble de valeurs DINT données la position du premier élément de tableau qui est égal à une valeur donnée. Nom dans SoMachine Basic / Twido FIND_EQR Valeurs d'entrée i_diValue : DINT i_pdiStartAddr : POINTER TO DINT i_bySize : BYTE Valeurs renvoyées FC_FindEqDint : INT Si la valeur donnée ne figure pas dans le tableau, la valeur -1 est renvoyée. FC_FindEqReal La fonction FC_FindEqReal recherche dans un ensemble de valeurs REAL données la position du premier élément de tableau qui est égal à une valeur donnée définie par l'utilisateur. Nom dans SoMachine Basic / Twido FIND_EQR Valeurs d'entrée i_rValue : REAL i_prStartAddr : POINTER TO REAL i_bySize : BYTE Valeurs renvoyées FC_FindEqReal : INT Si la valeur donnée ne figure pas dans le tableau, la valeur -1 est renvoyée. 58 EIO0000001693 11/2016 Fonctions Twido FC_FindGtDint La fonction FC_FindGtDint recherche dans un ensemble de valeurs DINT données la position du premier élément de tableau qui est supérieur à une valeur donnée définie par l'utilisateur. Nom dans SoMachine Basic / Twido FIND_GTR Valeurs d'entrée i_diValue : DINT i_pdiStartAddr : POINTER TO DINT i_bySize : BYTE Valeurs renvoyées FC_FindGtDint : INT Si aucun élément du tableau n'est supérieur à la valeur donnée, la valeur -1 est renvoyée. FC_FindGtReal La fonction FC_FindGtReal recherche dans un ensemble de valeurs REAL données la position du premier élément de tableau qui est supérieur à une valeur donnée définie par l'utilisateur. Nom dans SoMachine Basic / Twido FIND_GTR Valeurs d'entrée i_rValue : REAL i_prStartAddr : POINTER TO REAL i_bySize : BYTE Valeurs renvoyées FC_FindGtReal : INT Si aucun élément du tableau n'est supérieur à la valeur donnée, la valeur -1 est renvoyée. FC_FindLtDint La fonction FC_FindLtDint recherche dans un ensemble de valeurs DINT données la position du premier élément de tableau qui est inférieur à une valeur donnée définie par l'utilisateur. Nom dans SoMachine Basic / Twido FIND_LTR Valeurs d'entrée i_diValue : DINT i_pdiStartAddr : POINTER TO DINT i_bySize : BYTE Valeurs renvoyées FC_FindLtDint : INT Si aucun élément du tableau n'est supérieur à la valeur donnée, la valeur -1 est renvoyée. EIO0000001693 11/2016 59 Fonctions Twido FC_FindLtReal La fonction FC_FindLtReal recherche dans un ensemble de valeurs REAL données la position du premier élément de tableau qui est inférieur à une valeur donnée définie par l'utilisateur. Nom dans SoMachine Basic / Twido FIND_LTR Valeurs d'entrée i_rValue : REAL i_prStartAddr : POINTER TO REAL i_bySize : BYTE Valeurs renvoyées FC_FindLtReal : INT Si aucun élément du tableau n'est supérieur à la valeur donnée, la valeur -1 est renvoyée. FC_HiOfDint Cette fonction extrait les bits de poids fort (MSB) d'un entier double vers un entier. Nom dans SoMachine Basic / Twido HW Valeurs d'entrée i_diVal : DINT Valeurs renvoyées FC_LoOfDint : INT FC_IntToAscii La fonction de conversion d'entier en ASCII convertit une valeur entière en sa valeur de chaîne ASCII équivalente. Nom dans SoMachine Basic / Twido INT_TO_ASCII Valeurs d'entrée i_iVal : INT Valeurs renvoyées INT_TO_ASCII : ARRAY [1..4] OF INT Les règles de conversion d'une valeur entière en valeur ASCII sont les suivantes : La valeur entière doit être comprise entre -32768 et 32767. La fonction écrit toujours l'octet de poids fort en premier. Le caractère de fin est le « retour chariot » (ASCII 13). La fonction détermine automatiquement le nombre de zones %MW devant contenir des valeurs ASCII (de 1 à 4). FC_Lkup La fonction FC_Lkup sert à interpoler un ensemble de données en virgule flottante X par rapport à Y pour une valeur X donnée. Nom dans SoMachine Basic / Twido 60 LKUP EIO0000001693 11/2016 Fonctions Twido Valeurs d'entrée i_prStartAddr : POINTER TO REAL i_bySize : BYTE Valeurs renvoyées FC_Lkup : INT Les conditions suivantes s'appliquent à la valeur d'entrée i_prSartAddr : nombre pair de valeurs ; minimum de 6 valeurs ; le premier élément est la valeur x à trouver ; le deuxième élément est défini par la fonction : résultat de l'interpolation ; tous les éléments suivants sont des points de support d'interpolation par paires de X et Y. Règles d'interpolation : La fonction LKUP suit la règle d'interpolation linéaire, comme défini dans l'équation suivante : Pour Xi ≤ X ≤ Xi + 1, où i = 1 … (m-1) En supposant que les valeurs Xi sont classées dans l'ordre croissant : X1 ≤ X2 ≤ ...X...≤ Xm1 ≤ Xm Si deux valeurs Xi consécutives sont égales (Xi=Xi+1=X), l'équation 1 entraîne une exception non valide. Pour gérer cette exception, l'algorithme suivant est utilisé à la place de l'équation 1 : Pour Xi = Xi+1 = X, où i = 1…(m-1). Valeur de résultat : La valeur de résultat indique si l'interpolation a réussi ou non. 0 : Interpolation réussie 1 : erreur d'interpolation : tableau incorrect, Xm < Xm-1 2 : erreur d'interpolation : i_rXValue hors limites, X < X1 4 : erreur d'interpolation : i_rXValue hors limites, X > Xm 8 : taille non valide du tableau de données : i_prYValue est défini comme nombre impair, ou i_prYValue < 6 Le résultat ne contient pas la valeur d'interpolation calculée (Y). Pour une valeur (X) donnée, le résultat de l'interpolation (Y) est contenu dans i_prYValue. EIO0000001693 11/2016 61 Fonctions Twido i_rXValue est la variable en virgule flottante qui contient la valeur (X) définie par l'utilisateur, pour laquelle calculer la valeur (Y) interpolée. La plage valide de i_rXValue est : X1 ≤ i_rXValue ≤ Xm FC_LoOfDint Cette fonction extrait les bits de poids faible (LSB) d'un entier double vers un entier. Nom dans SoMachine Basic / Twido LW Valeurs d'entrée i_diVal : DINT Valeurs renvoyées FC_LoOfDint : INT FC_MaxArrDint Dans un ensemble de valeurs DINT données, cette fonction recherche la valeur maximale. La recherche n'est effectuée que sur la longueur définie de la table. Nom dans SoMachine Basic / Twido MAX_ARR Valeurs d'entrée i_pdiStartAddr : POINTER TO DINT i_bySize : BYTE Valeurs renvoyées FC_MaxArrDint : DINT FC_MaxArrReal Dans un ensemble de valeurs REAL données, cette fonction recherche la valeur maximale. La recherche n'est effectuée que sur la longueur de table définie. Nom dans SoMachine Basic / Twido MAX_ARR Valeurs d'entrée i_prStartAddr : POINTER TO REAL i_bySize : BYTE Valeurs renvoyées FC_MaxArrReal : REAL FC_MeanArrReal Dans un ensemble de valeurs REAL données, cette fonction sert à calculer la moyenne de la longueur requise de la table de valeurs REAL. 62 Nom dans SoMachine Basic / Twido MEAN Valeurs d'entrée i_prStartAddr : POINTER TO REAL i_bySize : BYTE Valeurs renvoyées FC_MeanArrReal : REAL EIO0000001693 11/2016 Fonctions Twido FC_MinArrDint Dans un ensemble de valeurs DINT données, cette fonction recherche la valeur minimale. La recherche n'est effectuée que sur la longueur définie de la table. Nom dans SoMachine Basic / Twido MIN_ARR Valeurs d'entrée i_pdiStartAddr : POINTER TO DINT i_bySize : BYTE Valeurs renvoyées FC_MinArrDint : DINT FC_MinArrReal Dans un ensemble de valeurs REAL données, cette fonction recherche la valeur minimale. La recherche n'est effectuée que sur la longueur définie de la table. Nom dans SoMachine Basic / Twido MAX_ARR Valeurs d'entrée i_prStartAddr : POINTER TO REAL i_bySize : BYTE Valeurs renvoyées FC_MinArrReal : REAL FC_MoveArrDint La fonction déplace la valeur d'entrée dans la table de valeurs DINT, d'un nombre d'éléments égal à une valeur donnée. Nom dans SoMachine Basic / Twido MOVE_ARR_DINT Valeurs d'entrée i_diValue : DINT i_pdiStartAddr : POINTER TO DINT i_bySize : BYTE Valeurs renvoyées FC_MoveArrDint : BOOL FC_MoveArrInt La fonction déplace la valeur d'entrée dans la table de valeurs INT, d'un nombre d'éléments égal à une valeur donnée. Nom dans SoMachine Basic / Twido MOVE_ARR_INT Valeurs d'entrée i_iValue : INT i_piStartAddr : POINTER TO INT i_bySize : BYTE Valeurs renvoyées FC_MoveArrInt : BOOL EIO0000001693 11/2016 63 Fonctions Twido FC_MoveArrReal La fonction déplace la valeur d'entrée dans la table de valeurs REAL, d'un nombre d'éléments égal à une valeur donnée. Nom dans SoMachine Basic / Twido MOVE_ARR_REAL Valeurs d'entrée i_rValue : REAL i_prStartAddr : POINTER TO REAL i_bySize : BYTE Valeurs renvoyées FC_MoveArrReal : BOOL FC_OccurArrDint Dans un ensemble de valeurs DINT données, cette fonction recherche le nombre d'éléments égaux à une valeur donnée. Nom dans SoMachine Basic / Twido OCCUR_ARR Valeurs d'entrée i_diValue : DINT i_pdiStartAddr : POINTER TO DINT i_bySize : BYTE Valeurs renvoyées FC_OccurArrDint : INT FC_OccurArrReal Dans un ensemble de valeurs REAL données, cette fonction recherche le nombre d'éléments égaux à une valeur donnée. Nom dans SoMachine Basic / Twido OCCUR_ARR Valeurs d'entrée i_rValue : REAL i_prStartAddr : POINTER TO REAL i_bySize : BYTE Valeurs renvoyées FC_OccurArrReal : INT FC_RadToDeg Cette fonction FC_RadToDeg convertit en degrés un angle exprimé en radians. 64 Nom dans SoMachine Basic / Twido RAD_TO_DEG Valeurs d'entrée i_rRad : REAL ; Valeurs renvoyées FC_RadToDeg : REAL Formule Degree = Radian * (180 / Pi) Where, Pi = 3.1415926535 EIO0000001693 11/2016 Fonctions Twido Règles d'utilisation : L'angle à convertir doit être compris entre -4096Pi et 4096Pi. Pour les valeurs situées hors de ces plages, le résultat affiché est + 1.#QNAN et G_xSystemBitS18 prend la valeur TRUE. FC_RealToAscii La fonction de REAL à ASCII convertit une valeur REAL en sa valeur de chaîne ASCII équivalente. Nom dans SoMachine Basic / Twido FLOAT_TO_ASCII Valeurs d'entrée i_rVal : REAL Valeurs renvoyées FC_RealToAscii : ARRAY [1..7] OF INT Les règles de conversion d'une valeur REAL en valeur ASCII sont les suivantes : La fonction écrit toujours l'octet de poids fort (MSB) en premier. La représentation s'effectue en notation scientifique conventionnelle. Le résultat « Infini » ou « Pas un nombre » renvoie la chaîne « NAN ». Le caractère de fin est le « retour chariot » (ASCII 13). La précision de conversion est de 6 chiffres. FC_RolArrDint Dans un tableau DINT donné, cette fonction décale chaque élément de n positions vers l'adresse de début de la liste. Les n premiers éléments sont déplacés en fin de liste. Nom dans SoMachine Basic / Twido ROL_ARR Valeurs d'entrée i_iShiftPosNumber : INT i_pdiStartAddr : POINTER TO DINT i_bySize : BYTE Valeurs renvoyées FC_RolArrDint : BOOL Si la valeur de i_iShiftPosNumber est négative ou nulle, aucun décalage n'est effectué. FC_RolArrReal Dans un ensemble de valeurs REAL données, cette fonction effectue un décalage circulaire de n positions de haut en bas des éléments. Nom dans SoMachine Basic / Twido ROL_ARR Valeurs d'entrée i_iShiftPosNumber : INT i_prStartAddr : POINTER TO REAL i_bySize : BYTE EIO0000001693 11/2016 65 Fonctions Twido Valeurs renvoyées FC_RolArrReal : BOOL Si la valeur de i_iShiftPosNumber est négative ou nulle, aucun décalage n'est effectué. FC_RorArrDint Dans un tableau DINT donné, cette fonction décale chaque élément de n positions vers l'adresse de fin de la liste. Les n derniers éléments sont déplacés en début de liste. Nom dans SoMachine Basic / Twido ROR_ARR Valeurs d'entrée i_iShiftPosNumber : INT i_pdiStartAddr : POINTER TO DINT i_bySize : BYTE Valeurs renvoyées FC_RorArrDint : BOOL Si la valeur de i_iShiftPosNumber est négative ou nulle, aucun décalage n'est effectué. FC_RorArrReal Dans un ensemble de valeurs REAL données, cette fonction effectue un décalage circulaire de n positions de bas en haut des éléments. Nom dans SoMachine Basic / Twido ROL_ARR Valeurs d'entrée i_iShiftPosNumber : INT i_prStartAddr : POINTER TO REAL i_bySize : BYTE Valeurs renvoyées FC_RorArrReal : BOOL Si la valeur de i_iShiftPosNumber est négative ou nulle, aucun décalage n'est effectué. FC_Round La fonction FC_Round arrondit une représentation en virgule flottante stockée dans une chaîne ASCII. 66 Nom dans SoMachine Basic / Twido ROUND Valeurs d'entrée i_psStartAddr : POINTER TO STRING ; i_byRoundNumber : BYTE ; Valeurs renvoyées FC_Round : ARRAY[1..7] of INT EIO0000001693 11/2016 Fonctions Twido Les règles de l'instruction ROUND sont les suivantes : L'opérande est toujours arrondi à la valeur inférieure. Le caractère de fin de la chaîne de l'opérande est utilisé comme caractère de fin de la chaîne de résultat. Le caractère de fin peut être tout caractère ASCII compris dans l'intervalle [0 à 9] ([30 hex 39 hex]), à l'exception des caractères suivants : le point '.' (2E hex), le signe moins '-' (2D hex), le signe plus '+' (2B hex), l'exposant 'e' ou 'E' (65 hex ou 45 hex). Le résultat et l'opérande ne doivent pas compter plus de 13 octets, soit la taille maximale d'une chaîne ASCII. FC_SortArrDint La fonction trie les éléments d'une table de valeurs DINT dans l'ordre croissant ou décroissant, et stocke le résultat dans la même table. Nom dans SoMachine Basic / Twido SORT_ARR Valeurs d'entrée i_iSortDirection : INT i_pdiStartAddr : POINTER TO DINT i_bySize : BYTE Valeurs renvoyées FC_SortArrDint : BOOL Le paramètre de sens i_iSortDirection indique la séquence de tri : sens > 0, tri dans l'ordre croissant. sens < 0, tri dans l'ordre décroissant. sens = 0, aucun tri effectué. FC_SortArrReal La fonction trie les éléments d'une table de valeurs DINT dans l'ordre croissant ou décroissant, et stocke le résultat dans la même table. Nom dans SoMachine Basic / Twido SORT_ARR Valeurs d'entrée i_iSortDirection : INT i_prStartAddr : POINTER TO REAL i_bySize : BYTE Valeurs renvoyées FC_SortArrReal : BOOL EIO0000001693 11/2016 67 Fonctions Twido Le paramètre de sens i_iSortDirection indique l'ordre du tri : sens > 0, tri dans l'ordre croissant. sens < 0, tri dans l'ordre décroissant. sens = 0, aucun tri effectué. FC_SumArrDint La fonction FC_SumArrDint additionne un nombre déterminé d'éléments de tableau dont l'adresse est définie à l'entrée i_pdiStartAddr. Cela signifie que la fonction effectue la somme de tous les éléments d'une table d'objets. Nom dans SoMachine Basic / Twido SUM_ARR Valeurs d'entrée i_pdiStartAddr : POINTER TO DINT i_bySize : BYTE Valeurs renvoyées FC_SumArrDint : DINT La variable globale G_xSystemBitS18 prend la valeur TRUE lorsque le résultat est hors des limites du format de mot double correspondant à l'opérande de la table. FC_SumArrReal La fonction FC_SumArrReal additionne un nombre déterminé d'éléments de tableau dont l'adresse est définie à l'entrée i_pdiStartAddr. Cela signifie que la fonction effectue la somme de tous les éléments d'une table d'objets. Nom dans SoMachine Basic / Twido SUM_ARR Valeurs d'entrée i_pdiStartAddr : POINTER TO DINT i_bySize : BYTE Valeurs renvoyées FC_SumArrReal : REAL La variable globale G_xSystemBitS18 prend la valeur TRUE lorsque le résultat est hors des limites du format de mot double correspondant à l'opérande de la table. 68 EIO0000001693 11/2016 Twido Emulation Support Glossaire EIO0000001693 11/2016 Glossaire ! %MW Selon la norme IEC, %MW représente un registre de mots mémoire (par exemple, un objet langage de type mot mémoire). A application Programme comprenant des données de configuration, des symboles et de la documentation. B bloc fonction Unité de programmation qui possède 1 ou plusieurs entrées et renvoie 1 ou plusieurs sorties. Les blocs fonction (FBs) sont appelés via une instance (copie du bloc fonction avec un nom et des variables dédiés) et chaque instance a un état persistant (sorties et variables internes) d'un appel au suivant. Exemples : temporisateurs, compteurs bus d'extension Bus de communication électronique entre des modules d'E/S d'extension et un contrôleur. C 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 EIO0000001693 11/2016 69 Glossaire F fonction Unité de programmation possédant 1 entrée et renvoyant 1 résultat immédiat. Contrairement aux blocs fonction (FBs), une fonction est appelée directement par son nom (et non via une instance), elle n'a pas d'état persistant d'un appel au suivant et elle peut être utilisée comme opérande dans d'autres expressions de programmation. Exemples : opérateurs booléens (AND), calculs, conversion (BYTE_TO_INT). L LSB Acronyme de least significant bit/byte, bit/octet de poids faible. Partie d'un nombre, d'une adresse ou d'un champ qui est écrite le plus à droite dans une valeur en notation hexadécimale ou binaire classique. M MSB Acronyme de most significant bit/byte, bit/octet de poids fort. Partie d'un nombre, d'une adresse ou d'un champ qui est écrite le plus à gauche dans une valeur en notation hexadécimale ou binaire classique. P PID Acronyme de proportional, integral, derivative, proportionnel-intégral-dérivé. Mécanisme de retour de boucle de contrôle générique (contrôleur) largement utilisé dans les systèmes de contrôle industriels. 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. PWM 70 Acronyme de pulse width modulation, modulation de largeur d'impulsion. Sortie rapide qui oscille entre OFF et ON au cours d'un cycle de service réglable, ce qui produit une forme d'onde rectangulaire (ou carrée selon le réglage). Une PTO est bien adaptée pour effectuer la simulation ou l'approximation d'une sortie analogique. En effet, elle régule la tension de la sortie pendant sa période et s'avère ainsi utile dans les applications de gradation d'éclairage ou de contrôle de vitesse (entre autres). EIO0000001693 11/2016 Twido Emulation Support Index EIO0000001693 11/2016 Index A ASCII_TO_FLOAT, 55 ASCII_TO_INT, 54 C CONCATW, 55 COPY_ARR_BOOL, 56 COPY_ARR_DINT, 56 COPY_ARR_INT, 56 COPY_ARR_REAL, 56 D DEG_TO_RAD, 57 E EQUAL_ARR, 57, 58 F FB_Counter, 19 FB_Drum, 29 FB_EXCH, 40 FB_FiFo, 21 FB_LiFo, 21 FB_PID, 35 FB_ReadVar, 43 FB_ScheduleBlock, 26 FB_SendRecvMsg, 51 FB_ShiftBitRegister, 23 FB_StepCounter, 33 FB_Timer, 16 FB_WriteReadVar, 48 FB_WriteVar, 46 FC_AsciiCharToInt, 54 FC_AsciiToInt, 54 FC_AsciiToReal, 55 FC_ConcatOfInt, 55 EIO0000001693 11/2016 FC_CopyArrDint, 56 FC_CopyArrInt, 56 FC_CopyArrReal, 56 FC_CopyBitString, 56 FC_CopyPackedBitString, 57, 57 FC_DegToRad, 57 FC_EqualArrDint, 57 FC_EqualArrReal, 58 FC_FindEqDint, 58 FC_FindEqReal, 58 FC_FindGtDint, 59 FC_FindGtReal, 59 FC_FindLtDint, 59 FC_FindLtReal, 60 FC_HiOfDint, 60 FC_IntToAscii, 60 FC_Lkup, 60 FC_LoOfDint, 62 FC_MaxArrDint, 62 FC_MaxArrReal, 62 FC_MeanArrReal, 62 FC_MinArrDint, 63 FC_MinArrReal, 63 FC_MoveArrDint, 63 FC_MoveArrInt, 63 FC_MoveArrReal, 64 FC_OccurArrDint, 64 FC_OccurArrReal, 64 FC_RadToDeg, 64 FC_RealToAscii, 65 FC_RolArrDint, 65 FC_RolArrReal, 65 FC_RorArrDint, 66 FC_RorArrReal, 66 FC_Round, 66 FC_SortArrDint, 67 FC_SortArrReal, 67 FC_SumArrDint, 68 FC_SumArrReal, 68 FIND_EQR, 58, 58 FIND_GTR, 59, 59 71 Index FIND_LTR, 59, 60 FLOAT_TO_ASCII, 65 H HW, 60 I INT_TO_ASCII, 60 L LKUP, 60 LW, 62 T TwidoEmulationSupport, bibliothèque FB_Counter, 19 FB_Drum, 29 FB_EXCH, 40 FB_FiFo, 21 FB_LiFo, 21 FB_PID, 35 FB_ReadVar, 43 FB_ScheduleBlock, 26 FB_SendRecvMsg, 51 FB_ShiftBitRegister, 23 FB_StepCounter, 33 FB_Timer, 16 FB_WriteReadVar, 48 FB_WriteVar, 46 M MAX_ARR, 62, 62, 63 MEAN, 62 MIN_ARR, 63 MOVE_ARR_DINT, 63 MOVE_ARR_INT, 63 MOVE_ARR_REAL, 64 O OCCUR_ARR, 64, 64 R RAD_TO_DEG, 64 ROL_ARR, 65, 65, 66 ROR_ARR, 66 ROUND, 66 S SORT_ARR, 67, 67 SUM_ARR, 68, 68 72 EIO0000001693 11/2016