Schneider Electric Bibliothèque Fuzzy-Control V1.2 Mode d'emploi
Ajouter à Mes manuels118 Des pages
▼
Scroll to page 2
of
118
33004220 02/2009 Bibliothèque Fuzzy-Control v1.2 une SoCollaborative library 33004220.02 02/2009 www.schneider-electric.com Schneider Electric ne saurait être tenu responsable des erreurs pouvant figurer 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 que ce soit, ni par aucun moyen que ce soit, électronique ou mécanique, y compris la photocopie, sans la permission écrite expresse de Schneider Electric. Toutes les réglementations de sécurité locales pertinentes 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 de sécurité techniques, suivez les instructions appropriées. La non-utilisation du logiciel Schneider Electric ou d'un logiciel approuvé avec nos produits 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. © 2009 Schneider Electric. Tous droits réservés. 2 33004220 02/2009 Table des matières Consignes de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . A propos de ce manuel . . . . . . . . . . . . . . . . . . . . . . . . . . Partie I Informations générales . . . . . . . . . . . . . . . . . . . . . . . Chapitre 1 Types de module et leur utilisation. . . . . . . . . . . . . . . . . 5 11 13 15 Types de bloc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Structure d'un FFB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EN et ENO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 18 22 Chapitre 2 Disponibilité des blocs sur les différentes plates-formes 25 Disponibilité des blocs sur les différentes plates-formes. . . . . . . . . . . . . . Chapitre 3 Fuzzy-Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 27 3.1 Présentation de la théorie du Fuzzy-Control . . . . . . . . . . . . . . . . . . . . . . . Principes fondamentaux du Fuzzy-Control . . . . . . . . . . . . . . . . . . . . . . . . Fuzzy-Control et technique de régulation . . . . . . . . . . . . . . . . . . . . . . . . . Concepts de la théorie Fuzzy (théorie du flou) . . . . . . . . . . . . . . . . . . . . . 3.2 Fuzzy-Control et Unity Pro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions de la bibliothèque Fuzzy-Control . . . . . . . . . . . . . . . . . . . . . . . Fuzzification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Inférence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Défuzzification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exemple dans Unity Pro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 29 30 31 36 37 38 40 41 42 Partie II Descriptions des EFB . . . . . . . . . . . . . . . . . . . . . . . . 47 Chapitre 4 DEFUZ : Défuzzification avec des singletons . . . . . . . . Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Description détaillée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 5 DEFUZ_STI, DEFUZ_STR : défuzzification avec des singletons (structure). . . . . . . . . . . . . . . . . . . . . . . . . . . . Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Description détaillée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 6 FUZ_ATERM : Fuzzification de tous les termes . . . . . . Description courte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Description détaillée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33004220 02/2009 49 50 53 55 56 59 61 62 65 3 4 Chapitre 7 FUZ_ATERM_STI, FUZ_ATERM_STR : fuzzification de tous les termes (structure) . . . . . . . . . . . . . . . . . . . . . . . . 67 Description courte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Description détaillée. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 71 Chapitre 8 FUZ_MAX : Fuzzy Maximum . . . . . . . . . . . . . . . . . . . . . . . 73 Description courte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Chapitre 9 FUZ_MIN : Fuzzy Minimum . . . . . . . . . . . . . . . . . . . . . . . . 75 Description courte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Chapitre 10 FUZ_PROD : produit Fuzzy . . . . . . . . . . . . . . . . . . . . . . . 79 Description courte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Description détaillée. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 82 Chapitre 11 FUZ_STERM : Fuzzification d'un terme . . . . . . . . . . . . . . 83 Description courte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Description détaillée. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 87 Chapitre 12 FUZ_SUM : somme Fuzzy . . . . . . . . . . . . . . . . . . . . . . . . . 91 Description courte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Glossaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 117 33004220 02/2009 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. 33004220 02/2009 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 cet appareil. 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 DES MACHINES SANS PROTECTION PEUVENT PROVOQUER DES BLESSURES GRAVES z z N'utilisez pas ce logiciel et les automatismes associés sur des équipements d'emballage 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, de la législation, etc. Dans certaines applications, plusieurs processeurs seront nécessaires, notamment lorsque la redondance de sauvegarde est requise. 6 33004220 02/2009 Seul l'utilisateur connaît toutes les conditions et tous les facteurs présents lors de l'installation, du fonctionnement et de la maintenance de la machine. Par conséquent, seul l'utilisateur est en mesure de déterminer l'automatisme ainsi que les dispositifs de sécurité et de verrouillage afférents appropriés. Lors du choix de l'automatisme et du système de commande, ainsi que du logiciel associé pour une application particulière, l'utilisateur doit respecter les normes et réglementations locales et nationales en vigueur. Le document 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, risquant ainsi de provoquer des blessures graves. Les produits logiciels ne protègent pas les opérateurs contre les blessures. C'est pourquoi le logiciel ne doit pas remplacer la protection de point de fonctionnement ou s'y substituer. Avant de mettre l'équipement en service, assurez-vous que les dispositifs de sécurité et de verrouillage appropriés liés à la protection de 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 du point de fonctionnement n'entre pas dans le cadre de cette bibliothèque de blocs fonction. 33004220 02/2009 7 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é. ATTENTION RISQUES INHERENTS AU FONCTIONNEMENT DE L'EQUIPEMENT z z z 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 de l'équipement. Le non-respect de ces instructions peut provoquer des blessures 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, excepté les mises à la terre installées conformément aux réglementations locales (conformément au National Electrical Code des Etats-Unis, par exemple). Si un test diélectrique est requis, suivez les recommandations figurant dans la documentation de l'équipement afin d'éviter d'endommager accidentellement l'équipement. Avant de mettre l'équipement sous tension : Enlevez les outils, les instruments de mesure et les débris éventuels de l'équipement. z Fermez la porte de l'enceinte de l'équipement. z Supprimez la mise à la terre des câbles d'alimentation entrants. z Effectuez tous les tests de démarrage conseillés par le fabricant. z 8 33004220 02/2009 FONCTIONNEMENT ET REGLAGES Les précautions suivantes sont extraites du document NEMA Standards Publication ICS 7.1-1995 (la version anglais prévaut) : z 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. z 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. z 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. 33004220 02/2009 9 10 33004220 02/2009 A propos de ce manuel Présentation Objectif du document Ce document décrit les fonctions et blocs fonction de la bibliothèque Fuzzy-Control. Champ d'application Il s'applique à la bibliothèque Fuzzy-Control version 1.2. Commentaires utilisateur Envoyez vos commentaires à l'adresse e-mail techpub@schneider-electric.com 33004220 02/2009 11 12 33004220 02/2009 Informations générales 33004220 02/2009 Informations générales I Description Cette partie contient des informations générales sur la bibliothèque Fuzzy. Contenu de cette partie Cette partie contient les chapitres suivants : Chapitre 33004220 02/2009 Titre du chapitre Page 1 Types de module et leur utilisation 15 2 disponibilité des blocs sur les différentes plates-formes 25 3 Fuzzy-Control 27 13 Informations générales 14 33004220 02/2009 Types de module et leur utilisation 33004220 02/2009 Types de module et leur utilisation 1 Vue d'ensemble Ce chapitre décrit les différents types de module et leur utilisation. Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet 33004220 02/2009 Page Types de bloc 16 Structure d'un FFB 18 EN et ENO 22 15 Types de module et leur utilisation Types de bloc Types de bloc Différents types de bloc sont utilisés dans Unity Pro. FFB est le terme générique pour tous les types de bloc. Les différents types de bloc sont les suivants : Fonction élémentaire (EF) z Bloc fonction élémentaire (EFB) z Bloc fonction dérivé (DFB) z Procédure z NOTE : les blocs fonction de mouvement ne sont pas disponibles sur la plate-forme Quantum. Fonction élémentaire Les fonctions élémentaires (EF) ne disposent pas d'état interne et possèdent une seule sortie. Si les valeurs des entrées sont similaires, la valeur de la sortie est identique pour toutes les exécutions de la fonction. Par exemple, l'addition de deux valeurs donne le même résultat à chaque exécution de la fonction. Une fonction élémentaire est représentée dans les langages graphiques (FBD et LD) sous la forme d'un rectangle avec des entrées et une sortie. Les entrées sont toujours représentées à gauche du rectangle et les sorties à droite. Le nom de la fonction (c'est-à-dire le type de fonction) est indiqué au centre du rectangle. Pour certaines fonctions élémentaires, il est possible d'augmenter le nombre d'entrées. NOTE : la désactivation d'une fonction élémentaire (EN=0) entraîne la réinitialisation des liens associés à ses entrées/sorties. Pour transférer l'état du signal, n'utilisez pas de lien. Une variable doit être connectée à la sortie de la fonction élémentaire et être utilisée pour connecter l'entrée de l'élément. Bloc fonction élémentaire Les blocs fonction élémentaires (EFB) possèdent un état interne. Si les valeurs des entrées sont identiques, les valeurs des sorties peuvent différer à chaque exécution du bloc fonction. Pour un compteur, par exemple, la valeur de la sortie est incrémentée. Un bloc fonction élémentaire est représenté dans les langages graphiques (FBD et LD) sous la forme d'un rectangle avec des entrées et des sorties. Les entrées sont toujours représentées à gauche du rectangle et les sorties à droite. Le nom du bloc fonction (c'est-à-dire le type de bloc fonction) est indiqué au centre du rectangle. Le nom d'instance est affiché au-dessus du rectangle. 16 33004220 02/2009 Types de module et leur utilisation Bloc fonction dérivé Les blocs fonction dérivés (DFB) ont les mêmes caractéristiques que les blocs fonction élémentaires. Ils sont cependant créés par l'utilisateur dans les langages de programmation FBD, LD, IL et/ou ST. Procédure Les procédures correspondent à des fonctions proposant plusieurs sorties. Elles ne disposent pas d'état interne. L'unique différence par rapport aux fonctions élémentaires est que les procédures peuvent avoir plusieurs sorties et qu'elles prennent en charge les variables ayant le type de données VAR_IN_OUT. Les procédures ne renvoient aucune valeur. Les procédures sont un complément de la norme CEI 61131-3 et doivent être activées de manière explicite. Visuellement, il n'existe aucune différence entre les procédures et les fonctions élémentaires. 33004220 02/2009 17 Types de module et leur utilisation Structure d'un FFB Structure Un FFB se compose d'une opération (nom du FFB), des opérandes nécessaires à l'opération (paramètres réels et formels) et d'un nom d'instance pour les blocs fonction élémentaires ou dérivés. Appel d'un bloc fonction dans le langage de programmation FBD : ATTENTION Comportement inattendu de l'équipement N'appelez pas plusieurs fois la même instance de bloc dans un même cycle d'automate Le non-respect de ces instructions peut provoquer des blessures ou des dommages matériels. 18 33004220 02/2009 Types de module et leur utilisation Appel formel d'un bloc fonction dans le langage de programmation ST : Fonctionnement L'opération détermine la fonction qui doit être exécutée par le FFB, par exemple registre à décalage ou opérations de conversion. Opérande L'opérande détermine les éléments sur lesquels porte l'opération qui est exécutée. Dans les FFB, il est constitué de paramètres formels et de paramètres réels. Paramètres formels et réels Des entrées et des sorties permettent de transférer les valeurs vers ou depuis un FFB. Ces entrées et ces sorties sont appelées paramètres formels. Les paramètres formels sont liés à des objets qui comprennent les états courants du processus. Ces objets sont appelés paramètres réels. Durant l'exécution du programme, les valeurs sont transmises, par le biais des paramètres réels, du processus au FFB, et renvoyées à nouveau en sortie après le traitement. Le type de données des paramètres réels doit correspondre au type de données des entrées/sorties (paramètres formels). La seule exception concerne les entrées/sorties génériques dont le type de données est déterminé par le paramètre réel. Si tous les paramètres réels sont constitués de valeurs littérales, un type de données adapté est sélectionné pour le bloc fonction. 33004220 02/2009 19 Types de module et leur utilisation Appel de FFB dans le langage IL/ST Les FFB peuvent être appelés de deux manières dans les langages textuels IL et ST : formelle ou informelle. Pour plus d'informations, consultez le Manuel de référence. Exemple d'un appel de fonction formel : out:=LIMIT (MN:=0, IN:=var1, MX:=5); Exemple d'un appel de fonction informel : out:=LIMIT (0, var1, 5); NOTE : Notez que l'utilisation des paramètres EN et ENO n'est possible que lors d'un appel formel. Variable VAR_IN_OUT Les FFB sont souvent utilisés pour lire une variable en entrée (variables d'entrée), la traiter et générer les valeurs modifiées de cette même variable (variables de sortie). Ce cas exceptionnel d'une variable d'entrée/de sortie est également appelé variable VAR_IN_OUT. La relation entre la variable d'entrée et la variable de sortie est représentée dans les langages graphiques (FBD et LD) par une ligne. Bloc fonction avec la variable VAR_IN_OUT dans le langage FBD : Bloc fonction avec la variable VAR_IN_OUT dans le langage ST : MY_EXAMP1 (IN1:=Input1, IN2:=Input2, IO1:=Comb_IN_OUT, OUT1=>Output1, OUT2=>Output2); Tenez compte des points suivants lorsque vous utilisez des FFB avec les variables VAR_IN_OUT : z une variable doit être affectée à toutes les entrées VAR_IN_OUT. z Aucune valeur littérale ou constante ne doit être affectée aux entrées/sorties VAR_IN_OUT. 20 33004220 02/2009 Types de module et leur utilisation Les limitations supplémentaires de ces langages graphiques (FBD et LD) sont les suivantes : z Les liaisons graphiques permettent uniquement de relier des sorties VAR_IN_OUT à des entrées VAR_IN_OUT. z Seule une liaison graphique peut être associée à une entrée/sortie VAR_IN_OUT. z Des variables/composantes de variables différentes peuvent être reliées à l'entrée VAR_IN_OUT et à la sortie VAR_IN_OUT. Dans un tel cas, la valeur de la variable/composante de variable en entrée est copiée dans la variable/composante de variable en sortie. z Il est interdit d'utiliser des négations au niveau des entrées/sorties VAR_IN_OUT. z Une combinaison de variable/adresse et de liaisons graphiques n'est pas possible pour les sorties VAR_IN_OUT. 33004220 02/2009 21 Types de module et leur utilisation EN et ENO Description Une entrée EN et une sortie ENO peuvent être configurées pour tous les FFB. Si la valeur de l'entrée EN est "0" lorsque le FFB est appelé, les algorithmes définis par le FFB ne sont pas exécutés et la sortie ENO est réglée sur "0". Si la valeur de l'entrée EN est "1" lorsque le FFB est appelé, les algorithmes définis par le FFB sont exécutés. Une fois les algorithmes exécutés, la valeur de la sortie ENO est réglée sur "1". En cas d'erreur lors de l'exécution de ces algorithmes, la sortie ENO est réglée sur "0". Si la sortie ENO est réglée sur "0" (car EN = 0 ou en cas d'erreur lors de l'exécution) : Blocs fonction z Traitement des paramètres EN/ENO avec des blocs fonction qui possèdent (uniquement) une liaison en tant que paramètre de sortie : z z Si l'entrée EN de BlocFonction_1 est réglée sur "0", la connexion de sortie OUT de BlocFonction_1 conserve l'état qu'elle avait lors du dernier cycle correctement exécuté. Traitement des paramètres EN/ENO avec des blocs fonction qui possèdent une variable et une liaison en tant que paramètres de sortie : Si l'entrée EN de BlocFonction_1 est réglée sur "0", la connexion de sortie OUT de BlocFonction_1 conserve l'état qu'elle avait lors du dernier cycle correctement exécuté. La variable OUT1 présente sur la même broche conserve son état précédent ou peut être modifiée de manière externe sans incidence sur la connexion. La variable et la liaison sont enregistrées indépendamment l'une de l'autre. 22 33004220 02/2009 Types de module et leur utilisation z Fonctions/procédures Comme spécifié dans la norme CEI 61131-3, les sorties de fonctions désactivées (entrée EN égale à "0") ne sont pas définies. (Cette caractéristique s'applique également aux procédures.) Voici, néanmoins, une explication sur l'état de la sortie dans un tel cas : z Traitement des paramètres EN/ENO avec des fonctions/procédures qui possèdent (uniquement) une liaison en tant que paramètre de sortie : z Si l'entrée EN de Fonction/Procédure_1 est réglée sur "0", la connexion de sortie OUT de Fonction/Procédure_1 conserve l'état qu'elle avait lors du dernier cycle correctement exécuté. Traitement des paramètres EN/ENO avec des blocs fonction qui possèdent une variable et une liaison en tant que paramètres de sortie : Si l'entrée EN de Fonction/Procédure_1 est réglée sur "0", la connexion de sortie OUT de Fonction/Procédure_1 conserve l'état qu'elle avait lors du dernier cycle correctement exécuté. La variable OUT1 présente sur la même broche conserve son état précédent ou peut être modifiée de manière externe sans incidence sur la connexion. La variable et la liaison sont enregistrées indépendamment l'une de l'autre. Le comportement de la sortie des FFB ne dépend pas de la façon dont les FFB sont appelés (sans EN/ENO ou avec EN=1). Appel de FFB conditionnel/inconditionnel Un FFB peut être appelé de manière "conditionnelle" ou "inconditionnelle". La condition est établie en pré-connectant l'entrée EN. z Entrée EN connectée appels conditionnels (le FFB est exécuté uniquement si EN = 1) z Entrée EN affichée, masquée et marquée comme TRUE, ou affichée et non occupée appels inconditionnels (le FFB est toujours exécuté) NOTE : Pour les blocs fonction désactivés (EN = 0) équipés d'une fonction d'horloge interne (par exemple, le bloc fonction DELAY), le temps semble s'écouler, étant donné qu'il est calculé à l'aide d'une horloge système et qu'il est, par conséquent, indépendant du cycle du programme et de la libération du bloc. 33004220 02/2009 23 Types de module et leur utilisation Remarque concernant les langages IL et ST Les paramètres EN et la sortie ENO peuvent uniquement être utilisés dans les langages textuels et dans le cadre d'un appel de FFB formel, par exemple : MON_BLOC (EN:=enable, IN1:=var1, IN2:=var2, ENO=>error, OUT1=>result1, OUT2=>result2); L'affectation de variables à ENO doit être effectuée à l'aide de l'opérateur =>. L'entrée EN et la sortie ENO ne peuvent pas être utilisées pour un appel informel. 24 33004220 02/2009 disponibilité des blocs 33004220 02/2009 Disponibilité des blocs sur les différentes plates-formes 2 Disponibilité des blocs sur les différentes plates-formes Introduction Tous les blocs ne sont pas disponibles sur toutes les plates-formes matérielles. Le tableau suivant indique les blocs disponibles en fonction des plates-formes matérielles. NOTE : Les fonctions, procédures et blocs fonction de cette bibliothèque ne sont pas définis par la norme IEC 61131-3. 33004220 02/2009 25 disponibilité des blocs Fuzzy Disponibilité des blocs : Nom du bloc Type de bloc M340 Premium Quantum DEFUZ (voir page 49) EF + + + DEFUZ_STI, DEFUZ_STR (voir page 55) EF + + + FUZ_ATERM (voir page 61) Procédure + + + FUZ_ATERM_STI, FUZ_ATERM_STR (voir page 67) EF + + + FUZ_MAX (voir page 73) EF + + + FUZ_MIN (voir page 75) EF + + + FUZ_PROD (voir page 79) EF + + + FUZ_STERM (voir page 83) EF + + + FUZ_SUM (voir page 91) EF + + + Légende : 26 + oui - non 33004220 02/2009 33004220 02/2009 Fuzzy-Control 3 Introduction Ce chapitre explique tout d'abord, en détails, le Fuzzy-Control et comment il peut être mis en œuvre pour des opérations de réglage et de pilotage. Pour la mise en œuvre du Fuzzy-Control avec Unity Pro, les fonctions élémentaires (EF) et les blocs fonctions (EFB) sont fournis. Leur fonctionnement est également expliqué plus en détail dans ce chapitre. Contenu de ce chapitre Ce chapitre contient les sous-chapitres suivants : Souschapitre 33004220 02/2009 Sujet Page 3.1 Présentation de la théorie du Fuzzy-Control 28 3.2 Fuzzy-Control et Unity Pro 36 27 3.1 Présentation de la théorie du Fuzzy-Control Introduction Cette section contient une description des principes fondamentaux du FuzzyControl. NOTE : Ce chapitre ne tente pas de décrire le Fuzzy-Control de manière exacte mathématiquement, mais d'en fournir une explication. Pour de plus amples informations sur la théorie, consultez la documentation correspondante. Contenu de ce sous-chapitre Ce sous-chapitre contient les sujets suivants : Sujet 28 Page Principes fondamentaux du Fuzzy-Control 29 Fuzzy-Control et technique de régulation 30 Concepts de la théorie Fuzzy (théorie du flou) 31 33004220 02/2009 Principes fondamentaux du Fuzzy-Control Introduction L'expression Fuzzy-Logic (logique floue) désigne une théorie de « quantités floues ». Dans le domaine scientifique ou dans les programmes informatiques, seules deux valeurs (vrai/faux, marche/arrêt, 1/0) sont en général utilisées. Il n'existe pas de valeurs intermédiaires. Le concept principal de la Fuzzy-Logic consiste, en revanche, à prendre en compte des quantités floues, dont les éléments n'appartiennent que partiellement à un ensemble. Au lieu de n'autoriser que des états « associés » et « non associés », des états intermédiaires sont également permis. A l'aide de la Fuzzy-Logic, des incertitudes de tous types peuvent ainsi être décrites et traitées mathématiquement. Cette théorie trouve son utilisation la plus efficace en technique de régulation avec le Fuzzy-Control. Exemple : Température Si l'on considère une valeur physique (comme la température), cette valeur est en général représentée par un nombre et par une unité physique (21 degrés C, par exemple). La température peut toutefois être tout aussi bien décrite de manière verbale par des attributs. Elle peut être décrite comme étant « froide », « agréable » et « chaude », en parlant, par exemple, de la température ambiante. Ces attributs ne sont plus exactement délimités les uns par rapport aux autres, il s'agit de descriptions floues de la température. Une température ambiante de 15 degrés C est généralement qualifiée de « froide », tandis qu'une température de 21 degrés C est considérée comme « chaude ». Dans le raisonnement humain, il n'existe pas de démarcation stricte entre « froid » et « agréable », comme on la connaît dans la logique classique, qui fonctionne, il est vrai, uniquement avec les notions logiques « vrai » (TRUE, 1) ou « faux » (FALSE, 0). Il s'agit plus d'une transition progressive de « froid » à « agréable ». 33004220 02/2009 29 Fuzzy-Control et technique de régulation Introduction En technique de régulation, une ou plusieurs variables de pilotage sont produites en fonction d'une ou de plusieurs variables d'entrée. Les variables d'entrée sont reliées entre elles de manière logique et numérique. Les résultats de la liaison ou du calcul sont des variables de sortie. Le Fuzzy-Control procède de même. La variable d'entrée est convertie en variable linguistique à l'aide de termes linguistiques, puis évaluée à l'aide de règles. Le résultat, également une variable linguistique « floue » (Fuzzy), doit être à nouveau converti en variable de pilotage, aucune vanne ne pouvant être contrôlée avec une variable « floue ». Fuzzy-Control et technique de régulation Déroulement dans la technique de régulation Niveau 30 Description 1 Les variables d'entrée sont fuzzifiées. 2 Les variables linguistiques ainsi obtenues sont reliées entre elles selon des règles déterminées par les opérateurs correspondants. Résultat du traitement de toutes les règles (inférence) : une variable de sortie « floue », c'est-à-dire une variable décrite avec ses degrés d'appartenance par des attributs. 3 Défuzzification des variables de sortie en un nombre univoque, auquel, une action peut alors être associée dans le processus de contrôle. 33004220 02/2009 Concepts de la théorie Fuzzy (théorie du flou) Termes et variables linguistiques Exemple Si la température est définie comme variable linguistique, elle peut alors être décrite par les termes « froid », « agréable » et « chaud ». Définition z Une variable linguistique est une variable (la température, par exemple) décrite par des termes linguistiques. z Des termes linguistiques décrivent des attributs d'une variable linguistique. Degré d'appartenance Exemple Les termes linguistiques « froid », « agréable » et « chaud » ne peuvent pas être clairement délimités les uns par rapport aux autres. Afin de mieux déterminer ces démarcations floues, chaque terme linguistique est évalué avec un degré d'appartenance. Ce degré d'appartenance signifie alors dans quelle mesure la température est vraiment froide. z Un degré d'appartenance de 0 pour le terme linguistique « froid » signifie que la température n'est pas du tout froide. z Un degré d'appartenance de 1 pour le terme linguistique « froid » signifie que la température est extrêmement froide. Ces différentes notions sont à nouveau expliquées en images. Exemple d'un degré d'appartenance 33004220 02/2009 31 Définition Le degré d'appartenance définit dans quelle mesure une valeur physique est attribuée à un terme linguistique. z 0 signifie que la valeur ne correspond pas du tout au terme linguistique. z 1 signifie que la valeur correspond complètement au terme linguistique. Fonction d'appartenance Exemple La transition légère entre « pas vraiment froid » et « vraiment froid » est décrite par une fonction. De telles fonctions sont appelées « fonctions d'appartenance », car elles décrivent le degré d'appartenance de chaque valeur physique à son terme linguistique. Pour la variable température, la fonction d'appartenance ne décrit pas seulement si une température est « froide » ou non, elle attribue en outre à chaque valeur physique une valeur de fiabilité avec l'expression « la température est froide » : il s'agit du degré d'appartenance. En général, il suffit de déterminer les appartenances par des variations de la fonction relativement simples, comme les triangles, les trapèzes ou les rampes. Un degré d'appartenance peut ainsi être déterminé pour chaque valeur physique de la variable température. Dans cet exemple, le degré d'appartenance est déterminé pour deux valeurs de température différentes. Si une fonction d'appartenance est définie pour un terme linguistique, on peut alors déterminer l'appartenance de la variable température au terme linguistique correspondant à l'aide du degré d'appartenance. Définition La fonction d'appartenance attribue, pour chaque valeur physique, un degré d'appartenance à un terme linguistique. 32 33004220 02/2009 Fuzzification Exemple Fuzzification de la variable d'entrée température Comparaison de la variable d'entrée dans une représentation stricte et dans une représentation Fuzzy (floue). z Représentation stricte : la température est de 21 degrés C. z Représentation Fuzzy : la température est : z froide jusqu'au degré d'appartenance 0 z agréable jusqu'au degré d'appartenance 0,7 z chaude jusqu'au degré d'appartenance 0,3 Définition On appelle fuzzification la détermination du degré d'appartenance de tous les termes linguistiques d'une variable par rapport à une variable d'entrée. Règles Exemple Prenons l'exemple de nos activités quotidiennes : nous constatons qu'elles sont basées sur diverses conditions. Nous accomplissons une chose lorsqu'une condition est satisfaite. Pour décrire nos actions, nous utilisons des règles. Prenons par exemple cette règle : z Si la température d'une pièce est ressentie comme étant froide, nous allons augmenter un peu le chauffage. Ou bien : z Si la température de la pièce est ressentie comme étant chaude, nous allons diminuer un peu le chauffage. Prenons un autre exemple de règle : z Lorsqu'en été, la température extérieure n'est pas froide, nous allons arrêter complètement le chauffage. 33004220 02/2009 33 Derrière ces règles se cache le savoir d'un expert, qui, par une étude plus ou moins approfondie, a acquis la faculté d'influer sur un processus dans un sens souhaité. Le savoir de l'expert ne se limite ici pas uniquement à la manière de procéder (augmentons un peu le chauffage), mais est en même temps relié à la connaissance de ce qu'« un peu » signifie, par exemple, comment tourner le thermostat. Définition Une règle représente une déclaration (floue) sur la variable de sortie pour une variable d'entrée déterminée (floue). Opérateurs Exemple La plupart du temps, des conditions sont associées les unes aux autres dans les règles par les expressions orales « ET » et « OU ». Dans l'exemple, la condition « En étȆª (la variable de base est ici la saison et le terme linguistique est l'été) est associée à la condition « lorsque la température extérieure n'est pas froide » de telle manière que les deux déclarations doivent s'appliquer pour en tirer la conclusion. Ces associations ET et OU sont traitées dans la technique Fuzzy par des opérateurs mathématiques. Dans la théorie Fuzzy, il existe une série d'opérateurs qui réalisent d'un côté l'association ET et d'un autre l'association OU. Le plus simple opérateur pour l'association ET est le « minimum » et le plus simple opérateur pour l'association OU est le « maximum ». Définition L'association des conditions s'effectue par des opérateurs. Pondération des règles Lors de la fixation de règles, l'attribution de différentes pondérations peut s'avérer nécessaire. Ainsi, par exemple, une règle est toujours confirmée (à 100 %), une autre pas toujours (à 80 %). Pour pouvoir l'exprimer, un degré de vraisemblance peut être attribué à chaque règle. En règle générale, ceci est obtenu mathématiquement en multipliant le résultat de l'association d'une règle par le degré de vraisemblance. Inférence L'inférence est le résultat du traitement de toutes les règles. 34 33004220 02/2009 Défuzzification Exemple La façon la plus simple de transformer une variable floue (Fuzzy) en variable précise consiste à ce que chaque attribut de la variable floue fournisse une proposition pour une variable précise. Chaque terme linguistique est ainsi représenté par une valeur numérique fixe pour la variable. On parle ici de singletons. Les propositions faites pour chacun des termes linguistiques sont alors pondérées par les degrés d'appartenance correspondants. De cette manière, la variable Fuzzy devient une variable précise de façon arithmétique. Singletons NOTE : Il existe également dans la théorie Fuzzy une série d'autres méthodes de défuzzification, dont certaines se caractérisent par une grande abondance de calculs. Ces méthodes ne seront pas traitées ici. Définition On appelle défuzzification la transformation de variables floues (Fuzzy) en variables précises. 33004220 02/2009 35 3.2 Fuzzy-Control et Unity Pro Introduction Ce chapitre décrit la configuration de la Fuzzy Logic (logique floue) ainsi que les fonctions fournies par Unity Pro à cet effet. Contenu de ce sous-chapitre Ce sous-chapitre contient les sujets suivants : Sujet 36 Page Fonctions de la bibliothèque Fuzzy-Control 37 Fuzzification 38 Inférence 40 Défuzzification 41 Exemple dans Unity Pro 42 33004220 02/2009 Fonctions de la bibliothèque Fuzzy-Control Fonctions de la bibliothèque Fuzzy Fonctions arithmétiques INT et REAL (des entiers et des réels) Opération Fonction Famille Description Fuzzification FUZ_STERM (voir page 83) Fuzzify Fuzzification d'un terme. Fuzzification FUZ_ATERM (voir page 61) Fuzzify Fuzzification de 9 termes maximum en une fois. Fuzzification FUZ_ATERM_STI, FUZ_ATERM_STR (voir page 67) Fuzzyfy_Struct Fuzzification de 9 termes maximum en une fois. Stockage du résultat dans la structure de données. Inférence FUZ_MAX (voir page 73) Operators_OR Opérateur OU : Maximum Inférence FUZ_MIN (voir page 75) Operators_AND Opérateur ET : minimum. Inférence FUZ_SUM (voir page 91) Operators_OR Opérateur OU : somme. Inférence FUZ_PROD (voir page 79) Operators_AND Opérateur ET : produit Défuzzification DEFUZ (voir page 49) Defuzzify Défuzzification avec des singletons. Défuzzification DEFUZ_STI, DEFUZ_STR (voir page 55) Defuzzify_Struct Défuzzification avec des singletons. Suppression des entrées de la structure de données. Les différences entre l'arithmétique des entiers et l'arithmétique des réels sont les suivantes : z La solution est à l'intérieur du calcul. La solution du degré d'appartenance est de 0,01 %. La plage de valeurs du degré d'appartenance allant de 0 à 1 est mise à l'échelle de 0 à 10 000. z La possibilité de travailler dans l'arithmétique des réels avec des valeurs physiques. z Le temps d'exécution est plus grand que dans l'arithmétique des réels. 33004220 02/2009 37 Fuzzification Introduction Toutes les variables à être reliées à l'aide de règles linguistiques doivent être fuzzifiées. Pour cela, il faut au préalable évaluer le nombre d'attributs des variables à affecter. Cela dépend de la nécessité d'utiliser, ou non, ces attributs dans les règles. En règle générale, 3 à 5 de ces attributs suffisent. Dans Unity Pro, vous avez la possibilité de choisir soit une fuzzification pour chaque terme d'une variable, soit une fuzzification pour 9 termes (maximum) de cette variable. Fuzzification avec FUZ_STERM La fuzzification d'un terme isolé s'effectue avec la fonction d'appartenance, qui peut accepter jusqu'à 4 points d'appui. Les fonctions d'appartenance peuvent se présenter des manières suivantes : Vous trouverez de plus amples informations à ce sujet dans la description du bloc FUZ_STERM (voir page 83). 38 33004220 02/2009 Fuzzification avec FUZ_ATERM ou FUZ_ATERM_ST En général, les fonctions les plus souvent utilisées sont la rampe et le triangle. La fuzzification d'un terme isolé offre une grande flexibilité pour des utilisateurs expérimentés du Fuzzy, mais la manière la plus simple de fuzzifier une variable consiste à utiliser les blocs FUZ_ATERM (voir page 61) ou FUZ_ATERM_ST (voir page 67). En effet, ces blocs ne fuzzifient pas non seulement un terme, mais tous les termes d'une variable Fuzzy. Ils simplifient également l'entrée de la fonction d'appartenance pour différents termes. L'idée qui soutend cette simplification est que les différentes fonctions d'appartenance de tous les termes d'une variable Fuzzy sont dépendantes les unes des autres. Dans la plupart des cas, la somme du degré d'appartenance de deux fonctions qui se suivent est 1. Si, pour une question de simplicité, on n'utilise que des fonctions triangle au lieu de la fonction trapèze, on obtient alors l'exemple suivant de la définition d'une fonction d'appartenance pour 6 termes : Dans ce cas, seuls 6 points de base sont à définir, au lieu de 2 x 2 + 4 x 3 = 14 points de base dans le cas d'une fuzzification avec le bloc FUZ_STERM (voir page 83). Le bloc FUZ_ATERM (voir page 61) / FUZ_ATERM_ST (voir page 67) autorise 9 attributs au maximum. La fuzzification doit être exécutée pour chaque variable d'entrée. Le résultat produit par chaque fuzzification est un degré d'appartenance pour chaque terme associé aux attributs. Lors de l'utilisation du bloc FUZ_ATERM (voir page 61), le résultat est l'élaboration de chaque variable pour l'utilisation de liaisons graphiques dans l'inférence. Lors de l'utilisation du bloc FUZ_ATERM_ST (voir page 67), les degrés d'appartenance sont ajoutés dans une structure de données. 33004220 02/2009 39 Inférence Création des règles Les règles sont obtenues par la liaison du degré d'appartenance des variables Fuzzy. Les entrées des blocs, qui représentent les opérateurs Fuzzy, sont associées aux degrés d'appartenance (produit par les blocs Fuzzy). Les paires FUZ_MIN (voir page 75)/FUZ_MAX (voir page 73) et FUZ_PROD (voir page 79)/FUZ_SUM (voir page 91) se révèlent être de bonnes combinaisons pour les associations ET/OU. Pour une première tentative, utilisez la paire FUZ_MIN (voir page 75)/FUZ_MAX (voir page 73). Pondération des règles Les règles doivent être pondérées par une multiplication. Pour l'arithmétique des réels, on se sert du bloc FUZ_PROD (voir page 79) à l'aide de variables du type de données REAL. Pour l'arithmétique des entiers, on se sert du bloc FUZ_PROD (voir page 79) à l'aide de variables du type de données INT, qui tient compte de la forme normalisée des degrés d'appartenance de 0 à 10 0000. 40 33004220 02/2009 Défuzzification Principe Les résultats de l'utilisation de toutes les règles sont de nouveau des degrés d'appartenance aux attributs de la variable de sortie. Pour obtenir un résultat exploitable (des attributs avec des degrés d'appartenance ne peuvent pas être utilisés directement pour contrôler des valeurs, par exemple), les degrés d'appartenance de tous les termes des variables doivent être combinés de manière sensée. Ceci peut être obtenu par le bloc de défuzzification DEFUZ (voir page 49). Fonctionnement dans Unity Pro DEFUZ (voir page 49) produit, au moyen de singletons à partir des degrés d'appartenance, une valeur univoque pour les variables de sortie, qui est attribuée aux termes des variables de sortie. 33004220 02/2009 41 Exemple dans Unity Pro Valeurs par défaut Cet exemple est basé sur la logique des nombres entiers. 2 variables : ipres et itemp doivent être évaluées d'après quatre règles prédéfinies. Fuzzification de la variable ipress (ipress a 3 termes linguistiques) en dessous_norm z norm z en dessus_norm z Fuzzification de la variable ipress Fuzzification de la variable itemp (itemp a 4 termes linguistiques) z basse z moyenne z élevée z très_élevée 42 33004220 02/2009 Fuzzification de la variable itemp Les quatre règles suivantes sont valides : z IF ipress = norm AND itemp = élevée THEN vanne= presque_fermée z IF ipress = en dessus_norm AND itemp = très_élevée THEN vanne = fermée z IF ipress = norm AND itemp = moyenne THEN vanne= presque_ouverte z IF ipress = en dessous_norm AND itemp = basse THEN vanne = ouverte La défuzzification doit s'effectuer avec des singletons. Défuzzification de la variable ivalve (ivalve a 4 termes linguistiques) z fermée z presque_fermée z presque_ouverte z ouverte Défuzzification de la variable ivalve 33004220 02/2009 43 Mise en application dans Unity Pro Fuzzification : 44 33004220 02/2009 Défuzzification : 33004220 02/2009 45 46 33004220 02/2009 Descriptions des EFB 33004220 02/2009 Descriptions des EFB II Introduction Les descriptions des EFB sont classées par ordre alphabétique. Contenu de cette partie Cette partie contient les chapitres suivants : Chapitre 33004220 02/2009 Titre du chapitre Page 4 DEFUZ : Défuzzification avec des singletons 49 5 DEFUZ_STI, DEFUZ_STR : défuzzification avec des singletons (structure) 55 6 FUZ_ATERM : Fuzzification de tous les termes 61 7 FUZ_ATERM_STI, FUZ_ATERM_STR : fuzzification de tous les termes (structure) 67 8 FUZ_MAX : Fuzzy Maximum 73 9 FUZ_MIN : Fuzzy Minimum 75 10 FUZ_PROD : produit Fuzzy 79 11 FUZ_STERM : Fuzzification d'un terme 83 12 FUZ_SUM : somme Fuzzy 91 47 Descriptions des EFB 48 33004220 02/2009 DEFUZ : Défuzzification avec des singletons 33004220 02/2009 DEFUZ : Défuzzification avec des singletons 4 Introduction Ce chapitre décrit la fonction DEFUZ. Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet 33004220 02/2009 Page Description 50 Description détaillée 53 49 DEFUZ : Défuzzification avec des singletons Description Description de la fonction Cette fonction permet de défuzzifier des termes linguistiques qui sont représentés par des singletons, suivant la méthode de la moyenne maximum. La position des singletons est définie par des points d'appui (S1 à S9). Chaque terme est pondéré par son degré d'appartenance (MD1 à MD9). La plage de valeurs du degré d'appartenance pour le type de données INT va de 0 à 10 000 et pour le type de données REAL, de 0 à 1 . Le nombre d'entrées (MDiSi) peut être augmenté (18 au maximum) en modifiant verticalement la taille de la trame du bloc. Ceci correspond à 9 singletons. Il n'est pas possible de configurer d'autres entrées. Les types de données de toutes les valeurs d'entrée (MDiSi) et ceux de la valeur de sortie doivent être identiques. Les paramètres supplémentaires EN et ENO peuvent être configurés. Formule Explication : n = nombre de singletons Condition : 2 ≤ n ≤ 9 Représentation en FBD Représentation : 50 33004220 02/2009 DEFUZ : Défuzzification avec des singletons Représentation en LD Représentation : Représentation en IL LD Last_Y DEFUZ Single1Mem1, Single1Sup1, ..., SingleNSupx ST Current_Y Représentation en ST Current_Y := DEFUZ (Last_Y, Single1Mem1, Single1Sup1, ..., SingleNSupx) ; Description des paramètres Description des paramètres d'entrée : Paramètre Type de données Signification ZERO_Y BOOL 0: Sortie de la dernière valeur Y MDiSi1 INT, REAL Singleton : 1 ; degré d'appartenance MD1 MDiSi2 INT, REAL Singleton : 1 ; point d'appui S1 MDiSi3 INT, REAL Singleton : 2 ; degré d'appartenance MD2 MDiSi4 INT, REAL Singleton : 2 ; point d'appui S2 : : : MDiSi17 INT, REAL Singleton : 9 ; degré d'appartenance MD9 MDiSi18 INT, REAL Singleton : 9 ; point d'appui S9 Description des paramètres de sortie : 33004220 02/2009 Paramètre Type de données Signification Y INT, REAL Sortie 51 DEFUZ : Défuzzification avec des singletons Erreurs d'exécution Un message d'erreur s'affiche si : plus de 9 points d'appui (ce qui correspond à 18 entrées MDiSi au maximum) ont été configurés (E_EFB_TOO_MANY_INPUTS), z le bloc fonction a été paramétré avec un nombre d'entrées impair (E_EFB_WRONG_NUMBER_OF_INPUTS) ou z si un des degrés d'appartenance MD1 à MD9 est en dehors de la plage de valeurs (E_EFB_INPUT_VALUE_OUT_OF_RANGE). Seules les plages de valeurs suivantes sont acceptées : z INT : 0 ... 10 000 z REAL : 0 ... 1 z 52 33004220 02/2009 DEFUZ : Défuzzification avec des singletons Description détaillée Description détaillée Pour la défuzzification de variables linguistiques, on dispose de la fonction DEFUZ comme fonction d'appartenance pour la méthode de la moyenne maximum avec des singletons. La position des singletons est définie par des points d'appui. Lors de la configuration des fonctions, veillez à ce que les entrées soient toujours utilisées par paires, puisque chaque valeur linguistique est pondérée par son degré d'appartenance. La sortie Y est définie sur 0. Si tous les degrés d'appartenance ont la valeur 0, le comportement de sortie du bloc fonction peut être déterminé par l'entrée ZERO_Y : 33004220 02/2009 Valeur ZERO_Y Résultat ZERO_Y = 0 La sortie Y reste inchangée. ZERO_Y = 1 La sortie Y est définie sur 0. 53 DEFUZ : Défuzzification avec des singletons 54 33004220 02/2009 DEFUZ_STI, DEFUZ_STR : Défuzzification avec des singletons (structure) 33004220 02/2009 DEFUZ_STI, DEFUZ_STR : défuzzification avec des singletons (structure) 5 Introduction Ce chapitre décrit les fonctions suivantes : z DEFUZ_STI z DEFUZ_STR Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet 33004220 02/2009 Page Description 56 Description détaillée 59 55 DEFUZ_STI, DEFUZ_STR : Défuzzification avec des singletons (structure) Description Description de la fonction Cette fonction permet de défuzzifier des termes linguistiques qui sont représentés par des singletons, suivant la méthode de la moyenne maximum. La position des singletons est définie par des points d'appui (S1 à S9). Chaque terme est pondéré par son degré d'appartenance (term1 à term9) à la structure de données FUZ_MD_INT (pour DEFUZ_STI) ou FUZ_MD_REAL (pour DEFUZ_STR). La plage de valeurs du degré d'appartenance pour le type de données INT va de 0 à 10 000 et pour le type de données REAL, de 0 à 1. Le nombre d'entrées (S1 à Sn) peut être augmenté (9 au maximum) en modifiant verticalement la taille de la trame du bloc. Il n'est pas possible de configurer d'autres entrées. Les types de données de toutes les valeurs d'entrée (Sn) doivent être identiques. Une fonction spéciale est disponible à chaque fois pour le traitement des différents types de données. Les paramètres supplémentaires EN et ENO peuvent être configurés. Fonctions disponibles Les fonctions disponibles sont les suivantes : DEFUZ_STI z DEFUZ_STR z Représentation en FBD Représentation 56 33004220 02/2009 DEFUZ_STI, DEFUZ_STR : Défuzzification avec des singletons Représentation en LD Représentation : Représentation en IL LD Last_Y DEFUZ_STI Member, SP1, SP2, ..., SP9 ST FUZ_MD Représentation en ST FUZ_MD := DEFUZ_STI (Last_Y, Member, SP1, SP2, ..., SP9) ; Formule Formule de la fonction Définition : n = nombre de singletons Condition : 2 ≤ n ≤ 9 33004220 02/2009 57 DEFUZ_STI, DEFUZ_STR : Défuzzification avec des singletons (structure) Description des paramètres Description des paramètres d'entrée : Paramètre Type de données Signification ZERO_Y BOOL 0: Sortie de la dernière valeur Y 1: La sortie Y est paramétrée sur « 0 ». MD FUZ_MD_INT, FUZ_MD_REAL Degré d'appartenance (term1 à term9) S1 INT, REAL Singleton : 1 S2 INT, REAL Singleton : 2 : : : S9 INT, REAL Singleton : 9 Description des paramètres de sortie : Paramètre Type de données Signification Y INT, REAL Sortie Description des structures de données FUZ_MD_INT et FUZ_MD_REAL Elément Type de données Signification n INT Nombre de termes term1 INT, REAL Degré d'appartenance (MD1) : : : term9 INT, REAL Degré d'appartenance (MD9) Erreurs d'exécution Un message d'erreur (E_EFB_TOO_MANY_INPUTS) s'affiche, lorsque plus de 9 points d'appui ont été configurés. Un avertissement (E_EFB_WRONG_NUMBER_OF_INPUTS) s'affiche lorsque le nombre d'entrées (= nombre des points d'appui S1 à Sn) ne correspond pas au nombre de termes utilisés (MD) dans la structure de données FUZ_MD_INT.n (pour DEFUZ_STI) ou FUZ_MD_REAL.n (pour DEFUZ_STR). Dans ce cas, le nombre de points d'appui inclus dans le calcul de la valeur de sortie doit correspondre au nombre de termes utilisés (MD) dans la structure de données FUZ_MD_INT.n (pour DEFUZ_STI) ou FUZ_MD_REAL.n (pour DEFUZ_STR). 58 33004220 02/2009 DEFUZ_STI, DEFUZ_STR : Défuzzification avec des singletons Description détaillée Description détaillée Pour la défuzzification de variables linguistiques, on dispose de la fonction DEFUZ comme fonction d'appartenance pour la méthode de la moyenne maximum avec des singletons. La position des singletons est définie avec des points d'appui (S1 à S9). Chaque terme linguistique est pondéré par son degré d'appartenance. Si tous les degrés d'appartenance ont la valeur 0, le comportement de sortie du bloc fonction peut être déterminé par l'entrée ZERO_Y : 33004220 02/2009 Valeur ZERO_Y Résultat ZERO_Y = 0 La sortie Y reste inchangée. ZERO_Y = 1 La sortie Y est définie sur 0. 59 DEFUZ_STI, DEFUZ_STR : Défuzzification avec des singletons (structure) 60 33004220 02/2009 FUZ_ATERM : Fuzzification de tous les termes 33004220 02/2009 FUZ_ATERM : Fuzzification de tous les termes 6 Présentation Ce chapitre décrit la procédure FUZ_ATERM. Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet 33004220 02/2009 Page Description courte 62 Description détaillée 65 61 FUZ_ATERM : Fuzzification de tous les termes Description courte Description de la fonction Cette procédure permet de fuzzifier jusqu'à 9 termes des variables linguistiques (entrée X) et d'indiquer chaque degré d'appartenance (sorties MD1 à MD9). La plage de valeurs au niveau de la sortie pour le type de données INT est de 0 à 10 000 et pour le type de données REAL, de 0 à 1. Les fonctions d'appartenance sont définies par des points d'appui (entrées extensibles S1 à S9). Cette procédure fonctionne avec une simplification propre à la définition de la fonction d'appartenance : z des rampes pour la première et la dernière fonction d'appartenance ; z uniquement des triangles pour les fonctions d'appartenance entre la première et la dernière ; z la somme de deux degrés d'appartenance de deux termes linguistiques successifs est toujours 1 (10 000) ; z la somme des degrés d'appartenance de tous les termes linguistiques pour chaque valeur d'entrée X est toujours 1 (10 000) ; Le nombre de points d'appui (S1 à Sx) peut être augmenté (9 au maximum) en modifiant verticalement la taille de la trame du bloc. Il n'est pas possible de configurer d'autres points d'appui. Le nombre de degrés d'appartenance calculés correspond au nombre de fonctions d'appartenance. Si la configuration comprend moins de neuf fonctions d'appartenance, les sorties restantes ont la valeur 0. (par exemple, pour 4 fonctions d'appartenance, on compte 4 degrés d'appartenance pour MD1 à MD4 et MD5 à MD9 sont à 0). Les types de données de toutes les valeurs d'entrée et celui de la valeur de sortie doivent être identiques. Les paramètres supplémentaires EN et ENO peuvent être configurés. 62 33004220 02/2009 FUZ_ATERM : Fuzzification de tous les termes Représentation en FBD Représentation : Représentation en LD Représentation : Représentation en IL LD InputFUZ_ATERM SP1, SP2, ..., SP9, Member1, Member2, ..., Member9 33004220 02/2009 63 FUZ_ATERM : Fuzzification de tous les termes Représentation en ST FUZ_ATERM (Input, SP1, SP2, ..., SP9, Member1, Member2, ..., Member9); Description des paramètres Description des paramètres d'entrée : Paramètres Type de données Signification X INT, REAL Variable linguistique S1 INT, REAL Point d'appui S1 S2 INT, REAL Point d'appui S2 : : : S9 INT, REAL Point d'appui S9 Description des paramètres de sortie : Paramètres Type de données Signification MD1 INT, REAL Degré d'appartenance MD1 en sortie MD2 INT, REAL Degré d'appartenance MD2 en sortie : : : MD9 INT, REAL Degré d'appartenance MD9 en sortie Erreurs d'exécution Un message d'erreur s'affiche lorsque : les points d'appui ne sont pas triés dans l'ordre (E_EFB_INPUT_VALUE_OUT_OF_RANGE). Les points d'appui doivent être triés dans l'ordre croissant (S1 < S2 < S3 < à < S9) ou z la configuration comporte plus de 9 points d'appui (E_EFB_TOO_MANY_INPUTS). z 64 33004220 02/2009 FUZ_ATERM : Fuzzification de tous les termes Description détaillée Description des paramètres Avec la procédure FUZ_ATERM, tous les termes d'une variable linguistique peuvent être fuzzifiés en même temps. Les fonctions d'appartenance sont déterminées par des points d'appui (S1, S2, S3, etc.). Le concept de cette fuzzification permet de définir les extrémités de plusieurs fonctions d'appartenance avec un point d'appui à la fois. Ces fonctions d'appartenance se présentent sous forme de rampes et de triangles, la somme des différents degrés d'appartenance étant toujours 100 %. Ces corrélations sont présentées dans les diagrammes temporels suivants. Diagrammes temporels 2 fonctions d'appartenance, 2 points d'appui, 2 degrés d'appartenance 3 fonctions d'appartenance, 3 points d'appui, 3 degrés d'appartenance 33004220 02/2009 65 FUZ_ATERM : Fuzzification de tous les termes 4 fonctions d'appartenance, 4 points d'appui, 4 degrés d'appartenance 66 33004220 02/2009 FUZ_ATERM_STI, FUZ_ATERM_STR : Fuzzification de tous les termes (structure) 33004220 02/2009 FUZ_ATERM_STI, FUZ_ATERM_STR : fuzzification de tous les termes (structure) 7 Introduction Ce chapitre décrit les fonctions suivantes : z FUZ_ATERM_STI z FUZ_ATERM_STR Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet 33004220 02/2009 Page Description courte 68 Description détaillée 71 67 FUZ_ATERM_STI, FUZ_ATERM_STR : Fuzzification de tous les termes (structure) Description courte Description de la fonction Cette fonction permet de fuzzifier jusqu'à 9 termes des variables linguistiques (entrée X) et de générer au niveau de la sortie chacun des degrés d'appartenance de la structure de données FUZ_MD_INT (pourFUZ_ATERM_STI) ou FUZ_MD_REAL (pour FUZ_ATERM_STR) dans les éléments term1 à term9. La plage de valeurs au niveau de la sortie pour le type de données INT est de 0 à 10 000 et pour le type de données REAL, de 0 à 1. Les fonctions d'appartenance sont définies par des points d'appui (entrées extensibles S1 à S9). La fonction utilise une simplification propre à la définition de la fonction d'appartenance : z des rampes pour la première et la dernière fonction d'appartenance ; z uniquement des triangles pour les fonctions d'appartenance entre la première et la dernière ; z la somme de deux degrés d'appartenance de deux termes linguistiques successifs est toujours 1 (10 000) ; z la somme des degrés d'appartenance de tous les termes linguistiques pour chaque valeur d'entrée X est toujours 1 (10 000) Le nombre de points d'appui (S1 à Sx) peut être augmenté (9 au maximum) en modifiant verticalement la taille de la trame du bloc. Il n'est pas possible de configurer d'autres points d'appui. Le nombre de degrés d'appartenance calculés correspond au nombre de fonctions d'appartenance, il est stocké dans la structure de données (élément n).. Si vous configurez moins de neuf fonctions d'appartenance, les éléments restants de la structure de données (termx) ne sont pas modifiés. (par exemple, si 4 points d'appui sont associés à 4 fonctions d'appartenance dont les 4 degrés d'appartenance sont appliqués aux éléments term1 à term4, alors term5 à term9 ne sont pas modifiés.) Ceci présente l'avantage que les structures de données constituées en mémoire d'état n'occupent que la place dont elles ont vraiment besoin. Les types de données de toutes les valeurs d'entrée doivent être identiques. Une fonction spéciale est disponible à chaque fois pour le traitement des différents types de données. Les paramètres supplémentaires EN et ENO peuvent être configurés. Fonctions disponibles Les fonctions disponibles sont les suivantes : z FUZ_ATERM_STI z FUZ_ATERM_STR 68 33004220 02/2009 FUZ_ATERM_STI, FUZ_ATERM_STR : Fuzzification de tous les Représentation en FBD Représentation Représentation en LD Représentation : Représentation en IL LD Liguistic_Var FUZ_ATERM_STI SP1, SP2, ..., SP9 ST Member Représentation en ST Member := FUZ_ATERM_STI (Liguistic_Var, SP1, SP2, ..., SP9) ; 33004220 02/2009 69 FUZ_ATERM_STI, FUZ_ATERM_STR : Fuzzification de tous les termes (structure) Description des paramètres Description des paramètres d'entrée : Paramètre Type de données Signification X INT, REAL Variable linguistique S1 INT, REAL Point d'appui S1 S2 INT, REAL Point d'appui S2 : : : S9 INT, REAL Point d'appui S9 Description des paramètres de sortie : Paramètre Type de données Signification MD FUZ_MD_INT, FUZ_MD_REAL Sortie de degré d'appartenance (term1 à term9) Description des structures de données FUZ_MD_INT et FUZ_MD_REAL : Elément Type de données Signification n INT Nombre de termes term1 INT, REAL Degré d'appartenance (MD1) : : : term9 INT, REAL Degré d'appartenance (MD9) Erreurs d'exécution Un message d'erreur s'affiche si : les points d'appui ne sont pas triés dans l'ordre (E_EFB_INPUT_VALUE_OUT_OF_RANGE). Les points d'appui doivent être triés dans l'ordre croissant (S1 < S2 < S3 < à < S9) ou z la configuration comporte plus de 9 points d'appui (E_EFB_TOO_MANY_INPUTS). z 70 33004220 02/2009 FUZ_ATERM_STI, FUZ_ATERM_STR : Fuzzification de tous les Description détaillée Description des paramètres et diagrammes temporels Vous trouverez la description des paramètres et les diagrammes temporels de ce bloc dans Description détaillée, page 65. 33004220 02/2009 71 FUZ_ATERM_STI, FUZ_ATERM_STR : Fuzzification de tous les termes (structure) 72 33004220 02/2009 FUZ_MAX : Fuzzy maximum 33004220 02/2009 FUZ_MAX : Fuzzy Maximum 8 Description courte Description de la fonction Cette fonction permet de reconnaître la plus grande valeur d'entrée et de la générer au niveau de la sortie. Les types de données INT et REAL peuvent être traités. La plage de valeurs des entrées et de la sortie pour le type de données INT va de <= 10 000 et pour le type de données REAL, de <= 1,0. Les types de données de toutes les valeurs d'entrée et celui de la valeur de sortie doivent être identiques. Le nombre d'entrées peut être augmenté (32 au maximum). Les paramètres supplémentaires EN et ENO peuvent être configurés. Formule OUT = MAX(0, IN1, IN2, ..., INn) Représentation en FBD Représentation 33004220 02/2009 73 FUZ_MAX : Fuzzy maximum Représentation en LD Représentation Représentation en IL LD Input1 FUZ_MAX Input2, ..., Inputn ST Output Représentation en ST Output := FUZ_MAX (Input1, Input2, ..., Inputn) ; Description des paramètres Description des paramètres d'entrée : Paramètre Type de données Signification IN1 INT, REAL 1ère valeur d'entrée IN2 INT, REAL 2e valeur d'entrée : : : INn INT, REAL n. valeur d'entrée Sortie INT, REAL Valeur maximale Erreurs d'exécution Un message d'erreur s'affiche lorsque l'une des valeurs d'entrée est en dehors de la plage de valeurs (E_EFB_INPUT_VALUE_OUT_OF_RANGE). Seules les plages de valeurs suivantes sont acceptées : z INT : <= 10 000 z REAL : <= 1,0 74 33004220 02/2009 FUZ_MIN : Fuzzy minimum 33004220 02/2009 FUZ_MIN : Fuzzy Minimum 9 Description courte Description de la fonction Cette fonction permet de reconnaître la plus petite valeur d'entrée et de la générer au niveau de la sortie. Les types de données INT et REAL peuvent être traités. La plage de valeurs des entrées et de la sortie pour le type de données INT va de >= 0 et pour le type de données REAL, de >= 0. Les types de données de toutes les valeurs d'entrée et celui de la valeur de sortie doivent être identiques. Le nombre d'entrées peut être augmenté (32 au maximum). Les paramètres supplémentaires EN et ENO peuvent être configurés. Formule REAL: OUT = MIN(1, IN1, IN2, ... INn) INT: OUT = MIN(10000, IN1, IN2, ... INn Représentation en FBD Représentation 33004220 02/2009 75 FUZ_MIN : Fuzzy minimum Représentation en LD Représentation Représentation en IL LD Input1 FUZ_MIN Input2, ..., Inputn ST Output Représentation en ST Output := FUZ_MIN (Input1, Input2, ..., Inputn) ; Description des paramètres Description des paramètres d'entrée : Paramètre Type de données Signification IN1 INT, REAL 1ère valeur d'entrée IN2 INT, REAL 2e valeur d'entrée : : : INn INT, REAL n. valeur d'entrée Description des paramètres de sortie : 76 Paramètre Type de données Signification Sortie INT, REAL Valeur maximale 33004220 02/2009 FUZ_MIN : Fuzzy minimum Erreurs d'exécution Un message d'erreur s'affiche lorsque l'une des valeurs d'entrée est en dehors de la plage de valeurs (E_EFB_INPUT_VALUE_OUT_OF_RANGE). Seules les plages de valeurs suivantes sont acceptées : z INT : >= 0 z REAL : >= 0 33004220 02/2009 77 FUZ_MIN : Fuzzy minimum 78 33004220 02/2009 FUZ_PROD : Produit du Fuzzy 33004220 02/2009 FUZ_PROD : produit Fuzzy 10 Introduction Ce chapitre décrit la fonction FUZ_PROD. Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet 33004220 02/2009 Page Description courte 80 Description détaillée 82 79 FUZ_PROD : Produit du Fuzzy Description courte Description de la fonction Cette fonction permet de former le produit (sortie MD) des degrés d'appartenances (entrées extensibles MD1 à MDx). En outre, elle permet d'effectuer (pour le calcul des entiers) une multiplication en tenant compte de la plage de valeurs du degré d'appartenance (de 0 à 10 000). La plage de valeurs aux entrées et à la sortie pour le type de données INT va de 0 à à 10 000 et pour le type de données REAL, de 0 à 1. Les types de données de toutes les valeurs d'entrée et celui de la valeur de sortie doivent être identiques. Le nombre d'entrées peut être augmenté (32 au maximum). Les paramètres supplémentaires EN et ENO peuvent être configurés. Représentation en FBD Représentation Représentation en LD Représentation 80 33004220 02/2009 FUZ_PROD : Produit du Fuzzy Représentation en IL LD Member1 FUZ_PROD_INT Member2, ..., Memberx ST Output Représentation en ST Output := FUZ_PROD (Member1, Member2, ..., Memberx) ; Description des paramètres Description des paramètres d'entrée : Paramètre Type de données Signification MD1 INT, REAL 1er degré d'appartenance MD2 INT, REAL 2e degré d'appartenance : : : MDx INT, REAL x. degré d'appartenance Description des paramètres de sortie : Paramètre Type de données Signification MD INT, REAL Sortie produit (Fuzzy) Erreurs d'exécution Un message d'erreur s'affiche lorsque l'une des valeurs d'entrée est en dehors de la plage de valeurs (E_EFB_INPUT_VALUE_OUT_OF_RANGE). Seules les plages de valeurs suivantes sont acceptées : z INT : 0 ... 10 000 z REAL : 0 ... 1 33004220 02/2009 81 FUZ_PROD : Produit du Fuzzy Description détaillée Description de la fonction Dans l'arithmétique des réels, la formation du produit est obtenue par une simple multiplication. Règle Exemple (0 ... 1) * (0 ... 1) = (0 ... 1) 0.3 * 0.6 = 0.18 Dans l'arithmétique des entiers, une correction doit être effectuée via une remise à l'échelle de la plage des valeurs : 82 Règle Exemple (0 ... 10 000) * (0 ... 10 000) = (0 ... 10 000) 3 000 * 6 000 = 1 800 (!) 33004220 02/2009 FUZ_STERM : Fuzzification d'un terme 33004220 02/2009 FUZ_STERM : Fuzzification d'un terme 11 Introduction Ce chapitre décrit la fonction FUZ_STERM. Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet 33004220 02/2009 Page Description courte 84 Description détaillée 87 83 FUZ_STERM : Fuzzification d'un terme Description courte Description de la fonction Cette fonction permet de fuzzifier un seul terme des variables linguistiques (entrée X) et de générer son degré d'appartenance au niveau de la sortie MD. La plage de valeurs de la sortie pour le type de données INT va de 0 à 10 000 et pour le type de données REAL, de 0 à 1. La fonction d'appartenance est établie à l'aide de 4 points d'appui maximum (S1 à S4). De 2 à 4 entrées (points d'appui) sont possibles. Pour 2 points d'appui, la fonction réalise une fonction rampe. Pour 3 points d'appui, elle réalise une fonction triangle et pour 4 points d'appui, une fonction trapèze. En paramétrant les points d'appui de manière différente, plusieurs courbes de fonction peuvent être réalisées. Les types de données de toutes les valeurs d'entrée et celui de la valeur de sortie doivent être identiques. Le nombre d'entrées peut être augmenté (4 au maximum) en modifiant verticalement la taille de la trame du bloc. Les paramètres supplémentaires EN et ENO peuvent être configurés. Représentation en FBD Représentation 84 33004220 02/2009 FUZ_STERM : Fuzzification d'un terme Représentation en LD Représentation Représentation en IL LD Linguistic_Var FUZ_STERM SP1, SP2, SP3, SP4 ST Member Représentation en ST Member := FUZ_STERM_INT (Linguistic_Var, SP1, SP2, SP3, SP4) ; 33004220 02/2009 85 FUZ_STERM : Fuzzification d'un terme Description des paramètres Description des paramètres d'entrée : Paramètre Type de données Signification X INT, REAL Variable linguistique S1 INT, REAL Point d'appui S1 S2 INT, REAL Point d'appui S2 : : : S4 INT, REAL Point d'appui S4 Description des paramètres de sortie : Paramètre Type de données Signification MD INT, REAL Degré d'appartenance en sortie Erreurs d'exécution Un message d'erreur s'affiche lorsque le nombre de points d'appui est égal > à 4 ( E_EFB_TOO_MANY_INPUTS). 86 33004220 02/2009 FUZ_STERM : Fuzzification d'un terme Description détaillée Description des paramètres Avec le bloc fonction FUZ_STERM, un terme d'une variable linguistique est fuzzifié. La fonction d'appartenance peut être définie jusqu'à 4 points d'appui (S1 à S4). Les points d'appui doivent être indiqués dans l'ordre croissant. Vous trouverez les fonctions standard dans le tableau suivant. Pour les cas spéciaux, reportez-vous aux diagrammes temporels. D'autres formes sont possibles en inversant l'ordre des points d'appui. Le tableau suivant présente les courbes de fonction possibles. Fonctions standard Fonction d'appartenance Nombre d'entrées Condition Rampe descendante 2 S2<S1 Rampe ascendante 2 S1<S2 Triangle 3 S1<S2<S3 Trapèze 4 S1<S2<S3<S4 Diagramme temporel Fonction avec 2 entrées (S1 et S2) Rampe descendante : S2 < S1 Rampe ascendante : S1 < S2 33004220 02/2009 87 FUZ_STERM : Fuzzification d'un terme Fonction avec 3 entrées (S1 à S3) Triangle : S1 < S2 < S3 Rampe descendante : S2 < S3 et S1 > S2 Rampe ascendante : S1 < S2 et S3 < S2 88 33004220 02/2009 FUZ_STERM : Fuzzification d'un terme Fonction avec 4 entrées (S1 à S4) Trapèze : S1 < S2 < S3 < S4 Triangle : S1 < S2 < S4 et S3 ≤ S2 Rampe descendante : S2 ≤ S3 < S4 et S1 > S2 33004220 02/2009 89 FUZ_STERM : Fuzzification d'un terme Rampe ascendante : S1 < S2 ≤ S3 et S4 < S3 Rectangle : S1 = S2 < S3 = S4 Singleton : S1 = S2 = S3 = S4 90 33004220 02/2009 FUZ_SUM : Somme du Fuzzy 33004220 02/2009 FUZ_SUM : somme Fuzzy 12 Description courte Description de la fonction Cette fonction permet de représenter la somme limitée (sortie MD) du degré d'appartenance (entrées MD1 à MDx). La plage de valeurs des entrées et de la sortie pour le type de données INT va de 0 à 10 000 et pour le type de données REAL, de 0 à 1. Les types de données de toutes les valeurs d'entrée et celui de la valeur de sortie doivent être identiques. Le nombre d'entrées peut être augmenté (32 au maximum). Les paramètres supplémentaires EN et ENO peuvent être configurés. Formule Formule : 33004220 02/2009 91 FUZ_SUM : Somme du Fuzzy Représentation en FBD Représentation Représentation en LD Représentation Représentation en IL LD Member1 FUZ_SUM Member2, ..., Memberx ST Output Représentation en ST Output := FUZ_SUM (Member1, Member2, ..., Memberx) ; 92 33004220 02/2009 FUZ_SUM : Somme du Fuzzy Description des paramètres Description des paramètres d'entrée : Paramètre Type de données Signification MD1 INT, REAL 1er degré d'appartenance MD2 INT, REAL 2e degré d'appartenance : : : MDx INT, REAL xe degré d'appartenance Description des paramètres de sortie : Paramètre Type de données Signification MD INT, REAL Somme limitée en sortie Erreurs d'exécution Un message d'erreur s'affiche lorsque l'une des valeurs d'entrée est en dehors de la plage de valeurs (E_EFB_INPUT_VALUE_OUT_OF_RANGE). Seules les plages de valeurs suivantes sont acceptées : z INT : 0 ... 10 000 z REAL : 0 ... 1 33004220 02/2009 93 FUZ_SUM : Somme du Fuzzy 94 33004220 02/2009 Glossaire 33004220 02/2009 Glossaire 0-9 %I Selon la norme CEI, %I indique un objet langage de type entrée TOR. %IW Selon la norme CEI, %IW indique un objet langage de type entrée analogique. %KW Selon la norme CEI, %KW indique un objet langage de type mot constante. %M Selon la norme CEI, %M indique un objet langage de type bit mémoire. %MW Selon la norme CEI, %MW indique un objet langage de type mot mémoire. %Q Selon la norme CEI, %Q indique un objet langage de type sortie TOR. %QW Selon la norme CEI, %QW indique un objet langage de type sortie analogique. 33004220 02/2009 95 Glossaire A ADDM_TYPE Ce type prédéfini est utilisé comme sortie pour la fonction ADDM. C'est un tableau ARRAY[0..8] OF Int. Vous pouvez le trouver dans la bibliothèque, dans la même famille que les EF qui l'utilisent. ADDR_TYPE Ce type prédéfini est utilisé comme sortie pour la fonction ADDR. C'est un tableau ARRAY[0.0,5] OF Int. Vous pouvez le trouver dans la bibliothèque, dans la même famille que les EF qui l'utilisent. ANL_IN ANL_IN correspond au type de données « entrée analogique ». Ce type est employé lors du traitement de valeurs analogiques. Les adresses %IW du module d'entrée analogique configuré, qui sont indiquées dans la liste des composants d'E/S, sont automatiquement affectées à des types de données et doivent par conséquent être occupées uniquement par des variables non affectées. ANL_OUT ANL_OUT correspond au type de données « sortie analogique ». Ce type est employé lors du traitement de valeurs analogiques. Les adresses %MW du module d'entrée analogique configuré, qui sont indiquées dans la liste des composants d'E/S, sont automatiquement affectées à des types de données et doivent par conséquent être occupées uniquement par des variables non affectées. ANY Une hiérarchie existe entre les différents types de données. Dans les DFB, il est parfois possible de déclarer les variables pouvant contenir plusieurs types de valeurs. On utilise alors les types ANY_xxx. 96 33004220 02/2009 Glossaire La figure suivante décrit cette structure hiérarchisée : 33004220 02/2009 97 Glossaire ARRAY Un ARRAY est un tableau d'éléments de même type. La syntaxe est la suivante : ARRAY [<limites>] OF <Type> Exemple : ARRAY [1..2] OF BOOL est un tableau à une dimension composé de deux éléments de type BOOL. ARRAY [1..10, 1..20] OF INT est un tableau à deux dimensions composé de 10x20 éléments de type INT. B BCD BCD est l'acronyme du format Binary Coded Decimal (décimal codé en binaire). Le format BCD permet de représenter des nombres décimaux compris entre 0 et 9 à l'aide d'un groupe de quatre bits (demi-octet). Dans ce format, les quatre bits employés pour coder les nombres décimaux ont une plage de combinaisons inutilisée. Exemple de codage BCD : Le nombre 2 450 z est ainsi codé : 0010 0100 0101 0000 z BOOL BOOL est l'abréviation du type booléen. Il s'agit du type de données de base en informatique. Une variable de type BOOL possède l'une ou l'autre des valeurs suivantes : 0 (FALSE) ou 1 (TRUE). Un bit extrait d'un mot est de type BOOL, par exemple : %MW10.4. BYTE Lorsque 8 bits sont regroupés, on parle alors de BYTE (octet). La saisie d'un BYTE s'effectue soit en mode binaire, soit en base 8. Le type BYTE est codé dans un format 8 bits qui, au format hexadécimal, s'étend de 16#00 à 16#FF. 98 33004220 02/2009 Glossaire C CEI 61131-3 Norme internationale : automates programmables Partie 3 : langages de programmation Conventions de désignation (identificateur) Un identificateur est une suite de lettres, de chiffres et de signes de soulignement commençant par une lettre ou un signe de soulignement (par exemple, le nom d'un type de bloc fonction, d'une instance, d'une variable ou d'une section). Les lettres accentuées (comme ö, ü, é et õ) peuvent être utilisées, sauf dans les noms de projet et DFB. Les signes de soulignement sont significatifs dans les identificateurs. Par exemple, A_BCD et AB_CD sont interprétés comme des identificateurs différents. L'utilisation de plusieurs soulignés consécutifs ou au début d'un identificateur est incorrecte. Les identificateurs ne peuvent pas contenir d'espace. Ils ne distinguent pas les majuscules des minuscules. Par exemple, ABCD et abcd sont interprétés comme un seul et même identificateur. Selon la norme CEI 61131-3, les chiffres en début ne sont pas autorisés dans les identificateurs. Cependant, vous pouvez les utiliser si vous cochez, dans la boîte de dialogue Outils → Options du projet, dans l'onglet Extensions de langage, la case Chiffres en début autorisés. Les identificateurs ne peuvent pas être des mots clés. 33004220 02/2009 99 Glossaire D DATE Le type DATE, codé en BCD dans un format de 32 bits, contient les informations suivantes : z z z l'année codée dans un champ de 16 bits ; le mois codé dans un champ de 8 bits ; le jour codé dans un champ de 8 bits. Le type DATE doit être saisi comme suit : D# <Année> - <Mois> - <Jour> Le tableau ci-après donne les limites inférieure/supérieure de chaque élément : Elément Limites Commentaire Année [1990,2099] Année Mois [01,12] Le 0 de gauche est toujours affiché ; il peut être omis lors de la saisie. Jour [01,31] Pour les mois 01/03/05/07/08/10/12 [01,30] Pour les mois 04/06/09/11 [01,29] Pour le mois 02 (années bissextiles) [01,28] Pour le mois 02 (années non bissextiles) DATE_AND_TIME Voir DT. DBCD Représentation d'un entier double au format double BCD. Le format BCD (Binary Coded Decimal) est utilisé pour représenter des nombres décimaux compris entre 0 et 9 à l'aide d'un groupe de quatre bits. Dans ce format, les quatre bits employés pour coder les nombres décimaux ont une plage de combinaisons inutilisée. Exemple de codage DBCD : z Le nombre 78 993 016 z est ainsi codé : 0111 1000 1001 1001 0011 0000 0001 0110 DDT DDT est l'acronyme de Derived Data Type (type de données dérivées). Un type de données dérivées est un ensemble d'éléments de même type (ARRAY) ou de types différents (structure). 100 33004220 02/2009 Glossaire DFB DFB est l'acronyme de Derived Function Block (bloc fonction dérivé). Les types DFB sont des blocs fonction programmables par l'utilisateur en langage ST, IL, LD ou FBD. L'utilisation de ces types DFB dans une application permet : z z z z de simplifier la conception et la saisie du programme ; d'accroître la lisibilité du programme ; de faciliter sa mise au point ; de diminuer le volume de code généré. DINT DINT est l'acronyme du format Double INTeger (entier double) (codé sur 32 bits). Les limites inférieure et supérieure sont les suivantes : -(2 puissance 31) à (2 puissance 31) -1. Exemple : -2147483648, 2147483647, 16#FFFFFFFF. DT DT est l'acronyme de « Date and Time » (date et heure). Le type DT, codé en BCD dans un format de 64 bits, contient les informations suivantes : z z z z z z l'année codée dans un champ de 16 bits ; le mois codé dans un champ de 8 bits ; le jour codé dans un champ de 8 bits ; l'heure codée dans un champ de 8 bits ; les minutes codées dans un champ de 8 bits ; les secondes codées dans un champ de 8 bits. NOTE : Les 8 bits de poids faible ne sont pas utilisés. Le type DT doit être saisi comme suit : DT# <Année> - <Mois> - <Jour> - <Heure> : <Minutes> : <Secondes> 33004220 02/2009 101 Glossaire Le tableau ci-après donne les limites inférieure/supérieure de chaque élément : Elément Limites Commentaire Année [1990,2099] Année Mois [01,12] Le 0 de gauche est toujours affiché ; il peut être omis lors de la saisie. Jour [01,31] Pour les mois 01/03/05/07/08/10/12 [01,30] Pour les mois 04/06/09/11 [01,29] Pour le mois 02 (années bissextiles) [01,28] Pour le mois 02 (années non bissextiles) Heure [00,23] Le 0 de gauche est toujours affiché ; il peut être omis lors de la saisie. Minute [00,59] Le 0 de gauche est toujours affiché ; il peut être omis lors de la saisie. Seconde [00,59] Le 0 de gauche est toujours affiché ; il peut être omis lors de la saisie. DWORD DWORD est l'acronyme de « Double Word » (mot double). Le type DWORD est codé dans un format de 32 bits. Le tableau ci-dessous donne les limites inférieure/supérieure des bases qui peuvent être utilisées : Base Limite inférieure Limite supérieure Hexadécimale 16#0 16#FFFFFFFF Octale 8#0 8#37777777777 Binaire 2#0 2#11111111111111111111111111111111 Exemples de représentation : 102 Données Représentation dans l'une des bases 00000000000010101101110011011110 16#ADCDE 00000000000000010000000000000000 8#200000 00000000000010101011110011011110 2#10101011110011011110 33004220 02/2009 Glossaire E EBOOL EBOOL est l'acronyme du type Extended BOOLean (booléen étendu). Une variable de type EBOOL possède une valeur (0 pour FALSE ou 1 pour TRUE), mais également des fronts montants ou descendants et des fonctions de forçage. Elle occupe un octet de mémoire. L'octet contient les informations suivantes : z z z un bit pour la valeur ; un bit pour l'historique (chaque fois que l'objet change d'état, la valeur est copiée dans ce bit ) ; un bit pour le forçage (égal à 0 si l'objet n'est pas forcé, égal à 1 s'il est forcé). La valeur par défaut de chaque bit est 0 (FALSE). EF EF est l'acronyme de « Elementary Function » (fonction élémentaire). Il s'agit d'un bloc, utilisé dans un programme, qui réalise une fonction logique prédéterminée. Une fonction ne dispose pas d'informations sur l'état interne. Plusieurs appels de la même fonction à l'aide des mêmes paramètres d'entrée fournissent toujours les mêmes valeurs de sortie. Vous trouverez des informations sur la forme graphique de l'appel de fonction dans le « [bloc fonctionnel (instance)] ». Contrairement aux appels de bloc fonction, les appels de fonction comportent uniquement une sortie qui n'est pas nommée et dont le nom est identique à celui de la fonction. Dans FBD, chaque appel est indiqué par un [numéro] unique via le bloc graphique. Ce numéro est généré automatiquement et ne peut pas être modifié. Vous positionnez et paramétrez ces fonctions dans votre programme afin d'exécuter votre application. Vous pouvez également développer d'autres fonctions à l'aide du kit de développement SDKC. EFB EFB est l'acronyme de « Elementary Function Block » (bloc fonction élémentaire). Il s'agit d'un bloc, utilisé dans un programme, qui réalise une fonction logique prédéterminée. Les EFB possèdent des états et des paramètres internes. Même si les entrées sont identiques, les valeurs des sorties peuvent différer. Par exemple, un compteur possède une sortie qui indique que la valeur de présélection est atteinte. Cette sortie est réglée sur 1 lorsque la valeur en cours est égale à la valeur de présélection. 33004220 02/2009 103 Glossaire EN EN correspond à ENable (activer) ; il s'agit d'une entrée de bloc facultative. Lorsque l'entrée EN est activée, une sortie ENO est automatiquement établie. Si EN = 0, le bloc n'est pas activé, son programme interne n'est pas exécuté et ENO est réglé sur 0. Si EN = 1, le programme interne du bloc est exécuté et ENO est réglé sur 1. Si une erreur survient, ENO reprend la valeur 0. Si l'entrée EN n'est pas connectée, elle est automatiquement réglée sur 1. ENO ENO correspond à Error NOtification (notification d'erreur) ; il s'agit de la sortie associée à l'entrée facultative EN. Si ENO est réglé sur 0 (car EN = 0 ou en cas d'erreur d'exécution) : l'état des sorties de blocs fonction reste identique à celui dans lequel elles étaient lors du dernier cycle de scrutation exécuté correctement ; z la ou les sorties de la fonction, ainsi que les procédures, sont réglées sur 0. z F FBD FBD est l'acronyme de « Function Block Diagram » (langage en blocs fonction). FBD est un langage de programmation graphique qui fonctionne comme un logigramme. Par l'ajout de blocs logiques simples (ET, OU, etc.), chaque fonction ou bloc fonction du programme est représenté(e) sous cette forme graphique. Pour chaque bloc, les entrées se situent à gauche et les sorties à droite. Les sorties des blocs peuvent être liées aux entrées d'autres blocs afin de former des expressions complexes. FFB Terme générique pour EF (fonction élémentaire), EFB (bloc fonction élémentaire) et DFB (bloc fonction dérivé). Fonction Voir EF. Fonction élémentaire Voir EF. 104 33004220 02/2009 Glossaire FTP File Transfer Protocol (protocole de transfert de fichiers). G Global Data Global Data fournit un échange automatique de variables de données pour la coordination d'applications d'automates. GRAY Le code Gray, ou « binaire réfléchi », permet de coder une valeur numérique développée en chaîne de configurations binaires pouvant être différenciées par le changement d'état d'un seul bit. Ce code peut être utilisé, par exemple, pour éviter l'événement aléatoire suivant : en binaire pur, le changement de la valeur 0111 en 1000 peut produire des nombres aléatoires compris entre 0 et 1 000, étant donné que les bits ne changent pas tous de valeur simultanément. Equivalence entre décimal, BCD et Gray : H HTTP Protocole de transfert hypertexte 33004220 02/2009 105 Glossaire I IL IL est l'acronyme de « Instruction List » (liste d'instructions). Ce langage est une suite d'instructions simples. Il est très proche du langage d'assemblage utilisé pour programmer les processeurs. Chaque instruction est composée d'un code instruction et d'un opérande. INF Utilisé pour signifier qu'un nombre dépasse les limites autorisées. Pour un nombre de type entier, les plages de valeurs (indiquées en gris) sont les suivantes : Lorsqu'un résultat est : z z inférieur à -3,402824e+38, le symbole -INF (pour - infini) est affiché ; supérieur à +3,402824e+38, le symbole INF (pour + infini) est affiché ; INT INT est l'acronyme du format « single INTeger » (entier simple) (codé sur 16 bits). Les limites inférieure et supérieure sont les suivantes : -(2 puissance 15) à (2 puissance 15) -1. Exemple : -32768, 32767, 2#1111110001001001, 16#9FA4. IODDT IODDT est l'acronyme de « Input/Output Derived Data Type » (type de données dérivées d'E/S). Cet acronyme désigne un type de données structuré représentant un module ou une voie d'un module automate. Chaque module expert possède ses propres IODDT. 106 33004220 02/2009 Glossaire J Jeton Etape active d'un SFC. Jeton unique Mode de fonctionnement d'un diagramme SFC pour lequel une seule étape peut être active à la fois. L Langage en blocs fonction Voir FBD. LD LD est l'acronyme de « Ladder Diagram » (langage à contacts). LD est un langage de programmation représentant les instructions à exécuter sous forme de schémas graphiques très proches d'un schéma électrique (contacts, bobines, etc.). M Mot clé Un mot clé est une combinaison unique de caractères employée en tant qu'élément syntaxique d'un langage de programmation. (Voir la définition fournie dans l'annexe B de la norme CEI 61131-3. Tous les mots clés utilisés dans Unity Pro et mentionnés dans la norme CEI 61131-3 sont répertoriés dans l'annexe C de cette norme. Ils ne peuvent pas servir d'identificateurs [noms de variables, sections, types DFB, etc.] dans votre programme.) Multijeton Mode de fonctionnement d'un SFC. En mode multijeton, le SFC peut posséder plusieurs étapes actives simultanément. 33004220 02/2009 107 Glossaire N NAN Utilisé pour signifier que le résultat d'une opération n'est pas un nombre (NAN = Not A Number). Exemple : calcul de la racine carrée d'un nombre négatif. NOTE : La norme CEI 559 définit deux classes de NAN : le NAN silencieux (QNAN) et le NAN de signalisation (SNAN). Un QNAN est un NAN (Not a Number) avec un bit de fraction de poids fort tandis qu'un SNAN est un NAN sans bit de fraction de poids fort (numéro de bit 22). Les QNAN peuvent être propagés par la plupart des opérations arithmétiques sans générer d'exception. Quant aux SNAN, ils signalent en général une opération non valide lorsqu'ils sont utilisés en tant qu'opérandes dans des opérations arithmétiques (voir %SW17 et %S18). P Procédure Les procédures sont des vues techniquement fonctionnelles. L'unique différence par rapport aux fonctions élémentaires est que les procédures peuvent inclure plusieurs sorties et qu'elles prennent en charge le type de données VAR_IN_OUT. En apparence, les procédures ne sont pas différentes des fonctions élémentaires. Les procédures sont un supplément à la norme CEI 61131-3. 108 33004220 02/2009 Glossaire R REAL Le type REAL (réel) est un type codé sur 32 bits. Les plages de valeurs possibles sont illustrées dans la figure suivante : Lorsqu'un résultat est : z z z z compris entre -1,175494e-38 et 1,175494e-38, il est considéré comme étant un DEN ; inférieur à -3,402824e+38, le symbole -INF (pour - infini) est affiché ; supérieur à +3,402824e+38, le symbole INF (pour + infini) est affiché ; indéfini (racine carrée d'un nombre négatif), le symbole NAN est affiché. NOTE : La norme CEI 559 définit deux classes de NAN : le NAN silencieux (QNAN) et le NAN de signalisation (SNAN). Un QNAN est un NAN (Not a Number) avec un bit de fraction de poids fort tandis qu'un SNAN est un NAN sans bit de fraction de poids fort (numéro de bit 22). Les QNAN peuvent être propagés par la plupart des opérations arithmétiques sans générer d'exception. Quant aux SNAN, ils signalent en général une opération non valide lorsqu'ils sont utilisés en tant qu'opérandes dans des opérations arithmétiques (voir %SW17 et %S18). NOTE : Lorsqu'un DEN (nombre non normalisé) est utilisé en tant qu'opérande, le résultat n'est pas significatif. Réseau Il existe deux significations du terme « réseau ». z En LD : Un réseau est un ensemble d'éléments graphiques interconnectés. La portée d'un réseau est locale, par rapport à l'unité (la section) organisationnelle du programme dans laquelle le réseau est situé. z Avec des modules de communication experts : Un réseau est un groupe de stations qui communiquent entre elles. Le terme « réseau » est également utilisé pour définir un groupe d'éléments graphiques interconnectés. Ce groupe constitue ensuite une partie d'un programme qui peut être composée d'un groupe de réseaux. 33004220 02/2009 109 Glossaire S Scrutation d'E/S Interrogation continuelle des modules d'E/S afin de rassembler les bits de données et les informations d'état, d'erreur et de diagnostic. Ce processus permet de surveiller les entrées et les sorties de contrôle. SFC SFC est l'acronyme de Sequential Function Chart (diagramme fonctionnel en séquence). Le SFC permet de représenter graphiquement et de façon structurée le fonctionnement d'un automatisme séquentiel. Cette description graphique du comportement séquentiel de l'automatisme et des différentes situations qui en découlent s'effectue à l'aide de symboles graphiques simples. SIL Niveau d'intégrité de la sécurité Les fonctions de sécurité sont exécutées dans le but de sécuriser un système, puis de le maintenir dans cet état. La norme IEC 61508 stipule 4 niveaux de performances de sécurité pour une fonction de sécurité. Ces niveaux sont appelés niveaux d'intégrité de la sécurité (SIL) et portent les numéros 1 (niveau le plus faible) à 4 (niveau le plus élevé). L'utilisation de l'automate de sécurité Quantum dans les applications SIL2, dans lesquelles l'état de sécurité est l'état de non-alimentation, est certifiée, comme dans un système d'arrêt d'urgence. Vous pouvez recourir aux produits de sécurité de Schneider pour mettre au point une solution de redondance d'UC si vous souhaitez disposer d'un système de sécurité hautement disponible. SNMP Protocole SNMP (Simple Network Management Protocol) ST ST est l'acronyme de « Structured Text » (langage littéral structuré). Le langage littéral structuré est un langage élaboré proche des langages de programmation informatiques. Il permet de structurer des suites d'instructions. 110 33004220 02/2009 Glossaire STRING Une variable de type STRING est une chaîne de caractères ASCII. La longueur maximale d'une chaîne de caractères est de 65 534 caractères. T TIME Le type TIME exprime une durée en millisecondes. Codé sur 32 bits, ce type permet d'obtenir des durées de 0 à 2 32-1 millisecondes. Les unités du type TIME sont les suivantes : jours (d), heures (h), minutes (m), secondes (s) et millisecondes (ms). Une valeur littérale de type TIME est représentée par une combinaison des types précédents associés au préfixe T#, t#, TIME# ou time#. Exemples : T#25h15m, t#14,7S, TIME#5d10h23m45s3ms TIME_OF_DAY Voir TOD. TOD TOD est l'acronyme de Time Of Day (heure de la journée). Le type TOD, codé en BCD dans un format de 32 bits, contient les informations suivantes : z z z l'heure codée dans un champ de 8 bits ; les minutes codées dans un champ de 8 bits ; les secondes codées dans un champ de 8 bits. NOTE : Les 8 bits de poids faible ne sont pas utilisés. Le type Time Of Day doit être saisi comme suit : TOD# <Heure> : <Minutes> : <Secondes> 33004220 02/2009 111 Glossaire Le tableau ci-après donne les limites inférieure/supérieure de chaque élément : Elément Limites Commentaire Heure [00,23] Le 0 de gauche est toujours affiché ; il peut être omis lors de la saisie. Minute [00,59] Le 0 de gauche est toujours affiché ; il peut être omis lors de la saisie. Seconde [00,59] Le 0 de gauche est toujours affiché ; il peut être omis lors de la saisie. Exemple : TOD#23:59:45. TOPO_ADDR_TYPE Ce type prédéfini est utilisé comme sortie pour la fonction READ_TOPO_ADDR. C'est un tableau ARRAY[0.0,4] OF Int. Vous pouvez le trouver dans la bibliothèque, dans la même famille que les EF qui l'utilisent. U UDINT UDINT est l'acronyme du format « Unsigned Double INTeger » (entier double non signé) (codé sur 32 bits). Les limites inférieure et supérieure sont les suivantes : 0 à (2 puissance 32) - 1. Exemple : 0, 4294967295, 2#11111111111111111111111111111111, 8#37777777777, 16#FFFFFFFF. UDP User Datagram Protocol (protocole datagramme utilisateur). UDP est un protocole Internet de communication sans connexion défini par l'IETF RFC 768. Il permet la transmission directe de datagrammes sur des réseaux IP. Les messages UDP/IP n'attendent pas de réponse et, de ce fait, ils sont particulièrement adaptés aux applications dans lesquelles aucune retransmission des paquets envoyés n'est nécessaire (comme dans la vidéo en continu ou les réseaux exigeant des performances en temps réel). 112 33004220 02/2009 Glossaire UINT UINT est l'acronyme du format « Unsigned INTeger » (entier non signé) (codé sur 16 bits). Les limites inférieure et supérieure sont les suivantes : 0 à (2 puissance 16) - 1. Exemple : 0, 65535, 2#1111111111111111, 8#177777, 16#FFFF. V Valeur littérale d'entier Une valeur littérale d'entier est utilisée pour saisir des valeurs de type entier dans le système décimal. Les valeurs peuvent être précédées d'un signe (+/-). Les signes de soulignement (_) séparant les nombres ne sont pas significatifs. Exemple : -12, 0, 123_456, +986 Valeur littérale de temps Les unités du type TIME sont les suivantes : jours (d), heures (h), minutes (m), secondes (s) et millisecondes (ms). Une valeur littérale de type TIME est représentée par une combinaison des types précédents associés au préfixe T#, t#, TIME# ou time#. Exemples : T#25h15m, t#14,7S, TIME#5d10h23m45s3ms Valeur littérale en base 10 Une valeur littérale en base 10 est utilisée pour représenter une valeur entière décimale. Cette valeur peut être précédée des signes « + » et « - ». Si le caractère « _ » est utilisé dans la valeur littérale, il n'est pas significatif. Exemple : -12, 0, 123_456, +986 33004220 02/2009 113 Glossaire Valeur littérale en base 16 Une valeur littérale en base 16 est utilisée pour représenter un entier hexadécimal. La base est déterminée par le nombre « 16 » et le signe « # ». Les signes « + » et « - » sont interdits. Pour faciliter la lecture, vous pouvez utiliser le signe « _ » entre les bits. Exemple : 16#F_F ou 16#FF (qui correspond au nombre décimal 255) 16#F_F ou 16#FF (qui correspond au nombre décimal 224) Valeur littérale en base 2 Une valeur littérale en base 2 est utilisée pour représenter un entier binaire. La base est déterminée par le nombre « 2 » et le signe « # ». Les signes « + » et « - » sont interdits. Pour faciliter la lecture, vous pouvez utiliser le signe « _ » entre les bits. Exemple : 2#1111_1111 ou 2#11111111 (qui correspond au nombre décimal 255) 2#1110_0000 ou 2#11100000 (qui correspond au nombre décimal 224) Valeur littérale en base 8 Une valeur littérale en base 8 est utilisée pour représenter un entier octal. La base est déterminée par le nombre « 8 » et le signe « # ». Les signes « + » et « - » sont interdits. Pour faciliter la lecture, vous pouvez utiliser le signe « _ » entre les bits. Exemple : 8#3_77 ou 8#377 (qui correspond au nombre décimal 255) 8#34_0 ou 8#340 (qui correspond au nombre décimal 224) Valeur littérale réelle Une valeur littérale réelle est un nombre exprimé avec une ou plusieurs décimales. Exemple : -12,0, 0,0, +0,456, 3,14159_26 Valeur littérale réelle avec exposant Nombre pouvant être exprimé à l'aide d'une notation scientifique standard. La représentation est alors la suivante : mantisse + exposant. Exemple : -1,34E-12 ou -1,34e-12 1,0E+6 ou 1,0e+6 1,234E6 ou 1,234e6 114 33004220 02/2009 Glossaire Variable Entité mémoire du type BOOL, WORD, DWORD, etc., dont le contenu peut être modifié par le programme en cours d'exécution. Variable non affectée Variable dont la position dans la mémoire de l'automate ne peut pas être connue. Une variable à laquelle aucune adresse n'a été associée est dite non affectée. Variables affectées Variable dont la position dans la mémoire de l'automate peut être connue. Par exemple, la variable Pression_eau est associée au repère %MW102. Pression_eau est dite affectée. W WORD Le type WORD est codé dans un format de 16 bits et est utilisé pour effectuer des traitements sur des chaînes de bits. Le tableau ci-dessous donne les limites inférieure/supérieure des bases qui peuvent être utilisées : Base Limite inférieure Limite supérieure Hexadécimale 16#0 16#FFFF Octale 8#0 8#177777 Binaire 2#0 2#1111111111111111 Exemples de représentation 33004220 02/2009 Données Représentation dans l'une des bases 0000000011010011 16#D3 1010101010101010 8#125252 0000000011010011 2#11010011 115 Glossaire 116 33004220 02/2009 Index 33004220 02/2009 B AC Index D I DEFUZ, 49 DEFUZ_STI, 55 DEFUZ_STR, 55 instructions disponibilité, 25 instructions : fuzzy DEFUZ, 49 DEFUZ_STI, 55 DEFUZ_STR, 55 FUZ_ATERM, 61 FUZ_ATERM_STI, 67 FUZ_ATERM_STR, 67 FUZ_MAX, 73 FUZ_MIN, 75 FUZ_PROD, 79 FUZ_STERM, 83 FUZ_SUM, 91 informations générales, 27 instructions, disponibilité, 25 F FUZ_ATERM, 61 FUZ_ATERM_STI, 67 FUZ_ATERM_STR, 67 FUZ_MAX, 73 FUZ_MIN, 75 FUZ_PROD, 79 FUZ_STERM, 83 FUZ_SUM, 91 33004220 02/2009 117 Index 118 33004220 02/2009