WO2024024264A1 - コントロールシステム及び方法 - Google Patents
コントロールシステム及び方法 Download PDFInfo
- Publication number
- WO2024024264A1 WO2024024264A1 PCT/JP2023/020367 JP2023020367W WO2024024264A1 WO 2024024264 A1 WO2024024264 A1 WO 2024024264A1 JP 2023020367 W JP2023020367 W JP 2023020367W WO 2024024264 A1 WO2024024264 A1 WO 2024024264A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- program
- information
- control
- parameter set
- information program
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 24
- 230000004913 activation Effects 0.000 claims abstract description 31
- 238000012545 processing Methods 0.000 claims abstract description 28
- 230000008569 process Effects 0.000 claims description 21
- 230000010365 information processing Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 26
- 230000006870 function Effects 0.000 description 19
- 230000002093 peripheral effect Effects 0.000 description 11
- 238000010801 machine learning Methods 0.000 description 5
- 238000007689 inspection Methods 0.000 description 4
- 230000002085 persistent effect Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 238000011179 visual inspection Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
Definitions
- the present invention generally relates to control technology.
- Patent Document 1 a control system disclosed in Patent Document 1 is known.
- This control system has a control device, and a control program and an information program are executed in the control device.
- control device may be an industrial control device, and the device to be controlled by the control device may be, for example, industrial equipment such as an industrial motor or a compressor.
- a control program in the control device controls such a controlled device. Specifically, for example, the control program performs a scan process, which is a process that controls the controlled device and is a process that has real-time characteristics, within the control cycle for each control cycle determined for the control program.
- the information program performs information processing determined for the information program.
- the control device may be called a sequence control device, motion control device, or programmable logic controller (PLC).
- the control program in the control device typically includes ladder logic (LD language), sequential function chart (SFC language), function block (FBD language), structured text (ST language), and instruction list (
- LD language ladder logic
- SFC language sequential function chart
- BFD language function block
- ST language structured text
- instruction list The control contents are written in a control-specific programming language such as the IL language.
- a control program can be written that operates at least one of one or more information programs within a control cycle.
- the output activation signal typically must be associated with a parameter set (one or more parameters) used by the information program to be activated, and controls the parameter set for the activation signal. Must be read by the program. For these reasons, the amount of scan processing increases, the control cycle becomes longer, and the amount of control program description increases.
- a control system that controls one or more controlled devices includes one or more computing devices.
- One or more computing devices have a control program, one or more information programs, a management program, and a parameter set for each of the one or more information programs.
- the parameter set is one or more parameters necessary for that information program.
- the control program is a program that performs a scan process, which is a process that controls a controlled device and is a real-time process, within each control cycle determined for the control program.
- the information program is a program that performs information processing defined for the information program.
- the control program transmits a control command, which is a signal representing a code associated with an information program to be activated among one or more information programs, in a control period.
- the management program receives the control command and identifies the information program to be activated corresponding to the code represented by the received control command.
- the management program reads the parameter set of the information program to be activated, generates a activation signal in which the read parameter set is associated, and outputs the generated activation signal to the information program to be activated.
- FIG. 1 shows an example of a physical configuration of a system including a control system according to a first embodiment. 1 shows an example of a logical configuration of a control system according to a first embodiment. An example of a logical configuration of a control system according to a second embodiment is shown. An example of the logical configuration of a control system according to a third embodiment is shown.
- an "interface device” may be one or more interface devices.
- the one or more interface devices may be at least one of the following: - An I/O interface device that is one or more I/O (Input/Output) interface devices.
- the I/O interface device is an interface device for at least one of an I/O device and a remote display computer.
- the I/O interface device for the display computer may be a communication interface device.
- the at least one I/O device may be a user interface device, eg, an input device such as a keyboard and pointing device, or an output device such as a display device.
- - Communication interface equipment which is one or more communication interface devices.
- the one or more communication interface devices may be one or more of the same type of communication interface device (for example, one or more NICs (Network Interface Cards)) or two or more different types of communication interface devices (for example, one or more NICs (Network Interface Cards)). It may also be an HBA (Host Bus Adapter).
- HBA Hypervisor Adapter
- memory refers to one or more memory devices, typically a main storage device. At least one memory device in the memory may be a volatile memory device or a non-volatile memory device.
- persistent storage refers to one or more persistent storage devices.
- the persistent storage device is typically a non-volatile storage device (for example, an auxiliary storage device), and specifically, for example, an HDD (Hard Disk Drive) or an SSD (Solid State Drive).
- HDD Hard Disk Drive
- SSD Solid State Drive
- a “storage device” may be at least a memory and a persistent storage device.
- a "processor” refers to one or more processor modules.
- the at least one processor module is typically a microprocessor device such as a CPU (Central Processing Unit), but may be another type of processor device such as a GPU (Graphics Processing Unit).
- At least one processor device may be single-core or multi-core.
- the at least one processor module may be a processor core.
- processing may be explained using a program as the subject, but a program is executed by a processor and performs a prescribed process using a storage device and/or an interface device as appropriate.
- the subject of the processing may be a processor (or a device such as a controller having the processor).
- a program may be installed on a device, such as a computer, from a program source.
- the program source may be, for example, a program distribution server or a computer-readable (eg, non-transitory) recording medium.
- two or more programs may be realized as one program, or one program may be realized as two or more programs.
- processing may be explained using a function (for example, a function expressed as the "yyy" part) as the subject, but a function is realized by one or more computer programs being executed by a processor. It's okay to be.
- a function is realized by a program being executed by a processor, the specified processing is performed using a storage device and/or an interface device as appropriate, so the function may be implemented as at least a part of the processor. good.
- a process described using a function as a subject may be a process performed by a processor or a device having the processor.
- the description of each function is an example, and multiple functions may be combined into one function, or one function may be divided into multiple functions.
- FIG. 1 shows an example of the physical configuration of a system including a control system according to the first embodiment.
- a control system 109 is installed in the factory 10 where the controlled device 12 is located.
- the controlled device 12 is, for example, industrial equipment such as an industrial motor or a compressor.
- the factory 10 is an example of a site where the controlled device 12 is located.
- a management system 101 and a control system 109 are connected to a communication network 108 (eg, the Internet or WAN (Wide Area Network)).
- the control system 109 is connected, for example, to a communication network 19 (for example, a LAN (Local Area Network)) within the factory 10.
- a control system 109 can communicate with management system 101 via communication networks 19 and 108.
- the communication networks 108 and 19 are communication networks used during information communication processing performed by the information program (communication processing different from the processing in which the control program transmits control data to the controlled device 12 in the scan processing).
- a control system 109 and one or more I/O modules 119 are connected to a communication network 118 (eg, Ethernet).
- the communication network 118 is a communication network used to transmit control data to the controlled device 12 in control processing performed by the control program.
- the communication networks 19, 108, and 118 may be different networks, or two or more of the communication networks 19, 108, and 118 may be the same network.
- Peripheral device 120 may be a device such as a sensor or a media drive (eg, HDD or SSD).
- the I/O module 119 functions as a bus slot into which a peripheral device 120 is removably attached as needed.
- the controlled device 12 is connected to the I/O module 119 via or without the peripheral device 120 .
- the controlled device 12 and the I/O module 119 may be 1:1, 1:multiple, multiple:1, or multiple:multiple.
- some of the I/O modules 119 may be connected to the communication network 108 in addition to the communication network 118. In other words, some of the I/O modules 119 may be connected to a device that is shared by the control program and the information program. It may be.
- at least one I/O module 119 may be at least a part of a network I/F device and an I/O control device of at least one computing device 40.
- the management system 101 is an example of a higher-level system of the control system 109.
- the management system 101 includes an EPROM 201, a CPU 202, a main memory 203, a peripheral control device 205, a nonvolatile storage device 206, and a network I/F device 207.
- Management system 101 is connected to communication network 108 via network I/F device 207.
- the control system 109 includes one or more computing devices 40.
- Each computing device 40 includes an interface device, a storage device, and a processor connected thereto. All arithmetic devices 40 may have the same or different hardware configurations. Any of the arithmetic devices 40 may be a location where a control program is placed or a location where an information program is placed.
- the arithmetic device 40M is a main arithmetic device, a device where a control program is placed, and which can be a place where an information program is placed.
- Each of the computing devices 40E1 and 40E2 is an added computing device, and is a computing device that cannot be a location for a control program, but can be a location for an information program.
- the arithmetic device 40E may be reduced. In other words, the arithmetic device 40M alone may serve as the control system 109.
- the arithmetic device 40M may be referred to as the "control device 40M” and the arithmetic device 40E may be referred to as the "expansion device 40E.”
- the control system 109 depends on whether there is an expansion device 40E, what type of communication medium the expansion device 40E is connected to, and which computing device 40 the information program that communicates with the control program is placed in.
- the system configuration is different. In other words, the system configuration depends on the presence or absence of the expansion device 40E, the type of communication medium to which each of the control device 40M and expansion device 40E is connected, and the arithmetic device 40 where each application is placed.
- expansion device 40E1 is connected to communication network 118.
- the expansion device 40E2 is connected to the PIO bus 28 (an example of a bus) ("PIO" is an abbreviation for Programmed I/O).
- the PIO bus 28 may be a bus printed on the baseboard, and by connecting the control device 40M and the expansion device 40E2 to the baseboard, the control program executed by the control device 40M and the expansion device 40E2 are executed. Information programs may communicate (share) data via the PIO bus 28.
- the control device 40M includes the memory 169 (for example, the EPROM 208 and the main memory 210), the peripheral control device 212, the I/O control device 214, the nonvolatile storage device 215, the network I/F device 213, and the devices connected thereto. It is equipped with a CPU 209.
- the I/O control device 214 and network I/F device 213 are examples of interface devices.
- Memory 169 and nonvolatile storage device 215 are examples of storage devices.
- CPU 209 is an example of a processor.
- the peripheral control device 212 is connected to a network I/F device 213, an I/O control device 214, a nonvolatile storage device 215, and a bus 211.
- a memory 169 and a CPU 209 are also connected to this bus 211 .
- peripheral control device 212 devices 213, 215 and 214 are controlled.
- the EPROM 208 may store at least one of a control program and an information program in advance, or may store a program downloaded from a program source such as a program distribution server (not shown).
- the control system 109 is equipped with not only one control program and one information program, but also multiple control programs and/or multiple information programs by setting the resources that can be used by the control system 109 for each program. be able to.
- the CPU 209 reads the control program (and information program) stored in the EPROM 208 into the main memory 210 and executes it, thereby controlling the operation of the control program (and the information program). For example, the CPU 209 controls the plurality of peripheral devices 120 via the peripheral control device 212, the I/O control device 214, and the plurality of I/O modules 119 by executing a control program. Peripherals 120 may have a 1:1 correspondence with I/O modules 119. Further, the CPU 209 may be either a single core or a multi-core. One core may execute at least one application of one or more control programs and one or more information programs. Typically, one core may execute one control program, one control program and one or more information programs, or one or more information programs.
- the setting terminal 29 is connected to the control system 109 (for example, the control device 40M) via the communication network 19 (or not via the communication network 19).
- the setting terminal 29 is, for example, a computer (for example, a desktop, laptop, or tablet personal computer, or a smartphone) having an input device, a display device, an interface device, a storage device, and a processor connected thereto. .
- the setting terminal 29 may issue instructions and settings to the control system 109.
- the configuration terminal 29 may be part of the management system 101.
- each arithmetic device 40 includes an interface device, a storage device, and a processor connected thereto.
- the control device 40M is an example of a first arithmetic device.
- the expansion device 40E is an example of a second arithmetic device.
- the interface device of the control device 40M and the interface device of the expansion device 40E are communicably connected to each other, and signals are transmitted and received through these interface devices.
- FIG. 2 shows an example of the logical configuration of the control system 109.
- the control program 317 is executed by the CPU of the control device 40M.
- Control device 40M may be called a sequence control device, motion control device, or programmable logic controller (PLC).
- the control program 317 typically includes ladder logic (LD language), sequential function chart (SFC language), function block (FBD language), structured text (ST language), and instruction list (IL language). )
- the control contents are described in a control-specific programming language such as
- the control program 317 may be, for example, a program that performs sequence control.
- the control program 317 is a program that performs a scan process, which is a process that controls the controlled device 12 and is a real-time process, within each control cycle determined for the control program 317.
- the information program 312 is executed by the CPU of the expansion device 40E.
- the information program 312 is a program that performs information processing defined for the information program 312.
- the information program 312 is activated by a activation signal (calling signal) and operates (executes predetermined information processing).
- the expansion device 40E has multiple (or one) information programs 312.
- the control program 317 needs to output a signal specifying the information program 312 if there is an information program 312 to be activated in the control cycle, but it also needs to output a signal specifying the information program 312, and also reads out parameter sets necessary for the information program 312. There is no need to generate an activation signal (activation signal for the information program 312) associated with the parameter set. Therefore, even if the information program 312 is required to operate in the control period, an increase in the amount of scanning processing performed by the control program 317 can be suppressed.
- the control program 317 transmits a control command specifying a code associated with the information program 312 to be started among the plurality of (or one) information programs 312 in the control cycle. There is. For example, if the information program 312A is the information program to be activated, the control program 317 transmits a control signal specifying the code “100”, and if the information program 312B is the information program to be activated, the control program 317 transmits the control signal specifying the code “101”. It is designed to send the specified control signal.
- the control program 317 may refer to a table (not shown) to identify the code of the information program to be activated, or the code for each information program may be written in the control program 317.
- the information program 312 is executed not on the control device 40M where the control program 317 is executed, but on the expansion device 40E where the control program 317 is not executed, and the management program 311 is provided in the expansion device 40E.
- the management program 311 (a) receives a control command from the control program 317, (b) specifies the information program 312 corresponding to the code associated with the received control command, and (c) specifies the specified information. Reads the parameter set of the program 312, (d) generates a start signal associated with the read parameter set, and (e) outputs the generated start signal to the information program 312 specified in (b). do.
- the information program 312 may be composed of an application program and a container for the application program (an example of a program execution environment).
- the activation signal of the information program 312 may be a container activation signal associated with a parameter set
- the management program 311 may be a container activation program (for example, a script). Since the management program 311 starts the container, it is expected that, for example, the following will become unnecessary.
- the control program 317 sends the container port number in addition to the parameter set to the information program 312.
- the management program 311 has functions such as an I/F section (interface section) 316, a reading section 315, a generation section 314, and a management section 301.
- the I/F unit 316 receives the control command from the control program 317 and identifies from the lookup table 309 the information program 312 corresponding to the code associated with the received control command.
- Lookup table 309 is stored in the storage device (memory 169 or nonvolatile storage device 215) of expansion device 40E.
- the lookup table 309 represents a code and an ID (identification data) of the information program 312 corresponding to the code for each information program 312 that can be activated (in other words, for each code that can be associated with a control command).
- the ID of the information program 312 may be data that is an element of the generated activation signal (for example, the name of the information program 312), or may be a key used to specify the parameter set to be read from the parameter set group 313.
- the management program 311 may specify the information program 312 corresponding to the code associated with the control command by a method other than the method using the lookup table 309 (for example, the management program 311 may specify the information program 312 corresponding to the code associated with the control command).
- the value obtained by the program 311 may be the ID of the information program 312).
- the “code” of the information program 312 may be a control command (signal) transmitted from the control program 317, and the “ID” of the information program 312 may be the name of the information program 312. For example, assume that the code is "0x0100", the information program 312 corresponding to this code is the information program 312A, and its ID (name) is "Info.A".
- the management program 311 When the management program 311 receives a control command (signal) representing the code "0x0100", it specifies the ID "Info.A” corresponding to the code "0x0100” from the lookup table 309 and sends the activation signal of the information program 312A. includes the specified ID “Info.A” and the parameter set acquired for the information program 312A.
- the reading unit 315 reads the parameter set corresponding to the ID of the specified information program 312 from the parameter set group 313.
- a parameter set is one or more parameters.
- the parameter set group 313 is one or more parameter sets, and may be a configuration file for each information program 312, for example. Parameter sets may be described in the configuration file.
- the ID of the specified information program 312 may be used as a key to specify the configuration file.
- the parameter set group 313 is stored in the storage device of the expansion device 40E via or without the management program 311 (for example, the management unit 301).
- the generation unit 314 generates an activation signal associated with the read parameter set.
- the ID of the identified information program 312 may be used to generate the activation signal.
- the generation unit 314 outputs the generated activation signal to the identified information program 312.
- the identified information program is the information program 312A, so the activation signal is output to the information program 312A.
- the information program 312A is activated and operates. In this operation, the information processing described in the information program 312 is executed.
- the management unit 301 may not necessarily be provided.
- the management unit 301 may install, uninstall, and update the information program 312. For example, the following may be performed by the management unit 301.
- the source of the information program 312 may be any device, for example, a portable storage medium, the management system 101 (for example, a server) shown in FIG. 1, or the control device 40M.
- the management unit 301 receives an installation command for the information program 312T to be additionally activated in the expansion device 40E.
- the management unit 301 installs the information program 312T into the expansion device 40E.
- the management unit 301 receives the parameter set of the information program 312T, and adds the parameter set to the parameter set group 313.
- the management unit 301 receives the code and ID of the information program 312T, and adds the code and ID to the lookup table 309. - The management unit 301 receives an update command for the information program 312T. In response to the command, the management unit 301 updates the information program 312T. Further, when the configuration of the parameter set changes due to the update, the management unit 301 also updates the parameter set corresponding to the information program 312T among the parameter set group 313 (for example, replaces the parameter set). - The management unit 301 receives an uninstallation command for the information program 312T to be deleted and activated from the expansion device 40E.
- the management unit 301 In response to the command, the management unit 301 uninstalls the information program 312T from the expansion device 40E. Along with the deletion of the information program 312T, the management unit 301 deletes the parameter set of the information program 312T from the parameter set group 313. Furthermore, along with the deletion of the information program 312T, the management unit 301 may delete the code and ID of the information program 312T from the lookup table 309.
- control program 317 and the information program 312 may be executed on the same platform (same CPU (and memory)) such as the control device 40M
- the information program 312 is executed on the control device 40M (the control program The processing is executed on an expansion device 40E (another platform) which is a different computing device than the 317 platform.
- the management program 311 is executed in the same device as the device in which the information program 312 is executed (device having the information program 312).
- the management program 311 is also executed on the expansion device 40E. This reduces restrictions on the control device 40M, and therefore facilitates replacement of devices in the control system 109. Furthermore, it can be expected that the control program 317 can secure a larger amount of usable resources.
- a second embodiment will be described. At that time, differences with the first embodiment will be mainly explained, and explanations of common points with the first embodiment will be omitted or simplified.
- FIG. 3 shows an example of the logical configuration of the control system according to the second embodiment.
- the output device 320 is connected to at least one of the plurality of (or one) arithmetic devices 40 .
- the output device 320 may be a display device (for example, a liquid crystal display), but in this embodiment, it is one or more LEDs (Light Emitting Diodes) 313.
- the LED 313 may correspond to the information program 312.
- each information program 312 may be provided with one or more colored LEDs.
- the generation unit 314 of the management program 311 causes the output device 320 to perform output for notifying at least one of the following. (a) Is any information program 312 running? (b) Which information program 312 was activated? (c) Is the activated information program operating normally?
- At least one LED 313 may be turned on.
- the LED 313 corresponding to the activated information program 312 may be turned on.
- the activated information program 312 is operating normally, the first color LED 313 is turned on, and if the activated information program 312 is abnormal, the second color LED 313 is turned on. good.
- a third embodiment will be described. At that time, differences from the first and second embodiments will be mainly explained, and explanations of common points with the first and second embodiments will be omitted or simplified.
- FIG. 4 shows an example of the logical configuration of the control system according to the third embodiment.
- the I/F unit 316 of the management program 311 receives the processing result of the activated information program 312B from the information program 312B, and notifies the control program 317 of the processing result.
- the control program 317 that has received the processing result controls the controlled device 12 according to the processing result. In this way, the processing results of the information program 312 can be transmitted to the control program 317 through the management program 311, and thus the control program 317 can perform control based on the processing results.
- the notification destination of the processing result may be the control program 317, or instead of the control program 317, the information program in the control device 40M may be used.
- the processing result is transmitted through the shared memory in the control device 40M (shared memory in which information exchanged between the control program 317 and the information program is stored) (or through another medium).
- the control program 317 may also receive the information. Further, the user can judge from the display mode of the LED 313 whether the information program and other operations are normal.
- the control system 109 is configured to test the test target, and the expansion device 40E functions as the testing device.
- Various objects or services can be "inspected objects", and the data of the "inspected objects” is, for example, image data, sensor data (for example, vibration data or current data), or sound data.
- the object to be inspected is a product as an example of an object
- the "data to be inspected” is image data of the product, particularly image data of the external appearance of the product. It is an inspection device.
- a camera 401 photographs the product.
- Sensor 402 detects products flowing on the conveyor and passing a predetermined location.
- the information program 312A is a program that causes the camera 401 to take pictures
- the information program 312C is a program that learns a machine learning model for inspection (for example, a neural network that is an example of a deep learning model).
- the information program 312B is a program that performs inference (that is, product appearance inspection) using the learned machine learning model.
- "100" is recorded as a code corresponding to the information program 312B
- "101" is recorded as a code corresponding to the information program 312C
- "101" is recorded as a code corresponding to the information program 312A.
- 102'' is recorded.
- the parameter set of the information program 312C (program for executing learning) may include the number of learning images, the ID of the machine learning model, and the number of epochs. In this embodiment, the following control may be performed.
- the control program 317 transmits a control command associated with the code "101" to the management program 311 before starting the visual inspection.
- the management program 311 identifies the information program 312C corresponding to the code “101” and reads the parameter set of the information program 312.
- the management program 311 generates an activation signal (activation signal for the information program 312C) associated with the parameter set, and outputs the activation signal to the information program 312C to activate the information program 312C.
- the activated information program 312C as a learning unit, performs learning of a machine learning model using at least some parameters of the parameter set associated with the activation signal.
- control is performed for each control cycle. That is, the following (x) and (y) are performed every control cycle.
- (x) When a product is detected by the sensor 402, the control program 317 transmits a control command associated with the code “102” to the management program 311.
- the management program 311 identifies the information program 312A corresponding to the code "102”, reads the parameter set of the information program 312A, generates and outputs an activation signal (activation signal of the information program 312A) in which the parameter set is associated with the information program 312A. do.
- the information program 312A causes the camera 401 to photograph the product and acquires image data of the photographed product.
- the control program 317 transmits a control command associated with the code “100” to the management program 311.
- the management program 311 identifies the information program 312B corresponding to the code "100”, reads the parameter set of the information program 312B, generates and outputs a start signal (start signal of the information program 312B) in which the parameter set is associated with the information program 312B. do.
- the information program 312B uses the learned machine learning model to perform an external appearance inspection of the product represented by the image data acquired in (x).
- the information program 312B returns the result of the visual inspection to the management program 311, and the management program 311 transmits the result to the control program 317. If the result indicates an abnormality (that is, if the product is an abnormal product), the control program 317 causes an exclusion device (an example of a controlled device) to exclude the product from the conveyor.
- the inference program in the inference after learning, may also have an imaging function, and the imaging and inference may be executed simultaneously.
- the inference program may be an example of an information program, or may be a program that is not classified as an information program.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
- Stored Programmes (AREA)
Abstract
制御プログラムと情報プログラムを有するコントロールシステムが、管理プログラムと、情報プログラムのパラメータセットとを有する。制御プログラムは、スキャン処理(制御対象装置を制御する処理でありリアルタイム性を有する処理)を制御周期内に行うプログラムである。制御プログラムは、制御周期において、起動対象の情報プログラムに関連付けられた符号を表す信号である制御指令を送信する。管理プログラムは、制御指令を受信し、当該受信した制御指令が表す符号に対応した起動対象の情報プログラムを特定し、当該起動対象の情報プログラムのパラメータセットを読み出し、当該読み出されたパラメータセットを関連付けた起動信号を生成し、当該生成された起動信号を、起動対象の情報プログラムへ出力する。
Description
本発明は、概して、コントロール技術に関する。
例えば、特許文献1に開示のコントロールシステムが知られている。このコントロールシステムは、コントロール装置を有し、コントロール装置において、制御プログラムと情報プログラムが実行される。
コントロールシステムにおいて、コントロール装置は、産業用のコントロール装置でよく、コントロール装置の制御対象装置は、例えば、産業用モータやコンプレッサのような産業機器でよい。コントロール装置における制御プログラムは、そのような制御対象装置を制御する。具体的には、例えば、制御プログラムは、当該制御プログラムについて定められた制御周期毎に、制御対象装置を制御する処理でありリアルタイム性を有する処理であるスキャン処理を当該制御周期内に行う。情報プログラムは、当該情報プログラムについて定められた情報処理を行う。
コントロール装置は、シーケンス制御装置、モーション制御装置、又はプログラマブル・ロジック・コントローラ(PLC)と呼ばれてよい。コントロール装置における制御プログラムは、典型的には、ラダー・ロジック(LD言語)、シーケンシャル・ファンクション・チャート(SFC言語)、ファンクション・ブロック(FBD言語)、ストラクチャード・テキスト(ST言語)、インストラクション・リスト(IL言語)のような制御特有のプログラミング言語で制御内容が記述される。
一つ又は複数の情報プログラムのうちの少なくとも一つの情報プログラムを制御周期内に動作させるような制御プログラムを記述することができる。
しかし、情報プログラムを動作させるためには、当該情報プログラムの起動信号を生成し当該起動信号を当該情報プログラムへ出力する必要がある。また、出力される起動信号には、典型的には、起動対象の情報プログラムが使用するパラメータセット(一つ以上のパラメータ)が関連付けられていなければならず、起動信号のためのパラメータセットを制御プログラムが読み出す必要がある。これらの理由から、スキャン処理の量が増加し、故に、制御周期が長くなり、また、制御プログラムの記述量が増加する。
一つ又は複数の制御対象装置を制御するコントロールシステムが、一つ又は複数の演算装置を備える。一つ又は複数の演算装置が、制御プログラムと、一つ又は複数の情報プログラムと、管理プログラムと、一つ又は複数の情報プログラムの各々のパラメータセットとを有する。一つ又は複数の情報プログラムの各々について、パラメータセットは、当該情報プログラムに必要な一つ以上のパラメータである。制御プログラムは、当該制御プログラムについて定められた制御周期毎に、制御対象装置を制御する処理でありリアルタイム性を有する処理であるスキャン処理を当該制御周期内に行うプログラムである。一つ又は複数の情報プログラムの各々について、当該情報プログラムは、当該情報プログラムについて定められた情報処理を行うプログラムである。制御プログラムは、制御周期において、一つ又は複数の情報プログラムのうちの起動対象の情報プログラムに関連付けられた符号を表す信号である制御指令を送信する。管理プログラムは、制御指令を受信し、当該受信した制御指令が表す符号に対応した起動対象の情報プログラムを特定する。管理プログラムは、当該起動対象の情報プログラムのパラメータセットを読み出し、当該読み出されたパラメータセットを関連付けた起動信号を生成し、当該生成された起動信号を、起動対象の情報プログラムへ出力する。
本発明によれば、制御周期において情報プログラムの動作が必要であっても、制御プログラムのスキャン処理の量の増加を抑えることができる。
以下の説明では、「インターフェース装置」は、一つ以上のインターフェースデバイスでよい。当該一つ以上のインターフェースデバイスは、下記のうちの少なくとも一つでよい。
・一つ以上のI/O(Input/Output)インターフェースデバイスであるI/Oインターフェース装置。I/Oインターフェースデバイスは、I/Oデバイスと遠隔の表示用計算機とのうちの少なくとも一つに対するインターフェースデバイスである。表示用計算機に対するI/Oインターフェースデバイスは、通信インターフェースデバイスでよい。少なくとも一つのI/Oデバイスは、ユーザインターフェースデバイス、例えば、キーボード及びポインティングデバイスのような入力デバイスと、表示デバイスのような出力デバイスとのうちのいずれでもよい。
・一つ以上の通信インターフェースデバイスである通信インターフェース装置。一つ以上の通信インターフェースデバイスは、一つ以上の同種の通信インターフェースデバイス(例えば一つ以上のNIC(Network Interface Card))であってもよいし二つ以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
・一つ以上のI/O(Input/Output)インターフェースデバイスであるI/Oインターフェース装置。I/Oインターフェースデバイスは、I/Oデバイスと遠隔の表示用計算機とのうちの少なくとも一つに対するインターフェースデバイスである。表示用計算機に対するI/Oインターフェースデバイスは、通信インターフェースデバイスでよい。少なくとも一つのI/Oデバイスは、ユーザインターフェースデバイス、例えば、キーボード及びポインティングデバイスのような入力デバイスと、表示デバイスのような出力デバイスとのうちのいずれでもよい。
・一つ以上の通信インターフェースデバイスである通信インターフェース装置。一つ以上の通信インターフェースデバイスは、一つ以上の同種の通信インターフェースデバイス(例えば一つ以上のNIC(Network Interface Card))であってもよいし二つ以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
また、以下の説明では、「メモリ」は、一つ以上のメモリデバイスであり、典型的には主記憶デバイスでよい。メモリにおける少なくとも一つのメモリデバイスは、揮発性メモリデバイスであってもよいし不揮発性メモリデバイスであってもよい。
また、以下の説明では、「永続記憶装置」は、一つ以上の永続記憶デバイスである。永続記憶デバイスは、典型的には、不揮発性の記憶デバイス(例えば補助記憶デバイス)であり、具体的には、例えば、HDD(Hard Disk Drive)又はSSD(Solid State Drive)である。
また、以下の説明では、「記憶装置」は、メモリと永続記憶装置の少なくともメモリでよい。
また、以下の説明では、「プロセッサ」は、一つ以上のプロセッサモジュールである。少なくとも一つのプロセッサモジュールは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサデバイスであるが、GPU(Graphics Processing Unit)のような他種のプロセッサデバイスでもよい。少なくとも一つのプロセッサデバイスは、シングルコアでもよいしマルチコアでもよい。少なくとも一つのプロセッサモジュールは、プロセッサコアでもよい。
また、以下の説明では、プログラムを主語として処理を説明する場合があるが、プログラムは、プロセッサによって実行されることで、定められた処理を、適宜に記憶装置及び/又はインターフェース装置等を用いながら行うため、処理の主語が、プロセッサ(或いは、そのプロセッサを有するコントローラのようなデバイス)とされてもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な(例えば非一時的な)記録媒体であってもよい。また、以下の説明において、二つ以上のプログラムが一つのプログラムとして実現されてもよいし、一つのプログラムが二つ以上のプログラムとして実現されてもよい。
また、以下の説明では、機能(例えば「yyy」部と表現された機能)を主語として処理を説明する場合があるが、機能は、一つ以上のコンピュータプログラムがプロセッサによって実行されることで実現されてよい。プログラムがプロセッサによって実行されることで機能が実現される場合、定められた処理が、適宜に記憶装置及び/又はインターフェース装置等を用いながら行われるため、機能はプロセッサの少なくとも一部とされてもよい。機能を主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置が行う処理としてもよい。各機能の説明は一例であり、複数の機能が一つの機能にまとめられたり、一つの機能が複数の機能に分割されたりしてもよい。
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号のうちの共通部分を使用し、同種の要素を区別して説明する場合には、参照符号を使用することがある。
[第1の実施形態]
[第1の実施形態]
図1は、第1の実施形態に係るコントロールシステムを含むシステムの物理構成の一例を示す。
コントロールシステム109が、制御対象装置12がある工場10に設置される。制御対象装置12は、例えば、産業用モータやコンプレッサのような産業機器である。工場10は、制御対象装置12のある現場の一例である。
管理システム101及びコントロールシステム109が、通信ネットワーク108(例えば、インターネット又はWAN(Wide Area Network))に接続されている。コントロールシステム109は、例えば、工場10内の通信ネットワーク19(例えば、LAN(Local Area Network))に接続されている。コントロールシステム109が、通信ネットワーク19及び108経由で管理システム101と通信できる。通信ネットワーク108及び19は、情報プログラムが行う情報通信処理(制御プログラムがスキャン処理において制御対象装置12に制御データを送信する処理とは異なる通信処理)の際に使用される通信ネットワークである。
コントロールシステム109及び一つ以上のI/Oモジュール119(I/Oポートの一例)が通信ネットワーク118(例えば、イーサネット(登録商標))に接続されている。通信ネットワーク118は、制御プログラムが行う制御処理において制御データを制御対象装置12に送信するために使用される通信ネットワークである。
通信ネットワーク19、108及び118は、それぞれ異なるネットワークでもよいし、通信ネットワーク19、108及び118のうちの二つ以上の通信ネットワークが同一のネットワークでもよい。
一つ以上のI/Oモジュール119に一つ以上の周辺機器120が接続されている。周辺機器120は、センサやメディアドライブ(例えば、HDDやSSD)のような機器でよい。I/Oモジュール119は、周辺機器120が必要に応じて着脱可能に装着されるバススロットとして機能する。制御対象装置12は、周辺機器120経由又は非経由でI/Oモジュール119に接続される。制御対象装置12とI/Oモジュール119は、1:1、1:多、多:1及び多:多のいずれでもよい。また、一部のI/Oモジュール119は、通信ネットワーク118に加えて通信ネットワーク108に接続されてもよい、すなわち、当該一部のI/Oモジュール119は、制御プログラムと情報プログラムに共有のデバイスであってもよい。また、少なくとも一つのI/Oモジュール119は、少なくとも一つの演算装置40のネットワークI/F装置及びI/O制御装置の少なくとも一部でもよい。
管理システム101は、コントロールシステム109の上位システムの一例である。管理システム101は、EPROM201、CPU202、メインメモリ203、周辺制御装置205、不揮発性記憶装置206及びネットワークI/F装置207を備える。管理システム101は、ネットワークI/F装置207を介して通信ネットワーク108に接続されている。
コントロールシステム109は、一つ又は複数の演算装置40を備える。各演算装置40が、インターフェース装置、記憶装置及びそれらに接続されたプロセッサを備える。全ての演算装置40は、ハードウェア構成が同じでも異なっていてもよい。いずれの演算装置40も、制御プログラムの配置先にも情報プログラムの配置先にもなり得てよい。本実施形態では、演算装置40Mは、メインの演算装置であり、制御プログラムの配置先であり、且つ、情報プログラムの配置先となり得る演算装置である。演算装置40E1及び40E2の各々が、増設された演算装置であり、制御プログラムの配置先となり得ず、情報プログラムの配置先となり得る演算装置である。演算装置40Eは、減設されてもよい。言い換えれば、演算装置40M単体が、コントロールシステム109になることがあってもよい。以下、演算装置40Mを「コントロール装置40M」と言い、演算装置40Eを「拡張装置40E」と言うことがある。
拡張装置40Eが有るか否か、拡張装置40Eがいずれの種類の通信媒体に接続されるか、及び、制御プログラムと通信する情報プログラムがいずれの演算装置40に配置されるかによって、コントロールシステム109のシステム構成が異なる。つまり、システム構成は、拡張装置40Eの有無、コントロール装置40M及び拡張装置40Eの各々が接続される通信媒体の種類、及び、各アプリの配置先の演算装置40に依存する。図1の例では、拡張装置40E1は、通信ネットワーク118に接続される。拡張装置40E2は、PIOバス28(バスの一例)に接続される(「PIO」は、Programmed I/Oの略である)。PIOバス28は、ベースボードにプリントされたバスでよく、ベースボードにコントロール装置40Mと拡張装置40E2が接続されていることで、コントロール装置40Mで実行される制御プログラムと拡張装置40E2で実行される情報プログラムがPIOバス28経由でデータを通信(共有)してよい。
コントロール装置40Mを例に取り演算装置40のハードウェア構成を説明すると、例えば次の通りである。すなわち、コントロール装置40Mは、メモリ169(例えば、EPROM208及びメインメモリ210)、周辺制御装置212、I/O制御装置214、不揮発性記憶装置215、ネットワークI/F装置213、及び、それらに接続されたCPU209を備えている。I/O制御装置214及びネットワークI/F装置213が、インターフェース装置の一例である。メモリ169及び不揮発性記憶装置215が、記憶装置の一例である。CPU209がプロセッサの一例である。
周辺制御装置212は、ネットワークI/F装置213、I/O制御装置214、不揮発性記憶装置215及びバス211に接続されている。このバス211には、その他にもメモリ169及びCPU209が接続されている。周辺制御装置212を通じて、装置213、215及び214が制御される。
EPROM208には、予め制御プログラム及び情報プログラムの少なくとも一つが格納されていてもよいし、プログラム配布サーバ(図示せず)のようなプログラムソースからダウンロードされたプログラムが格納されてもよい。コントロールシステム109に搭載される制御プログラムと情報プログラムはそれぞれひとつずつだけでなく、コントロールシステム109が使用できるリソースをプログラムごとに設定することにより、複数の制御プログラム及び/又は複数の情報プログラムを搭載することができる。
CPU209は、EPROM208に格納されている制御プログラム(及び情報プログラム)をメインメモリ210に読み出して実行し、制御プログラム(及び情報プログラム)の動作を制御する。例えば、CPU209は、制御プログラムを実行することで、周辺制御装置212、I/O制御装置214及び複数のI/Oモジュール119を介して複数の周辺機器120を制御する。周辺機器120は、I/Oモジュール119に1:1で対応付けられていてよい。また、CPU209は、シングルコアとマルチコアのいずれでもよい。一つのコアが、一つ以上の制御プログラムと一つ以上の情報プログラムとのうちの少なくとも一つのアプリを実行してよい。典型的には、一つのコアは、一つの制御プログラム、一つの制御プログラムと一つ以上の情報プログラム、又は、一つ以上の情報プログラムを実行してよい。
設定端末29が、通信ネットワーク19を介して(又は通信ネットワーク19を介さずに)、コントロールシステム109(例えば、コントロール装置40M)に接続されている。設定端末29は、例えば、入力デバイス、表示デバイス、インターフェース装置、記憶装置及びそれらに接続されたプロセッサを有する計算機(例えば、デスクトップ型、ラップトップ型又はタブレット型のパーソナルコンピュータ、或いは、スマートフォン)である。設定端末29は、コントロールシステム109に対する指示や設定を行ってよい。設定端末29は、管理システム101の一部であってもよい。
以上のように、各演算装置40が、インターフェース装置、記憶装置及びそれらに接続されたプロセッサを備える。コントロール装置40Mは、第1の演算装置の一例である。拡張装置40Eは、第2の演算装置の一例である。コントロール装置40Mのインターフェース装置と拡張装置40Eのインターフェース装置が互いに通信可能に接続されており、それらのインターフェース装置を通じて、信号が送受信される。
図2は、コントロールシステム109の論理構成の一例を示す。
制御プログラム317は、コントロール装置40MのCPUにより実行される。コントロール装置40Mは、シーケンス制御装置、モーション制御装置、又はプログラマブル・ロジック・コントローラ(PLC)と呼ばれてよい。制御プログラム317は、典型的には、ラダー・ロジック(LD言語)、シーケンシャル・ファンクション・チャート(SFC言語)、ファンクション・ブロック(FBD言語)、ストラクチャード・テキスト(ST言語)、インストラクション・リスト(IL言語)のような制御特有のプログラミング言語で制御内容が記述される。制御プログラム317は、例えば、シーケンス制御を行うプログラムでよい。制御プログラム317は、当該制御プログラム317について定められた制御周期毎に、制御対象装置12を制御する処理でありリアルタイム性を有する処理であるスキャン処理を当該制御周期内に行うプログラムである。
情報プログラム312は、拡張装置40EのCPUにより実行される。情報プログラム312は、当該情報プログラム312について定められた情報処理を行うプログラムである。情報プログラム312は、起動信号(呼出し信号)により起動し、動作する(定められた情報処理を実行する)。拡張装置40Eは、複数(又は一つ)の情報プログラム312を有する。
コントロールシステム109において、制御プログラム317は、制御周期において、起動対象の情報プログラム312があれば当該情報プログラム312を指定した信号を出力する必要はあるが、情報プログラム312に必要なパラメータセットを読み出したり、当該パラメータセットを関連付けた起動信号(情報プログラム312の起動信号)を生成したりする必要が無い。このため、制御周期において情報プログラム312の動作が必要であっても、制御プログラム317のスキャン処理の量の増加を抑えることができる。
具体的には、制御プログラム317は、制御周期において、複数(又は一つ)の情報プログラム312のうちの起動対象の情報プログラム312に関連付けられた符号を指定した制御指令を送信するようになっている。例えば、制御プログラム317は、情報プログラム312Aが起動対象の情報プログラムであれば、符号“100”を指定した制御信号を送信し、情報プログラム312Bが起動対象の情報プログラムであれば符号“101”を指定した制御信号を送信するようになっている。制御プログラム317は、図示しないテーブルを参照して、起動対象の情報プログラムの符号を特定してもよいし、情報プログラム毎の符号が制御プログラム317に記述されていてもよい。
情報プログラム312が、制御プログラム317が実行されるコントロール装置40Mではなく、制御プログラム317が実行されない拡張装置40Eで実行されるようになっており、当該拡張装置40Eに、管理プログラム311が備えられる。管理プログラム311は、(a)制御指令を制御プログラム317から受信し、(b)当該受信した制御指令に関連付けられている符号に対応した情報プログラム312を特定し、(c)当該特定された情報プログラム312のパラメータセットを読み出し、(d)当該読み出されたパラメータセットを関連付けた起動信号を生成し、(e)当該生成された起動信号を、(b)で特定された情報プログラム312へ出力する。
情報プログラム312は、アプリケーションプログラムとそのアプリケーションプログラムのコンテナ(プログラムの実行環境の一例)とで構成されていてよい。情報プログラム312の起動信号は、パラメータセットが関連付けられたコンテナ起動用の信号でよく、管理プログラム311は、コンテナ起動用のプログラム(例えばスクリプト)でよい。管理プログラム311がコンテナを起動するので、一例として下記が不要になることが期待される。
・ユーザ定義の専用ネットワークを事前に作成すること。
・コンテナポートをコンテナホストのIPアドレス上に公開すること。
・制御プログラム317が、情報プログラム312へのパラメータセットの他に、コンテナポート番号を送付すること。
・ユーザ定義の専用ネットワークを事前に作成すること。
・コンテナポートをコンテナホストのIPアドレス上に公開すること。
・制御プログラム317が、情報プログラム312へのパラメータセットの他に、コンテナポート番号を送付すること。
管理プログラム311は、I/F部(インターフェース部)316、読出し部315、生成部314及び管理部301といった機能を有する。
I/F部316は、制御指令を制御プログラム317から受信し、受信した制御指令に関連付けられている符号に対応した情報プログラム312を、ルックアップテーブル309から特定する。ルックアップテーブル309は、拡張装置40Eの記憶装置(メモリ169又は不揮発性記憶装置215)に格納される。ルックアップテーブル309は、起動され得る情報プログラム312毎に(言い換えれば、制御指令に関連付けられ得る符号毎に)、符号と、その符号に対応した情報プログラム312のID(識別データ)とを表す。情報プログラム312のIDは、生成される起動信号の要素となるデータ(例えば、情報プログラム312の名前)でもよいし、読出し対象のパラメータセットをパラメータセット群313から特定するために用いられるキーとしてのデータでもよい。なお、管理プログラム311は、ルックアップテーブル309を用いる方法以外の方法により、制御指令に関連付けられている符号に対応した情報プログラム312を特定してよい(例えば、符号を用いた所定の演算を管理プログラム311が行うことにより得られた値が、情報プログラム312のIDでよい)。また、情報プログラム312の「符号」は、制御プログラム317から送信される制御指令(信号)でよく、情報プログラム312の「ID」は、情報プログラム312の名称でよい。例えば、符号が“0x0100”であり、この符号に対応する情報プログラム312が、情報プログラム312Aであるとし、そのID(名前)が、“Info.A”であるとする。管理プログラム311が、符号“0x0100”を表す制御指令(信号)を受信した場合、ルックアップテーブル309から、符号“0x0100”に対応するID“Info.A”を特定し、情報プログラム312Aの起動信号に、特定されたID“Info.A”、及び、情報プログラム312Aについて取得されたパラメータセットを含める。
読出し部315は、特定された情報プログラム312のIDに対応したパラメータセットをパラメータセット群313から読み出す。パラメータセットは、一つ以上のパラメータである。パラメータセット群313は、一つ以上のパラメータセットであり、例えば、情報プログラム312毎の設定ファイルでよい。設定ファイルに、パラメータセットが記述されていてよい。設定ファイルの特定に、特定された情報プログラム312のIDがキーとして用いられてよい。パラメータセット群313は、管理プログラム311(例えば管理部301)経由又は非経由で拡張装置40Eの記憶装置に格納される。
生成部314は、読み出されたパラメータセットを関連付けた起動信号を生成する。起動信号の生成では、特定された情報プログラム312のIDが使用されてよい。生成部314は、当該生成された起動信号を、当該特定された情報プログラム312へ出力する。図2が示す例では、特定された情報プログラムは、情報プログラム312Aであるため、起動信号が、情報プログラム312Aに出力される。当該起動信号に応答して、情報プログラム312Aが起動し、動作する。この動作において、情報プログラム312に記述された情報処理が実行される。
管理部301は必ずしも無くてもよい。管理部301は、情報プログラム312のインストール、アンインストール及びアップデートを行ってよい。例えば、下記が管理部301により行われてよい。なお、情報プログラム312のソースは、いずれの装置でもよく、例えば、可搬型の記憶媒体でもよいし、図1に示した管理システム101(例えばサーバ)でもよいし、コントロール装置40Mでもよい。
・管理部301が、拡張装置40Eに追加起動対象の情報プログラム312Tのインストール指令を受け付ける。当該指令に応答して、管理部301は、情報プログラム312Tを拡張装置40Eにインストールする。情報プログラム312Tの追加に伴い、管理部301は、情報プログラム312Tのパラメータセットを受け付け、当該パラメータセットをパラメータセット群313に追加する。また、情報プログラム312Tの追加に伴い、管理部301は、情報プログラム312Tの符号及びIDを受け付け、当該符号及びIDをルックアップテーブル309に追加する。
・管理部301が、情報プログラム312Tのアップデート指令を受け付ける。当該指令に応答して、管理部301は、情報プログラム312Tをアップデートする。また、当該アップデートに伴いパラメータセットの構成が変わる場合、管理部301は、パラメータセット群313のうち、情報プログラム312Tに対応したパラメータセットもアップデートする(例えば、パラメータセットを差し替える)。
・管理部301が、拡張装置40Eに削除起動対象の情報プログラム312Tのアンインストール指令を受け付ける。当該指令に応答して、管理部301は、情報プログラム312Tを拡張装置40Eからアンインストールする。情報プログラム312Tの削除に伴い、管理部301は、情報プログラム312Tのパラメータセットをパラメータセット群313から削除する。また、情報プログラム312Tの削除に伴い、管理部301は、情報プログラム312Tの符号及びIDをルックアップテーブル309から削除してよい。
・管理部301が、拡張装置40Eに追加起動対象の情報プログラム312Tのインストール指令を受け付ける。当該指令に応答して、管理部301は、情報プログラム312Tを拡張装置40Eにインストールする。情報プログラム312Tの追加に伴い、管理部301は、情報プログラム312Tのパラメータセットを受け付け、当該パラメータセットをパラメータセット群313に追加する。また、情報プログラム312Tの追加に伴い、管理部301は、情報プログラム312Tの符号及びIDを受け付け、当該符号及びIDをルックアップテーブル309に追加する。
・管理部301が、情報プログラム312Tのアップデート指令を受け付ける。当該指令に応答して、管理部301は、情報プログラム312Tをアップデートする。また、当該アップデートに伴いパラメータセットの構成が変わる場合、管理部301は、パラメータセット群313のうち、情報プログラム312Tに対応したパラメータセットもアップデートする(例えば、パラメータセットを差し替える)。
・管理部301が、拡張装置40Eに削除起動対象の情報プログラム312Tのアンインストール指令を受け付ける。当該指令に応答して、管理部301は、情報プログラム312Tを拡張装置40Eからアンインストールする。情報プログラム312Tの削除に伴い、管理部301は、情報プログラム312Tのパラメータセットをパラメータセット群313から削除する。また、情報プログラム312Tの削除に伴い、管理部301は、情報プログラム312Tの符号及びIDをルックアップテーブル309から削除してよい。
このように、情報プログラム312の追加や削除が可能であるが、本実施形態では、情報プログラム312が追加、更新又は削除されても、制御プログラム317の変更は実質的に不要である。このため、コントロールシステム109の機能の拡張や変更等が容易である。
制御プログラム317と情報プログラム312がコントロール装置40Mのような同一のプラットフォーム(同一のCPU(及びメモリ))において実行されてもよいが、本実施形態では、情報プログラム312が、コントロール装置40M(制御プログラム317のプラットフォーム)とは別の演算装置である拡張装置40E(別のプラットフォーム)で実行される。また、管理プログラム311は、情報プログラム312が実行される装置と同じ装置(情報プログラム312を有する装置)において実行される。本実施形態では、情報プログラム312が拡張装置40Eで実行されるため管理プログラム311も拡張装置40Eで実行される。これにより、コントロール装置40Mの制約が少なくなり、故に、コントロールシステム109における装置の入れ替えが容易となる。また、制御プログラム317が使用可能なリソース量をより多く確保することが期待できる。
[第2の実施形態]
[第2の実施形態]
第2の実施形態を説明する。その際、第1の実施形態との相違点を主に説明し、第1の実施形態との共通点については説明を省略又は簡略する。
図3は、第2の実施形態に係るコントロールシステムの論理構成の一例を示す。
複数(又は一つ)の演算装置40のうちの少なくとも一つの演算装置40に出力装置320が接続されている。出力装置320は、表示装置(例えば液晶ディスプレイ)でもよいが、本実施形態では、一つ以上のLED(Light Emitting Diode)313である。LED313が情報プログラム312に対応していてよい。例えば、情報プログラム312毎に、一又は複数色のLEDが備えられてよい。
管理プログラム311の生成部314が、下記のうちの少なくとも一つを知らしめるための出力を出力装置320に実行させる。
(a)いずれかの情報プログラム312が動作しているか。
(b)いずれの情報プログラム312が起動されたか。
(c)起動された情報プログラムが正常に動作しているか。
(a)いずれかの情報プログラム312が動作しているか。
(b)いずれの情報プログラム312が起動されたか。
(c)起動された情報プログラムが正常に動作しているか。
例えば、(a)は、少なくとも一つのLED313を点灯させることでよい。(b)は、起動された情報プログラム312に対応のLED313を点灯させることでよい。(c)は、起動された情報プログラム312が正常動作していれば第1の色のLED313を点灯させ、起動された情報プログラム312に異常があれば第2の色のLED313を点灯させることでよい。
これにより、コントロールシステム109における情報プログラム312の状態をユーザに知らしめることができる。また、拡張装置40Eがフリーズして動作していない場合などにユーザが容易にそのような状態を知ることができる。
[第3の実施形態]
[第3の実施形態]
第3の実施形態を説明する。その際、第1及び第2の実施形態との相違点を主に説明し、第1及び第2の実施形態との共通点については説明を省略又は簡略する。
図4は、第3の実施形態に係るコントロールシステムの論理構成の一例を示す。
管理プログラム311のI/F部316が、起動された情報プログラム312Bの処理結果を当該情報プログラム312Bから受け付け、当該処理結果を、制御プログラム317に通知する。当該処理結果を受けた制御プログラム317は、当該処理結果に応じて、制御対象装置12を制御する。このように、情報プログラム312の処理結果を管理プログラム311を通じて制御プログラム317に伝えることができ、以って、当該処理結果を基に制御プログラム317により制御を行うことができる。
制御プログラム317の他に情報プログラムがコントロール装置40Mにある場合、処理結果の通知先は、制御プログラム317でもよいし、制御プログラム317に代えて、コントロール装置40Mにおける情報プログラムでもよい。コントロール装置40Mにおける情報プログラムが処理結果を受けた場合、コントロール装置40Mにおける共有メモリ(制御プログラム317と情報プログラムがやり取りする情報が格納される共有メモリ)を通じて(又は別の媒体を通じて)、処理結果を制御プログラム317が受けてもよい。また、LED313の表示態様から、情報プログラムやその他の動作が正常であるかユーザが判断することができる。
なお、図4では、コントロールシステム109は、検査対象の検査を行うようになっており、拡張装置40Eが、検査装置として機能する。様々な物又はサービスを「検査対象」とすることができ、「検査対象」のデータは、例えば、画像データ、センサデータ(例えば、振動データや電流データ)、又は、音データである。本実施形態では、検査対象は、物の一例としての製品であり、「検査対象のデータ」は、製品の画像データ、特に、製品の外観の画像データであり、このため、検査装置は、外観検査装置である。カメラ401及びセンサ402がある。カメラ401は、製品を撮影する。センサ402は、コンベアを流れ所定の位置を通過する製品を検出する。
すなわち、例えば、情報プログラム312Aが、カメラ401により撮影をさせるプログラムであり、情報プログラム312Cが、検査のための機械学習モデル(例えば深層学習モデルの一例であるニューラルネットワーク)の学習を行うプログラムであり、情報プログラム312Bが、学習済の機械学習モデルを用いて推論(すなわち、製品の外観検査)を行うプログラムである。ルックアップテーブル309には、情報プログラム312Bに対応の符号として“100”が記録されており、情報プログラム312Cに対応の符号として“101”が記録されており、情報プログラム312Aに対応の符号として“102”が記録されている。また、例えば、パラメータセット群313において、情報プログラム312C(学習を実行させるプログラム)のパラメータセットは、学習画像枚数、機械学習モデルのID、及びエポック数を含んでいてよい。本実施形態では、下記の制御が行われてよい。
制御プログラム317が、外観検査の開始前に、符号“101”を関連付けた制御指令を管理プログラム311に送信する。管理プログラム311が、符号“101”に対応した情報プログラム312Cを特定し、当該情報プログラム312のパラメータセットを読み出す。管理プログラム311が、当該パラメータセットを関連付けた起動信号(情報プログラム312Cの起動信号)を生成し、当該起動信号を情報プログラム312Cへ出力することで、情報プログラム312Cを起動させる。起動した情報プログラム312Cが、学習部として、起動信号に関連付けられているパラメータセットの少なくとも一部のパラメータを用いて、機械学習モデルの学習を行う。
学習後、制御周期毎の制御が行われる。すなわち、制御周期毎に、下記の(x)及び(y)が行われる。
(x)制御プログラム317が、センサ402により製品が検出された場合、符号“102”を関連付けた制御指令を管理プログラム311に送信する。管理プログラム311が、符号“102”に対応した情報プログラム312Aを特定し、当該情報プログラム312Aのパラメータセットを読み出し、当該パラメータセットを関連付けた起動信号(情報プログラム312Aの起動信号)を生成して出力する。これにより、情報プログラム312Aが、カメラ401により製品を撮影させ、撮影された製品の画像データを取得する。
(y)次に、制御プログラム317が、符号“100”を関連付けた制御指令を管理プログラム311に送信する。管理プログラム311が、符号“100”に対応した情報プログラム312Bを特定し、当該情報プログラム312Bのパラメータセットを読み出し、当該パラメータセットを関連付けた起動信号(情報プログラム312Bの起動信号)を生成して出力する。これにより、情報プログラム312Bが、学習済の機械学習モデルを用いて、(x)において取得された画像データが表す製品の外観検査を行う。情報プログラム312Bが、当該外観検査の結果を管理プログラム311に返し、管理プログラム311が、その結果を制御プログラム317に送信する。制御プログラム317は、当該結果が異常を意味する結果であれば(つまり、製品が異常品であれば)、製品をコンベアから除外する除外装置(制御対象装置の一例)に、製品をコンベアから除外させる。
(x)制御プログラム317が、センサ402により製品が検出された場合、符号“102”を関連付けた制御指令を管理プログラム311に送信する。管理プログラム311が、符号“102”に対応した情報プログラム312Aを特定し、当該情報プログラム312Aのパラメータセットを読み出し、当該パラメータセットを関連付けた起動信号(情報プログラム312Aの起動信号)を生成して出力する。これにより、情報プログラム312Aが、カメラ401により製品を撮影させ、撮影された製品の画像データを取得する。
(y)次に、制御プログラム317が、符号“100”を関連付けた制御指令を管理プログラム311に送信する。管理プログラム311が、符号“100”に対応した情報プログラム312Bを特定し、当該情報プログラム312Bのパラメータセットを読み出し、当該パラメータセットを関連付けた起動信号(情報プログラム312Bの起動信号)を生成して出力する。これにより、情報プログラム312Bが、学習済の機械学習モデルを用いて、(x)において取得された画像データが表す製品の外観検査を行う。情報プログラム312Bが、当該外観検査の結果を管理プログラム311に返し、管理プログラム311が、その結果を制御プログラム317に送信する。制御プログラム317は、当該結果が異常を意味する結果であれば(つまり、製品が異常品であれば)、製品をコンベアから除外する除外装置(制御対象装置の一例)に、製品をコンベアから除外させる。
以上、幾つかの実施形態を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。例えば、第3の実施形態において、学習後の推論では、推論のプログラムが、撮像の機能も有していて、撮像と推論が同時に実行されるようになっていてよい。推論のプログラムは、情報プログラムの一例でもよいし、情報プログラムとして分類されないプログラムでもよい。
109…コントロールシステム
Claims (6)
- 一つ又は複数の制御対象装置を制御するコントロールシステムであって、
一つ又は複数の演算装置を備え、
前記一つ又は複数の演算装置が、制御プログラムと、一つ又は複数の情報プログラムと、管理プログラムと、前記一つ又は複数の情報プログラムの各々のパラメータセットとを有し、
前記一つ又は複数の情報プログラムの各々について、パラメータセットは、当該情報プログラムに必要な一つ以上のパラメータであり、
前記制御プログラムは、当該制御プログラムについて定められた制御周期毎に、制御対象装置を制御する処理でありリアルタイム性を有する処理であるスキャン処理を当該制御周期内に行うプログラムであり、
前記一つ又は複数の情報プログラムの各々について、当該情報プログラムは、当該情報プログラムについて定められた情報処理を行うプログラムであり、
前記制御プログラムは、前記制御周期において、前記一つ又は複数の情報プログラムのうちの起動対象の情報プログラムに関連付けられた符号を表す信号である制御指令を送信し、
前記管理プログラムは、
前記制御指令を受信し、
当該受信した制御指令が表す符号に対応した前記起動対象の情報プログラムを特定し、
当該起動対象の情報プログラムのパラメータセットを読み出し、
当該読み出されたパラメータセットを関連付けた起動信号を生成し、
当該生成された起動信号を、前記起動対象の情報プログラムへ出力する、
コントロールシステム。 - 前記複数の演算装置が、第1の演算装置と第2の演算装置とを含み、
前記第1の演算装置が、前記制御プログラムを有し、
前記第2の演算装置が、前記一つ又は複数の情報プログラム、前記管理プログラム、及び、前記一つ又は複数の情報プログラムの各々のパラメータセットを有する、
請求項1に記載のコントロールシステム。 - 前記一つ又は複数の演算装置のうちの少なくとも一つの演算装置に接続された出力装置を有し、
前記管理プログラムが、下記のうちの少なくとも一つを知らしめるための出力を前記出力装置に実行させる、
・いずれかの情報プログラムが動作しているか、
・いずれの情報プログラムが起動されたか、
・起動された情報プログラムが正常に動作しているか、
請求項1に記載のコントロールシステム。 - 前記管理プログラムが、
起動された情報プログラムの処理結果を当該情報プログラムから受け付け、
当該処理結果を、前記制御プログラム、又は、前記制御プログラムを有する演算装置における情報プログラムに通知する、
請求項1に記載のコントロールシステム。 - 記憶装置及びそれに接続されたプロセッサを有し、
前記プロセッサが、管理プログラムを実行し、
前記記憶装置に、一つ又は複数の情報プログラムの各々のパラメータセットが格納され、
前記一つ又は複数の情報プログラムの各々について、パラメータセットは、当該情報プログラムの起動に必要な一つ以上のパラメータであり、
前記一つ又は複数の情報プログラムの各々について、当該情報プログラムは、当該情報プログラムについて定められた情報処理を行うプログラムであり、
前記管理プログラムは、
制御指令を制御プログラムから受信し、
当該受信した制御指令が表す符号に対応した情報プログラムを特定し、
当該特定された情報プログラムのパラメータセットを読み出し、
当該読み出されたパラメータセットを関連付けた起動信号を生成し、
当該生成された起動信号を、前記特定された情報プログラムへ出力し、
前記制御プログラムは、当該制御プログラムについて定められた制御周期毎に、制御対象装置を制御する処理でありリアルタイム性を有する処理であるスキャン処理を当該制御周期内に行うプログラムであり、前記制御周期において、前記一つ又は複数の情報プログラムのうちの起動対象の情報プログラムに関連付けられた符号を表す信号である制御指令を送信するようになっている、
演算装置。 - 制御指令を制御プログラムから受信し、
当該受信した制御指令が表す符号に対応した情報プログラムを特定し、
当該特定された情報プログラムのパラメータセットを読み出し、
当該読み出されたパラメータセットを関連付けた起動信号を生成し、
当該生成された起動信号を、前記特定された情報プログラムへ出力する、
ことをコンピュータに実行させ、
前記制御プログラムは、当該制御プログラムについて定められた制御周期毎に、制御対象装置を制御する処理でありリアルタイム性を有する処理であるスキャン処理を当該制御周期内に行うプログラムであり、前記制御周期において、一つ又は複数の情報プログラムのうちの起動対象の情報プログラムに関連付けられた符号を表す信号である制御指令を送信するようになっており、
前記一つ又は複数の情報プログラムの各々について、パラメータセットは、当該情報プログラムの起動に必要な一つ以上のパラメータであり、
前記一つ又は複数の情報プログラムの各々について、当該情報プログラムは、当該情報プログラムについて定められた情報処理を行うプログラムである、
コンピュータプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022-122331 | 2022-07-29 | ||
JP2022122331A JP2024018790A (ja) | 2022-07-29 | 2022-07-29 | コントロールシステム及び方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024024264A1 true WO2024024264A1 (ja) | 2024-02-01 |
Family
ID=89706051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2023/020367 WO2024024264A1 (ja) | 2022-07-29 | 2023-05-31 | コントロールシステム及び方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2024018790A (ja) |
WO (1) | WO2024024264A1 (ja) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012104896A1 (ja) * | 2011-01-31 | 2012-08-09 | トヨタ自動車株式会社 | 安全制御装置および安全制御方法 |
JP2018084994A (ja) * | 2016-11-24 | 2018-05-31 | 株式会社日立産機システム | コントロールシステム及びコントロール方法 |
JP2019057212A (ja) * | 2017-09-22 | 2019-04-11 | 株式会社日立産機システム | プログラマブルコントローラ及びコントロールシステム |
JP2019527877A (ja) * | 2016-06-24 | 2019-10-03 | シーメンス アクティエンゲゼルシャフト | Plcの仮想的なパッチおよびセキュリティコンテキストの自動配信 |
JP2021077219A (ja) * | 2019-11-12 | 2021-05-20 | オムロン株式会社 | 制御装置 |
-
2022
- 2022-07-29 JP JP2022122331A patent/JP2024018790A/ja active Pending
-
2023
- 2023-05-31 WO PCT/JP2023/020367 patent/WO2024024264A1/ja unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012104896A1 (ja) * | 2011-01-31 | 2012-08-09 | トヨタ自動車株式会社 | 安全制御装置および安全制御方法 |
JP2019527877A (ja) * | 2016-06-24 | 2019-10-03 | シーメンス アクティエンゲゼルシャフト | Plcの仮想的なパッチおよびセキュリティコンテキストの自動配信 |
JP2018084994A (ja) * | 2016-11-24 | 2018-05-31 | 株式会社日立産機システム | コントロールシステム及びコントロール方法 |
JP2019057212A (ja) * | 2017-09-22 | 2019-04-11 | 株式会社日立産機システム | プログラマブルコントローラ及びコントロールシステム |
JP2021077219A (ja) * | 2019-11-12 | 2021-05-20 | オムロン株式会社 | 制御装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2024018790A (ja) | 2024-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9680712B2 (en) | Hardware management and control of computer components through physical layout diagrams | |
KR940002324B1 (ko) | 프로그래머블 콘트롤러 | |
US8806470B2 (en) | System, method, and apparatus for software maintenance of sensor and control systems | |
JP5191705B2 (ja) | 保守管理システム、データベースサーバ、保守管理プログラムおよび保守管理方法 | |
US20170010601A1 (en) | Electronic operator interface based controller and device automatic downloads | |
US9984244B2 (en) | Controller, information processing apparatus, and recording medium | |
US20190171443A1 (en) | Method of Updating Application and Recording Medium | |
US10120702B2 (en) | Platform simulation for management controller development projects | |
CN105653306B (zh) | 显示启动设置界面的方法和装置 | |
JP2012234483A (ja) | 情報処理装置、その制御方法、および制御プログラム | |
JP2002268707A (ja) | コントローラ及びツール並びにそれらにより構成されるシステム | |
JP2012256148A (ja) | 運用管理装置、及び方法 | |
CN116490830A (zh) | 控制系统以及控制方法 | |
US9749189B2 (en) | Generating graphical diagram of physical layout of computer platforms | |
CN114514484A (zh) | 控制系统、支持装置以及支持程序 | |
WO2019167512A1 (ja) | 表示装置、画面生成方法、および画面生成プログラム | |
CN115113851A (zh) | 系统模型智能对象配置 | |
WO2024024264A1 (ja) | コントロールシステム及び方法 | |
US12111639B2 (en) | Control system | |
JP2006318102A (ja) | フィールド機器管理装置およびフィールド機器管理方法 | |
JP2016173744A (ja) | ブレードサーバ、ブレードシステム、bmc、チップセットおよびエンクロージャマネージャ | |
JP6680313B2 (ja) | 制御装置および通信制御方法 | |
KR20220075652A (ko) | Plc 프로그램의 데이터 관리 방법, 장치 및 그 plc 시스템 | |
US10545768B2 (en) | Information processing apparatus, information processing method, and recording medium | |
JP2007213404A (ja) | 組込機器、ダウンロード方法、記憶媒体、プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23846001 Country of ref document: EP Kind code of ref document: A1 |