WO2016009477A1 - 制御装置 - Google Patents
制御装置 Download PDFInfo
- Publication number
- WO2016009477A1 WO2016009477A1 PCT/JP2014/068714 JP2014068714W WO2016009477A1 WO 2016009477 A1 WO2016009477 A1 WO 2016009477A1 JP 2014068714 W JP2014068714 W JP 2014068714W WO 2016009477 A1 WO2016009477 A1 WO 2016009477A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- unit
- processing
- cpu
- information
- additional
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
Definitions
- This invention relates to a control device.
- the programmable controller is configured by mounting a CPU (Central Processing Unit) unit, an input / output unit, etc. on the base unit in combination (for example, see Patent Document 1). Data transfer is performed between the CPU unit and other units such as an input / output unit via a dedicated bus provided in the base unit. Arithmetic processing programmable by the user is basically performed by the CPU unit. However, if the CPU unit has insufficient arithmetic processing capability, or if it is desired to use a different programming language, a CPU unit may be added to the base unit to construct a multi-CPU system.
- a CPU Central Processing Unit
- the CPU unit has a problem that the position and the number of units mounted on the base unit are limited, and the parameters must be reset every time the configuration is changed.
- the power of the programmable controller has to be turned off once.
- the present invention has been made in view of the above, and in a programmable controller configured by mounting a CPU unit and another unit such as an input / output unit on a base unit, a user mounts it according to the application. It is an object of the present invention to obtain a control unit and an arithmetic unit that can freely change the number or configuration of units.
- a control device is a control device in which an additional unit can be attached to a base unit having a built-in bus, and when the additional unit is attached to the base unit, A management table update unit that sends an instruction to write the mounting position to the base unit to the unit management information including the type and position of the unit that is mounted on the base unit, and processing by another unit that is mounted on the base unit
- a master processing unit that sets a lower priority than the data to be transmitted and performs a transmission process of an access request to the other unit, and the master processing unit of the additional unit transmits / receives data to / from The processing is performed in order according to the priorities assigned.
- the management table update unit in the additional unit updates the unit management table in the CPU unit, and the master processing unit and slave processing unit of the CPU unit Since the master processing unit of the additional unit performs processing in order according to the priority assigned to the data to be transmitted / received, the arithmetic unit can be added without stopping and resetting the unit of the entire control device. It has the effect that it can be done.
- FIG. 1 is a diagram schematically illustrating an example of a configuration of a control device according to an embodiment.
- FIG. 2 is a diagram illustrating an example of the structure of the base unit.
- FIG. 3 is a block diagram schematically showing the functional configuration of the CPU unit.
- FIG. 4 is a block diagram schematically illustrating an example of the configuration of the unit management table.
- FIG. 5 is a block diagram schematically showing the functional configuration of the input unit.
- FIG. 6 is a block diagram schematically showing the functional configuration of the output unit.
- FIG. 7 is a block diagram schematically showing the functional configuration of the arithmetic unit.
- FIG. 8 is a flowchart illustrating an example of sequence processing in the control device.
- FIG. 8 is a flowchart illustrating an example of sequence processing in the control device.
- FIG. 9 is a flowchart illustrating an example of a procedure of a unit management table update process by adding an arithmetic unit according to the embodiment.
- FIG. 10 is a block diagram schematically showing an example of the internal configuration of the bus master of the CPU unit and the bus slave of the base unit.
- FIG. 11 is a flowchart illustrating an example of a procedure of packet transmission processing by the bus master of the CPU unit according to the embodiment.
- FIG. 12 is a flowchart illustrating an example of a procedure of packet reception processing by the bus master of the CPU unit according to the embodiment.
- FIG. 13 is a block diagram schematically showing an example of the internal configuration of the bus master of the base unit and the bus slave of the input unit.
- FIG. 14 is a flowchart illustrating an example of a procedure of packet reception processing by the bus slave of the input unit according to the embodiment.
- FIG. 15 is a flowchart illustrating an example of a procedure of packet transmission processing by the bus slave of the input unit according to the embodiment.
- FIG. 16 is a flowchart illustrating an example of a determination processing procedure that indicates whether or not addition processing can be added by an additional unit during the calculation processing idle time.
- FIG. 17 is a flowchart illustrating an example of a processing procedure when an error occurs in the communication test after adding the arithmetic unit according to the embodiment.
- FIG. 1 is a diagram schematically illustrating an example of a configuration of a control device according to an embodiment.
- the control device is a programmable controller that executes predetermined arithmetic processing based on input data from an external input device, for example, and outputs a calculation result to the external output device to control the operation of the control target.
- the control device includes a base unit 10 that electrically connects the units, and units such as a CPU unit 11, an input unit 12, an output unit 13, and an arithmetic unit 14 that are attached to the base unit 10.
- An external input device 21 is connected to the input unit 12, and an external output device 22 is connected to the output unit 13.
- the base unit 10 fixes each unit connected to the base unit 10 and has a plurality of dedicated buses so that communication can be performed between the units.
- FIG. 2 is a diagram illustrating an example of the structure of the base unit.
- the base unit 10 includes a plurality of bus masters 101, a plurality of bus slaves 102, and a bus switch 103 that connects between the bus masters 101 and the bus slaves 102.
- the bus master 101 is connected to a bus slave (slave processing unit) of a unit to be connected, and sends an instruction such as an operation request to the connected bus slave.
- the bus slave 102 is connected to the bus master (master processing unit) of the connected unit and responds to an instruction such as an operation request from the connected bus master.
- the bus switch 103 performs a process of switching paths so that communication is performed between the bus master 101 and the bus slave 102 in the base unit 10.
- the CPU unit 11 performs a process including a control process in the entire control device and a calculation process according to a control program created by the user.
- FIG. 3 is a block diagram schematically showing the functional configuration of the CPU unit.
- the CPU unit 11 includes an arithmetic processing unit 111, an I / O control unit 112, a unit management unit 113, a unit management table 114, a bus master 115, and a bus slave 116.
- the arithmetic processing unit 111 performs arithmetic processing according to a program created by the user, for example. Specifically, the arithmetic processing unit 111 performs arithmetic processing based on the data read from the input unit 12 via the I / O control unit 112 and outputs the processing result via the I / O control unit 112 to the output unit. Write to 13.
- the I / O control unit 112 controls access to the input unit 12 and the output unit 13.
- the I / O control unit 112 is connected to the bus master 115, and accesses the input unit 12 and the output unit 13 by outputting a write request and a read request from the bus master 115 to the base unit 10 (bus).
- the unit management unit 113 manages the connection positions of the CPU unit 11, the input unit 12, the output unit 13, and the arithmetic unit 14 to the base unit 10. Further, the unit management unit 113 sets the connection position when starting up the input unit 12 and the output unit 13 and the communication during normal operation via the I / O control unit 112 according to the information stored in the unit management table 114. Do the test.
- the unit management table 114 is a unit management information storage unit, and is information for managing the connection positions of the CPU unit 11, the input unit 12, the output unit 13, and the arithmetic unit 14 to the base unit 10. Since the unit management table 114 is also connected to the bus slave 116, reading or rewriting by the arithmetic unit 14 via the base unit 10 is also performed.
- FIG. 4 is a block diagram schematically showing an example of the configuration of the unit management table.
- the unit management table 114 includes an access arbitration unit 1141 that arbitrates access from the unit management unit 113 and the bus slave 116, a first table 1143 and a second table 1144 that are management information for storing connection position data of each unit, A valid table flag 1142 that is valid instruction information indicating which of the first table 1143 and the second table 1144 is valid.
- the connection position data is data indicating to which position (bus) of the base unit 10 each unit such as the CPU unit 11, the input unit 12, the output unit 13, and the arithmetic unit 14 is connected. .
- the base unit 10 has a plurality of buses for connection to each unit.
- the bus master 115 is a master processing unit that is connected to the bus slave 102 of the base unit 10 and sends out an operation request for accessing the bus slave 102.
- the bus slave 116 is a slave processing unit that is connected to the bus master 101 of the base unit 10 and performs a response process to an operation request from the bus master 101.
- the input unit 12 has a function of sending a signal from the external input device 21 such as a sensor to the CPU unit 11 or the arithmetic unit 14 in response to a read request from the CPU unit 11 or the arithmetic unit 14.
- FIG. 5 is a block diagram schematically showing the functional configuration of the input unit.
- the input unit 12 performs processing for an external input detection unit 121 that acquires and stores a state of a signal input from the external input device 21 and an access request from the CPU unit 11 or the arithmetic unit 14 to the external input detection unit 121.
- a communication test check unit 123 that performs a communication test between the bus slave 122 that is a slave processing unit and the CPU unit 11, and displays an error when an error occurs in the communication test check unit 123, and is removed as a single unit And an error display unit 124 for stopping the operation.
- the output unit 13 receives information calculated by the CPU unit 11 or the arithmetic unit 14 in response to a write request from the CPU unit 11 or the arithmetic unit 14, and outputs this information to an external output device 22 such as a servo or an actuator. It has a function.
- FIG. 6 is a block diagram schematically showing the functional configuration of the output unit.
- the output unit 13 includes an external output control unit 131 that outputs a signal for controlling the state of the external output device 22, and a bus slave 132 that performs processing for an access request from the CPU unit 11 or the arithmetic unit 14 to the external output control unit 131.
- the communication test check unit 133 performs a communication test with the CPU unit 11 and an error occurs in the communication test check unit 133, an error is displayed and the unit is stopped so that the unit can be detached. And an error display unit 134.
- the arithmetic unit 14 is a unit that performs arithmetic processing in accordance with, for example, a program created by a user. When the CPU unit 11 lacks arithmetic processing capability, it is desired to perform processing using a programming language different from that of the CPU unit 11. In some cases, the base unit 10 is additionally connected.
- FIG. 7 is a block diagram schematically showing the functional configuration of the arithmetic unit.
- the arithmetic unit 14 includes an arithmetic processing unit 141 that performs arithmetic processing, an I / O control unit 142 for accessing the input unit 12 and the output unit 13, and a management table update that updates the unit management table 114 of the CPU unit 11.
- a bus master 144 that is a master processing unit that makes an operation request to the CPU unit 11, the input unit 12, or the output unit 13, and a bus slave 145 that is a slave processing unit that performs a response process to the operation request from the CPU unit 11.
- a communication test check unit 146 that performs a communication test with the CPU unit 11, and displays an error when an error occurs in the communication test check unit 146, and puts the unit into a stopped state so that the unit can be detached.
- the arithmetic processing unit 141, the I / O control unit 142, and the bus master 144 have the same functions as the arithmetic processing unit 111, the I / O control unit 112, and the bus master 115 of the CPU unit 11.
- the management table update unit 143 accesses the unit management table 114 of the CPU unit 11, and when there is no empty position in the base unit 10 or when an abnormality occurs in accessing the unit management table 114, the management table update unit 143 An error state is set in the error display unit 147. As a result, the arithmetic unit 14 switches to the error display mode, and enters a stopped state so that the unit can be detached alone.
- the configuration of the control device shown in FIG. 1 is an example, and the user can freely change the number of units or the configuration according to the application.
- the CPU unit 11 has a function of managing the configuration of the entire system, there are restrictions on the mounting position and the number of mounted units on the base unit 10.
- the arithmetic unit 14 does not have a management function, there are no restrictions on the mounting position and the number of mounted units on the base unit 10. 1 shows an example in which the CPU unit 11, the input unit 12, the output unit 13, and the arithmetic unit 14 are attached to the base unit, but other units such as a communication unit may be attached. .
- FIG. 8 is a flowchart illustrating an example of sequence processing in the control device.
- the sequence process is repeatedly executed based on a program created by the user.
- the input unit 12 takes in information of the external input device 21 (step S11).
- the CPU unit 11 or the arithmetic unit 14 reads input data from the input unit 12 (step S12). Thereafter, arithmetic processing is performed based on the data read by the CPU unit 11 or the arithmetic unit 14 (step S13).
- the CPU unit 11 or the arithmetic unit 14 writes the operation result in the output unit 13 (step S14).
- the output unit 13 controls the external output device 22 (step S15).
- step S11 the process returns to step S11, and the processes of steps S11 to S15 are executed at a predetermined cycle.
- This sequence process is executed at a predetermined cycle. For example, a communication test process by the unit management unit 113 of the CPU unit 11 may be performed during the repeated sequence process.
- FIG. 9 is a flowchart illustrating an example of a procedure of a unit management table update process by adding an arithmetic unit according to the embodiment.
- the management table updating unit 143 of the arithmetic unit 14 includes the I / O control unit 142, the bus master 144, and the base unit 10.
- the unit management table 114 of the CPU unit 11 is accessed to read the valid table flag 1142 (step S32).
- the access request issued from the management table update unit 143 to the unit management table 114 is subjected to arbitration control by the access arbitration unit 1141 inside the unit management table 114.
- step S33 when access to the unit management table 114 from the unit management unit 113 of the CPU unit 11 is being executed, the process waits until the access is completed. However, if the unit management unit 113 of the CPU unit 11 does not access the unit management table 114, it can be accessed immediately. Thereafter, it is determined whether correct information (valid table flag 1142) has been read (step S33).
- step S33 the management table update unit 143 reads a valid table (first table 1143 or second table 1144) based on the valid table flag 1142 (step 1). S34). Thereafter, it is confirmed whether correct information (table) has been read (step S35). If the correct information can be read (Yes in step S35), it is determined from the read valid table whether there is an empty position in the base unit 10 (step S36).
- the management table update unit 143 reads the connection position to the currently vacant base unit 10 and vacates the arithmetic unit 14.
- the update table data added to is generated (step S37).
- the update table data is written in the currently invalid table (second table 1144 or first table 1143) (step S38). That is, the table in which the valid table flag 1142 is valid stores the table data before the calculation unit 14 is mounted, and the calculation unit 14 is mounted in the invalid table.
- the subsequent table data (update table data) is stored.
- the management table update unit 143 reads the currently invalid table data in which the update table data has been written (step S39), and determines whether the update table data has been read (step S40). If the update table data can be read (Yes in step S40), the management table update unit 143 updates the valid table flag 1142 (step S41). That is, a table that is currently invalidated (a table in which updated table data is written) is validated. As a result, the table read in step S32 becomes invalid. Thus, the update of the unit management table 114 is normally completed.
- step S36 If the valid table flag 1142 cannot be read normally in step S33 (No in step S33), or if the valid table cannot be read normally in step S35 (No in step S35), in step S36 If the base unit 10 has no empty position (No in step S36), or if the update table data cannot be read normally in step S40 (No in step S40), the arithmetic unit 14 is displayed as an error. The mode is switched (step S42). Then, the management table updating unit 143 stops updating the valid table flag 1142 and puts it in a stopped state so that it can be removed by the attached arithmetic unit 14 without turning off the power of the entire control device (step S43). . That is, the valid table flag 1142 validates the currently valid table read in step S34, not the invalid table updated with the update table data in step S38. As a result, the updating process of the unit management table 114 is abnormally terminated.
- the updated data of the unit management table 114 is read from the unit management unit 113, and a communication test during normal operation is also performed on the added arithmetic unit 14. If an abnormality is detected in the communication test by the unit management unit 113 of the CPU unit 11 after adding the arithmetic unit 14, the unit management unit 113 sets the valid table flag 1142 to the state before the change in step S41. Return and validate the table during normal operation (used before update). After the valid table flag 1142 is returned, the arithmetic unit 14 is switched to the error display mode, and is brought into a stopped state so that the unit can be detached alone without turning off the power of the entire control device.
- the case where the arithmetic unit 14 is mounted on the base unit is taken as an example.
- the management table update unit, the I / O control unit, and the unit to be mounted for example, the input unit 12 or the output unit 13.
- the bus master By providing the bus master, it is also possible to realize the unit equipped with the update processing of the unit management table 114 of the CPU unit 11 as in the case of the arithmetic unit 14 described above.
- FIG. 10 is a block diagram schematically showing an example of the internal configuration of the bus master of the CPU unit and the bus slave of the base unit.
- the bus connecting the bus master 115 of the CPU unit 11 and the bus slave 102 of the base unit 10 is configured as a full duplex in which the transmission bus 71 and the reception bus 72 are separated. For this reason, the CPU unit 11 can read data from the input unit 12 using the reception bus 72 simultaneously with the CPU unit 11 writing data to the output unit 13 using the transmission bus 71.
- the write request, write data, read request, and read data are all exchanged between the bus master 115 and the bus slave 102 as packet data.
- the bus master 115 includes an access generation unit 51, a transmission buffer 52, a packet transmission processing unit 53, a reception buffer 54, a packet reception processing unit 55, an access analysis unit 56, a priority table 57, and interruption data information 58. And having.
- the access generation unit 51 packetizes an access request (for example, a write request or a read request) from the I / O control unit 112 to another unit and sends the packet to the transmission buffer 52.
- the transmission buffer 52 stores packet data to be transmitted.
- the transmission buffer 52 can store a plurality of packet data.
- the packet transmission processing unit 53 transmits the packet data stored in the transmission buffer 52 according to the priority table 57 to the base unit 10 via the transmission bus 71.
- the packet transmission processing unit 53 interrupts the packet data transmission processing currently being processed, After writing to the interruption data information 58 indicating the transmission interruption position, transmission processing of packet data having a high priority is performed. Then, after the packet data transmission process with high priority is completed, the transmission process of the interrupted packet data written in the interrupt data information 58 is resumed.
- the reception buffer 54 is connected to the reception bus 72 and stores packet data received from the base unit 10 via the reception bus 72.
- the reception buffer 54 can store a plurality of packet data.
- the packet reception processing unit 55 issues the packet data stored in the reception buffer 54 to the access analysis unit 56 according to the priority table 57.
- the packet reception processing unit 55 interrupts the issuance processing of the packet data currently being processed, and determines the interruption position of the packet data being issued. After writing to the interruption data information 58, the packet data with high priority is issued. Then, after the issuance processing of the high priority packet data is completed, the issuance processing of the suspended packet data written in the suspension data information 58 is resumed.
- the access analysis unit 56 converts the packet data into a signal that can be processed by the I / O control unit 112, and passes the converted signal to the I / O control unit 112. This signal is a response to an access request, for example.
- the priority table 57 is information indicating the correspondence between the packet data stored in the transmission buffer 52 and the reception buffer 54 and the priority.
- the priority indicates the priority order of processing.
- the interruption data information 58 is a packet data with a low priority (currently being processed) when packet data having a higher priority than the packet data is stored during the processing of the packet data in the transmission buffer 52 or the reception buffer 54.
- Information indicating the transmission position of the packet data that is, the restart position of the packet data transmission process.
- the bus slave 102 of the base unit 10 includes an access generation unit 61, a transmission buffer 62, a packet transmission processing unit 63, a reception buffer 64, a packet reception processing unit 65, an access analysis unit 66, and a priority table 67. , Interruption data information 68. Except for the packet transmission processing unit 63 connected to the reception bus 72 and the reception buffer 64 connected to the transmission bus 71, the functions of the processing units are the same as the processing units constituting the bus master 115 of the CPU unit 11 described above. It is the same.
- FIG. 11 is a flowchart illustrating an example of a procedure of packet transmission processing by the bus master of the CPU unit according to the embodiment.
- the I / O control unit 112 of the CPU unit 11 issues an access request such as a write request / read request to the input unit 12 or the output unit 13 (step S51).
- the access request issued from the I / O control unit 112 is converted into packet data by the access generation unit 51 inside the bus master 115 (step S52) and stored as new packet data in the transmission buffer 52 (step S53). Since the transmission buffer 52 can hold a plurality of packet data, there may be a case where residual packet data before transmission to the base unit 10 remains in the transmission buffer 52. For this reason, the packet transmission processing unit 53 checks whether there is any residual packet data in the transmission buffer 52 (step S54).
- the packet transmission processing unit 53 acquires the priority of the residual packet data and new packet data in the transmission buffer 52 from the priority table 57. Which priority is higher is determined (step S55).
- the packet transmission processing unit 53 performs transmission processing of transmission data (residual packet data) currently being transmitted to the base unit 10. Is interrupted (step S57), and a transmission resumption location indicating how far the residual packet data has been transmitted is written in the interrupt data information 58 (step S58).
- the packet transmission processing unit 53 transmits the transmission data (residual packet data) currently being transmitted as it is (Ste S59).
- the residual packet data is deleted from the transmission buffer 52 (step S60).
- step S58 When there is no residual packet data in the transmission buffer 52 in step S54 (Yes in step S54), after step S58 or after step S60, the packet transmission processing unit 53 stores the new packet data stored in the transmission buffer 52. Is transmitted (step S61). When the transmission of the new packet data is completed, the new packet data is deleted from the transmission buffer 52 (step S62).
- the packet transmission processing unit 53 checks whether there is residual packet data in the transmission buffer 52 (step S63). When there is no residual packet data in the transmission buffer 52 (Yes in step S63), the processing for issuing an access request to the base unit 10 is completed.
- the packet transmission processing unit 53 confirms the transmission restart location stored in the interruption data information 58 (step S64). Residual packet data stored in the transmission buffer 52 is transmitted based on the transmission restart location (step S65). Then, after the transmission of the residual packet data is completed, the residual packet data is deleted from the transmission buffer 52 (step S66). Thus, the process for issuing an access request to the base unit 10 is completed.
- FIG. 12 is a flowchart illustrating an example of a procedure of packet reception processing by the bus master of the CPU unit according to the embodiment.
- the packet data returned from the base unit 10 is stored as new packet data in the reception buffer 54 inside the bus master 115 of the CPU unit 11 (step S71).
- the packet reception processing unit 55 checks whether there is any residual packet data in the reception buffer 54 (step S72).
- the packet reception processing unit 55 acquires the priority of the residual packet data and new packet data in the reception buffer 54 from the priority table 57. Which priority is higher is determined (step S73).
- the packet reception processing unit 55 transmits the transmission data (residual packet data) currently being issued to the access analysis unit 56.
- the processing is interrupted (step S75), and a transmission resuming point indicating how much residual packet data has been issued is written in the interrupt data information 58 (step S76).
- the packet reception processing unit 55 uses the transmission data (residual packet data) currently issued as it is as the access analysis unit. Issued to 56 (step S77).
- the residual packet data is deleted from the reception buffer 54 (step S78).
- step S76 When there is no residual packet data in the reception buffer 54 in step S72 (in the case of Yes in step S72), after step S76 or after step S78, the packet reception processing unit 55 stores the new packet data stored in the reception buffer 54. Is issued to the access analysis unit 56 (step S79). When the issuance of new packet data is completed, the new packet data is deleted from the reception buffer 54 (step S80).
- the packet reception processing unit 55 confirms whether there is residual packet data in the reception buffer 54 (step S81). If there is no residual packet data in the reception buffer 54 (Yes in step S81), the packet data issuance processing to the access analysis unit 56 is completed.
- the packet reception processing unit 55 confirms the transmission resumption location stored in the interruption data information 58 (step S82). Residual packet data stored in the reception buffer 54 is issued to the access analysis unit 56 based on the transmission restart location (step S83). Then, after the issuance of the residual packet data is completed, the residual packet data is deleted from the reception buffer 54 (step S84). Thus, the packet data issuance processing to the access analysis unit 56 is completed.
- the access analysis unit 56 of the CPU unit 11 analyzes the data issued from the reception buffer 54, and when the read data is returned, the process of passing the read data to the I / O control unit 112 is performed. Do.
- FIG. 13 is a block diagram schematically showing an example of the internal configuration of the bus master of the base unit and the bus slave of the input unit.
- the bus connecting the bus master 101 of the base unit 10 and the bus slave 122 of the input unit 12 is configured in full duplex in which the transmission bus 71 and the reception bus 72 are separated.
- the configuration of the bus master 101 of the base unit 10 has the same configuration as the bus master 115 of the CPU unit 11 of FIG. 10, and the configuration of the bus slave 122 of the input unit 12 is the same as the bus slave 102 of the base unit 10 of FIG. The description thereof will be omitted.
- FIG. 14 is a flowchart illustrating an example of a procedure of packet reception processing by the bus slave of the input unit according to the embodiment.
- the packet data issued from the base unit 10 is stored as new packet data in the reception buffer 64 inside the bus slave 122 of the input unit 12 (step S91).
- the packet reception processing unit 65 checks whether there is any residual packet data in the reception buffer 64 (step S92).
- the packet reception processing unit 65 acquires the priority of the residual packet data and new packet data in the reception buffer 64 from the priority table 67. Which priority is higher is determined (step S93).
- the packet reception processing unit 65 transmits the transmission data (residual packet data) currently being issued to the access analysis unit 66.
- the processing is interrupted (step S95), and a transmission resuming point indicating how much residual packet data has been issued is written in the interrupt data information 68 (step S96).
- the packet reception processing unit 65 uses the currently issued transmission data (residual packet data) as it is as the access analysis unit. 66 (Step S97). When the issuance of the residual packet data is completed, the residual packet data is deleted from the reception buffer 64 (step S98).
- step S92 When there is no residual packet data in the reception buffer 64 in step S92 (Yes in step S92), after step S96 or after step S98, the packet reception processing unit 65 creates new packet data stored in the reception buffer 64. Is issued to the access analysis unit 66 (step S99). When the issuance of new packet data is completed, the new packet data is deleted from the reception buffer 64 (step S100).
- the packet reception processing unit 65 confirms whether there is residual packet data in the reception buffer 64 (step S101). If there is no residual packet data in the reception buffer 64 (Yes in step S101), the packet data issuance processing to the access analysis unit 66 is completed.
- the packet reception processing unit 65 confirms the transmission restart location stored in the interruption data information 68 (step S102). Residual packets stored in the reception buffer 64 are issued to the access analysis unit 66 based on the transmission restart location (step S103). Then, after the issuance of the residual packet data is completed, the residual packet data is deleted from the reception buffer 64 (step S104). Thus, the packet data issuance processing to the access analysis unit 66 is completed.
- the access analysis unit 66 of the input unit 12 analyzes the data issued from the reception buffer 64, and in the case of a read request for external input data, performs a process of passing the read request to the external input detection unit 121.
- FIG. 15 is a flowchart illustrating an example of a procedure of packet transmission processing by the bus slave of the input unit according to the embodiment.
- the external input detection unit 121 of the input unit 12 analyzes the data issued from the reception buffer 64, acquires input data from the external input device 21 in the case of a read request, and generates an access for the bus slave 122.
- Read data (input data) is returned to the unit 61 (step S111).
- the read data returned from the external input detection unit 121 is converted into packet data by the access generation unit 61 inside the bus slave 122 (step S112) and stored as new packet data in the transmission buffer 62 (step S113). Since the transmission buffer 62 can hold a plurality of packet data, there may be a case where residual packet data before transmission to the base unit 10 remains in the transmission buffer 62. For this reason, the packet transmission processing unit 63 checks whether there is any residual packet data in the transmission buffer 62 (step S114).
- the packet transmission processing unit 63 acquires the priority of the residual packet data and new packet data in the transmission buffer 62 from the priority table 67. Which priority is higher is determined (step S115).
- the packet transmission processing unit 63 performs transmission processing of transmission data (residual packet data) currently being transmitted to the base unit 10. Is interrupted (step S117), and a transmission restart point indicating how far the residual packet data has been transmitted is written in the interrupt data information 68 (step S118).
- the packet transmission processing unit 63 transmits the transmission data (residual packet data) currently being transmitted as it is (Ste S119).
- the residual packet data is deleted from the transmission buffer 62 (step S120).
- the packet transmission processing unit 63 stores the new packet data stored in the transmission buffer 62. Is transmitted (step S121). When the transmission of the new packet data is completed, the new packet data is deleted from the transmission buffer 62 (step S122).
- the packet transmission processing unit 63 confirms whether there is residual packet data in the transmission buffer 62 (step S123). If there is no residual packet data in the transmission buffer 62 (Yes in step S123), the process of issuing read data to the base unit 10 is completed.
- the packet transmission processing unit 63 confirms the transmission resumption location stored in the interruption data information 68 (step S124). Residual packet data stored in the transmission buffer 62 is transmitted based on the transmission restart location (step S125). Then, after the transmission of the residual packet data is completed, the residual packet data is deleted from the transmission buffer 62 (step S126). As described above, the process of issuing read data to the base unit 10 is completed.
- the packet transmission / reception process in the bus slave 122 of the input unit 12 has been described as an example.
- the configuration of the bus slave in each unit is the same, so that it is provided in another unit. The same applies to the packet transmission / reception processing in the bus slave.
- the arithmetic unit 14 having the arithmetic processing function when the arithmetic unit 14 having the arithmetic processing function is further added to the control apparatus having the single CPU unit 11, the arithmetic unit 14 also performs bus access.
- the bus access timing of the CPU unit 11 that has been changed changes depending on the bus access timing of the arithmetic unit 14.
- access from the CPU unit 11 to the input unit 12 and the output unit 13 is set to a high priority, and the arithmetic unit 14 to the input unit 12 and the output unit 13 are set. Set access to low priority.
- the packet for updating the unit management table 114 in the arithmetic unit 14 Even when data is transmitted, if packet data from the CPU unit 11 is input to the base unit 10, the input unit 12, or the output unit 13, the packet data from the arithmetic unit 14 is prioritized and transmitted / received. Processing will be performed. As a result, the system configuration can be changed without changing the operation timing between the CPU unit 11 and the input unit 12 or the output unit 13 and without stopping the units of the entire control device. This is the same when packet data transmission / reception processing is performed from the arithmetic unit 14 after the system configuration is changed, without changing the operation timing between the CPU unit 11 and the input unit 12 or the output unit 13. The added arithmetic unit 14 can be operated.
- Control is performed by dynamically rewriting the priority tables 57 and 67 of the bus master and bus slave of each unit from the CPU unit 11 and adjusting the priority of packet data (inter-unit communication bandwidth priority). Depending on the operation mode of the device, maximum performance can be demonstrated each time.
- the priorities set in the priority tables 57 and 67 are managed by the unit management table 114 of the CPU unit 11. Update requests for the priority tables 57 and 67 are transmitted from the unit management unit 113 of the CPU unit 11 to each bus master and each bus slave at the same time.
- the CPU unit 11 may be provided with a function of managing the free time of the arithmetic processing executed by a plurality of units using a management table.
- a management table For example, in the unit management unit 113 of the CPU unit 11, the processing timing of the CPU unit 11 and the arithmetic unit 14 in the unit management table 114 of the CPU unit 11 (access timing to the input unit 12, access timing to the output unit 13, CPU Time table information for managing the calculation timing inside the unit 11 and the calculation processing timing of the calculation unit 14 may be possessed.
- the time table information is generated by the unit management unit 113 of the CPU unit 11 so that the control process is completed within the time specified by the user without competing for bus access between the CPU unit 11 and the arithmetic unit 14 as much as possible.
- the management table update unit 143 of the arithmetic unit 14 When adding the arithmetic unit 14 to an existing control system, the management table update unit 143 of the arithmetic unit 14 reads the current time table information, reflects the processing timing of the arithmetic unit 14, and then the time table of the CPU unit 11. Overwrite information.
- the update process of the time table information by the management table update unit 143 of the arithmetic unit 14 is included in the update process of the unit management table 114.
- the CPU unit 11 and the arithmetic unit 15 perform processing according to the time table information of the CPU unit 11.
- FIG. 16 is a flowchart illustrating an example of a determination processing procedure that indicates whether or not addition processing can be performed by an additional unit during an idle time of calculation processing.
- the management table update unit 143 of the arithmetic unit 14 acquires the time table information of the CPU unit 11 (step S132).
- the management table update unit 143 checks the free time of the current time table (step S133), and when the processing of the arithmetic unit 14 is added, the processing of the CPU unit 11 and the arithmetic unit 14 can be completed within the time specified by the user. Is determined (step S134).
- step S134 If it is determined that the process can be completed (Yes in step S134), the management table updating unit 143 overwrites the CPU unit 11 with the time table information to which the process of the arithmetic unit 14 is added (step S135), and the process ends. . On the other hand, if it is determined that the completion is not possible (No in step S134), the arithmetic unit 15 is switched to the error display mode without updating the management table of the CPU unit 11 (step S136), and the power supply of the entire control system is turned on. Without being dropped, the unit is stopped so that it can be removed alone (step S137), and the process ends.
- the management table updating unit 143 of the arithmetic unit 14 updates the priority table setting information together with the update of the time table information.
- the priority table setting information is also returned to the state before the arithmetic unit is added in the same manner as the time table information.
- FIG. 17 is a flowchart illustrating an example of a processing procedure when an error occurs in the communication test after adding the arithmetic unit according to the embodiment.
- the unit management unit 113 of the CPU unit 11 accesses the communication test check unit 146 of the arithmetic unit 14 (step S152).
- the unit management unit 113 of the CPU unit 11 When the unit management unit 113 of the CPU unit 11 fails to access the communication test check unit 146 of the arithmetic unit 14 (step S153), the unit management unit 113 of the CPU unit 11 adds the unit management table 114 to the arithmetic unit 14. Return to the previous state (step S154). For example, when the first table 1143 is validated by adding the arithmetic unit 14, the first table 1143 is invalidated and the second table 1144 is validated. When the second table 1144 is validated by adding the arithmetic unit 14, the second table 1144 is invalidated and the first table 1143 is validated.
- the communication test check unit 146 of the arithmetic unit 14 sets an error state in the error display unit 147 (step S155).
- the error display unit 147 of the arithmetic unit 14 switches to the error display mode (step S156) and puts it in a stopped state so that the unit can be detached (step S157). Thereby, it is possible to remove only the added arithmetic unit 14 while the entire control system is in an operating state.
- the management table update unit 143 in the computing unit 14 updates the unit management table 114 in the CPU unit 11.
- the arithmetic unit 14 can be added without stopping and resetting the units of the entire control apparatus.
- the user can freely change the number or configuration of units to be mounted on the base unit 10 according to the application.
- priority was set for communication between multiple units. For example, when adding a new unit, the management table update unit 143 of this unit lowers the priority of the access request for updating the unit management table 114, so that the CPU unit 11 does not change the operation timing.
- the unit management table 114 can be updated.
- the unit management unit 113 of the CPU unit 11 uses the idle time of the arithmetic processing in the arithmetic processing unit 111 to perform a communication test of a newly added unit. This also has an effect that it can be confirmed whether or not the newly added unit operates normally without changing the operation timing of the existing unit.
- control device is useful for a programmable controller that controls a control target according to a control program.
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
Abstract
バスを内蔵するベースユニットに追加ユニットを装着可能な制御装置において、追加ユニットは、ベースユニットに装着されると、追加ユニットのベースユニットへの装着位置をベースユニットに装着されるユニットの種類と位置とを含むユニット管理情報に書き込む指示を送る管理テーブル更新部(143)と、ベースユニットに装着される他のユニットで処理されるデータに比して低い優先度を設定して、他のユニットに対するアクセス要求の送信処理を行うマスタ処理部と、を備え、追加ユニットのマスタ処理部は、送受信するデータに対して付された優先度に従って、順に処理を行う。
Description
この発明は、制御装置に関するものである。
プログラマブルコントローラは、ベースユニットにCPU(Central Processing Unit)ユニット、入出力ユニットなどを組み合わせて装着することによって構成される(たとえば、特許文献1参照)。CPUユニットと入出力ユニットなどの他のユニットとの間では、ベースユニットに設けられる専用のバスを介してデータ転送が行われる。ユーザがプログラム可能な演算処理は基本的にはCPUユニットで行われる。しかし、CPUユニットでの演算処理能力が不足した場合、あるいは異なるプログラム言語を使用したい場合には、ベースユニットにCPUユニットを追加し、マルチCPUシステムを構築する場合がある。
しかしながら、CPUユニットには、ベースユニット上で装着する位置および台数に制約がある上、構成を変更する度にパラメータを設定し直さなければならないという問題点があった。また、CPUユニットまたは他のユニットをベースユニットに追加する場合には、プログラマブルコントローラの電源を一旦切らなければならないという問題点もあった。
さらに、既存のバスでは、同時に1台のCPUユニットしかバスを占有できないため、新たにCPUユニットを追加すると、元々設置されていたCPUユニットのバスアクセスのタイミングが変わってしまう。このため、既存のプログラマブルコントローラに演算機能を増設する場合には、必然的にCPUユニットを増設することになり、システム構成の変更および動作タイミングの再調整が発生し、増設後のシステムの立ち上げ、検証に時間がかかってしまうという問題点もあった。
この発明は上記に鑑みてなされたもので、ベースユニット上にCPUユニットと、入出力ユニットなどの他のユニットと、を装着して構成されるプログラマブルコントローラにおいて、使用者が用途に応じて装着するユニットの台数または構成を自由に変更することができる制御ユニットおよび演算装置を得ることを目的とする。
上記目的を達成するため、この発明にかかる制御装置は、バスを内蔵するベースユニットに追加ユニットを装着可能な制御装置において、前記追加ユニットは、前記ベースユニットに装着されると、当該追加ユニットの前記ベースユニットへの装着位置を前記ベースユニットに装着されるユニットの種類と位置とを含む前記ユニット管理情報に書き込む指示を送る管理テーブル更新部と、前記ベースユニットに装着される他のユニットで処理されるデータに比して低い優先度を設定して、前記他のユニットに対するアクセス要求の送信処理を行うマスタ処理部と、を備え、前記追加ユニットの前記マスタ処理部は、送受信するデータに対して付された優先度に従って、順に処理を行うことを特徴とする。
この発明によれば、制御装置に新たに追加ユニットを追加する場合に、追加ユニット中の管理テーブル更新部がCPUユニット中のユニット管理テーブルを更新するとともに、CPUユニットのマスタ処理部およびスレーブ処理部と、追加ユニットのマスタ処理部は、送受信するデータに対して付された優先度に従って順に処理を行うようにしたので、制御装置全体のユニットの停止および再設定を行うことなく、演算ユニットを追加することができるという効果を有する。
以下に添付図面を参照して、この発明の実施の形態にかかる制御装置を詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
図1は、実施の形態による制御装置の構成の一例を模式的に示す図である。制御装置は、たとえば外部入力装置からの入力データに基づいて予め定められた演算処理を実行し、演算結果を外部出力装置に出力して制御対象の動作を制御するプログラマブルコントローラである。制御装置は、ユニット間を電気的に接続するベースユニット10と、ベースユニット10に装着されるCPUユニット11、入力ユニット12、出力ユニット13および演算ユニット14などのユニットと、を備える。入力ユニット12には外部入力装置21が接続され、出力ユニット13には外部出力装置22が接続されている。
ベースユニット10は、ベースユニット10に接続される各ユニットを固定するとともに、各ユニット間で通信を行うことができるように専用のバスを複数有する。図2は、ベースユニットの構造の一例を示す図である。この図に示されるように、ベースユニット10は、複数のバスマスタ101と、複数のバススレーブ102と、これらのバスマスタ101とバススレーブ102との間を接続するバススイッチ103と、を有する。バスマスタ101は、接続されるユニットのバススレーブ(スレーブ処理部)と接続され、接続されるバススレーブに対する操作要求などの指示を送出する。バススレーブ102は、接続されるユニットのバスマスタ(マスタ処理部)と接続され、接続されるバスマスタからの操作要求などの指示に対して応答する。バススイッチ103は、ベースユニット10内のバスマスタ101とバススレーブ102との間で通信が行われるように、経路を切り替える処理を行う。
CPUユニット11は、制御装置全体での制御処理と、ユーザによって作成された制御プログラムに従った演算処理と、を含む処理を行う。図3は、CPUユニットの機能構成を模式的に示すブロック図である。CPUユニット11は、演算処理部111と、I/O制御部112と、ユニット管理部113と、ユニット管理テーブル114と、バスマスタ115と、バススレーブ116と、を有する。
演算処理部111は、たとえばユーザによって作成されたプログラムにしたがって演算処理を行う。具体的には、演算処理部111は、I/O制御部112を経由して、入力ユニット12から読み出したデータを基に演算処理を行い、処理結果をI/O制御部112経由で出力ユニット13に書き込む。
I/O制御部112は、入力ユニット12および出力ユニット13へのアクセスを制御する。I/O制御部112は、バスマスタ115と接続され、バスマスタ115からライト要求およびリード要求をベースユニット10(バス)に出力することによって、入力ユニット12と出力ユニット13に対するアクセスを行う。
ユニット管理部113は、CPUユニット11、入力ユニット12、出力ユニット13および演算ユニット14のベースユニット10への接続位置を管理する。また、ユニット管理部113は、ユニット管理テーブル114に格納された情報に従って、I/O制御部112を経由して、入力ユニット12と出力ユニット13の起動時の接続位置設定および通常動作時の通信テストを行う。
ユニット管理テーブル114は、ユニット管理情報記憶部であり、CPUユニット11、入力ユニット12、出力ユニット13および演算ユニット14のベースユニット10への接続位置を管理する情報である。ユニット管理テーブル114はバススレーブ116とも接続されているため、ベースユニット10を経由した演算ユニット14による読み出しまたは書き換えも行われる。
図4は、ユニット管理テーブルの構成の一例を模式的に示すブロック図である。ユニット管理テーブル114は、ユニット管理部113とバススレーブ116からのアクセスを調停するアクセス調停部1141と、各ユニットの接続位置データを格納する管理情報である第1テーブル1143および第2テーブル1144と、第1テーブル1143と第2テーブル1144のどちらが有効であるかを示す有効指示情報である有効テーブルフラグ1142と、を有する。ここで、接続位置データとは、CPUユニット11、入力ユニット12、出力ユニット13、演算ユニット14などの各ユニットがベースユニット10のどの位置(バス)に接続されているかを示すデータのことである。なお、図1のベースユニット10で説明したように、ベースユニット10は各ユニットと接続するために複数のバスを所有している。
バスマスタ115は、ベースユニット10のバススレーブ102と接続され、バススレーブ102に対してアクセスを行うための操作要求などを送出するマスタ処理部である。バススレーブ116は、ベースユニット10のバスマスタ101と接続され、バスマスタ101からの操作要求に対する応答処理を行うスレーブ処理部である。
入力ユニット12は、CPUユニット11または演算ユニット14からのリード要求に応じて、センサなどの外部入力装置21からの信号をCPUユニット11または演算ユニット14に送出する機能を有する。図5は、入力ユニットの機能構成を模式的に示すブロック図である。入力ユニット12は、外部入力装置21から入力される信号の状態を取得して格納する外部入力検出部121と、CPUユニット11または演算ユニット14から外部入力検出部121へのアクセス要求に対する処理を行うスレーブ処理部であるバススレーブ122と、CPUユニット11との間の通信テストを行う通信テストチェック部123と、通信テストチェック部123でエラーとなった場合にエラー表示を行うとともに、ユニット単体で取り外しが可能なように停止状態にするエラー表示部124と、を有する。
出力ユニット13は、CPUユニット11または演算ユニット14からのライト要求に応じて、CPUユニット11または演算ユニット14で演算された情報を受け取り、この情報をサーボまたはアクチュエータなどの外部出力装置22に出力する機能を有する。図6は、出力ユニットの機能構成を模式的に示すブロック図である。出力ユニット13は、外部出力装置22の状態を制御する信号を出力する外部出力制御部131と、CPUユニット11または演算ユニット14から外部出力制御部131へのアクセス要求に対する処理を行うバススレーブ132と、CPUユニット11との間の通信テストを行う通信テストチェック部133と、通信テストチェック部133でエラーとなった場合にエラー表示を行うとともに、ユニット単体で取り外しが可能なように停止状態にするエラー表示部134と、を有する。
演算ユニット14は、たとえばユーザによって作成されたプログラムにしたがって演算処理を行うユニットであり、CPUユニット11で演算処理能力が不足した場合、またはCPUユニット11とは異なるプログラミング言語を用いて処理を行いたい場合などに追加でベースユニット10に接続される。図7は、演算ユニットの機能構成を模式的に示すブロック図である。演算ユニット14は、演算処理を行う演算処理部141と、入力ユニット12および出力ユニット13にアクセスするためのI/O制御部142と、CPUユニット11のユニット管理テーブル114の更新を行う管理テーブル更新部143と、CPUユニット11、入力ユニット12または出力ユニット13に対する操作要求を行うマスタ処理部であるバスマスタ144と、CPUユニット11からの操作要求に対する応答処理を行うスレーブ処理部であるバススレーブ145と、CPUユニット11との間の通信テストを行う通信テストチェック部146と、通信テストチェック部146でエラーとなった場合にエラー表示を行うとともに、ユニット単体で取り外しが可能なように停止状態にするエラー表示部147と、を有する。演算処理部141、I/O制御部142およびバスマスタ144はCPUユニット11の演算処理部111、I/O制御部112およびバスマスタ115と同様の機能を有する。
なお、管理テーブル更新部143は、CPUユニット11のユニット管理テーブル114にアクセスし、ベースユニット10に空き位置がない場合あるいはユニット管理テーブル114へのアクセスで異常が発生した場合に、演算ユニット14のエラー表示部147にエラー状態をセットする。これによって、演算ユニット14がエラー表示モードに切り替わり、ユニット単体で取り外しが可能なよう停止状態となる。
また、図1に示した制御装置の構成は一例であり、使用者は用途に応じて、ユニットの台数または構成を自由に変更することができる。ただし、CPUユニット11はシステム全体の構成を管理する機能を有しているため、ベースユニット10への装着位置、装着台数に制約が設けられている。演算ユニット14については、管理機能をもたないため、ベースユニット10への装着位置および装着台数に関する制限はない。また、図1では、ベースユニットにCPUユニット11、入力ユニット12、出力ユニット13および演算ユニット14が装着される例が示されているが、通信ユニットなどの他のユニットが装着されていてもよい。
つぎに、このような制御装置全体の処理について説明する。図8は、制御装置におけるシーケンス処理の一例を示すフローチャートである。シーケンス処理は、ユーザによって作成されたプログラムに基づいて繰り返し実行される。まず、入力ユニット12が外部入力装置21の情報を取り込む(ステップS11)。ついで、CPUユニット11または演算ユニット14が入力ユニット12から入力データを読み出す(ステップS12)。その後、CPUユニット11または演算ユニット14が読み出したデータを基に演算処理を実施する(ステップS13)。ついで、CPUユニット11または演算ユニット14が演算結果を出力ユニット13に書き込む(ステップS14)。その後、出力ユニット13が外部出力装置22を制御する(ステップS15)。そして、ステップS11へと処理が戻り、上記のステップS11からS15の処理が予め定められた周期で実行される。このシーケンス処理は、予め定められた周期で実行されるが、たとえば繰り返し行われるシーケンス処理の間に、CPUユニット11のユニット管理部113による通信テスト処理などを行ってもよい。
図1で、演算ユニット14が接続されていない制御装置が、図8のシーケンス処理を実行している最中に、演算ユニット14が追加して接続される場合について説明する。演算ユニット14が制御装置(ベースユニット10)に正常に追加されると、CPUユニット11が有するユニット管理テーブル114が新しく更新される。
図9は、実施の形態による演算ユニットの追加によるユニット管理テーブル更新処理の手順の一例を示すフローチャートである。まず、演算ユニット14を稼働中の制御装置のベースユニット10に装着して追加すると(ステップS31)、演算ユニット14の管理テーブル更新部143は、I/O制御部142、バスマスタ144、ベースユニット10を経由して、CPUユニット11のユニット管理テーブル114にアクセスを行い、有効テーブルフラグ1142を読み出す(ステップS32)。このとき、管理テーブル更新部143からユニット管理テーブル114へ発行されたアクセス要求は、ユニット管理テーブル114内部のアクセス調停部1141で調停制御が行われる。たとえば、CPUユニット11のユニット管理部113からのユニット管理テーブル114へアクセスが実行されている場合には、アクセス終了まで待たされる。しかし、CPUユニット11のユニット管理部113がユニット管理テーブル114へアクセスしていない場合には、すぐにアクセスすることができる。その後、正しい情報(有効テーブルフラグ1142)が読み出せたかを判定する(ステップS33)。
正しい情報が読み出せた場合(ステップS33でYesの場合)には、管理テーブル更新部143は、有効テーブルフラグ1142に基づいて有効なテーブル(第1テーブル1143または第2テーブル1144)を読み出す(ステップS34)。その後、正しい情報(テーブル)を読み出せたかを確認する(ステップS35)。正しい情報を読み出せた場合(ステップS35でYesの場合)には、読み出した有効なテーブルからベースユニット10に空き位置があるかを判定する(ステップS36)。
ベースユニット10に空き位置がある場合(ステップS36でYesの場合)には、管理テーブル更新部143は、現在空いているベースユニット10への接続位置を読み出し、演算ユニット14を空いている接続位置に追加した更新テーブルデータを生成する(ステップS37)。そして、現在無効なテーブル(第2テーブル1144または第1テーブル1143)に更新テーブルデータを書き込む(ステップS38)。つまり、有効テーブルフラグ1142が有効となっているテーブルには、演算ユニット14が装着される前のテーブルデータが記憶される状態とし、無効となっているテーブルには、演算ユニット14が装着された後のテーブルデータ(更新テーブルデータ)が記憶されている状態となるようにしている。
その後、管理テーブル更新部143は、更新テーブルデータを書き込んだ現在無効なテーブルデータを読み出し(ステップS39)、更新テーブルデータを読み出せたかを判定する(ステップS40)。更新テーブルデータを読み出せた場合(ステップS40でYesの場合)には、管理テーブル更新部143は、有効テーブルフラグ1142を更新する(ステップS41)。すなわち、現在無効とされているテーブル(更新テーブルデータを書き込んだテーブル)を有効とする。これによって、ステップS32で読み出されたテーブルは無効となる。以上によって、ユニット管理テーブル114の更新が正常終了する。
ステップS33で有効テーブルフラグ1142を正常に読み出せなかった場合(ステップS33でNoの場合)、ステップS35で有効なテーブルを正常に読み出せなかった場合(ステップS35でNoの場合)、ステップS36でベースユニット10に空き位置がない場合(ステップS36でNoの場合)、あるいはステップS40で更新テーブルデータを正常に読み出せなかった場合(ステップS40でNoの場合)には、演算ユニット14をエラー表示モードに切り替える(ステップS42)。そして、管理テーブル更新部143は、有効テーブルフラグ1142の更新を中止し、制御装置全体の電源を落とさずに、装着した演算ユニット14単体で取り外しが可能なように停止状態にする(ステップS43)。つまり、有効テーブルフラグ1142は、ステップS38で更新テーブルデータで更新した無効なテーブルではなく、ステップS34で読み出した現在有効なテーブルを有効とするものである。以上によって、ユニット管理テーブル114の更新処理が異常終了する。
なお、管理テーブル更新部143からユニット管理テーブル114へのバスアクセスは、全て低優先(後述)で発行されるようにすることで、既存のCPUユニット11の動作タイミングを変更せずにユニット管理テーブル114の更新を行うことが可能である。
また、ユニット管理テーブル114の更新後のデータは、ユニット管理部113から読み出され、追加された演算ユニット14に対しても通常動作時の通信テストが実行される。なお、演算ユニット14を追加した後のCPUユニット11のユニット管理部113による通信テストで異常を検出した場合には、ユニット管理部113は、有効テーブルフラグ1142をステップS41での変更前の状態に戻して、正常動作時の(更新前に使用していた)テーブルを有効にする。有効テーブルフラグ1142を戻した後は演算ユニット14をエラー表示モードに切り替え、制御装置全体の電源を落とさずに、ユニット単体で取り外しが可能なよう停止状態にする。
さらに、上記した説明では、演算ユニット14をベースユニットに装着した場合を例に挙げたが、装着するユニット(たとえば入力ユニット12または出力ユニット13)に、管理テーブル更新部とI/O制御部とバスマスタとを設けることで、上記の演算ユニット14の場合と同様にCPUユニット11のユニット管理テーブル114の更新処理を装着したユニットでも実現することができる。
つぎに、ユニット中のバスマスタとベースユニット10中のバススレーブ102との間の通信処理について説明する。図10は、CPUユニットのバスマスタとベースユニットのバススレーブの内部構成の一例を模式的に示すブロック図である。CPUユニット11のバスマスタ115とベースユニット10のバススレーブ102とを接続するバスは、送信用バス71と受信用バス72が分離されている全二重で構成されている。このため、送信用バス71を使用してCPUユニット11が出力ユニット13にデータを書き込むのと同時に、受信用バス72を使用してCPUユニット11が入力ユニット12からデータを読み出すことが可能となる。また、この実施の形態では、ライト要求、ライトデータ、リード要求、リードデータは全てパケットデータとしてバスマスタ115とバススレーブ102との間でやりとりされる。
なお、バスマスタの構成は各ユニットで全て同じであるため、ここではCPUユニット11のバスマスタ115の場合を例に挙げて説明する。バスマスタ115は、アクセス生成部51と、送信バッファ52と、パケット送信処理部53と、受信バッファ54と、パケット受信処理部55と、アクセス解析部56と、優先度テーブル57と、中断データ情報58と、を有する。
アクセス生成部51は、I/O制御部112から他のユニットへのアクセス要求(たとえば、ライト要求またはリード要求)をパケット化して送信バッファ52に送る。送信バッファ52は、送信すべきパケットデータを格納する。送信バッファ52は複数のパケットデータを格納することができる。
パケット送信処理部53は、優先度テーブル57にしたがって送信バッファ52に格納されているパケットデータを、送信用バス71を介してベースユニット10に送信する。なお、パケット送信処理部53は、現在処理中のパケットデータよりも優先度の高いパケットデータが送信バッファ52に格納されると、現在処理中のパケットデータの送信処理を中断して、パケットデータの送信中断位置を示す中断データ情報58に書き込んだ後、優先度の高いパケットデータの送信処理を行う。そして、優先度の高いパケットデータの送信処理が完了した後、中断データ情報58に書き込まれた中断されたパケットデータの送信処理を再開する。
受信バッファ54は、受信用バス72に接続され、受信用バス72を介してベースユニット10から受信したパケットデータを格納する。受信バッファ54は複数のパケットデータを格納することができる。
パケット受信処理部55は、優先度テーブル57にしたがって受信バッファ54に格納されているパケットデータをアクセス解析部56に発行する。なお、パケット受信処理部55は、現在処理中のパケットデータよりも優先度の高いパケットデータを受信すると、現在処理中のパケットデータの発行処理を中断して、発行中のパケットデータの中断位置を中断データ情報58に書き込んだ後、優先度の高いパケットデータの発行処理を行う。そして、優先度の高いパケットデータの発行処理が完了した後、中断データ情報58に書き込まれた中断されたパケットデータの発行処理を再開する。
アクセス解析部56は、パケットデータをI/O制御部112で処理可能な信号に変換し、I/O制御部112に変換した信号を渡す。この信号は、たとえばアクセス要求に対する応答である。
優先度テーブル57は、送信バッファ52と受信バッファ54に格納されたパケットデータと優先度との対応関係を示す情報である。優先度は、処理の優先順序を示すものである。中断データ情報58は、送信バッファ52または受信バッファ54でのパケットデータの処理中に、このパケットデータよりも優先度の高いパケットデータが格納された場合に、優先度の低いパケットデータ(現在処理中のパケットデータ)をどこまで送信したか、すなわちパケットデータの送信処理の再開位置を示す情報である。
ベースユニット10のバススレーブ102は、アクセス生成部61と、送信バッファ62と、パケット送信処理部63と、受信バッファ64と、パケット受信処理部65と、アクセス解析部66と、優先度テーブル67と、中断データ情報68と、を有する。パケット送信処理部63が受信用バス72に接続され、受信バッファ64が送信用バス71に接続される以外は、各処理部の機能は、上記したCPUユニット11のバスマスタ115を構成する各処理部と同様である。
つぎに、CPUユニット11のバスマスタによるパケット送信処理について説明する。図11は、実施の形態によるCPUユニットのバスマスタによるパケット送信処理の手順の一例を示すフローチャートである。まず、CPUユニット11のI/O制御部112がライト要求/リード要求などのアクセス要求を入力ユニット12または出力ユニット13に対して発行する(ステップS51)。
I/O制御部112から発行されたアクセス要求は、バスマスタ115内部のアクセス生成部51でパケットデータに変換され(ステップS52)、送信バッファ52に新規パケットデータとして格納される(ステップS53)。送信バッファ52は複数のパケットデータを保持することができるため、送信バッファ52にはベースユニット10に送信する前の残留パケットデータが残っている場合もある。このため、パケット送信処理部53は、送信バッファ52に残留パケットデータがないかを確認する(ステップS54)。
送信バッファ52に残留パケットデータがある場合(ステップS54でNoの場合)には、パケット送信処理部53は、送信バッファ52の残留パケットデータと新規パケットデータの優先度を優先度テーブル57から取得し、どちらの優先度が高いかを判定する(ステップS55)。
新規パケットデータの優先度が残留パケットデータよりも大きい場合(ステップS56でYesの場合)には、パケット送信処理部53は、現在ベースユニット10に送信中の送信データ(残留パケットデータ)の送信処理を中断し(ステップS57)、残留パケットデータをどこまで送信したのかを示す送信再開箇所を中断データ情報58に書き込む(ステップS58)。
一方、新規パケットデータの優先度が残留パケットデータ以下である場合(ステップS56でNoの場合)には、パケット送信処理部53は、そのまま現在送信中の送信データ(残留パケットデータ)を送信する(ステップS59)。残留パケットデータの送信が完了すると、残留パケットデータを送信バッファ52から削除する(ステップS60)。
ステップS54で送信バッファ52に残留パケットデータがない場合(ステップS54でYesの場合)、ステップS58の後、またはステップS60の後、パケット送信処理部53は、送信バッファ52に格納された新規パケットデータを送信する(ステップS61)。新規パケットデータの送信が完了すると、新規パケットデータを送信バッファ52から削除する(ステップS62)。
ついで、パケット送信処理部53は、送信バッファ52に残留パケットデータが存在するかを確認する(ステップS63)。送信バッファ52に残留パケットデータが存在しない場合(ステップS63でYesの場合)には、ベースユニット10へのアクセス要求の発行処理が完了する。
また、送信バッファ52に残留パケットデータが存在する場合(ステップS63でNoの場合)には、パケット送信処理部53は、中断データ情報58に記憶された送信再開箇所を確認し(ステップS64)、送信再開箇所に基づいて送信バッファ52に格納されている残留パケットデータを送信する(ステップS65)。そして、残留パケットデータの送信完了後に、残留パケットデータを送信バッファ52から削除する(ステップS66)。以上によって、ベースユニット10へのアクセス要求の発行処理が完了する。
つぎに、CPUユニット11のバスマスタによるパケット受信処理について説明する。図12は、実施の形態によるCPUユニットのバスマスタによるパケット受信処理の手順の一例を示すフローチャートである。まず、ベースユニット10から返送されてきたパケットデータはCPUユニット11のバスマスタ115内部の受信バッファ54に新規パケットデータとして格納される(ステップS71)。
受信バッファ54は複数のパケットデータを保持することができるため、受信バッファ54にはアクセス解析部56に発行する前の残留パケットデータが残っている場合もある。このため、パケット受信処理部55は、受信バッファ54に残留パケットデータがないかを確認する(ステップS72)。
受信バッファ54に残留パケットデータがある場合(ステップS72でNoの場合)には、パケット受信処理部55は、受信バッファ54の残留パケットデータと新規パケットデータの優先度を優先度テーブル57から取得し、どちらの優先度が高いかを判定する(ステップS73)。
新規パケットデータの優先度が残留パケットデータよりも大きい場合(ステップS74でYesの場合)には、パケット受信処理部55は、現在アクセス解析部56に発行中の送信データ(残留パケットデータ)の送信処理を中断し(ステップS75)、残留パケットデータをどこまで発行したのかを示す送信再開箇所を中断データ情報58に書き込む(ステップS76)。
一方、新規パケットデータの優先度が残留パケットデータ以下である場合(ステップS74でNoの場合)には、パケット受信処理部55は、そのまま現在発行中の送信データ(残留パケットデータ)をアクセス解析部56に発行する(ステップS77)。残留パケットの発行が完了すると、残留パケットデータを受信バッファ54から削除する(ステップS78)。
ステップS72で受信バッファ54に残留パケットデータがない場合(ステップS72でYesの場合)、ステップS76の後、またはステップS78の後、パケット受信処理部55は、受信バッファ54に格納された新規パケットデータをアクセス解析部56に発行する(ステップS79)。新規パケットデータの発行が完了すると、新規パケットデータを受信バッファ54から削除する(ステップS80)。
ついで、パケット受信処理部55は、受信バッファ54に残留パケットデータが存在するかを確認する(ステップS81)。受信バッファ54に残留パケットデータが存在しない場合(ステップS81でYesの場合)には、アクセス解析部56へのパケットデータの発行処理が完了する。
また、受信バッファ54に残留パケットデータが存在する場合(ステップS81でNoの場合)には、パケット受信処理部55は、中断データ情報58に記憶された送信再開箇所を確認し(ステップS82)、送信再開箇所に基づいて受信バッファ54に格納されている残留パケットデータをアクセス解析部56に発行する(ステップS83)。そして、残留パケットデータの発行完了後に、残留パケットデータを受信バッファ54から削除する(ステップS84)。以上によって、アクセス解析部56へのパケットデータの発行処理が完了する。
なお、その後、CPUユニット11のアクセス解析部56は受信バッファ54から発行されたデータを解析して、リードデータが返却されてきた場合には、I/O制御部112にリードデータを渡す処理を行う。
また、上記した説明では、CPUユニット11のバスマスタでのパケットでの送受信処理を例に挙げて説明したが、各ユニットでのバスマスタの構成はすべて同一であるので、他のユニットに設けられたバスマスタでのパケットの送受信処理も同様である。
つぎに、ユニット中のバススレーブとベースユニット10中のバスマスタとの間の通信処理について説明する。図13は、ベースユニットのバスマスタと入力ユニットのバススレーブの内部構成の一例を模式的に示すブロック図である。ベースユニット10のバスマスタ101と入力ユニット12のバススレーブ122とを接続するバスは、送信用バス71と受信用バス72が分離されている全二重で構成されている。
ベースユニット10のバスマスタ101の構成は、図10のCPUユニット11のバスマスタ115と同様の構成を有し、入力ユニット12のバススレーブ122の構成は、図10のベースユニット10のバススレーブ102と同様の構成を有するので、その説明を省略する。
つぎに、入力ユニット12のバススレーブ122によるパケット受信処理について説明する。図14は、実施の形態による入力ユニットのバススレーブによるパケット受信処理の手順の一例を示すフローチャートである。まず、ベースユニット10から発行されてきたパケットデータは入力ユニット12のバススレーブ122内部の受信バッファ64に新規パケットデータとして格納される(ステップS91)。
受信バッファ64は複数のパケットデータを保持することができるため、受信バッファ64にはアクセス解析部66に発行する前の残留パケットデータが残っている場合もある。そのため、パケット受信処理部65は、受信バッファ64に残留パケットデータがないかを確認する(ステップS92)。
受信バッファ64に残留パケットデータがある場合(ステップS92でNoの場合)には、パケット受信処理部65は、受信バッファ64の残留パケットデータと新規パケットデータの優先度を優先度テーブル67から取得し、どちらの優先度が高いかを判定する(ステップS93)。
新規パケットデータの優先度が残留パケットデータよりも大きい場合(ステップS94でYesの場合)には、パケット受信処理部65は、現在アクセス解析部66に発行中の送信データ(残留パケットデータ)の送信処理を中断し(ステップS95)、残留パケットデータをどこまで発行したのかを示す送信再開箇所を中断データ情報68に書き込む(ステップS96)。
一方、新規パケットデータの優先度が残留パケットデータ以下である場合(ステップS94でNoの場合)には、パケット受信処理部65は、そのまま現在発行中の送信データ(残留パケットデータ)をアクセス解析部66に発行する(ステップS97)。残留パケットデータの発行が完了すると、残留パケットデータを受信バッファ64から削除する(ステップS98)。
ステップS92で受信バッファ64に残留パケットデータがない場合(ステップS92でYesの場合)、ステップS96の後、またはステップS98の後、パケット受信処理部65は、受信バッファ64に格納された新規パケットデータをアクセス解析部66に発行する(ステップS99)。新規パケットデータの発行が完了すると、新規パケットデータを受信バッファ64から削除する(ステップS100)。
ついで、パケット受信処理部65は、受信バッファ64に残留パケットデータが存在するかを確認する(ステップS101)。受信バッファ64に残留パケットデータが存在しない場合(ステップS101でYesの場合)には、アクセス解析部66へのパケットデータの発行処理が完了する。
また、受信バッファ64に残留パケットデータが存在する場合(ステップS101でNoの場合)には、パケット受信処理部65は、中断データ情報68に記憶された送信再開箇所を確認し(ステップS102)、送信再開箇所に基づいて受信バッファ64に格納されている残留パケットをアクセス解析部66に発行する(ステップS103)。そして、残留パケットデータの発行完了後に、残留パケットデータを受信バッファ64から削除する(ステップS104)。以上によって、アクセス解析部66へのパケットデータの発行処理が完了する。
なお、その後、入力ユニット12のアクセス解析部66は受信バッファ64から発行されたデータを解析し、外部入力データのリード要求の場合には、外部入力検出部121にリード要求を渡す処理を行う。
つぎに、入力ユニット12のバススレーブ122によるパケット送信処理について説明する。図15は、実施の形態による入力ユニットのバススレーブによるパケット送信処理の手順の一例を示すフローチャートである。まず、入力ユニット12の外部入力検出部121は、受信バッファ64から発行されたデータを解析して、リード要求である場合には外部入力装置21から入力データを取得し、バススレーブ122のアクセス生成部61にリードデータ(入力データ)を返送する(ステップS111)。
外部入力検出部121から返送されたリードデータは、バススレーブ122内部のアクセス生成部61でパケットデータに変換され(ステップS112)、送信バッファ62に新規パケットデータとして格納される(ステップS113)。送信バッファ62は複数のパケットデータを保持することができるため、送信バッファ62にはベースユニット10に送信する前の残留パケットデータが残っている場合もある。このため、パケット送信処理部63は、送信バッファ62に残留パケットデータがないかを確認する(ステップS114)。
送信バッファ62に残留パケットデータがある場合(ステップS14でNoの場合)には、パケット送信処理部63は、送信バッファ62の残留パケットデータと新規パケットデータの優先度を優先度テーブル67から取得し、どちらの優先度が高いかを判定する(ステップS115)。
新規パケットデータの優先度が残留パケットデータよりも大きい場合(ステップS116でYesの場合)には、パケット送信処理部63は、現在ベースユニット10に送信中の送信データ(残留パケットデータ)の送信処理を中断し(ステップS117)、残留パケットデータをどこまで送信したのかを示す送信再開箇所を中断データ情報68に書き込む(ステップS118)。
一方、新規パケットデータの優先度が残留パケットデータ以下である場合(ステップS116でNoの場合)には、パケット送信処理部63は、そのまま現在送信中の送信データ(残留パケットデータ)を送信する(ステップS119)。残留パケットデータの送信が完了すると、残留パケットデータを送信バッファ62から削除する(ステップS120)。
ステップS114で送信バッファ62に残留パケットデータがない場合(ステップS114でYesの場合)、ステップS118の後、またはステップS120の後、パケット送信処理部63は、送信バッファ62に格納された新規パケットデータを送信する(ステップS121)。新規パケットデータの送信が完了すると、新規パケットデータを送信バッファ62から削除する(ステップS122)。
ついで、パケット送信処理部63は、送信バッファ62に残留パケットデータが存在するかを確認する(ステップS123)。送信バッファ62に残留パケットデータが存在しない場合(ステップS123でYesの場合)には、ベースユニット10へのリードデータの発行処理が完了する。
また、送信バッファ62に残留パケットデータが存在する場合(ステップS123でNoの場合)には、パケット送信処理部63は、中断データ情報68に記憶された送信再開箇所を確認し(ステップS124)、送信再開箇所に基づいて送信バッファ62に格納されている残留パケットデータを送信する(ステップS125)。そして、残留パケットデータの送信完了後に、残留パケットデータを送信バッファ62から削除する(ステップS126)。以上によって、ベースユニット10へのリードデータの発行処理が完了する。
なお、上記した説明では、入力ユニット12のバススレーブ122でのパケットの送受信処理を例に挙げて説明したが、各ユニットでのバススレーブの構成はすべて同一であるので、他のユニットに設けられたバススレーブでのパケットの送受信処理も同様である。
ところで、従来では、1台のCPUユニット11が装着された制御装置に、さらに演算処理機能を有する演算ユニット14を増設した場合に、演算ユニット14もバスアクセスを行うことになるので、元々装着されていたCPUユニット11のバスアクセスのタイミングが、演算ユニット14のバスアクセスタイミングによって変わってしまうという問題点があった。この実施の形態では、このような問題点を解決するために、CPUユニット11から入力ユニット12、出力ユニット13へのアクセスを高優先度に設定し、演算ユニット14から入力ユニット12、出力ユニット13へのアクセスを低優先度に設定する。これによって、CPUユニット11と入力ユニット12と出力ユニット13で構成されるシステムに対して、後から演算ユニット14を追加した場合においても、演算ユニット14でユニット管理テーブル114の更新処理のためのパケットデータを送信していたとしても、CPUユニット11からのパケットデータがベースユニット10、入力ユニット12または出力ユニット13に入力されると、演算ユニット14からのパケットデータの送受信処理に優先して、送受信処理が行われることになる。その結果、CPUユニット11と入力ユニット12または出力ユニット13との間の動作タイミングを変化させることなく、また制御装置全体のユニットを停止することなく、システム構成を変更することが可能となる。これは、システム構成が変更後に、演算ユニット14からパケットデータの送受信処理が行われる場合も同様であり、CPUユニット11と入力ユニット12または出力ユニット13との間の動作タイミングを変化させることなく、追加された演算ユニット14を動作させることが可能となる。
なお、CPUユニット11から、各ユニットのバスマスタ、バススレーブの優先度テーブル57,67を動的に書き換えて、パケットデータの優先度(ユニット間通信帯域の優先度)の調整を行うことで、制御装置の動作モードに応じて、都度、最大のパフォーマンスを発揮することができる。優先度テーブル57,67にセットされる優先度は、CPUユニット11のユニット管理テーブル114で管理される。優先度テーブル57,67の更新要求は、CPUユニット11のユニット管理部113から、各バスマスタ、各バススレーブに一斉に送信される。
また、CPUユニット11に、複数のユニットで実行する演算処理の空き時間を管理テーブルにより管理する機能を持たせてもよい。たとえば、CPUユニット11のユニット管理部113に、CPUユニット11のユニット管理テーブル114内にCPUユニット11および演算ユニット14の処理タイミング(入力ユニット12へのアクセスタイミング、出力ユニット13へのアクセスタイミング、CPUユニット11内部の演算タイミング、演算ユニット14の演算処理タイミング)を管理するタイムテーブル情報を所持させるように構成させてもよい。タイムテーブル情報はCPUユニット11のユニット管理部113によって、CPUユニット11と演算ユニット14のバスアクセスを極力競合させずにユーザが指定した時間内に制御処理が完了するよう生成される。既存の制御システムに演算ユニット14を追加する場合は、演算ユニット14の管理テーブル更新部143が現状のタイムテーブル情報を読み出し、演算ユニット14の処理タイミングを反映した上で、CPUユニット11のタイムテーブル情報を上書きする。演算ユニット14の管理テーブル更新部143によるタイムテーブル情報の更新処理は、ユニット管理テーブル114の更新処理に含まれる。CPUユニット11および演算ユニット15はCPUユニット11のタイムテーブル情報に従って処理を行う。
図16は、演算処理の空き時間に追加ユニットによる演算処理の追加が可能か否かを示す判定処理手順の一例を示すフローチャートである。まず、演算ユニット14を追加した際に(ステップS131)、演算ユニット14の管理テーブル更新部143がCPUユニット11のタイムテーブル情報を取得する(ステップS132)。管理テーブル更新部143は現状のタイムテーブルの空き時間を確認し(ステップS133)、演算ユニット14の処理を追加した場合にユーザが指定した時間内にCPUユニット11と演算ユニット14の処理が完了可能かを判定する(ステップS134)。
完了可能と判定した場合(ステップS134でYesの場合)には、管理テーブル更新部143が演算ユニット14の処理を追加したタイムテーブル情報をCPUユニット11に上書きし(ステップS135)、処理が終了する。一方、完了不可と判定した場合(ステップS134でNoの場合)には、CPUユニット11の管理テーブルを更新せずに演算ユニット15をエラー表示モードに切り替え(ステップS136)、制御システム全体の電源を落とさずに、ユニット単体で取り外しが可能なよう停止状態にし(ステップS137)、処理が終了する。
なお、演算ユニット14の追加時には演算ユニット14の管理テーブル更新部143が、タイムテーブル情報の更新と併せて優先度テーブル設定情報も更新する。演算ユニット14の追加後に異常が発生した場合には、タイムテーブル情報と同様に優先度テーブル設定情報も演算ユニット追加前の状態に戻される。
つぎに、演算ユニット14追加後に、通信テストでエラーが発生した場合の処理について説明する。図17は、実施の形態による演算ユニット追加後の通信テストでエラーが発生した場合の処理手順の一例を示すフローチャートである。まず、演算ユニット14がベースユニット10に追加されると(ステップS151)、CPUユニット11のユニット管理部113が演算ユニット14の通信テストチェック部146にアクセスを行う(ステップS152)。
CPUユニット11のユニット管理部113が演算ユニット14の通信テストチェック部146へのアクセスに失敗した場合(ステップS153)、CPUユニット11のユニット管理部113は、ユニット管理テーブル114を演算ユニット14の追加前の状態に戻す(ステップS154)。たとえば、演算ユニット14の追加によって第1テーブル1143が有効化されている場合には、第1テーブル1143を無効化し、第2テーブル1144を有効化する。また、演算ユニット14の追加によって第2テーブル1144が有効化されている場合には、第2テーブル1144を無効化し、第1テーブル1143を有効化する。
アクセスに失敗した場合として、たとえば、アクセスに異常があった場合、または一定期間ステップS152のアクセスがCPUユニット11から来なかった場合を挙げることができる。その後、演算ユニット14の通信テストチェック部146は、エラー表示部147にエラー状態をセットする(ステップS155)。演算ユニット14のエラー表示部147は、エラー状態がセットされると、演算ユニット14がエラー表示モードに切り替わり(ステップS156)、ユニット単体で取り外しが可能なように停止状態にする(ステップS157)。これによって、制御システム全体は動作状態にありながら、追加した演算ユニット14だけを取り外すことが可能になる。
この実施の形態では、制御装置に新たに演算ユニット14を追加する場合に、演算ユニット14中の管理テーブル更新部143がCPUユニット11中のユニット管理テーブル114を更新するようにした。その結果、制御装置全体のユニットの停止および再設定を行うことなく、演算ユニット14を追加することができるという効果を有する。その結果、使用者が用途に応じてベースユニット10に装着するユニットの台数または構成を自由に変更することができる。
また、複数のユニット間の通信に優先度を設定するようにした。たとえば、新たにユニットを追加するときに、このユニットの管理テーブル更新部143がユニット管理テーブル114を更新するためのアクセス要求の優先度を低くすることで、CPUユニット11が動作タイミングを変更せずにユニット管理テーブル114を更新することができるという効果を有する。
さらに、CPUユニット11のユニット管理部113が演算処理部111での演算処理の空き時間を利用して、新たに追加するユニットの通信テストを実施するようにした。これによって、既存のユニットの動作タイミングを変更せずに、新たに追加したユニットが正常動作するか否かを確認することができるという効果も有する。
以上のように、この発明にかかる制御装置は、制御対象を制御プログラムにしたがって制御するプログラマブルコントローラに有用である。
10 ベースユニット、11 CPUユニット、12 入力ユニット、13 出力ユニット、14 演算ユニット、21 外部入力装置、22 外部出力装置、51,61 アクセス生成部、52,62 送信バッファ、54,64 受信バッファ、56,66 アクセス解析部、112,142 I/O制御部、57,67 優先度テーブル、58,68 中断データ情報、53,63 パケット送信処理部、55,65 パケット受信処理部、71 送信用バス、72 受信用バス、101,115,144 バスマスタ、103 バススイッチ、111,141 演算処理部、113 ユニット管理部、114 ユニット管理テーブル、121 外部入力検出部、131 外部出力制御部、102,116,122,132 バススレーブ、143 管理テーブル更新部、1141 アクセス調停部、1142 有効テーブルフラグ、1143 第1テーブル、1144 第2テーブル。
Claims (12)
- バスを内蔵するベースユニットに追加ユニットを装着可能な制御装置において、
前記追加ユニットは、
前記ベースユニットに装着されると、当該追加ユニットの前記ベースユニットへの装着位置を前記ベースユニットに装着されるユニットの種類と位置とを含むユニット管理情報に書き込む指示を送る管理テーブル更新部と、
前記ベースユニットに装着される他のユニットで処理されるデータに比して低い優先度を設定して、前記他のユニットに対するアクセス要求の送信処理を行うマスタ処理部と、
を備え、
前記追加ユニットの前記マスタ処理部は、送受信するデータに対して付された優先度に従って、順に処理を行うことを特徴とする制御装置。 - 前記ベースユニットには、当該制御装置全体を管理するとともにプログラムにしたがって演算処理を周期的に行うCPUユニットが装着され、
前記CPUユニットは、前記ユニット管理情報を記憶するユニット管理情報記憶部を備え、
前記CPUユニットのユニット管理情報記憶部は、前記ユニット管理情報として、ユニットと前記ベースユニット上の装着位置とを対応付けた2つの管理情報と、2つの前記管理情報のうちどちらが有効かを示す有効指示情報と、を含み、
前記追加ユニットの前記管理テーブル更新部は、前記追加ユニットの前記マスタ処理部を介して現在有効な前記管理情報を読み出し、前記管理情報の前記ベースユニットの空き位置に当該追加ユニットを登録した更新管理情報を生成し、前記有効指示情報で無効とされた方の前記管理情報を前記更新管理情報で更新することを特徴とする請求項1に記載の制御装置。 - 前記追加ユニットの前記管理テーブル更新部は、前記更新管理情報で更新された前記管理情報を正常に読み出せた場合に、前記更新管理情報で更新された管理情報が有効となるように前記有効指示情報を更新することを特徴とする請求項2に記載の制御装置。
- 前記追加ユニットの前記管理テーブル更新部は、前記更新管理情報の更新処理でエラーが生じた場合に、前記有効指示情報の更新を行わないことを特徴とする請求項2に記載の制御装置。
- 前記CPUユニットは、前記演算処理部による前記演算処理の空き時間を利用して前記ベースユニットに追加されたユニットが正常動作するかの通信テストを行うユニット管理部をさらに備えることを特徴とする請求項3に記載の制御装置。
- 前記ユニット管理部は、前記通信テストの結果、前記追加ユニットに異常を検出した場合に、前記有効指示情報を更新前の状態に戻すことを特徴とする請求項5に記載の制御装置。
- 前記CPUユニットは、前記CPUユニットと前記追加ユニットで実行する演算処理のタイミングを管理するタイムテーブル情報を管理するユニット管理部をさらに備え、
前記CPUユニットと前記追加ユニットは、前記タイムテーブル情報にしたがって演算処理を実行することを特徴とする請求項2に記載の制御装置。 - 前記追加ユニットの前記管理テーブル更新部は、自追加ユニットが当該制御装置に追加されると、前記CPUユニットから前記タイムテーブル情報を取得し、前記タイムテーブル情報中の空き時間内に、自追加ユニットに対して設定された演算処理の追加が可能かを判定することを特徴とする請求項7に記載の制御装置。
- 前記追加ユニットの前記管理テーブル更新部は、前記タイムテーブル情報中の空き時間内に、自追加ユニットに対して設定された演算処理の追加が可能な場合には、前記CPUユニット内の前記タイムテーブル情報を更新し、前記タイムテーブル情報中の空き時間内に、自追加ユニットに対して設定された演算処理の追加が不可能な場合には、前記CPUユニット内の前記タイムテーブル情報を更新せずに、当該制御装置全体の電源を落とさずに、前記追加ユニットを停止状態にすることを特徴とする請求項8に記載の制御装置。
- 前記CPUユニットは、前記他のユニットに対するアクセス要求の送信処理を行うマスタ処理部をさらに備え、
前記CPUユニットの前記マスタ処理部で送受信されるデータの優先度は、前記追加ユニットの前記マスタ処理部で送受信されるデータの優先度よりも高いことを特徴とする請求項2に記載の制御装置。 - 前記CPUユニットは、
前記他のユニットに対するアクセス要求の送信処理を行うマスタ処理部と、
前記他のユニットからのアクセス要求に対する受信処理を行うスレーブ処理部と、
をさらに備え、
前記ベースユニットは、
前記CPUユニットと前記追加ユニットと前記他のユニットが有する前記マスタ処理部の数に対応して設けられ、前記マスタ処理部からのアクセス要求に対する受信処理を行うバススレーブと、
前記CPUユニットと前記追加ユニットと前記他のユニットが有する前記スレーブ処理部の数に対応して設けられ、前記スレーブ処理部に対してアクセス要求の送信処理を行うバスマスタと、
前記バススレーブと前記バスマスタとの間でデータの切り替えを行うバススイッチと、
を備えることを特徴とする請求項2に記載の制御装置。 - 前記CPUユニットと前記追加ユニットと前記他のユニットが有する前記マスタ処理部と前記ベースユニットの前記バススレーブとの間と、前記CPUユニットと前記追加ユニットと前記他のユニットが有する前記スレーブ処理部と前記ベースユニットの前記バスマスタとの間では、それぞれ全二重通信が行われることを特徴とする請求項11に記載の制御装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2014/068714 WO2016009477A1 (ja) | 2014-07-14 | 2014-07-14 | 制御装置 |
JP2015518494A JP5951123B2 (ja) | 2014-07-14 | 2014-07-14 | 制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2014/068714 WO2016009477A1 (ja) | 2014-07-14 | 2014-07-14 | 制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2016009477A1 true WO2016009477A1 (ja) | 2016-01-21 |
Family
ID=55078001
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2014/068714 WO2016009477A1 (ja) | 2014-07-14 | 2014-07-14 | 制御装置 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP5951123B2 (ja) |
WO (1) | WO2016009477A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018146909A1 (ja) * | 2017-02-07 | 2018-08-16 | オムロン株式会社 | 演算装置、制御装置および制御方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1091213A (ja) * | 1996-09-18 | 1998-04-10 | Yaskawa Electric Corp | プログラマブルコントローラ |
JP2007148734A (ja) * | 2005-11-28 | 2007-06-14 | Yaskawa Electric Corp | マスタ/スレーブ制御システム |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004139609A (ja) * | 2003-11-11 | 2004-05-13 | Omron Corp | 開発支援装置 |
JP4494361B2 (ja) * | 2006-03-31 | 2010-06-30 | 三菱電機株式会社 | ラダープログラム最適化装置および最適化プログラム |
JP4877423B1 (ja) * | 2011-03-15 | 2012-02-15 | オムロン株式会社 | Plcのcpuユニット、plc用システムプログラムおよびplc用システムプログラムを格納した記録媒体 |
JP5518266B1 (ja) * | 2013-05-17 | 2014-06-11 | 三菱電機株式会社 | プログラマブルコントローラとその周辺装置、およびプログラマブルコントローラのテーブルデータアクセスプログラム |
-
2014
- 2014-07-14 JP JP2015518494A patent/JP5951123B2/ja not_active Expired - Fee Related
- 2014-07-14 WO PCT/JP2014/068714 patent/WO2016009477A1/ja active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1091213A (ja) * | 1996-09-18 | 1998-04-10 | Yaskawa Electric Corp | プログラマブルコントローラ |
JP2007148734A (ja) * | 2005-11-28 | 2007-06-14 | Yaskawa Electric Corp | マスタ/スレーブ制御システム |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018146909A1 (ja) * | 2017-02-07 | 2018-08-16 | オムロン株式会社 | 演算装置、制御装置および制御方法 |
CN110178097A (zh) * | 2017-02-07 | 2019-08-27 | 欧姆龙株式会社 | 运算装置、控制装置以及控制方法 |
US10785014B2 (en) | 2017-02-07 | 2020-09-22 | Omron Corporation | Computation device, control device and control method |
Also Published As
Publication number | Publication date |
---|---|
JP5951123B2 (ja) | 2016-07-13 |
JPWO2016009477A1 (ja) | 2017-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9467511B2 (en) | Techniques for use of vendor defined messages to execute a command to access a storage device | |
US9986028B2 (en) | Techniques to replicate data between storage servers | |
JP4477437B2 (ja) | ストレージ装置、そのクラスタ間データ通信方法、及びそのクラスタ通信制御プログラム | |
US9003081B2 (en) | Computer system and control method thereof | |
US8560750B2 (en) | Systems and methods for advanced interrupt scheduling and priority processing in a storage system environment | |
US9563443B2 (en) | Information processing device, peripheral device control method, and non-transitory computer readable medium storing filter driver for controlling a power state of a peripheral device | |
JP2004302713A (ja) | 記憶システム及びその制御方法 | |
JP5970461B2 (ja) | 仮想計算機制御装置、仮想計算機制御方法、仮想計算機制御プログラム、及び集積回路 | |
US9774671B2 (en) | Parallel processing system and operation method of parallel processing system | |
TW201303789A (zh) | 具有高速傳輸功能之基板管理控制器及其傳輸方法 | |
JP2005251188A (ja) | 冗長パス制御装置及び冗長パス制御方法 | |
US7814254B2 (en) | Mode setting method and system in hot plug of PCI device | |
JP5951123B2 (ja) | 制御装置 | |
JP5304815B2 (ja) | マイクロコンピュータ | |
TWI506453B (zh) | 伺服器系統 | |
JP4152079B2 (ja) | プログラマブルコントローラの周辺装置 | |
JP5558632B2 (ja) | システムコントローラ、設備システム及びプログラム | |
US20030051107A1 (en) | System for controlling attributes of storage device | |
JP6701440B2 (ja) | リモートコントローラ、遠隔制御方法、及び、プログラム | |
JP2011070259A (ja) | データ転送装置及びデータ転送方法 | |
JP5223612B2 (ja) | ディスク制御装置およびファームウェアの更新方法 | |
JP5618859B2 (ja) | タイマicを利用した書込み回路 | |
JP5687171B2 (ja) | コントローラ、監視ユニット、およびシーケンスプログラム更新方法 | |
JP2018180608A (ja) | プログラム実行装置およびプログラム実行方法 | |
US11029850B2 (en) | System of controlling data rebalance and its method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ENP | Entry into the national phase |
Ref document number: 2015518494 Country of ref document: JP Kind code of ref document: A |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 14897457 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 14897457 Country of ref document: EP Kind code of ref document: A1 |