FR2695739A1 - Data treatment process for e.g. robot, automatic machine - uses memory area to store boolean data on robot inputs and outputs for treatment by co-processor - Google Patents

Data treatment process for e.g. robot, automatic machine - uses memory area to store boolean data on robot inputs and outputs for treatment by co-processor Download PDF

Info

Publication number
FR2695739A1
FR2695739A1 FR9211072A FR9211072A FR2695739A1 FR 2695739 A1 FR2695739 A1 FR 2695739A1 FR 9211072 A FR9211072 A FR 9211072A FR 9211072 A FR9211072 A FR 9211072A FR 2695739 A1 FR2695739 A1 FR 2695739A1
Authority
FR
Grant status
Application
Patent type
Prior art keywords
data
processor
treatment
memory
machine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR9211072A
Other languages
French (fr)
Other versions
FR2695739B1 (en )
Inventor
Rudelou Ghislain
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
APRIL AUTOMATES SA
Original Assignee
APRIL AUTOMATES SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/052Linking several PLC's

Abstract

The process relates to the treatment of data in the processor of a programmable robot or automatic machine. A section of memory (1) is allocated to the storage of data on the machine inputs and outputs. A section of memory (5) is allocated to the storage of an automation program in the form of a ladder diagram or other graphical program. An overall control program divides data treatment between the main processor and co-processor to achieve optimum performance. ADVANTAGE - Improved speed of data processing for automatic machines such as robots.

Description

La présente invention se rapporte à un procédé de traitement de données booléennes dans une unité centrale d'automate programmable et à une unité centrale de traitement à coprocesseur booléen permettant la mise en oeuvre de ce procédé. The present invention relates to a Boolean data processing method in a programmable controller CPU and a boolean co-processor CPU for carrying out this method.

Un coprocesseur (flottant tel que le MOTOROLA 68881 ou arithmétique tel que le INTEL 80287) est un circuit spécialisé dans certains traitements (mathématiques, arithmétiques ou graphiques), élargissant les possibilités d'un microprocesseur généraliste auquel il est associé. A coprocessor (such as floating MOTOROLA 68881 or arithmetic such as Intel 80287) is a specialized circuit in some treatments (mathematics, arithmetic or graphics), expanding the possibilities of a general microprocessor which it is associated. Le coprocesseur peut être indépendant du microprocesseur et communiquer avec lui par l'intermédiaire d'un bus. The coprocessor can be independent of the microprocessor and communicate with it via a bus. Il peut aussi être intégré directement au microprocesseur. It can also be integrated directly to the microprocessor. Le coprocesseur fonctionne comme un prolongement du microprocesseur principal dont il étend le jeu d'instructions, en augmentant la précision et la puissance de calcul. The coprocessor functions as an extension of the main microprocessor of which it expands the instruction set, increasing the accuracy and computing power.

Les automates programmables sont constitués d'un ensemble de racks qui reçoivent les différents modules ou cartes. PLCs consist of a set of racks that receive the various modules or cards. Le rack principal contient le ou les modules d'unités centrales. The main rack contains the CPU or the modules. D'autres racks contiennent des cartes d'entrées sorties et /ou les cartes de communication, de commande d'axes, de régulation. Other racks contain input cards outputs and / or the communication modules, axis control, regulation. Parmi les modules d'unités centrales, l'unité centrale de traitement comprend principalement un microprocesseur, une mémoire programme, une mémoire "données et travail"-dans laquelle sont stockées les valeurs courantes des entrées et des sorties des cartes d'entrées/sorties et/ou des cartes de communication et/ou des cartes de commandes d'axes et/ou des cartes de régulation. Among the CPU modules, the central processing unit mainly includes a microprocessor, a program memory, a memory "data and work" -in which stores the current values ​​of the inputs and outputs of the input / output cards and / or communication boards and / or axis control cards and / or control boards.

L'unité centrale de l'automate programmable exécute un programme relatif à une application d'automatisme, écrit dans un langage spécifique à l'automate. The CPU of the programmable controller executes a program for an automation application, written in a language specific to the PLC. Ce programme est constitué principalement de fonctions logiques et /ou numériques qui vont traiter les informations présentes sur les entrées de l'automate (reliées aux capteurs), pour élaborer des informations sur les sorties de l'automate (commandes des préactionneurs). The program consists primarily of logic functions and / or digital that will treat the information on the PLC inputs (connected to sensors) to develop information on the PLC outputs (commands preactuators). Le langage spécifique à l'automate est formé de réseaux de schémas à contacts (ladder) et/ou de boites fonctionnelles constructeur et/ou de schémas Grafcet. The specific language in the PLC is formed Ladder networks (ladder) and / or functional boxes manufacturer and / or SFC diagrams.

Une unité centrale telle que celle décrite dans le brevet EP-0174231 comprend au moins deux processeurs internes dont un microprocesseur numérique standard et un processeur spécifique du type booléen. A central processing unit such as that described in EP-0174231 comprises at least two internal processors including a standard digital microprocessor and a specific processor of the Boolean type.

Le microprocesseur numérique gère les tâches système, les boites fonctionnelles constructeur et exécute les instructions sur mots et sur blocs fonctions. The digital microprocessor manages system tasks, functional boxes manufacturer and executes instructions on words and function blocks. Le processeur spécifique booléen exécute les opérations sur bits, des traitements typiquement "booléens" associés au langage à relais. The Boolean specific processor performs bit operations, treatments typically "Boolean" associated with the relay language. Les processeurs booléens actuels travaillent séquentiellement avec le microprocesseur numérique. Current Boolean processors working sequentially with digital microprocessor.

La présente invention a pour but d'améliorer les performances d'un coprocesseur booléen en intégrant dans celui-ci un algorithme d'interprétation de données booléennes qui sont organisées en mémoire. The present invention aims to improve the performance of a boolean co-processor incorporating therein a Boolean data interpretation algorithm which are held in memory. Ce niveau de performance est atteint grâce à l'organisation des données, grâce à la structure de l'algorithme d'interprétation des données et enfin grâce à la limitation au maximum des accès mémoires. This level of performance is achieved through the organization of data, thanks to the structure of the data interpretation algorithm and finally by limiting maximum memory access. De plus le microprocesseur numérique reste disponible pendant que le coprocesseur travaille, ce qui conduit à un gain en temps d'exécution au travers de tâches exécutées en parallèle. Furthermore the digital microprocessor remains available while the coprocessor works, leading to a gain in run time through tasks executed in parallel. Ce coprocesseur permet d'obtenir un temps d'exécution très réduit pour des tâches répétitives et pénalisantes en temps d'exécution pour le microprocesseur numérique associé, c'est à dire concernant essentiellement la partie booléenne des applications.De plus, le coprocesseur permet également, par son algorithme de traitement booléen, d'interpréter du grafcet, grâce au fait que tout graphe peut être traduit sous forme de structure de données booléennes. This coprocessor provides a much reduced execution times for repetitive tasks and penalizing execution time for the associated digital microprocessor, ie mainly on the part of applications.De Boolean addition, the coprocessor also allows by its Boolean processing algorithm to interpret the grafcet, thanks to the fact that every graph can be translated as Boolean data structure.

Le procédé selon l'invention consiste à stocker, dans une mémoire, des variables d'entrée présentant un état actif et un état inactif et représentatives des états d'entrée de l'automate et des variables de sortie présentant un état actif et un état inactif et représentatives des états de sortie de l'automate et à stocker, dans une mémoire de données, des données correspondant à un programme d'automatisme écrit soit en grafcet soit en réseau relais ou ladder constitué d'une expression combinatoire d'entrée représentant une fonction de logique combinatoire des variables d'entrée vraie ou fausse conditionnant respectivement le positionnement actif ou inactif des variables combinatoires de sortie qui forment l'expression combinatoire de sortie, et il est caractérisé par le fait qu'il consiste:: The method of the invention includes storing, in a memory, input variables having an active state and an inactive state and representative of PLC input states and output variables having an active state and a inactive and representative of the controller output states and storing in a data memory, data corresponding to a written automation program either grafcet either relay or ladder network consisting of a combinatorial expression representing input a combinatorial logic function of true or false input variables conditioning respectively the active or inactive position combinatorial output variables that make up the combinatorial expression output, and it is characterized in that it comprises ::
- à stocker dans la mémoire de données, dans une pluralité de mots, des paramètres attachés à chaque variable d'entrée, en ordonnant ces variables et, dans une pluralité de mots, des paramètres attachés à chaque variable de sortie, en ordonnant ces variables; - storing in the data memory, in a plurality of words, the parameters attached to each input variable, ordering these variables and, in a plurality of words, the parameters attached to each output variable, ordering these variables ;
- à évaluer successivement chacune des variables d'entrée stockées dans la mémoire des variables, de manière que si ladite variable conduit, c'est à dire si elle est active, l'évaluation suivante porte sur la variable successeur dans l'expression combinatoire d'entrée et que si ladite variable ne conduit pas, l'évaluation porte sur la variable de déroutage dans l'expression combinatoire d'entrée, et cela tant que le résultat de l'expression combinatoire d'entrée n'est pas déterminé;; - to evaluate successively each of the input variables stored in the variable memory, so that if said variable duct, ie if it is active, the following assessment concerns the variable successor in the combinatorial expression input and if said variable does not, the evaluation concerns the rerouting variable in the combinatorial expression input, and that as the result of the combinatorial expression input is not determined ;;
- à affecter successivement chacune des variables de sortie stockées dans la mémoire des variables, dès que le résultat, vrai ou faux, de l'expression combinatoire d'entrée du réseau relais est déterminé, de manière que si le résultat est vrai, la variable de sortie soit positionnée à sa valeur active, l'affectation suivante portant sur la variable successeur de ladite variable dans l'expression combinatoire de sortie et que si le résultat est faux, la variable de sortie soit généralement positionnée à sa valeur inactive, l'affectation suivante portant sur la variable successeur de ladite variable dans l'expression combinatoire de sortie. - assigning successively each of the output variables stored in the variable memory, when the result, true or false, the combinatorial expression relay network input is determined so that if the result is true, the variable outlet is positioned to its active value, the next assignment on the successor of said variable variable in the combinatorial expression output and if the result is false, the output variable is generally positioned at the inactive value, the following assignment on the successor variable of said variable in the combinatorial expression output.

Selon une caractéristique, le procédé consiste à mémoriser en mémoire de données, dans les mots attachés à chaque variable d'entrée, un multiplet étant l'adresse du mot contenant la valeur de la dite variable en mémoire des variables, un multiplet définissant des paramètres et un masque d'accès à la valeur de ladite variable en mémoire des variables, à calculer, par une fonction logique, la conduction ou non-conduction de ladite variable, en utilisant les paramètres, le masque d'accès et le mot contenant la valeur de ladite variable d'entrée. According to one characteristic, the method consists in storing in data memory, in the words attached to each input variable, a byte is the address of the word containing the value of said variable in memory variables, a byte defining parameters and an access mask to the value of said variable in memory variables, calculating, by a logic function, the conduction or non-conduction of said variable, using the parameters, the access mask and the word containing the value of said input variable.

Selon une autre cactéristique, le procédé consiste à mémoriser en mémoire de données, dans les mots attachés à chaque variable d'entrée, un bit indiquant si la valeur de la variable successeur est contenue dans le même mot en mémoire des variables que la valeur de la dite variable d'entrée, pour dans le cas où la dite variable d'entrée conduit, éviter la relecture de ce mot en mémoire des variables. According to another cactéristique, the method consists in storing in data memory, in the words attached to each input variable, a bit indicating whether the value of the successor variable is contained in the same word in memory varying the value of said input variable, for if said input variable duct avoid rereading the word in memory variables.

Selon une autre caractéristique, le procédé consiste à mémoriser en mémoire de données, dans les mots attachés à chaque variable d'entrée, un multiplet donnant l'adresse en mémoire des données des mots attachés à une variable de déroutage de la dite variable. According to another feature, the method consists in storing in data memory, in the words attached to each input variable, a byte giving the memory address of the data words attached to a rerouting variable of said variable.

Selon une autre caractéristique, le procédé consiste à mémoriser en mémoire des données, dans les mots attachés à chaque variable d'entrée, un bit indiquant si la valeur de la variable de déroutage est contenue dans le même mot en mémoire des variables que la valeur de la dite variable d'entrée, pour dans le cas où la dite variable d'entrée ne conduit pas, éviter la relecture de ce mot en mémoire des variables. According to another characteristic, the method includes storing data in memory, in the words attached to each input variable, a bit indicating whether the value of the variable diversion is contained in the same word in memory that the value of variable of said input variable, for if said input variable does not, avoid rereading the word in memory variables.

Selon une autre caractéristique, le procédé consiste à mémoriser, en mémoire des données, dans les mots attachés à chaque variable de sortie, un multiplet étant l'adresse du mot contenant la valeur de ladite variable en mémoire des variables, un multiplet définissant des paramètres et un masque d'accès à la valeur de ladite variable en mémoire des variables, à calculer par une fonction logique, la condition d'affectation vraie ou fausse et l'affectation de ladite variable, en utilisant les paramètres, le masque d'accès et le mot contenant la valeur de ladite variable de sortie ainsi que la valeur vraie ou fausse de l'expression combinatoire d'entrée. According to another characteristic, the method comprises storing in memory of data in words attached to each output variable, one byte is the address of the word containing the value of said variable in memory variables, a byte defining parameters and an access mask to the value of said variable in memory variables, calculating a logic function, the condition of true or false assignment and allocation of said variable, using the parameters, the access mask and the word containing the value of said output variable and the value true or false of the combinatorial input expression.

Selon une autre caractéristique, le procédé consiste à mémoriser, en mémoire des données, dans les mots attachés à chaque variable de sortie, un bit indiquant si la valeur de la variable successeur est contenue dans le même mot en mémoire des variables que la valeur de ladite variable de sortie pour éviter la relecture de ce mot en mémoire des variables. According to another characteristic, the method comprises storing in memory of data in words attached to each output variable, a bit indicating whether the value of the successor variable is contained in the same word in memory varying the value of said output variable to avoid rereading the word in memory variables.

Selon une autre caractéristique, le procédé consiste, dans le cadre de l'affectation des variables de sortie, à mémoriser en interne dans le coprocesseur dans les registres bits, un bit indiquant si au moins unes des valeurs de variables de sortie (donc au moins un des bits) a été modifiée en interne dans le coprocesseur, pour éviter dans le cas où aucune des valeurs n'a été modifiée d'écrire le mot en mémoire des variables. According to another characteristic, the method includes, as part of the assignment of the output variables, to be stored internally in the coprocessor in the registers bits, a bit indicating whether at least one output variable values ​​(so at least a bit) has changed internally in the coprocessor to avoid if no values ​​have been changed to write the word in memory variables.

L'unité centrale selon l'invention comprend un coprocesseur travaillant sur une mémoire des variables stockant les variables d'entrée et de sortie représentatives des états d'entrée et des états de sortie de l'automate et une mémoire de données stockant des données correspondant à un programme d'automatisme écrit en ladder ou grafcet, le coprocesseur comprenant une partie de contrôle ou de séquencement assurant le séquencement et le contrôle des traitements de données et une partie opérative de traitement assurant le traitement des données,et elle est caractérisée par le fait que le coprocesseur comporte deux bus d'adresses pour adresser la mémoire de données et la mémoire des variables et deux bus de données pour transporter des données vers ou de la mémoire de données ou la mémoire des variables, la partie opérative comprenant des moyens comprenant des blocs logiques, reliés en entrée aux bus de données et en sortie avec le bus de données de la mémo The central unit according to the invention comprises a coprocessor working on a memory storing variables representative input and output variables in the input states and the controller output states and a data memory storing data corresponding to an automation program written in ladder or grafcet, the coprocessor comprising a control portion or sequencing to ensure the sequencing and the data processing control and an operative processing portion which processes data, and it is characterized by the in that the coprocessor includes two address bus for addressing the data memory and the variable memory and two data bus for carrying data to and from the data memory or memory variables, the operative part comprising means comprising logical blocks, connected at input to the data output bus and with the memo data bus ire des variables pour évaluer les variables booléennes d'entrée et pour affecter les variables booléennes de sortie. ire of variables for evaluating the Boolean input variables and to assign Boolean variables output.

Selon une caractéristique, la partie opérative comprend des blocs d'entrée /sortie qui assurent les liaisons entre les bus de données du coprocesseur et les mémoires et des blocs de sortie qui assurent les liaisons entre les bus d'adresses et les mémoires. According to one characteristic, the operating section comprises input / output blocks that provide connections between the coprocessor data bus and the memory and output blocks which provide connections between the address bus and the memory.

Selon une autre caractéristique, elle comporte des moyens comprenant des blocs logiques, reliés en entrées et sorties au bus d'adresses de la mémoire de données et capables sur commande du séquenceur (39) de générer une adresse incrémentée dans ladite mémoire de données. According to another feature, it includes means comprising logical blocks, connected in input and output to the address bus of the data memory and able to control of the sequencer (39) to generate an incremented address in said data memory.

L'invention va maintenant être décrite avec plus de détail en se référant à un mode de réalisation donné à titre d'exemple et représenté par les dessins annexés sur lesquels: The invention will now be described in more detail with reference to an embodiment given by way of example and represented in the accompanying drawings in which:
- la figure 1 est un schéma d'une unité centrale de traitement comprenant le coprocesseur booléen selon l'invention; - Figure 1 is a diagram of a central processing unit comprising the boolean co-processor according to the invention;
- la figure 2 est un exemple de réseau booléen; - Figure 2 is an example of Boolean network;
- la figure 3 montre un découpage du réseau booléen de la figure 2 qui permet d'aboutir à la structure de données selon l'invention - Figure 3 shows a cutting Boolean network of Figure 2 which allows to achieve the data structure according to the invention
- la figure 4 est un schéma fonctionnel du coprocesseur spécifique selon l'invention. - Figure 4 is a block diagram of specific coprocessor according to the invention.

L'automate programmable comprenant l'unité centrale de la figure 1, reçoit, via des modules d'entrée/sortie, des signaux électriques de capteurs et émet des signaux électriques vers des pré-actionneurs et des voyants. The programmable controller comprising the CPU of Figure 1, receives, via input / output modules, electrical signal sensors and transmits electrical signals to the pre-actuators and indicators. Les signaux reçus et les signaux émis sont définis par des niveaux logiques "0" ou "1" et sont appelés variables d'entrée et variables de sortie. The received signals and the transmitted signals are defined by logic levels "0" or "1" and are referred to as input and output variables.

L'unité centrale de l'automate programmable exécute en permanence un programme d'automatisme relatif à une application particulière, en fonction des états des entrées, pour commander les états des sorties. The CPU of the PLC continuously executes an automatic program on a particular application, depending on the states of the inputs for controlling the states of the outputs. Le temps d'exécution est appelé temps de cycle. The running time is called cycle time. Ce programme d'automatisme est décrit dans un langage graphique spécifique: langage à contacts ("ladder"), boites fonctionnelles constructeur ou langage grafcet. This automation program is described in a specific graphic language: Ladder Diagram ( "ladder"), manufacturer functional boxes or Grafcet language. Le langage à contacts est un langage graphique qui représente une succession de fonctions logiques. The ladder language is a graphical language representing a succession of logic functions. Les variables d'entrée sont uniquement des variables de types contacts ouverts ou fermés. The input variables are only of types of open or closed contacts variables. La fonction logique des variables d'entrée (appelée aussi réseau combinatoire d'entrée) a une valeur 0 ou 1 qui conditionne les états de variables de sortie connectées en parallèle. The logic function of the input variables (also called input switching network) has a value 0 or 1 which determines the output variables of states connected in parallel. Ces variables de sortie constituent le réseau combinatoire de sortie.Elles sont principalement des variables de type bobines pouvant être ouvertes ou fermées. These output variables are the sortie.Elles combinatorial network are mainly coils type of variables that can be open or closed.

L'unité centrale comprend un microprocesseur numérique standard 2 et un processeur spécifique ou coprocesseur 3 exécutant les traitements booléens, interprétant des données booléennes. The central unit includes a standard digital microprocessor 2 and a specific processor or coprocessor 3 running Boolean treatments, performing Boolean data. A titre indicatif, le microprocesseur numérique 2 est un microprocesseur Motorola 68000. For information, the digital microprocessor 2 is a Motorola 68000 microprocessor.

Le microprocesseur numérique 2 travaille sur une mémoire "programme et données" 4 (de type mémoire vive) et sur une mémoire commune 1 (de type mémoire vive) dans laquelle sont stockées les variables automate. The digital microprocessor 2 working on a memory "program data" 4 (RAM type) and a common memory 1 (such as RAM) in which the automaton variables are stored. On entend par variables automates, les variables d'entrée et de sortie et les variables internes nécessaires au traitement du programme d'automatisme. The term PLC variables, input and output variables and the necessary internal variables processing automation program. Chacune des variables d'entrée ou de sortie est représentée par un bit stocké dans un mot (c'est à dire un ensemble de bits) ou une table. Each input or output variable is represented by a bit stored in a word (i.e. a set of bits) or a table. Les variables internes sont représentées par des bits ou des mots internes. Internal variables are represented by bits or internal words.

Le coprocesseur 2 travaille sur une mémoire de données 5 (de type mémoire "vive") et sur la mémoire commune 1 dans laquelle sont stockées les variables automate. The coprocessor 2 working on a data memory 5 (type "living" memory) and the common memory controller 1 wherein the variables are stored. La mémoire 5 est dite partagée car le microprocesseur numérique 2 peut aussi y avoir accès. The memory 5 is called shared because digital microprocessor 2 can also access them. Ces mémoires 5 et 1 travaillent par exemple sur des mots de 16 bits. These memories 5 and 1 are working for example on 16-bit words.

Une première partie de la mémoire partagée 5 contient une structure de données booléennes qui sera définie plus loin et qui représente la partie ladder ou grafcet de l'application d'automatisme. A first portion of the shared memory 5 contains a Boolean data structure that will be defined below and which represents the ladder or grafcet part of the automation application.

Une seconde partie de la mémoire partagée 5, de taille fixée, permet au coprocesseur 3 et au microprocesseur numérique 2 de communiquer l'un avec l'autre. A second portion of the shared memory 5, of fixed size, allows the coprocessor 3 and the digital microprocessor 2 to communicate with each other. Le microprocesseur numérique 2 peut écrire des adresses en mémoire partagée 5 destinées au coprocesseur 3 pour que celui-ci les lise. The digital microprocessor 2 can write shared memory addresses for the coprocessor 3 5 so that it reads them. Inversement le coprocesseur 3 peut écrire, en mémoire partagée 5, des adresses destinées au microprocesseur numérique 2 pour que celuici les lise. Conversely the coprocessor 3 can be written in the shared memory 5, the addresses for the digital microprocessor 2 for the latter to read.

Le coprocesseur 3 adresse la mémoire partagée 5, via un bus d'adresses 61, lorsqu'il est autorisé à accéder à ladite mémoire, par l'intermédiaire d'un multiplexeur 10 contrôlé par le microprocesseur 2. Les échanges de données entre la mémoire partagée 5 et le coprocesseur 3 s'effectuent via un bus de données 71. The coprocessor 3 address the shared memory 5, via an address bus 61, when it is authorized to access said memory, via a multiplexer 10 controlled by the microprocessor 2. Data exchange between the memory shared 5 and the coprocessor 3 takes place via a data bus 71.

Le coprocesseur 3 adresse la mémoire commune 1, via un bus d'adresses 62, lorsqu'il est autorisé à accéder à ladite mémoire, par l'intermédiaire d'un arbitre de bus 11. Les échanges de données entre le coprocesseur 3 et la mémoire commune 1 s'effectuent par un bus de données 72. The coprocessor 3 address the common memory 1 via an address bus 62, when it is authorized to access to said memory via a bus arbiter 11. The data exchanges between the coprocessor 3 and the common memory 1 are performed by a data bus 72.

Le microprocesseur numérique 2 adresse la mémoire partagée 5, au travers du multiplexeur 10, via un bus d'adresses 82. Les échanges de données entre le microprocesseur numérique 2 et la mémoire partagée 5 s'effectuent via un bus de données 92. The digital microprocessor 2 address the shared memory 5 through the multiplexer 10 via an address bus 82. Data exchange between the digital microprocessor 2 and the shared memory 5 are performed via data bus 92.

Le microprocesseur numérique 2 adresse la mémoire "programme et données" 4 via un bus d'adresses 81. Les échanges de données entre le microprocesseur numérique 2 et la mémoire programme et données 4 s'effectuent via un bus de données 91. The digital microprocessor 2 memory address "program data" 4 via an address bus 81. The exchange of data between the microprocessor 2 and the digital program and data memory 4 is via a data bus 91.

Le microprocesseur numérique 2 adresse la mémoire commune 1, via un bus d'adresses 83, lorsqu'il y est autorisé par l'arbitre de bus 11. Les échanges de données entre le microprocesseur numérique 2 et la mémoire commune 1 s'effectuent via un bus de données 93. The digital microprocessor 2 address the common memory 1 via an address bus 83, when authorized by the bus arbiter 11. The data exchange between the digital microprocessor 2 and the common memory 1 is via 93 a data bus.

Le réseau ladder ou grafcet correspondant à un programme d'automatisme particulier est écrit à l'aide d'un éditeur graphique disponible depuis un terminal ou exécuté par un micro-ordinateur. The ladder network or grafcet corresponding to a particular automatic program is written using a graphical editor provided from a terminal or executed by a microcomputer.

La figure 2 montre un exemple de réseau ladder écrit à t'aide de l'éditeur graphique mentionné cidessus. Figure 2 shows an example of a ladder network written using the graphical editor you mentioned above. Le réseau combinatoire d'entrée comprend des variables d'entrée du type contacts A, B, C, D, E, F. Le réseau combinatoire de sortie comprend des variables de sortie G, H qui sont du type bobines et une variable de sortie I. The input switching network comprises contacts of the type A input variables, B, C, D, E, F. The output switching network comprises output variables G, H that are coils type and an output variable I.

Si le programme d'automatisme particulier est écrit en grafcet, les graphes grafcet sont traduits par un premier traducteur informatique grafcet/ladder qui génère un ensemble de réseaux ladder tel que celui de la figure 2 et représentant la description topologique des graphes. If the particular automation program is written in grafcet, the grafcet graphs are translated by a first translator computer grafcet / ladder which generates a set of ladder networks such as that of Figure 2 and showing the topological description of the graphs.

Les réseaux ladder, qu'ils soient écrits directement en ladder ou qu'ils résultent de la traduction de graphes grafcet, sont traduits par un second traducteur informatique Iadder/structures de données booléennes qui génère une structure de données booléennes particulière, stockée en mémoire partagée 5. Cette structure de données booléennes est un ensemble de données interprétables en ligne par le coprocesseur 3. The ladder networks, whether written directly in ladder or result from the translation of grafcet graphs, led to a second computer translator Iadder / Boolean data structures that generates a particular Boolean data structure stored in shared memory 5. This Boolean data structure is a set of interpretable data online via the coprocessor 3.

Pour chaque expression combinatoire, le traducteur ladder/structure de données booléennes regroupe les variables d'entrée en couches et les variables de sortie en tranche. Each combinatorial expression, the translator ladder / Boolean data structure includes the input variables in layers and wafer output variables. Si la structure de données ne comporte aucune couche, l'expression combinatoire est vraie et les sorties sont affectées. If the data structure has no layer, combinatorial expression is true and the outputs are affected.

Toute variable d'entrée est booléenne de type contact, soit de type indexé soit de type non indexé. Any input variable is boolean contact type or kind of indexed or non indexed kind.

Toute booléenne variable d'entrée non indexée est définie par un bit appartenant à un mot stocké en mémoire commune 1. Any non-indexed input Boolean variable is defined by a bit belonging to a word stored in one common memory.

Toute variable booléenne d'entrée peut être complémentée ou pas. Any input Boolean variable can be complemented or not. Si elle est complémentée, la valeur active est 0 et la valeur inactive est 1. Si elle est non complémentée, la valeur active est 1 et la valeur inactive est 0. Dans l'exemple des figures 2 et 3, les variables d'entrée A, B, D et F sont non complémentées, tandis que les variables d'entrée C et E sont complémentées. If it is negated, the current value is 0 and the inactive value is 1. If it is not supplemented, the current value is 1 and the inactive value is 0. In the example of Figures 2 and 3, the input variables A, B, D and F are not supplemented, while the input variables C and E are complemented.

Chaque variable booléenne d'entrée indexée est contenue dans une table de bits rangés dans une suite de mots de la mémoire commune 1. Elle est définie par le premier bit de la table en mémoire commune 1 et par un index fixe ou variable de la variable dans la table, ce bit et cet index étant récupérables par un masque d'accès stocké en mémoire partagée 5. Each indexed input Boolean variable is contained in a bitmap stored in consecutive words of the shared memory 1. It is defined by the first bit of the common memory table 1 and by a fixed or variable index variable in the table, this bit and this index being recoverable by a stored access mask in shared memory 5.

Pour chaque variable booléenne d'entrée, la mémoire partagée 5 contient des paramètres attachés à cette variable. Each Boolean input variable, the shared memory 5 contains parameters attached to that variable. Ces paramètres occupent trois mots de cette mémoire 5. These parameters occupy three words of this memory 5.

Le premier mot mémoire contient un multiplet définissant l'adresse, en mémoire commune 1, du mot qui contient la valeur de la variable d'entrée, plus un bit pour indiquer si ce même mot contient aussi la valeur de la variable successeur de la variable courante dans la couche. The first word memory contains a byte defining the address, in common memory 1, the word that contains the value of the input variable, plus a bit to indicate if the same word also contains the variable value of the variable successor current in the layer. Autrement dit ce bit indiquera si le successeur a la même adresse en mémoire commune 1 que la variable courante. That this bit will indicate if the successor has the same common memory address 1 as the current variable.

Le second mot mémoire contient des multiplets définissant les positions de la variable dans le réseau combinatoire d'entrée (en fin d'une couche ou pas, avec ou sans variable de déroutage), les types de la variable d'entrée (variable booléenne indexée ou non indexée, variable de table de bits à index fixe ou variable, variable complémentée ou pas), le masque d'accès au bit contenant la valeur de la variable dans le mot stocké en mémoire commune 1. Ce masque d'accès permet de récupérer le bit de la variable d'entrée en mémoire des variables 1. The second memory word contains bytes defining the positions of the variable in the input switching network (at the end of a layer or not, with or without rerouting of variable), the types of the input variable (indexed boolean or non-indexed variable bit table fixed or variable index, supplemented or not variable), the access bit mask containing the value of the variable in the word stored in common memory 1. This access mask allows recovering the bit of the input variable in variable memory 1.

Le troisième mot mémoire contient un multiplet définissant l'adresse éventuelle de la variable de déroutage de la variable courante, en mémoire partagée 5, plus un bit pour indiquer si ce même mot contient aussi la valeur de la variable de déroutage de la variable courante. The third memory word contains a byte defining the possible address of the variable diversion of the current variable in shared memory 5, plus a bit to indicate if the same word also contains the value of the variable diversion of the current variable. Autrement dit ce bit indiquera si la variable de déroutage a la même adresse en mémoire commune 1 que la variable courante. That this bit will indicate whether the diversion variable has the same common memory address 1 as the current variable.

Pour chaque variable booléenne d'entrée indexée, la mémoire partagée 5 contient des paramètres attachés à cette variable et qui occupent quatre mots mémoire. Each Boolean variable indexed entry, the shared memory 5 contains parameters attached to that variable and which occupy four memory words. Ces quatre mots sont les trois mots décrits cidessus mais relatifs à la variable du premier bit de la table et non pas à la variable courante plus un quatrième mot qui contient soit un index fixe, soit l'adresse en mémoire commune 1 d'un index variable. These four words are the three words described above but related to the variable of the first bit of the table, not the current variable plus a fourth word that contains either a fixed index or the common memory address 1 of an index variable.

La plupart des variables de sortie sont booléennes. Most of the output variables are Boolean. Ce sont des bobines indexées ou non indexées. These are indexed and non-indexed coils.

Une variable booléenne de sortie du type bobine est définie par un bit appartenant à un mot stocké en mémoire commune 1. En se référant aux figures 2 et 3, les variables G et H sont des variables de ce type. A Boolean variable output coil type is defined by a bit belonging to a word stored in common memory 1. Referring to Figures 2 and 3, G and H variables are variables of this type.

Une variable booléenne de sortie du type bobine peut être complémentée ou pas. A Boolean variable output coil type can be complemented or not. Si elle est complémentée, la valeur active est 0, la valeur inactive est 1. Si elle est non complémentée, comme par exemple la variable G, la valeur active est 1, la valeur inactive est 0. Une variable de sortie de type bobine, complémentée ou non complémentée, est positionnée à sa valeur active si l'expression combinatoire logique du réseau d'entrée est vraie. If it is negated, the current value is 0, the inactive value is 1. If it is non-complemented, such as the variable G, the current value is 1, the inactive value is 0. A coil type output variable, complemented or non-complemented, is positioned at its current value if the combinatorial expression logic of the input network is true. Sinon elle est positionnée à sa valeur inactive. Otherwise it is set to its inactive value.

Une variable booléenne de sortie peut être du type bobine "reset" ou "set". A Boolean variable output may be of the coil type of "reset" or "set". Si elle est du type "reset", la valeur active est 0, la valeur inactive est 1. Si elle est du type "set", comme par exemple la variable R la valeur active est 1, la valeur inactive est 0. Une variable de sortie de type bobine "reset" ou "set" est positionnée à sa valeur active si l'expression combinatoire logique du réseau d'entrée est vraie. If it is of the "reset", the current value is 0, the inactive value is 1. If it is of the type "set", for example the R variable the current value is 1, the inactive value is 0. A variable type coil "reset" output or "set" is set to its active value if the combinatorial expression logic of the input network is true. Au contraire si l'expression combinatoire logique est fausse, les bobines "reset" ou "set" conservent leur valeur initiale. On the contrary if the combinatorial logic expression is false, the coils "reset" or "set" retain their original value.

Une variable booléenne de sortie indexée est contenue dans une table de bits rangés dans une suite de mots en mémoire commune 1. Elle est repérée par le masque d'accès au premier bit de la table en mémoire commune 1 et par un index fixe ou variable de la variable dans la table. An indexed output Boolean variable is contained in a bitmap stored in a sequence of words in common memory 1. It is indicated by the access mask the first bit of the common memory table 1 and by a fixed or variable index variable in the table.

Des variables de sortie peuvent être non booléennes. Output variables may be non-Boolean.

Une variable de sortie non booléenne du type "saut à une expression combinatoire" correspond à un saut à une expression combinatoire située en aval ou en amont de l'expression combinatoire courante. A non-Boolean output variable of the type "jump to a combinatorial term" corresponds to a jump to a combinatorial expression downstream or upstream of the current combinatorial expression. Le saut dans la structure de données n'est réalisé que si l'expression de logique combinatoire du réseau booléen d'entrée est vraie. The jump in the data structure is realized that if the expression of the combinatorial logic network input boolean is true. La variable I des figures 2 et 3 est une variable de ce type. The variable I of Figures 2 and 3 is a variable of that type.

Une variable de sortie non booléenne du type "appel d'un sous-programme" correspond à un sousprogramme devant être exécuté par le microprocesseur numérique 2. Le coprocesseur 3 doit alors communiquer une adresse au microprocesseur numérique 2 via la mémoire partagée 5 afin que ledit microprocesseur numérique 2 exécute le programme correspondant en mémoire "programme et données" 4. A non-Boolean output variable of the type "Call a subroutine" is a subroutine to be executed by the coprocessor 2. The digital microprocessor 3 must then communicate an address to the digital microprocessor 2 via the shared memory 5 so that said digital microprocessor 2 executes the corresponding program into memory "program data" 4.

L'adresse du sous-programme en mémoire "programme et données" 4 n'est placée dans la boîte aux lettres de la mémoire partagée 5 que si l'expression de logique combinatoire du réseau booléen d'entrée est vraie. The memory address of the subroutine "program data" 4 is placed in the mailbox of the shared memory 5 that if the expression of the combinatorial logic network input boolean is true.

Pour chaque variable booléenne de sortie, la mémoire partagée 5 contient des paramètres attachés à cette variable. Each Boolean variable output, the shared memory 5 contains parameters attached to that variable. Ces paramètres occupent deux mots mémoire de la mémoire 5. These parameters occupy two memory words of the memory 5.

Le premier mot mémoire contient un multiplet relatif à l'adresse en mémoire commune 1 du mot qui contient la valeur de la variable ou l'adresse de saut à une expression combinatoire en mémoire partagée 5 ou l'adresse d'appel d'un sous-programme en mémoire programme et données 4, plus un bit indiquant si cette adresse est destinée à la mémoire commune 1 ou pas, plus un bit pour indiquer si ce même mot contient aussi la valeur de la variable successeur de la variable courante de la tranche. The first memory word contains one byte on the common memory address 1 of the word containing the value of the variable or address hopping a combinatorial expression in shared memory 5 or a call address in -program memory and program data 4, plus a bit indicating if the address is for the common memory 1 or not, plus a bit to indicate whether the same word also contains the value of the variable successor of the current variable of the slice . Autrement dit ce dernier bit indique si la variable successeur a la même adresse en mémoire commune 1 que la variable courante. That latter bit indicates whether the variable successor has the same common memory address 1 as the current variable.

Le second mot mémoire contient des multiplets définissant les positions de la variable dans le réseau booléen de sortie (en fin de tranche ou pas, en fin d'une structure de données ou pas), les types de la variable de sortie (variable booléenne classique ou pas, variable de table de bits à index fixe ou variable, variable complémentée ou pas, variable de "saut à une expression combinatoire", variable "d'appel de sousprogramme"), le masque d'accès au bit contenant la valeur de la variable dans le mot en mémoire commune 1. The second memory word contains bytes defining the variable positions in the Boolean array output (end wafer or not, at the end of a data structure or not), the types of the output variable (Boolean variable vector or not, bitmap variable fixed or variable index, variable complemented or not, variable "jump to a combinatorial expression" variable "call subroutine"), the bit access mask containing the value of the variable in the word common memory 1.

Ce masque d'accès permet de récupérer le bit de la variable de sortie en mémoire des variables 1. This access mask to retrieve the bit of the output variable in memory of variables 1.

Pour chaque variable booléenne de sortie indexée, la mémoire partagée 5 contient des paramètres attachés à cette variable et qui occupent trois mots mémoire. Each Boolean variable indexed output, the shared memory 5 contains parameters attached to this variable and occupying three memory words. Ces trois mots sont les deux mots décrits cidessus mais relatifs à la variable du premier bit de la table et non pas à la variable courante plus un troisième mot qui contient un index fixe ou l'adresse en mémoire commune 1 d'un index variable. These three words are the words described above but related to the variable of the first bit of the table, not the current variable over a third word that contains a fixed index or shared memory address 1 of a variable index.

Afin de définir les couches, l'expression combinatoire d'entrée est développée en respectant l'ordre dans lequel les variables d'entrée ont été saisies par l'utilisateur. In order to define the layers, combinatorial input expression developed in the order in which the input variables were entered by the user. On aboutit donc à une expression combinatoire développée constituant une suite de Ou logiques reliant des expressions en Et logiques. therefore leads to a combinatorial expression developed constituting a series of logical or linking phrases and logical.

Dans la première étape, on constitue des ensembles regroupant les expressions Et logiques dont la première variable à gauche est commune. In the first stage, constitute sets of the expressions and logical that the first left variable is common. Dans l'étape suivante, pour chaque ensemble, on conserve la première expression Et logique. In the next step, for each set, it retains the first expression and logic. Dans toutes les autres expressions Et logique, on supprime la première variable commune à gauche. In all other expressions and logic, it removes the first joint variable left. Dans ce nouvel ensemble ainsi modifié, on itère le processus sans prendre en compte la variable que l'on a déjà considérée et laissée ou supprimée. In this new set as amended, iterating the process without taking into account the variable that we have already considered and allowed or disallowed.

Par ensemble le processus est arrêté lorsqu'on ne trouve plus de première variable à gauche non traitée commune à plusieurs expressions Et logique ou que chaque ensemble n'est plus constitué que d'une seule expression Et logique. For all the process is stopped when no longer find first variable to untreated left common multiple expressions and logical or that each set is no longer consists of only one expression and logic. ll n'y a plus de simplification possible. There is no longer possible simplification.

Enfin les couches sont obtenues en éliminant les redondances. Finally, the layers are obtained by eliminating redundancies. Parmi celles qui sont identiques, on conserve la dernière. Among those are the same, it keeps the last. Le nombre de couches de la structure de données booléennes est le nombre de Ou logiques plus 1. The number of layers of the Boolean data structure is the number of logic 1 or more.

Ainsi si l'on considère l'exemple des figures 2 et 3, l'expression de logique combinatoire est: (A et ( non(C) ou D) et F) ou (B et non(E)). Thus if we consider the example of FIGS 2 and 3, the combinational logic expression is: (A and (not (C) or D) and F) or (B and not (E)). L'expression développée est : A et non (C) et F ou A et D et F ou B et non(E). The term is developed: A and no (C) and F or F and A and D or B and not (E).

Le tableau 1 cidessous résume le processus de création des couches dans le cas de l'exemple des figures 2 et 3. Table 1 below summarizes the layers of the creation process in the case of the example of FIGS 2 and 3.

TABLEAU 1 TABLE 1

Figure img00090001

<tb> Expressions <SEP> Etape <SEP> 1 <SEP> Etape <SEP> 2 <SEP> Couches <Tb> Expressions <September> Step <September> 1 <September> Step <September> 2 <September> Layers
<tb> Et <SEP> Logiques <Tb> and <September> Logic
<tb> <SEP> Ensembles <SEP> Ensembles <SEP> Ensembles <SEP> Ensembles <Tb> <September> Sets <September> Sets <September> Sets <September> Sets
<tb> <SEP> modifiés <SEP> modifiés <Tb> <September> modified <September> modified
<tb> Expression <SEP> Et <SEP> Ensemble <SEP> Ensemble <SEP> modifié <SEP> Ensemble <SEP> Ensemble <SEP> modifié <Tb> Expression <September> And <September> assembly <September> assembly <September> modified <September> assembly <September> assembly <September> modified
<tb> logique <SEP> n <SEP> <SEP> 1 <SEP> Couche <SEP> 1 <Tb> logic <September> n <September> <September> 1 <September> Layer <September> 1
<tb> Anon(C)F <SEP> Anon(C)F <SEP> Anon(C)F <SEP> Anon(C)F <SEP> Anon(C)F <SEP> Anon(C)F <Tb> Anon (C) F <September> Anon (C) F <September> Anon (C) F <September> Anon (C) F <September> Anon (C) F <September> Anon (C) F
<tb> Expression <SEP> Et <SEP> Ensemble <SEP> Ensemble <SEP> modifié <Tb> Expression <September> And <September> assembly <September> assembly <September> modified
<tb> Logique <SEP> n <SEP> <SEP> 2 <SEP> Couche <SEP> 2 <Tb> Logic <September> n <September> <September> 2 <September> Layer <September> 2
<tb> ADF <SEP> ADF <SEP> DF <SEP> DF <SEP> DF <SEP> DF <Tb> ADF <September> ADF <September> DF <September> DF <September> DF <September> DF
<tb> Expression <SEP> Et <SEP> Ensemble <SEP> <SEP> Ensemble <SEP> modifié <SEP> Ensemble <SEP> Ensemble <SEP> modifié <Tb> Expression <September> And <September> assembly <September> <September> assembly <September> modified <September> assembly <September> assembly <September> modified
<tb> Logique <SEP> n0 <SEP> <SEP> 3 <SEP> Couche <SEP> 3 <Tb> Logic <September> N0 <September> <September> 3 <September> Layer <September> 3
<tb> Bnon(E) <SEP> Hnon < E) <SEP> <SEP> Bnon(E) <SEP> ~ <SEP> <SEP> Bnon(E) <SEP> ~ <SEP> <SEP> Bnon(E) <SEP> Bnon(E) <Tb> Bnon (E) <September> Hnon <E) <September> <September> Bnon (E) <September> ~ <September> <September> Bnon (E) <September> ~ <September> <September> Bnon ( E) <September> Bnon (E)
<tb> <Tb>
Dans cet exemple, le processus est arrêté à l'étape 2 car dans chaque ensemble de chemins n'est plus constitué que d'un seul chemin. In this example, the process is stopped in step 2 for each set of paths no longer consists of a single path. La première couche comprend les variables A, C, F, la seconde couche comprend les variables D et F, la troisième couche comprend les variables B et E. La figure 3 montre la structure en couches. The first layer comprises the variables A, C, F, the second layer comprises the variable D and F, the third layer comprises the variables B and E. Figure 3 shows the layer structure.

Le tableau 2 ci dessous schématise la structure de données stockée en mémoire partagée 5 qui correspond à l'exemple de la figure 3: Table 2 below shows schematically the data structure stored in shared memory 5 which corresponds to the example of Figure 3:
TABLEAU 2 TABLE 2

Figure img00100001

<tb> <SEP> ADRESSES <SEP> CONTENUS <Tb> <September> ADDRESS <September> CONTENT
<tb> <SEP> (Mémoire <SEP> partagée <SEP> 5) <Tb> <September> (Memory <September> shared <September> 5)
<tb> Adresse <SEP> 1 <SEP> Adresse <SEP> 23 <Tb> Address <September> 1 <September> Address <September> 23
<tb> <SEP> (adresse <SEP> de <SEP> début <SEP> de <SEP> La <SEP> tranche <SEP> 1 <SEP> des <Tb> <September> (at <September> of <September> start <September> of <September> The <September> slice <September> 1 <September> of
<tb> <SEP> variables <SEP> de <SEP> sortie) <Tb> <September> variables <September> of <September> output)
<tb> (couche <SEP> 1 <SEP> des <SEP> variabLes <SEP> dentrée) <Tb> (layer <September> 1 <September> of <September> Variable <September> entrance)
<tb> Adresses <SEP> 2, <SEP> 3 <SEP> et <SEP> 4 <SEP> paramètres <SEP> de <SEP> la <SEP> variable <SEP> A <Tb> Addresses <September> 2, <September> 3 <September> and <September> 4 <September> parameters <September> of <September> the <September> variable <September> A
<tb> Adresses <SEP> 5, <SEP> 6 <SEP> et <SEP> 7 <SEP> paramètres <SEP> de <SEP> ta <SEP> variable <SEP> C <Tb> Addresses <September> 5, <September> 6 <September> and <September> 7 <September> parameters <September> of <September> ta <September> variable <September> C
<tb> Adresses <SEP> 8, <SEP> 9 <SEP> et <SEP> 10 <SEP> paramètres <SEP> de <SEP> La <SEP> variable <SEP> F <Tb> Addresses <SEP> 8 <SEP> 9 <SEP> and <SEP> 10 <SEP> parameters <SEP> of <SEP> the <SEP> variable <SEP> F
<tb> (couche <SEP> 2 <SEP> des <SEP> variables <SEP> dentrée) <Tb> (layer <SEP> 2 <SEP> of <SEP> Variable <SEP> entrance)
<tb> Adresses <SEP> 11, <SEP> 12 <SEP> et <SEP> 13 <SEP> paramètres <SEP> de <SEP> la <SEP> variable <SEP> D <Tb> Addresses <September> 11, <September> 12 <September> and <September> 13 <September> parameters <September> of <September> the <September> variable <September> D
<tb> Adresses <SEP> 14, <SEP> 15 <SEP> et <SEP> 16 <SEP> paramètres <SEP> de <SEP> la <SEP> variable <SEP> F <Tb> Addresses <September> 14, <September> 15 <September> and <September> 16 <September> parameters <September> of <September> the <September> variable <September> F
<tb> (couche <SEP> 3 <SEP> des <SEP> variables <SEP> dentrée) <Tb> (layer <September> 3 <September> of <September> Variable <September> entrance)
<tb> Adresses <SEP> 17, <SEP> 18 <SEP> et <SEP> 19 <SEP> paramètres <SEP> de <SEP> la <SEP> variable <SEP> B <Tb> Addresses <September> 17, <September> 18 <September> and <September> 19 <September> parameters <September> of <September> the <September> variable <September> B
<tb> Adresses <SEP> 20, <SEP> 21 <SEP> et <SEP> 22 <SEP> paramètres <SEP> de <SEP> la <SEP> variable <SEP> E <Tb> Addresses <SEP> 20 <SEP> 21 <SEP> and <SEP> 22 <SEP> parameters <SEP> of <SEP> the <SEP> variable <SEP> E
<tb> (tranche <SEP> 1 <SEP> des <SEP> variables <SEP> de <SEP> sortie) <Tb> (range <September> 1 <September> of <September> variables <September> of <September> output)
<tb> Adresses <SEP> 23 <SEP> et <SEP> 24 <Tb> Places <September> 23 <September> and <September> 24
<tb> Adresses <SEP> 25 <SEP> et <SEP> 26 <SEP> paramètres <SEP> de <SEP> la <SEP> variable <SEP> G <Tb> Addresses <September> 25 <September> and <September> 26 <September> parameters <September> of <September> the <September> variable <September> G
<tb> Adresses <SEP> 27 <SEP> et <SEP> 28 <SEP> paramètres <SEP> de <SEP> la <SEP> variable <SEP> H <Tb> Addresses <September> 27 <September> and <September> 28 <September> parameters <September> of <September> the <September> variable <September> H
<tb> <SEP> paramètres <SEP> de <SEP> La <SEP> variable <SEP> I <SEP> <Tb> <September> Settings <September> of <September> The <September> variable <September> I <September>
<tb> <Tb>
Une tranche de variable de sortie contient au plus une variable de sortie de type "saut à une expression combinatoire" ou au plus une variable de sortie de type "appel d'un sous-programme" An output variable slice contains at most one type of output variable "jump to a combinatorial expression" or at most one type of output variable "call a subroutine"
Les variables de sortie sont implantées dans la structure de données dans le même ordre que l'ordre d'apparition des variables de sortie dans le réseau combinatoire de sortie.Sur la figure 3, les variables G, H et The output variables are established in the data structure in the same order as the order of the output variables in the combinational network sortie.Sur Figure 3, the variables G, H and
I sont rassemblées en une seule tranche. I gathered in a single tranche. lly a toujours une tranche unique. lly always a single wafer.

On appelle variable de déroutage d'une variable donnée, la variable qui sera évaluée si la variable considérée ne conduit pas c'est à dire si sa fonction de conduction est fausse. rerouting variable is called a given variable, the variable that will be evaluated if the variable considered does not lead ie if its conduction function is false. Pour une variable donnée appartenant à une couche, la variable de déroutage appartient à une autre couche en avaL Toute variable de couche possède aucune ou au plus une variable de déroutage. For a variable belonging to a layer, the rerouting of variable belongs to another layer downstream Any layer variable has no or at most a diversion variable.

Ainsi sur la figure 3, la variable B est la variable de déroutage de la variable A ou de la variable F ou de la variable D. La variable D est la variable de déroutage de la variable C. La variable B n'a pas de variable de déroutage. Thus in Figure 3, the B variable is the variable rerouting of variable A or the F variable or variable D. The D variable is the rerouting of variable variable C. The variable B has no rerouting variable. L'adresse de déroutage de A est l'adresse en mémoire partagée 5 de B (en se référant au tableau 1 précédent le contenu de l'adresse 4 est l'adresse 17). A rerouting The address is the address in shared memory 5 B (with reference to the above Table 1 the contents of the address is the address 4 17). L'adresse de déroutage de C est l'adresse en mémoire partagée 5 de B (le contenu de l'adresse 7 est l'adresse 11). The C rerouting address is the address in shared memory 5 B (the content of the address is the address 7 11). L'adresse de déroutage de D est l'adresse en mémoire partagée 5 de B (contenu de l'adresse 13 = adresse 17). The D rerouting address is the address in shared memory 5 B (contents of the address 13 = address 17). L'adresse de déroutage de F est l'adresse en mémoire partagée 5 de B (contenu de l'adresse 16 = adresse 17). The F rerouting address is the address in shared memory 5 B (contents of the address 16 = address 17). Les adresses de déroutage de B et E n'existent pas et sont sans signification (contenus des adresses 19 et 22). The rerouting of B addresses and E do not exist and are meaningless (addresses contained 19 and 22).

On appelle variable successeur d'une variable de couche (respectivement tranche), la variable qui suit dans la même couche (respectivement tranche). successor variable is called a layer of variable (wafer respectively), the variable that follows in the same layer (slice respectively). Toute variable de couche (respectivement tranche) possède aucune ou au plus une variable successeur. Any layer variable (each tranche) has no or at most one successor variable. Ainsi sur la figure 3, la variable d'entrée F est la variable successeur de la variable C, la variable E n'a pas de variable successeur. Thus in Figure 3, the input variable is the variable F successor of the variable C, the variable E has no successor variable. La variable de sortie I est le successeur de la variable H qui est le successeur de la variable G. The output variable I is the successor of the variable H which is the successor to the G. variable

L'adresse du successeur de la variable booléenne d'entrée ou de sortie courante en mémoire partagée 5 n'est pas mémorisée dans le coprocesseur 3 car les couches de variables d'entrée et la tranche des variables de sortie sont réalisées de telle manière que pour chaque variable l'adresse de sa variable successeur soit implicite dans la structure de données. The address of the successor of the Boolean variable input or current output in shared memory 5 is not stored in the coprocessor 3 for the input variables of the wafer layers and output variables are designed in such manner that for each variable the address of his successor variable is implicit in the data structure. Pour une variable d'entrée, l'adresse de la variable successeur est obtenue par incrémentation de l'adresse courante en mémoire partagée 5, lorsque ladite variable d'entrée conduit et qu'elle n'est pas la dernière de la couche.Pour une variable de sortie, l'adresse de la variable successeur est également obtenue par incrémentation de l'adresse courante en mémoire partagée 5, lorsque les fonctions condition d'affectation et affectation de ladite variable de sortie ont été calculées et que ladite variable de sortie n'est pas la dernière de la tranche. For an input variable, the variable the successor address is obtained by incrementing the current address in shared memory 5, when said input variable conduit and it is not the last of the couche.Pour an output variable, the variable the successor address is obtained by incrementing the current address in shared memory 5, when the assignment provided functions and assigning said output variable were calculated and that said output variable is not the last of the wafer.

Le coprocesseur 3 exécute successivement: The coprocessor executes 3 in succession:
- l'évaluation des variables d'entrée du réseau combinatoire d'entrée (calcul de la fonction de conduction associée à une variable d'entrée booléenne) tant que le résultat de l'expression de logique combinatoire représentée par le réseau combinatoire d'entrée n'est pas connu; - evaluation of the combinatorial input network input variables (calculation of the conduction function associated with a Boolean input variable) as the result of the combinatorial logical expression represented by the combinatorial input network not known;
- l'affectation de toutes les variables de sortie (calculs des fonctions de condition d'affectation et d'affectation associées à chaque variable de sortie booléenne). - assigning all output variables (calculations assignment condition functions and assignment associated with each Boolean output variable).

En se référant à la figure 4, le coprocesseur 3 présente deux bus d'adresses 312 et 314 qui permettent respectivement d'adresser la mémoire partagée 5 et la mémoire commune 1 et deux bus de données 311 et 313 qui permettent de transmettre ou de récupérer des données en mémoire partagée 5 et en mémoire commune 1 respectivement. Referring to Figure 4, the coprocessor 3 has two address buses 312 and 314 which respectively address the shared memory 5 and the common memory 1 and two data buses 311 and 313 for transmitting or retrieve shared memory data common memory 5 and 1 respectively.

Le coprocesseur 3 comprend une partie opérative 3c qui contient l'ensemble des opérateurs aptes à réaliser les différents traitements: des blocs d'entrée/sortie 316, 318 qui assurent les liaisons entre les bus internes de données 311, 313 et les bus externes 71, 72; The coprocessor 3 comprises an operational part 3c which contains all operators capable of carrying out different treatments: input blocks / output 316, 318 which provide connections between the internal data bus 311, 313 and the external bus 71 , 72; des blocs de sortie 315, 317 qui assurent les liaisons entre les bus d'adresses 312, 314 et les bus externes 61, 62; output blocks 315, 317 which provide connections between the address bus 312, 314 and the external bus 61, 62; un bloc incrémenteur /registre d'adresses 32; an incrementer block / address register 32; un bloc d'évaluation-affectation 33; an evaluation-assignment block 33; un bloc mémoire 37 de type RAM; a block memory 37 of the RAM type; un bloc registres de bits 38. ll comprend un bloc 3a de traitement des variables booléennes indexées qui comprend un bloc encodeur 34, un bloc additionneur-soustracteur 35, un bloc diviseur/décodeur 36.Il comprend par ailleurs une partie de contrôle 3b qui intègre l'algorithme d'exécution et qui constitue le séquenceur 39 des traitements de données (au sens large: adresses, données, bits) lues et/ou écrites en mémoire partagée 5 et/ou en mémoire commune 1. a bit registers block 38. It comprises a block 3a for processing indexed Boolean variables that includes an encoder block 34, an adder-subtractor block 35, a divider block / 36.Il decoder further comprises a control portion 3b that integrates the executing algorithm and which constitutes the sequencer 39 of the data processing (in the broad sense addresses, data bits) read and / or written in the shared memory 5 and / or in one common memory.

Le bloc incrémenteur/registre d'adresses 32 est relié en entrée et en sorties au bus d'adresses 312 qui transporte les adresses servant à adresser la mémoire partagée 5. Il permet de générer sur une sortie une adresse courante ou sur une seconde sortie une adresse courante incrémentée de 1. Ce bloc incrémenteur/registre d'adresses 32 est commandé par le séquenceur 39. Il est à la fois un compteur ordinal et un registre d'adresses des adresses de la mémoire partagée 5. The incrementer block / address register 32 is connected at its input and outputs to the address bus 312 which transports addresses used to address the shared memory 5. It generates at an output a current address or a second output a current address incremented by 1. This block incrementer / address register 32 is controlled by the sequencer 39. It is both a program counter and a address of the address register of the shared memory 5.

Le bloc "évaluation/affectation" 33 est relié en entrée d'une part au bus de données 311 servant à échanger les données avec la mémoire partagée 5 et d'autre part au bus de données 313 servant à échanger les données avec la mémoire commune 1. Il est relié en sortie au bus de données 313 et est commandé par le séquenceur 39 à qui il donne des informations. The block "evaluation / assignment" 33 has its input connected firstly to the data bus 311 for exchanging data with the shared memory 5 and also to data bus 313 for exchanging data with the common memory 1. it is connected in output to the data bus 313 and is controlled by the sequencer 39 to which it provides information. Il sert à évaluer les variables d'entrée (calcul de la fonction de conduction) et à affecter les variables booléennes de sortie (calcul de la condition d'affectation et calcul de la fonction affectation). It is used to evaluate input variables (calculation of the conduction function) and assigning the Boolean output variables (calculation of the condition of assignment and calculation of the allocation function).

Le bloc 3a permet de traiter les variables booléennes d'entrée indexées. The block 3a can treat boolean variables indexed entry. Une variable booléenne d'entrée indexée est affectée par le bloc évaluation / affectation 33 après avoir été traitée par le bloc 3a. An indexed input Boolean variable is set by the evaluation block allocation / 33 after being processed by block 3a. Le bloc 3a est commandé par le séquenceur 39 et permet de calculer l'adresse en mémoire commune 1 et la position dans le mot à cette adresse d'une variable booléenne indexée. The block 3a is controlled by the sequencer 39 and calculates the shared memory address 1 and the position in the word at this address in an indexed Boolean variable. Ces calculs sont réalisés en fonction de l'adresse en mémoire commune 1 de la première variable indexée et en fonction de l'index fixe (dont la valeur est contenue dans un mot en mémoire partagée 5) ou de l'index variable (dont la valeur est contenue dans un mot en mémoire commune 1) de la variable indexée. These calculations are performed according to the common memory address 1 of the first indexed variable and depending on the fixed index (the value of which is contained in one word in the shared memory 5) or the variable index (the value is contained in one word in common memory 1) of the indexed variable.

Le bloc encodeur 34 est relié en entrée au bus de données 311 et en sortie à un bloc additionneur/soustracteur 35. Il est commandé par le séquenceur 39 et il code le masque d'accès à la première variable booléenne (bit de la table dont la valeur est contenue dans un mot en mémoire commune 1) en un index qui permet de repérer la position de cette première variable indexée dans le même mot. The encoder block 34 has its input connected to the data bus 311 and output to an adder block / subtractor 35. It is controlled by the sequencer 39 and encodes the access mask in the first Boolean variable (bit of the table whose the value is contained in one word in common memory 1) an index that identifies the position of the first indexed variable in the same word.

Le bloc additionneur/soustracteur 35 est relié, en entrée, aux bus de données 311 et 313, au bus d'adresses 314, au bloc encodeur 34 et, en sortie, au bus d'adresses 314 et au bloc diviseur/décodeur 36. Il est commandé par le séquenceur 39. Il permet soit d'additionner l'index de la première variable de la table avec l'index fixe ou variable de la variable que l'on veut évaluer dans la table soit de soustraire l'adresse en mémoire commune 1 de la première variable de la table avec le quotient issu du bloc diviseur/décodeur 36 via le bus de données 311. The adder block / subtractor 35 is connected in input, to the data bus 311 and 313, to the address bus 314, the encoder block 34 and at its output to the address bus 314 and to the divider / decoder block 36. it is controlled by the sequencer 39. it makes it possible either to add the index of the first table with the variable fixed or variable index of the variable that we want to evaluate in the table is to subtract the address common memory 1 of the first variable of the table with the quotient from the divider / decoder block 36 via the data bus 311.

Le bloc diviseur/décodeur 36 est relié en entrée au bloc additionneur/soustracteur 35, en sortie au bus de données 311. Il est commandé par le séquenceur 39. I1 permet de réaliser une division euclidienne du résultat de l'addition issu du bloc additionneur/soustracteur 35. Il calcule le quotient et le reste décodé de la division euclidiennne. The divider / decoder 36 is connected on the input block to the block adder / subtractor 35, output to the data bus 311. It is controlled by the sequencer 39. I1 allows a Euclidean division of the result of addition from the adder block / subtractor 35. It calculates the quotient and remainder of the decoded euclidiennne division.

Une mémoire interne 37 du type RAM peut être adressée par le séquenceur 39. Elle peut échanger des données via les bus de données 311 et 313 ou des adresses via les bus d'adresses 312 et 314. Elle sert à stocker: An internal memory 37 of the RAM type can be addressed by the sequencer 39. It can exchange data via the data buses 311 and 313 or addresses via the address bus 312 and 314. It is used to store:
- l'adresse de la boite aux lettres de communication entre le coprocesseur 3 et le microprocesseur 2 en mémoire partagée 5 ; - the address of the box to communication letters between the coprocessor 3 and the microprocessor 2 in shared memory 5;
- l'adresse de la tranche des variables de sortie qui vont être éventuellement affectées; - the address of the portion of the output variables that will possibly be affected;
- l'adresse en mémoire commune 1 de la variable d'entrée ou de sortie courante; - the common memory address 1 of the variable input or output current;
- l'adresse de déroutage de la variable d'entrée courante. - the rerouting address of the variable current input.

Le bloc des registres bits 38 est relié en entrée au bus de données 311. Ces registres stockent les bits internes de fonctionnement. The bit registers block 38 has its input connected to the data bus 311. These registers store the internal operating bits.

Le séquenceur 39 intègre un algorithme de contrôle et il séquence les traitements des données (au sens large adresses, données, bits). The sequencer 39 includes a control algorithm and treatment sequence data (broadly addresses, data bits). Il commande tous les blocs de la partie opérative 3c et reçoit des signaux de "comptes rendus" de certains blocs de cette partie opérative. It controls all blocks of the operative part 3c and receives signals of "reports" of some blocks of this operative part. Il reçoit des signaux RUN du microprocesseur numérique 2 et lui envoie des signaux END. It receives signals RUN digital microprocessor 2 and sends the END signal.

Le fonctionnement du coprocesseur va maintenant être expliqué: The operation of the coprocessor will be explained:
Le démarrage du coprocesseur 3 s'effectue sur ordre du microprocesseur principal 2. Le coprocesseur 3 lit alors à une adresse fixe de la mémoire partagée 5, l'adresse de début de la structure de données booléennes qu'il doit exécuter Starting the coprocessor 3 takes place on the order of 2. The coprocessor main microprocessor 3 then reads at a fixed address of the shared memory 5, the start address of the Boolean data structure it must run
Tant que le résultat de l'expression combinatoire logique associée à un réseau de variables booléennes d'entrée n'est pas déterminé (vrai ou faux), le bloc évaluation/affectation 33 du coprocesseur 3 évalue les variables booléennes d'entrée issues des structures de données booléennes stockées en mémoire partagée 5. As the result of the combinatorial expression logic associated with a Boolean network of input variables is not determined (true or false), the evaluation block / 33 allocation of the coprocessor 3 evaluates the Boolean input variables derived structures Boolean data stored in shared memory 5.

La première opération consiste à évaluer la première variable d'entrée. The first step is to evaluate the first input variable. Dans le cas des figures 2 et 3 ce sera la variable d'entrée A. L'évaluation consiste à calculer la variable puis à déterminer si elle conduit ou non. In the case of Figures 2 and 3 it will be the input variable A. The evaluation is to calculate the variable and then to determine if it leads or not.

Pour évaluer une variable d'entrée non indexée ( constituée par un bit précis rangé dans un mot précis), le séquenceur 39 génère trois adresses, via le bus d'adresses 61, en mémoire partagée 5 pour acquérir les paramètres attachés à ladite variable. To assess a non-indexed input variable (constituted by a specific bit stored in a specific word), the sequencer 39 generates three addresses via the address bus 61, shared memory 5 to acquire the parameters attached to said variable. Si la valeur de la variable n'est pas déjà stockée dans un registre interne du bloc fonctionnel évaluation/affectation 33 du coprocesseur 3, alors le séquenceur 39 génère éventuellement une adresse en mémoire commune 1 des variables automate, via le bus d'adresses 62, pour lire la valeur du mot contenant la valeur de la variable. If the variable value is not already stored in an internal register of the evaluation function block / 33 allocation of the coprocessor 3, the sequencer 39 then optionally generates a common memory address 1 of the PLC variables via the address bus 62 to read the value of the word containing the value of the variable. Puis l'évaluation de la variable est réalisée par le bloc fonctionnevaffectation 33 du coprocesseur 3 en fonction des différents paramètres de la variable. Then the evaluation of the variable is achieved by fonctionnevaffectation block 33 of the coprocessor 3 in function of the various parameters of the variable.

La valeur de la variable d'entrée est calculée de la manière suivante. The value of the input variable is calculated as follows. Le mot de la mémoire commune 1 contenant la valeur de ladite variable parmi un de ses bits, est récupéré et stocké dans un registre désigné The word of the common memory 1 contains the value of said variable from one of its bits is retrieved and stored in a designated register
ValeurVariable du bloc fonctionnel évaluation / affectation 33. Le masque d'accès contenu dans le second mot mémoire associé à la variable d'entrée, en mémoire partagée 5, permet de récupérer la valeur de ladite variable contenue dans ce mot de la mémoire commune 1. ValeurVariable functional evaluation / assignment block 33. The access mask contained in the second memory word associated with the input variable in shared memory 5 to retrieve the value of said variable in this word of the common memory 1 .

La valeur de cette variable d'entrée est obtenue en faisant le Ou logique des 16 Et logiques de chaque bit du masque d'accès de la variable et du bit de même poids du mot en mémoire commune 1 contenant la valeur de la variable. The value of this input variable is obtained by the OR logic 16 and logic of each bit of the variable access mask and the same bit of the word in common memory 1 contains the value of the variable. Ce calcul est effectué par une fonction logique dans le bloc fonctionnel 33. This calculation is performed by a logic function in the function block 33.

Prenons l'exemple d'un mot 100001 ...contenant une variable booléenne d'entrée et stocké en mémoire commune 1. Si, en mémoire partagée 5, le masque d'accès à la variable dans le mot est 000100 ..., le calcul de la valeur de la variable d'entrée donnera 0. Take the example of a word ... 100001 containing a Boolean variable input and stored in common memory 1. If, shared memory 5, the access mask for the variable in the word is 000100 ... calculating the value of the input variable give 0.

La fonction de conduction du bloc évaluation / affectation 33 est vraie pour une variable booléenne d'entrée active, fausse si la variable est inactive. The function of the conduction block evaluation / assignment 33 is true for a boolean active input, false if the variable is inactive.

Dans le premier mot mémoire qui caractérise la variable d'entrée courante, en mémoire partagée 5, le bit indiquant si la variable successeur de la variable d'entrée courante est contenue dans le même mot en mémoire commune 1 est recopié dans un registre désigné Suivant du bloc fonctionnel Registres Bits 38. Par exemple, si on considère la variable d'entrée courante A, ce bit indiquera si la variable successeur C est contenue dans le même mot que A en mémoire commune 1. In the first memory word which characterizes the current input variable, in shared memory 5, the bit indicating whether the variable successor to the current input variable is contained in the same word in one common memory is copied into a designated register Next function block Bits Registers 38. for example, if one considers the current input variable A, this bit will indicate if the successor variable C is contained in the same word as A in one common memory.

Si la variable d'entrée courante conduit (fonction de conduction vraie) et si elle n'est pas la dernière de la couche (test du bit de position fin de couche à faux), le coprocesseur évalue la variable successeur de la variable courante dans la couche. If the variable current input conduit (real conduction function) and if it is not the last layer (the test bit position of end of cantilever layer), the coprocessor evaluates the variable successor to the current variable in layer. Le séquenceur 39 recopie le bit stocké dans le registre désigné Suivant (information de l'adresse successeur par rapport à l'adresse courante) dans un autre registre désigné Précédent du bloc fonctionnel Registres Bits 38. On récupère ensuite les informations relatives à la nouvelle variable courante (C dans l'exemple), c'est à dire les trois mots mémoires en mémoire partagée 5 y compris, dans le premier mot mémoire d'adresse de la nouvelle variable courante en mémoire commune 1, le bit qui permet de savoir si la variable successeur (F dans l'exemple) a la même adresse en mémoire commune que la nouvelle variable courante. The sequencer 39 copies the bit stored in the designated register Next (successor address information relative to the current address) in another register designated Previous function block Registers Bits 38. It then retrieves the information for the new variable current (C in the example), that is to say the three words memories shared memory 5 including, in the first word of the new current variable address memory common memory 1, the bit that shows whether the successor variable (F in this example) has the same address in common memory as the new current variable. Ce bit est stocké dans le registre désigné Suivant. This bit is stored in the register designated Next.

Ainsi, avant de générer l'adresse de C en mémoire commune 1, le séquenceur 39 teste la valeur du registre appelé Précédent qui indique si la variable successeur a la même adresse en mémoire commune 1 que la variable précédemment évaluée A. On économise la génération de cette adresse en mémoire commune 1 puisque c'est la même adresse que celle de la variable courante. Thus, before generating the C address in common memory 1, the sequencer 39 checks the value of the registry called Previous that indicates whether the variable successor has the same common memory address 1 as the variable previously evaluated A. It saves generation this common memory address 1 since it is the same address as that of the current variable. On s'affranchit de la récupération, de la lecture du mot contenant la valeur de variable courante et la valeur de la variable successeur, puisque l'ensemble de ce mot avait été stocké dans un registre ValeurVariable du bloc fonctionnel évaluation / affectation 33 lors de l'évaluation de la variable courante. This overcomes the recovery, reading the word containing the current variable value and the value of the variable successor, since all of the word had been stored in a register function block ValeurVariable evaluation / assignment at 33 evaluation of the current variable.

Si la variable d'entrée courante ne conduit pas (fonction de conduction fausse) et si elle possède une variable de déroutage (test du bit de position fin d'expression combinatoire à faux), le coprocesseur évalue la variable de déroutage. If the variable current input does not lead (false conduction function) and if it has a rerouting variable (test bit position of end combinatorial expression false), the coprocessor evaluates the rerouting variable. Le séquenceur recopie le bit stocké dans le registre appelé Suivant Déroutage (information de l'adresse de la variable de déroutage par rapport à l'adresse de la variable courante) dans un autre registre appelé Précédent du bloc fonctionnel Registres Bits 38, puis les informations relatives à la variable de déroutage. The sequencer copies the bit stored in the register called Next Diversion (address information of the rerouting variable with respect to the address of the current variable) in another register called Previous function block Bits Registers 38, then the information regarding the rerouting variable. Les trois mots mémoires sont récupérés en mémoire partagée 5 y compris dans le premier mot mémoire d'adresse de la variable de déroutage en mémoire commune 1, le bit qui permet de savoir si la variable de déroutage a la même adresse en mémoire commune 1. Ce bit est stocké dans le registre appelé The three words are recovered memories shared memory 5 including the first word address memory of the rerouting of variable common memory 1, the bit that indicates whether the diversion variable has the same common memory address 1. this bit is stored in the register called
Suivant. Following.

Si l'évaluation de la dernière des variables d'entrée est un succès, l'expression combinatoire est vraie et les sorties sont affectées en conséquence. If the evaluation of the last of input variables is successful, the combinatorial expression is true and outputs are allocated accordingly. Dans l'exemple des figures 2 et 3, les bobines de sortie G, H et la variable de sortie I doivent être affectées à leur valeur active. In the example of Figures 2 and 3, the output coils G, H and I the output variable must be assigned to their current value.

Si l'évaluation de la dernière des variables d'entrée est un échec, l'expression combinatoire est fausse et les sorties sont affectées en conséquence. If the evaluation of the last of input variables is a failure, the combinatorial expression is false and the outputs are allocated accordingly. Dans l'exemple des figures 2 et 3, les bobines de sortie G, In the example of Figures 2 and 3, the output coils G,
H et la variable de sortie I doivent être affectées à leur valeur inactive. H and the output variable I must be assigned to their inactive value.

Par exemple, en se référant à la figure 3, si les fonctions de conduction successives des variables A, For example, referring to Figure 3, if the successive conduction of functions of the variables A,
C et F de la première couche sont toutes vraies, l'expression combinatoire est vraie. C and F of the first layer are all true, combinatorial expression is true. L'évaluation est un succès. Evaluation is a success. Grâce à la notion de successeur implicite en structure de données en mémoire partagée 5, le résultat de l'expression combinatoire est connu. Thanks to the concept of implied successor in shared memory data structure 5, the result of combinatorial expression is known. Il n'y aura pas d'évaluations inutiles de B, D et E. There will be no unnecessary assessments of B, D and E.

Toujours en se référant à la figure 3 et à titre d'exemple, si les fonctions de conduction respectives de A, C, F, B et E sont vraie, vraie, fausse, vraie et fausse respectivement, alors l'expression combinatoire est fausse. Still referring to Figure 3 and for example, if the respective conduction functions A, C, E, B and E are true, true, false, true and false, respectively, while the combinatorial expression is false . L'évaluation est un échec. Evaluation is a failure. Comme la fonction de conduction de C était vraie, on n'a pas été dérouté vers D, et comme la fonction de conduction de F était fausse, on a été dérouté vers B. Grâce à la notion de déroutage implantée en structure de données en mémoire partagée 5, il n'y a pas d'évaluation inutile de D. A présent, l'affectation des variables de sortie, les calculs des fonctions de condition d'affectation et d'affectation, s'effectuent en fonction de ce paramètre Echec et des paramètres de chaque variable stockés dans le bloc fonctionnel évaluation / affectation 33. As the C conduction function was true, it was not diverted to D and F as the conduction function was false, it was diverted to B. With the concept of diversion established in data structure 5 shared memory, there is no unnecessary assessment of D. now, the allocation of the output variables, the calculation functions provided allocation and assignment, are made based on this parameter Failed and parameters of each variable stored in the evaluation function block allocation / 33.

La fonction condition d'affectation a pour but d'indiquer si l'on doit affecter la variable de sortie, courante telle que G. Elle permet de savoir en fonction de la valeur de ladite variable, du succès ou de l'échec de l'évaluation du réseau combinatoire d'entrée, du type de la variable (complémentée ou pas), du type "reset","set", si l'on affecte ou pas ladite variable de sortie. The assignment provided function is to indicate whether to assign the output variable, current as G. It helps to know based on the value of said variable, the success or failure of evaluation of the switching network input, the type of the variable (complemented or not), such as "reset", "set", whether or not assigning said output variable.

La fonction d'affectation d'une variable booléenne de sortie est fonction de tous les paramètres cités ci-dessus plus de la condition d'affectation. The function assignment of a Boolean variable output is a function of all the above mentioned parameters over the condition of employment. Cette fonction permet de calculer le nouveau mot complet stocké dans le bloc fonctionnel évaluation / affectation 33, et de l'écrire éventuellement en mémoire commune 1, lorsque la valeur de la variable booléenne de sortie courante contenue à un emplacement dans ce mot nécessite d'être modifiée. This function allows to calculate the new full word stored in the function block evaluation / assignment 33, and possibly write in common memory 1, when the value of the Boolean variable current output to a location contained in this word requires of be changed.

Pour affecter une variable de sortie booléenne (constituée par un bit précis dans un mot précis), le séquenceur 39 génère, via le bus d'adresses 61, deux adresses en mémoire partagée 5 pour acquérir les paramètres de ladite variable. To assign a Boolean output variable (constituted by a specific bit in a given word), the sequencer 39 generates, via the address bus 61, two shared memory addresses 5 to acquire the parameters of said variable. Si la valeur de variable n'est pas déjà stockée dans un registre interne du bloc fonctionnel évaluation /affectation 33 du coprocesseur 3, le séquenceur génère éventuellement une adresse en mémoire commune 1 des variables automate pour lire la valeur du mot contenant la valeur de la variable, via le bus d'adresses 62. Puis l'affectation de la variable de sortie qui inclut le calcul de la valeur de cette variable est réalisée par le bloc fonctionnel évaluation/affectation 33 du coprocesseur en fonction des différents paramètres de ladite variable et en fonction de la valeur de la fonction logique du réseau des variables d'entrée. If the variable value is not already stored in an internal register of the evaluation function block / 33 allocation of the coprocessor 3, the sequencer may generate a common memory address 1 of the PLC variables to read the value of the word containing the value of the variable, via the address bus 62. Then the assignment of the output variable which includes calculating the value of this variable is realized by the functional assessment block allocation / coprocessor 33 according to the various parameters of said variable and depending on the value of the logic function of the network of the input variables.

Le séquenceur génère enfin via le bus d'adresses 62, une adresse en mémoire commune 1 pour écrire la nouvelle valeur de la variable de sotie, si la valeur de la variable nécessite de changer d'état et si ladite variable de sortie suivante n'est pas contenue dans le même mot. Finally, the sequencer generates via the address bus 62, a common memory address 1 to write the new value of the variable sotie, if the variable value requires to change state and if said next output variable n ' is not contained in the same word.

La valeur d'une variable booléenne de sortie est obtenue en faisant le Ou logique des 16 Et logiques, de chaque bit du masque d'accès de la variable et du bit de même poids du mot en mémoire commune 1 contenant la valeur de la variable. The value of a Boolean variable output is obtained by the OR logic 16 and logic of each bit of the access mask of the variable and the same bit of the word in one common memory containing the value of the variable . Ce calcul est effectué par une fonction logique dans le bloc fonctionnel 33. This calculation is performed by a logic function in the function block 33.

Prenons l'exemple d'un mot 100101 ...contenant une variable booléenne de sortie et stocké en mémoire commune 1. Si, en mémoire partagée 5, le masque d'accès à la variable dans le mot est 000100 ..., le calcul de la valeur de la variable de sortie donnera 1. Take the example of a word ... 100101 containing a Boolean variable output and stored in shared memory 1. If, shared memory 5, the access mask to the variable in word ... is 000100, the calculation of the output variable value give 1.

Tant que les calculs des fonctions de condition d'affectation et d'affectation successives portent sur des variables booléennes de sortie contenues dans le même mot, le mot éventuellement modifié est stocké dans le bloc fonctionnel évaluation / affectation 33. L'écriture en mémoire commune 1 du nouveau mot ne s'effectue pas, elle est simplement réalisée chaque fois que la variable de sortie successeur de la variable booléenne de sortie courante n'est pas contenue dans ce même mot (test du registre Suivant à faux). As the calculations of assignment condition functions and successive assignments relate to output Boolean variables in the same word, the word eventually changed is stored in the function block evaluation / allocation 33. The write common memory 1 of the new word is not carried out, it is simply performed whenever the successor output variable of the Boolean variable current output is not contained in the same word (test Next to register false). De plus elle est réalisée s'il y a eu au moins une modification d'un bit du mot (test d'un registre interne du bloc Furthermore it is achieved if it has been at least a modification of a word bit (test of a block of internal register
Registres Bits 38 désigné Au Moins Une Affectation). Registers 38 Bits designated At Least One assignment).

Si l'évaluation des variables d'entrée est un succès et si la variable booléenne de sortie est complémentée, la fonction condition d'affectation est vraie et la fonction d'affectation génère le mot :100001 à àécrire en mémoire commune 1 si la variable successeur n'est pas contenue dans ce mot. If the evaluation of the input variables is a success, and if the Boolean variable output is complemented, the allocation function provided is true and the assignment function generates the password: 100001 to àécrire in common memory 1 if the variable successor is not contained in this word. Par contre si la variable successeur est contenue dans ce mot, on calcule la fonction d'affectation avec ce nouveau mot en fonction des paramètres associés à la variable successeur en différant l'écriture en mémoire commune 1 jusqu'au moment où la variable successeur n'est plus contenue dans ce même mot et s'il y a eu une modification portant sur au moins un bit du mot. By cons if the variable successor is contained in the word, the allocation function is calculated with this new word based on parameters associated with the variable successor differing common memory by writing 1 until the successor variable n 'is contained in the same word and if there has been a change on at least one bit of the word.

Si l'évaluation des variables d'entrée est un échec et si la variable booléenne de sortie est complémentée, la fonction condition d'affectation est fausse et la fonction d'affectation génère le mot :100101 ... qu'il est inutile d'écrire en mémoire commune 1 puisque la variable a déjà la valeur souhaitée. If the evaluation of the input variables is a failure, and if the Boolean variable output is complemented, the allocation function provided is false and the assignment function generates the password: 100101 ... it is useless write in common memory 1, since the variable is already the desired value. Si la variable successeur est contenue dans ce mot, on calcule la fonction d'affectation avec ce même mot en fonction des paramètres associés à la variable successeur en différant l'écriture en mémoire commune 1 jusqu'au moment où la variable successeur n'est plus contenue dans ce même mot et s'il y a eu une modification portant sur au moins un bit du mot. If the variable successor is contained in the word, the allocation function is calculated with the same word depending on the parameters associated with the variable successor differing writing in common memory 1 until the successor is variable more contained in the same word and if there has been a change on at least one bit of the word.

Si l'évaluation des variables d'entrée est un succès et si la variable booléenne de sortie est non complémentée, la fonction condition d'affectation est fausse et la fonction d'affectation génère le mot :100101 ... qu'il est inutile d'écrire en mémoire commune 1 puisque la variable a déjà la valeur souhaitée. If the evaluation of the input variables is successful, and if the Boolean variable output is non-complemented, the allocation function provided is false and the assignment function generates the password: 100101 ... it is useless to write in common memory 1, since the variable is already the desired value.

Si l'évaluation des variables d'entrée est un échec et si la variable booléenne de sortie est non complémentée, la fonction condition d'affectation est vraie et la fonction d'affectation génère le mot :100001 à àécrire en mémoire commune 1 si la variable successeur n'est pas contenue dans ce mot. If the evaluation of the input variables is a failure, and if the Boolean variable is non-complemented output, the allocation function provided is true and the assignment function generates the password: 100001 to àécrire in common memory 1 if variable successor is not contained in this word.

Si l'évaluation des variables d'entrée est un succès et si la variable booléenne de sortie est du type "reset", la fonction condition d'affectation est vraie et la fonction d'affectation génère le mot :100001 ... à écrire en mémoire commune 1 si la variable successeur n'est pas contenue dans ce mot. If the evaluation of the input variables is a success, and if the Boolean variable output is of the "reset", the allocation function provided is true and the assignment function generates the password: 100001 ... writing in common memory 1 if the successor variable is not contained in the word.

Si l'évaluation des variables d'entrée est un échec et si la variable booléenne de sortie est du type "reset", la fonction condition d'affectation est fausse et la fonction d'affectation génère le mot :100101 ... qu'il est inutile d'écrire en mémoire commune 1 puisque la variable a déjà la valeur souhaitée. If the evaluation of the input variables is a failure, and if the Boolean variable output is of the "reset", the allocation function provided is false and the assignment function generates the password: 100101 ... that it is unnecessary to write common memory 1, since the variable is already the desired value. En cas d'échec pour une variable de type "reset" "set", il y a conservation de la valeur initiale. In case of failure to a variable of type "reset", "set", there is conservation of the initial value.

Si l'évaluation des variables d'entrée est un succès et si la variable booléenne de sortie est du type "set", la fonction condition d'affectation est fausse et la fonction d'affectation génère le mot :100101 ... qu'il est inutile d'écrire en mémoire commune 1 puisque la variable a déjà la valeur souhaitée. If the evaluation of the input variables is successful, and if the Boolean output type is "set", the allocation function provided is false and the assignment function generates the password: 100101 ... that it is unnecessary to write common memory 1, since the variable is already the desired value.

Si l'évaluation des variables d'entrée est un échec et si la variable booléenne de sortie est du type "set", la fonction condition d'affectation est fausse et la fonction d'affectation génère le mot :100101 .. qu'il est inutile d'écrire en mémoire commune 1 puisque la variable a déjà la valeur souhaitée. If the evaluation of the input variables is a failure, and if the Boolean variable output is of the "set", the allocation function provided is false and the assignment function generates the password: 100101 it .. is unnecessary to write in common memory 1, since the variable is already the desired value. En cas d'échec pour une variable de type "reset" "set", il y a conservation de la valeur initiale. In case of failure to a variable of type "reset", "set", there is conservation of the initial value.

Le coprocesseur 3 interprète et traite les données booléennes jusqu'à la dernière variable de sortie d'une structure booléenne (au niveau d'une variable de sortie, test du bit fin d'une structure) et indique au microprocesseur principal 2 qu'il a terminé. The coprocessor 3 interprets and processes Boolean data up to the last output of a Boolean variable structure (at an output variable, the test end bit of a structure), and indicates to the main microprocessor 2 that has finished. ll se positionne en état d'attente d'un ordre de reprise d'exécution lorsqu'il a détecté et transmis dans la structure de données booléennes l'adresse d'un sous-programme exécutable par le microprocesseur principal 2 en mémoire programme 4. It is positioned in a state of waiting for an order to resume execution when it has detected and transmitted in the Boolean data structure the address of a subroutine executed by the main microprocessor 2 in the program memory 4.

Les structures de données statiques booléennes et grafcet en mémoire partagée 5 sont distinctes. Boolean static data structures and grafcet in shared memory 5 are distinct. La structure de données grafcet est calquée sur la structure de données booléennes, afin de pouvoir être interprétée et traitée par l'algorithme booléen. The grafcet data structure is modeled on the Boolean data structure to be interpreted and processed by the Boolean algorithm. Par conséquent, l'algorithme de traitement orienté booléen traite les structures de données booléennes qu'elles soient issues directement d'une description en langage à relais, ou qu'elles soient obtenues à partir de grafcet retraduit en langage à relais. Therefore, the Boolean oriented processing algorithm treats Boolean data structures they are taken directly from a description in relay language, or are obtained from grafcet retranslated in relay language.

On notera que les blocs fonctionnels (compteurs, temporisateurs, ..) restent du domaine du microprocesseur numérique 2. Ils conservent donc leur programme associé qui est stocké en mémoire "programme et données" 4 et est exécuté par le microprocesseur numérique 2. function blocks Note that (counters, timers, ..) remain the domain of the digital microprocessor 2. They therefore retain their associated program which is stored in memory "program data" 4 and is executed by the digital microprocessor 2.

Claims (14)

    REVENDICATIONS
  1. 1. Procédé de traitement de données booléennes dans une unité centrale d'automate programmable, consistant à stocker, dans une mémoire (1), des variables d'entrée présentant un état actif et un état inactif et représentatives des états d'entrée de l'automate et des variables de sortie présentant un état actif et un état inactif et représentatives des états de sortie de l'automate et à stocker, dans une mémoire de données (5), des données correspondant à un programme d'automatisme écrit soit en grafcet soit en réseau relais ou ladder constitué d'une expression combinatoire d'entrée représentant une fonction de logique combinatoire des variables d'entrée, vraie ou fausse, conditionnant respectivement le positionnement actif ou inactif des variables combinatoires de sortie qui forment l'expression combinatoire de sortie, caractérisé par le fait qu'il consiste:: 1. A method for Boolean data processing in a PLC central processing unit, of storing in a memory (1), the input variables having an active state and an inactive state and representative of the input states of PLC and output variables having an active state and an inactive state and representative of PLC output states and storing in a data memory (5), data corresponding to a written automation program either grafcet either relay or ladder network consisting of a combinatorial expression input representing a combinatorial logic function of the input variables, true or false, respectively the conditioning active or inactive positioning of the output combinatorial variables that make up the combinatorial expression output, characterized in that it comprises ::
    - à stocker dans la mémoire de données (5), dans une pluralité de mots, des paramètres attachés à chaque variable d'entrée, en ordonnant ces variables et, dans une pluralité de mots, des paramètres attachés à chaque variable de sortie, en ordonnant ces variables; - storing in the data memory (5) in a plurality of words, the parameters attached to each input variable, ordering these variables and, in a plurality of words, the parameters attached to each output variable, ordering these variables;
    - a évaluer successivement chacune des variables d'entrée stockées dans la mémoire des variables (1), de manière que si ladite variable conduit, c'est à dire si elle est active, l'évaluation suivante porte sur la variable successeur dans l'expression combinatoire d'entrée et que si ladite variable ne conduit pas, l'évaluation porte sur la variable de déroutage dans l'expression combinatoire d'entrée, et cela tant que le résultat de l'expression combinatoire d'entrée n'est pas déterminé;; - successively evaluate each of the input variables stored in the variable memory (1) so that if said variable duct, ie if it is active, the following assessment concerns the successor variable in the combinatorial input expression, and if said variable does not, the evaluation concerns the rerouting variable in the combinatorial expression input, and that as the result of the combinatorial input expression is not determined;;
    - à affecter successivement chacune des variables de sortie stockées dans la mémoire des variables (1), dès que le résultat, vrai ou faux, de l'expression combinatoire d'entrée du réseau relais est déterminé, de manière que si le résultat est vrai, la variable de sortie soit positionnée à sa valeur active, l'affectation suivante portant sur la variable successeur de ladite variable dans l'expression combinatoire de sortie et que si le résultat est faux, la variable de sortie soit généralement positionnée à sa valeur inactive, l'affectation suivante portant sur la variable successeur de ladite variable dans l'expression combinatoire de sortie. - assigning successively each of the output variables stored in the variable memory (1), when the result, true or false, the combinatorial expression relay network input is determined so that if the result is true , the output variable is set to its active value, the next assignment on the successor of said variable variable in the combinatorial expression output and if the result is false, the output variable is generally positioned at its inoperative value , the following assignment on the successor variable of said variable in the combinatorial expression output.
  2. 2. Procédé selon la revendication 1, caractérisé par le fait qu'il consiste à mémoriser en mémoire de données (5), dans les mots attachés à chaque variable d'entrée, un multiplet étant l'adresse du mot contenant la valeur de la dite variable en mémoire des variables (1), un multiplet définissant des paramètres et un masque d'accès à la valeur de ladite variable en mémoire des variables (1), à calculer, par une fonction logique, la conduction ou non-conduction de ladite variable, en utilisant les paramètres, le masque d'accès et le mot contenant la valeur de ladite variable d'entrée. 2. The method of claim 1, characterized in that it consists in storing in data memory (5) in words attached to each input variable, a byte is the address of the word containing the value of the vary said variable memory (1), a byte defining parameters and an access mask to the value of said variable in variable memory (1), calculating, by a logic function, the conduction or non-conduction said variable, using the parameters, the access mask and the word containing the value of said input variable.
  3. 3. Procédé selon l'une quelconque des revendications précédentes, caractérisé par le fait qu'il consiste à mémoriser en mémoire de données (5), dans les mots attachés à chaque variable d'entrée, un bit indiquant si la valeur de la variable successeur est contenue dans le même mot en mémoire des variables (1) que la valeur de la dite variable d'entrée, pour dans le cas où la dite variable d'entrée conduit, éviter la relecture de ce mot en mémoire des variables (1). 3. A method according to any one of the preceding claims, characterized in that it consists in storing in data memory (5) in words attached to each input variable, a bit indicating whether the value of the variable successor is contained in the same memory word of variables (1) that the value of said input variable, for in the case where said inlet conduit variable avoid rereading the word in memory variables (1 ).
  4. 4. Procédé selon l'une quelconque des revendications précédentes, caractérisé par le fait qu'il consiste à mémoriser en mémoire de données (5), dans les mots attachés à chaque variable d'entrée, un multiplet donnant l'adresse en mémoire des données (5) des mots attachés à une variable de déroutage de la dite variable. 4. A method according to any one of the preceding claims, characterized in that it consists in storing in data memory (5) in words attached to each input variable, a byte giving the memory address of data (5) words attached to a rerouting variable of said variable.
  5. 5. Procédé selon l'une quelconque des revendications précédentes, caractérisé par le fait qu'il consiste à mémoriser en mémoire des données (5), dans les mots attachés à chaque variable d'entrée, un bit indiquant si la valeur de la variable de déroutage est contenue dans le même mot en mémoire des variables (1) que la valeur de la dite variable d'entrée, pour dans le cas où la dite variable d'entrée ne conduit pas, éviter la relecture de ce mot en mémoire des variables (1). 5. A method according to any one of the preceding claims, characterized in that it consists in storing in data memory (5) in words attached to each input variable, a bit indicating whether the value of the variable rerouting is contained in the same memory word of variables (1) that the value of said input variable, for if said input variable does not, avoid rereading the word in memory variables (1).
  6. 6. Procédé selon l'une quelconque des revendications précédentes, caractérisé par le fait qu'il consiste à mémoriser, en mémoire des données (5), dans les mots attachés à chaque variable de sortie, un multiplet étant l'adresse du mot contenant la valeur de ladite variable en mémoire des variables (1), un multiplet définissant des paramètres et un masque d'accès à la valeur de ladite variable en mémoire des variables (1), à calculer par une fonction logique, la condition d'affectation vraie ou fausse et l'affectation de ladite variable, en utilisant les paramètres, le masque d'accès et le mot contenant la valeur de ladite variable de sortie ainsi que la valeur vraie ou fausse de l'expression combinatoire d'entrée. 6. A method according to any one of the preceding claims, characterized in that it consists in storing in memory of data (5) in words attached to each output variable, one byte being the word address containing the value of said variable in memory variables (1), a byte defining parameters and an access mask to the value of said variable in variable memory (1), calculating a logic function, the condition of posting true or false and the allocation of said variable, using the parameters, the access mask and the word containing the value of said output variable and the value true or false of the combinatorial input expression.
  7. 7. Procédé selon l'une quelconque des revendications précédentes, caractérisé par le fait qu'il consiste à mémoriser, en mémoire des données (5), dans les mots attachés à chaque variable de sortie, un bit indiquant si la valeur de la variable successeur est contenue dans le même mot en mémoire des variables (1) que la valeur de ladite variable de sortie pour éviter la relecture de ce mot en mémoire des variables (1). 7. A method according to any one of the preceding claims, characterized in that it consists in storing in memory of data (5) in words attached to each output variable, a bit indicating whether the value of the variable successor is contained in the same memory word of variables (1) the value of said output variable to avoid rereading the word in memory variables (1).
  8. 8. Procédé selon l'une quelconque des revendications précédentes, caractérisé par le fait qu'il consiste, dans le cadre de l'affectation des variables de sortie, à mémoriser en interne dans le coprocesseur dans les registres bits (38), un bit indiquant si au moins une des valeurs de variables de sortie (donc au moins un des bits) a été modifiée en interne dans le coprocesseur pour éviter, dans le cas où aucune des valeurs n'a été modifiée, d'écrire le mot en mémoire des variables (1). 8. A method according to any preceding claim, characterized in that it consists, in the context of allocation of the output variables, storing internally in the coprocessor in bits registers (38), a bit whether at least one of the output variable values ​​(so at least a bit) was internally modified in the coprocessor to avoid, if no values ​​have been changed, to write the word in memory variable (1).
  9. 9. Unité centrale d'automate programmable assurant le traitement de données booléennes et comprenant un coprocesseur (3) travaillant sur une mémoire (1) des variables stockant les variables d'entrée et de sortie représentatives des états d'entrée et des états de sortie de l'automate et une mémoire de données (5) stockant des données correspondant à un programme d'automatisme écrit en ladder ou grafcet, le coprocesseur (3) comprenant une partie de contrôle ou de séquencement (3b) assurant le séquencement et le contrôle des traitements de données et une partie opérative de traitement (3c) assurant le traitement des données, caractérisée par le fait que le coprocesseur (3) comporte deux bus d'adresses (312,314) pour adresser la mémoire de données (5) et la mémoire des variables (1), et deux bus de données (311, 313) pour transporter des données vers ou de la mémoire de données (5) ou la mémoire des variables (1) , la partie opérative (3c) comprenant des moy 9. CPU PLC ensuring processing Boolean data and comprising a coprocessor (3) on a working memory (1) storing variable representing input and output variables of the input and output states states of the controller and a data memory (5) storing data corresponding to an automation program written in ladder or grafcet, the coprocessor (3) comprising a control portion or sequencing (3b) ensuring the sequencing and control data processing and an operative treatment portion (3c) providing data processing, characterized in that the coprocessor (3) comprises two address bus (312,314) for addressing the data memory (5) and memory variables (1), and two data buses (311, 313) to carry data to or from the data memory (5) or the variable memory (1), the operative part (3c) comprising moy ens (33) comprenant des blocs logiques, reliés en entrée aux bus de données (311,313) et en sortie avec le bus de données (313) de la mémoire des variables (1) pour évaluer les variables booléennes d'entrée et pour affecter les variables booléennes de sortie. ens (33) comprising logic blocks, connected at input to the data bus (311.313) and with the output data bus (313) of the variable memory (1) to evaluate the Boolean input variables and to assign Boolean output variables.
  10. 10. Unité de traitement selon la revendication 9, caractérisée par le fait que la partie opérative (3c) comprend des blocs d'entrée /sortie (316,318) qui assurent les liaisons entre les bus de données (311,313) du coprocesseur et les mémoires (5,1) et des blocs de sortie (315,317) qui assurent les liaisons entre les bus d'adresses (312,314) et les mémoires (5,1). 10. A process unit according to claim 9, characterized in that the operative part (3c) includes input blocks / output (316.318) which provide connections between the data bus (311.313) of the coprocessor and the memories ( 5.1) and output blocks (315.317) that provide connections between the address bus (312,314) and memory (5.1).
  11. 11. Unité de traitement selon l'une quelconque des revendications 9 et 10, caractérisée par le fait qu'elle comporte des moyens (32) comprenant des blocs logiques, reliés en entrée et sorties au bus d'adresses (312) de la mémoire de données (5) et capable sur commande du séquenceur (39) de générer une adresse incrémentée dans ladite mémoire de données (5). 11. A process unit according to any one of claims 9 and 10, characterized in that it comprises means (32) comprising logic blocks, connected at their inputs and outputs to the address bus (312) of the memory data (5) and able on command from the sequencer (39) to generate an incremented address in said data memory (5).
  12. 12. Unité de traitement selon l'une quelconque des revendications 9 à 11, caractérisée par le fait que le coprocesseur (3) comprend une mémoire interne (37). 12. A process unit according to any one of claims 9 to 11, characterized in that the coprocessor (3) comprises an internal memory (37).
  13. 13. Unité de traitement selon l'une quelconque des revendications 9 à 12, caractérisée par le fait que le coprocesseur comporte un registre bits (38). 13. A process unit according to any one of claims 9 to 12, characterized in that the coprocessor comprises a bit register (38).
  14. 14. Unité de traitement selon l'une quelconque des revendications 9 à 13, caractérisée par le fait qu'elle comporte des moyens (3a) de traitement des variables indexées comprenant un encodeur (34), un additionneur-soustracteur (35) et un diviseur-décodeur (36). 14. A process unit according to any one of claims 9 to 13, characterized in that it comprises means (3a) for processing the indexed variables comprising an encoder (34), an adder-subtractor (35) and a divider-decoder (36).
FR9211072A 1992-09-15 1992-09-15 The method of Boolean data processing in a central processing unit PLC and Boolean coprocessor for carrying Óoeuvre this method. Expired - Fee Related FR2695739B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR9211072A FR2695739B1 (en) 1992-09-15 1992-09-15 The method of Boolean data processing in a central processing unit PLC and Boolean coprocessor for carrying Óoeuvre this method.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9211072A FR2695739B1 (en) 1992-09-15 1992-09-15 The method of Boolean data processing in a central processing unit PLC and Boolean coprocessor for carrying Óoeuvre this method.

Publications (2)

Publication Number Publication Date
FR2695739A1 true true FR2695739A1 (en) 1994-03-18
FR2695739B1 FR2695739B1 (en) 1994-11-18

Family

ID=9433594

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9211072A Expired - Fee Related FR2695739B1 (en) 1992-09-15 1992-09-15 The method of Boolean data processing in a central processing unit PLC and Boolean coprocessor for carrying Óoeuvre this method.

Country Status (1)

Country Link
FR (1) FR2695739B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1615089A1 (en) * 2004-07-09 2006-01-11 Siemens Aktiengesellschaft Automation device, method for operating an automation device, use of a co-processor and use of a personal computer comprising a co-processor

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2312061A1 (en) * 1975-05-20 1976-12-17 Siemens Ag Programme control of process cycles - has programmed memory containing processor instructions
US4442504A (en) * 1981-03-09 1984-04-10 Allen-Bradley Company Modular programmable controller
DE3302940A1 (en) * 1983-01-28 1984-08-02 Siemens Ag Programmable control with by word and bit processor
DE4135749A1 (en) * 1990-10-30 1992-05-07 Allen Bradley Co Processor module for a programmable controller with an intelligent function module interface

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2312061A1 (en) * 1975-05-20 1976-12-17 Siemens Ag Programme control of process cycles - has programmed memory containing processor instructions
US4442504A (en) * 1981-03-09 1984-04-10 Allen-Bradley Company Modular programmable controller
DE3302940A1 (en) * 1983-01-28 1984-08-02 Siemens Ag Programmable control with by word and bit processor
DE4135749A1 (en) * 1990-10-30 1992-05-07 Allen Bradley Co Processor module for a programmable controller with an intelligent function module interface

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1615089A1 (en) * 2004-07-09 2006-01-11 Siemens Aktiengesellschaft Automation device, method for operating an automation device, use of a co-processor and use of a personal computer comprising a co-processor

Also Published As

Publication number Publication date Type
FR2695739B1 (en) 1994-11-18 grant

Similar Documents

Publication Publication Date Title
US20030093420A1 (en) Method and system for retrieving sharable information using a hierarchically dependent directory structure
US20070050579A1 (en) Method and apparatus for synchronizing an industrial controller with a redundant controller
US5819097A (en) Industrial controller compiler with expandable instruction set
US5005152A (en) Industrial controller with decompilable user program
US5265004A (en) Sequence controller with combinatorial Boolean logic
US4443865A (en) Processor module for a programmable controller
US6243864B1 (en) Compiler for optimizing memory instruction sequences by marking instructions not having multiple memory address paths
US20150019191A1 (en) Industrial simulation using redirected i/o module configurations
US4907278A (en) Integrated processing unit, particularly for connected speech recognition systems
US4722071A (en) Compiler for evaluating Boolean expressions
US4989140A (en) Single chip pipeline data processor using instruction and operand cache memories for parallel operation of instruction control and executions unit
US5121496A (en) Method for creating, maintaining and using an expert system by recursively modifying calibration file and merging with standard file
US6772412B2 (en) Data processing device equipped with a thread switching circuit
US6327648B1 (en) Multiprocessor system for digital signal processing
US7110837B2 (en) Control system and method for on-line editing of user program
US20010032038A1 (en) Method for applying control data for an electronic motor vehicle control unit
EP1050803B1 (en) Guarded computer instruction execution
WO2000031597A2 (en) Automation system for solving a technical-process task and corresponding method
US5206945A (en) Single-chip pipeline processor for fetching/flushing instruction/data caches in response to first/second hit/mishit signal respectively detected in corresponding to their logical addresses
US5564049A (en) Industrial controller programming method using external connection database
GB2345360A (en) Programming programmable controllers
US20040078551A1 (en) Method for operating a data processing device as well as contruction of a data processing device as a memory-programmable control unit
US6018797A (en) Integrated relay ladder language, reduced instruction set computer
US6694468B1 (en) Method and apparatus to test memory
EP0061096A1 (en) Data processing system for parallel processing

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20110531