Relay device, control system, control function expanding method, and program
The relay device enhances factory automation by directly connecting a general-purpose PC with a hardware PLC via dedicated buses, improving control response and reliability while maintaining high computing performance.
Patent Information
- Application Number
- PCT/JP2024/001880
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-01-23
- Publication Date
- 2025-07-31
AI Technical Summary
Existing controllers in factory automation face limitations in computing performance due to power consumption and heat generation constraints, leading to suboptimal control response performance and reliability, especially when combining hardware and software PLCs over networks.
A relay device that connects a general-purpose personal computer with a hardware PLC, facilitating direct signal transmission via dedicated buses, and executes control programs using an execution engine program to enhance computing performance and reliability.
Improves control response performance and reliability while ensuring high computing power, by directly connecting a general-purpose PC with a hardware PLC through dedicated buses, bypassing network limitations.
Smart Images

Figure JP2024001880_31072025_PF_FP_ABST
Abstract
Description
Relay device, control system, control function expansion method and program
[0001] The present disclosure relates to a relay device, a control system, a control function expansion method, and a program.
[0002] In the field of factory automation (FA), controllers are required to have even higher computing performance in order to improve productivity by shortening takt time and to increase the speed and accuracy of axis control, as exemplified by time-sensitive networking (TSN) technology and multi-axis motion control. However, hardware programmable logic controllers (PLCs), which are a type of controller, are installed in small spaces such as control panels, which impose restrictions on power consumption and heat generation, making it difficult to install high-performance integrated circuit (IC) chip devices, and therefore limiting the improvements in computing performance.
[0003] Software PLCs are also known as the above-mentioned controllers. Software PLCs are controllers that control controlled devices connected via a network such as Ethernet (registered trademark) by installing dedicated software on a general-purpose personal computer. It is easy to use processors in personal computers with higher computing performance than hardware PLCs. However, since the controlled devices must have network connectivity, the devices that can be connected are limited. For this reason, software PLCs have lower scalability than hardware PLCs, which have a wide lineup of component units and a high degree of freedom in combining control methods and interfaces.
[0004] Therefore, it is conceivable to ensure scalability by using a technology that combines software PLCs and hardware PLCs (see, for example, Patent Document 1). The technology described in Patent Document 1 relates to a message routing method between a software PLC and a hardware PLC, in which the software PLC has an interface that can be connected to a backplane bus dedicated to the hardware PLC, and performs message communication using a protocol equivalent to that of the backplane bus. This technology makes it possible to build a highly scalable system by mixing software PLCs and hardware PLCs.
[0005] Japanese Patent Application Laid-Open No. 2007-249562
[0006] The backplane bus described in Patent Document 1 is a general-purpose bus with network characteristics. Specifically, the backplane bus uses a message communication protocol that requires port information registration, and all communication devices are connected to the same communication path for communication. Each communication device forwards a message to the destination device if the message is not addressed to the device itself.
[0007] This type of control may result in lower control response performance and reliability compared to control not involving a network. Specifically, the control response of the controlled device may decrease due to an increase in the number of connected communication devices, a longer physical transmission distance, and an excessive number of packets within the same network. Furthermore, when a control command such as resetting all device values is transmitted according to a network protocol, the reliability is lower than that of a hardware PLC, which transmits commands via a dedicated data bus.
[0008] Therefore, there is room for improving the control response performance and reliability while ensuring the calculation performance of the controller.
[0009] The present disclosure has been made in light of the above-mentioned circumstances, and aims to improve control response performance and reliability while ensuring the calculation performance of a controller.
[0010] In order to achieve the above-mentioned object, the relay device disclosed herein is a relay device that is connected to a base unit on which functional units for constituting a programmable logic controller are mounted and a computer, and causes the computer to execute control processing using the functional units, and is equipped with a first connection interface connected to a first data bus inside the base unit, a second connection interface connected to a second data bus inside the computer, and a providing means for providing the computer with an execution engine program that executes a control program that causes the programmable logic controller to execute control processing in a device other than the programmable logic controller, and when the computer executes the control program using the execution engine program, signals are transmitted between the computer and the functional units via the first connection interface and the second connection interface.
[0011] According to the present disclosure, it is possible to improve the control response performance and reliability while ensuring the calculation performance of the controller.
[0012] FIG. 1 shows the configuration of a control system according to embodiment 1. FIG. 1 shows the hardware configuration of an FA device according to embodiment 1. Flowchart showing control function expansion processing according to embodiment 1. FIG. 1 shows the configuration of a control system according to a modified example. FIG. 1 shows the configuration of a control system according to embodiment 2. FIG. 1 shows an example in which an execution unit of a computer according to embodiment 2 accesses the memory of a relay device. FIG. 1 shows an example in which an execution unit of a relay device according to embodiment 2 accesses the memory of a computer. FIG. 1 shows the configurations of a computer and a relay device according to embodiment 3. FIG. 1 shows an example of division programs and priorities according to embodiment 3. Flowchart showing control function expansion processing according to embodiment 3. FIG. 1 shows an example of allocation of devices that execute division programs according to embodiment 3. FIG. 1 schematically shows the execution time of a division program according to embodiment 3.
[0013] Hereinafter, a control system according to an embodiment of the present disclosure will be described in detail with reference to the drawings.
[0014] Embodiment 1. A control system 1000 according to this embodiment is constructed in a facility such as a factory or a plant. The control system 1000 controls a large number of devices to cooperate with each other and operate lines that perform various processes such as a production line, a machining line, and an inspection line. However, while it is common for either a hardware PLC or a software PLC to be used as the controller that is the main controller, or for both to be used, in the control system 1000 according to this embodiment, the control function is realized by combining a general-purpose personal computer with a partial configuration of the hardware PLC.
[0015] 1, the control system 1000 includes a computer 20 which is a general-purpose personal computer, a PLC function system 40 which corresponds to a hardware PLC configuration without a central processing unit (CPU) that handles arithmetic processing, and devices 53 and 54 to be controlled. The computer 20 also includes a relay device 10 that relays signals between the computer 20 and the PLC function system 40.
[0016] The computer 20 may be a general-purpose personal computer for general consumers or an industrial personal computer. Hereinafter, a personal computer will be referred to as a PC (Personal Computer). Hereinafter, a PC is considered personal because it has a user interface function and is expected to be used by only one user at a time. Furthermore, a general-purpose PC is considered general-purpose because its configuration allows for a variety of uses, such as information processing, document creation, and computer graphics, by utilizing application software. The control system 1000 shown in FIG. 1 may be configured using such a general-purpose PC as the computer 20, and the computer 20 may be used by multiple users solely for controlling the devices 53 and 54. Because the computer 20 is responsible for executing control processing for the devices 53 and 54, it operates on a real-time operating system.
[0017] The relay device 10 is an add-in card or expansion card for a general-purpose PC. The relay device 10 has a terminal 12a conforming to the PCI (Peripheral Component Interconnect) standard or the PCIe (PCI express) standard, and is inserted into an expansion slot in the computer 20. The relay device 10 also has a terminal 11a, and is connected from the terminal 11a to a terminal 11b of a base unit 41 constituting the PLC function system 40 via a cable 11c.
[0018] The PLC function system 40 is constructed by mounting functional units designed for specific applications on a base unit, similar to a building-block hardware PLC. Because hardware PLCs must be housed in a standard control panel, the housing sizes of the functional units are standardized. In a hardware PLC, a CPU unit that executes arithmetic processing controls each functional unit via a bus for individual communication with each functional unit using a predetermined protocol, and a dedicated bus that includes signal lines, power lines, and GND (ground) dedicated to the hardware PLC. However, in the PLC function system 40, a computer 20 executes arithmetic processing instead of a CPU unit. A hardware PLC is an example of a programmable logic controller.
[0019] The PLC function system 40 has a base unit 41 and a plurality of function units attached to the base unit 41. In the example of Fig. 1, the functional units include a power supply unit 42 that supplies power to each unit, an input unit 43 that receives signals input from a device 53, an output unit 44 that outputs signals to a device 54, an intelligent function unit 45 that performs a function other than signal input / output, and a network function unit 46 that performs a function of connecting to a network NW. The intelligent function unit 45 performs functions such as A / D conversion, D / A conversion, or execution of a program written in C language.
[0020] The base unit 41 has a data bus 410 therein, and when the base unit 41 constitutes a hardware PLC, the CPU unit mounted on the base unit 41 controls each functional unit via the data bus 410, thereby executing control processing for the devices 53 and 54. In the PLC function system 40, the computer 20 controls each functional unit from the terminal 11b via the data bus 410, thereby executing control processing.
[0021] The control process typically involves executing the control process based on input values received from the input unit 43 to generate a calculation result, and transmitting the calculation result as an output value to the output unit 44. For example, the control process involves transmitting a control command obtained by calculation based on the sensing result of the sensor device 53 to the robot device 54. The control process, for example, involves machining a workpiece on a belt conveyor. Note that the control process is not limited to processes using the input unit 43 and the output unit 44, and may be any process using at least one functional unit.
[0022] Here, the hardware configuration of the relay device 10 and the computer 20 will be described with reference to Fig. 2. As shown in Fig. 2, the FA device 60, which corresponds to each of the relay device 10 and the computer 20, has a processor 61, a main memory unit 62, an auxiliary memory unit 63, an input unit 64, an output unit 65, and a communication unit 66. The main memory unit 62, the auxiliary memory unit 63, the input unit 64, the output unit 65, and the communication unit 66 are all connected to the processor 61 via an internal bus 67.
[0023] The processor 61 includes a CPU or an MPU (Micro Processing Unit) as a processing circuit. The processor 61 executes a program P1 stored in the auxiliary storage unit 63 to realize various functions and execute the processes described below.
[0024] The main memory 62 includes a RAM (Random Access Memory). The program P1 is loaded into the main memory 62 from the auxiliary memory 63. The main memory 62 is used as a working area for the processor 61.
[0025] The auxiliary storage unit 63 includes a non-volatile memory such as an EEPROM (Electrically Erasable Programmable Read-Only Memory) and an HDD (Hard Disk Drive). In addition to the program P1, the auxiliary storage unit 63 stores various data used in the processing of the processor 61. The auxiliary storage unit 63 supplies the processor 61 with data used by the processor 61 in accordance with instructions from the processor 61. The auxiliary storage unit 63 also stores data supplied from the processor 61.
[0026] The input unit 64 includes input devices such as a hardware switch, an input key, a keyboard, and a pointing device. The input unit 64 acquires information input by a user of the FA device 60 and notifies the processor 61 of the acquired information.
[0027] The output unit 65 includes output devices such as a light emitting diode (LED), a liquid crystal display (LCD), and a speaker, and presents various information to the user in accordance with instructions from the processor 61.
[0028] The communication unit 66 includes a communication interface circuit for communicating with an external device. The communication unit 66 receives a signal from the outside and outputs data indicated by this signal to the processor 61. The communication unit 66 also transmits a signal indicating the data output from the processor 61 to the external device. Although one communication unit 66 is representatively shown in FIG. 2 , the FA device 60 may have multiple communication units 66. If data transmitted between these multiple communication units 66 does not require processing by the processor 61, the data may be transmitted directly between the multiple communication units 66 without going through the processor 61.
[0029] The above-described hardware configurations work together to enable the relay device 10 and the computer 20 to perform various functions. Specifically, as shown in Fig. 1, the relay device 10 has, as its functions, a first connection I / F 11 for connecting to the data bus 410 of the base unit 41, a second connection I / F 12 for connecting to the data bus 27 of the computer 20, and a providing unit 13. The computer 20 also has, as its functions, an execution unit 21 for executing a control program 31 that defines the contents of control processing, and a memory 22 that corresponds to the working area of the execution unit 21.
[0030] The first connection I / F 11 of the relay device 10 is realized by the communication unit 66 of the relay device 10. The first connection I / F 11 transmits signals to the base unit 41 and receives signals from the base unit 41 via the terminal 11a. The first connection I / F 11 converts the format of signals transmitted within the relay device 10 and the format of signals transmitted over the data bus 410 of the base unit 41, and vice versa. The data bus 410 corresponds to an example of a first data bus inside the base unit, and the first connection I / F 11 corresponds to an example of a first connection interface connected to the first data bus.
[0031] The second connection I / F 12 is realized by the communication unit 66 of the relay device 10. The second connection I / F 12 transmits signals to the data bus 27 and receives signals from the data bus 27 via the terminal 12a. The second connection I / F 12 converts the format of signals transmitted within the relay device 10 and the format of signals transmitted on the data bus 27, and vice versa. The data bus 27 corresponds to an example of a second data bus inside the computer, and corresponds to the internal bus 67 of the computer 20. The second connection I / F 12 corresponds to an example of a second connection interface connected to the second data bus.
[0032] The providing unit 13 is mainly realized by the processor 61 of the relay device 10. The providing unit 13 provides the software 30 to the computer 20 via the second connection I / F 12. The software 30 provided to the computer 20 is loaded into the memory 22 of the computer 20. The software 30 includes a control program 31 designed to be executed by the CPU unit of the hardware PLC, and an execution engine program 32 for executing the control program 31 by a computing device other than the CPU unit.
[0033] The execution engine program 32 must support an instruction set architecture that conforms to the specifications of the processor that runs the execution engine program 32. Considering that, for example, the computer 20 may be equipped with execution units 21 with different specifications as processors of arithmetic devices other than the CPU unit, there may be multiple types of execution engine programs 32 that support different instruction set architectures. A possible configuration is that an appropriate instruction set architecture is selected when the execution engine program 32 is installed, and the execution engine program 32 that supports the selected instruction set architecture is deployed in memory. In this configuration, the execution engine program 32 can achieve its effect of running the control program 31 regardless of the type of instruction set architecture. Hereinafter, the execution engine program 32 is assumed to support multiple types of instruction set architectures.
[0034] The provision unit 13 may obtain the software 30 by reading it from the auxiliary memory unit 63 of the relay device 10 in advance and then provide it, or may obtain the software 30 by reading it from an external device or a removable recording medium such as a memory card and then provide it.
[0035] The providing unit 13 corresponds to an example of a providing means that provides a computer with an execution engine program that executes, in a device different from the programmable logic controller, a control program that causes the programmable logic controller to execute a control process.
[0036] The execution unit 21 of the computer 20 is realized by the processor 61 of the computer 20, and the memory 22 is realized by the main storage unit 62 of the computer 20. The software 30 loaded into the memory 22 is executed by the execution unit 21. More specifically, the execution unit 21 executes the control program 31 using an execution engine program 32. The execution unit 21 corresponds to an example of a second execution means that executes the control program in the computer.
[0037] The control program 31 is a program in which the contents of control processing are written in a language such as ladder logic or C. In the example of Fig. 1, the contents of control processing written in the control program 31 include sequence control processing, motion control processing, system processing, network processing, and information processing. Because the control program 31 is created in a format dedicated to execution by the CPU unit, the execution unit 21 of the computer 20 cannot execute the control program 31 as is, but the execution engine program 32 makes it possible to execute the control program 31.
[0038] Next, the control function expansion process executed in the control system having the above-mentioned functions will be described with reference to Fig. 3. The control function expansion process is a process in which a computer 20 that does not have a control function using a functional unit acquires and exercises a control function by installing a relay device 10.
[0039] In the control function expansion process, the relay device 10 provides the execution engine program 32 to the computer 20 (step S1). Specifically, the providing unit 13 provides the software 30 via the second connection I / F 12. As a result, the computer 20 acquires the control program 31 (step S2).
[0040] Next, the computer 20 executes the control program 31 using the execution engine program 32 (step S3). As a result, the execution unit 21 of the computer 20 executes the control process. Specifically, the execution unit 21 executes a calculation based on the input value received by the input unit 43, and a process of transmitting a control command corresponding to the calculation result to the output unit 44 is executed according to the description of the control program 31.
[0041] Then, the relay device 10 transmits signals between the computer 20 and the functional units (step S4). Specifically, the relay device 10 relays signals transmitted between the execution unit 21, which executes the control process, and the base unit 41 via the first connection I / F 11 and the second connection I / F 12. This causes the computer 20 to execute the control process using the functional units. The relay device 10 corresponds to an example of a relay device that transmits signals between the computer and the functional units via the first connection interface and the second connection interface when the computer executes a control program using the execution engine program. Thereafter, the control function expansion process ends.
[0042] As described above, the execution unit 21 of the computer 20, which is a general-purpose PC, executes the control program 31. As a result, the computer 20 and the PLC function system 40 together correspond to a controller that controls the devices 53 and 54. Since it is relatively easy to realize the general-purpose PC 121 using a processor with high computing performance, it is possible to ensure the computing performance of the controller.
[0043] Furthermore, the data bus 410 of the base unit 41 includes a bus that follows a predetermined protocol for controlling each functional unit of the hardware PLC and a signal line dedicated to the hardware PLC, thereby providing high control responsiveness and reliability. The relay device 10 is directly connected to the data bus 410 of the base unit 41 without going through a network, ensuring the control responsiveness and reliability of the control processing executed by the computer 20. Therefore, compared to when control processing is executed via a network, it is possible to improve the control responsiveness and reliability while ensuring the calculation performance of the controller.
[0044] Although the example in which the computer 20 has the relay device 10 built in has been described above, the present invention is not limited to this. As shown in FIG. 4 , the relay device 10 may be located outside the computer 20. In the example of FIG. 4 , the relay device 10 is connected from the terminal 12a to the terminal 12b, which is an expansion slot of the computer 20, via the cable 12c. However, if the relay device 10 and the cable 12c are integrally configured, the relay device 10 and the computer may be connected by inserting the terminal 12b of the relay device 10 into the expansion slot of the computer 20. Furthermore, if the relay device 10 and the cable 11c are integrally configured, the relay device 10 and the base unit 41 may be connected by inserting the terminal 11b of the relay device 10 into the slot of the base unit 41.
[0045] Although the example in which the providing unit 13 of the relay device 10 directly provides the software 30 to the computer 20 has been described, the present invention is not limited to this. The providing unit 13 may provide the software 30 indirectly or may eventually provide the software 30. For example, the providing unit 13 may notify the computer 20 of the address of a web server from which the software 30 can be downloaded, so that the execution unit 21 downloads the software 30 from the address to the memory 22. The providing unit 13 may specify a file to be read, and the execution unit 21 may read the file from the recording medium, thereby loading the software 30 contained in the file into the memory 22.
[0046] Furthermore, the execution engine program 32 of the software 30 is necessary when the relay device 10 is combined with the computer 20, while the control program 31 can also be executed by a hardware PLC and can be subject to appropriate changes even during operation of the control system 1000. In other words, it is conceivable that a user will edit the control program 31 using the computer 20, which is a general-purpose PC. Therefore, the provider 13 of the relay device 10 may provide the execution engine program 32, and the computer 20 may obtain the control program 31 from a device other than the relay device 10. The user of the computer 20 may also develop the control program 31 from scratch.
[0047] Second Embodiment Next, a second embodiment will be described, focusing on the differences from the first embodiment. Note that the same or equivalent components as those in the first embodiment will be designated by the same reference numerals. In the first embodiment, the control program 31 is executed by the execution unit 21 of the computer 20. However, if the computer 20 does not have sufficient resources, it becomes difficult to stably execute the control process. Therefore, an example in which part of the control process is executed by the relay device 10 will be described below.
[0048] 5, the relay device 10 according to this embodiment includes an execution unit 101 that executes part of the control processing, a memory 102 that corresponds to the work area of the execution unit 101, and an acquisition unit 103 that acquires software 30a that is equivalent to the software 30. Note that in FIG. 5, the configuration of the PLC function system 40 is shown in a simplified form.
[0049] The execution unit 101 is realized by the processor 61 of the relay device 10, and the memory 102 is realized by the main storage unit 62 of the relay device 10. Software 30a is loaded into the memory 102, and at least a part of the software 30a is executed by the execution unit 101. The execution unit 101 corresponds to an example of a first execution means that executes a part of the control processing defined by the control program using an execution engine program.
[0050] The software 30a includes a control program 31 and an execution engine program 33 that causes the execution unit 101 to execute at least a part of the control program 31. The execution engine program 33 is a program that causes the relay device 10 to execute the control program 31. If the execution unit 101 operates using the same instruction set architecture as the execution unit 21 of the computer 20, the execution engine program 33 deployed in the memory 102 is the same as the execution engine program 32 deployed in the memory 22. In this case, the software 30a on the memory 102 may be the same as the software 30 on the memory 22. If the execution unit 101 operates using a different instruction set architecture from that of the execution unit 21, the execution engine program 33 may be deployed in the memory 102 as a program corresponding to the instruction set architecture of the execution unit 101 selected at the time of installation.
[0051] The acquisition unit 103 is mainly realized by at least one of the processor 61 and the communication unit 66 of the relay device 10. The acquisition unit 103 may acquire the software 30a from an external device via communication, may acquire the software 30a by reading it from pre-stored in the auxiliary storage unit 63 of the relay device 10, or may acquire the software 30a by reading it from a removable recording medium such as a memory card. If the software 30a acquired by the acquisition unit 103 is equivalent to the software 30, it may be provided to the computer 20 by the provision unit 13 as the software 30. The acquisition unit 103 corresponds to an example of an acquisition means that acquires a control program and an execution engine program.
[0052] The execution unit 101 of the relay device 10 and the execution unit 21 of the computer 20 access the memories 102 and 22, which are each other's work areas, and cooperate to execute control processing. For example, as shown in FIG. 6 , when the execution unit 101 executes sequence control processing, system processing, network processing, and information processing, the memory 102 stores sequence control processing data, system processing data, network processing data, and information processing data as data related to each process. In FIG. 6 , dashed arrows indicate the use of sequence control processing data in sequence control processing or the output of sequence control processing data. Furthermore, when the execution unit 21 executes motion control processing, the memory 22 stores motion control processing data related to the motion control processing. Note that, for convenience, the relay device 10 and the computer 20 are shown as separate configurations in FIG. 6 .
[0053] 6, the execution unit 21 corresponds to an example of one of the execution means of the execution units 21 and 101, and the execution unit 101 corresponds to an example of the other execution means. The execution unit 21 corresponds to an example of one execution means that executes control processing together with the other execution means by accessing the memory that is the working area of the execution unit 101.
[0054] Furthermore, when sequence control processing data is referenced in the motion control processing, the dashed arrow indicates that the execution unit 21 reads the sequence control processing data from the memory 102. Furthermore, as shown in Figure 7, when motion control processing data is referenced in the network control processing, the dashed arrow indicates that the execution unit 101 reads the motion control processing data from the memory 22.
[0055] 7, the execution unit 101 corresponds to an example of one of the execution means of the execution units 21 and 101, and the execution unit 21 corresponds to an example of the other execution means. The execution unit 101 corresponds to an example of one of the execution means that executes control processing together with the other execution means by accessing the memory that is the working area of the execution unit 21.
[0056] As described above, the execution units 101 and 21 share the memories 102 and 22, which are their working areas. This allows the control processing to be distributed and executed, and the control processing can be executed stably even when the computing resources of the computer 20 are insufficient. Examples of such cases include when a small fanless personal computer is used as the computer 20 due to the installation environment, or when sufficient performance cannot be obtained from the computing processing of the general-purpose PC alone due to the influence of other software in the general-purpose PC.
[0057] Depending on the status of the computational resources of the computer 20, the control processing may be entirely executed by the execution unit 21 as in the first embodiment, or may be distributed and executed by the execution units 21 and 101 as in the present embodiment. Furthermore, the control processing may not be executed by the execution unit 21, and may be entirely executed by the execution unit 101.
[0058] Third Embodiment Next, a third embodiment will be described, focusing on the differences from the second embodiment described above. Note that the same reference numerals are used for components that are the same as or equivalent to those in the second embodiment. This embodiment differs from the second embodiment in that the control processes that are executed in a distributed manner are assigned to the execution units 21 and 101 based on priority.
[0059] As shown in FIG. 8, the relay device 10 according to this embodiment has an acceptance unit 104 that accepts multiple split programs split from the control program 31 and the settings of priorities to be assigned to each of the split programs, and a comparison unit 105 that compares the execution speed when the split programs are executed by the execution unit 101 and when they are executed by the execution unit 21.
[0060] The reception unit 104 is mainly realized by the input unit 64 of the relay device 10. However, when the input unit 64 and the output unit 65 of the computer 20 are used as the user interface of the relay device 10, the reception unit 104 may be realized by the processor 61 or the communication unit 66 of the relay device 10.
[0061] 9 shows an example of the divided programs and priorities accepted by the accepting unit 104. As shown in FIG. 9, a sequence control processing program, a motion control processing program, a system processing program, a network processing program, and an information processing program are accepted as divided programs corresponding to the sequence control processing, motion control processing, system processing, network processing, and information processing that make up the control processing, respectively. A priority ranging from "1" to "5" is assigned to each divided program. The highest priority is "1," and a sequence control processing program assigned a priority of "1" takes precedence over other divided programs.
[0062] The comparison unit 105 is realized by the processor 61 of the relay device 10. The comparison unit 105 calculates and compares the execution speeds of the divided programs when they are executed by the execution units 21 and 101. The execution speeds may be derived by running the divided programs in a simulation, may be measured by actually running the divided programs, or may be estimated by analyzing the divided programs. The comparison unit 105 corresponds to an example of a comparison means for comparing the execution speeds.
[0063] 10 shows the procedure for the control function expansion process according to this embodiment. As shown in FIG. 10, in the control function expansion process, step S1 is executed in the same manner as in embodiment 1. Next, the relay device 10 accepts designation of multiple split programs split from the control program and the priority of each split program (step S31).
[0064] Then, the relay device 10 compares the execution speeds of the divided programs when they are executed by the relay device 10 and when they are executed by the computer 20 (step S32). For example, when the priorities shown in Fig. 9 are specified, the execution speeds of the relay device 10 and the computer 20 are derived for the sequence control processing program specified with the highest priority, as shown in the upper part of Fig. 11.
[0065] Next, based on the comparison result, the relay device 10 assigns each divided program to the relay device 10 or the computer 20 (step S33). In the example shown in the upper part of Fig. 11, execution by the computer 20 is faster, so the device that executes the sequence control processing program is determined to be the computer 20. The upper part of Fig. 12 schematically shows the execution times when the sequence control processing is executed by the relay device 10 and the computer 20, respectively.
[0066] Similarly, when the execution speeds of the motion control processing program that has the next highest priority are compared as shown in the middle of Fig. 11, as can be seen from the middle of Fig. 12, execution by the computer 20 is faster, so the motion control processing program is also assigned to the computer 20. Furthermore, when the execution speeds of the information processing program that has the next highest priority are compared as shown in the bottom of Fig. 11, as can be seen from the bottom of Fig. 12, due to the influence of a reduction in resources of the computer 20 that handles the sequence control processing with priority "1" and the motion control processing with priority "2", execution by the relay device 10 is faster, so the information processing program is assigned to the relay device 10. The device to execute the other divided programs is determined in a similar manner.
[0067] 10 , following step S33, the computer 20 acquires the divided program assigned to the computer 20 (step S34). Then, the relay device and the computer each execute the assigned divided program using the execution engine program, thereby cooperatively executing the control program (step S35). With regard to the divided program executed by the computer 20, the relay device 10 executes step S4, the same as in embodiment 1. Thereafter, the control function expansion process ends.
[0068] As described above, the relay device 10 accepts the designation of the divided programs and the priority, and assigns and executes each divided program to the relay device 10 or the computer 20 according to the priority. This allows the partial processing of the control process corresponding to the divided program to be executed by an appropriate device according to the priority.
[0069] Although the example in which the relay device 10 receives the designation of the division program and the priority has been described, the present invention is not limited to this, and the computer 20 may have the reception unit 104. The relay device 10 may provide the computer 20 with a program for performing the function of the reception unit 104.
[0070] Although the example in which the relay device 10 compares the execution speeds has been described, the present invention is not limited to this, and the computer 20 may have the comparison unit 105. The relay device 10 may provide the computer 20 with a program for implementing the function of the comparison unit 105.
[0071] The relay device 10 may receive from the computer 20 and execute a divided program of the control program 31 that is assigned to the relay device 10 itself.
[0072] Although an example in which a priority is specified for each divided program has been described, this is not limiting, and it is sufficient that at least one divided program that should be prioritized over other divided programs is specified. For example, as shown in FIG. 9 , the receiving unit 104 may receive the specification of one of the divided programs, and the comparing unit 105 may compare the execution speed of the specified program when executed by the execution unit 101 and when executed by the execution unit 21, and the execution unit 101 or 21 with the faster execution speed may execute the specified program. For divided programs other than the specified program, the device to execute them may be determined arbitrarily. The receiving unit 104 described in the third embodiment corresponds to an example of a receiving means that receives the priority settings to be assigned to each divided program and accepts the highest priority setting to be assigned to any one of the divided programs as the specified program.
[0073] Although the embodiments of the present disclosure have been described above, the present disclosure is not limited to the above-described embodiments.
[0074] For example, although an example has been described in which the relay device 10 is connected to the PCI or PCIe standard data bus 27, the relay device 10 may be connected to a USB (Universal Serial Bus) standard data bus within the computer 20. The relay device 10 may be any device that is connected to the base unit 41 and the computer 20 and causes the computer 20 to execute control processing.
[0075] The functions of the relay device 10 according to the above-described embodiment can be realized by dedicated hardware or by a general computer system.
[0076] For example, by storing and distributing program P1 on a computer-readable recording medium such as a flexible disk, a CD-ROM (Compact Disk Read-Only Memory), a DVD (Digital Versatile Disk), or an MO (Magneto-Optical disk), and installing program P1 on a computer, a device that executes the above-mentioned processing can be configured.
[0077] Furthermore, the program P1 may be stored in a disk device of a server device on a communication network such as the Internet, and may be downloaded to a computer by superimposing it on a carrier wave, for example.
[0078] The above process can also be achieved by starting and executing the program P1 while transferring it via a network such as the Internet.
[0079] Furthermore, the above-described processing can also be achieved by executing all or part of program P1 on a server device, and executing program P1 while the computer sends and receives information about the processing via a communications network.
[0080] In addition, when the above-mentioned functions are realized by an operating system (OS) or by the OS working together with an application, only the parts other than the OS may be stored on a medium and distributed, or may be downloaded to a computer.
[0081] Furthermore, the means for realizing the functions of the relay device 10 is not limited to software, and some or all of the functions may be realized by dedicated hardware or circuits.
[0082] The present disclosure allows various embodiments and modifications without departing from the broad spirit and scope of the present disclosure. Furthermore, the above-described embodiments are intended to explain the present disclosure and do not limit the scope of the present disclosure. In other words, the scope of the present disclosure is defined by the claims, not the embodiments. Various modifications made within the scope of the claims and the meaning of equivalent disclosures are considered to be within the scope of the present disclosure.
[0083] The present disclosure is suitable for control processing with a high computational load in FA facilities.
[0084] 10 Relay device, 11 First connection I / F, 11a, 11b, 12a, 12b Terminal, 12 Second connection I / F, 11c, 12c Cable, 13 Provision unit, 20 Computer, 21, 101 Execution unit, 22, 102 Memory, 27 Data bus, 30, 30a Software, 31 Control program, 32, 33 Execution engine program, 40 PLC function system, 41 Base unit, 42 Power supply unit, 43 Input unit, 44 Output unit, 45 Intelligent function unit, 46 Network function unit, 53, 54 Equipment, 60 FA device, 61 Processor, 62 Main memory unit, 63 Auxiliary memory unit, 64 Input unit, 65 Output unit, 66 Communication unit, 67 Internal bus, 103 Acquisition unit, 104 Reception unit, 105 Comparison unit, 410 Data bus, 1000 Control system, NW network, P1 program.
Claims
1. A relay device connected to a base unit on which a functional unit for configuring a programmable logic controller is mounted and a computer, and causing the computer to execute control processing using the functional unit, the relay device comprising: a first connection interface connected to a first data bus inside the base unit; a second connection interface connected to a second data bus inside the computer; and providing means for providing, to the computer, an execution engine program that executes a control program for causing the programmable logic controller to execute the control processing in a device different from the programmable logic controller, wherein when the computer executes the control program by the execution engine program, signals are transmitted between the computer and the functional unit via the first connection interface and the second connection interface.
2. The relay device according to claim 1, further comprising: acquisition means for acquiring the control program and the execution engine program; and first execution means for executing, by the execution engine program, a part of the control processing defined by the control program.
3. In the relay device according to claim 2, either one of the second execution means for executing the control program in the computer and the first execution means accesses a memory that is a working area of the other execution means, and executes the control processing together with the other execution means.
4. The relay device according to any one of claims 1 to 3, wherein the computer is a general-purpose personal computer.
5. The relay device according to any one of claims 1 to 4, wherein the computer operates with a real-time operating system and has a user interface function.
6. A control system comprising: the relay device according to any one of claims 1 to 5; and the computer that executes the control program by the execution engine program provided from the relay device.
7. A relay device according to claim 1, a computer that executes the control program by the execution engine program provided from the relay device, a plurality of divided programs divided from the control program, and reception means for receiving a designation of one designated program among the plurality of divided programs, comparison means for comparing the execution speeds of the designated programs, the relay device having acquisition means for acquiring the execution engine program and execution means for executing a part of the control process defined by the control program by the execution engine program, the comparison means comparing the execution speeds when the designated program is executed by the execution means and when it is executed by the computer, and the one with the higher execution speed among the execution means and the computer executing the designated program. A control system.
8. The control system according to claim 7, wherein the reception means receives the setting of the highest priority given to any one of the divided programs as the designation of the designated program by receiving the setting of the priority given to each of the divided programs.
9. A control function extension method executed by a relay device connected to a base unit on which a functional unit for configuring a programmable logic controller is mounted and a computer, and causing the computer to execute a control process using the functional unit, the method including providing, to the computer, an execution engine program that executes the control program for causing the programmable logic controller to execute the control process in a device different from the programmable logic controller, and transmitting a signal between the computer and the functional unit when the computer executes the control process by the execution engine program. A program for causing a relay device connected to a base unit on which a functional unit for configuring a programmable logic controller is mounted and a computer to cause the computer to execute control processing using the functional unit, to provide an execution engine program that executes a control program for causing the programmable logic controller to execute the control processing in a device different from the programmable logic controller to the computer, and to transmit a signal between the computer and the functional unit when the computer executes the control processing by the execution engine program.
Citation Information
Patent Citations
Emulation device for programmable controller
JP1999272310A
Debug support device and method
JP2000222012A
Data processor
JP2005251228A
Software PLC, and message routing method therefor
JP2007249562A
Plant control apparatus
JP2019082780A