Schneider Electric Flair 200C et T200 - RTU Control et Formules Mode d'emploi
Ajouter à Mes manuels36 Des pages
▼
Scroll to page 2
of
36
Gestion des réseaux électriques MT Gamme Easergy Flair 200C et T200 Unités de téléconduite et de télésurveillance du poste MT RTU Control et Formules Additif au manuel utilisateur RTU Control & Formules 1 Sommaire AUTOMATE VIRTUEL ................................................................................................................................. 3 1.1 DESCRIPTION ................................................................................................................................................ 3 1.2 INSTALLATION DU LOGICIEL RTU CONTROL ..................................................................................................... 5 1.3 CHARGEMENT DE PROGRAMME PAR RTU CONTROL ........................................................................................ 6 1.3.1 Ouverture du projet ........................................................................................................................... 6 1.3.2 Connexion avec l'automate et chargement de programme .............................................................. 7 1.4 LES VARIABLES PARTAGEES ........................................................................................................................... 8 1.4.1 Partager une variable ........................................................................................................................ 8 1.4.2 Utilisation de tableaux .....................................................................................................................11 1.4.3 Divers ..............................................................................................................................................12 1.5 CONFIGURATION DE L’AUTOMATE ..................................................................................................................13 1.5.1 Configuration de l'automate ............................................................................................................13 1.5.2 Chargement de programme par le serveur Web ............................................................................14 1.5.3 Etat de marche de l'automate virtuel ..............................................................................................15 1.5.4 Messages d’erreurs ........................................................................................................................15 1.5.5 Les variables RTU Control ..............................................................................................................16 1.5.6 Paramètres Programme..................................................................................................................16 1.5.7 Configuration de la fonction “Peer to Peer” (communication inter équipements) ...........................17 1.5.8 Traces automate .............................................................................................................................19 1.6 EXEMPLES ...................................................................................................................................................20 2 FORMULES DE CALCUL ..........................................................................................................................21 2.1 PRESENTATION ............................................................................................................................................21 2.2 SYNTAXES ET REGLES ..................................................................................................................................22 2.2.1 Les opérandes ................................................................................................................................22 2.2.2 Les opérateurs ................................................................................................................................23 2.3 LES FONCTIONS ...........................................................................................................................................26 2.3.1 Les fonctions mathématiques .........................................................................................................26 2.3.2 Les fonctions statistiques: ...............................................................................................................27 2.3.3 Les fonctions Logiques: ..................................................................................................................28 2.3.4 Les fonctions Horaires / Dates et heures: .......................................................................................30 2.3.5 Les autres fonctions: .......................................................................................................................31 2.4 CONFIGURATION ..........................................................................................................................................32 2.4.1 Création des variables ....................................................................................................................32 2.4.2 Saisie des formules .........................................................................................................................33 2 NT00320-FR-02 RTU Control & Formules L'automate RTU Control 1 Automate virtuel 1.1 Description Le T200 et le Flair 200C permettent de fournir en option des fonctions d’automatisme programmable IEC 61131-3 grâce à un automate virtuel embarqué. Les applications typiques pouvant être créées avec l'automate programmable : • Reconfiguration automatique de boucle MT (réseau auto-cicatrisant). • Automatismes similaires à ceux du T200 (ATS, BTA) : ATS entre 2 T200 ou impliquant plus de 2 voies par exemple. • Applications de délestage. • Tout autre automatisme spécifique à un client. Attention : il n'est pas possible d'avoir simultanément dans le produit, l'option automate programmable IEC 61131-3 et les automatismes prédéfinis (ATS, Sectionnaliseur,…). Une plateforme de développement permet de concevoir, simuler et tester sur cible des programmes écrits dans les langages automates suivants : • SFC – Sequential Function Chart • FBD – Function Block Diagram • LD – Ladder Diagram • ST – Structured Text • Il – Instruction List Cette plateforme de développement est le logiciel RTU Control, livré avec le produit. Cette plateforme permet de générer un programme exécuté par l’automate virtuel. Cet automate virtuel, embarqué dans le produit, échanges des données en lecture/écriture avec le logiciel de l'équipement, permettant ainsi d’exploiter les variables internes. Echange de variables Automate virtuel RTU Control :plateforme de développement NT00320-FR-02 Téléchargement de programmes Logiciel T200/F200C Entrées/Sorties de l'interface interne ou de l'automate externe 3 RTU Control & Formules L'automate RTU Control Les détails de la programmation IEC61131-3, ainsi que la maitrise de la plateforme de développement ne seront pas détaillés dans ce document. La documentation associée est accessible depuis le logiciel RTU Control. Néanmoins, nous allons expliquer dans ce document comment charger et utiliser un programme automate établi dans le serveur Web du T200/F200C ainsi qu'une prise en main sommaire de la plateforme et la gestion des paramètres et des variables associées. 4 NT00320-FR-02 RTU Control & Formules L'automate RTU Control 1.2 Installation du logiciel RTU Control Le logiciel RTU Control est inclus sur le CD Easergy fourni avec chaque équipement : Pour installer le logiciel depuis le CD Easergy, suivre les instructions suivantes : • • • • • • NT00320-FR-02 Insérer le CD Easergy dans le lecteur du PC. Le logiciel du CD doit démarrer automatiquement et une fenêtre "Gamme Easergy – V8-xx" apparait alors à l'écran. Cliquer ensuite sur le lien "Easergy series 3". Dans la nouvelle fenêtre qui apparait, cliquer sur le lien "RTU Control" pour installer le logiciel. Suivre ensuite les différentes étapes d'installation, à priori sans modifier les options proposées. Attendre la fin d'installation, puis quitter le programme d'installation. 5 RTU Control & Formules L'automate RTU Control Une fois le logiciel RTU Control installé, il convient maintenant de charger un programme établi dans l'automate. Deux méthodes pour charger un programme automate dans l'équipement T200/F200C : • Par la plateforme RTU Control, à condition que le logiciel RTU Control soit installé sur le PC connecté au T200/F200C et que l'équipement soit sous-tension avec la fonction automate démarrée. • Par le Serveur Web embarqué du T200/F200C, à condition de disposer du programme automate sous forme de fichier avec extension *.cod. 1.3 Chargement de programme par RTU Control Ce chapitre montre la première méthode de chargement de programme depuis le logiciel automate "RTU control". Cela suppose que le logiciel RTU Control soit installé sur le PC qui est connecté au serveur Web du T200/F200C, et que le projet correspondant soit disponible. 1.3.1 Ouverture du projet L’ouverture du projet s'effectue depuis l'interface du programme RTU Control : Menu Fichier → Ouvrir un projet → Depuis le disque Sélection du programme à ouvrir dans RTU Control Choisir ensuite le projet à charger. Le projet s'ouvre alors dans la plateforme de développement. Programme ouvert dans la plateforme 6 NT00320-FR-02 RTU Control & Formules L'automate RTU Control 1.3.2 Connexion avec l'automate et chargement de programme Une fois le projet correctement ouvert, il faut configurer la connexion avec l’automate virtuel. Dans la plateforme de développement, ouvrir le lien suivant : Menu Outils → Paramètres de communication : • Sélectionner T5 Runtime • Entrer l’adresse IP de votre T200/F200C suivi du port d’écoute de l’automate virtuel (configuré précédemment sur le RTU ; 1100 par défaut). Les deux champs sont séparés par le caractère ‘:’ La fenêtre ci-joint montre la configuration pour un T200/F200C dont l’adresse IP est 10.199.45.103 et l’automate virtuel configuré pour écouter sur le port 1100 • Cliquer sur OK Pour connecter la plateforme de développement au T200/F200C, et télécharger l'application dans la cible, cliquez sur : Menu Projet / Mode exécution / Télécharger l'application Page de téléchargement d'application Pour arrêter l'application, cliquer sur le même lien. Nota : cette commande est accessible également par un bouton dans la barre des taches. Bouton de téléchargement d'application Le programme est désormais prêt à fonctionner dans l'équipement. Celui-ci apparait alors avec le statut "Marche" : Statut "Marche" du programme dans RTU Control • • Dans le logiciel RTU Control. Dans la page "Automate" du serveur Web du T200/F200C. Nota : le détail concernant cette page "Automate" sera expliqué ultérieurement dans ce document. Statut "Marche" du programme dans la page "Automate" du serveur Web NT00320-FR-02 7 RTU Control & Formules L'automate RTU Control 1.4 Les variables partagées L'automate virtuel inclus des variables internes et peut également partager des variables avec le T200/F200C. Une variable partagée sur la plateforme sera automatiquement liée à une variable T200/F200C au démarrage de l'application. Echange de variables Automate virtuel RTU Control :plateforme de développement Téléchargement de programmes Logiciel T200/F200C Entrées/Sorties de l'interface interne ou de l'automate externe Les variables pouvant être partagées sont des variables de type Globales. Celles-ci peuvent être utilisées n' importe où dans le programme. Le lien entre les variables de l’automate virtuel et les variables de T200/F200C peut se faire selon différents niveaux : • Stricte identité du nom de la variable ou utilisation d’un nom différent. • Création automatique de variable dans le T200/F200C, ou utilisation de variables existantes. • En cas de création, choix du mode d’échange au niveau du T2000/F200C. 1.4.1 Partager une variable Depuis la plateforme de développement, le programme étant arrêté, faire un clic droit sur la variable que vous souhaiter partager et cliquer sur "Propriétés". Afin de partager la variable sélectionnée avec le T200/F200C : • Cocher la case "Embarquer les symboles" • Choisir le profil RCIO dans la liste des profils • Compléter les paramètres suivant le type de lien souhaité (voir ci-après) : 8 NT00320-FR-02 RTU Control & Formules L'automate RTU Control UseExtName : choix d’utiliser le nom de la variable déclaré dans l’atelier de programmation lorsque celui-ci est différent de celui défini dans le T200/F200C ("Yes"), ou d'imposer d'utiliser le même nom que celui de la variable du T200C/F200C ("No" par défaut). ExtName : nom de la variable T200/F200C associée à la variable de l'atelier. Ce paramètre permet de faire la relation entre la variable du T200/F200C et celle correspondante de l'atelier, si elles ont des noms différents (utilisé si "UseExtName" = "Yes"). La longueur du champ est limitée à 15 caractères MustExist : choix d’autoriser la création de variable dans le T200/F200C ("No", par défaut) ou d’imposer que la variable existe. Au démarrage du programme, le T200/F200C récupère toutes les variables partagées par l’automate. Si la variable associée existe, le lien est effectué. Si elle n’existe pas, on peut autoriser le T200/F200C à la créer ou lui interdire. Ce paramètre permet un plus grand contrôle si on veut utiliser des variables existantes Mode : [Input/Output] Mode d’échange de données de l’automate. Le mode est utilisé pour déterminer si, du point de vue de l’automate, une variable est en lecture seule ou en lecture/écriture. Les variables définies en Input seront en lecture seule dans l’application automate. Les variables définies comme Output seront en lecture/écriture. Pour les deux modes, la valeur courante sera lue au début de chaque cycle automate. Seuls les outputs seront mis à jour à la fin de chaque cycle. Notez que les entrées physiques (comme les TSS) sont automatiquement en lecture seule. VarDirection: [Signal/Command] Type de variable, du point de vue T200/F200C. Utilisé seulement dans le cas d’une création automatique de variable par le T200/F200C (MustExist = no et si la variable correspondante n’existe pas). Une variable définie comme “Signal” sera créée comme une entrée (DI ou AI). Une variable définie comme “Command” sera créée comme une sortie (DO ou AO). Les sorties sont modifiables par l’utilisateur via l’interface ou le protocole (exemple : paramètre, consigne, option). Attention : la notion d’Input/Output au niveau du T200/F200C est différente de celle au niveau de l’automate virtuel, où un paramètre est une des "input" d’un bloc fonction par exemple. Le programme devra ensuite être recompilé et renvoyé sur la cible afin que la modification soit prise en compte. NT00320-FR-02 9 RTU Control & Formules L'automate RTU Control La gestion des paramètres des variables partagées peut se faire via l’explorateur de profils (icône "Ouvrir Profils") : L’explorateur permet d’avoir une vue d’ensemble des variables associées au profil RCIO, et de les modifier. Il permet aussi d’associer facilement une variable au profil en utilisant la méthode "drag and drop" (cliquer sur une variable, puis en maintenant le click la déplacer vers le profil). 10 NT00320-FR-02 RTU Control & Formules L'automate RTU Control 1.4.2 Utilisation de tableaux Des tableaux complexes de variables ou de structures peuvent être utilisés en interne du programme. Dans le cas de variables partagées avec le T200/F200C, l’utilisation des tableaux est limitée aux tableaux de type simple à 1 dimension. Dans ce cas il est nécessaire de cocher l’option "Stocker les variables complexes dans un segment séparé" dans les options du projet (Projet\Paramètres…) Dans ce cas, un tableau de N variables sera associé à N variables dans le T200/F200C. Le nom des ces variables sera NomTableau_@x avec x de 1 à N. Exemple : Création de tableaux "State_Array" de 5 booléens (BOOL), et "Parameters" de 2 entiers (INT) Les variables ainsi créées dans le T200/F200C sont State_Array_@1 à State_Array_@5 et Parameters_@1 à Parameters_@2. NT00320-FR-02 11 RTU Control & Formules L'automate RTU Control 1.4.3 Divers Conseils concernant les noms des variables : - N’utilisez que des majuscules. - Ne donnez pas le même nom à deux variables différentes. - N’utilisez pas de nombre entier comme nom de variable (par exemple "5"). Type de variables : Le T200/F200C supporte les types suivants : BOOL, SINT, INT, BYTE, WORD, REAL Attention : les types doivent être compatibles. BOOL <--> TSS, TSL, DI ou DO SINT,INT, DINT, WORD, DWORD, REAL <--> TM, AI ou AO. DINT <--> Compteurs Important : les TSD/TCD ne sont pas des variables binaires mais des variables numériques (BYTE…), avec trois valeurs possibles. Valeur TSD/TCD 0 1 2 12 Etat indéfini Off On NT00320-FR-02 RTU Control & Formules L'automate RTU Control 1.5 Configuration de l’automate Dans la même partie "Automate" du serveur Web, d'autres pages sont également liées à l'automate, notamment celle concernant la configuration des paramètres de fonctionnement. 1.5.1 Configuration de l'automate Cliquer sur le lien "Configuration" pour accéder à la page de configuration des paramètres de l'automate. Cette page contient des éléments de configuration, des informations sur l’état de marche de l’automate virtuel et du programme associé, et éventuellement des messages d’erreurs. 1.5.1.1 Port IP Automate virtuel : port IP du T200/F200C par lequel la connexion à l’atelier de programmation sera réalisée. Valeur par défaut : 1100 1.5.1.2 Temps de cycle : Cette valeur en millisecondes est la période à laquelle sera exécuté un cycle de l’automate virtuel. Cette valeur en ms devra être comprise entre 100 et 10000ms (10 secondes). 1.5.1.3 Programme : Nom du programme chargé et exécuté par l’automate virtuel, parmi tous les programmes précédemment chargés en mémoire flash. Le T200/F200C permet de conserver plusieurs programmes en mémoire, mais un seul peut être exécuté. (Voir le chapitre "Chargement de programme par le serveur Web" pour plus d'informations.) Page de configuration de l'Automate NT00320-FR-02 Nota : l'option de démarrage de l'automate n'est pas configurable. Ce démarrage est toujours effectué "à froid". En conséquence, toutes les variables internes de l’automate seront réinitialisées à leurs valeurs initiales au moment du démarrage de l'automate. Les valeur des variables « retain » ne sont pas utilisées. 13 RTU Control & Formules L'automate RTU Control 1.5.2 Chargement de programme par le serveur Web Ce chapitre explique la deuxième méthode de chargement de programme automate, depuis l'interface Web du T200/F200C. Pour pouvoir effectuer ce chargement, il convient tout d'abord de disposer du fichier *.cod, relatif au programme à charger. Pour accéder à la page Automate du serveur Web embarqué, cliquer sur le lien correspondant ("Automate"). Si le logiciel RTU Control n'a jamais été activé dans l'équipement, entrer le code d'activation (Ce code est fourni par Schneider Telecontrol). Page d'activation du code RTU Control Cliquer ensuite sur le lien "Mémoire flash" pour accéder à la page de gestion des fichiers et de la mémoire de l'automate. Cette page gère les programmes de l'application à charger ou déjà chargés dans la mémoire flash. Cliquer sur le bouton "Browse" pour sélectionner le fichier du programme automate (extension « *.cod ») à télécharger. Cliquer ensuite sur le bouton "Soumettre" pour prendre en compte le programme dans l'automate virtuel. Page "Mémoire Flash" 14 NT00320-FR-02 RTU Control & Formules L'automate RTU Control Le programme est prêt à être utilisé. Le nom du programme s'affiche alors dans la partie "Contenu" avec l'indication de la taille du fichier. La possibilité est donné d'effacer ce programme dans l'automate par le bouton "Effacer". Il est possible de télécharger ce fichier sous forme d'extension *.cod, sur le disque dur du PC, en cliquant sur le nom du programme. Page "Mémoire Flash" La taille mémoire occupée par le programme est affichée également en pourcentage. Il est conseillé de formater la mémoire avant la première utilisation, grâce au bouton "Formater". 1.5.3 Etat de marche de l'automate virtuel 1.5.3.1 Etat de l’automate virtuel Dans la page "Automate/configuration", la première ligne de la section "Etat de marche" indique si l’automate virtuel est en fonctionnement ou non. L’automate virtuel peut être arrêté ou démarré grâce aux boutons correspondants. Ce paramètre est sauvegardé (en cas de redémarrage du T200/F200C, le module sera dans le dernier état demandé). Automate arrêté Nota : pour communiquer avec l’atelier de programmation, le module doit être en marche. 1.5.3.2 Automate en marche, programme arrêté Automate et programme en marche Etat du programme Si l’automate virtuel est en marche, une seconde ligne apparaît, indiquant l’état de marche du programme de l’automate virtuel. Il est possible de stopper ou de démarrer le programme depuis l’interface. Nota : suivant le nombre de variables dans le programme, le temps de démarrage de celui-ci peut-être plus ou moins long. 1.5.4 Messages d’erreurs Si le démarrage de la machine virtuelle a échoué, un (ou des) message(s) d’erreur(s) peuvent apparaître. Différents messages d'erreurs NT00320-FR-02 15 RTU Control & Formules L'automate RTU Control 1.5.5 Les variables RTU Control Le lien "Variables" de la page "Automate" permet de visualiser et de gérer les variables internes d'échange entre l'automate RTU Control et le T200/F200C. Les variables de cette page peuvent être : • Des variables existantes du T200/F200C définies pour être partagées avec RTU Control, car celles-ci sont utilisées dans le programme automate. • Des variables virtuelles créées spécifiquement pour le programme RTU Control. L'état ou la valeur de certaines variables peut être changée depuis cette page, par les boutons "Change value". Page "Variables automate" En cliquant sur le nom d'une variable, on accède à la page de configuration de cette variable. Les variables virtuelles se différentient des autres variables par une valeur de topic = "Virtuel". Excepté la valeur du Topic, la configuration de ces variables est identique aux autres types de variables du T200/F200C. Voir Section 2.4.1 Création des variables. Page de configuration d'une variable virtuelle 1.5.6 Paramètres Programme Une liste de paramètres utilisables par le programme automate peut être créé et modifiée dans cette page. Les valeurs des ces paramètres sont sauvegardés avec le confiugration Easergy sans avoir à changer le programme automate. Ces paramètres peuvent être numériques, inclus dans une plage de valeurs, ou faire partie d’une liste qui associe un texte à une valeur numérique. Pour transmttre les valeurs des paramètres à l’application automate, il est nécessaire de créer des commandes analogiques (Analog Output) de type virtuel. Chaque paramètre est lié à un A0, qui doit être défini comme une variable partagée dans le programme automate. La valeur du paramètre est écrite sur la variable: - quand l’équipement démarre (démarrage de la machine virtuelle) - quand de nouvelles valeurs sont entrées dans cette page web - après un changement de configuration du MODBUS maitre et/ou des variables virtuelles. Exemple de paramètres Programme 16 NT00320-FR-02 RTU Control & Formules L'automate RTU Control Jusqu’à 20 paramètres peuvent être définis. Pour chacun d’entre eux, on peut configurer: - le nom - la valeur active - la variable analogique associée - le type « Numérique » ou « Liste » - la plage de valeurs autorisée (Min et Max) - pour un paramètre de type ‘Liste’, les éléments de la liste peuvent être ajoutés et édités 1.5.7 Configuration de la fonction “Peer to Peer” (communication inter équipements) Cette fonctionnalité permet de mettre en place une communication transversale entre deux (ou plus) équipements T200 ou Flair 200C, indépendamment de la communication « vers le haut » vers un superviseur. Les équipements doivent être installés sur un même réseau TCP/IP (Ethernet ou GPRS/UMTS). Cette page montre la configuration des tables de transfert qui sont utilisés pour envoyer des informations entre deux équipements voisins. Principe du Peer to Peer: La fonction Peer to Peer permet de copier les valeurs d’un ensemble de variables d’un équipement vers un autre en utilisant le protocole MODBUS TCP et la fonction « write multiple registers ». Ce fonctionnement est similaire au concept « dataset » existant dans d’autres protocoles. Chaque dataset est défini comme une table d’échange entre les deux équipements. Pour celui qui envoie les données, la table est définie en type « Write », et pour celui qui les reçoit, elle est définie en type « Read ». Chaque table de transfert définit un intervalle d’adresses MODBUS (Début + longueur). Une variable fait partie de ce dataset si son adresse Peer-to-Peer fait partie de cet intervalle. Pour les tables « Write », les variables peuvent être de n’importe quel type. pour les tables « Read », les variables doivent p être de type DO ou AO. Le programme automate peut déclencher l’envoi des tables de type « Write », et est prévenu lorsque les tables « Read » sont mises à jour. Le processus utilise des variables de contrôle pour indiquer le succès ou l’échec de chaque transfert. Ces variables peuvent être utilisées par le programme automate pour répéter le transfert si besoin. NT00320-FR-02 17 RTU Control & Formules L'automate RTU Control Configuration: 6 tables peuvent être configurées. Pour chaque table : - Nom - Type de Transfert: Inactive, Write ou Read - Adresse locale: adresse MODBUS locale qui correspond à la première variable de la table - Taille: longueur de la table, en registre MODBUS (mots de 16 bits). Maximum 6 mots. Les variables digitales sont associée à un bit, les variables analogiques utilisent un mot de 16 bits. La longueur doit être le même pour une table « Write » que pour la table « Read » correspondante. Pour une table de type “Write”: - Numéro esclave: correspond au numéro d’esclave dans la page “configuration des esclaves” (où son adresse IP est configurée) - Adresse distante: adresse MODBUS dans le’esclave à laquelle la table sera écrite - Index SendDataActive: index d’une DO (variable de contrôle). Il s’agit de l’index de la DO qui sera activée par le programme automate pour déclencher l’écriture du contenu de la table vers l’équipement distant. Cette DO sera automatiquement remise à zéro par le firmware lorsque le transfert sera en cours. - Index SendDataInProgress index d’une DO (variable de contrôle). Il s’agit de l’index de la DO qui indique que le processus de transfert est en cours. Cette variable est automatiquement remise à zero lorsque le transfert est terminé ou a échoué. Utile pour la mise en service. - Index SendDataResult: index d’une AO (variable de contrôle) qui montre l’état du transfert en cours. Les valeurs possibles sont: 0: opération réussie 1: fonction MODBUS invalide 2: adresse MODBUS invalide (adresse distante) 3: données invalides 15: erreur de communication – problème durant la création de la connexion TCP 16: erreur de communication – timeout durant les échanges 20: opération en cours Les codes 1, 2 et 3 indiquent que le message a été correctement transmis, mais que l’équipement distant l’a refusé. Cela est habituellement lié à un problème de configuration Pour une table de type “Read”: - Index ReceiveDataValid: index d’une DO (variable de contrôle). Cette variable sera activée lorsque de nouvelles données auront été écrites dans la table par un équipement distant. Elle devrait être remise à zéro par le programme automate. 18 NT00320-FR-02 RTU Control & Formules L'automate RTU Control Protocoles et Adresses des variables Comme la fonctionnalité Peer-to-peer utilise le protocole MODBUS TCP, le MODBUS maitre et le MODBUS TCP esclave sont toujours actif sur l’équipement, en plus du protocole esclave principal (IEC101/104 ou DNP3/DNP3 IP). Chacun de ces protocoles a sa propre page de configuration. Pour chaque variable, l’adresse externe est utilisée par le protocole principal et l’adresse Peer to Peer est utilisée par le protocole MODBUS TCP pour la fonction Peer to Peer. Si le protocole principal est MODBUS/MODBUS TCP, les mêmes adresses (adresses externes) sont utilisées pour la communication scada et la communication Peer-to-Peer 1.5.8 Traces automate Le lien "Debug" de la page "Automate" permet de vérifier que le programme RTU Control Program fonctionne correctement et que les variables ont été chargées sans erreurs dans le T200/F200C. En condition normale de fonctionnement, il n'est pas nécessaire de vérifier l'exécution d'un programme. C'est uniquement dans le cas d'un comportement anormal de l'automate que le contrôle de bon fonctionnement peut-être utile. Exemple de trace automate NT00320-FR-02 19 RTU Control & Formules L'automate RTU Control 1.6 Exemples Des projets de démonstration sont donnés à titre d'exemple. Ceux-ci sont intégrés à RTU Control et se trouvent dans le répertoire "RTU CONTROL\Samples\Easergy". Ces projets permettent par exemple de montrer le lien entre RTU control et les variables du T200, ainsi que la gestion des TSD/TCD. Ils incluent les configurations T200 ou F200C correspondantes dans un répertoire dédié. Ces projets sont dédiés à la démonstration et ne sont pas supportés par le support technique. Schneider Electric n’assume aucune responsabilité des conséquences éventuelles découlant de l’utilisation de ces programmes sur un site réél. 20 NT00320-FR-02 RTU Control & Formules Les formules de calcul 2 Formules de calcul 2.1 Présentation Contrairement à l’automate programmable qui est fourni en option, les formules de calcul sont fournies de base avec le T200. Elles permettent des opérations arithmétiques et combinatoires entre les variables. Elles offrent ainsi la possibilité : • d'effectuer des calculs mathématiques à partir de mesures physiques (consommations, conversions, etc…) • de créer des signalisations personnalisées (combinaisons de variables, défauts regroupés, etc…) • de définir des automatismes de contrôle ou de gestion (permutations, etc…). Une formule est associée à une variable. Sa valeur est mise à jour à chaque exécution de la formule. Cette exécution peut se faire suivant un temps de cycle défini. Le temps de cycle minimum est 100 ms. NT00320-FR-02 21 RTU Control & Formules Les formules de calcul 2.2 Syntaxes et règles Les formules utilisent une syntaxe naturelle et intuitive qui mélange références aux valeurs de mesures (variables, historiques, …), expressions littérales (constantes, opérateurs…) et appels de fonctions (min, max, delta, …). L'utilisateur n'a pas à se soucier des formats de données, l'interpréteur prend en charge les conversions, il est ainsi possible de combiner les opérations logiques et arithmétiques: (B > 3)* C, (B>3) est une expression logique (vrai (1) ou faux (0)). Les formules n'ont de sens que si à l'issue de leur exécution la valeur obtenue est affectée à une variable (ou à une cellule de la base de données). Il faut bien comprendre qu'une formule n'est pas un langage de script, il n'existe pas de notion de boucles (for, while) ni de sauts d'instructions (goto, if..then). Néanmoins il existe un opérateur conditionnel qui permet d'affecter telle ou telle valeur d'après une expression logique. Les formules tiennent compte de la casse (minuscule ou majuscule) des opérandes et des fonctions. La longueur maximale d'une formule est de 200 caractères. Une formule peut contenir jusqu’à 50 éléments (opérandes, opérateurs…). Une formule peut être scindée en plusieurs "sousformules" séparées par un point virgule (la virgule est réservée pour séparer les paramètres d’une fonction). Chaque "sous-formule" est exécutée successivement dans leur ordre d'écriture au cours du même cycle de traitement. 2.2.1 Les opérandes 2.2.1.1 Constantes numériques (nombres entiers, nombres à virgule): Les nombres peuvent être positifs et négatifs, entiers ou à virgule et/ou exposant : 123, -45.1, 12.5E3, etc.. Pour saisir un nombre en hexadécimal, sa valeur doit être préfixée par le symbole $ (ou la lettre H), par exemple $10 (ou H10). Pour les valeurs "à virgule", le séparateur décimal est le point. Le type de la valeur (entier, mot, IEEE) est automatiquement déterminé par l'analyse de la formule. 22 NT00320-FR-02 RTU Control & Formules Les formules de calcul 2.2.1.2 Chaînes de caractères: Une chaîne de caractères doit être saisie entre simples cotes ', par exemple 'ma chaîne'. Les chaînes de caractères sont utilisées pour référencer certains paramètres de fonction ou bien des noms de tables ou de colonnes de la base de données. 2.2.1.3 Variables: En saisissant le nom d'une variable (sans cotes), l'opérande sera interprété comme la valeur de la variable au moment de l'exécution. Le type de la valeur est celui de la variable. Attention, le nom des variables utilisées dans les formules ne doit pas contenir d’espace. 2.2.2 Les opérateurs 2.2.2.1 + * / % ** Arithmétiques: Addition Soustraction Multiplication Division (la division par zéro provoque une erreur à l'exécution) Modulo : Reste de la division entière (nombres entiers) Puissance : A**B = A exposant B = AB 2.2.2.2 && ET logique ## OU logique ^^ OU EXCLUSIF logique ! NON logique Remarque : le symbole Logiques: A && B = vrai si A = vrai ET B = vrai, faux sinon A || B = vrai si A = vrai OU B = vrai, faux sinon A ^^ B = vrai si (A = vrai ET B = faux) OU (A = faux ET B = vrai) ! A = vrai si A = faux « | » est obtenu en pressant simultanément les touches [AltGr] et [6] du clavier. 2.2.2.3 & I # ^ ET bit à bit OU bit à bit $AA & $55 = $00 $AA | $55 = $FF $AA ^ $A5 = $0F << OU EXCLUSIF bit à bit INVERSE bit à bit (Complément à 1) Décalage à gauche >> Décalage à droite ~ NT00320-FR-02 Binaires: ~A, inverse tous les bits de A, ceux à 1 passe à 0 et inversement A << B, décale les bits de A de B bits vers la gauche A >> B, décale les bits de A de B bits vers la droite 23 RTU Control & Formules Les formules de calcul 2.2.2.4 Comparaisons: = == != <> > < >= <= 2.2.2.5 Egal Différent Supérieur Inférieur Supérieur ou égal Inférieur ou égal L'opérateur d'affectation L'opérateur := permet d'affecter une valeur à une variable: Exemple : mavar := 2. L'utilisateur n'a pas à se soucier du format de donnée de destination, les conversions sont automatiques. Dans le cas d'une variable sur périphérique en entrée/sortie, une affectation provoquera l'envoi d'un ordre d'écriture vers le périphérique au moment de l'exécution de la formule. 2.2.2.6 L'opérateur conditionnel L'opérateur (expr) ? A : B renvoie A si expr est vraie, B sinon. expr doit être une expression booléenne. Par exemple : A := (B>C) ? D : E; affectera D à A si B est supérieur à C, sinon affectera E à A. Il est bien sûr possible d'utiliser des parenthèses pour construire des expressions plus complexes. De même dans une opération : A + ((B>C) ? D : E) vaut A + D si B > C, elle vaut A + E sinon. L'opérateur conditionnel peut aussi être utilisé pour une affectation: ((B > C) ? D : E) := A; dans ce cas, si B > C, D est affecté de la valeur A, sinon c'est E qui est affecté de la valeur A. 24 NT00320-FR-02 RTU Control & Formules Les formules de calcul 2.2.2.7 Ordre de priorité des opérateurs et utilisation des parenthèses L'ordre décroissant de priorité dans l'exécution des opérations d'une expression est le suivant : Fonction Fcn ( ) P0 = priorité max Signe positif + (Var) P1 Signe négatif - (Var) Non logique ! Complément à 1 * ~ Puissance ** P2 Multiplication * P3 Division / Reste * % Addition + P4 Soustraction Décalage à gauche * << Décalage à droite * >> Et bit à bit * & P5 Ou bit à bit * I/# Ou exclusif bit à bit ^ Et logique && P6 Ou logique II/## Ou exclusif logique ^^ Test égal à = Test inférieur ou égal <= Test sup ou égal à >= Test inférieur à < Test supérieur à > Test différent de !=/<> Affectation := P7 = priorité min "*" : Opération sur des entiers uniquement (manipulation de bits) NT00320-FR-02 25 Les formules de calcul RTU Control & Formules 2.3 Les fonctions Les arguments des fonctions peuvent être indifféremment toutes sortes d'opérandes, mais aussi des expressions arithmétiques ou logiques ou encore des résultats de fonctions. Ainsi, il est possible d'imbriquer plusieurs appels de fonctions et d'opérations. ", … )" : les trois petits points désignent des fonctions à nombre variable d'arguments. "[x]" : les crochets désignent un (ou plusieurs) argument(s) optionnel(s). 2.3.1 Les fonctions mathématiques Sauf mention contraire, le format de donnée des valeurs renvoyées par ces fonctions est IEEE (flottant simple précision). 2.3.1.1 abs(x) Retourne la valeur absolue de son argument x Le type de donnée retourné par la fonction est le même que celui de x. Exemple : Abs(VAR1*3) 2.3.1.2 sqrt( x ) Retourne la racine carrée de x. Si x est inférieur à zéro, l'opération provoque une erreur à l'exécution. 2.3.1.3 log( x ) Retourne le logarithme népérien de x. Si x est inférieur ou égal à 0, l'opération provoque une erreur à l'exécution. 2.3.1.4 log10( x ) Retourne le logarithme en base 10 de x. Si x est inférieur ou égal à 0, l'opération provoque une erreur à l'exécution. 2.3.1.5 exp( x ) Retourne l'exponentiel de x. exp( log(x) ) = x. 2.3.1.6 pow( x, y) Retourne x à la puissance y. pow(x, y) = x ** y = xy. 2.3.1.7 intg( x ) Retourne la partie entière de x. Par exemple, intg( 12.46 ) = 12. La valeur retournée est de type entier (INT32). 2.3.1.8 rand( x ) Retourne un nombre entier aléatoire supérieur ou égal à 0 et inférieur à x. La valeur retournée est de type double mot (DWORD). 26 NT00320-FR-02 Les formules de calcul RTU Control & Formules 2.3.2 2.3.2.1 Les fonctions statistiques: mini( A, B, … ) Retourne l'argument dont la valeur est la plus petite. Cette fonction doit comporter au moins deux arguments. Notez que cette fonction ne retourne pas seulement la valeur de l'argument mais aussi sa référence. Ainsi il est possible de combiner avec une opération d'affectation: mini( VAR1, VAR2, VAR3 ) := 4; avec VAR1, VAR2, VAR3 des références sur des variables, si VAR3 a la valeur minimum, cette variable sera ensuite affectée de la valeur 4. 2.3.2.2 maxi( A, B, … ) Retourne l'argument dont la valeur est la plus grande. Cette fonction doit comporter au moins deux arguments. Comme pour mini, cette fonction retourne la référence sur l'argument. 2.3.2.3 pmini( A, B, … ) Retourne la position (à partir de 0) de l'argument dont la valeur est la plus petite. Cette fonction doit comporter au moins deux arguments. 2.3.2.4 pmaxi( A, B, … ) Retourne la position (à partir de 0) de l'argument dont la valeur est la plus grande. Cette fonction doit comporter au moins deux arguments. 2.3.2.5 sum( A, B, … ) Retourne la valeur de la somme des arguments. Cette fonction doit comporter au moins deux arguments. 2.3.2.6 avg( A, B, … ) Retourne la valeur de la moyenne des arguments. Cette fonction doit comporter au moins deux arguments. NT00320-FR-02 27 Les formules de calcul RTU Control & Formules 2.3.3 Les fonctions Logiques: 2.3.3.1 pulse( X, T0, T1 ) X est une valeur booléenne. T0, T1 des nombres de secondes. Sur front montant de X (passage de 0 à 1), après T0 secondes, la fonction renvoie vrai (1) pendant T1 secondes. Le reste du temps elle renvoie faux (0). 1 X 1 pulse( X, T0, T1 ) T1 T0 2.3.3.2 delay( X, T0 ) X est une valeur booléenne. T0 un nombre de secondes. La fonction recopie la valeur de X décalée dans le temps de T0 secondes. X T delay( X, T0 ) T T0 2.3.3.3 hold( X, T1 ) X est une valeur booléenne. T1 un nombre de secondes. La fonction renvoie vrai pendant au moins T1 secondes sur font montant (passage de 0 à 1) de X. Si X se maintient à 1 (vrai) audelà de T1 secondes, la fonction hold renvoie vrai pendant ce temps. X hold( X, T1 ) T1 2.3.3.4 T1 tempo( X, T2 ) X est une valeur booléenne. T2 un nombre de secondes. La fonction renvoie vrai si X passe à 1 pendant au moins T2 secondes. Passé ce temps, la fonction renvoie vrai tant que X est à vrai. X t tempo( X, T2 ) 28 T2 t < T2 NT00320-FR-02 Les formules de calcul RTU Control & Formules 2.3.3.5 pwm( T, R ) La fonction renvoie une valeur booléenne au rythme d'un signal de chrono proportionnel (PWM, Pulse Width Modulation) de période T et de rapport cyclique R en pourcentage. R doit être compris entre 0 et 100%. T0 T1 R = 33 % T1 = 33% * T T0 = (100 – 33%) * T R = 50 % T1 = 50% * T T0 = (100 – 50%) * T T1 T0 R = 66 % T1 = 66% * T T0 = (100 – 66%) * T T 2.3.3.6 iswithin( X, min, max ) retourne une valeur booléenne qui vaut vrai si (X >= min) ET (x <= max), faux sinon. NT00320-FR-02 29 Les formules de calcul RTU Control & Formules 2.3.4 Les fonctions Horaires / Dates et heures: Le format TIME_T est un format de données qui permet de mémoriser un couple date/heure en nombre de secondes depuis une référence unique (le 1er janvier 1970 à 00:00:00). Les jours de la semaine sont associés aux valeurs suivantes : 1 = dimanche, 2 = lundi, 4 = mardi, 8 = mercredi, 16 = jeudi, 32 = vendredi, 64 = samedi. 2.3.4.1 dt( [[T], X] ) ou now( [[T], X] ) Sans argument, la fonction renvoie la date et l'heure courante en TIME_T. Avec T en TIME_T et X, T sert de référence pour l'argument X Avec X seul, la date et l'heure courante servent de référence pour l'argument X si X = 1 ou 'Y', retourne l'année sur 4 chiffres si X = 2 ou 'M', retourne le mois (de 1 à 12) si X = 3 ou 'D', retourne le jour du mois (de 1 à 31) si X = 4 ou 'H', retourne l'heure sur 24H (de 0 à 23) si X = 5 ou 'm', retourne la minute (de 0 à 59) si X = 6 ou 's', retourne la seconde (de 0 à 59) si X = 7 ou 'd', retourne le jour dans la semaine (1, 2, 4, 8,16, 32, 64) si X = 8 ou 'p', retourne 0 si l'heure est avant midi (AM), 1 pour l'après midi (PM) si X = 9 ou 'h', retourne l'heure sur 12H si X = 10 ou 'y', retourne l'année sur 2 chiffres. 2.3.4.2 time( X [, F] ) Avec X seul, si X est une chaîne de caractères, la fonction convertit en TIME_T la date et l'heure correspondant à X d'après le format de date et d'heure par défaut. Si X est un numérique la fonction convertit ce nombre en TIME_T. Avec X et F, X doit être une chaîne de caractères, F est aussi une chaîne de caractères qui définit le format de lecture de la date et de l'heure. La fonction renvoie alors la date X en TIME_T d'après le format F. F est de la forme 'd/m/y H:M:S' avec: d = le jour dans le mois (de 1 à 31) m = le mois dans l'année (de 1 à 12) y = l'année sur 2 chiffres Y = l'année sur 4 chiffres H = l'heure sur 24H h = l'heure sur 12H M = la minute (de 0 à 59) S = la seconde (de 0 à 59). 30 NT00320-FR-02 Les formules de calcul RTU Control & Formules 2.3.4.3 isweek( [X] ) Si X (optionnel) est absent, la fonction renvoie la valeur booléenne vrai si la date courante est un jour ouvré (du lundi ou vendredi inclus). Si X est de type TIME_T, la fonction renvoie vrai si la date X est un jour ouvré. Sinon X désigne un numéro de jour dans la semaine, la fonction renvoie vrai si le jour X est ouvré. 2.3.4.4 deltats() Retourne le temps en SECONDES entre deux exécutions de la formule. Cette fonction est très puissante car elle permet de faire des intégrations, des dérivées, etc.. Elle est basée sur l’horloge temps réel du système. 2.3.4.5 deltatms() Retourne le temps en MILLISECONDES entre deux exécutions de la formule. Cette fonction est très puissante car elle permet de faire des intégrations, des dérivées, etc… Elle est basée sur le quartz de la CPU. De ce fait, elle est relativement peu précise sur du long terme. 2.3.5 Les autres fonctions: 2.3.5.1 bounds( X, min, max ) Retourne la valeur de X bornée par min et max. si X est inférieur à min, retourne min; si X est supérieur à max, retourne max; sinon retourne X. 2.3.5.2 delta( X )ou deltav( X ) Retourne la différence entre la valeur de X lors de la précédente exécution de la formule et la valeur courante de X. La période pour le calcul de la différence de X est donc la période d'exécution de la formule. Voir aussi deltats() et deltatms(). 2.3.5.3 switch( X, A0, A1 [, A2, …]) ou cond( X, A0, A1 [, A2, …]) X doit être une valeur entière positive. Cette fonction doit comporter au moins trois arguments. Si X = 0, la fonction retourne l'argument A0, si X = 1, retourne A1, si X = 2, retourne A2, etc. Si X < 0, la fonction retourne l'argument A0, si X est supérieur au nombre d'arguments, le dernier est retourné. NT00320-FR-02 31 Les formules de calcul RTU Control & Formules 2.4 Configuration 2.4.1 Création des variables L’utilisateur doit déclarer des variables qui seront spécifiquement associées à la fonction "Formules de calcul". Elles ne seront mises à jour que par la fonction "Formules de calcul", mais seront gérées comme les autres variables au niveau du protocole et de la visualisation des états. La création de ces variables s’effectue depuis la page de configuration des variables du serveur Web, de la même façon que les autres types de variables. Les types de variables pouvant être créées spécifiquement pour les fonctions sont : Type variable DI Page "Configuration des variables" DO AI AO CNT TCD TSD Utilisation Description Télésignalisation simple Télécommande simple Télémesures Signalisation par bit simple Commande analogique Compteur Télésignalisation double Télécommande double Commande par bit simple Mesures analogiques effectuées par le T200/F200C (courant, tension…) Ecriture analogique Compteur de changement d'état d'un bit Commande double sur interrupteur/disjoncteur Signalisation double d'interrupteur/disjoncteur Le nom d’un variable associée à une formule de calcul ne doit pas contenir d’espace. Une variable associée à une formule doit être configurée avec un topic de type "Virtuel". 32 NT00320-FR-02 RTU Control & Formules Les formules de calcul 2.4.2 Saisie des formules Une fois la variable créée, la formule associée doit être saisie dans la page "Formules". Cette page peut inclure au maximum 100 formules. 20 formules à la fois peuvent être affichées. Exemple de formule saisie Règles à respecter pour la saisie de la formule : • Chaque formule doit commencer par "nom_de_variable :=". • Aucun espace n'est accepté dans les noms des variables • Le contenu de la formule avec les opérandes et les opérateurs est définie derrière le signe "…:=" • La casse doit être respectée pour les noms des variables et opérandes Chaque formule peut être activée/désactivée par une case à cocher. Une formule est associée à une période de rafraichissement configurable. Une période définie à "Auto." correspond à une période la plus courte possible (100 ms) Période de rafraichissement d'une formule Un message d’erreur s’affiche si la syntaxe de la formule n’est pas correcte. Exemple de message d'erreur sur saisie de formule incorrect Le résultat de la formule peut être consulté dans la page "Visualisation". Il correspond à l'état de la variable associée à la formule correspondant au résultat de celle-ci. Résultat de la formue dans la page "Visualisation". NT00320-FR-02 33 RTU Control & Formules 34 Notes personnelles NT00320-FR-02 RTU Control & Formules NT00320-FR-02 Notes personnelles 35 Schneider Electric Industries SAS En raison de l’évolution des normes et du matériel, les caractéristiques indiquées par les textes et les images de ce document ne nous engagent qu’après confirmation par nos services. Schneider Electric Telecontrol 839 chemin des Batterses Z.I. Ouest 01700 St Maurice de Beynost Tel : +33 (0)4 78 55 13 13 Fax : +33 (0)4 78 55 50 00 As standards, specifications and designs change from time to time, please ask for confirmation of the information given in this publication. Debido a la evolución de las normas y del material, las características y dimensiones indicadasen el texto y las imágenes nos comprometen solamente previa confirmación de nuestros servicios. http://www.schneider-electric.com E-mail : telecontrol@schneider-electric.com NT00320-FR-02 08/2013 Publication, production and printing : Schneider Electric Telecontrol Made in France - Europe