US10956238B2 - Programmable controller, management device, and control system - Google Patents

Programmable controller, management device, and control system Download PDF

Info

Publication number
US10956238B2
US10956238B2 US16/473,421 US201716473421A US10956238B2 US 10956238 B2 US10956238 B2 US 10956238B2 US 201716473421 A US201716473421 A US 201716473421A US 10956238 B2 US10956238 B2 US 10956238B2
Authority
US
United States
Prior art keywords
processing
allocation
core
unit
setup data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
US16/473,421
Other languages
English (en)
Other versions
US20200151033A1 (en
Inventor
Naruhiko Aramaki
Hiroyuki Fujieda
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TMEIC Corp
Original Assignee
Toshiba Mitsubishi Electric Industrial Systems Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Mitsubishi Electric Industrial Systems Corp filed Critical Toshiba Mitsubishi Electric Industrial Systems Corp
Assigned to TOSHIBA MITSUBISHI-ELECTRIC INDUSTRIAL SYSTEMS CORPORATION reassignment TOSHIBA MITSUBISHI-ELECTRIC INDUSTRIAL SYSTEMS CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ARAMAKI, NARUHIKO, FUJIEDA, HIROYUKI
Publication of US20200151033A1 publication Critical patent/US20200151033A1/en
Application granted granted Critical
Publication of US10956238B2 publication Critical patent/US10956238B2/en
Assigned to TMEIC CORPORATION reassignment TMEIC CORPORATION CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: TOSHIBA MITSUBISHI-ELECTRIC INDUSTRIAL SYSTEMS CORPORATION
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Definitions

  • An embodiment of the present invention relates to a programmable controller, a management device, and a control system.
  • a programmable controller programmable logic controller (PLC) including a multi-core central processing unit (CPU) (multi-core processor) in which a plurality of processor cores are included in one CPU (CPU package)
  • PLC programmable logic controller
  • CPU central processing unit
  • processor core improves processing capacity by performing separate processing in parallel.
  • Patent Document 1 JP 2007-94898 A
  • Patent Document 2 JP 2012-141722 A
  • a programmable controller includes: a plurality of processor cores, the programmable controller including: an input unit configured to input from a management device connected to the programmable controller, an application program for being executed in the plurality of processor cores, and setup data including information on a plurality of processing included in the application program; an allocating unit configured to allocate any one of the plurality of processing to each of the plurality of processor cores; a transmitting unit configured to transmit the plurality of processor cores and an allocation result of the plurality of processing to the management device; a power controlling unit configured to restart when the allocation of the plurality of processing to the plurality of processor cores is changed in the management device and the input unit inputs the setup data to which information on the changed allocation is added; an updating unit configured to update the allocation to the plurality of processor cores based on the setup data after the restart; and an executing unit configured to execute the plurality of processing based on the allocation, and when the allocation is changed, execute the plurality of processing based on the changed allocation.
  • FIG. 1 is a diagram illustrating an example of an overall configuration of a control system according to a first embodiment
  • FIG. 2 is a block diagram illustrating an example of a functional configuration of a controller according to the first embodiment
  • FIG. 3A is a diagram illustrating an example of the configuration and contents of a definition file included in setup data according to the first embodiment
  • FIG. 3B is a diagram illustrating an example of the configuration and contents of another definition file included in the setup data according to the first embodiment
  • FIG. 4 is a diagram illustrating an example of a hardware configuration of a personal computer (PC) according to the first embodiment
  • FIG. 5 is a block diagram illustrating an example of a functional configuration of the PC according to the first embodiment
  • FIG. 6 is a diagram illustrating an example of a monitoring screen according to the first embodiment
  • FIG. 7 is a diagram illustrating an example of a warning indication according to the first embodiment
  • FIG. 8 is a flowchart illustrating an example of a flow of a generating processing of an application program and setup data according to the first embodiment
  • FIG. 9 is a flowchart illustrating an example of a flow of a control processing by the controller according to the first embodiment
  • FIG. 10 is a flowchart illustrating an example of a flow of a monitoring processing according to the first embodiment
  • FIG. 11 is a flowchart illustrating an example of a flow of allocation changing processing according to the first embodiment
  • FIG. 12 is a block diagram illustrating an example of a functional configuration of a controller according to a second embodiment
  • FIG. 13 is a block diagram illustrating an example of a functional configuration of a PC according to the second embodiment
  • FIG. 14 is a diagram illustrating an example of a monitoring screen according to the second embodiment
  • FIG. 15 is a flowchart illustrating an example of an overall flow of a control processing according to the second embodiment.
  • FIG. 16 is a flowchart illustrating an example of a flow of a monitoring processing according to the second embodiment.
  • FIG. 1 is a diagram illustrating an example of an overall configuration of a control system S according to a first embodiment.
  • the control system S according to the present embodiment is applied to, for example, a plant.
  • the control system S includes a personal computer (PC) 1 , and a programmable controller (programmable logic controller (PLC) (hereinafter, referred to as a controller)) 2 .
  • PC personal computer
  • PLC programmable controller
  • the PC 1 is a computer used by a user to generate an application program to be executed in the controller 2 and to monitor an operation status of the controller 2 .
  • the PC 1 has an engineering tool 11 , which is software.
  • the engineering tool 11 is software that performs system construction, programming, monitoring, information collection and observation related to the control system S.
  • the PC 1 manages the controller 2 by a function of the engineering tool 11 .
  • the PC 1 is an example of a management device according to the present embodiment. Details of the PC 1 and the engineering tool 11 will be described later.
  • the controller 2 includes a multi-core CPU (multi-core processor) 20 , a random access memory (RAM) 22 , a flash read only memory (FROM) 23 , a tool interface 24 , an I/O interface 25 , and a bus 26 .
  • a multi-core CPU multi-core processor
  • RAM random access memory
  • FROM flash read only memory
  • the multi-core CPU 20 is a CPU having a plurality of processor cores (hereinafter, referred to as cores). As illustrated in FIG. 1 , the multi-core CPU 20 includes a core A 301 and a core B 302 . The number of cores in the multi-core CPU 20 illustrated in FIG. 1 is an example, and is not limited to two. The multi-core CPU 20 controls the entire controller 2 .
  • the RAM 22 is an operating area of the multi-core CPU 20 and is a writable storage medium.
  • the FROM 23 is a so-called flash memory and is an electrically rewritable non-volatile semiconductor storage medium.
  • the tool interface 24 is an interface for transmitting and receiving information to and from the PC 1 via a communication path 4 .
  • the communication path 4 is a communication path connecting the PC 1 and the controller 2 to each other, and is a high-speed communication path such as Ethernet (registered trademark) or a universal serial bus (USB), but is not limited thereto.
  • the I/O interface 25 is an interface for transmitting and receiving information to and from an I/O device 3 via a communication path 5 .
  • the communication path 5 is a communication path connecting the controller 2 and the I/O device 3 to each other.
  • the bus 26 is a data transmission path inside the controller 2 .
  • the I/O device 3 is a device for inputting and outputting with an apparatus constituting the plant.
  • Examples of the I/O device 3 include, for example, input devices (an analog input (AI) device and a digital input (DI) device) for inputting signals from a sensor installed in a control target facility, or output devices (an analog output (AO) device and a digital output (DO) device) for outputting signals to an actuator of the control target facility.
  • input devices an analog input (AI) device and a digital input (DI) device
  • DI digital input
  • AO analog output
  • DO digital output
  • the numbers of I/O devices 3 and I/O interfaces 25 are described one by one, but is not limited thereto.
  • the numbers of I/O devices 3 and I/O interfaces 25 vary depending on the configuration of the plant.
  • FIG. 2 is a block diagram illustrating an example of a functional configuration of a controller 2 according to the present embodiment.
  • the controller 2 includes an input unit 201 , an allocating unit 202 , an executing unit 203 , an updating unit 204 , a power controlling unit 205 , a transmitting unit 206 , and a storing unit 250 .
  • the storing unit 250 is configured by, for example, the FROM 23 .
  • the storing unit 250 stores an application program 311 and setup data 310 that the input unit 201 downloads (receives) from the PC 1 .
  • the application program 311 is a program for the controller 2 to control the plant.
  • the application program 311 stored in the storing unit 250 is assumed to be the application program 311 that has been already compiled, that is, the application program 311 in an execution form.
  • the setup data 310 is definition information that defines information on a plurality of processing included in the application program 311 , information on the core A 301 and the core B 302 , and the allocation of each processing to the core A 301 and the core B 302 .
  • the definition information included in the application program 311 in the conventional technology is defined outside the application program 311 as the setup data 310 in the present embodiment.
  • FIGS. 3A and 3B are diagrams illustrating examples of the configurations and contents of definition files 313 a and 313 b included in the setup data 310 according to the present embodiment.
  • the setup data 310 according to the present embodiment includes a definition file 313 a and a definition file 313 b.
  • the definition file 313 a includes, for example, definition information such as “processing”, “I/O interface”, “non-separable processing”, “core”, and the like.
  • the “processing” is processing included in the application program 311 .
  • the “I/O interface” is information that specifies the I/O interface 25 used in each processing included in the application program 311 .
  • the “non-separable processing” is information on a combination of a plurality of processing that cannot be allocated to different cores.
  • the “core” is an allocation of the core A 301 or the core B 302 in which each processing is executed.
  • the setup data 310 is generated by the engineering tool 11 of the PC 1 , but each processing is not allocated to the core A 301 and the core B 302 at the time of point of generation. For this reason, in the setup data 310 at the time of point of generation, the item “core” in FIG. 3A is blank (unallocated).
  • the allocation of each processing to the core A 301 and the core B 302 is determined by an allocating unit 202 to be described later.
  • the engineering tool 11 of the PC 1 changes the allocation of the processing, the PC 1 registers the changed allocation in the setup data 310 .
  • the definition file 313 b includes definition information on “the number of upper limit of I/O interfaces” and “allocation impossible interface” of the core A 301 and the core B 302 .
  • “The number of upper limit of I/O interfaces” is a specified value of the upper limit of the number of I/O interfaces 25 corresponding to each processing allocated to the core A 301 and the core B 302 .
  • the “allocation impossible interface” is a definition that prohibits the allocation of processing corresponding to a specific I/O interface 25 to the core A 301 or the core B 302 .
  • the configurations and contents of the setup data 310 illustrated in FIGS. 3A and 3B are examples and are not limited thereto.
  • the number of definition files included in the setup data 310 is not limited to two.
  • the setup data 310 may be configured to include the contents of the definition file 313 a and the definition file 313 b in one definition file.
  • the input unit 201 inputs (downloads) the application program 311 and the setup data 310 from the PC 1 via the tool interface 24 .
  • the input unit 201 stores the inputted application program 311 and setup data 310 in the storing unit 250 .
  • the input unit 201 inputs the setup data 310 in which the changed allocation is registered.
  • the input unit 201 stores the setup data 310 in which the changed allocation is registered in the storing unit 250 . In this case, the input unit 201 may overwrite the setup data 310 already stored in the storing unit 250 and store the setup data 310 in which the changed allocation is registered.
  • the allocating unit 202 allocates one of the plurality of processing included in the application program 311 to each of the core A 301 and the core B 302 . Specifically, when the executing unit 203 starts the application program 311 , the allocating unit 202 searches for processing to be executed from the setup data 310 , and allocates the processing to the core A 301 or the core B 302 .
  • the allocating unit 202 allocates each processing to the core A 301 and the core B 302 so that the overall processing of the application program 311 can be executed efficiently. For example, the allocating unit 202 searches for processing using the same I/O interface 25 from the setup data 310 , and preferentially allocates these processing to the same core A 301 or core B 302 . By performing the plurality of processing using the same I/O interface 25 in the same core A 301 or core B 302 , the allocating unit 202 can reduce the number of times of input and output of the I/O interface 25 and reduce an entire processing time of the application program 311 .
  • the allocating unit 202 reduces the entire processing time of the application program 311 by preferentially allocating processing that can be executed simultaneously in parallel to different core A 301 and core B 302 .
  • the allocating unit 202 determines that processing that is not defined as the non-separable processing in the setup data 310 can be executed simultaneously in parallel.
  • the allocating unit 202 may be configured as a function of an operating system (OS) of the controller 2 , for example.
  • OS operating system
  • each application program 311 is dedicated to a specific controller, and for example, it was difficult to use the application program 311 with other controllers having a different number of cores.
  • the application program 311 since the allocating unit 202 of the controller 2 allocates the processing to the core A 301 and the core B 302 , the application program 311 does not include the information specifying the core to execute each processing. For this reason, the controller 2 according to the present embodiment can share and use the same application program 311 with other controllers having different configurations such as the number of cores.
  • the allocating unit 202 registers the allocation of each processing to the core A 301 and the core B 302 to the setup data 310 .
  • the setup data 310 already includes the information on the allocation of each processing and the core A 301 and the core B 302 , it may be possible to adopt a configuration in which each processing is allocated to the core A 301 and the core B 302 according to the setup data 310 as the allocating unit 202 .
  • the controller 2 executes a specific application program 311 multiple times, the configuration in which a previous allocation registered in the setup data 310 is applied may be adopted in the second or subsequent execution.
  • the power controlling unit 205 controls the power of the controller 2 .
  • the power controlling unit 205 reboots (restarts) the controller 2 when the allocation of the processing to the core A 301 and the core B 302 is changed in the PC 1 and the input unit 201 inputs the setup data 310 to which the information on the changed allocation is added.
  • the updating unit 204 updates the allocation to the core A 301 and the core B 302 based on the setup data 310 stored in the storing unit 250 after the controller 2 is rebooted and to which the information on the changed allocation is added.
  • the updating unit 204 transmits the updated allocation to the executing unit 203 .
  • the updating unit 204 may be configured as a function of the OS of the controller 2 .
  • the executing unit 203 starts the application program 311 .
  • the executing unit 203 may start the application program 311 at a specific time, or may start the application program 311 by the operation of the user or by receiving signals from an external device.
  • the executing unit 203 executes individual processing included in the application program 311 based on the allocation of the processing to the core A 301 and the core B 302 acquired from the allocating unit 202 .
  • the executing unit 203 acquires the updated allocation from the updating unit 204
  • the executing unit 203 executes each processing included in the application program 311 based on the updated allocation.
  • the executing unit 203 may start a re-execution from the processing that was executed before the reboot, or may re-execute the entire application program 311 from the beginning.
  • the transmitting unit 206 transmits an operation state of each of the core A 301 and the core B 302 to the PC 1 .
  • the transmitting unit 206 transmits a result of the allocation of the processing to the core A 301 and the core B 302 to the PC 1 via the tool interface 24 and the communication path 4 .
  • the transmitting unit 206 transmits the processing and the I/O interface 25 used in each processing to the PC 1 via the tool interface 24 and the communication path 4 in manner corresponding to each other.
  • FIG. 4 is a diagram illustrating an example of a hardware configuration of the PC 1 according to the present embodiment.
  • the PC 1 includes an input device 12 , a CPU 13 , a memory 14 , a hard disk drive (HDD) 15 , a display (monitor) 16 , a communication interface 17 , and a bus 18 .
  • HDD hard disk drive
  • the input device 12 is, for example, a keyboard, a mouse, a touch panel, or the like and is a device for receiving an operation of a user.
  • the CPU 13 is a control device that performs an overall control of the PC 1 .
  • the CPU 13 realizes various configurations by executing a program or the like stored in the memory 14 .
  • the memory 14 is a memory for storing readable data, and is, for example ROM.
  • a memory such as a writable RAM is further provided as the PC 1 may.
  • the HDD 15 is an external storage device (auxiliary storage device). It is may be possible to employ a configuration including a storage medium such as a flash memory, instead of the HDD 15 as the PC 1 .
  • the display 16 is a display device such as a liquid crystal panel, and is an example of a display in the present embodiment.
  • the communication interface 17 is an interface for transmitting and receiving information to and from the controller 2 via the communication path 4 .
  • the bus 18 is a data transmission path inside the PC 1 .
  • the configuration of the PC 1 illustrated in FIG. 4 is merely an example, and it is sufficient to be the configuration which provides general computer functions.
  • FIG. 5 is a block diagram illustrating an example of a functional configuration of the PC 1 according to the present embodiment.
  • the engineering tool 11 which is software operating on the PC 1 , includes a receiving unit 101 , a program generating unit 102 , a compiler 103 , a dividing unit 104 , a setup data generating unit 105 , an allocation changing unit 106 , a display controlling unit 107 , and a transmitting and receiving unit 108 .
  • the PC 1 includes a storing unit 150 .
  • the storing unit 150 is configured by, for example, the HDD 15 .
  • the storing unit 150 may be configured by a writable storage medium such as a RAM.
  • the storing unit 150 stores the application program 311 of an execution form, and the setup data 310 generated by the setup data generating unit 105 .
  • the application program 311 stored in the storing unit 150 is not limited to that generated by the program generating unit 102 of the PC 1 .
  • a configuration in which the application programs 311 generated by other engineering tools are stored may be adopted.
  • the receiving unit 101 receives the operation of the user via the input device 12 .
  • the receiving unit 101 receives a drag and drop operation for changing the allocation of any one of the plurality of processing displayed on the display 16 by the display controlling unit 107 described later to one of the core A 301 and the core B 302 from the other.
  • the program generating unit 102 acquires the operation contents of the user from the receiving unit 101 and generates the application program 311 for execution in the controller 2 .
  • the program generating unit 102 acquires from the receiving unit 101 the contents that the user sets by operating a function block diagram or a ladder diagram displayed on the display 16 , and converts the contents into the application program 311 .
  • the user inputs the control process and control contents for controlling the plant by operating the function block diagram, the ladder diagram, or the like.
  • the control process in the present embodiment includes processes involved in controlling the plant and a work included in each process.
  • the control contents in the present embodiment is a definition of an execution order and a control method of each process.
  • the controller 2 when the controller 2 generates an application program 311 that sequentially advances each process in a predetermined order, the user sets the execution order of each process as a sequence control.
  • the controller 2 when the controller 2 generates an application program 311 that repeats a predetermined process or work, the user sets the execution order of each process or work as a loop control.
  • the sequence control and the loop control may be mixed in one application program 311 .
  • the control contents are not limited to the sequence control and the loop control, but a configuration in which other types of control can be set may be adopted.
  • the program generating unit 102 acquires the operation contents of the user from the receiving unit 101 and converts the operation contents of the user into the application program 311 .
  • the compiler 103 converts the application program 311 generated by the program generating unit 102 into a format executable by the controller 2 .
  • the compiler 103 stores the application program 311 in the compiled form, that is, the application program 311 in the execution form, in the storing unit 150 .
  • the dividing unit 104 divides the application program 311 in the execution form into a plurality of processing. For example, the dividing unit 104 divides the application program 311 into processing units for executing the processes in a plurality of threads when the application program 311 is executed.
  • the division unit of processing is an example, and is not limited thereto.
  • the dividing unit 104 transmits a division result of the application program 311 to the setup data generating unit 105 .
  • the application program 311 is not limited to that generated by the program generating unit 102 .
  • the compiler 103 and the dividing unit 104 are separated, but the present invention is not limited thereto.
  • a configuration in which the compiler 103 divides the processing may also be adopted.
  • the setup data generating unit 105 generates setup data 310 including a plurality of processing information included in the application program 311 .
  • the setup data generating unit 105 acquires definition information capable of specifying each divided processing from the dividing unit 104 , and registers the definition information in the definition file 313 a , as illustrated in FIG. 3A .
  • the setup data generating unit 105 acquires information specifying the I/O interface 25 used in each processing from the application program 311 , and registers the information in the definition file 313 a in association with the definition information that can specify each processing.
  • the setup data generating unit 105 registers information on a combination of non-separable processing, which is a plurality of processing that cannot be allocated to different core A 301 and core B 302 , in the plurality of processing, in the definition file 313 a .
  • non-separable processing there is processing included in the same loop in the application program 311 that performs the loop control.
  • the setup data generating unit 105 it may be possible to adopt as the setup data generating unit 105 a configuration in which the combination of processing that cannot be allocated to different core A 301 and core B 302 is registered as the non-separable processing in the definition file 313 a , for reasons such as the context of processing and the like.
  • the setup data generating unit 105 registers the number of upper limit of the I/O interfaces 25 corresponding to the processing allocated to the core A 301 or the core B 302 in the definition file 313 b , as illustrated in FIG. 3B .
  • the setup data generating unit 105 registers the I/O interface 25 , which cannot be allocated to a specific core A 301 or core B 302 , in the definition file 313 b , as illustrated in FIG. 3B .
  • the setup data generating unit 105 acquires, for example, from the receiving unit 101 , the number of upper limit and the allocation impossible interface of the I/O interfaces 25 inputted by the user as an input value, and registers the input value in the definition file 313 b.
  • the transmitting and receiving unit 108 transmits and receives information and data to and from the controller 2 via the communication interface 17 and the communication path 4 .
  • the transmitting and receiving unit 108 transmits the application program 311 compiled by the compiler 103 and the setup data 310 generated by the setup data generating unit 105 to the controller 2 .
  • the transmitting and receiving unit 108 receives an operation state of each of the core A 301 and the core B 302 from the controller 2 . Specifically, the transmitting and receiving unit 108 receives (acquires) the result of allocating the plurality of processing to each of the core A 301 and the core B 302 , and the correspondence between the I/O interface 25 and each processing, from the controller 2 .
  • the display controlling unit 107 controls display contents of the display 16 .
  • the display controlling unit 107 displays the function block diagram or the ladder diagram that the user uses to generate the application program 311 on the display 16 .
  • the display controlling unit 107 acquires the allocation of the plurality of processing to the core A 301 and the core B 302 in the controller 2 and the correspondence between each processing and the I/O interface 25 , from the transmitting and receiving unit 108 , and displays them on the display 16 .
  • the display controlling unit 107 provides a monitoring screen for changing the allocation of the processing if necessary to the user to let the user to monitor the operation state of the core A 301 and the core B 302 of the controller 2 .
  • FIG. 6 is a diagram illustrating an example of a monitoring screen according to the present embodiment.
  • FIG. 6 illustrate a screen of a graphic user interface (GUI) displayed on the display 16 .
  • GUI graphic user interface
  • An upper section of FIG. 6 is a screen illustrating the result of the allocating unit 202 of the controller 2 allocating a plurality of processing to the core A 301 and the core B 302
  • a lower section of FIG. 6 is a screen illustrating allocation changed by the user.
  • processing A to D displayed on the screen illustrated in FIG. 6 are images illustrating an example of the plurality of processing included in the application program 311 divided by the dividing unit 104 .
  • the processing A to D are processing that are on execution or in preparation for execution allocated to the core A 301 or the core B 302 after starting the application program 311 .
  • the processing A to D are sequentially deleted from the screen when the processing ends.
  • another processing included in application program 311 is allocated to the core A 301 or the core B 302 , another processing is newly displayed on the screen. For this reason, the processing displayed on the screen illustrated in FIG. 6 changes as the application program 311 progresses.
  • I/Fs # 1 to # 3 in FIG. 6 are images illustrating a plurality of I/O interfaces 25 a to 25 c.
  • the display controlling unit 107 displays the processing A to D and the I/O interfaces 25 a to 25 c used in the processing A to D on the display 16 in a corresponding manner.
  • the display controlling unit 107 acquires, as the correspondence between the processing and the I/O interface 25 , the information transmitted by the transmitting unit 206 of the controller 2 from the transmitting and receiving unit 108 .
  • the display controlling unit 107 changes the display on the display 16 in accordance with the operation of the user. For example, when the display controlling unit 107 acquires an operation of a user who changes one of the plurality of processing from one of the core A 301 and the core B 302 to the other from the receiving unit 101 , the display controlling unit 107 changes the display on the display 16 .
  • the operation of the user is, for example, a drag and drop operation, but is not limited thereto.
  • the processing A and the processing B are allocated to the core A 301
  • the processing C and the processing D are allocated to the core B 302 .
  • the display controlling unit 107 changes the display on the display 16 as illustrated in the lower section of FIG. 6 . That is, as illustrated in the lower section of FIG. 6 , on the display 16 , the display is changed so that the processing A is allocated to the core A 301 and the processing B, the processing C, and the processing D are allocated to the core B 302 .
  • the I/F # 2 (I/O interface 25 b ) corresponding to the processing B also moves to the core B 302 as the processing B moves.
  • FIG. 7 is a diagram illustrating an example of a warning display according to the present embodiment. Processing X and processing Y allocated to the core A 301 are registered in the setup data 310 as the non-separable processing. When the receiving unit 101 receives an operation for moving the processing Y to the core B 302 on the display 16 , the display controlling unit 107 displays a warning on the display 16 .
  • the display controlling unit 107 displays “WARNING processing Y cannot be set to core B” or the like, as in a message 901 illustrated in FIG. 7 .
  • the display controlling unit 107 displays a symbol such as “/(slash)” indicating that the operation is improper, such as a symbol 900 , on the periphery of the core B 302 of a destination of the processing Y illustrated in FIG. 7 .
  • the message 901 and the symbol 900 are examples of the warning display and the warning display is not limited thereto.
  • the display controlling unit 107 displays a warning on the display 16 when it is determined by the allocation changing unit 106 that the operation of the user is an improper operation.
  • the allocation changing unit 106 changes the allocation of the processing to the core A 301 and the core B 302 according to the operation of the user received by the receiving unit 101 . As described in the lower section of FIG. 6 , if the user performs the operation of moving the processing B from the core A 301 to the core B 302 , the allocation changing unit 106 adds information on the allocation of the changed processing to the setup data 310 stored in the storing unit 150 . For example, the allocation changing unit 106 adds the allocation of the processing A to the core A 301 and the allocation of the processing B to D to the core B 302 to the setup data 310 , as illustrated in the lower section of FIG. 6 .
  • the allocation changing unit 106 in order to change the allocation of the processing, since the allocation changing unit 106 updates the setup data 310 instead of the application program 311 itself, the allocation changing unit 106 can change the allocation without modifying and recompiling the application program 311 .
  • the allocation changing unit 106 confirms whether the change of the allocation by the operation of the user is appropriate, before updating the setup data 310 . For example, when the receiving unit 101 receives an allocation changing operation of separating the non-separable processing, the allocation changing unit 106 does not change the allocation. In addition, the allocation changing unit 106 notifies the display controlling unit 107 when receiving the allocation changing operation of separating the non-separable processing.
  • the allocation changing unit 106 determines that the work is improper. In this case, the allocation changing unit 106 does not change the allocation. In addition, the allocation changing unit 106 notifies the display controlling unit 107 .
  • FIG. 8 is a flowchart illustrating an example of a flow of a process of generating an application program 311 and setup data 310 according to the present embodiment. The process of the flowchart in FIG. 8 is performed in the PC 1 .
  • the receiving unit 101 receives a control process and control contents which are input by the user (S 1 ).
  • the receiving unit 101 transmits the received control process and control contents to the program generating unit 102 .
  • the program generating unit 102 acquires the control process and the control contents which are input by the user from the receiving unit 101 and generates an application program 311 for execution in the controller 2 (S 2 ).
  • the program generating unit 102 transmits the generated application program 311 to the compiler 103 .
  • the compiler 103 compiles the application program 311 generated by the program generating unit 102 (S 3 ).
  • the compiler 103 stores the application program 311 in an execution form in the storing unit 150 .
  • the dividing unit 104 divides the application program 311 in the execution form into a plurality of processing (S 4 ).
  • the setup data generating unit 105 generates setup data 310 including definition information on each processing divided by the dividing unit 104 (S 5 ). At this time, the setup data 310 includes definition information capable of specifying each processing, information specifying the I/O interface 25 used in each processing, and information on a combination of the non-separable processing.
  • the setup data generating unit 105 stores the generated setup data 310 in the storing unit 150 .
  • the transmitting and receiving unit 108 transmits the application program 311 in the execution form and setup data 310 to the controller 2 (S 6 ).
  • FIG. 9 is a flowchart illustrating an example of a flow of a control processing by the controller 2 according to the present embodiment.
  • the input unit 201 inputs the application program 311 in the execution form and setup data 310 from the PC 1 via the tool interface 24 (S 10 ).
  • the input unit 201 stores the inputted application program 311 and setup data 310 in the storing unit 250 .
  • the executing unit 203 starts the application program 311 in the execution form stored in the storing unit 250 (S 11 ).
  • the allocating unit 202 sequentially searches for processing to be executed among the processing included in the application program 311 from the setup data 310 , and allocates the processing to the core A 301 or the core B 302 .
  • the executing unit 203 executes the respective processing registered in the setup data 310 , in the allocated core A 301 or core B 302 (S 12 ).
  • the transmitting unit 206 transmits an operation state of each of the core A 301 and the B 302 , that is, the allocation of the processing to the core A 301 and the core B 302 , and the I/O interface 25 associated with each processing to the PC 1 (S 13 ).
  • the monitoring processing illustrated in FIG. 10 is performed, and the allocation of the processing to the core A 301 and the B 302 is changed in some cases. The details of the monitoring processing in the embodiment will be described later.
  • the input unit 201 When the allocation of the processing to the core A 301 and the core B 302 in the engineering tool 11 of the PC 1 is changed, the input unit 201 input the setup data 310 to which information on the changed allocation is added.
  • the input unit 201 stores the updated setup data 310 in the storing unit 250 .
  • the input unit 201 may overwrite the setup data 310 stored in the storing unit 250 with the updated setup data 310 .
  • the power controlling unit 205 determines whether or not the input unit 201 has received the updated setup data 310 (S 14 ). If the input unit 201 receives the updated setup data 310 (“Yes” in S 14 ), the power controlling unit 205 reboots the controller 2 (S 15 ).
  • the updating unit 204 updates the allocation of the processing to the core A 301 and the core B 302 based on the updated setup data 310 (S 16 ).
  • the executing unit 203 re-executes the processing that was executed before the reboot based on the updated allocation to the core A 301 and the B 302 (S 17 ).
  • the control processing When the processing is re-executed, the control processing returns to S 13 , and the transmitting unit 206 transmits the operation state for each of the core A 301 and the core B 302 to the PC 1 (S 13 ). Each time the allocation to the core A 301 and the core B 302 is changed during execution of the processing, each function unit of the controller 2 repeats the processing from S 13 to S 17 .
  • the executing unit 203 sequentially executes a next processing until all the processing of the application program 311 end (“No” in S 18 , S 19 ).
  • the control processing returns to S 13 , and the transmitting unit 206 transmits the operation state for each of the core A 301 and the core B 302 to the PC 1 (S 13 ).
  • the processing of the flowchart ends.
  • FIG. 10 is a flowchart illustrating an example of a fallow of a monitoring processing according to the present embodiment.
  • the processing in the flowchart is initiated when the operation states of the core A 301 and the core B 302 are transmitted from the controller 2 to the PC 1 in S 13 of FIG. 9 .
  • the transmitting and receiving unit 108 receives the operation state of each of the core A 301 and the core B 302 , that is, the allocation of the processing to the core A 301 and the core B 302 , and the I/O interface 25 associated with each processing, from the controller 2 as a result of the allocation of the plurality of processing to each of the core A 301 and the core B 302 (S 100 ).
  • the display controlling unit 107 displays the operation state of each of the core A 301 and the core B 302 of the controller 2 on the display 16 (S 101 ).
  • the display controlling unit 107 displays the allocation of the processing A to D to the core A 301 and the core B 302 and the I/O interfaces 25 a to 25 c corresponding to the processing A to D on the display 16 , and provides a screen for monitoring the operation state of the controller 2 with respect to the user.
  • the allocation changing unit 106 and the display controlling unit 107 execute the allocation changing processing (S 103 ).
  • FIG. 11 is a flowchart illustrating an example of a flow of the allocation changing processing (S 103 ) according to the present embodiment.
  • the receiving unit 101 receives operation contents of the user (S 201 ). That is, the receiving unit 101 receives that an operation of moving on the screen of the display 16 is input to any one of the processing allocated to the core A 301 or the core B 302 .
  • the receiving unit 101 transmits to the allocation changing unit 106 and the display controlling unit 107 processing to be moved and whether the processing has been moved from the core A 301 to the core B 302 or from the core B 302 to the core A 301 .
  • the allocation changing unit 106 determines whether or not the processing to be changed is separable from other processing allocated to the current core A 301 or core B 302 (S 202 ). In the example illustrated in FIG. 6 , the allocation changing unit 106 determines whether or not the processing B allocated to the core A 301 is separable from the processing A allocated to the same core A 301 . The allocation changing unit 106 determines whether or not each processing is separable by determining whether or not each processing is registered in the setup data 310 of the storing unit 150 as the non-separable processing.
  • the allocation changing unit 106 determines that the processing to be changed is the separable processing (“Yes” in S 202 ), the allocation changing unit 106 changes the allocation of the processing to be changed and updates the setup data 310 stored in the storing unit 150 (S 203 ). In addition, the allocation changing unit 106 notifies the display controlling unit 107 that the allocation of the processing to be changed can be changed.
  • the display controlling unit 107 changes the display of each processing on the screen in accordance with the operation of the user. In the example illustrated in FIG. 6 , the display controlling unit 107 moves the allocation of the processing B from the core A 301 to the core B 302 .
  • the allocation changing unit 106 determines that the processing to be changed is the non-separable processing (“No” in S 202 )
  • the allocation changing unit 106 notifies the display controlling unit 107 that the processing B to be changed cannot be changed.
  • the display controlling unit 107 displays a warning on the display 16 as described with reference to FIG. 7 (S 204 ). In this case, the allocation of the processing is not changed.
  • the allocation changing processing of the flowchart of FIG. 11 ends and returns to the monitoring processing of FIG. 10 . If the allocation changing unit 106 changes the allocation of the processing to the core A 301 and the core B 302 (“Yes” in S 104 ), the allocation changing unit 106 notifies the transmitting and receiving unit 108 of the change. The transmitting and receiving unit 108 transmits the updated setup data 310 to the controller 2 (S 105 ).
  • the monitoring processing illustrated in FIG. 10 ends.
  • the controller 2 performs the reception processing in S 14 of FIG. 9 .
  • the allocating unit 202 allocates one of the plurality of processing to each of the core A 301 and the core B 302 .
  • the executing unit 203 executes each processing based on the changed allocation when the power controlling unit 205 re-starts the controller 2 .
  • the allocation to the core A 301 and the core B 302 can be changed during the execution of the processing and the processing can be executed again. For this reason, according to the controller 2 of the present embodiment, it is possible to more flexibly change the allocation of the processing to the core A 301 and the core B 302 according to actual operating conditions.
  • the allocating unit 202 since the allocating unit 202 allocates any one of the plurality of processing to each of the core A 301 and the core B 302 , the allocation of the processing is not fixed by the application program 311 , and it is possible to apply the same application program 311 to another controller 2 .
  • the allocation changing unit 106 of the present embodiment updates the setup data 310 and changes the allocation, in accordance with the operation of the user received by the receiving unit 101 .
  • the allocation changing unit 106 of the present embodiment changes the allocation of the processing
  • the allocation changing unit 106 since the allocation changing unit 106 updates the setup data 310 instead of the application program 311 itself, the allocation changing unit 106 can dynamically and quickly change the allocation without recompiling the application program 311 . For this reason, according to the PC 1 of the present embodiment, it is possible to more flexibly change the allocation of the processing to the core A 301 and the core B 302 .
  • the setup data 310 generated by the setup data generating unit 105 of the PC 1 of the present embodiment includes the combination of the non-separable processing, and when the receiving unit 101 receives the allocation changing operation of separating the non-separable processing, the allocation changing unit 106 does not change the allocation. For this reason, according to the PC 1 of the present embodiment, it is possible to prevent the allocation of improper processing to the core A 301 and the core B 302 .
  • the setup data 310 generated by the setup data generating unit 105 of the PC 1 of the present embodiment includes information corresponding to each processing and the I/O interface 25 , and the display controlling unit 107 displays each processing and the I/O interface 25 on the display 16 in the corresponding manner. For this reason, according to the PC 1 of the present embodiment, it is possible to suppress the allocation of the processing corresponding to the same I/O interface 25 to different core A 301 or core B 302 when the user changes the allocation of the processing.
  • the receiving unit 101 of the PC 1 of the present embodiment receives a drag and drop operation of changing one of the plurality of processing displayed on the display 16 from one of the core A 301 and the core B 302 to the other, and the allocation changing unit 106 updates the setup data 310 in accordance with the changed contents of the allocation received by the receiving unit 101 .
  • the PC 1 of the present embodiment it is possible to provide the user with a screen in which the allocation of the processing can be changed with a simple operation.
  • the engineering tool 11 is the software provided by the PC 1 , but is not limited thereto.
  • the engineering tool 11 may be a dedicated management device that can be connected to the controller 2 .
  • the engineering tool 11 and the controller 2 may be an integrally formed device.
  • the allocating unit 202 of the controller 2 is configured to add the information on the allocation of the processing to the core A 301 and the core B 302 to the setup data 310 after allocating the processing to the core A 301 and the core B 302 , but is not limited thereto.
  • the allocation may be configured to be stored in the setup data 310 and applied to the next or subsequent execution, only when the allocation changing unit 106 of the PC 1 designates the allocation of the processing to the core A 301 and the core B 302 .
  • control system S for each of the core A 301 and the core B 302 , the allocated processing and the I/O interface 25 used by the processing were displayed on the display 16 in the corresponding manner.
  • the control system S according to the present embodiment further displays the degree of loads on the core A 301 and the core B 302 by each processing on the display 16 of the PC 1 .
  • FIG. 12 is a block diagram illustrating an example of a functional configuration of a controller 2 according to the present embodiment.
  • the controller 2 according to the present embodiment includes the input unit 201 , the allocating unit 202 , the executing unit 203 , the updating unit 204 , the power controlling unit 205 , a transmitting unit 1206 , a load detecting unit 207 , and a storing unit 250 .
  • the input unit 201 , the allocating unit 202 , the executing unit 203 , the updating unit 204 , the power controlling unit 205 , and the storing unit 250 have the same configurations as those of the first embodiment.
  • the load detecting unit 207 detects the degree of loads of the core A 301 and the core B 302 for each processing.
  • the load detecting unit 207 calculates the degree of load of each of the core A 301 and the core B 302 from a ratio of an execution time of each processing per unit time. For example, in a case where the unit time is 10 ms, when the execution time of the processing A allocated to the core A 301 is 8 ms, the ratio of the execution time of the processing A in the core A 301 is 80%.
  • the unit time should be a fixed period and is not limited to 10 ms.
  • the load detecting unit 207 transmits load information indicating the detected degree of load to the transmitting unit 1206 .
  • the transmitting unit 1206 transmits an operation state and the load information of each of the core A 301 and the core B 302 to the PC 1 .
  • FIG. 13 is a block diagram illustrating an example of a functional configuration of the PC 1 according to the present embodiment.
  • the engineering tool 11 which is software operating on the PC 1 , includes the receiving unit 101 , the program generating unit 102 , the compiler 103 , the dividing unit 104 , the setup data generating unit 105 , the allocation changing unit 106 , a display controlling unit 1107 , and a transmitting and receiving unit 1108 .
  • the PC 1 includes a storing unit 150 .
  • the receiving unit 101 , the program generating unit 102 , the compiler 103 , the dividing unit 104 , the setup data generating unit 105 , the allocation changing unit 106 , and the storing unit 150 have the same configurations as those of the first embodiment.
  • the transmitting and receiving unit 1108 transmits the application program 311 compiled by the compiler 103 and the setup data 310 generated by the setup data generating unit 105 to the controller 2 , as in the first embodiment.
  • the transmitting and receiving unit 1108 receives a load state in addition to an operation state of each of the core A 301 and the core B 302 from the controller 2 .
  • the display controlling unit 1107 acquires the allocation of the plurality of processing to the core A 301 and the core B 302 in the controller 2 and load information, from the transmitting and receiving unit 1108 , and displays them on the display 16 .
  • the display controlling unit 1107 provides a monitoring screen for changing the allocation of the processing if necessary to the user to let the user to monitor the operation state and the load information of the core A 301 and the core B 302 of the controller 2 .
  • FIG. 14 is a diagram illustrating an example of a monitoring screen according to the present embodiment.
  • An upper section of FIG. 14 illustrates a screen before the allocation of the processing is changed by the user, and a lower section of FIG. 14 illustrates a screen after the allocation of the processing is changed by the user.
  • the monitoring screen according to the present embodiment includes an image 500 that illustrates an entire control process and an image that displays an executed or running processing allocated to the core A 301 and the core B 302 .
  • a horizontal axis indicates a time and a vertical axis indicates the degree of load.
  • Processing A to D are displayed in a series time manner from the left side to the right side of each image in the order of execution.
  • a horizontal width of each processing indicates the unit time, for example, 10 ms. The horizontal width of each processing should be a fixed period and is not limited to 10 ins.
  • the processing A and the processing D are allocated to the core A 301
  • the processing B and the processing C are allocated to the core B 302 .
  • the degree of load of core B 302 is higher than that of the core A 301 in the unit time.
  • the allocation changing unit 106 changes the allocation of the processing C.
  • the display controlling unit 1107 changes the allocation of the processing C on the display 16 to the core A 301 in accordance with the operation of the user and displays the changed allocation.
  • the user since the entire load of the core A 301 becomes higher due to the movement of the processing C, the user further moves the processing D to the core B 302 .
  • the load information on the core A 301 and the B 302 for each of the processing A to D is displayed, it is possible to provide information for performing the allocation of the processing more efficiently to the user.
  • the display controlling unit 1107 illustrates the degree of load of the core A 301 and the core B 302 in a graph in which the horizontal axis indicates the time and the vertical axis indicates the degree of load, but is not limited thereto.
  • the display controlling unit 1107 may represent the degree of load for each processing by a numerical value, and may represent the degree of load for each processing step by step like “low”, “medium”, or “high”.
  • the display controlling unit 1107 may sequentially delete the processing A to D from the display of the display 16 when a predetermined time has elapsed after the processing A to D end. In addition, the display controlling unit 1107 may also display the processing in an execution preparation state allocated to the core A 301 and the core B 302 on the display 16 .
  • FIG. 14 although the I/O interface 25 corresponding to the processing A to D is not illustrated, it may be possible to adopt a configuration in which the I/O interface 25 corresponding to the processing A to D is displayed in a graph indicating the degree of load of the processing A to D as the display controlling unit 1107 . Alternatively, a configuration in which the user can arbitrarily switch the monitoring screen of the first embodiment described in FIG. 6 and the monitoring screen illustrated in FIG. 14 may be adopted.
  • a process of generating the application program 311 and the setup data 310 in the PC 1 according to the present embodiment configured as described above is the same as the flowchart of the first embodiment described with reference to FIG. 8 .
  • FIG. 15 is a flowchart illustrating an example of an overall flow of a control processing according to the present embodiment.
  • the flow from the input of the application program 311 and the setup data 310 of S 10 to the allocation and execution of the processing of S 12 to the core A 301 and the core B 302 is the same as the flow of the processing of the first embodiment described with reference to FIG. 9 .
  • the load detecting unit 207 detects the load information of each processing for each of the core A 301 and the core B 302 (S 23 ).
  • the transmitting unit 1206 transmits an operation state and the load information of each of the core A 301 and the core B 302 to the PC 1 (S 24 ).
  • the monitoring processing illustrated in FIG. 16 is performed, and the allocation of the processing to the core A 301 and the B 302 is changed in some cases. The details of the monitoring processing in the embodiment will be described later.
  • FIG. 16 is a flowchart illustrating an example of a flow of the monitoring processing according to the present embodiment.
  • the processing in the flowchart is initiated when the operation state and the load information of each of the core A 301 and the core B 302 are transmitted from the controller 2 to the PC 1 in S 24 of FIG. 15 .
  • the transmitting and receiving unit 1108 receives the operation state and the load information of each of the core A 301 and the core B 302 from the controller 2 (S 120 ).
  • the display controlling unit 1107 displays the operation state of each of the core A 301 and the core B 302 of the controller 2 on the display 16 (S 121 ).
  • the transmitting and receiving unit 1108 acquires the load information indicating the degree of load on each of the core A 301 and the core B 302 of the controller 2 by the plurality of processing from the controller 2 , and the display controlling unit 1107 displays the degree of load of the core A 301 and the core B 302 on the display 16 .
  • the PC 1 of the present embodiment it is possible to provide the user with the information for appropriately changing the allocation of the processing to the core A 301 and the core B 302 in addition to the same effect as the first embodiment.
  • the load detecting unit 207 detects the degree of load on each processing allocated to the core A 301 and the core B 302 , it is possible to detect the operation state of the controller 2 with high precision in addition to the effect similar to that of the first embodiment.
  • control processing program executed in the controller 2 of each of the above-described embodiments is provided to be embedded in ROM or the like in advance.
  • the control processing program executed in the controller 2 of each of the above-described embodiments may be configured to be recorded in a computer-readable recording medium such as a CD-ROM, flexible disk, CD-R, or DVD in an installable or executable format.
  • control processing program executed in the controller 2 of each of the above-described embodiments may be configured to be stored on a computer connected to a network such as the Internet and provided by downloading via the network.
  • control processing program executed in the controller 2 of each of the above-described embodiments may be configured to be provided or distributed via the network such as the Internet.
  • the control processing program executed in the controller 2 of each of the above-described embodiments has a module configuration including the above-described units (input unit, allocating unit, executing unit, updating unit, power controlling unit, transmitting unit, and load detecting unit), and as practical hardware, the multi-core CPU 20 reads and executes the control processing program from the ROM, and the respective units are loaded on a main storage device, so that the input unit, the allocating unit, the executing unit, the updating unit, the power controlling unit, the transmitting unit, and the load detecting unit are generated on the main storage device.
  • the engineering tool 11 which is the software executed in the PC 1 of each of the above-described embodiments is provided to be recorded in a computer-readable recording medium such as a CD-ROM, flexible disk (FD), CD-R, or digital versatile disk (DVD) in a file of an installable or executable format.
  • the engineering tool 11 executed in the PC 1 of each of the above-described embodiments may be configured to be stored on a computer connected to a network such as the Internet and provided by downloading via the network.
  • the engineering tool 11 executed in the PC 1 of each of the above-described embodiments may be configured to be provided or distributed via the network such as the Internet.
  • the engineering tool 11 of each of the above-described embodiments may be configured to be provided to be embedded in ROM or the like in advance.
  • the engineering tool 11 which is the software executed in the PC 1 of each of the above-described embodiments has a module configuration including the above-described units (receiving unit, program generating unit, compiler, dividing unit, setup data generating unit, allocation changing unit, display controlling unit, and transmitting and receiving unit), and as practical hardware, the CPU 13 reads and executes the program from the storage medium, and the respective units are loaded on a main storage device, so that the receiving unit, the program generating unit, the compiler, the dividing unit, the setup data generating unit, the allocation changing unit, the display controlling unit, and the transmitting and receiving unit are generated on the main storage device.
US16/473,421 2016-12-27 2017-12-04 Programmable controller, management device, and control system Active US10956238B2 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2016-252441 2016-12-27
JPJP2016-252441 2016-12-27
JP2016252441A JP6879625B2 (ja) 2016-12-27 2016-12-27 プログラマブルコントローラ、管理装置および制御システム
PCT/JP2017/043532 WO2018123456A1 (ja) 2016-12-27 2017-12-04 プログラマブルコントローラ、管理装置および制御システム

Publications (2)

Publication Number Publication Date
US20200151033A1 US20200151033A1 (en) 2020-05-14
US10956238B2 true US10956238B2 (en) 2021-03-23

Family

ID=62710938

Family Applications (1)

Application Number Title Priority Date Filing Date
US16/473,421 Active US10956238B2 (en) 2016-12-27 2017-12-04 Programmable controller, management device, and control system

Country Status (6)

Country Link
US (1) US10956238B2 (ja)
JP (1) JP6879625B2 (ja)
KR (1) KR102258542B1 (ja)
CN (1) CN110114732B (ja)
TW (1) TWI664509B (ja)
WO (1) WO2018123456A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7141905B2 (ja) * 2018-10-12 2022-09-26 株式会社日立産機システム コントロール装置及びコントロール方法
US20220075349A1 (en) * 2020-09-08 2022-03-10 Delta Tau Data Systems, Inc. Method and apparatus for multi-core processor management in a motion control system
EP4269026A1 (en) 2020-12-25 2023-11-01 Xebec Technology Co., Ltd. Control method for grinder holder, grinder holder, and grinding tool
WO2023282291A1 (ja) * 2021-07-09 2023-01-12 株式会社安川電機 生産システム、プログラム作成装置、生産方法、及びプログラム

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003295910A (ja) 2002-03-29 2003-10-17 Omron Corp ユニット及びツール機器並びにプログラム製品
JP2007018268A (ja) 2005-07-07 2007-01-25 Sumitomo Heavy Ind Ltd タスクスケジューリング方法、タスクスケジューリング装置、及びタスクスケジューリングプログラム
JP2007094898A (ja) 2005-09-29 2007-04-12 Yokogawa Electric Corp プログラム管理装置
US20110270421A1 (en) 2010-04-30 2011-11-03 Junichi Kawamoto Plant control system and program relocate method
JP2012108883A (ja) 2010-10-01 2012-06-07 Boeing Co:The 領域分割法によるプロセッサ特性の最適化と大規模システムの最適化
JP2012141722A (ja) 2010-12-28 2012-07-26 Mitsubishi Electric Corp 設定装置
US20140068613A1 (en) 2012-09-04 2014-03-06 Fujitsu Limited Non-transitory computer-readable storage medium, information processing apparatus and scheduling method
JP2014081765A (ja) 2012-10-16 2014-05-08 Nippon Telegr & Teleph Corp <Ntt> 負荷分散装置、負荷分散方法および負荷分散プログラム
WO2014162575A1 (ja) 2013-04-04 2014-10-09 三菱電機株式会社 エンジニアリングツールおよびプログラマブルロジックコントローラ
US20150154054A1 (en) 2013-11-29 2015-06-04 Fujitsu Limited Information processing device and method for assigning task
US20160091882A1 (en) * 2014-09-29 2016-03-31 Siemens Aktiengesellschaft System and method of multi-core based software execution for programmable logic controllers
JP2016100881A (ja) 2014-11-26 2016-05-30 株式会社東芝 遠隔制御システム、遠隔制御方法及びコンピュータプログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8856196B2 (en) * 2008-07-22 2014-10-07 Toyota Jidosha Kabushiki Kaisha System and method for transferring tasks in a multi-core processor based on trial execution and core node
US9703595B2 (en) * 2008-10-02 2017-07-11 Mindspeed Technologies, Llc Multi-core system with central transaction control
JP2010218445A (ja) * 2009-03-18 2010-09-30 Toshiba Corp マルチコアプロセッサシステム、スケジューリング方法およびスケジューラプログラム
EP2581834A4 (en) * 2010-06-14 2014-12-31 Fujitsu Ltd MULTICULTURAL PROCESSOR SYSTEM, INTERMEDIATE COHERENCE CONTROL PROCEDURE, AND INTERMEDIATE COHERENCE CONTROL PROGRAM
WO2011161774A1 (ja) * 2010-06-22 2011-12-29 富士通株式会社 マルチコアプロセッサシステム、制御プログラム、および制御方法
JP2012108576A (ja) * 2010-11-15 2012-06-07 Toyota Motor Corp マルチコアプロセッサ、処理実行方法、プログラム
CN102096390B (zh) * 2011-01-30 2014-04-09 深圳市合信自动化技术有限公司 可编程逻辑控制器、组态程序编译器及方法
JP6203691B2 (ja) * 2014-08-29 2017-09-27 ファナック株式会社 複数軸の軸制御処理を分散して実行可能な数値制御装置

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003295910A (ja) 2002-03-29 2003-10-17 Omron Corp ユニット及びツール機器並びにプログラム製品
JP2007018268A (ja) 2005-07-07 2007-01-25 Sumitomo Heavy Ind Ltd タスクスケジューリング方法、タスクスケジューリング装置、及びタスクスケジューリングプログラム
JP2007094898A (ja) 2005-09-29 2007-04-12 Yokogawa Electric Corp プログラム管理装置
US20110270421A1 (en) 2010-04-30 2011-11-03 Junichi Kawamoto Plant control system and program relocate method
JP2011233113A (ja) 2010-04-30 2011-11-17 Toshiba Corp プラント制御システムおよびプログラムリロケート方法
JP2012108883A (ja) 2010-10-01 2012-06-07 Boeing Co:The 領域分割法によるプロセッサ特性の最適化と大規模システムの最適化
JP2012141722A (ja) 2010-12-28 2012-07-26 Mitsubishi Electric Corp 設定装置
JP2014067402A (ja) 2012-09-04 2014-04-17 Fujitsu Ltd プログラム、情報処理装置およびスケジュール決定方法
US20140068613A1 (en) 2012-09-04 2014-03-06 Fujitsu Limited Non-transitory computer-readable storage medium, information processing apparatus and scheduling method
JP2014081765A (ja) 2012-10-16 2014-05-08 Nippon Telegr & Teleph Corp <Ntt> 負荷分散装置、負荷分散方法および負荷分散プログラム
WO2014162575A1 (ja) 2013-04-04 2014-10-09 三菱電機株式会社 エンジニアリングツールおよびプログラマブルロジックコントローラ
US20160085226A1 (en) 2013-04-04 2016-03-24 Mitsubishi Electric Corporation Engineering tool and programmable logic controller
US20150154054A1 (en) 2013-11-29 2015-06-04 Fujitsu Limited Information processing device and method for assigning task
JP2015106298A (ja) 2013-11-29 2015-06-08 富士通株式会社 タスク割り付けプログラム及びタスク割り付け方法
US20160091882A1 (en) * 2014-09-29 2016-03-31 Siemens Aktiengesellschaft System and method of multi-core based software execution for programmable logic controllers
JP2016100881A (ja) 2014-11-26 2016-05-30 株式会社東芝 遠隔制御システム、遠隔制御方法及びコンピュータプログラム

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
Combined Taiwanese Office Action and Search Report dated Nov. 2, 2018 in Patent Application No. 106145280 (with English translation), citing documents AM-AQ therein, 15 pages.
International Search Report dated Jan. 23, 2018 in PCT/JP2017/043532, citing documents AA, AB and AO-AU therein, 2 pages.
Notice of Reasons for Refusal dated Jun. 9, 2020 in Japanese Patent Application No. 2016-252441 (with unedited computer generated English translation), 7 pages.
Notification of Reason for Refusal dated Oct. 19, 2020 in Korean Patent Application No. 10-2019-7017786 (with English machine translation), 12 pages.
Office Action dated Jan. 12, 2021 in Korea Patent Application No. 10-2017,7017786 (with English translation); 9 pgs.
Office Action dated Nov. 17, 2020 in Japanese Patent Application No. 2016-252441 (with English translation), 7 pgs.

Also Published As

Publication number Publication date
TWI664509B (zh) 2019-07-01
CN110114732A (zh) 2019-08-09
WO2018123456A1 (ja) 2018-07-05
JP6879625B2 (ja) 2021-06-02
TW201832029A (zh) 2018-09-01
KR20190087520A (ko) 2019-07-24
US20200151033A1 (en) 2020-05-14
KR102258542B1 (ko) 2021-05-28
CN110114732B (zh) 2022-02-25
JP2018106440A (ja) 2018-07-05

Similar Documents

Publication Publication Date Title
US10956238B2 (en) Programmable controller, management device, and control system
JP6406466B1 (ja) 制御装置、制御方法および制御プログラム
US20180043258A1 (en) Information processing apparatus, information processing method, non-transitory computer-readable storage medium
JP2009037271A (ja) 仮想計算機システムの停止方法および計算機装置
CN111290768A (zh) 一种容器化应用系统的更新方法、装置、设备和介质
EP3647942B1 (en) Engineering apparatus, control method of engineering apparatus, and program
JP5977778B2 (ja) 情報処理装置およびメモリー管理方法
US11392412B2 (en) Engineering tool, controller, and control system
JP2015152987A (ja) 制御装置
US10862803B2 (en) Repurposing a target endpoint to execute a management task
CN105320030B (zh) 工程装置、工程系统以及下载处理方法
EP3819758A2 (en) Instruction executing method and apparatus, electronic device, and computer-readable storage medium
KR102316749B1 (ko) 가상 머신 워크로드 예측 방법, 가상 머신 배치 방법 및 이를 구현하는 가상 머신 배치 장치
CN110737533B (zh) 一种任务调度方法、装置及电子设备和存储介质
CN113051122B (zh) 性能数据获取方法、装置、电子设备和介质
JP6833649B2 (ja) プログラマブルコントローラ及びコントロールシステム
US20150100825A1 (en) Information processing device and method
JP6874590B2 (ja) 情報処理システム、管理装置、情報処理システムの制御方法
JP2021026652A (ja) 制御システム
JP7447186B2 (ja) 計算機システム及び仮想化基盤の構築制御方法
JP2008129709A (ja) タスク制御方法、データ処理システム、タスク制御プログラム及びその記憶媒体
JP6289197B2 (ja) プラント制御装置エンジニアリングツール
JP2022178916A (ja) 機械学習システム、機械学習プログラム、及び、機械学習方法
JP6199793B2 (ja) ジョブ実行管理システム、ジョブ再実行方法およびジョブ再実行プログラム
JP2022030101A (ja) 情報処理プログラム、情報処理方法、情報処理装置

Legal Events

Date Code Title Description
FEPP Fee payment procedure

Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS

STPP Information on status: patent application and granting procedure in general

Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS

STCF Information on status: patent grant

Free format text: PATENTED CASE