Control device, control system, and control method
The control device addresses the increased CPU load in industrial control systems by selectively transmitting only the data used by applications, thereby reducing processing burdens and ensuring continuous control operations.
Patent Information
- Application Number
- JP2023181517
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-10-23
- Publication Date
- 2025-05-08
AI Technical Summary
Industrial control devices face increased CPU load due to the growing amount of communication data from devices like industrial robots and power systems, especially when updates lead to transmission of unused data, potentially causing delays or stops in control processing.
A control device with a data processing unit that selectively outputs only the data used by applications, utilizing a receiver, a receiving data holding unit, a selection data holding unit, and a data transfer judgment unit to manage and transfer relevant data, thereby reducing CPU load.
This solution effectively reduces the CPU load associated with data reception by only transmitting and processing data used by applications, even in systems with updated devices and applications, allowing for efficient and uninterrupted control processing.
Smart Images

Figure 2025071397000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to the configuration of a control device that controls industrial equipment, and in particular to a technique for multiple devices to cooperate by exchanging data with each other. [Background technology]
[0002] In configurations where multiple devices such as industrial robots and power supply systems communicate periodically, it is necessary to process large amounts of data at high speed due to the increasing complexity of control.In data communication, a communication driver on the OS (Operating System) installed in the CPU (Central Processing Unit) accesses memory and peripheral devices to send and receive data, so the load on the CPU increases according to the amount of data received, which may affect the operation of the control application.
[0003] Background of this technical field includes, for example, technology such as Patent Document 1. According to the "Abstract" of Patent Document 1, "When receiving and temporarily storing data that is repeatedly generated at a cycle of PRI (predetermined repetition interval), the reception completion interrupts that are generated with each data reception are consolidated and notified to the CPU as a single collective acknowledgment, thereby reducing the processing load required for the reception completion response processing."
[0004] It is also disclosed that "each signal processor selectively receives a series of data to which identification information matching its own identification information is added, thereby configuring the signal processing device in a round robin format using multiple signal processors, and performing pipeline processing on a signal processor basis, thereby performing signal processing on all data without omission, even when (reception time of data to be processed) < (signal processing time)." [Prior art documents] [Patent documents]
[0005] [Patent Document 1] JP 2013-003058 A Summary of the Invention [Problem to be solved by the invention]
[0006] As mentioned above, when controlling industrial equipment such as industrial robots and power supply systems, it is necessary to process large amounts of communication data generated between control devices. In recent years, the number of devices that acquire information and the objects they control have been increasing. In addition, the resolution of the acquired information has improved and the control content has become more complex, resulting in an increase in the amount of data sent and received between devices.
[0007] On the other hand, industrial equipment control devices have constraints on the CPU processing power. In particular, embedded controllers used in industrial sites such as factories have limited CPU processing power and number compared to computers equipped with high-performance CPUs, and the load on the CPU caused by the increase in communication data volume cannot be ignored.
[0008] On the other hand, industrial equipment may be newly installed or replaced in response to changes in demand, and the applications installed in the control devices may be updated as control technology advances, but if a system is configured so that some devices are updated but other devices and applications are not, then in addition to the data newly added by the update, data that is no longer used after the update will be sent to each device in the same way as before the update. This increases the load on the CPU that processes the data reception, and may be a factor that leads to delays or stops in the control process.
[0009] The technology described in Patent Document 1 above makes it possible to discard data that is not addressed to the device itself, but does not take into consideration how to reduce the unnecessary load on the CPU caused by receiving unused data even if the data is addressed to the device itself.
[0010] SUMMARY OF THE PRESENT EMBODIMENT An object of the present invention is to provide a control device, a control system, and a control method for transmitting necessary data used by a device or an application to a CPU. [Means for solving the problem]
[0011] In order to solve the above problems, the present invention provides a control device comprising a data processing device that outputs data to be used in an application from among input data transmitted from an external device, and an arithmetic processing unit having an application that performs predetermined arithmetic processing using data from the data processing device, the data processing device including a receiving unit that receives and processes the input data, a received data holding unit that holds the input data received by the receiving unit, a selected data holding unit that holds only data to be used in the arithmetic processing unit from among the input data held in the received data holding unit and outputs the held data in accordance with a received data transfer command, and an operating data holding unit that indicates the type of application currently running in the arithmetic processing unit. The data extracting unit includes an address correspondence information generating unit that generates address correspondence information between the address of the input data stored in the received data holding unit and the address of the selected data holding unit that is the storage destination, from the intermediate application information; a control signal that generates a control signal including a write address and whether each data in the received data holding unit can be written to the selected data holding unit based on the address correspondence information, and adds the control signal to the data output from the received data holding unit and supplies it to the selected data holding unit; and a data transfer determination unit that sends a data transfer command to the selected data holding unit to transfer the data held in the selected data holding unit to the calculation processing unit, and the calculation processing unit sends type information of the application currently running to the address correspondence information generating unit. Effect of the Invention
[0012] According to the present invention, it is possible to reduce the load on the CPU related to data reception by selecting from the data received from an external device only the data to be used by an application running on the CPU and sending it to the CPU.
[0013] As a result, in a system in which multiple devices, such as industrial robots and power supply systems, send and receive data, even if some devices or applications are updated and unused data continues to be sent, the load on the CPU related to data reception processing is reduced, making it possible to achieve updatable, large-scale, complex control. Problems, configurations and effects other than those described above will become apparent from the following description of the embodiments. [Brief description of the drawings]
[0014] [Figure 1A] 1 is a configuration example of a control device according to a first embodiment of the present invention. [Figure 1B] 2 is an example of a data format according to the first embodiment of the present invention. [Diagram 2] 4 is a configuration example of a received data holding unit according to the first embodiment of the present invention. [Figure 3A] 4 is a configuration example of an address correspondence information generating unit according to the first embodiment of the present invention. [Figure 3B] 4 is an example of stored contents of an access information storage unit according to the first embodiment of the present invention. [Figure 3C] 4 is an example of a selection table of a received data holding unit according to the first embodiment of the present invention. [Figure 3D] 13 is an example of a decision table of a storage destination decision unit according to the first embodiment of the present invention. [Figure 4A] 4 is a configuration example of a data extraction unit according to the first embodiment of the present invention. [Figure 4B] 4 shows a data format input to a data extraction unit according to the first embodiment of the present invention. [Figure 4C] 4 is an example of a selection table of a selection signal generating unit according to the first embodiment of the present invention. [Figure 5A] 4 is a configuration example of a selection data storage unit according to the first embodiment of the present invention. [Figure 5B] 4 is a configuration example of a selection data buffer according to the first embodiment of the present invention. [Figure 5C] 4 is an example of a management table according to the first embodiment of the present invention. [Figure 6A] 4 is a configuration example of a data transfer determination unit according to the first embodiment of the present invention. [Figure 6B] 13 is an example of a process flow of a forwarding determination unit according to the first embodiment of the present invention. [Figure 7] 13 is an example of stored contents of an access information storage unit according to the second embodiment of the present invention. [Figure 8]13 is an example of a selection table of a received data holding unit according to the second embodiment of the present invention. [Figure 9] 13 is an example of a decision table of a storage destination decision unit according to the second embodiment of the present invention. [Figure 10] 13 is a configuration example of a control device according to a third embodiment of the present invention. [Figure 11] 13 is a configuration example of a control device according to a fourth embodiment of the present invention. [Figure 12] 13 is a configuration example of a control device according to a fifth embodiment of the present invention. [Figure 13A] 13 is a screen display example according to the sixth embodiment of the present invention. [Figure 13B] 13 is a screen display example according to the sixth embodiment of the present invention. [Figure 13C] 13 is a screen display example according to the sixth embodiment of the present invention. [Figure 13D] 13 is a screen display example according to the sixth embodiment of the present invention. [Figure 13E] 13 is a screen display example according to the sixth embodiment of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0015] Hereinafter, an embodiment of the present invention will be described with reference to the drawings. In the drawings, the same components are designated by the same reference numerals, and detailed description of overlapping parts will be omitted. EXAMPLES
[0016] (1) Overall equipment configuration As shown in FIG. 1A, the control device 101 of this embodiment receives data 200 from external devices to be controlled (such as industrial robots and power supply systems) and outputs control command values 210 for those devices. It mainly comprises a calculation processing unit (CPU) 102 that performs calculations according to a program, and a data processing device 103 that selects data to be sent to the CPU 102 from the received data 200.
[0017] The CPU 102 includes an application 104 that generates a control command value 210 based on the received data. In addition to generating the control command value 210, the application 104 may also perform various processes required for control, such as data analysis.
[0018] The data processing device 103 comprises a receiving unit 105 that receives data 200 transmitted from an external device, a received data holding unit 106 that acts as a buffer circuit for storing and temporarily saving the received data, an address correspondence information generation unit 107 that determines which of the received data is to be transmitted to the CPU 102, a data extraction unit 108 that extracts data to be transmitted from the received data holding unit 106 to the CPU 102, a selected data holding unit 109 that temporarily holds the extracted data, and a data transfer determination unit 110 that gives an instruction signal, etc. to the selected data holding unit 109 to transmit data to the CPU 102.
[0019] The data processing device 103 also includes a control unit (not shown) that controls the operation of each unit in the data processing device 103, data transfer, and the like. (2) Data format 1B is a diagram showing an example of the data format of data 200 transmitted from an external device, which is composed of a header section 201 and a data body section 202, and is transmitted in units of frames at a predetermined cycle or irregularly, such as when an event occurs. The header section 201 includes information on the transmission source device, information on the transmission destination device, information on application software used at the transmission destination, and the like. The data body section 202 includes control data, such as measurement values of various sensors for generating control commands for the external device. Note that the frame of data 200 may also include other data, such as a predetermined bit string indicating the beginning or end of the frame, a code for error correction, and the like (not shown). (3) Configuration and Function of Each Part of the Data Processing Device (3-1) Receiving section The receiving unit 105 is configured with a receiving circuit (not shown) that receives data 200 transmitted from an external device and performs loss compensation for the signal waveform, and outputs the reproduced data 122 to a received data holding unit 106. (3-2) Received data storage section The configuration of the received data storage unit 106 will be described with reference to Fig. 2. The received data storage unit 106 is made up of a memory device, and stores data 122 from the receiving unit 105 in free addresses 106A on a frame-by-frame basis. As described above, the data consists of header information and a data body portion, and is stored in the header information storage unit 106B1 and the data body storage unit 106B2, respectively. When storing the data in the received data storage unit, the data format may be transformed into a format used by the application 104 in accordance with the processing contents of the communication driver.
[0020] Header information 106B1 of the data stored in received data holding unit 106 and its address 106A are sent to address correspondence information generating unit 107 as received data information 123. In addition, header information 106B1 and data body 106B2, together with address 106A, are output to data extracting unit 108 at a predetermined timing as total received data 126.
[0021] The data stored in the received data holding unit 106 may be deleted from the received data holding unit 106 when it is output to the data extraction unit 108, or may be held until a separate deletion command or the like is received depending on the processing contents in the application 104. Also, the storage location of the data may be set in an area depending on the data format. (3-3) Address Correspondence Information Generation Unit (3-3-1)Main components 3A, a description will be given of the main components of address correspondence information generation unit 107. Address correspondence information generation unit 107 includes access information storage unit 300, received data selection unit 301, and storage destination determination unit 302.
[0022] The access information storage unit 300 stores the type (access information) of the application running in the application 104.
[0023] The received data selection unit 301 compares the access information of the application running in the application 104 with the received data information 123 , selects received data to be transmitted to the CPU 102 , and outputs address information 311 of the corresponding received data holding unit 106 .
[0024] The storage destination determination unit 302 determines the storage destination in the selected data storage unit 109 for each received data based on the address 311 of the received data storage unit 106 received from the received data selection unit and the configuration information 124 of the selected data storage unit 109, and outputs it as address correspondence information 125. (3-3-2) Details of each component (3-3-2-1) Access information storage unit First, the details of the access information storage unit 300 will be described. Here, type information of an application running in the application 104 is stored. Information on the type of an application running (in use) is periodically transmitted from the application 104 at a predetermined timing as the application access information 121, and the application type is stored.
[0025] 3B shows an example of the contents stored in the access information storage unit 300, and in this example, "application A" and "application D" are stored as "operating (used) application information 300A". In addition, "paused application information 300B" indicating an application that is not used in this embodiment but is currently temporarily stopped from being used, and "previously operating application 300C" indicating an application that has been used in the past but is not currently being used may also be stored.
[0026] The contents of the "running application information 300A" in the access information storage unit 300 may be set to all conceivable application types at the time of initial setup, and may be deleted at regular intervals, or when the installed applications or the system are updated, or by an administrator. (3-3-2-2) Received data selection section As described above, the received data selection unit 301 manages the addresses at which data used by an application running on the application 104 is stored for each piece of data temporarily stored in the received data storage unit 106, and has a selection table 301A as shown in FIG. 3C.
[0027] That is, selection table 301A has address 301A1 of each received data stored in received data storage unit 106, application type information 301A2 corresponding to the received data, and access information 310A3 indicating whether application 104 is running or not.
[0028] The received data selection unit 301 sequentially receives received data information 123 (address information 106A and header information 106B1; see FIG. 2) from the received data storage unit 106, recognizes the type of application related to the data (e.g., "App A", "App B") from the header information 106B1, and sequentially records the address of the received data storage unit as 301A1 and application type information 301A2.
[0029] At the same time, according to the contents of the access information storage unit 303 described above, “Yes” is recorded in the access information 301A3 for applications that are running, and “No” is recorded for applications that are not running. Finally, the selection table 301A as shown in FIG. 3B is output to the storage destination determination unit 302. (3-3-2-3) Storage destination determination section Based on the selection table 301A (Figure 3C) output from the received data selection unit 301, the storage destination determination unit 302 identifies the data that should be stored in the selected data storage unit 109 from the data stored in the received data storage unit 106, and links each address of the received data storage unit 106 to an address of the selected data storage unit 109.
[0030] Specifically, a decision table 302A as shown in Fig. 3D is used. In decision table 302A, received data storage unit address 302A1, application type information 302A2, and application access 302A3 correspond to "received data storage unit address 301A1", "application type information 301A2", and "application access 301A3" in selection table 301A (Fig. 3C), respectively.
[0031] The storage flag 302A4 of the selection data holding unit assigns "1" to data for which application access 302A3 is "Yes" and assigns "0" to data for which application access 302A3 is "No." In other words, data for which storage flag 302A4 is "1" is stored in the selection data holding unit 109, and data for which storage flag 302A4 is "0" is not stored.
[0032] The storage destination determination unit 302 also receives selected data storage unit information 124 on the usage status (vacancy status) of each address from the selected data storage unit 109, and associates the addresses. The addresses are associated by allocating vacant locations in order from the top address of the selected data storage unit.
[0033] In this example (FIG. 3D), the selected data storage unit 109 is assumed to be entirely empty, and the storage flag 302A4 of the selected data storage unit is set to "1" for R0, R3, R4, and R6 of the received data storage unit address 302A1, and the storage address 302A5 of the selected data storage unit is assigned to "S0", "S1", "S2", and "S3", respectively. Also, the received data storage unit address 302A1 for R1, R2, etc. is not assigned a specific value (indicated by "-") because they are not stored in the selected data storage unit. The address assignment may be arranged collectively according to application information or data format.
[0034] The contents of the storage destination determination table in FIG. 3D are sent to the data extraction unit 108 as address correspondence information 125.
[0035] In the above-described configuration, the received data selection unit 301 creates the selection table 301A, and the storage destination determination unit 302 creates the storage destination determination table 302A based on the selection table 301A. However, the functions of the received data selection unit 301 and the storage destination determination unit 302 may be integrated to directly create the storage destination determination table 302A. (3-4) Data extraction section The data extraction unit 108 receives all received data 126 (see FIG. 2) from the received data storage unit 106, and outputs data to be stored (extracted data 127), a storage command (selected data storage flag 108) to the selected data storage unit 109, and a storage destination address (storage address information 128A) so as to store only the data to be used by the application 104 in the selected data storage unit 109.
[0036] 4A, the configuration of the data extraction unit 108 will be described. The data extraction unit 108 includes an address data extraction unit 600, a selection signal generation unit 601, and a timing adjustment unit 602.
[0037] All received data 126 from the received data holding unit 106 is input to the address data extraction unit 600 and timing adjustment unit 602 in the form of serial data as shown in FIG. 4B, starting with the data stored at address R0 (Data0 (header information + data body)).
[0038] The address data extraction unit 600 extracts address data 610 (R 0 , R 1 , R 2 , . . . ) of the received data holding unit 106 for each piece of data contained in the received total data 126 , and passes it to a selection signal generation unit 601 .
[0039] Based on the address correspondence information 125 output from the address correspondence information generation unit 107, the selection signal generation unit 601 outputs a selection signal that determines which of all the received data is to be stored in the selected data storage unit, and if so, in which address the data is to be stored.
[0040] That is, by receiving address correspondence information 125, the selection signal generation unit 601 shares contents similar to decision table 302A shown in FIG. 3D as selection table 400 shown in FIG. 4C, and compares address data 610 (R0, R1, R2, ...) from the address data extraction unit 600 with the "received data holding unit address 400A" of the selection table 400, and transmits the corresponding stored contents of "selection data holding unit storage flag 400B" and "selection data holding unit storage address 400C" to the selection data holding unit 109 as selection data storage flag 128 and storage address information 128A, respectively.
[0041] In this embodiment, for each received data with address data 610 of "R0", "R1", "R2", "R3", "R4", "R5", and "R6", "1 (store), 0 (do not store), 0", "1", "1", "0", and "1" are output as selected data storage flag 128, and "S0", "-", "-", "S1", "S2", "-", and "S3" are output as storage address information 128A. (Since "-" in storage address information 129 is an unused signal, it is also possible to transmit the immediately previous output value as is, or to transmit a fixed value such as ALL "0" or ALL "1".)
[0042] The timing adjustment unit 602 performs delay processing or the like on all input received data 126 as necessary in order to match the transmission timing of the selected data storage flag 128 and storage address information 128A transmitted from the selection signal generation unit 601 to the selected data holding unit 109 with the corresponding data of all received data 126. In addition, the address data (R0, R1, R2, ...) of the received data holding unit 106 included in the all received data 126 may be deleted. The data subjected to the above processing by the timing adjustment unit 602 is transmitted to the selected data holding unit 109 as extracted data 127 together with the selected data storage flag 128 and storage address information 128A. (3-5) Selection data storage section (3-5-1) Configuration and Functionality Overview 5A, the configuration of the selected data holding unit 109 will be described. The selected data holding unit 109 includes a selected data buffer 901, a buffer management unit 902, and a buffer timer 903.
[0043] The selected data buffer 901 stores the extracted data 127 extracted by the data extracting unit 108, and is realized by a memory device as shown in Fig. 5B, but since it stores only the selected data, it can be implemented with a smaller storage capacity than the memory device of the received data holding unit 106. The capacity of the memory device may be determined according to the application, the specifications of the control device to be implemented, the capabilities of the CPU 102, etc.
[0044] When storing the received extracted data 127, the selected data storage flag 128 and storage address information 128A output by the data extraction unit 108 are referenced, and if the storage flag 128 is "1", the data is stored at the address indicated by the simultaneously received storage address 128A. In other words, if the selected data buffer 901 is a general memory device, the received extracted data 127, selected data storage flag 128, and storage address information 128A correspond to write data, a write enable signal, and a write address signal, respectively.
[0045] On the other hand, the data stored in the selected data buffer 901 is read out by a control signal 911 from a buffer management unit 902, and is sent as selected data 129 to the application 104 of the CPU 102 at a predetermined timing. (3-5-2) Functions of the buffer management unit The buffer management unit 902 manages the usage status of the selected data buffer 901 and generates the above-mentioned read control signal, and also transmits free space information to the address correspondence information generation unit 107 as "selected data storage unit information 124", and transmits to the data transfer judgment unit 110 the presence or absence of data that has been stored in the selected data buffer 901 but has not yet been read out as "selected data update information 130".
[0046] 5C, the buffer management unit 902 holds whether data is stored for each address of the selected data buffer 901, and the time when data was last stored for each address. That is, if the input selected data storage flag 128 is "1", the flag that manages the presence or absence of data is updated to "1", and the update time is recorded by referring to the buffer timer 903.
[0047] In management table 902A, 902A1 indicates each address of selected data buffer 901. 902A2 is the received selected data storage flag 128, where "1" indicates "store" and "0" indicates "do not store." 902A3 indicates the presence or absence of data, where "1" indicates "data present" and "0" indicates "no data." Considering situations where data was not written for some reason even though the received selected data storage flag 128 is "1," selected data storage flag 902A2 and data presence or absence 902A3 are managed separately, but since the two usually match, they may be managed as a single "data presence or absence 902A3."
[0048] An arbitrary timing is set as a reference time, and the relative time (elapsed time) at which data was written to the selected data buffer 901 is recorded as the update time 902A4, measured by the buffer timer 903. The reference time may be updated by a trigger such as an application update or a system restart.
[0049] Based on the management table 902A, the buffer management unit 902 transmits free addresses of the selected data buffer 901 to the address correspondence information generation unit 107 as the selected data storage unit information 124. For example, when the management table 902A has the contents shown in Fig. 5C, "S4, S5, S6, S7, S8,..." is transmitted as the selected data storage unit information 124 (free address information).
[0050] The selected data storage information 124 may be transmitted periodically at a predetermined cycle, or may be transmitted when a change occurs in an available address, or may be transmitted in response to a request from the address correspondence information generating unit 107.
[0051] Similarly, based on the management table 902A, the buffer management unit 902 transmits to the data transfer determination unit 110 the presence or absence of unsent data in the selected data buffer 901 as selected data update information 130. For example, when the management table 902A has the contents shown in Fig. 5C, there is data presence / absence 902A3 with "1", and therefore information that unsent data is "present" is transmitted.
[0052] The selected data update information 130 may be transmitted periodically at a predetermined cycle, or may be transmitted when there is a change in the presence or absence of untransmitted data, or may be transmitted in response to a request from the data transfer determination unit 110.
[0053] Furthermore, when the buffer management unit 902 receives a data transfer command 1212 from the data transfer judgment unit 110, it transmits to the selected data buffer 901 a “read command 911” for reading unsent data from the selected data buffer 901 and “read address information 911A” for specifying the address to read from, based on the management table 902A.
[0054] For example, when the management table 902A has the contents shown in FIG. 5C, the address where data presence / absence 902A3 is "1" is the data to be read, and in order to read data starting with the oldest update time 902A4 (the value with the smallest value), "1" indicating a read instruction is given as "read command 911", and "S0", "S1", "S2", and "S3" are given as "read address information 911A" to the selected data buffer 901, in that order.
[0055] As a result, “Data 0 ”, “Data 3 ”, “Data 4 ”, and “Data 6 ” are read out in this order as selected data 129 from the selected data buffer shown in FIG.
[0056] Then, for "S0," "S1," "S2," and "S3" in address 902A1 of management table 902A, selected data storage flag 902A2 and data presence / absence 902A3 are updated to "0," and in subsequent processing, it is recognized that there is no unsent (unread) data in these addresses.
[0057] It should be noted that the data recorded in the selected data buffer 901 does not necessarily have to be erased after the read process, since it will be overwritten in a later process.
[0058] Furthermore, when reading data from the selected data buffer 901 , the amount of all unread data and the processing capacity of the application 104 may be taken into consideration, and only a predetermined number of data items may be read and transmitted to the application 104 . (3-6) Data transfer decision unit 6A is a diagram showing the configuration of data transfer determination unit 110, which has transfer determination unit 1202 that determines the timing of data transfer to CPU 102, and transfer timer 1203 that outputs time information used to determine the timing of data transmission. Transfer timer 1203 transmits a signal prompting transfer determination unit 1202 to determine whether or not to transfer, and the current time, at a set cycle.
[0059] The transfer determination unit 1202 determines whether or not to transfer the data in the selected data buffer 901 to the CPU 102 based on the selected data update information 130 received from the buffer management unit 902 described above, and if it determines that the data should be transferred, it transmits a data transfer command 1212 to the buffer management unit 902. The transfer timer 1203 may be common to the buffer timer 903.
[0060] 6B shows the operation flow of the transfer determination unit 1202. First, a time that will be a trigger for determining whether or not to transfer is set in the transfer timer 1203 (step S1301), and the unit waits until a specified time has elapsed (No in step S1202).
[0061] When a trigger signal is output from the transfer timer after a specified time has elapsed (Yes in step S1302), the selected data update information 130 from the buffer management unit 902 is checked (step S1303), and if there is no unsent data in the selected data buffer 901 (No in step S1304), the process returns to the next trigger time set (step S1301). If there is unsent data (Yes in step S1304), a data transfer command is transferred to the buffer management unit 902 (step S1305). The above flow is repeated unless the system incorporating this data processing device is shut down (No in step S1306). If the system is shut down (Yes in step S1306), the process of the transfer determination unit is terminated. (4) Processing Unit (CPU) As described above, the arithmetic processing unit (CPU) 102 receives data from the data processing device 103 and performs a predetermined process using the application 104. The application 104 has one or more application software programs, each of which has a dedicated data access function built-in, and accesses data from the data processing device 103 and transmits access information 121 to the address correspondence information generating unit 107 to notify the type of the application software.
[0062] As described above, according to this embodiment, the data processing device 103 selects only the data to be used by the application 104 from the data received from the external device and sends it to the CPU 102, thereby making it possible to reduce the load on the CPU 102 related to data reception.
[0063] As a result, in a system in which multiple devices, such as industrial robots and power supply systems, send and receive data, even if some devices or applications are updated and unused data continues to be sent, the load on the CPU related to data reception processing is reduced, making it possible to achieve updatable, large-scale, complex control. EXAMPLES
[0064] A data processing device according to a second embodiment of the present invention will be described with reference to Fig. 7 to Fig. 9. The difference from the data processing device described in the first embodiment is the configurations and functions of the access information storage unit 300, the received data selection unit 301, and the storage destination determination unit in the address correspondence information generation unit 107 shown in Fig. 3A.
[0065] That is, the received data selection unit 301 in the first embodiment compares the information on the destination application application extracted from the header information of the received data with the information on the application running in the application 104, and selects the data to be sent to the CPU 102, whereas the received data selection unit 301 in the present embodiment compares the information on the transmission source device extracted from the header information of the received data with the transmission source device information of the data applied in the application 104, and selects the data to be sent to the CPU 102.
[0066] 7 shows an example of the contents stored in the access information storage unit 300 in this embodiment, and in this example, "device A" and "device D" are stored as source device information 300J of data applied in the application 104. Also, although not used in this embodiment, source device 300K of data for which application is currently temporarily suspended, and source device 300L of data that has been applied in the past but is not currently being applied may be stored.
[0067] FIG. 8 shows the configuration of selection table 301B in received data selection unit 301 of this embodiment, where application type information 301A2 of selection table 301A shown in FIG. 3C in embodiment 1 is replaced with source device information 301B2, and information on the data source device ("Device A", "Device B", etc.) is obtained from the header information and sequentially recorded as address 301B1 of received data storage unit 106 where the corresponding data is stored and source device information 301B2.
[0068] At the same time, according to the contents of the access information storage unit 300 (FIG. 7) described above, for data of the transmission source device in which the application is in progress, “Yes” is recorded in the application access 301B3, and for data of the transmission source device in which the application is not in progress, “No” is recorded. Finally, a selection table 301B as shown in FIG. 8 is created and output to the storage destination determination unit 302.
[0069] The operation of storage destination determination unit 302 is similar to that of the first embodiment, but instead of determination table 302A shown in FIG. 3D, storage destination determination unit 302 has determination table 302B shown in FIG. 9, and received data storage unit address 302B1, source device information 302B2, and application access 302B3 correspond to "received data storage unit address 301B1", "source device information 301B2", and "application access 301B3" in selection table 301B (FIG. 8), respectively.
[0070] Similar to the above-described received data selection unit 301, the storage destination determination unit 302 of this embodiment links information on the data transmission source device to each address of the selected data holding unit 109 instead of application type information. That is, similar to the first embodiment, the storage flag 302B4 of the selected data holding unit is assigned "1" to data for which the application access 302B3 is "Yes," and free addresses (S0, S1, S2, S3, ...) of the selected data buffer 901 of the selected data holding unit 109 are assigned to the storage address 302B5 of the selected data holding unit. The addresses may be assigned in order from the first address of the selected data holding unit to free addresses, or may be grouped together according to the transmission source device or the data format.
[0071] In the first embodiment, the application information is used to determine whether data access has occurred, and in the present embodiment, the source device information is used to determine whether data has been accessed. However, the application information and the source device information may be used to determine whether data has been accessed. The determination of the relevant data is not limited to the application information and the source device information, and the data format or the identification number may be used. The information used for the determination is not limited to one, and multiple pieces of information may be used.
[0072] The contents of decision table 302B are sent to data extraction unit 108 as address correspondence information 125, and thereafter, similarly to the first embodiment, only the data to be used by CPU 102 is sent.
[0073] As described above, in this embodiment, it is possible to select only data used by an application running on the mounted CPU from among data received from an external device based on information about the transmission source device, thereby reducing the load on the CPU involved in data reception. Also, it becomes unnecessary for the data transmission source device to transmit only data used by an application running on the transmission destination device, making it easier to update devices on the control system. EXAMPLES
[0074] A data processing device according to a third embodiment of the present invention will be described with reference to Fig. 10. In each of the above-mentioned embodiments, when a change occurs in an application being applied in the application 104, data required and unnecessary data for the CPU 102 (application 104) may also be changed accordingly. However, since the data stored in the selection data holding unit 109 is transferred to the CPU 102 in sequence at a predetermined timing, if the application is changed while data is being stored in the selection data holding unit 109, the selection data before the change and the selection data after the change are stored in the selection data holding unit 109 in a mixed state, and there is a possibility that data required and unnecessary data for the application 104 are sent to the CPU 102 in a mixed state.
[0075] In this embodiment, therefore, two data processing devices 103 (data processing device #1 (103) and data processing device #2 (103a)) are prepared, one of the data processing devices is operated, and before and after a change in application, etc., the operating data processing device is switched to the other data processing device in standby, thereby preventing data necessary for application 104 from being mixed with data unnecessary for application 104.
[0076] 10, data processing device #1 (103) and data processing device #2 (103a) have basically the same configuration as that shown in the first embodiment (FIG. 1A), and receive data 200 is input to both of them. A selector 111 selects either selection data 129a or 129b output from the data processing device #1, #2 (103, 103a) and transfers it to the CPU 102 (application 104).
[0077] The control unit 112 outputs a control signal 130 to the selector 111 based on the access information 121 from the application 104, and transfers the access information 121 as is to the data processing device in operation, and transmits information indicating that "there is no application in operation" (for example, "running application 300A" in FIG. 3A corresponds to a blank field) as access information to the data processing device in standby.
[0078] For example, if the data processing device #1 (103) is in operation and the data processing device #2 (103a) is in standby, the control unit 112 transfers the access information 121 from the application 104 as is to the data processing device #1 (103) as the access information 121a, transfers the information that "there is no application in operation" to the data processing device #2 (103a), and outputs a control signal 130 to the selector 111 to select the selection data 129a from the data processing device #1 (103).
[0079] By configuring in this manner, similarly to Example 1, etc., only the data used by the application 104 is transferred from the data processing device #1 (103) based on the access information 121, while in the data processing device #2 (103a), all the data stored in the received data storage unit 106 is removed by the data extraction unit 108, so that a state in which no data is stored in the selected data storage unit 109 continues.
[0080] Here, when an application installed in the data transmission source device or the control device is updated (added, deleted, changed), the control unit 112 transfers the updated access information 121b to the waiting data processing device #2 (103a), thereby starting the generation of the updated extraction rule (such as the selection table 400 in FIG. 4B) in the data extraction unit 108 of the data processing device #2 (103a). The generation of the extraction rule may also be triggered by various changes in circumstances, such as changes in the control target or surrounding environment, or changes in the control state. As the generation of the extraction rule is completed, the data processing device #2 (103a) begins to output the updated selection data 129b, and the selector 111 switches the data processing device that transmits data to the CPU 104 to #2 (103a).
[0081] The decision to update an application may be made by performing the above-mentioned switching each time a new addition, deletion, change, etc. occurs. However, since additions, deletions, changes, etc. may occur to different applications within a relatively short period of time, it may be possible to wait until a predetermined time has elapsed since the application update was detected, or until a predetermined time has elapsed since the increase in new update information has stopped (or since the increase per hour falls below a certain level).
[0082] In addition, the access information 121 may be transferred directly to the standby data processing device #2 (103a) to generate an extraction rule in the data extraction unit 108, and if there is a difference of a certain amount from the extraction rule generated last time or if there is data that has not been used for a certain period of time or more, the extraction rule may be changed to one that deletes unnecessary data that has not been used for a certain period of time or more.
[0083] As described above, according to this embodiment, the data processing device is configured as a dual-sided device, one of the data processing devices is operated, and before and after a change in application, etc., the operating data processing device is switched to the other standby data processing device, thereby preventing the mixing of data required by an application with unnecessary data. EXAMPLES
[0084] Instead of configuring the entire data processing device in a duplicated manner as in the third embodiment, the selection data retention unit may be configured in a duplicated manner. That is, as shown in Fig. 11, two selection data retention units 109 (selection data retention unit #1 (109) and selection data retention unit #2 (109a) are prepared, and data storage in selection data retention unit #1 (109) and #2 (109a) is switched before and after a change in the application, etc.
[0085] For example, when the device starts operating, the selected data 127 is written to the selected data holding unit 109#1 (109) in the same manner as in the first embodiment, and the written data is sequentially read out as transfer data 129a to the CPU 102, and transmitted to the CPU 102 as transfer data 129 via the selector 111x. Meanwhile, the data extracting unit 108 transmits control signals 140 and 140A to the selected data holding unit 109#2 (109a) so that the data 127 from the data extracting unit 108 is not written thereto. In other words, at that point in time, no data is written in the selected data holding unit 109#2 (109a).
[0086] Thereafter, if a change occurs in the data to be transferred to the CPU 102 due to a change in the application 104 or the like, the change in the application 104 or the like is used as a trigger to stop the transfer of data 129 from the selected data holding unit 109#1 (109) to the CPU 102, and update the extraction rules in the data extraction unit 108 in accordance with the contents of the changed application. The subsequent data 127 is written to the selected data holding unit 109#2 (109a) and is controlled to be sequentially transferred to the CPU 102 via the selector 111x as transfer data 129b.
[0087] The data transfer judgment unit 110 transmits a data transfer command 1212a or 1212b to the selected data holding unit #1 (109) or #2 (109a), and outputs a signal 1213 to the selector 111x to select either the selected data holding unit #1 (109) or #2 (109a) that is currently outputting data.
[0088] After the switching, all recorded contents of the selected data storage unit #1 (109) are reset, and when a new application is switched thereafter, the selected data storage unit #1 (109) functions as a switching destination from the selected data storage unit 109#2 (109a). As described above, according to this embodiment, instead of the entire data processing device being configured as a duplicated one as in the third embodiment, only the selected data storage unit is configured as a duplicated one, and data storage in the selected data storage unit is switched before and after a change in application, etc., so that it is possible to prevent data required for an application from being mixed with data not required for the application, as in the third embodiment. EXAMPLES
[0089] The configuration of the fifth embodiment will be described with reference to Fig. 12. In this embodiment, the data processing device 103 is arranged in a relay device 1801 separate from the control device 101 in which the CPU 102 is mounted.
[0090] The data processing device 103 extracts data to be used by the CPU 102 from the data transmitted from the transmission source device 1802 and transmits it to the control device 101 .
[0091] By adopting this configuration, even if it is not possible to install a data processing device 103 in a control device 101 equipped with a CPU due to reasons such as mounting space, it is possible to reduce the CPU load by suppressing unnecessary data reception as in the above-mentioned embodiment, and it also becomes easier to replace the control device 101.
[0092] Furthermore, a more flexible and efficient configuration can be adopted for system expansion, such as adopting a configuration in which transmission data is extracted by a single relay device 1801 for a plurality of control devices 101. EXAMPLES
[0093] The control device of each of the above embodiments can use a computer, tablet terminal, or the like connected via a wired or wireless connection to perform various settings and monitor various information during operation.
[0094] 13A to 13E are examples of display screens on such a personal computer or terminal. On the initial screen 1300A shown in FIG. 13A, the operator presses various setting button 1301 to make various settings, or presses monitoring button 1302 to monitor the device.
[0095] Pressing the various setting button 1301 enables various settings of the control device, and FIG. 13B is an example of a screen for setting rules for selecting data in the data processing device. Pressing the automatic setting button 1303 automatically sets the selection rules by receiving information on the type of application in operation from the application 104, as described in the first embodiment and the like. Pressing the manual setting button 1304 here displays a selection rule designation method selection screen 1300C shown in FIG. 13C. For example, when "(1) Designate an application using the CPU" 1305 is selected, an input window (not shown) is displayed, and the operator can input application type information. That is, the "operating application 300A" shown in FIG. 3B is manually set (input).
[0096] Returning to initial screen 1300A (FIG. 13A), pressing monitoring button 1302 will display display content selection screen 1300D shown in FIG. 13D. By pressing buttons for amount of data received by data processing device 1308, amount of data transferred to CPU 1309, and CPU load factor 1310, the respective values can be confirmed.
[0097] For example, when the data processing device's received data amount button 1308 is pressed, a screen 1300E as shown in Fig. 13E is displayed, where 1300E1 displays the amount of data received in the most recent period (1 hour, 6 hours, 12 hours) in bytes and packets (pct). Also, 1300E2 displays the change over time in a graph. Note that the amount of data transferred to the CPU 1309 and the CPU load factor 1310 can also be displayed in a similar manner.
[0098] In order to perform the above monitoring, the receiving unit 105 and selected data storage unit of the data processing device 103 have a function for monitoring the data volume and attributes of the data to be output, and the CPU 102 also has a function for monitoring the load factor of its operation, and these functions can be used to display the results on the screen. [Explanation of symbols]
[0099] 101: Control device 102:CPU 103: Data processing device 104: Application 105: Receiving unit 106: Received data storage unit 107: Address correspondence information generation unit 108: Data extraction section 109: Selection data storage unit 110: Data transfer decision unit
Claims
1. A control device comprising: a data processing device that outputs data to be used in an application among input data transmitted from an external device; and a calculation processing unit having the application that performs a predetermined calculation process using the data from the data processing device, The data processing device includes: A receiving unit that receives and processes the input data; a received data storage unit that stores the input data received by the receiving unit; a selected data holding unit that holds only data to be used by the arithmetic processing unit among the input data held in the received data holding unit, and outputs the held data in accordance with a received data transfer command; an address correspondence information generating unit that generates address correspondence information between an address of the input data stored in the received data storage unit and an address of the selected data storage unit that is a storage destination, from running application information indicating a type of an application running in the arithmetic processing unit; a data extraction unit that generates a control signal including a write address and whether each data in the received data holding unit can be written to the selected data holding unit based on the address correspondence information, and adds the control signal to the data output from the received data holding unit and supplies the data to the selected data holding unit; a data transfer determination unit that transmits the data transfer command to the selected data holding unit to transfer the data held in the selected data holding unit to the arithmetic processing unit; having The control device, wherein the arithmetic processing unit transmits type information of the application in operation to the address correspondence information generating unit.
2. The address correspondence information generating unit an access information storage unit that stores the running application information; a reception data selection unit that selects data to be transmitted to the arithmetic processing unit based on application destination application information indicating a type of the application destination application included in the input data and the running application information; a storage destination determination unit that associates the selection result by the received data selection unit with each address in the selected data holding unit; The control device according to claim 1 , further comprising:
3. The address correspondence information generating unit an access information storage unit that stores, instead of the running application information, applicable transmission source device information indicating a transmission source device to which the application running in the arithmetic processing unit is applied; a reception data selection unit that selects data to be transmitted to the arithmetic processing unit based on transmission source device information indicating a transmission source device included in the input data and the applicable transmission source device information; a storage destination determination unit that associates the selection result by the received data selection unit with each address in the selected data holding unit; The control device according to claim 1 , further comprising:
4. The data processing device includes a first data processing device and a second data processing device, operating the first data processing device and putting the second data processing device on standby; 2. The control device according to claim 1, wherein, when a change occurs in the application, the change is used as a trigger to stop the operation of the first data processing device and start the operation of the second data processing device.
5. the selection data storage unit includes a first selection data storage unit and a second selection data storage unit; Using the first selection data storage unit and not using the second selection data storage unit; 2. The control device according to claim 1, characterized in that, when a change occurs in the application, the change triggers the first selection data storage unit to be disabled and the second selection data storage unit to be started.
6. 2. The control device according to claim 1, wherein the application has a data access function for transmitting access information to the data processing device and for reading data transmitted from the data processing device.
7. Various settings and monitoring can be performed using an externally connected terminal. The various settings include settings of rules for selecting data to be transferred from the data processing device to the arithmetic processing unit, The monitoring includes: an amount of data received in the data processing device; an amount of data transferred to the arithmetic processing unit; and a load factor in the arithmetic processing unit. The control device according to any one of claims 1 to 6, characterized in that it comprises:
8. 2. A control system according to claim 1, further comprising: a first unit having said data processing device; and a second unit having said arithmetic processing unit.
9. 9. The control system of claim 8, A control system comprising a single said first device and a plurality of said second devices.
10. A control method comprising: a data processing step of outputting data to be used in an application from among input data transmitted from an external device; and an arithmetic processing step of performing a predetermined arithmetic processing by the application using the data output in the data processing step, The data processing step includes: receiving and processing said input data; storing the received and processed input data in a first storage unit; a step of holding in a second holding unit only data to be used in the arithmetic processing step out of the input data held in the first holding unit, and outputting the data held in the second holding unit in accordance with a received data transfer command; receiving running application information indicating a type of a running application in the arithmetic processing step, and generating address correspondence information between an address of the input data stored in the first storage unit and an address of the second storage unit as a storage destination; generating a control signal including a write address and whether each data in the first holding unit can be written to the second holding unit based on the address correspondence information, and adding the control signal to the data output from the first holding unit and providing the data to the second holding unit; transmitting the data transfer command to the second holding unit to transfer the data held in the second holding unit so as to perform the arithmetic processing; A control method comprising the steps of:
Citation Information
Patent Citations
Signal processing apparatus
JP2013003058A