Controller and control system
10180674 ยท 2019-01-15
Assignee
Inventors
Cpc classification
G05B2219/25231
PHYSICS
International classification
Abstract
A controller continues to operate in a stable manner after program modification. A controller repeatedly executes a task A and a task B in cycles. The controller includes a RAM and a task control program. The RAM stores a fixed time set longer than an actual execution time of the task A as an execution time for the task A. The task control program executes the tasks A and B, and executes the task A by using the fixed time.
Claims
1. A controller for repeatedly executing two or more types of tasks in cycles, the controller comprising a processor configured with a program to perform operations comprising: operation as a storage unit storing a fixed time having a length between a time taken to execute at least one of the two or more types of tasks and a length of a control cycle corresponding to the at least one of the two or more types of tasks; and operation as a task control unit configured to execute the two or more types of tasks, the task control unit being configured to execute the at least one of the two or more types of tasks within the fixed time, wherein execution of the at least one of the two or more types of tasks is immediately followed by a non-execution time having a length less than a difference between the control cycle corresponding to the at least one of the two or more types of tasks and the time taken to execute the at least one of the two or more types of tasks.
2. The controller according to claim 1, wherein the length of the control cycle corresponding to the at least one of the two types of tasks is different from a length of a control cycle corresponding to another of the two types of tasks.
3. The controller according to claim 1, wherein the task control unit is configured to store the time taken to execute the at least one of the two or more types of tasks into the storage unit every time the task control unit executes the at least one of the two or more types of tasks.
4. A control system, comprising: the controller according to claim 1; and a fixed time setting apparatus comprising a processor configured with a program to perform operations comprising: operation as a receiving unit configured to receive a preset fixed time having a length between the time taken to execute the at least one of the two or more types of tasks and the length of the control cycle corresponding to the at least one of the two or more types of tasks, and operation as a setting unit configured to set the received preset fixed time as the fixed time.
5. The control system according to claim 4, wherein the processor of the fixed time setting apparatus is further configured with the program to perform operations comprising: operation as an obtaining unit configured to obtain, from the controller, the fixed time and the time taken to execute the at least one of the two or more types of tasks; and operation as a display unit configured to display the obtained fixed time and the obtained time taken to execute the at least one of the two or more types of tasks.
6. A controller for repeatedly executing a task, the controller comprising a processor configured with a program to perform operations comprising: operation as a storage unit storing a fixed time having a length between a time taken to execute at least one type of processing assigned to the task and a length of a control cycle corresponding to the at least one type of processing assigned to the task; and operation as a task control unit configured to execute the task, the task control unit being configured to execute the at least one type of processing assigned to the task within the fixed time, wherein execution of the at least one type of processing assigned to the task is immediately followed by a non-execution time having a length less than a difference between the control cycle corresponding to the at least one type of processing assigned to the task and the time taken to execute the at least one type of processing assigned to the task.
7. The controller according to claim 6, wherein the at least one type of processing assigned to the task is performed by a program component.
8. The controller according to claim 6, wherein the at least one type of processing assigned to the task comprises one or both of input processing and output processing for external data.
9. The controller according to claim 6, wherein the task control unit is configured to store the time taken to execute the at least one type of processing assigned to the task into the storage unit every time the task control unit executes the at least one type of processing assigned to the task.
10. A control system, comprising: the controller according to claim 6; and a fixed time setting apparatus comprising a processor configured with a program to perform operations comprising: operation as a receiving unit configured to receive a preset fixed time having a length between the time taken to execute the at least one type of processing assigned to the task and the length of the control cycle corresponding to the at least one type of processing assigned to the task, and a setting unit configured to set the received preset fixed time as the fixed time.
11. The control system according to claim 10, wherein the processor of the fixed time setting apparatus is further configured with the program to perform operations comprising: operation as an obtaining unit configured to obtain, from the controller, the fixed time and the time taken to execute the at least one type of processing assigned to the task; and operation as a display unit configured to display the obtained fixed time and the obtained time taken to execute the at least one type of processing assigned to the task.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
DETAILED DESCRIPTION
1. First Embodiment
(1) Overall Configuration of Control System
(16) The overall configuration of a control system according to a first embodiment will now be described with reference to
(17) The PLC system 1 receives a signal from a signal input unit 5, which is for example a sensor or a switch. The PLC system 1 executes a program using an input signal from the signal input unit 5 as appropriate to calculate an output signal for controlling a control target device 7.
(18) The development support apparatus 3 has various capabilities for generating a user program (described later) to be executed in a controller 11. A single development support apparatus 3 is connectable to the PLC system 1, or any other number of development support apparatuses 3 permitted by the number of addresses assignable to such development support apparatuses 3 may be connected to the PLC system 1.
(2) PLC System Configuration
(19) The configuration of the PLC system 1 will now be described in detail with reference to
(20) The controller 11 is a central processing unit (CPU) included in a programmable logic controller (PLC).
(21) In the controller 11, a predetermined task is repeatedly executed in predetermined cycles. A task is an executable unit including a program organization unit (POU). An example of a task includes I/O refresh processing for updating an input variable based on an input signal from the input unit 13 and updating an output signal to the output unit 15 based on an output variable, and processing for executing a user program and/or a system program. A task may further include other processing such as motion control processing.
(22) The input unit 13 receives an input signal from the signal input unit 5, such as a sensor or a switch, and outputs the input signal to the controller 11. The input unit 13 may be selected in accordance with the type of a signal input from the signal input unit 5. More specifically, when, for example, the signal input unit 5 is a thermocouple for measuring temperature, the input unit 13 may be an input unit for receiving an input signal indicating a voltage generated in the thermocouple. When, for example, the signal input unit 5 is an electrical switch, the input unit 13 may be an input unit for receiving an input signal indicating the on or off state of the switch.
(23) The output unit 15 outputs an output signal to the corresponding control target device 7. This allows the controller 11 to control the control target device 7. The output unit 15 may be selected in accordance with the type of an output signal. When, for example, the control target device 7 is a motor for which positional control is to be performed, an output unit with a motion controller function may be used. When, for example, the control target device 7 is an electric furnace, an output unit may output a signal for controlling a relay that controls the electric furnace (e.g., a signal for controlling the on/off duty ratio).
(24) The power supply unit 17 supplies power to the controller 11, the input unit 13, and the output unit 15.
(25) The PLC system 1 may have all these components accommodated in a single housing, or may have the components individually accommodated in separate housings and connected to one another. In particular, the PLC system 1 including the input unit 13 and the output unit 15 as separate components allows intended numbers of intended control target devices and signal input units to be connected to the system.
(3) Configuration of Controller
(26) The configuration of the controller 11 will now be described in detail with reference to
(27) As shown in
(28) The controller 11 includes a system program 115a installed in the ROM 115. The CPU 111 executes the system program 115a to control the operation of the controller 11. The system program 115a includes a program for storing a signal input to the input unit 13 into the RAM 113 and a program for providing computational results obtained by the CPU 111 and stored in the RAM 113 to the output unit 15.
(29) As shown in
(30) A POU is a unit of an execution model for a user program conforming to IEC 61131-3. POUs include programs, functions, and function blocks. The functions and the function blocks are reusable. More specifically, a function and a function block can be shared by multiple user programs. A function returns a fixed output value corresponding to a predetermined input value upon receipt of the predetermined input value. A function block, which has an internal state, returns a variable output value corresponding to an input value.
(31) As shown in
(32) As shown in
(33) The task setting data 45 will now be described with reference to
(34) In one example, a task with the smaller number indicating its priority is executed with a higher priority. The controller 11 uses the control cycle of a preset time interval (e.g., 1 ms) as the common cycle used for the entire processing.
(35) In the example shown in
(36) The task B is executed in a cycle of 2 ms. In other words, the task B has two control cycles (a time interval of 2 ms) as its execution cycle. The cycle of the task B is an integral multiple (twice) of the cycle of the task A. The task B has programs P4 and P5 as POUs assigned to the task. The task B also includes a function block FB2, which is used in the program P4.
(37) The controller 11 can update a user program. More specifically, the controller 11 can perform online editing. The online editing is to modify or make addition to the user program 41 by operating the development support apparatus 3 without suspending the operation (task execution) of the controller 11.
(38) During online editing, the controller 11 first receives a user program 41 uploaded from the development support apparatus 3 via the communication interface 117. The controller 11 then updates the user program 41 during a period after multiple running tasks are completed until the multiple tasks are restarted. For example, the controller 11 receives a POU (e.g., a function block) included in a user program via the communication interface 117, and then replaces an existing POU in a user program with the received POU.
(4) Configuration of Development Support Apparatus
(39) The configuration of the development support apparatus 3 will now be described in detail with reference to
(40) As shown in
(41) The display unit 39 can display the details of an input and the details of processing. The input unit 37 can receive task setting data, and a user program as a source program.
(42) The communication interface 35 allows a task control program, a task setting instruction, and a user program stored in the storage unit 33 included in the development support apparatus 3 to be downloaded into the controller 11.
(43) The functions of the development support program 3a for the development support apparatus 3 (
(44) The task setting data generator 63 generates task setting data 45 based on task setting data input from the input unit 37.
(45) The program generator 65 compiles a source program input from the input unit 37 to generate a user program 41.
(46) When receiving a user program including a source program from the input unit 37, the program generator 65 compiles the received user program as the source program to generate a user program 41 for an object module.
(47) When receiving task setting data from the input unit 37, the task setting data generator 63 uses the received task setting data to generate task setting data 45 that can be used by the PLC 1.
(48) Subsequently, the development support apparatus 3 downloads the user program 41 and the task setting data 45 in the memory to the RAM 113 included in the controller 11.
(49) Task setting performed in the development support apparatus 3, or generating the task setting data 45, will now be described with reference to
(50) First, the task configuration is designed based on intended input and output response performance of a control target device (step S1).
(51) Subsequently, the target device(s) and one of the two tasks to perform I/O refresh of the device are determined (step S2).
(52) The task to which each program is assigned is determined, and each program is assigned to the corresponding task (step S3).
(53) A fixed time is set for each task (step S4). The fixed time set for each task as the task execution time is a period of time longer than an actual execution time taken for the task. In other words, the fixed time includes a non-execution time left after the task is executed. The non-execution time corresponds to a difference between the fixed time and the actual execution time. The fixed time may be longer than a maximum value of a predicted actual execution time. The user can easily set the fixed time for a task using the task setting data 45 in
(54) As described above, the input unit 37 and the storage unit 33 in the development support apparatus 3 function as a receiving unit for receiving a preset execution time longer than the actual task execution time. The task setting data generator 63 functions as a setting unit for setting the received preset execution time as the fixed time in the task setting. As described later, the task setting data generator 63 can also change the fixed time for the task during execution of the user program 41 by the controller 11.
(55) Finally, the other setting is performed (step S5).
(56) The fixed time will now be described further with reference to
(5) Control Operation
(57) A task execution operation will now be described with reference to
(58) When powered on, the controller 11 performs predetermined initial processing.
(59) The execution cycles of the tasks A and B start simultaneously with the control cycle. The task A is executed in a cycle of 1 ms, and the task B is executed in a cycle of 2 ms. In this manner, the present embodiment uses two types of tasks with different execution cycles. Any other number of types of tasks may be used.
(60) In this embodiment, the task A has the fixed time set as its execution time. The task A is thus executed with the fixed time. The task B has no fixed time set as its execution time.
(61) The task control program 43 uses the task setting data 45 stored in the RAM 113 when executing the task A and the task B.
(62) More specifically, the processing for the task A with the highest priority is started first. The task B, which has a lower priority than the task A, enters a standby state without its actual processing being started.
(63) The programs P1, P2, and P3 assigned to the task A are executed. When the processing for the task A ends, the processing for the task B is started. More specifically, the programs P4 and P5 assigned to the task B are executed.
(64) When a period of 1 ms passes from when the execution cycles of the tasks A and B are started simultaneously, the execution cycle of the task A passes. Thus, the execution of the program P5 assigned to the task B is suspended, and the execution of the task A is started. The task B is in a standby state.
(65) When the programs P1, P2, and P3 assigned to the task A are executed and the processing for the task A ends, the execution of the program P5, which has been suspended in the task B, is resumed. The remaining part of the program P5 is thus executed.
(66) When periods of 2 ms and 3 ms pass from when the execution cycles of the tasks A and B are started simultaneously, the execution cycle of the task A passes, and the execution of the task A is started.
(67) When a period of 2 ms passes after the execution cycles of the tasks A and B are started simultaneously, the execution cycle of the task A passes. Thus, the execution of the task A is started. The execution cycle of the task B also passes, and the task B is in a standby state. More specifically, when a period of 2 ms passes from the simultaneous start of the execution cycles of the tasks A and B, the execution cycles of the tasks A and B are started simultaneously again. The above operation is hereafter performed repeatedly.
(68) When executing the task A, the task control program 43 uses the fixed time written in the task setting data 45 as the execution time. As shown in
(69) This controller has the fixed time set for the task A. When the execution time of the processing assigned to the task A is modified to be longer, the actual execution time would not exceed the fixed time. In other words, a change in the processing for the task A does not affect the execution of the task B. More specifically, a longer actual execution time taken for the task A would not change the start timing of the task B, and the task B can be executed correctly as preset.
(70) Difficulties that can occur in an example different from the embodiment of the present invention will now be described with reference to
(71) In this example, no fixed time is set for the task A, unlike in the embodiment of the present invention. Although the actual execution time of the task A is 500 s in
(72) Returning to the embodiment of the present invention, the control for obtaining and displaying the actual execution time of the task A will now be described with reference to
(73) First, starting the task execution is waited (step S11).
(74) When the task execution is started (Yes in step S11), the task control program 43 obtains the start timing of the task A from a timer (not shown) (step S12).
(75) The task control program 43 waits until the execution of the task A ends (step S13).
(76) When the task execution ends, the task control program 43 obtains the execution end timing of the task A from the timer (not shown) (step S14).
(77) The task control program 43 then calculates the actual execution time of the task A (step S15).
(78) The task control program 43 calculates a difference between the fixed time and the actual execution time (step S16).
(79) The task control program 43 stores the actual execution time of the task A and the calculated difference into the RAM 113 (step S17). The task control program 43 may store only the actual execution time of the task A into the RAM 113. In this manner, the actual execution time is stored into the RAM 113 as real-time information every time when the task A is executed.
(80) When the time corresponding to the difference passes and ends the fixed time (Yes in step S17), the task control program 43 finally returns the processing to step S11.
(81) The development support apparatus 3 obtains the actual execution time of the task A, the fixed time, and the difference from the controller 11 regularly or in response to an instruction from the user. More specifically, the task setting data generator 63 requests the actual task execution time, the fixed time, and the difference stored in the RAM 113 from the controller 11, and receives the actual task execution time, the fixed time, and the difference transmitted from the controller 11. The task setting data generator 63 stores the above data into the storage unit 33.
(82) This allows the display unit 39 included in the development support apparatus 3 to display a table 52 shown in
(83) Although the difference between the fixed time and the actual execution time is calculated by the controller 11 in the above embodiment, the difference may be calculated by the development support apparatus 3.
(84) The user views the table 52 in
(85) As a result, the task setting data generator 63 in the development support apparatus 3 modifies the task setting data 45 and transmits information about the modification to the controller 11. In response to this, the task control program 43 in the controller 11 changes the task setting data 45. More specifically, the value of the fixed time for the task A in the task setting data 45 shown in
(86) The changed fixed time is used for the task A, which starts after the value of the fixed time is changed.
(87) As described above, the relationship between the actual task execution time and the fixed time (in particular, the difference or the ratio) is determined every time when the task control program 43 executes a task. The task setting data generator 63 in the development support apparatus 3 can set a fixed time again based on the determination result.
(88) Although the fixed time is set only for the task A in the above embodiment, the fixed time may be set only for the task B or may be set for both the task A and the task B.
(89) The above embodiment reduces the effect of reconfiguration in a flexible PLC to or from which input and output units can be added or removed.
2. Second Embodiment
(90) Although the first embodiment sets the fixed time for a task, the present invention is not limited to that embodiment. The fixed time may be set for the execution time of various types of processing (e.g., programs or I/O refresh) assigned to a task.
(91) An embodiment of the present invention applied to a POU will now be described with reference to
(92) In
(93) In this embodiment, the processing for obtaining the actual execution time of the POU, determining the relationship between the actual time of the POU and the fixed time, and displaying the actual time of the POU and the fixed time is performed in the same manner as described in the first embodiment.
(94) This controller has the fixed time set for the program P2, which is assigned to the task A. When the execution time of the program P2 is modified to be longer, the actual execution time would not exceed the fixed time. In other words, a change in the program P2 does not affect the execution time of the task A. As a result, a change in the processing for the task A does not affect the execution of the task B as in the first embodiment. More specifically, a longer actual execution time taken for the task A would not change the start timing of the task B, and thus the task B can be executed as preset.
(95) Although the fixed time is set for only the program P2 in this embodiment, the fixed time may also be set for the program P1 and the program P3.
(96) Setting the fixed time for a POU will now be described with reference to
(97) A modification of the second embodiment will now be described with reference to
(98) Setting the fixed time for function blocks, among other POUs, will now be described. A function block includes a definition and an instance. The instance is a variable, which has multiple attributes (e.g., a constant and an initial value). In this embodiment, the fixed time is set as an attribute of the variable to allow the user end of a library to change the fixed time setting in the definition. This example uses, for example, a variable table including the variable name, type, and fixed time setting. The CPU 111 of the controller 11 prioritizes the attributes of the instance over the setting in the definition to fix the execution time of the function block. In another example, the set value in the definition may be overwritten with the set value in the instance.
(99) The fixed time setting for the above POU is executed when the program generator 65 in the development support apparatus 3 generates the user program 41. The online editing function (described above) of the development support apparatus 3 to rewrite the attributes of a variable allows the fixed time for a POU in the user program 41 to be changed during operation of the controller 11.
(100) In online editing, the development support apparatus 3 uploads the user program 41 during normal operation to change the fixed time setting for a POU. The changed fixed time is used for subsequent execution of the POU.
(101) A modification of the present embodiment will now be described with reference to
(102) In this modification, the fixed time is set for I/O refresh of a task A. In this case, the fixed time may be set for the entire I/O refresh, or for either the input data processing or the output data processing.
(103) The fixed time setting for I/O refresh is performed under the same setting conditions and the same setting method as in the above embodiment, and produces the same setting effects as described in the above embodiment.
3. Third Embodiment
(104) Although the fixed time is set for a task in the first embodiment and the fixed time is set for processing assigned to a task in the second embodiment, the fixed time may be set for both a task and processing assigned to the task.
(105) A third embodiment will now be described with reference to
(106) The system in the present embodiment has the same configuration as the control system 100 described in the first embodiment. The functions of the first embodiment (setting the fixed time for a task) and the functions of the second embodiment (setting the fixed time for processing assigned to a task) are both implemented by the controller 11 and the development support apparatus 3.
(107) In this embodiment, a table 54 shown in
(108) The user views the display unit 39 in the development support apparatus 3 to obtain the relationship between the fixed times and the maximum execution times that change depending on the actual operation. The user can also change the fixed time for the primary task, and the fixed times for the function block FBI1 of the program P1 and the function block FBI3 of the program P2 by operating the input unit 37 included in the development support apparatus 3. As described above, the fixed times can be changed during execution of the task, and thus the fixed time setting can be easily optimized.
4. Other Embodiments
(109) Although the embodiments of the present invention have been described, the invention is not limited to the above embodiments. The embodiments may be variously modified without departing from the spirit and scope of the invention. In particular, the embodiments and modifications described herein may be combined freely as appropriate.
INDUSTRIAL APPLICABILITY
(110) One or more embodiments of the present invention are widely applicable to controllers and control systems.
REFERENCE SIGNS LIST
(111) 1 PLC system 3 development support apparatus 5 signal input unit 7 control target device 11 controller 13 input unit 15 output unit 17 power supply unit 31 CPU 33 storage unit 33a development support program 35 communication interface 37 input unit 39 display unit 41 user program 43 task control program 45 task setting data 63 task setting data generator 65 program generator 71 POU_A 73 fixed time information 75 POU_B 79 fixed time information 100 control system 111 CPU 113 RAM 115 ROM 115a system program 117 communication interface