SYSTEM AND METHOD FOR CONTROLLING AT LEAST ONE MACHINE, MORE PARTICULARLY A COLLECTIVE OF MACHINES
20220283568 · 2022-09-08
Inventors
Cpc classification
G05B19/41845
PHYSICS
G05B19/4155
PHYSICS
International classification
Abstract
A system for controlling at least one machine which is assigned an individual machine language including defined command variables, the machine undergoing a change of state in the course of the control, having a control module which is designed to transform command variables of an interaction language into corresponding command variables of an individual machine language depending of the type of machine and/or the machine language assigned thereto.
Claims
1. A system for controlling at least one machine (K.sub.i), which is assigned an individual machine language comprising defined command variables (R.sub.1, . . . , R.sub.i), the at least one machine (K.sub.i) undergoing a state change (Z.sub.i) in a course of the control, comprising: a human-machine interface (HMI) associated with an interaction language comprising defined command variables (r.sub.1, . . . , r.sub.i); and a control module which is configured, depending on a type of the at least one machine (K.sub.i) and/or the machine language assigned thereto, with respect to a command variable (r.sub.1, . . . , r.sub.i) of the interaction language and/or with respect to a command variable (R.sub.1, . . . , R.sub.i) of the individual machine language to generate a control function (f.sub.1, . . . , f.sub.i) which is designed to transform the command variable (r.sub.1, . . . , r.sub.i) of the interaction language into an associated command variable (R.sub.1, . . . , R.sub.i) of the individual machine language.
2. The system according to claim 1, in which the control module is further configured, depending on the type of the at least one machine (K.sub.i) and/or the machine language assigned thereto, with respect to a status variable (s.sub.1, . . . , s.sub.i) of the interaction language and/or with respect to a status variable (S.sub.1, . . . , S.sub.i) of the individual machine language to generate an inverse control function (f.sub.1.sup.−1, . . . , f.sub.i.sup.−1), which is designed to transform a status variable (S.sub.1, . . . , S.sub.i) of the individual machine language into an associated status variable (s.sub.1, . . . , s.sub.i) of the interaction language.
3. The system according to claim 2, in which the control module is further configured to generate the control function (f.sub.1, . . . , f.sub.i) depending on the inverse control function (f.sub.1.sup.−1, . . . , f.sub.i.sup.−1) and/or vice versa.
4. The system according to claim 2, in which the control module is further configured to change the control function (f.sub.1, . . . , f.sub.i) and/or the inverse control function (f.sub.1.sup.−1, . . . , f.sub.i.sup.−1) during the state change of the machine (K.sub.i).
5. The system according to claim 2, in which a plurality of machines (K.sub.1, . . . , K.sub.i) is provided, each of which is assigned an individual machine language, and in which the control module is designed to generate a control function (f.sub.1, . . . , f.sub.i) and an inverse control function (f.sub.1.sup.−1, . . . , f.sub.i.sup.−1) for each machine (K.sub.1, . . . , K.sub.i).
6. The system according to claim 5, in which the control module is further configured to generate the control functions (f.sub.1, . . . , f.sub.i) and the inverse control functions (f.sub.1.sup.−1, . . . , f.sub.i.sup.−1) synchronously or asynchronously with respect to the machines (K.sub.1, . . . , K.sub.i).
7. The system according to claim 1, in which the at least one machine (K.sub.i) is a robot or a part of a robot.
8. A method for controlling at least one machine (K.sub.i), which is assigned an individual machine language comprising defined command variables (R.sub.1, . . . , R.sub.i), by means of a control module which interacts with a human-machine interface (HMI), which is assigned an interaction language comprising defined command variables (r.sub.1, . . . , r.sub.i), the machine (K.sub.i) undergoing a state change (Z.sub.i) in a course of the control, comprising steps: recognizing a type of the at least one machine (K.sub.i) and/or the machine language assigned to it; generating, depending on the type of the at least one machine (K.sub.i) and/or the machine language associated therewith, a control function (f.sub.1, . . . , f.sub.i) with respect to a command variable (r.sub.1, . . . , r.sub.i) of the interaction language and/or with respect to a command variable (R.sub.1, . . . , R.sub.i) of the individual machine language; and transforming the command variable (r.sub.1, . . . , r.sub.i) of the interaction language into an associated command variable (R.sub.1, . . . , R.sub.i) of the individual machine language using the control function (f.sub.1, . . . , f.sub.i).
9. The method according to claim 8, further comprising the steps: depending on the type of machine (K.sub.i) and/or the machine language associated therewith, generating an inverse control function (f.sub.1.sup.−1, . . . , f.sub.i.sup.−1) with respect to a status variable (s.sub.1, . . . , s.sub.i) of the interaction language and/or with respect to a status variable (S.sub.1, . . . , S.sub.i) of the individual machine language; and transforming the status variable (S.sub.1, . . . , S.sub.i) of the individual machine language into an associated status variable (s.sub.1, . . . , s.sub.i) of the interaction language using the inverse control function (f.sub.1.sup.−1, . . . , f.sub.i.sup.−1).
10. The method according to claim 9, in which the control function (f.sub.1, . . . , f.sub.i) is generated depending on the inverse control function (f.sub.1.sup.−1, . . . , f.sub.i.sup.−1) and/or vice versa.
11. The method according to claim 9, in which the control function (f.sub.1, . . . , f.sub.i) and/or the inverse control function (f.sub.1.sup.−1, . . . , f.sub.i.sup.−1) are changed during the state change (Z.sub.i) of the machine (K.sub.i).
12. The method according to claim 9, in which a plurality of machines (K.sub.1, . . . , K.sub.i) is provided, each of which is assigned an individual machine language, comprising: generating a control function (f.sub.1, . . . , f.sub.i) and an inverse control function (f.sub.1.sup.−1, . . . , f.sub.i.sup.−1) for each machine (K.sub.1, . . . , K.sub.i), wherein the control functions (f.sub.1, . . . , f.sub.i) and the inverse control functions (f.sub.1.sup.−1, . . . , f.sub.i.sup.−1) are generated synchronously or asynchronously with respect to the machines (K.sub.1, . . . , K.sub.i).
13. A computer system comprising a data processing device, the data processing device being configured to perform the method according to claim 8 on the data processing device.
14. A digital storage medium having electronically readable control signals, the control signals being capable of interacting with a programmable computer system to perform the method according claim 8.
15. A computer program product comprising program code stored on a machine-readable medium for performing the method according to claim 8, when the program code is executed on a data processing device.
16. A computer program comprising program codes for carrying out the method according to claim 8, when the program runs on a data processing device.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0078] Further features and advantages of the invention will be apparent from the description of the embodiments explained with reference to the accompanying drawings.
[0079]
[0080]
[0081]
[0082]
[0083]
[0084]
[0085]
DETAILED DESCRIPTION
[0086]
[0087] The interaction language forms, so to speak, the user-side command language which, according to the invention, is preferably designed uniformly with respect to all machines with which the system is to interact.
[0088] Corresponding command variables r.sub.1, . . . , r.sub.i, are stored or predefined in the interaction language. If the machine to be controlled is, for example, a robot, the command variable r.sub.1 can mean, for example, “Move the robot from position A to position B”, whereby the type of robot and its inherent machine language are not necessarily known to the system and thus to the user for operating the interaction language.
[0089] The machine language of the machine comprises all instructions defined by command variables, which can be directly executed by the machine in the context of operations, whereby the set and the formal structure or syntax of these instructions, i.e., the instruction set, differ from machine to machine, even if the machines come to the same result in the context of the implementation of a command variable. For example, a six-axis, position-controlled robot from a first manufacturer with a first machine language (machine code, machine program) is just as capable as a six-axis, position-controlled robot from a second manufacturer with a second machine language, which may be technically different, of moving its effectors from position A to position B, i.e. the result or the functional performance of both robots is identical, but the execution is carried out using different command variables of the machine language.
[0090]
[0091] This machine K.sub.i has an independent machine language which is not identical with the user-side interaction language with respect to type and programming. In this machine language, which does not have to be identical with or compatible with the machine languages of other machines or machine classes, command variables R.sub.1, . . . , R.sub.i are also stored, which correspond to the command variables of the interaction language with respect to their execution, i.e., the result to be achieved.
[0092] In the example given, the command R.sub.i of the machine language therefore also means “Move the robot from position A to position B”, whereby the command variables R.sub.2 to R.sub.i can comprise further commands which can be executed following the command R.sub.i.
[0093]
[0094] The system according to the invention is designed, for example by appropriate programming with respect to the software or at least of a computing kernel, to generate at least one control function f.sub.1, . . . , f.sub.i with respect to each command variable r.sub.i, . . . , r.sub.i of the interaction language, with which this command variables r.sub.i, . . . , r.sub.i are converted or transformed to the command variable R.sub.1, . . . , R.sub.i of the machine language of the machine K.sub.i assigned or corresponding to it in each case.
[0095] According to the invention, this process is carried out in such a way that the control functions f.sub.1, . . . , f.sub.i are determined via at least one algorithm stored or implemented in the software or the computing kernel depending on the type or class of the machine K.sub.i, for example a six-axis, position-controlled robot, of the individual (usually manufacturer-dependent) machine language inherent in this machine K.sub.i and/or of the type of command itself.
[0096] In fact, the command structure or command syntax of the interaction language does not have to know the command structure or command syntax of the machine K.sub.i.
[0097] The machine K.sub.i itself is described as a computing model of a state machine, which undergoes a state change in the course of the execution of each command variable, which is exemplified by the arrow Z.sub.i in
[0098] Here, the state change need not necessarily be dynamic in nature. The machine K.sub.i can, for example, also be a sensor of any kind which current state, i.e. measured value, is queried via a corresponding input in the interaction language by means of a command variable r.sub.2, e.g., in the sense of “determine prevailing temperature”, in that the control module of the system generates a corresponding control function f.sub.2 which maps this input to the controlled variable R.sub.2 of the machine (sensor) language in the sense of “determine prevailing temperature” of the sensor. The temperature as a status variable or state signal can then be transferred back to the control module or HMI for display or transmission of the information to the user, which will be explained below in the context of
[0099] According to the invention, the control module is further designed to provide a continuous feedback from the command variables R.sub.1, . . . , R.sub.i of the machine K.sub.i in the course of the generation of the control functions f.sub.1, . . . , f.sub.1, which is symbolically represented by the arrows U.sub.1, . . . , U.sub.i.
[0100] Consequently, the invention is characterized by the virtual implementation of a process computing model for communication between a user-defined interaction language and a predetermined, individualized machine language, in the broadest sense the basic structure of a control loop in which actual and/or virtual status variables and/or disturbance variables are included in the feedback control. According to the invention, such a control loop is preferably generated virtually by programming, with the individual command variables as virtual controlled variables.
[0101] In order to recognize whether and to what extent the state change (e.g., “robot has moved from position A to position B”) of the respective machine to be controlled has occurred, the system (and thus the user via the HMI) must be provided with corresponding feedback.
[0102] This is exemplarily shown in
[0103] The machine language of the machine K.sub.i is assigned a set of status variables S.sub.1, . . . , S.sub.i. These status variables S.sub.1, . . . , S.sub.i in turn correspond to a set of equivalent status variables s.sub.1, . . . , s.sub.i defined in the interaction language.
[0104] According to the invention, the at least one control module is further configured in such a way that, with respect to a status variable s.sub.1, . . . , s.sub.i of the interaction language, at least one inverse control function f.sub.i.sup.−1, . . . , f.sub.i.sup.−1 is generated in each case, which is designed to transform or map a corresponding status variable S.sub.1, . . . , S.sub.i of the machine K.sub.i into the associated status variable s.sub.1, . . . , s.sub.i of the interaction language.
[0105] Here, too, the generation of the inverse control function follows the approach according to the invention of mapping the communication between the machine language and the interaction language as a process computing model, with corresponding algorithms being stored in the control module for this purpose.
[0106] Both the outward transformation with respect to a controlled variable via the generation of a control function f.sub.i and the backward transformation with respect to a status variable, which can have a functional relationship with the controlled variable, via the generation of an inverse control function f.sub.i.sup.−1 produce a uniform abstraction at the interface to the interaction language across all machines K.sub.i to be controlled, preferably of one class. The output of the information thus obtained (position reached, temperature, etc.) can be communicated to the user via a suitably designed display module DM.
[0107] According to the invention, the user therefore needs only one interaction language with a defined command set to control or communicate with machines, components and/or machine assemblies. The interaction language is preferably designed to be user-friendly and easy to understand, e.g., via an app control on a graphical user interface, and is independent and autonomous in relation to all machine languages of the machines to be controlled.
[0108] The system according to the invention is therefore designed to achieve abstraction across all different machine languages by means of predetermined algorithms implemented in the system, by taking into account all possible virtual and/or actual parameters related to the process computing model realized by these algorithms, such as controlled variables, status variables as well as possible disturbance variables (e.g., latencies).
[0109] In a preferred embodiment, however, the system is used to control a preferably potentially heterogeneously distributed collective of machines, components, or units.
[0110]
[0111] Each machine K.sub.i to K.sub.9 experiences a state change Z.sub.i to Z.sub.9, which occurs in the course of the control.
[0112] The machines themselves do not have to be functionally related and can also be located at different places. However, they can also work together without having to have compatible machine languages, for example in the context of a common production plant, which is exemplarily represented by the arrows A, B. For example, the machine K.sub.8 can be a machine tool that is loaded by a robot K.sub.7, which removes workpieces from a conveyor K.sub.9 and returns them to it after machining.
[0113] Although the machines K.sub.7 to K.sub.9 themselves have different, mutually incompatible machine languages, the communication of the machines with each other, their control and, if necessary, also programming is carried out via the abstraction principle according to the method of the invention with the interaction language as a uniform command language for all machines K.sub.7 to K.sub.9.
[0114] However, the collective can also be several components of a single, independent machine which functionally interact, such as, for example, a robot arm K.sub.3 of one manufacturer which carries at its distal end a gripper mechanism K.sub.5 of another manufacturer, as this is exemplarily shown in
[0115]
[0116] Each machine K.sub.1 and K.sub.2 comprises a set of command variables (R.sub.1, . . . , R.sub.i) K.sub.1 and (R.sub.1, . . . , R.sub.i) K.sub.2 in their own machine language. Likewise, a set of status variables (S.sub.1, . . . , S.sub.i)K.sub.1 and (S.sub.1, . . . , S.sub.i)K.sub.2 is assigned to each machine K.sub.1 and K.sub.2, which are already present (e.g., existing temperature) or are only set by a state change as a result of the control (e.g., then changed temperature).
[0117] According to the invention, therefore, a corresponding set F.sub.1 of control functions f.sub.1-f.sub.i for the machine K.sub.1 and set F.sub.2 of control functions f.sub.1-f.sub.i for the machine K.sub.2 is generated with respect to each controlled variable and a corresponding set F.sub.1.sup.−1 of inverse control functions f.sub.1.sup.−1-f.sub.i.sup.−1 for the machine K.sub.1 and F.sub.2.sup.−1 of inverse control functions f.sub.1.sup.−1-f.sub.i.sup.−1 for the machine K.sub.2 is generated with respect to each status variable, as previously explained in connection with
[0118] This allows a uniform abstraction to be realized across all machine classes or types and their machine languages.
[0119] The generation of the individual control functions is possible through predefined and/or adaptable and/or via (Deep) Learning algorithms, which are implemented in the control module (software, computing kernel). This creates a formal interaction model, i.e., a type of interaction control, with which the user can actuate different machines, which are inevitably incompatible with each other in terms of their machine language, individually, i.e., asynchronously, or synchronously, so that these machines are integrated in a higher process context, as would be the case, for example, in a production plant consisting of different machines.