Programmable logic controller has USB interface with data rate management
Abstract
The invention relates to automation equipment executing a real-time program (70) for controlling / commanding an automation application. It comprises a USB type connector (81) connected by a USB bus control circuit (8) to an internal bus (9) of the automation equipment and a software task (1, 31, 32, 60, 61 , 62, 67) responsible for slaving the communication flow exchanged by the USB connector (81) with remote equipment, to the characteristics of the application program (70) executed in the automation equipment.

Term
Term ended
Projected expiry passed 3 September 2021, 5.1 years ago.
- Priority and filed
- Published
- Projected expiry
- Today
10 claims: 1 independent, 9 dependent
- 1REVENDICATIONS 1. Équipement d'automatisme exécutant un programme d'application (70) dans le but d'effectuer une ou plusieurs fonctions de contrôle ou de commande dans une application d'automatisme et comportant une mémoire vive (64), caractérisé en ce qu'il comporte un connecteur de type USB (81) relié par un circuit de pilotage de bus USB (8) à un bus interne (9) de l’équipement d'automatisme et une tâche logicielle (1,31,32,60,61,62,67) chargée d’asservir le flux des communications échangées sur le connecteur USB (81) entre l'équipement d'automatisme et des équipements distants, aux caractéristiques du programme d’application (70) exécuté dans l'équipement d'automatisme.
- 2Équipement d'automatisme selon la revendication 1, caractérisé en ce que la tâche logicielle (1,31,32,60,61,62,67) est activée périodiquement par une base de temps (61) de l’équipement d'automatisme et traite la partie émission de la communication en déclenchant un module constructeur de trames (12).
- 3Équipement d'automatisme selon la revendication 1, caractérisé en ce que la tâche logicielle (1,31,32,60,61,62,67) est déclenchée en réception d'un message de communication par une interruption provenant du circuit (8) de pilotage du bus USB et comporte un module constructeur de messages (11) à destination du programme d’application (70), après synchronisation par la base de temps (61) de l'équipement d'automatisme.
- 4Équipement d'automatisme selon la revendication 2 ou 3, caractérisé en ce que le constructeur de messages (11) convertit des trames USB en messages exprimés dans le format du système d'exploitation de l'équipement d’automatisme et compréhensibles par le programme d’application (70), et en ce que le constructeur de trames (12) convertit des messages exprimés dans le format du système d'exploitation de l'équipement d'automatisme et compréhensibles par le programme d’application (70) en trames USB.
- 5Équipement d'automatisme selon la revendication 4, caractérisé en ce que la tâche logicielle (1,31,32,60,61,62,67) exploite une première zone mémoire variable (693) de la mémoire vive (64) de l'équipement d'automatisme, déclarée comme pile (643) de réception de trames d’entrée et comme pile (642) de réception de messages de sortie, la taille de la première zone mémoire (693) étant définie par construction pour la pile (643) de réception de trames d’entrée et par paramétrage pour la pile (642) de réception de messages de sortie.
- 6Équipement d’automatisme selon la revendication 4, caractérisé en ce que la tâche logicielle (1,31,32,60,61,62,67) exploite une seconde zone mémoire variable 5 (694) de la mémoire vive (64) de l'équipement d'automatisme déclarée comme pile (644) d'émission de trames de sortie et comme pile (641) d'émission de messages d’entrée, la taille de la seconde zone mémoire variable (694) étant affectée par construction pour la pile (644) d'émission de trames de sortie et par paramétrage pour la pile (641) d'émission de messages d’entrée. 10
- 7Équipement d'automatisme selon la revendication 5 ou 6, caractérisé en ce la tâche logicielle (1,31,32,60,61,62,67) comporte un module de paramétrage (67) qui comprend une fonction logicielle de paramétrage des zones mémoires variables utilisées comme pile (642) de réception de messages et comme pile (641) d'émission de messages. 15
- 8Équipement d'automatisme selon la revendication 7, caractérisé en ce que la tâche logicielle (1,31,32,60,61,62,67) comporte un module gestionnaire des messages entrants (31) vers le programme d’application (70) et un module gestionnaire des messages sortants (32) provenant du programme d'application (70).
- 9Équipement d'automatisme selon la revendication 8, caractérisé en ce que 20 le module gestionnaire des messages entrants (31) limite à une valeur déterminée le nombre de messages lus au début d'un cycle du programme d'application (70).
- 10Équipement d'automatisme selon la revendication 8, caractérisé en ce qu'il comporte un pilote (60) qui déclenche la lecture des messages entrants en début de cycle du programme d'application (70) et déclenche l'écriture des messages 25 sortants en fin de cycle du programme d'application (70) et avant le début du cycle suivant.
Independent claims10
35 paragraphs, as filed
The present invention relates to an automation device equipped with a USB (Universal Serial Bus) type link for the connection of one or more remote devices.
More and more PC type terminals or equipment are equipped with USB type links which simplify the connection of remote equipment, and offer much higher speeds than the usual serial links. In addition, this link makes it possible to distribute the bandwidth according to the communication needs. The openness and flexibility provided by this link must not however disturb the real-time operation of the automation equipment that uses it.
Automation equipment hereinafter refers to a programmable logic controller, a control / command station, a digital control or any equipment that can contain and execute an application program in order to perform one or more control functions and / or for controlling all or part of an automation application belonging for example to the field of industrial automation, building automation or the control / command of electrical distribution networks.
The use of such a type of link on an automation equipment would make it possible to improve the speed of data transfer between this automation equipment and remote equipment, such as peripherals, terminals, programming systems. , diagnostics, supervision, other automation equipment or others. This would also allow the resolution of communication problems with the world of PC type computers. Indeed, traditional serial links are controlled by software and the temporal behavior is modified by other software, the execution of which is more priority, such as anti-virus software, screen savers, etc. In the case of a USB network, the link layer, corresponding to level 2 of the OSI communication model, is managed by a dedicated hardware component, so its operation becomes independent of the other software tasks that are executed on the equipment.
This use would also advantageously allow the adoption on automation equipment of the standard connection means from the world of PC computers, which would simplify the connection and would therefore reduce the costs of implementation.
However, the high speed available with a USB type link must not interfere with the operation of the automation equipment application program. If the low bandwidth of asynchronous serial links induces a flow without consequence on the real-time operation of the automation equipment, this is no longer the case with a very fast link. It therefore becomes imperative to adapt the incoming flow to the real-time needs and constraints of the controlled application.
The problem mainly arises when receiving messages. The static allocation of bandwidth would lead to a significant reduction in the performance of the system by a decrease in its responsiveness. In fact, to meet instantaneous needs, such as adjustment, it would be necessary to reserve communication channels that are unused most of the time. Also, the admissible flow at the terminal port of an automation equipment must be calibrated according to the constraints of the application. The number of messages admissible per cycle - unit of time of the application - on the terminal port of the automation equipment depends on the model of the automation equipment. Indeed, a high-end model that manages large applications must be able to provide a much greater throughput than an entry-level model, in particular to meet the needs of supervisors. In addition, the flow rates may vary according to the automation applications because the number of cycles executed per second of an application program in an automation equipment is also linked to the type of application. For example for an automation application concerning the control / command of a machine, the cycle time is generally less than 10 ms while that of a regulation application is rather of the order of 100 ms. In the latter case, the number of messages processed per unit of time will therefore be lower.
An object of the invention is therefore to propose the use of a USB link on an automation device while overcoming one or more of the drawbacks of the prior art.
This goal is achieved by an automation device executing a real-time application program, to perform one or more control or command functions in an automation application, and having a random access memory, which comprises a USB type connector connected by a USB bus control circuit to an internal bus of the automation equipment and a software task executed by the central unit of the automation equipment and responsible for slaving the flow of communications exchanged on the USB connector between the automation equipment and remote equipment, with the characteristics of the application program executed in the automation equipment.
According to one particular feature, the software task is periodically activated by a time base of the automation equipment and processes the transmission part by triggering a frame constructor module.
According to another particular feature, the software task is triggered on receipt of a communication message by an interrupt originating from the control circuit of the USB bus and comprises a module for constructing messages intended for the application program, after synchronization by the database. time of the automation equipment.
According to another feature, the message builder converts USB frames into messages expressed in the format of the operating system of the automation equipment and understandable by the application and vice versa for the frame builder.
According to another feature, the software task uses a first variable memory area of the random access memory of the automation equipment, declared as a stack for receiving input frames and as a stack for receiving output messages, the size of the first memory area being defined by construction for the stack for receiving input frames and by parameterization for the stack for receiving output messages. The software task uses a second variable memory zone of the random access memory of the automation equipment, declared as stack for sending output frames and as stack for sending input messages, the size of the second memory zone. variable being assigned by construction for the output frame transmission stack and by parameterization for the input message transmission stack.
According to another particular feature, the software task comprises a parameterization module which comprises a software function for parameterizing the memory areas used as stack for sending input messages and as stack for receiving output messages.
According to another particular feature, the software task comprises a module for managing incoming messages to the application program and a module for managing outgoing messages originating from the application program.
According to another particular feature, the incoming message manager module limits the number of messages read at the start of a cycle of the application program to a determined value (for example four messages per cycle for a model of industrial automation equipment. range).
According to another particular feature, the automation equipment includes a driver which triggers the reading of incoming messages at the start of the application program cycle and triggers the writing of outgoing messages at the end of the application program cycle and before the start of the next cycle.
Other features and advantages of the invention will emerge more clearly on reading the description below given in relation to an illustrative but non-limiting embodiment of the invention shown in the drawings below in which
- Figure 1 shows the diagram of a communication architecture of an automation device defined according to the invention,
- Figure 2 shows schematically an example of architecture of such automation equipment.
The invention will be described in conjunction with FIGS. 1 and 2. The invention relates to an automation device equipped with a connector (81, FIG. 2) of the USB type not shown in FIG. 1, which communicates with a or several external remote devices via a link (95, fig. 1). This USB type connector (81) is connected to a circuit (8) for controlling a USB bus. This USB bus control circuit (8) communicates with the internal bus (9) of the automation equipment, at the input via the link (91), at the output via the link (92) of the internal bus (9) of automation equipment. The conventional structure of automation equipment is shown in Figure 2 and generally consists of a central unit (63) consisting of one or more processors, a read-only memory (65) of the non-modifiable ROM type or of modifiable FLASHPROM type which will be referred to hereinafter as read only memory. This read only memory (65) contains the manufacturer program called the operating system (OS). This builder program is usually expressed in a language specific to the builder. The automation equipment also includes a random access memory (64) which communicates like the read only memory (65) with the central unit (63) via the internal bus (9). An input-output manager (66) of the automation equipment is also connected to the internal bus (9) and communicates with the central unit (63). The random access memory (64) contains in a first zone the real-time program of the application (70) developed by the user, hereinafter called the application program, in a second zone the data, in particular the images of the states. couplers and constants relating to the application program developed by the user.
We will recall that the application program is executed by the central unit (63) and is responsible for controlling and / or commanding an automation application thanks to the inputs-outputs controlled by the manager of the input / output (66) and the application program. The application program developed by the designer-user is usually written in one or more graphic automation languages including in particular Ladder Diagrams, Sequential Function Chart (s) also called Grafcet, blocks functions (Function Block Description) and / or IL instruction lists (Instruction List).
In addition to the information specific to the automation application which consists of the application program, the data and the inputs / outputs stored in the random access memory (64), the invention describes the possibility of allocating memory areas ( 693, 694) variables of the random access memory (64). A first variable memory area (693) makes it possible to constitute a FIFO stack (642) for receiving output messages and a FIFO stack (643) for receiving input frames, and a second variable memory area (694) makes it possible to constitute a FIFO stack (641) for sending input messages and a FIFO stack (644) for sending output frames. The size of the first memory area (693) is defined by construction for the stack (643) for receiving input frames and by setting for the stack (642) for receiving output messages. The size of the second memory area (694) is defined by construction for the stack (644) for sending output frames and by parameterization for the stack (641) for sending input messages. The sizes of the frame transmission and reception stacks (643,644) are therefore fixed by the manufacturer of the automation equipment, for example according to the model of the automation equipment. On the other hand, a parameter setting by the user makes it possible to define the sizes of the message transmission and reception stacks (641,642), for example according to the type of automation application controlled.
In addition to the conventional components of an operating system for standard automation equipment, the ROM memory or the PROM memory will include a certain number of software modules, the functions of which will be explained below.
A first module (60) plays the role of pilot or scan manager (in English: scan manager).
A second interrupt management module (62) manages the interrupts coming from the USB bus control circuit (8).
A third module (61) manages the system time base (in English: system time base) and triggers the activation of a software module (1) for processing USB messaging mainly comprising a message constructor module (11) (in English: message builder) for incoming communications and a frame builder module (12) (in English; frame builder) for outgoing communications. These modules (11, 12) are stored in the read only memory (65) and form part of the operating system (OS). The message constructor module (11) and the frame constructor module (12) respectively conform the incoming frames to the format of messages intended for the application program and, conversely, the messages coming from the application program and intended for output. to be transformed into frames and then sent to the USB bus.
The pilot (60) which dialogues with the application program (70) generates at the end of each cycle of the application program an end scan signal (51). This signal (51) is used to trigger an outgoing message manager (32) module (32), which will receive the information intended to fill the stack (642) for receiving output messages to be sent. Likewise, to ensure the consistency of the messages, the pilot (60) also emits at the start of each cycle of the application program a start scan signal (41) which triggers a manager module (31 ) incoming messages (in English: incoming messages manager) to allow the transmission of messages from the stack (641) for sending input messages to the application program (70). The incoming message (31) and outgoing message (32) manager modules are part of the operating system (OS) stored in the read-only memory (65) of the automation equipment.
Thus, as indicated in FIG. 1, the stack (643) for receiving input frames serves as a buffer memory between the USB bus driver (8) and the message builder (11) and the stack (641) for sending. of input messages serves as a buffer between the message constructor (11) and the manager (31) of the incoming messages. Likewise, the stack (642) for receiving output messages serves as a buffer memory between the manager (32) of outgoing messages and the frame constructor (12) and the stack (644) for sending output frames serves as memory. buffer between the frame builder (12) and the USB bus driver (8).
A fourth parameterization module (67) includes a software parameterization function allowing a user to configure a predetermined limit value for the number of messages which can be received at the start of a cycle of the application program (70) by the memory. automation equipment. This limit value determines in particular the size of the memory area allocated to the stack (641) for sending input messages. The parameter setting module (67) supplies this information to the incoming message manager module (31) to enable it to limit the number of messages to be received at the start of the cycle. Likewise, the parameterization module (67) is also capable of allowing a user to configure a predetermined limit value for the number of messages likely to be transmitted at the end of the cycle of the application program (70). This limit value will determine in particular the size of the memory area allocated to the stack (642) for receiving output messages.
Periodically, for example approximately every milliseconds, the USB messaging processing module (1) is triggered. This module performs two essential functions: fragmentation / defragmentation of USB frames and rate regulation. Defragmentation consists of converting 64-byte USB frames into messages understandable by the application program and vice versa, fragmentation consists of converting messages understandable by the application program into 64-byte USB frames.
A message generally consists of several frames. When the USB messaging processing task is activated, it begins by processing the transmission part to free internal memory resources. Indeed, the flow generated by the automation equipment is generally much lower than the reception capacities of the remote equipment having USB type communication means. The reception phase begins with a test of the space available in the stack (641) for sending input messages. When there is no room to store at least one message in the stack (641), the message constructor (11) ends its processing without unstacking the stack (643) for receiving input frames. When there is room to store at least one message in the stack (641), the message builder (11) pops the stack (643) and converts the USB frames into an input message stored in the stack (641). ).
The flow control is therefore slaved to the pilot software module (60), slaved to the internal time base (61) of the automation equipment and triggered by a signal from the interrupt manager (62). The messages are constructed by the message builder (11) and defragmented only when RAM resources (64) are available and the management of the FIFO stack areas (641 to 644) of the RAM (64) is slaved to the program. 'application (70).
The USB bus driver (8) operates autonomously by interrupts triggered, either by the arrival of a frame, or by the end of transmission of the previous frame. The standard negative acknowledgment mechanism for USB type communication automatically comes into play when all the resources are occupied for reception. This negative acknowledgment is sent by the USB bus driver (8) when an interrupt triggered by the arrival of a frame could not be processed by the USB messaging processing module (1) (when the battery FIFO (643) receiving input frames is full) and the driver (60). It is then up to the transmitter, not shown, to adopt a behavior consistent with the flow rates admissible by the link (95), for example by temporarily reducing the requests.
It should be obvious to those skilled in the art that the present invention allows embodiments in many other specific forms without departing from the scope of the invention as claimed. Therefore, the present embodiments should be considered by way of illustration but may be modified within the field defined by the scope of the appended claims.
4 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4
Every citation, both ways
| Document | Relation | Office | Category | Cited during | Relevant claims |
|---|---|---|---|---|---|
| US4058711A | Cites | United States of America | A | Search report | 1 |
| US4638452A | Cites | United States of America | A | Search report | 1 |
| US6219033B1 | Cites | United States of America | A | Search report | 1 |
| WO9948608A2 | Cites | World Intellectual Property Organization (WIPO) | A | Search report | 1 |
8 members in 4 offices
Priority claims3
| Document | Office | Kind | Date |
|---|---|---|---|
| 0111507 | France | A | |
| 0111507 | France | A | |
| FR20010011507 | – | – | – |
Members8
| Document | Office | Kind | |
|---|---|---|---|
| FR2829338A1This record | France | A1 | |
| US2003061411A1 | United States of America | A1 | |
| EP1312993A1 | European Patent Office (EPO) | A1 | |
| FR2829338B1 | France | B1 | |
| US6915355B2 | United States of America | B2 | |
| EP1312993B1 | European Patent Office (EPO) | B1 | |
| DE60206236D1 | Germany | D1 | |
| DE60206236T2 | Germany | T2 |
1 legal event, as the office reported them to INPADOC
Events
| Event | Code | |
|---|---|---|
| Notification of lapseLapsedST | ST |
Numbers
- Publication
- 2829338
- Publication, DOCDB
- 2829338
- Publication, EPODOC
- FR2829338
- Application
- 111507
- Application, DOCDB
- 0111507
- Application, EPODOC
- FR20010011507
Titles2
- French
- EQUIPEMENT D'AUTOMATISME EQUIPE D'UNE LIAISON DE TYPE USB
- English
- AUTOMATION EQUIPMENT EQUIPPED WITH A USB TYPE LINK
Classification
- CPC, 2
- G05B19/05
- G05B2219/25166
- IPC, 1
- G05B19 05