Brevet FR2741975A1 — publié le 19970606

La présente invention se rapporte à un système d'entrées-sorties d'automate programmable. Un automate programmable usuel se compose, en se référant à la figure 1, d'une unité centrale repérée UC et de coupleurs ou interfaces d'entrées/sorties C1, C2, C3, C4 qui assurent la liaison entre l'unité centrale UC et la partie opérative (capteurs, préactionneurs,..). L'unité centrale UC comprend le(s) processeur(s) P, une mémoire ROM M1 contenant le programme constructeur, une mémoire RAM M2, un gestionnaire des entrées/sorties I qui communiquent entre eux par un bus. De manière facultative des coupleurs tels C4 sont intégrés dans la structure interne de l'unité centrale. La mémoire RAM M2 contient, dans une première zone, le programme utilisateur et, dans une deuxième zone, les données, en particulier les images des états des coupleurs et les constantes relatives au programme utilisateur. Le programme utilisateur est écrit dans un langage graphique spécifique du type langage LADDER (langage à contacts) ou du type langage GRAFCET. Les automates programmables destinés à traiter de nombreuses entrées- sorties ont une structure modulaire basée sur un ou plusieurs "racks" qui contiennent des coupleurs et sont reliés entre eux. Le rack principal repéré R contient le ou les modules d'unités centrales UC. Le gestionnaire des entrées/sorties I se comporte une interface bus IP qui assure la liaison, via le bus d'entrées-sorties, avec les coupleurs Cl, C2 du "rack" principal R ou avec les coupleurs de "racks" secondaires R1 reliés à celui-ci et aussi avec des coupleurs integrés à l'UC, tels que le coupleur C4. Une interface bus IS assure la liaison, via un bus de terrain B, avec des coupleurs déportés tels que le coupleur C3. L'automate programmable comprenant l'unité centrale de traitement UC reçoit, via les coupleurs, des signaux électriques des capteurs et émet des signaux électriques vers les différents coupleurs. Chaque coupleur pilote donc la partie opérative sous le contrôle de l'unité centrale UC. Celle-ci exécute en permanence le programme utilisateur, en fonction des états des entrées, pour commander les états des sorties. Chaque coupleur tel que Cl, C2, C3, C4 est connecté via des voies physiques d'entrée ou de sortie 1, 2, etc. à la partie opérative (capteurs, actionneurs,...). Les coupleurs se rangent en plusieurs catégories: les coupleurs simples et les coupleurs intelligents. Les coupleurs simples transmettent au processeur de l'unité centrale (ou reçoivent de lui) une information sans aucun traitement complémentaire. C'est le cas des coupleurs tout ou rien (TOR en abrégé). Les coupleurs intelligents réalisent un traitement (filtrage, mise à l'échelle) des signaux qu'ils reçoivent ou émettent et/ou un traitement des informations reçues des capteurs ou des informations envoyées au préactionneur avant de les envoyer à l'unité centrale. Par exemple la valeur analogique délivrée par un capteur de température doit être d'abord numérisée et ensuite linéarisée en fonction des calculs que tiennent compte du type du capteur. Le traitement est appelé fonction métier. Pour réaliser ce traitement, les coupleurs disposent de leur propre microprocesseur et de logiciels internes leur permettant de réaliser ce traitement de manière autonome par rapport à l'unité centrale UC. Ces coupleurs intelligents sont adaptés à l'un des métiers suivants: communication, traitement analogique, positionnement ou commande d'axe, comptage, régulation ou traitement spécifique (came électronique, pesage..). Actuellement, les paramètres de fonctionnement des coupleurs sont réglés soit par des moyens mécaniques (potentiomètres, cavaliers) soit par des moyens logiciels. L'utilisateur chargé du paramétrage doit changer de méthode d'un coupleur à l'autre. La présente invention a pour but de permettre de programmer ou paramétrer simplement les coupleurs par l'utilisateur et cela d'une manière indépendante de la topologie de l'automate (que celui-ci soit sous forme d'un rack unique ou de rack(s) déporté(s)). Toutes les fonctions métiers sont gérées avec une syntaxe et des instructions communes. Le système d'entrées-sorties d'automate programmable selon l'invention est composé d'une unité centrale pourvue d'une mémoire et d'au moins un coupleur d'entrées-sorties pourvu d'une mémoire coupleur et assurant la liaison entre des capteurs et des préactionneurs et l'unité centrale, caractérisé par le fait que les échanges entre la mémoire de l'unité centrale et la mémoire de chaque coupleur sont structurés par voies logiques réalisant une fonction métier et regroupant tout ou partie des voies physiques d'un coupleur et que la mémoire de l'unité centrale contient les objets relatifs à chaque voie logique qui constituent une structure des données dont le contenu est standardisé, ces objets étant échangés avec la mémoire coupleur par le programme utilisateur à l'aide d'un jeu d'instructions. Selon une caractéristique, la structure de données est structurée par type d'échange stockées dans des zones de mémoire contenant respectivement des informations produites périodiquement, des informations communiquées périodiquement, des informations traitées apériodiquement par le programme utilisateur, des informations définies par l'utilisateur pour démarrer la fonction métier. Selon une autre caractéristique, les différentes zones sont structurées en sous-zones mémoires, appelées types d'objet, contenant des bits, des mots, des doubles mots qui correspondent à des informations du même type, chaque élément étant identifié par un rang. Selon une caractéristique, la mémoire de l'unité centrale contient une structure de données associée à chaque coupleur. Selon une caractéristique, la syntaxe permettant d'accéder aux informations de la structure des données est formée par le type d'échange, le type d'objet, I'adresse topologique constituée par l'adresse du coupleur associée au numéro de voie logique et le rang. Selon une caractéristique, une voie logique peut activer un traitement o événementiel. Selon une caractéristique, le système comporte un mécanisme d'instanciation qui permet de réserver la place mémoire nécessaire à l'interface langage d'une voie logique D'autres caractéristiques et avantages de l'invention apparaîtront au cours de la description suivante, donnée à titre d'exemple d'un mode de réalisation et se référant aux dessins annexés dans lesquels: - la figure 1 est un schéma fonctionnel d'automate programmable illustrant l'état de la technique; - la figure 2 est un schéma illustrant la structure de communication entre I'unité centrale et un coupleur dans l'automate selon l'invention; - la figure 3 est un schéma indiquant les échanges entre la mémoire de l'unité centrale et la mémoire d'un coupleur; - la figure 4 est un schéma montrant les structures de données associées à chaque voie logique; - la figure 5 schématise la structure de données. - la figure 6 est un schéma expliquant le mécanisme d'instanciation. - la figure 7 est un schéma de fonctionnement des événements. L'automate programmable pourvu du système d'entrées-sorties selon l'invention est un automate du type de celui de la figure 1. Chaque coupleur y compris les coupleurs TOR présente une mémoire coupleur Mc. Le dialogue entre chaque coupleur C1, C2 etc. et l'unité centrale UC est structuré par voies logiques qui sont caractérisées premièrement par une ou plusieurs fonctions "métier ". Par exemple, pour le métier "comptage", une voie logique peut réaliser une ou plusieurs des fonctions "métiers" suivantes: comptage, décomptage, comptage/décomptage, fréquencemètre, mesure de position. Deuxièmement la voie logique est caractérisée par les voies physiques qu'elle utilise. A titre d'exemple, dans le cas d'un coupleur de comptage à quatre compteurs, une voie logique regroupe les voies physiques d'interface des capteurs de comptage tels que de détecteurs de proximité ou des codeurs optiques de position et les voies physiques des entrées de service telles que la validation de comptage ou la présélection de compteur. Le programme utilisateur est décomposé en tâches. Une tâche est un ensemble d'instructions exécutées périodiquement par le processeur P de l'unité centrale. Le programme constructeur active le gestionnaire d'entrées-sorties I avant l'exécution d'une tâche pour faire l'acquisition des informations provenant d'une voie logique. A la fin de la tâche, le programme constructeur active le gestionnaire d'entrée- sortie ( repère I sur la figure 1) pour qu'il envoie des informations à la voie logique. Une structure de données est associée à chaque voie logique d'un coupleur donné (voir figures 2 à 4) que nous appellerons interface langage. Cette structure de données est invariable quel que soit le coupleur et quelle que soit la voie logique. Sa taille et son contenu dépendent de la fonction métier à réaliser. Elle est stockée dans une zone de la mémoire coupleur Mc, le contenu de cette mémoire étant échangé (reçue ou énvoyée) sur ou vers une zone mémoire identique dans la mémoire M2 de l'unité centrale. La structure de données est structurée par type d'échanges (voir figure 3): - Echange périodique d'entrée: le contenu est envoyée de la mémoire Mc à la mémoire M2. Elle contient en général des informations produites périodiquement, par exemple la valeur numérique d'un capteur. - Echange périodique de sortie: le contenu est reçue depuis la mémoire M2. Elle contient en général des informations communiquées périodiquement par le programme utilisateur. - Echange à la demande du programme utilisateur: cette zone a des parties dont le contenu est reçu depuis la mémoire M2 et des parties dont le contenu est envoyé vers la mémoire M2. Elle contient des informations traitées " apériodiquement " par le programme utilisateur. - Echange de configuration à la mise en route du programme utilisateur: cette zone est reçue de la mémoire M2. Elle contient des informations définies par l'utilisateur pour démarrer la fonction métier. Les zones sont codées 1, Q, M, K respectivement. Le programme utilisateur accède aux informations stockées dans la mémoire M2 de l'unité centrale UC sous la forme de la structure de données par la syntaxe définie ci-dessus. Si l'on considère une voie logique, 0 ou 1 par exemple, la zone I contient les informations qui sont générées par cette voie logique. La zone Q contient les ordres ou commandes de l'unité centrale qui sont destinées à la voie logique. La zone M dépend de la fonction métier et peut contenir des informations de type "status", paramètres de commande spécifique, paramètres de réglage. Ces informations sont échangées sur demande du programme utilisateur. Les paramètres de status de regroupent les défauts de la voie et éventuellement l'état de fonctionnement de la voie logique. Les paramètres de commande spécifique sont des commandes qui se distinguent de la zone Q uniquement parce qu'ils sont envoyées sur demande du programme utilisateur, comme par exemple une ordre de mouvement à une position et une vitesse donnée. Les paramètres de réglage sont des informations transmises à la voie logique pour décrire des caractéristiques évolutives de la partie opérative. Par exemple pour un coupleur de commande d'axes, un des paramètres est le gain de position du procédé. La zone K contient les paramètres de configuration, c'est à dire les paramètres des capteurs ou actionneurs travaillant avec le coupleur. Ce sont des invariants pour une partie opérative donnée. En se référant à la figure 5, les différentes zones 1, Q, M et K sont à leur tour structurées en sous-zones mémoires nommées types d'objets. Ces sous-zones sont les suivantes: - sous-zone "Bits" codée X ou par défaut (si rien est précisé comme type d'objet): I'information stockée est binaire, comme par exemple déclencher le comptage. - sous- zone "Mots" codée W: I'information stockée est de type numérique codée sur 16 bits, comme par exemple la valeur numérique d'un capteur de température. - sous-zone "Doubles mots" codée D: l'information stockée est de type numérique codée sur 32 bits, comme par exemple la valeur numérique d'un capteur de température. Chaque sous-zone contient plusieurs informations ou éléments du même type. Un élément donné est identifié par son " rang " dont la valeur est égale à la position de l'élément par rapport au début de la sous-zone. Chaque élément d'information est donc défini par un type d'objet et un rang à l'intérieur de chaque zone. La syntaxe de l'interface langage est de la forme: % . Le rang identifie la position de l'élément par rapport au début de la sous- zone. Chaque élément d'information est donc défini par un type d'objet et un rang à l'intérieur de chaque zone. L'adresse topologique est définie par l'adresse du coupleur associée au numéro de la voie logique. Les coupleurs tels que Cl ou C2 montés dans le rack principal R sont accédés par une adresse égale au numéro de coupleur défini sur 1 ou 2 digits. Par exemple l'adresse 1.0 est la voie logique 0 du coupleur situé à l'emplacement 1 du rack principal R. %ID1.0 sera alors la valeur de la voie logique de comptage 0 du coupleur de comptage situé à l'emplacement 1 du rack principal R. En se référant maintenant à la figure 3, les échanges concernant 1, M et K sont pris en charge implicitement par le programme constructeur. Un jeu d'instructions du programme utilisateur permet de gérer les échanges sur la zone M entre l'unité centrale et les voies logiques. Les paramètres de réglage de M sont accessibles en lecture/écriture dans la mémoire de l'unité centrale par le programme utilisateur. Une structure des données peut être associée à chaque coupleur. Elle est appelée interface langage du coupleur et a la même structure et la même sémantique que celle qui est associée à la voie. Sa taille et son contenu dépendent du type de coupleur. La syntaxe de l'interface langage associée au coupleur est: .MOD. . La voie logique peut aussi émettre des informations en direction de l'unité centrale, en plus des différents types d'échanges définis cidessus. Ce type d'échange est appelé échange événementiel. Par exemple dans une voie logique de comptage le dépassement d'un seuil peut produire l'émission, vers l'unité centrale, de la valeur de la mesure courante (valeur du compteur). Lors d'un échange événementiel, la voie logique envoie à l'unité centrale UC des informations pour mettre à jour tout ou partie de la zone I. Lors de la réception d'un événement, le programme constructeur active une partie du programme constructeur associée à cet événement. Ainsi, en se référant à la figure 7, on voit qu'un événement "ordre de capture" généré par la voie logique déclenche un traitement qui fait partie du programme constructeur. Ce traitement est noté %EVT5. Des traitements événementiels permettent à l'utilisateur d'associer une séquence de programme à chaque événement envoyé par une voie logique d'un coupleur vers l'unité centrale. Les événements de commande sont prioritaires et peuvent interrompre toute tâche périodique. La configuration d'un coupleur va maintenant être décrite en se référant à la figure 6. Il est d'abord nécessaire de choisir la famille du coupleur (TOR, communication, analogique, positionnement ou commande d'axe, comptage) puis de choisir une référence de coupleur (référence 1, 2, 3,..) appartenant à ce métier. Le coupleur ayant été choisi, on peut alors configurer une voie logique en lui faisant supporter un certain nombre de fonctions métier. Par exemple, si l'on a choisi une voie logique de comptage, on configurera la fonction métier en choisissant une ou plusieurs des fonctions métiers suivantes: fonction comptage, fonction décomptage, fonction comptage/décomptage, fonction fréquencemètre. C'est lors de l'association de la fonction métier que le système réserve la zone mémoire de l'unité centrale qui va être utilisée par l'interface langage. L'opération est appelée "instanciation". Le choix de la fonction métier étant effectué, on peut alors définir les valeurs de la zone K et de la zone M à l'aide des écrans du logiciel. Il est bien entendu que l'on peut sans sortir du cadre de l'invention imaginer des variantes et des perfectionnements de détail et de même envisager l'emploi de moyens équivalents. 8 2741975 REVENDICATIONS 1. Système d'entrées-sorties d'automate programmable composé d'une unité centrale (UC) pourvue d'une mémoire (M1, M2, M3) et d'au moins un coupleur d'entrées-sorties (C1 ou C2 ou C3 ou C4) pourvu d'une mémoire coupleur (Mc) et assurant la liaison entre des capteurs et des préactionneurs et l'unité centrale (UC), caractérisé par le fait que les échanges entre la mémoire de l'unité centrale et la mémoire de chaque coupleur sont structurés par voies logiques réalisant une fonction métier et regroupant tout ou partie des voies physiques d'un coupleur et que la mémoire (M2) de l'unité centrale (UC) contient les objets relatifs à chaque voie logique qui constituent une structure des données dont le contenu est standardisé, ces objets étant échangés avec la mémoire coupleur (Mc) par le programme utilisateur à l'aide d'un jeu d'instructions. 2. Système d'entrées-sorties selon la revendication 1, caractérisé par le fait que la structure de données est structurée par type d'échange stockées dans des zones de mémoire contenant respectivement des informations produites périodiquement (%I), des informations communiquées périodiquement(%Q), des informations traitées apériodiquement par le programme utilisateur (%M), des informations définies par l'utilisateur pour démarrer la fonction métier (%K). 3. Système d'entrées-sorties selon la revendication 2, caractérisé par le fait que les différentes zones (I, Q, M, K) sont structurées en sous-zones mémoires, appelées types d'objet, contenant des bits, des mots, des doubles mots qui correspondent à des informations du même type, chaque élément étant identifié par un rang. 4. Système d'entrées-sorties selon l'une quelconque des revendications précédentes, caractérisé par le fait que la mémoire de l'unité centrale contient une structure de données associée à chaque coupleur. 5. Système d'entrees-sorties selon l'une quelconque des revendications précédentes, caractérisé par le fait que la syntaxe permettant d'accéder aux informations de la structure des données est formée par le type d'échange, le type d'objet, I'adresse topologique constituée par l'adresse du coupleur associée au numéro de voie logique et le rang. 6. Système d'entrées-sorties selon l'une quelconque des revendications précédentes, caractérisé par le fait qu'une voie logique peut activer un traitement événementiel. 7. Système d'entrées-sorties selon l'une quelconque des revendications précédentes, caractérisée par le fait qu'il comporte un mécanisme d'instanciation qui permet de réserver la place mémoire nécessaire à l'interface langage d'une voie logique.