Computing device compatible with IEC 61499 part and operation method thereof

By designing an execution device in the computing device that can create and configure the second execution environment data group during execution of the current function block or function, the problem of inefficient system resource utilization in the prior art is solved, and efficient utilization of system resources and support for multitasking are achieved.

CN120162283APending Publication Date: 2025-06-17SCHNEIDER ELECTRIC IND SAS
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411827570.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-12-14
Filing Date
2024-12-12
Publication Date
2025-06-17

AI Technical Summary

Technical Problem

The existing computing devices compatible with IEC 61499 have inefficient problems in multitasking and resource utilization, resulting in the inability to effectively utilize system resources.

Method used

An execution device is designed that is able to create and configure a second execution environment data set during execution of a current functional block or function, thereby performing multiple tasks without preventing the utilization of system resources. The device ensures efficient management of the execution environment and optimized utilization of resources through a state control mechanism.

Benefits of technology

By creating execution environment data groups in advance or on demand, the problem of inefficient system resource utilization is solved, and efficient utilization of system resources and multitasking support is achieved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120162283A_ABST
    Figure CN120162283A_ABST
Patent Text Reader

Abstract

A computing device compatible with the IEC 61499 portion has an arithmetic unit, a RAM, a ROM, an operating system memory, one or more interfaces for inputting and / or outputting data and signals, and a bus connecting one or more or all of the above components and / or the following components. The program memory is designed to store a program having one or more functional blocks, one functional block having one or more programmed functions and being able to have a programmed execution control chart. The execution device is designed to create a first execution environment data set for configuring an execution environment for executing functional blocks of a program. The execution device is designed to create a second execution environment data set during or before execution of a function block or function in an execution environment configured by a first execution environment data set previously created by the execution device.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a computing device partially compatible with IEC 61499 and a method for operating the same. Background Art

[0002] IEC 61499 is an international standard for programming process measurement systems and process control systems. Figure 8 The general structure of a known computing device according to IEC 61499 is schematically shown. The computing device 10 has general hardware and an operating system 19 for executing and controlling general program-specific processes. The specific hardware is not further shown in Figure 8 but includes one or more CPUs and / or cores, RAM, ROM (in particular program memory 13), registers, a bus, interfaces for input and output communication with external components (such as sensors, actuators, networks), and an event management device 14.

[0003] Regarding the program memory mentioned now and hereinafter, on the one hand, the program memory can be a non-volatile memory, which can store programs even when the computing device is in a shutdown state or away from the computing device or when the program is not being executed; or the program memory can also be a volatile memory of the program at the normal execution time point of the program, and the volatile memory can be read quickly. 13 represents the program memory and the program stored therein.

[0004] The program in the memory 13 consists of one or more function blocks 20 (English "functional block"), which are represented by FB1, FB2... FBi in Figure 1 as shown. As Figure 7b schematically shown, a conventional function block 20 consists of a plurality of programmed functions 21a to 21n and an execution control chart 22 (English: "execution control chart, ECC"), and the execution control chart 22 controls the cooperation of the functions 21. Sometimes these functions are also referred to as "methods".

[0005] In a newer version of IEC 61499, the flow of different components of the program is event-controlled, so the computing device 10 also includes an event management device 14. The program 13, especially the function blocks 20 therein, and further especially the functions 21 in the function blocks 20 generate events, and these events themselves call the function blocks 20 or specific functions 21 therein. These events are recorded and appropriately processed by the event management device 14. The event management device 14 can be a part of the operating system or can be a specifically provided component. It can be software-implemented.

[0006] The computing device 10 also has an execution device 18 (English "execution engine"), which is responsible for providing an execution environment for the function block 20 to be executed or the function 21 to be executed, in which and by means of which the function block 20 or the function 21 can be executed.

[0007] Here, the execution environment is defined by a data set, which provides a selectable and settable description of the device parameters or logical parameters to be set for the execution of the function block or function. Here, it can be a description of a storage area, a hardware component to be selected, a priority, etc.

[0008] In known computing devices compatible with IEC 61499, the execution device 18 is connected to the execution environment created by it, such that as long as the execution environment data set previously generated by the execution device is used for the execution of the function block or function, the execution device does not generate a new execution environment data set and a corresponding new execution environment. Only after the use has terminated can the known execution device 18 provide a new execution environment by generating a new execution environment data set. In this regard, the execution device 18 (English "execution engine") can be regarded as being stateful. As long as the execution environment defined by the execution device is in use, its state is "occupied", and only in other cases is its state "idle", where other states are also possible.

[0009] Showing the features of the present invention Figure 5 Schematically shows only the execution environment data set DS 51 known per se. Specific values are assigned to specific parameters such as priority, protection mechanism, storage area, hardware selection, etc., for example 3, 2, 003000 to 00efff, etc. These values are then used to set up a runnable execution environment in which the function block 20 or the function 21 can be executed.

[0010] Here, the assignment of the function block to be executed or the function to be executed to the execution environment can be carried out by the execution device 18 itself, or this can be carried out by the operating system 19.

[0011] The execution device 18 can be part of the operating system or can be an independent device. It can be software-implemented.

[0012] Already mentioned Figure 7b Shows the structure of the function block 20 according to IEC 61499. The function block 20 has the different functions 21a to 21n already mentioned, which are Figure 7bIt is also indicated by F1, F2, ..., Fn. Behind each of these functions lies the programming of a specific function, such as a calculation process, a data input process, or a data output process or a similar process.

[0013] In addition, the function block 20 includes an execution control chart 22 (English "execution control chart"), which controls the interleaving and sequencing of different functions of the function block and possibly other function blocks. As mentioned before, the more modern version of IEC 61499 is event-controlled. The execution control chart controls the "internal operation" of the function block. The execution control chart defines which functions to execute. The execution control chart additionally defines the reaction of the function block to input events. The execution control chart can also define the triggering of output events by the function block.

[0014] Finally, the function 21 in the function block 20 is designed to generate events that call other functions 21 in the same function block 20 or other function blocks 20. In the execution control chart 22, these connections between the events and the functions 21 called by the events and / or the output events generated by the events are visualized. In fact, the execution control chart 22 of such a function block 20 can be programmed using a graphical user interface GUI, which generates an image qualitatively shown in Figure 7c and the corresponding machine-usable execution control chart 22.

[0015] One characteristic of the known execution control chart 22 is that these execution control charts can be reused only when the functions 21 they call are no longer in processing. In other words, the known execution control chart 22 can be considered to be stateful in such a way that it is "occupied" when the functions 21 it calls are working, and otherwise it is "idle".

[0016] Figure 7a A schematic diagram of the function block 20 in connection with the outside is shown. The function block 20 has an input event 71, which means that it includes a function 21 that is executed in response to the input event 71. The function block 20 also has an output event (Done) 72. It is an event generated by the function 21 in the function block 20 and can itself call functions 21 in other function blocks. It should be noted here that the function 21 in a function block 20 can also internally call other functions 21 in its own function block 20, that is, these other functions 21 do not need to be visible in the external integration of the function block 20.

[0017] The function block 20 also receives certain input data (AnInputVariable (input variable)) 73 or has input or reading possibilities for this purpose. It can likewise generate output data (AOnputVar (output variable)) 74 or has output and writing possibilities for this purpose. Viewed roughly, the execution control diagram 22 can be regarded as being located between the input event 23 and the output event 24, while the programmed function 21 can be regarded as being located between the input data 25 and the output data 26.

[0018] Figure 6 The structure of a program 13 according to IEC 61499 is shown. The program 13 can have a series of function blocks 20, which are Figure 6 labeled with capital letters starting from K or with "ExampleBasic (basic example)" in order to distinguish them. An event control transition 29 takes place between these function blocks 20. In contrast, Figure 7c the arrows 28 in indicate an event control transition within the function block 20. Figure 6 It is shown that a function block 20 (for example "ExampleBasic") can be called by multiple other function blocks 20 (for example Y and L). A single function block 20, in particular the function 21 therein (for example Figure 6 the L in), can also generate multiple different events, which respectively call different function blocks 20 ( Figure 6 "ExampleBasic" or M or O in) or the function 21 therein.

[0019] In modern execution devices, multitasking can be implemented, so that multiple programs or more specifically multiple function blocks 20 or further more specifically multiple functions 21 can be executed simultaneously or almost simultaneously. If there are multiple arithmetic units or ALUs ("arithmetic logic unit", arithmetic logic unit) or cores or CPUs, they can be executed truly simultaneously. If the processing power of the specific hardware is alternately allocated to multiple programs or function blocks or functions in a time-division multiplexing manner, they can be executed almost simultaneously.

[0020] On the one hand, the processing of the event control of the program 13, and on the other hand, the possibility of multitasking, lead to numerous possible situations for accessing the function block 20 or the function 21. On the one hand, this can lead to unwanted double execution and access conflicts or storage conflicts. In contrast, the statefulness of the known execution device 18 and the execution control device 22 on the other hand described above provides protection by significantly restricting the multiple execution of function blocks and functions.

[0021] On the other hand, this results in the inability to utilize the computing power of modern systems because blocking also occurs when the work could actually be carried out. An example of this is that data input is expected in a function, but it is made to wait for it to occur. During the waiting time, nothing happens. However, the traditional execution control diagram 22 and the traditional execution device 18 are blocked in their stateful situations and are not allowed to use the system in other ways, for example, during such waiting times.

[0022] EP 4012517 A1 and EP 4012516 A1 disclose execution environments for memory programmable controllers, and these execution environments can be controlled in an event-oriented manner.

[0023] EP 2899633 A1 describes an event-oriented programming method for programmable logic controllers.

[0024] EP 3026556 A1 describes event management for industrial control. Summary of the Invention

[0025] The technical problem to be solved by the present invention is to provide an execution device that is partially compatible with IEC 61499 and its operation method, which enables the effective utilization of system resources.

[0026] The above technical problem is solved by the features according to the present invention.

[0027] A computing device that is partially compatible with IEC 61499 has an arithmetic unit, a RAM, a ROM, an operating system memory, one or more interfaces for inputting and / or outputting data and signals, and a bus connecting the above components and / or one or more or all of the following components. The computing device has a program memory, which is designed to store a program having one or more functional blocks (English "functional block"), where a functional block has one or more programmed functions and may have a programmed execution control diagram. The computing device has an execution device (English "execution engine"), which is designed to create a first execution environment data group for configuring an execution environment (English sometimes called "task"), and the execution environment is used to execute the functional blocks or functions of the program.

[0028] The execution device is designed to create a second execution environment data group during or before executing a functional block or function in an execution environment configured by the first execution environment data group previously created by the execution device.

[0029] The execution device can be designed to set up the corresponding second execution environment in a runnable manner according to the data of the second execution environment data group and, if necessary, cooperate with the operating system accordingly. Here, the specification of the data of the second data group and the runnable setup of the second execution environment may be unified processes that are hardly distinguishable externally. This process can be carried out during or before the execution of a function block or function in the first execution environment, which is configured by the first execution environment data group previously created by the execution device.

[0030] The data of the execution environment data group can, but does not necessarily have to, be explicitly stored after the runnable setup of the corresponding execution environment.

[0031] Insofar as the computing device is herein referred to as being compatible with parts of IEC 61499, this may mean that the computing device uses a number of features or components of IEC 61499 and may, but does not necessarily, use all of its components. This may mean that the computing device does not use one or more explicitly or implicitly defined features of IEC 61499 or has these features in a modified manner. This may mean that the computing device is compatible with IEC 61499, unless otherwise explicitly or implicitly described herein or required therefor.

[0032] The execution device can also be designed such that it creates the second execution environment data group before the execution of a function block or function actually requires the second execution environment data group. It can be said that the second execution environment data group can be created "in advance (auf Vorrat)" and then be available when it is needed. The advantage of creating "in advance" is that this time-consuming process can be completed as early as possible. The disadvantage is that it is accompanied by storage consumption.

[0033] The execution device can also be designed such that it creates the second execution environment data group "when needed", i.e., when the execution of another function block or another function requires an execution environment. The disadvantage of creating "when needed" is that this time-consuming process is completed later and may cause a blockage. The advantage is that there is no storage consumption beforehand.

[0034] The execution device can be designed such that it can be configured whether to create one or more execution environment data groups in advance as described above or to create one or more execution environment data groups only when needed as described above. The configuration can be carried out by the user.

[0035] That is to say, generally speaking, when enabling the execution device to execute a function block or a function in a previously created execution environment, it does not prevent the creation of another execution environment data group, or the execution device does not prevent the creation of another execution environment data group through the execution of the function block or the function in the previously created execution environment. Creation may also include, for an execution device designed to execute software implementations in multiple instances, these instances can work independently of each other a priori, and in particular, can create execution environment data groups independently of each other.

[0036] In a computing device, the execution device may have a state related to operation. Then, the first state control device is used to directly or indirectly control the state of the execution device such that after creating the first execution environment data group, but before using the first execution environment data group or before terminating the use of the first execution environment data group, the execution device creates or is capable of creating a second execution environment data group. As described above, the creation of the second execution environment data group can be carried out in advance and / or when needed.

[0037] The computing device may have a first state control device for controlling the state of the execution device, where the state includes at least two values of "occupied" or "idle", and the first state control device switches at least between these two values. Preferably, the first state control device writes the corresponding first marker accordingly. In particular, the first state control device is designed to switch the state of the execution device from "occupied" to "idle" immediately after the execution device creates the first execution environment data group, or during the execution of a function block in the execution environment configured by the first execution environment data group previously created by the execution device.

[0038] The described switching may also mean using a marker to clearly indicate the state of the execution device and querying it. Here, state control may mean appropriately setting the state marker itself, especially as described above, setting it to "idle" as long as possible. State control may also mean influencing the query result of such a marker in a desired manner, especially ignoring a possible indication of "occupied", or still evaluating it as "idle" nevertheless.

[0039] The execution device and / or the first state control device may be software-implemented, and / or may be part of an operating system or a component independent of the operating system. In a software-implemented manner, the software of the execution device and / or the first state control device can be provided together with the program to be executed.

[0040] The execution device may be designed to specify one or more of the following parameters for the execution environment data group:

[0041] · One or more storage areas,

[0042] · Priority specifications related to the function blocks to be executed in the execution environment,

[0043] · The arithmetic unit or type of arithmetic unit to be used for executing the function blocks,

[0044] · Identification of the execution environment data group.

[0045] That is to say, the execution environment data group contains different configuration specifications used when executing function blocks or functions, so as to configure the computing device and the processes therein for execution as desired. The execution environment data group can be read before executing the function or function block. Then the specifications and values read here can be set (adjusted) and used for executing the function block or function.

[0046] The execution device can be designed to configure one or more execution environment data groups to be callable by the operating system and available for executing function blocks, in particular to store the one or more execution environment data groups, for example, stored as a table, and / or can be designed to configure one or more execution environments to be runnable or usable according to these data groups.

[0047] The operating system can associate the function to be executed or the function block to be executed with the execution environment. The operating system can also adjust (set) the computing device according to the values in the execution environment data group. However, these measures can also be executed by a separate component outside the operating system. These separate components can be software-implemented and provided independently of the operating system.

[0048] In an operating method in a computing device compatible with IEC 61499 Part, during the execution of function blocks in an execution environment configured by a first execution environment data group previously created by the execution device, the execution device creates a second execution environment data group.

[0049] That is to say, in this operating method, the execution device is not blocked during the duration of executing the currently running function block or the running function, but can continue to work, in particular, just create additional execution environment data groups.

[0050] A computing device compatible with IEC 61499 Part can be designed as described above. The computing device can be equipped with an arithmetic unit, RAM, ROM, an operating system memory, one or more interfaces for inputting and / or outputting data and signals, and a bus connecting one or more or all of the above components and / or the following components, and is equipped with a program memory, which is designed to store a program during the execution of the program, where the program has one or more function blocks, and one function block has one or more programmed and separately executable functions, and these functions can generate events.

[0051] A memory, in particular a program memory, is designed to store, together with and for a functional block, a list of event-functional associations associated with the programming of the functional block, where the event-functional associations each associate a specific event occurring in the computing device with one or more functions to be executed in the computing device by the functional block in response to the event. The computing device, in particular the event control device of the computing device, is designed to, in response to a specific event, cause a specific functional block and / or a specific function therein to be executed in accordance with the entries in the event-functional association.

[0052] In this aspect of the invention, the mentioned stateless event-functional associations can be used instead of the stateful execution control diagram of the functional block, so that in particular input events can be processed even when another function is currently being processed.

[0053] The events mentioned in the event-functional association can be events occurring in the functional block containing the event-functional association or events occurring in other functional blocks. The functions mentioned in the event-functional association can be functions programmed in the functional block containing the event-functional association or functions programmed in other functional blocks.

[0054] The list of event-functional associations can be created in the form of a list or in the form of a table, with the events and the associated functions each occupying a column. The events of the event-functional associations can have a unique event identifier in the program 13, and optionally can also have a priority specification for the event, and optionally can also have an identifier of a functional block unique in the program that contains the event-functional association with the event. The functions of the event-functional associations can have a unique function identifier in the program, and optionally can also have a priority specification for the function, and optionally can also have an identifier of a functional block unique in the program that contains the function.

[0055] The event control device can be software-implemented and can be part of the operating system. The event control device can be designed to register events generated by the executed functions and, based on the event and possibly other operating parameters, cause the functions of the functional block to be executed.

[0056] The program memory can be designed to store, in addition to the list of event-functional associations, a programmed execution control diagram for the functional block, whereupon the computing device is designed to process the functional block or its functions in accordance with the execution control diagram.

[0057] Thus, it can be conceived that in addition to the described event - function associations, a conventional execution control diagram is also used. For example, specific events can be stored in the conventional execution control diagram, while other events can be captured in the described event - function associations.

[0058] The program memory has a program for a computing device compatible with IEC 61499 - Part, the program having one or more function blocks, where one function block has one or more programmed, individually executable functions that can generate events. The program memory has at least one storage area that stores, for the function blocks, a programmed list of event - function associations of one or more event - function associations, where these event - function associations respectively associate specific events generated in the stored program with the functions to be executed in the computing device in response to the event by the function blocks.

[0059] For the events of the event - function associations, the program memory can have an event identifier unique in the program, and optionally can also have a priority specification for the event, and optionally can also have an identifier of the function block unique in the program that contains the event - function association having the event; and / or for the functions of the event - function associations, the program memory can have a function identifier unique in the program, and optionally can also have a priority specification for the function, and optionally can also have an identifier of the function block unique in the program that contains the function.

[0060] The operating method in a computing device compatible with IEC 61499 - Part can be designed as described above. The invocation of the functions of the function blocks in response to events is carried out according to a programmed list of one or more associated event - function associations between the events and the functions to be executed subsequently.

[0061] That is to say, here, a conventional stateful execution control diagram is not necessarily used. Instead, the event - function associations are managed in a stateless manner, and the event - function associations are provided in response to the events that occur at any time.

[0062] A computing device compatible with IEC 61499 - Part that can be designed as described above has an arithmetic unit, a RAM, a ROM, an operating system memory, one or more interfaces for inputting and / or outputting data and signals, and a bus connecting the above - mentioned components and / or one or more or all of the following components.

[0063] The computing device has a program memory that is designed to store a program having one or more function blocks, where one function block has one or more programmed functions and a programmed execution control diagram.

[0064] The computing device has a second state control device for controlling the state of an execution control chart (ECC) of the executed function blocks of a program. The state has at least two values, "occupied" or "idle", and the second state control device switches at least between these two values, preferably by the second state control device writing a corresponding second marker accordingly. The second state control device is designed to switch the state of the execution control chart from "occupied" to "idle" during or before the execution of a function previously called by the execution control chart.

[0065] The second state control device can be software-implemented and can be part of an operating system or part of the programming of a function block.

[0066] The operating method in a computing device compatible with IEC 61499 parts can be designed as described above. The state control of the execution control chart is at least between the values "occupied" and "idle", such that the state of the execution control chart is switched from "occupied" to "idle" during or before the execution of a function called by the execution control chart.

[0067] In this aspect of the invention, the state of the execution control chart is changed such that the execution control chart is prevented from being blocked by a running function as much as possible by rewriting the state of the execution control chart from a blocked state to an available state faster and earlier than hitherto. Thus, for example, in the case of a "suspended" function (such as a function waiting for input), the execution of other functions can be triggered because the state of the execution control chart has been rewritten to "idle" early again.

[0068] In the computing device as described above, the operating system or another, preferably software-implemented component can be designed to execute the function block or function to be executed in an execution environment configured by an execution environment data group created by an execution device.

[0069] The computing device as described above can have an event management device, which can be software-implemented and / or can be part of an operating system, and is designed to collect events generated by functions, where such events can have a description of the function and / or function block to be executed and can have a priority description for the function and / or function block to be executed.

[0070] The event management device can be designed to assign the execution of a specified function or a specified functional block in the collected events to an execution environment configured using an execution environment data group created by an execution device, or to input the specified function or functional block into a waiting queue if no execution environment is available.

[0071] The event management device can be designed to collect event-function associations from one or more event-function associations of one or more functional blocks, for example, at the start of a program, and assign functions or functional blocks to the execution environment according to the collected list.

[0072] The known design of the execution device and the execution control diagram described at the beginning forms a protection against the unwanted double execution of functional blocks or functions therein or against data access conflicts or data storage conflicts in a certain way by largely avoiding double execution. However, this protection mechanism is not always necessary because there are programs that are insensitive to the problems mentioned due to their creation or due to the structure of the reality they control. The above modifications are an improvement for these programs because unnecessary waiting times are avoided, thus increasing throughput and execution efficiency.

[0073] However, there may also be programs that must be protected against unwanted double execution or read or write conflicts. For this purpose, one or more protection devices can be set up.

[0074] The computing device as described above can have an adjustable (settable) protection device for preventing the execution of functions or functional blocks and / or for protecting the process from being interrupted, in particular function calls or functions or functional blocks from being interrupted. The adjustable (settable) protection device can be designed to obtain protection settings from the programming of the functional block or function and work accordingly, and / or work according to the instructions in the executed function or executed functional block.

[0075] During operation, the protection device can be implemented through the cooperation of appropriately working protection settings and the adjustment (setting) instructions provided therefor. The protection settings can be software-implemented and can be part of the operating system, or can be an independent program, or can be provided together with or be part of the program to be executed. The adjustment instructions can be taken from the program to be executed or can be derived from other system settings or system states. The protection settings and adjustment instructions together ensure the setting, monitoring, and resetting of the protection.

[0076] As a protection device, the computing device may have a first protection device for protecting a function or a functional block against double execution. The protection device may have a mutex or a semaphore, which is set when the function or the functional block to be protected is first executed and reset when the function or the functional block terminates. The program may have adjustment (setting) instructions set for this purpose.

[0077] As a protection device, the computing device may have a second protection device for preventing the execution of a function or a functional block, where the second protection device may have a second mutex or a second semaphore, which is set when another function or another functional block is executed and reset when the function or the functional block terminates.

[0078] As a protection device, the computing device may have a third protection device for protecting a function call from being interrupted, where the third protection device may have a third mutex or a third semaphore, which is set when another function or another functional block is executed and reset when the function or the functional block terminates.

[0079] Thus, the proper setting and resetting of the protection mechanism can be part of the programming and can be part of the programmer's programming work. Correspondingly, the program may include joint programming instructions related to the protection device, especially instructions on when to set the protection and when the protection can be cancelled again. Thus, the program memory has corresponding storage areas that have these protection programs or protection instructions. The computing device may have such a program memory. The program memory may be a program memory that is written in a volatile manner during program execution, or may be a memory that is written in a non-volatile manner, and the memory written in a non-volatile manner saves the program when the program is not executed and may also be remote from the execution device.

[0080] The computing device as described above may be designed to execute multiple programs simultaneously or almost simultaneously. For this purpose, the computing device may use multiple physically different arithmetic units or cores or CPUs or ALUs or execution environments arranged side by side, and these arithmetic units or cores or CPUs or ALUs or execution environments partially share other resources such as memory, registers, interfaces, execution environments. Or the computing device may use a single arithmetic unit or core or CPU or ALU or execution environment for this purpose, and the arithmetic unit or core or CPU or ALU or execution environment is a multiple of logical arithmetic units or cores or CPUs or ALUs or execution environments in a time-sharing or time-division multiplexing form, which also partially uses the same other resources such as memory, registers, interfaces, execution environments. The described protection device thus prevents access conflicts or data conflicts. Brief Description of the Drawings

[0081] The embodiments of the present invention will be described below with reference to the drawings, in which:

[0082] Figure 1 shows a computing device 10 having the features of the present invention;

[0083] Figure 2 shows a functional block having the features of the present invention;

[0084] Figure 3 shows an event - function association;

[0085] Figure 4 shows a functional block having the features of the present invention;

[0086] Figure 5 shows a table having an execution environment data group;

[0087] Figure 6 shows a known structure of a program;

[0088] Figures 7a to 7c shows the features of a functional block in the prior art; and

[0089] Figure 8 shows a known computing device. Detailed Embodiments

[0090] Figure 1 shows a computing device 10 that is compatible with IEC 61499 Part. The computing device 10 has generally required components 19, and these components 19 include an operating system and hardware components such as a memory, an arithmetic unit, a communication interface, a bus, registers, volatile and non - volatile storage areas, an energy supply device, etc. 13 represents a program (Prog) or a storage area occupied by the program, which on the one hand can be a non - volatile memory for program storage and data storage in the off - state of the device, and on the other hand can also be a memory written in a volatile manner during program execution.

[0091] The program 13 can be compatible with IEC 61499 or partially compatible with IEC 61499 as described above. The program 13 has functional blocks 20, and these functional blocks 20 can be compatible or partially compatible with IEC 61499.

[0092] As has been shown, the newer version of IEC 61499 has event - controlled process control. For this purpose, an event management device 14 is provided, and the event management device 14 takes corresponding necessary measures. The event management device 14 is separately shown in Figure 1 But the event management device 14 can also be a part of the operating system. The event management device 14 can be software - implemented.

[0093] There is also an execution device 18, which is provided and designed to execute an execution environment for a function block to be executed or a function definition to be executed. The execution device 18 achieves this by generating a suitable set of execution environment data by the execution device 18, and this set of execution environment data can be used to configure the execution environment when executing a program, function or function block. As already mentioned, in an embodiment of the present invention, the execution device 18 is designed such that during or even before executing a function block in the following execution environment, the execution device 18 generates a second set of execution environment data, and this execution environment is configured by a first set of execution environment data previously created by the execution device. This can be achieved by a first state control device 11, and the first state control device 11 enables the execution device 18 to execute the creation of the described second set of execution environment data just as described.

[0094] The execution device 18 can be designed to set a corresponding second execution environment in a usable or runnable manner according to the data of the second set of execution environment data and preferably almost simultaneously with the determination or specification of the data.

[0095] For this purpose, it may be necessary to cooperate with the operating system in order to perform the settings required for running at the operating system level. Therefore, the execution device 18 can be designed to cooperate and / or communicate with the operating system (if necessary) in order to set a corresponding second execution environment in a runnable manner according to the data of the second set of execution environment data.

[0096] Here, the determination of the data of the second set of execution environment data and the runnable setting of the second execution environment may be a unified and almost indistinguishable process. This process can be performed during or before executing a function block or function in the following first execution environment, and this first execution environment is configured by a first set of execution environment data previously created by the execution device.

[0097] Then, the second execution environment set in this way can be used to execute another function or another function block to be processed as the case may be. Or the second execution environment exists in a set but at least temporarily idle form.

[0098] The first state control device 11 can affect the blocking mechanism of the execution device 18 known for the creation of the described second execution environment data group and / or the runnable settings of the corresponding second execution environment, in order to eliminate the corresponding block and / or can ensure that the software-implemented execution device 18 can be executed multiple times. As long as a clear mark is set for the state of the execution device 18, the first state control device 11 can appropriately describe this mark, in particular such that the mark indicates the idle or available state of the execution device 18 early. For example, this can be done once the creation, storage or provision of the first execution environment data group is completed. In this way, the execution device 18 can also create the execution environment data group before it is actually required.

[0099] Figure 5 A list (AU-DS list) 50 of a plurality of execution environment data groups DS1, DS2,... is shown, which can be created and stored in tabular form, and / or these execution environment data groups may have been used to set up a plurality of execution environments, whether or not they have been explicitly stored. The data column 51 contains value entries for the corresponding parameters of the execution environment. Figure 5 A column 52 explaining the parameters is shown. In actual implementation, this column does not necessarily exist. The list 50 of the execution environment data groups 51 can be guided numerically in the computing device and staged in a manner readable and available for the operating system, and / or the existing execution environments have been set up accordingly. An execution environment data group 51 is shown, which has explanations related to parameters such as priority (Prio), protection mechanism (Schutz), storage area (Mem), hardware allocation (Hardw.), etc.

[0100] The execution device 18 can write to at least one column 51 of the storage area or table 50 early, in particular when another execution environment data group is still in use or before any of these data groups are used, as Figure 5 shown. In this way, it is avoided that the computing device is blocked due to a non-existent execution environment or configuration instructions in the form of the described data group 51 for it.

[0101] Figure 2 An embodiment of a functional block 20 that can optionally be combined with the above features is shown, and this functional block 20 can be part of a program 13. The functional block 20 has a plurality of functions 21a to 21f, which are individually programmed and perform the desired services. These functions can be called individually according to events. The functions can also generate events that call other functions. The functions called by one event can be in the same functional block or in another functional block.

[0102] In addition, the function block 20 has an event - function association list (E / F list) 23, which can be created in the form of a list or in the form of a table. Figure 3 An example of such an event - function association list 23 is shown. The event - function association list 23 has at least one column 24 for different events and a column 25 for optionally different function descriptions. The listed events can include standard events such as initialization and termination ("INIT", "END") and / or events E1, E2, E3, E4, and E5 set by the programmer. The function column 25 can correspondingly include standard functions Finit and Fend for initialization or for termination, as well as programmed functions created by the programmer as part of their programming work. Each event is associated with a function to be executed. This example shows that different events E1 and E4 can call the same function F2. The function description given for event E5 should indicate that it relates to a function F1 in another block "FB.abc".

[0103] The event - function association list 23 as shown can be created as part of the programming work when programming the function block, and stored together with the programmed functions. At execution time, the programmed functions are loaded together with the programmed event - function association 23. Figure 3 Then, the function 21 can be programmed or has been programmed such that it calls a function existing in the same function block or generates a corresponding event that causes the execution of that function. And the function 21 can be programmed or has been programmed such that it generates a corresponding event for a function existing in another function block, which causes the execution of that function.

[0104] Generating an event by a function can be done in such a way that a syntactically correct string corresponding to the desired event is generated and output within the function. Generating an event by a function can also be done in such a way that, for example, a syntactically correct string corresponding to the desired event is stored passively in the programmed event - function association 23, and then these strings are activated by the function.

[0105] If an event occurs during the processing of a function block, especially a function of the function block, then the event - function association 23 can be accessed thereby to determine the corresponding function to be executed. Then, the execution of the function can be caused after the output event within the function block or in another function block.

[0106] The event - function association 23 is stateless and is not blocked by any system parameters in its use. In this way, the processing of a specific event is prevented from being delayed due to processing duration or waiting time.

[0107]

[0108] ​Figure 2 It is shown that the function block 20 having the event-function association 23 can also have an execution control diagram 22. These two mechanisms can be provided in a combined manner with each other if necessary.

[0109] Figure 4 Another aspect of the present invention is shown which can be provided in a manner combined with the above aspects. 20 also represents a function block which, as is known, contains functions 21a to 21f that can be individually called and individually programmed. 22 is a known execution control chart (ECC) which, in a known manner, affects the calling of functions according to events. As described with respect to the prior art, this execution control chart is stateful.

[0110] However, a second state control device 12 is provided. Here, the second state control device 12 can be a software-implemented component which is programmed inside or outside the function block 20. Figure 4 The latter is shown. However, the second state control device 12 can also be part of the programming of the function block 20, or can be provided together with the function block 20 outside the function block 20.

[0111] The second state control device 12 works in such a way that it switches the state of the execution control diagram 22 from the value "occupied" to the value "idle" in advance. This is especially done before or even at the start of the termination of the processing of the function most recently called from the execution control diagram 22. This can be done, for example, once the function call is completed, or can be done immediately after the start of the execution of the function last called from the execution control diagram 22.

[0112] In this way, it is ensured that the execution control diagram 22 is not blocked for further use, especially for the calling of other functions according to other events, due to the function being in processing.

[0113] The second state control device 12 can be designed to modify the traditional state determination of the known state control device. The second state control device 12 can also be designed to eliminate other usage obstacles for the early reuse of the execution control diagram 22. The second state control device 12 can also be designed to replace the traditional state control.

[0114] In this aspect of the present invention, the operating method of a computing device compatible with IEC 61499 part can be designed as described above. The execution control diagram can be stateful. Then the state control is performed such that the state is switched from "occupied" to "idle" during or before the execution of the function previously called by the execution control diagram.

[0115] Generally, a computing device is designed to execute a functional block or a function to be executed in an execution environment configured according to an execution environment data group created by an execution device. Assigning the function or functional block to be executed to the execution environment can be performed by the operating system or other components of the computing device. It can be performed in an event-controlled manner with the intervention of the event management device 14.

[0116] To avoid access conflicts, a protection device can be set up. There may be situations where it is not desired to execute another function during the execution of one function, or to execute the same function twice, or for a function to access the same data in a read or write manner. To avoid such access conflicts, a configurable protection device can be set up as part of the programming done by the programmer. Here, semaphores or mutexes can be used, which are set up and reset appropriately and observed. Here, especially if a functional block or function is assigned to an execution environment, or if a functional block or function is to be executed after the assignment has been made, it can be observed. Thus, the observation of the protection mechanism can be done, for example, at the operating system level or at the level of the event management device 14. However, the observation of the protection mechanism can also be a mechanism specifically created here.

[0117] A first mutex or a first semaphore can prevent the double execution of a function or a functional block. The first mutex or the first semaphore can be set when the functional block or function to be protected is first executed, and can be reset when the first execution is completed. Then, during the set state, the so-marked functional block or the so-marked function cannot be executed a second time.

[0118] The protection device can also be used to generally prevent the execution of a function or a functional block. As described, then at the start of the desired prevention, the functional block or function to be prevented is marked with a mutex or a semaphore. If the prevention is no longer needed, the mutex or the semaphore is reset.

[0119] Furthermore, especially in functional blocks and functions where priorities are marked, it is desirable to protect the executed functional block or the executed function from interruption. In this regard, a protection mechanism can also be provided that is set up at the start of the uninterrupted execution and reset after the execution has terminated. Here, the protection mechanism can also be a suitably designed semaphore or mutex. The setting up and resetting of the protection device, or at least the indication of when the setting up and resetting have been done, is part of the programming of the functional block and thus part of the program, and accordingly occupies an area corresponding to the program memory.

[0120] Data and / or instructions and / or information can be written to a storage area of a computing device, in particular a program memory, for executing or implementing one or more of the protection mechanisms and / or protection devices mentioned.

[0121] Generally, a computing device can be designed for multiple executions of programs and program parts, in particular functional blocks and their functions. Parallel execution can be truly simultaneous or can be almost simultaneous in a time-division multiplexing manner. Truly simultaneous execution requires at least different arithmetic units, but these arithmetic units may then access the same other resources, such as memory, interfaces, registers, etc. In the case of almost simultaneous execution, it can work in a time-division multiplexing manner, and the computing power of the hardware can be distributed to multiple executions of multiple functions or functional blocks.

[0122] The features described in this specification or shown in the drawings should thus also be considered as combinable with each other, even if their combination is not explicitly described, as long as such a combination is technically possible. Features described in a particular context, particular embodiment or drawing should also be considered as separable from that context, embodiment or drawing and combinable with any other drawing, embodiment or context, as long as this is technically possible. Embodiments and drawings should not be understood as necessarily mutually exclusive. The description of a method or process or method step or process step should also be understood as a description of a device and / or program instructions of code executable on a data carrier suitable for implementing the method or process or method step or process step, and / or should also be understood as a description of an artifact produced or processed using the method or process or method step or process step, and vice versa. In this specification, the term "invention" should be understood as the teachings subjectively developed by the inventor.

[0123] List of reference numerals:

[0124] 10 Computing device

[0125] 11 First state control device

[0126] 12 Second state control device

[0127] 13 Program, program memory

[0128] 14 Event management device

[0129] 17 Protection device

[0130] 18 Execution device

[0131] 19 Hardware, operating system

[0132] 20 Functional block

[0133] 21 Function

[0134] 22 Execution Control Chart

[0135] 23 Event-Function Association List

[0136] 24 Event Column

[0137] 25 Function Column

[0138] 28 Transitions within Function Blocks

[0139] 28 Transitions to External Function Blocks

[0140] 50 Execution Environment Data Group List

[0141] 51 Data Group Column

[0142] 71 Input Events

[0143] 72 Output Events

[0144] 73 Input Data

[0145] 74 Output Data

Claims

1. A computing device partially compatible with IEC 61499, the computing device having: arithmetic unit, RAM, ROM, operating system memory, one or more interfaces for inputting and / or outputting data and signals, and buses connecting one or more or all of the above components and / or the following components, A program memory, the program memory being designed to store a program having one or more function blocks, wherein: A function block has one or more programmed functions and can have a programmed execution control diagram, an execution device, which is designed to create a first execution environment data set for configuring an execution environment for executing the functional blocks of the program, It is characterized in that The execution device is designed to create a second execution environment data set during or before the execution of a function block or a function in an execution environment that was configured by means of a first execution environment data set previously created by the execution device.

2. The computing device according to claim 1, wherein: The execution device is designed to, together with the creation of the second execution environment data set, set up the second execution environment in a usable and operable manner according to the data of the second execution environment data set.

3. The computing device according to claim 1, wherein: The execution device has a state related to operation, and wherein a first state control device for directly or indirectly controlling the state of the execution device includes: after creating a first execution environment data group, but before using the first execution environment data group or terminating the use of the first execution environment data group, the execution device creates or is able to create a second execution environment data group.

4. The computing device according to claim 1, comprising: A first state control device for controlling the state of the execution device, wherein: The state includes at least two values: "occupied" or "idle", and the first state control means switches at least between these values. In which, the first state control device is designed to switch the state of the execution device from "occupied" to "idle" immediately after the execution device creates the first execution environment data group, or during the execution of a function block in the following execution environment, which is configured by the first execution environment data group previously created by the execution device.

5. The computing device according to claim 1, wherein: The execution device is designed to specify one or more of the following parameters for the execution environment data set: · a priority specification associated with the function blocks to be executed in the execution environment, The arithmetic unit or type of arithmetic unit used to execute the function block, The identifier of the execution environment data group.

6. The computing device according to claim 1, wherein: The execution device and / or the first state control device are implemented by software and / or can be a part of the operating system or a component independent of the operating system.

7. The computing device according to claim 1, wherein: The execution device is designed to create an execution environment data group when a function block is to be executed, even if another function block is already being executed; and / or the execution device is designed to create one or more execution environment data groups when there is no current need, and to set the one or more execution environment data groups so that they can be called by the operating system and can be selected by the operating system when necessary to execute the function block; and / or the execution device is designed to set the execution environment data group so that it can be called by the operating system and can be evaluated for the execution of the function block.

8. A method for operating a computing device which can be designed according to claim 1 and is partially compatible with IEC 61499, wherein: During the execution of a function block in an execution environment configured by a first execution environment data set previously created by said execution device, the execution device creates a second execution environment data set.

9. A computing device that can be designed according to claim 1 and is partially compatible with IEC 61499, the computing device having: arithmetic unit, RAM, ROM, operating system memory, one or more interfaces for inputting and / or outputting data and signals, and buses connecting one or more or all of the above components and / or the following components, a program memory, which is designed to store a program during execution of the program, wherein The program has one or more function blocks, wherein a function block has one or more programmed, individually executable functions that can generate an event, in, The memory is designed to store, together with and for the function block, an event-function association list of one or more event-function associations resulting from the programming of the function block, the event-function associations respectively associating a specific event occurring in the computing device with a function of the function block to be performed in the computing device in response to the event, and The computing device is designed to, in response to a specific event, cause a specific function block and / or a specific function therein to be executed according to an entry in the event-function association, The computing device has an event control device, and The event control device can be implemented by software and can be part of an operating system, and can be designed to register events generated by executed functions and execute functions of function blocks based on the generated events and other operating parameters.

10. The computing device according to claim 9, wherein: The event mentioned in the event-function association is an event occurring in the function block containing the event-function association or an event occurring in other function blocks, and / or wherein, The functions mentioned in an event-function association are functions programmed in the function block containing the event-function association or functions programmed in other function blocks.

11. The computing device according to claim 9, wherein: The event of the event-function association has an event identifier that is unique in the program, and optionally also has a priority specification for the event, and optionally also has an identifier of a function block that is unique in the program, the function block containing the event-function association with the event, and / or wherein, The function of the event-function association has a unique function identifier in the program and optionally also a priority specification for the function and optionally also an identifier of a function block unique in the program, which contains the function.

12. The computing device according to claim 9, wherein: The event control device registers events generated by the executed functions and, depending on the generated events and on other operating parameters, causes the functions of the function blocks to be executed.

13. The computing device of claim 9, wherein: The program memory is designed to store, among other things, a programmed execution control diagram for the function blocks, wherein the computing device is designed to process the function blocks or their functions in accordance with the execution control diagram.

14. A program memory having a program for a computing device partially compatible with IEC 61499, wherein: The program has one or more function blocks, wherein the function blocks have one or more programmed, individually executable functions, which are capable of generating events, wherein the program memory has at least one storage area, which stores one or more programmed event-function associations for the function blocks, the one or more event-function associations respectively associating a specific event generated in the stored program with a function of the function block to be executed in the computing device in response to the event, Wherein, the stored event in the stored event-function association can have an event identifier that is unique in the program, and optionally can also have a priority description for the event, and optionally can also have an identifier of a function block that is unique in the program, and the function block contains the event-function association having the event, and / or wherein, the stored function in the stored event-function association has a function identifier that is unique in the program, and optionally can also have a priority description for the function, and optionally can also have an identifier of a function block that is unique in the program, and the function block can have the function.

15. A method for operating a computing device partially compatible with IEC 61499, wherein: The method can be designed according to claim 8, and wherein event-function associations obtained from the programming of the function blocks are loaded, and in response to specific events, specific function blocks and / or specific functions therein are executed according to entries in the event-function associations.

16. A computing device partially compatible with IEC 61499, the computing device having: arithmetic unit, RAM, ROM, operating system memory, one or more interfaces for inputting and / or outputting data and signals, and buses connecting one or more or all of the above components and / or the following components, A program memory, the program memory being designed to store a program having one or more function blocks, wherein: A function block has one or more programmed functions and a programmed execution control diagram, a second state control device, for controlling the state of the execution control diagram of the executed function block of the program, wherein the state has at least two values ​​of "occupied" or "idle", and the second state control device switches at least between these two values, in, The second state control device is designed to switch the state of the execution control diagram from “occupied” to “idle” during or before the execution of a function called by the execution control diagram.

17. The computing device of claim 16, wherein: The second state control device can be designed to modify the state specification of a known state control device, wherein the second state control device can be implemented in software and can be part of the programming of the function block.

18. A method for operating a computing device partially compatible with IEC 61499, wherein: The method can be designed according to claim 8, and wherein the state of the execution control diagram can take at least two values, "occupied" or "idle", and the state of the execution control diagram is switched from "occupied" to "idle" during or before the execution of a function called by the execution control diagram.

19. A method for operating a computing device partially compatible with IEC 61499, wherein: The method can be designed according to claim 15, and wherein the state of the execution control chart can take at least two values, "occupied" or "idle", and the state of the execution control chart is switched from "occupied" to "idle" during or before the execution of a function called by the execution control chart.

20. The computing device of claim 1, wherein: The operating system is designed to execute a function block to be executed or a function to be executed in an execution environment that is configured using an execution environment data set created by the execution device.

21. The computing device according to claim 1, comprising an event management device, which can be part of an operating system and / or can be implemented in software and is designed to, Collects events generated by functions, where The event can have a specification of a function to be executed and / or a function block to be executed and can have a priority specification for the function to be executed and / or the function block to be executed, and / or Associating the function or the specified function block specified in the collected event with the execution of the execution environment configured by the execution environment data set created by the execution device, or if no execution environment is available, placing the specified function or the specified function block in a waiting queue, and / or Event-function associations are collected from one or more event-function associations of one or more function blocks, and associations between execution environments and functions or function blocks are performed based on the collected list.

22. The computing device according to claim 1, comprising a programmable protection device for preventing the execution of functions or function blocks and / or for protecting a process, wherein: The programmable protective device can be designed to derive its programming from the programming of the function blocks or functions and to operate accordingly and / or to operate according to instructions from the executed functions or executed function blocks, wherein the programmable protective device can be implemented by an operating system, wherein the computing device can have a first protection device for protecting a function or a function block against double execution, wherein the protection device can have a first mutex or a first semaphore which is set when the function to be protected or the function block to be protected is executed for the first time and is reset when the function or the function block is terminated, and / or can have a second protection device for preventing the execution of a function or a function block, wherein the second protection device can have a second mutex or a second semaphore, which is set when another function or another function block is executed and is reset when the function or function block is terminated, And / or may have a third protection device for protecting the function call from being interrupted, wherein the third protection device may have a third mutex or a third semaphore, which is set when another function or another function block is executed and reset when the function or function block is terminated.

23. The operating method according to claim 8, wherein: Use one or more protection methods.

Citation Information

Patent Citations

  • PLC execution environment

    EP4012516A1

  • Execution environment for executing an event-oriented control program

    EP4012517A1