SYSTEM AND METHOD FOR COMPUTERIZED PROGRAMING OF A CONTROLLER OF AN INDUSTRIAL SYSTEM
20250199497 ยท 2025-06-19
Assignee
Inventors
Cpc classification
G05B2219/23258
PHYSICS
G05B2219/23291
PHYSICS
International classification
Abstract
Disclosed are a computerized system and a method of programing a controller of an industrial system. The method may include: receiving, from the controller, data defining two or more controllable elements included in the industrial system; generating logical connections between the two or more controllable elements based on the received data and the graphical presentation; receiving, from a user interface included in the computerized system, one or more graphical markers presenting an operation sequence of the two or more controllable elements; and converting the graphical markers to an executable code configured to control a controller of the industrial system to control the two or more controllable elements according to the operation sequence.
Claims
1-22. (canceled)
23. A method of generating codes for controlling an industrial system, the method comprising: (A) receiving data defining two or more controllable elements included in the industrial system; (B) receiving a graphical presentation of the two or more controllable elements; (C) generating logical connections between the two or more controllable elements based on the received data and the graphical presentation; (D) presenting the two or more controllable elements and the generated at least one logical connection on a screen included in a user interface; (E) receiving, from the user interface, one or more graphical markers defining at least one operation sequence of the two or more controllable elements, operating in a flow route passing through the two or more controllable elements; (F) saving the at least one operation sequence in a lookup table, comprising a plurality of operation sequences; and (G) converting the at least one operation sequence, defined by the received graphical markers, to an executable code configured to automatically program a controller of the industrial system to control the two or more controllable elements according to the at least one operation sequence.
24. The method according to claim 23, wherein the lookup table has a respective operation sequence definition corresponding to each received graphical marker and to each operation sequence.
25. The method according to claim 24, wherein the respective operation sequence definition comprises one or more operational parameters associated with the each operation sequence.
26. The method according to claim 23, further comprising: (H) receiving, from the user interface, a definition whether multiple operation sequences are to be executed in parallel or sequentially, and whether there should be a delay between executions of the multiple operation sequences, wherein the definition comprises by at least one of: (1) a graphical definition; and (2) a definition in the lookup table.
27. The method according to claim 23, wherein a controllable element is included in a particular operation sequence of the at least one operation sequence, the method further comprising: (I) receiving, from the user interface, a value of at least one operating parameter associated with operating the controllable element within the particular operation sequence.
28. The method according to claim 23, the method further comprising: (J) define an expected behavior of the at least one operation sequence, (K) collect information from two or more controllable elements regarding the performance of the at least one operation sequence during a time period; and (L) responsive to a determination that the performance deviates from the expected behavior, send an alert.
29. The method according to claim 23, the method further comprising: (M) determine the state and/or status of each controllable element to be operated to perform the at least one operation sequence; and (N) generate one or more codes configured to control the each controllable element to be in a required state and/or status, required in order to initiate the at least one operation sequence.
30. The method according to claim 23, wherein the operation sequence is configured to perform a predetermined task, the method further comprising: (O) selecting, automatically, a specific look table, of a plurality of lookup tables, the specific lookup table configured to perform the predetermined task.
31. A system for generating codes for controlling an industrial system, comprising: a user interface; and a controller configured to perform the following: (A) receive data defining two or more controllable elements included in the industrial system; (B) receive a graphical presentation of the two or more controllable; (C) generate logical connection between the two or more controllable elements based on the received data and the graphical presentation; (D) present the two or more controllable elements and the generated at least one logical connection on a screen included in the user interface; (E) receive, from the user interface, one or more graphical markers defining at least one operation sequence of the two or more controllable elements, operating in a flow route passing through the two or more controllable elements; (F) save the at least one operation sequence in a lookup table, comprising a plurality of operation sequences; and (G) convert the at least one operation sequence, defined by the received graphical markers, to an executable code configured to automatically program a controller of the industrial system to control the two or more controllable elements according to the at least one operation sequence.
32. The system according to claim 31, wherein the lookup table has a respective operation sequence definition corresponding to each received graphical marker and to each operation sequence.
33. The system according to claim 32, wherein the respective operation sequence definition comprises one or more operational parameters associated with the each operation sequence.
34. The system according to claim 33, wherein the one or more operational parameters comprise at least one of: i. a storage time; ii. at least one pump speed; iii. a required temperature; iv. an indication whether to empty a controllable element when done; v. a required conductivity; and vi. parameters associated with at least one controllable element of the at least two controllable elements.
35. The system according to claim 31, wherein the controller is configured to further perform the following: (H) receiving, from the user interface, an indication to use a specific look table, of a plurality of lookup tables.
36. The system according to claim 31, wherein the controller is configured to further perform the following: (I) receiving, from the user interface, a definition whether multiple operation sequences are to be executed in parallel or sequentially, and whether there should be a delay between executions of the multiple operation sequences, wherein the definition comprises by at least one of: (1) a graphical definition; and (2) a definition in the lookup table.
37. The system according to claim 31, wherein a controllable element is included in a particular operation sequence of the at least one operation sequence, wherein the controller is configured to further perform the following: (J) receiving, from the user interface, a value of at least one operating parameter associated with operating the controllable element within the particular operation sequence.
38. The system according to claim 31, wherein the controller is configured to further perform the following: (K) define an expected behavior of the at least one operation sequence, (L) collect information from two or more controllable elements regarding the performance of the at least one operation sequence during a time period; and (M) responsive to a determination that the performance deviates from the expected behavior, send an alert.
39. The system according to claim 31, wherein the controller is configured to further perform the following: (N) determine the state and/or status of each controllable element to be operated to perform the at least one operation sequence; and (O) generate one or more codes configured to control the each controllable element to be in a required state and/or status, required in order to initiate the at least one operation sequence.
40. The system according to claim 31, wherein the controller is further configured to perform the following: (P) receive a request to manufacture a specific product, using the industrial system; and (Q) update the at least one operation sequence to perform the manufacturing of the specific product.
41. The system according to claim 31, wherein the controller is further configured to perform the following: (R) automatically program the controller of the industrial system with the executable code.
42. The system according to claim 31, wherein the operation sequence is configured to perform a predetermined task, wherein the controller is further configured to perform the following: (S) selecting, automatically, a specific look table, of a plurality of lookup tables, the specific lookup table configured to perform the predetermined task.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0010] The subject matter regarded as the invention is particularly pointed out and distinctly claimed in the concluding portion of the specification. The invention, however, both as to organization and method of operation, together with objects, features, and advantages thereof, may best be understood by reference to the following detailed description when read with the accompanying drawings in which:
[0011]
[0012]
[0013]
[0014]
[0015] It will be appreciated that for simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference numerals may be repeated among the figures to indicate corresponding or analogous elements.
DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION
[0016] In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the invention. However, it will be understood by those skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, and components, modules, units and/or circuits have not been described in detail so as not to obscure the invention. Some features or elements described with respect to one embodiment may be combined with features or elements described with respect to other embodiments. For the sake of clarity, discussion of same or similar features or elements may not be repeated.
[0017] Although embodiments of the invention are not limited in this regard, discussions utilizing terms such as, for example, processing, computing, calculating, determining, establishing, analyzing, checking, or the like, may refer to operation(s) and/or process(es) of a computer, a computing platform, a computing system, or other electronic computing device, that manipulates and/or transforms data represented as physical (e.g., electronic) quantities within the computer's registers and/or memories into other data similarly represented as physical quantities within the computer's registers and/or memories or other information non-transitory storage medium that may store instructions to perform operations and/or processes. Although embodiments of the invention are not limited in this regard, the terms plurality and a plurality as used herein may include, for example, multiple or two or more. The terms plurality or a plurality may be used throughout the specification to describe two or more components, devices, elements, units, parameters, or the like. The term set when used herein may include one or more items. Unless explicitly stated, the method embodiments described herein are not constrained to a particular order or sequence. Additionally, some of the described method embodiments or elements thereof can occur or be performed simultaneously, at the same point in time, or concurrently.
[0018] Some aspects of the invention may be related to a system and method that may allow any user to generate codes for programing a controller (e.g., a Programmable Logic Controller (PLC)) of an industrial system. The user, that does not need to be a professional programmer, may use a simple and friendly graphical user interface (GUI) for defining various operation sequence. For example, if a cleaning sequence of a tank in the industrial system is to be performed (e.g., a cleaning sequence that was not previously programmed into the PLC system) a shift manager may use a GUI of a system according to embodiments of the invention to define the cleaning sequence. The system may than convert the defined cleaning sequence into a PLC code and automatically program the controller to perform the cleaning sequence. The system may further allow the user to conduct an offline simulation of the operation sequence prior to converting the sequence into a code.
[0019] A system according to embodiments of the invention may receive a graphical presentation of the industrial system and data that includes a definition and the operation parameters of each device or elements. The system may than generate a plan of the industrial system that includes the devices and controllable elements. For each element and controllable element, the system may further generate connection points that define the way the particular device/element can be connected to other devices/elements of the system. This plan can be graphically presented to the user that may further use simple graphical tools to program the PLC controller as disclosed herein.
[0020] Reference is made to
[0021] Operating system 115 may be or may include any code segment (e.g., one similar to executable code 125 described herein) designed and/or configured to perform tasks involving coordinating, scheduling, arbitrating, supervising, controlling or otherwise managing operation of computing device 100, for example, scheduling execution of software programs or enabling software programs or other modules or units to communicate.
[0022] Memory 120 may be or may include, for example, a Random Access Memory (RAM), a read only memory (ROM), a Dynamic RAM (DRAM), a Synchronous DRAM (SD-RAM), a double data rate (DDR) memory chip, a Flash memory, a volatile memory, a non-volatile memory, a cache memory, a buffer, a short term memory unit, a long term memory unit, or other suitable memory units or storage units. Memory 120 may be or may include a plurality of, possibly different memory units. Memory 120 may be a computer or processor non-transitory readable medium, or a computer non-transitory storage medium, e.g., a RAM.
[0023] Executable code 125 may be any executable code, e.g., an application, a program, a process, task or script. Executable code 125 may include any tasks, codes and instructions to perform methods according to some embodiments of the invention, for example, a method of generating codes for programing a controller of an industrial system (e.g., the method of
[0024] Storage 130 may be or may include, for example, a hard disk drive, a universal serial bus (USB) device or other suitable removable and/or fixed storage unit. In some embodiments, some of the components shown in
[0025] Input devices 135 may be or may include a keyboard, a touch screen or pad, one or more sensors or any other or additional suitable input device. Any suitable number of input devices 135 may be operatively connected to computing device 100. Output devices 140 may include one or more displays or monitors and/or any other suitable output devices. Any suitable number of output devices 140 may be operatively connected to computing device 100. Any applicable input/output (I/O) devices may be connected to computing device 100 as shown by blocks 135 and 140. For example, a wired or wireless network interface card (NIC), a universal serial bus (USB) device or external hard drive may be included in input devices 135 and/or output devices 140. In some embodiments, both input device 135 and output device 140 may be included in a single GUI.
[0026] Embodiments of the invention may include an article such as a computer or processor non-transitory readable medium, or a computer or processor non-transitory storage medium, such as for example a memory, a disk drive, or a USB flash memory, encoding, including or storing instructions, e.g., computer-executable instructions, which, when executed by a processor or controller, carry out methods disclosed herein. For example, an article may include a storage medium such as memory 120, computer-executable instructions such as executable code 125 and a controller such as controller 105. Such a non-transitory computer readable medium may be for example a memory, a disk drive, or a USB flash memory, encoding, including or storing instructions, e.g., computer-executable instructions, which when executed by a processor or controller, carry out methods disclosed herein. The storage medium may include, but is not limited to, any type of disk including, semiconductor devices such as read-only memories (ROMs) and/or random access memories (RAMs), flash memories, electrically erasable programmable read-only memories (EEPROMs) or any type of media suitable for storing electronic instructions, including programmable storage devices. For example, in some embodiments, memory 120 is a non-transitory machine-readable medium.
[0027] A system according to embodiments of the invention may include components such as, but not limited to, a plurality of central processing units (CPU), GPUs, or any other suitable multi-purpose or specific processors or controllers (e.g., controllers similar to controller 105), a plurality of input units, a plurality of output units, a plurality of memory units, and a plurality of storage units. A system may additionally include other suitable hardware components and/or software components. In some embodiments, a system may include or may be, for example, a personal computer, a desktop computer, a laptop computer, a workstation, a server computer, a network device, or any other suitable computing device.
[0028] Reference is now made to
[0029] Industrial system 200 may include two or more controllable elements, for example, tanks 210, 212 and 214, a pump 220, valves 240, 242 and 244 and tap 230. In some embodiments, at least some of the elements of system 200 may be controlled by controller 201 (e.g., a PLC controller). As should be understood by one skilled in the art, the elements shown in
[0030] In some embodiments, controller 201 may be configured to communicate, either wirelessly or by wired communication with communication unit 145 of device 100. In some embodiments, controller 201 may receive PLC or similar codes to be automatically programmed into controller 201, from device 100 via communication unit 145. In some embodiments, controller 201 may include software modules of each of controllable elements included in system 200. Each software module may include, parameters and instructions for operating the controllable element. For example, a software module for a valve (e.g., valves 240, 242 and 242) may include instructions to open or close the valve, a duration from opening to closure, the aperture of opening the valve in order to control the flowrate and the like. In case the valve is coupled to a sensor (e.g., a thermometer, a barometer, a flowmeter and the like), the software module may include instructions to open the valve only when a property (e.g., temperature) sensed by the sensor reached a threshold value (e.g., 85 C.) or goes below a threshold value (e.g., when pressure sensed by a barometer in a tank goes under 2 bar).
[0031] Reference is now made to
[0032] In step 310, a code may be programed to the software module of each one of the two or more controllable elements. Controller (e.g., 105 in
[0033] In step 315, a graphical presentation of the two or more controllable elements may be received. For example, controller 105 may receive from an HMI module 205 associated with controller 201 graphical presentation of the two or more controllable elements, as illustrated in
[0034] In step 320, logical connections between the two or more controllable elements may be generated based on the received data and the graphical presentation. Controller 105 may analyze the data received from controller 201 (and optionally also from a database stored in a remote or in premises storage, such as storage 130) and the graphical presentation to determine the location and number of connection points for each controllable element. In some embodiments, generating logical connection between the two or more controllable elements may include identifying the connection points of each controllable element, form the graphical presentation, for example by identifying using an image analysis the entrances and exits from the controllable element. For example, a drain may have a single connection point (e.g., entrance), a valve may have two or more connection points (at least one entrance and at least one exit) and a centrifugal separator may have three or more connection points, an entrance and at least two exits for the separated products. In some embodiments, generating logical connection may further include defining a flow direction between at least two of the identifying connection points, based on the received data, for example, based on inputs received from a user or data received from a database.
[0035] In some embodiments, a graphical model of the industrial system may be received, for example, form a database. The graphical model may be generated using an CAD software and may be received using any known graphical format, PDF, TIF, GIF, DWG, etc. In some embodiments, the logical connections may also be generated based on the graphical presentation of the industrial system. For example, controller 105 may analyzed the connection between the controllable elements included in the graphical presentation to determine at least one of: the connection points and the flow direction between points.
[0036] For example, a GUI or HMI included in system 100 may display the graphical model of industrial system 200 to a user, the user may use a pointing device (e.g., a mouse, a finger or a stylus on a touchscreen and the like) to logically connect two controllable elements, for example, as illustrated in
[0037] In step 330, a graphical presentation of the industrial system that includes the two or more controllable elements and the connection points for each element may be displayed on a display (e.g., output device 140), as illustrated in
[0038] In step 335, one or more graphical markers (e.g., lines, stars, circles, letters, etc.) presenting an operation sequence of the two or more controllable elements may be received from a user interface. In some embodiments, the user may use any pointing device (e.g., a mouse, a finger/pen on a touchscreen and the like) to connect two or more controllable elements, by for example, drawing a line from the one connecting point of a first element to a connecting point of a second element, as illustrated in
[0039] Referring back to
[0040] The user may define either graphically or in each table if the operation sequences defined by the first and second draw lines are to be executed in parallel, sequentially, with a delay and the like. In some embodiments, one or more additional graphical markers presenting one of: operation sub-sequences and operation parameters of the two or more controllable elements may be received from a user interface. For example, sub-sequences of a specific controllable element, for example, tank 210, may be received. The user may select (e.g., form a popup menu) a sub-sequence that includes for example, heating the liquid in tank 210 to 80 C. and increasing the pressure inside tank 210 to 2 bars prior to the opening of valve 240. In some embodiments, if an element is selected to be included in the operation sequences at least some of the parameters for operating the element can be selected by the user (e.g., form a popup menu). For example, if a valve is controlled by a sensor (e.g., a barometer) the user may select at which pressure to open the valve.
[0041] In some embodiments, the operation sequence may be configured to perform a predetermined task, for example, cleaning tank 214. Accordingly, all the various steps/operations defined may result in the cleaning of tank 214.
[0042] In step 340, the graphical markers may be converted to an executable code configured to automatically program the controller to control the two or more controllable elements according to the operation sequence. In some embodiments, controller 105 may convert one or more operation sequences defined by the graphical markers (e.g., the first and second draw lines) into PLC codes configured to program controller 201. In some embodiments, the converted operation sequence may further be uploaded to the UMI module associated with controller 201. Therefore, when system 200 is operated according to the one or more operation sequences, the UMI module may display the real-time operation on a display associated with controller 201, or any other display.
[0043] In some embodiments, prior to executing the code converted from the graphical markers, controller 105 and/or controller 201 may determine the state and/or status of each controllable element to be operated to perform the operation sequence. For example, controller 105 and/or controller 201 may identify the flow direction of a valve, the level and type of fluid in a tank, whether a pump is operating or not and the like. In some embodiments, controller 105 and/or controller 201 may generate one or more codes (e.g., PLC codes) that may control each element to be in state and/or status required in order to initiate the operation sequence.
[0044] In some embodiments, a specific product may be manufactured by industrial system 200. Accordingly, controller 105/controller 201 may receive a request to manufacture the specific product, using industrial system 200. In some embodiments, the request may include: a definition of one of a number of units of a specific product or a predetermined amount (e.g., volume, weight, etc.) of the specific product; and a list and amounts of at least one of: ingredients and components for manufacturing the specific product. In some embodiments, the operation sequence may be amended or updated to manufacture the specific products. For example, the specific product may be 100 litters of ready to drink herbal tea and the request may include the amount (e.g., in Kg.) of different herbs, the amount of water (e.g., in litters), the amount of sweetener and the like. In some embodiments, the operation sequence may be updated with the instructions required for producing the herbal tea.
[0045] In some embodiments, the computerized method of
[0046] In some embodiments, controller 201 of the industrial system may be automatically programmed with the executable code. Controller 105 may provide, e.g., via communication unit 145, the executable code to controller 201 together with a code instructing controller 201 reprogram the software modules of the two or more controllable elements to execute the one or more operation sequences.
[0047] In some embodiments, one or more lookup tables may be created (e.g., the lookup table illustrated in
[0048] In some embodiments, controller 105 may work online or offline from controller 201 and system 200. Controller 105 may perform steps 315-340 offline, while not being connected to controller 201. Accordingly, the simulation step may also be conducted offline and only after achieving the required result (the optimized operation) controller 105 may be reconnected to controller 201 (via unit 145) to upload the executable code.
[0049] In some embodiments, controller 105 may continuously be connected to controller 201 and system 200 for collecting information and data from the various controllable elements, for example, for conducting quality control. In some embodiments, controller 105 may collected data regarding the performance of each operation sequence during a period of time. Controller 105 may define a typical or expected behavior of each operation sequence, for example, the expected time for the operation of each sequence, average temperature, average pressures and the like. Controller 105 may send an alert each time there is a deviation from the expected behavior (under defined margins). Controller 105 may further continuously present the collected data, on a display included in output device 140.
[0050] While certain features of the invention have been illustrated and described herein, many modifications, substitutions, changes, and equivalents may occur to those skilled in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the true spirit of the invention.
[0051] Various embodiments have been presented. Each of these embodiments may of course include features from other embodiments presented, and embodiments not specifically described may include various features described herein.