WO2020179581A1 - 制御装置およびソフトウェアのデプロイ方法 - Google Patents

制御装置およびソフトウェアのデプロイ方法 Download PDF

Info

Publication number
WO2020179581A1
WO2020179581A1 PCT/JP2020/007790 JP2020007790W WO2020179581A1 WO 2020179581 A1 WO2020179581 A1 WO 2020179581A1 JP 2020007790 W JP2020007790 W JP 2020007790W WO 2020179581 A1 WO2020179581 A1 WO 2020179581A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
version
package
packages
user
Prior art date
Application number
PCT/JP2020/007790
Other languages
English (en)
French (fr)
Inventor
達矢 小島
Original Assignee
オムロン株式会社
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 オムロン株式会社 filed Critical オムロン株式会社
Priority to EP20766476.4A priority Critical patent/EP3936951B1/en
Priority to US17/434,637 priority patent/US11907735B2/en
Priority to CN202080017947.7A priority patent/CN113508346B/zh
Publication of WO2020179581A1 publication Critical patent/WO2020179581A1/ja

Links

Images

Classifications

    • 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/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31418NC program management, support, storage, distribution, version, update

Definitions

  • the present disclosure relates to a control device that controls a control target and a software deployment method in the control device.
  • Control devices such as PLC (Programmable Logic Controller) have been introduced at various manufacturing sites.
  • a control device is a kind of computer, and executes a user program such as a control program designed according to the manufacturing apparatus or manufacturing equipment.
  • This type of programmable controller stores a user program created by a program tool and interprets and executes the user program to control the process.
  • Patent Document 1 discloses a program execution blocking unit that blocks execution of a corresponding user program when the tool version and the interpreter version do not match.
  • a programmable controller stores in advance multiple programs that are called when the user program is executed. It is conceivable to store different versions of the program in the programmable controller so that different versions of the user program can be accommodated. Therefore, in order to execute the user program, the programmable controller needs to select an appropriate version of the package program corresponding to the version of the user program.
  • One object of the present disclosure is to provide a control device capable of selecting an appropriate version of a package program from a plurality of versions according to a version of a user program, and a method of deploying software in the control device.
  • An example of the present disclosure is a control device for controlling a controlled object, which is a program package for storing a user program and one or more versions of a program executed in cooperation with the user program.
  • the management module selects a package to be deployed from one or a plurality of program packages based on the version of the user program, and arranges a version of the program suitable for the version of the user program in the main memory from the package to be deployed. Execute the deployment process to do so.
  • control device can select an appropriate version of the package program from a plurality of versions according to the version of the user program. Thereby, for example, backward compatibility of the user program can be ensured.
  • the one or more program packages select a version of a program suitable for the version of the user program from the packages to be deployed according to the deployment process of the package management module, and store the selected programs in the main memory. Including a check module to be placed in.
  • the package management module only needs to select the required package.
  • the check module only needs to select the appropriate version of the program. Therefore, it is possible to flexibly deal with the addition of packages.
  • the main storage device stores format information about the format name of the hardware of the control device
  • the package management module acquires the format information from the main storage device, based on the format information and the version of the user program, Select the package to be deployed from one or more program packages.
  • the main storage device stores a package management table that stores the format information and the version of the program associated with the format information in one or more program packages, and the check module stores the format information and the package management table. Based on the information stored in, the information about the program version of the package that matches the user program version is obtained.
  • the one or more program packages are a plurality of program packages
  • the plurality of program packages include an add-on package added to the control device
  • the main storage device has a version of the user program and the plurality of program packages.
  • the package management module stores a table that stores the program in association with each program version, and the package management module matches the combination of multiple program packages including add-on packages to the user program version based on the information stored in the table. It is determined whether or not the combination is suitable for the user program, and if the combination is suitable for the user program version, the program of the add-on package having the version suitable for the user program version is selected.
  • One example of the present disclosure is a method for deploying software used in a control device that controls a control target, in which the control device executes a user program and one or a plurality of versions of a program executed in cooperation with the user program.
  • a main storage device that stores one or more program packages in a non-volatile manner, a main memory for arranging user programs and programs of program packages, and a processor for executing software.
  • the method is to get the version of the user program, to select the package to be deployed from one or more program packages based on the version of the user program, and from the package to be deployed to the version of the user program. It includes a step of selecting a suitable version of the program and a step of arranging the selected program in the main memory.
  • the step of selecting the package to be deployed is based on the step of acquiring the format information regarding the format name of the hardware of the control device stored in the main storage device and the version of the format information and the user program. Or it includes a step of selecting a package to be deployed from multiple program packages.
  • the main storage device stores a package management table that stores format information and the version of the program associated with the format information in one or more program packages, and the version of the program that matches the version of the user program.
  • the step of selecting the includes the step of acquiring the version information based on the format information.
  • the one or more program packages are a plurality of program packages
  • the plurality of program packages include an add-on package added to the control device
  • the main storage device has a version of the user program and the plurality of program packages.
  • the step of storing a table that stores the program in association with each program version of the program and selecting the version of the program that matches the version of the user program from the packages to be deployed is based on the information stored in the table.
  • a combination of a plurality of program packages including an add-on package is a combination suitable for the version of the user program, and if the combination of a plurality of program packages is a combination compatible with the version of the user program, the user program Select a program in the add-on package that has a version that matches the version of.
  • the add-on package program can be properly deployed.
  • control device can select an appropriate version of the package program from a plurality of versions according to the version of the user program.
  • FIG. 1 is a diagram schematically showing an example of the overall configuration of a control system 1 according to this embodiment.
  • FIG. 1 shows a control system 1 centered on a control device 100 according to the present embodiment.
  • control device 100 corresponds to an industrial controller that controls control targets such as various types of equipment and devices.
  • the control device 100 is a kind of computer that executes a control operation as described later, and may be typically embodied as a PLC (programmable controller).
  • PLC programmable controller
  • the control device 100 may be connected to various field devices 500 via the field network 2.
  • the control device 100 exchanges data with one or a plurality of field devices 500 via the field network 2 or the like.
  • the "field network” is also referred to as a "field bus”, but for the sake of simplification of the description, the “field network” is generically referred to in the following description. That is, the “field network” in the present specification is a concept that can include “field bus” in addition to “field network” in a narrow sense.
  • An arbitrary field device 500 can be connected to the field network 2.
  • the field device 500 includes an actuator that gives some physical action to a manufacturing device, a production line, or the like (hereinafter, also collectively referred to as a “field”), an input / output device that exchanges information with the field, and the like.
  • a manufacturing device e.g., a production line, or the like
  • EtherCAT registered trademark
  • EtherCAT registered trademark
  • the field device 500 connected to the field network 2 includes a remote I / O (Input / Output) device 510, a robot controller 522, 526, and a servo driver 540, 544.
  • the robot controller 522,526 and the servo drivers 540,544 correspond to one or more actuators (devices) that operate according to a control command from the control device 100.
  • FIG. 1 shows an example in which one or a plurality of actuators operating according to a control command from the control device 100 are also connected to the field network 2, but the present invention is not limited to this, and a control command from the control device 100 is received. Any connection form may be used as long as it is possible. For example, a control command may be given from a remote I/O device 510 connected to the field network 2 via a signal line.
  • FIG. 2 is a block diagram showing a hardware configuration example of the control device 100 according to the present embodiment.
  • the control device 100 according to the present embodiment is an arithmetic processing unit also referred to as a CPU unit, and includes a processor 102 and a field network controller 130.
  • the field network controller 130 controls the exchange of data between the field devices 500 via the field network 2. Such data exchange includes a process of transmitting data such as a control command from the control device 100 to the field device 500 (hereinafter, also referred to as “output data”) and data collected or generated by the field device 500 (hereinafter, also referred to as “output data”). , Also referred to as “input data”) by the control device 100.
  • the field network controller 130 corresponds to an example of “communication circuit”.
  • the control device 100 is a field device by sequentially repeating transmission of output data, reception of input data, and execution of a control program that generates output data using the input data at predetermined control cycles. Is configured to control 500.
  • the control program includes a user program created according to the control purpose of the user and at least one program that realizes the control purpose of the user in cooperation with the user program.
  • the latter program may include, for example, a system program.
  • at least one package is stored in control device 100, and the package has one or a plurality of versions of programs.
  • the control device 100 selects a necessary package according to the version of the user program and gives a deployment instruction including version information of the user program to each package. Each package loads the appropriate version of the program according to its version information. Therefore, the control device 100 can select an appropriate version of the package program from a plurality of versions according to the version of the user program. Furthermore, the control device 100 can flexibly deal with the addition of packages (add-on).
  • control system 1 As a more specific application example of the present invention, a more detailed configuration and processing of the control system 1 according to the present embodiment will be described.
  • the servo drivers 540 and 544 drive the servo motors 542 and 546, respectively, according to a control command (for example, a position command or a speed command) from the control device 100.
  • a control command for example, a position command or a speed command
  • the robot controller 522 drives the robot 520, and the robot controller 526 drives the robot 524.
  • the robot controllers 522 and 526 perform trajectory calculation, angle calculation of each axis, and the like according to a control command (position command, speed command, etc.) from the control device 100, and servomotors constituting the robots 520 and 524 according to the calculation results. Drive etc.
  • Remote I/O device 510 is typically a communication coupler that communicates via field network 2 and an input/output unit (hereinafter, “I/O unit”) for acquiring input data and outputting output data. Also referred to as ".”
  • the remote I / O device 510 includes a device that collects input data such as an input relay and various sensors (for example, an analog sensor, a temperature sensor, a vibration sensor, etc.), an output relay, a contactor, a servo driver, and other optional devices. A device that exerts some action on the field such as the actuator is connected.
  • the field device 500 includes, but is not limited to, any device that collects input data (for example, a visual sensor), and any device that exerts some action according to the output data (for example, an inverter device). Can be adopted.
  • the control device 100 may be connected to another device via the upper network 6.
  • Ethernet registered trademark
  • EtherNet / IP registered trademark
  • one or more server devices 300 or one or more display devices 400 may be connected to the higher level network 6.
  • the server device 300 As the server device 300, a database system, a manufacturing execution system (MES: Manufacturing Execution System), etc. are assumed.
  • the manufacturing execution system acquires information from the manufacturing equipment and facilities to be controlled, monitors and manages the entire production, and can also handle order information, quality information, shipping information, and the like.
  • the invention is not limited to this, and a device that provides an information service may be connected to the host network 6.
  • a process of acquiring information from a manufacturing apparatus or equipment to be controlled and performing macro or micro analysis is assumed. For example, data mining that extracts some characteristic trends contained in information from controlled manufacturing equipment and facilities, and machine learning tools for performing machine learning based on information from controlled target equipment and machines are assumed. To be done.
  • the display device 400 receives an operation from the user, outputs a command or the like corresponding to the user operation to the control device 100, and graphically displays the calculation result or the like on the control device 100.
  • the support device 200 can be connected to the control device 100.
  • the support device 200 is a device that assists the preparation necessary for the control device 100 to control the controlled object.
  • the support device 200 includes a program development environment (program creation / editing tool, parser, compiler, etc.) executed by the control device 100, parameters (configuration) of the control device 100 and various devices connected to the control device 100. It provides a setting environment for setting the operation, a function of outputting the generated sequence program to the control device 100, a function of modifying / changing the sequence program executed on the control device 100 online, and the like.
  • control device 100 the control device 100, the support device 200, and the display device 400 are configured as separate bodies, but all or part of these functions are integrated into a single device. A configuration may be adopted.
  • FIG. 2 is a block diagram showing a hardware configuration example of the control device 100 according to the present embodiment.
  • the control device 100 is an arithmetic processing unit called a CPU unit, and includes a processor 102, a chipset 104, a main memory 106, a storage 108, a host network controller 110, a USB ( It includes a Universal Serial Bus controller 112, a memory card interface 114, an internal bus controller 120, and a field network controller 130.
  • a CPU unit includes a processor 102, a chipset 104, a main memory 106, a storage 108, a host network controller 110, a USB ( It includes a Universal Serial Bus controller 112, a memory card interface 114, an internal bus controller 120, and a field network controller 130.
  • the processor 102 is composed of a CPU (Central Processing Unit), an MPU (Micro Processing Unit), a GPU (Graphics Processing Unit), and the like. A configuration having a plurality of cores may be adopted as the processor 102, or a plurality of processors 102 may be arranged. That is, the control device 100 includes one or more processors 102 and/or a processor 102 having one or more cores.
  • the chipset 104 realizes the processing of the control device 100 as a whole by controlling the processor 102 and peripheral elements.
  • the main memory 106 is composed of a volatile storage device such as a DRAM (Dynamic Random Access Memory) or a SRAM (Static Random Access Memory).
  • the storage 108 is a main storage device, and is composed of, for example, a non-volatile storage device such as an HDD (Hard Disk Drive) and an SSD (Solid State Drive).
  • the processor 102 reads various programs stored in the storage 108, expands them in the main memory 106, and executes them to realize control and various processes according to the control target.
  • the storage 108 in addition to the user data 30, one or a plurality of package programs 32 and setting information 40 are stored.
  • the user data 30 is created in the support device 200 according to the control purpose of the user and is sent from the support device 200 to the control device 100.
  • the user data 30 includes a user program designed according to the line (process) to be controlled using the control system 1.
  • the user program cooperates with the package program 32 to realize the control purpose in the user. That is, the user program realizes the programmed operation by using the instruction, function, function module, etc. provided by the package program 32. Therefore, the user program and the package program may be collectively referred to as "control program".
  • the package program 32 is prepared in accordance with, for example, a manufacturing apparatus or equipment to be controlled, and is stored in the storage 108.
  • the system program 34 can include the protocol stack 36 and the device driver 38.
  • the system program 34 is a program for realizing the function as the control device 100.
  • the system program 34 can include a scheduler program, an input/output processing program, and other system programs.
  • the protocol stack 36 is composed of a plurality of protocol layers that define communication procedures and exchanges in the field network 2.
  • the device driver 38 is a driver for controlling the field network controller 130.
  • the upper network controller 110 controls the exchange of data with the server device 300, the display device 400 (see FIG. 1), and the like via the upper network 6.
  • the USB controller 112 controls the exchange of data with the support device 200 via the USB connection.
  • the memory card interface 114 is configured so that the memory card 116 can be attached and detached, and data can be written to the memory card 116 and various data (sequence program, user program, etc.) can be read from the memory card 116. ing.
  • the internal bus controller 120 controls the exchange of data with the I/O unit 122 mounted on the control device 100. Specifically, the internal bus controller 120 functions as a transmission buffer for data (output data) output to the I / O unit 122 and a reception buffer for data (input data) input from the I / O unit 122. To do.
  • the output data generated by the arithmetic processing by the processor 102 is initially stored in the storage 108. Then, the output data to be transferred to the specific I/O unit 122 is read from the storage 108 and is temporarily held in the transmission buffer. Further, the input data transferred from the I/O unit 122 is temporarily held in the reception buffer and then moved to the storage 108.
  • the internal bus controller 120 further performs a process of transmitting output data of the transmission buffer and a process of receiving input data and storing the input data in the reception buffer with the I / O unit 122.
  • the internal bus controller 120 typically provides physical layer and data link layer functions on the internal bus.
  • the field network controller 130 controls the exchange of data with the field device 500 via the field network 2. That is, the field network controller 130 controls transmission of output data and reception of input data according to the standard of the field network 2. Specifically, the field network controller 130 functions as a transmission buffer for data (output data) output to the field device 500 and a reception buffer for data (input data) input from the field device 500.
  • the output data generated by the arithmetic processing by the processor 102 is initially stored in the storage 108. Then, the output data to be transferred to the specific field device 500 is read from the storage 108 and temporarily stored in the transmission buffer. Further, the input data transferred from the field device 500 is temporarily held in the reception buffer and then moved to the storage 108.
  • the field network controller 130 further performs a process of transmitting output data of the transmission buffer and a process of receiving input data and storing the input data in the reception buffer with the field device 500.
  • the field network controller 130 provides physical layer and data link layer functions in the field network 2.
  • FIG. 2 shows a configuration example in which the necessary functions are provided by the processor 102 executing the program, and some or all of these provided functions are provided by a dedicated hardware circuit (for example, ASIC). Alternatively, it may be implemented using an FPGA or the like). Alternatively, the main part of the control device 100 may be realized by using hardware that follows a general-purpose architecture (for example, an industrial personal computer based on a general-purpose personal computer). In this case, the virtualization technology may be used to execute a plurality of OSs (Operating Systems) having different uses in parallel, and to execute necessary applications on each OS.
  • OSs Operating Systems
  • FIG. 3 is a schematic diagram showing a hardware configuration example of support device 200 connected to control device 100 according to the present embodiment.
  • the support device 200 is realized by using, for example, hardware conforming to a general-purpose architecture (for example, a general-purpose personal computer).
  • the support device 200 communicates with a processor 202 such as a CPU or GPU, a main storage device 204, an input unit 206, an output unit 208, a secondary storage device 510, and an optical drive 212. Interface 218. These components are connected via the processor bus 220.
  • the processor 202 realizes various processes by reading the programs (OS 2102 and the support program 2104 as an example) stored in the secondary storage device 210, deploying them in the main storage device 204, and executing the programs.
  • the support program 2104 for providing the functions as the support device 200 is stored.
  • the support program 2104 is executed by an information processing device (substantially a processor 202) that is a computer to realize the support device 200 according to the present embodiment.
  • the secondary storage device 210 stores a project 2106 created by the user in the development environment provided by executing the support program 2104.
  • the support device 200 is a development environment in which settings for each device included in the control device 100 (denoted as “PLC” in FIG. 3) and creation of a program executed by each device can be integrated. I will provide a.
  • the project 2106 contains the data generated by such an integrated development environment.
  • project 2106 includes standard control source program 2108.
  • the standard control source program 2108 is converted into an object code, transferred to the control device 100, and stored as a user program.
  • the input unit 206 is composed of a keyboard, a mouse, etc., and accepts user operations.
  • the output unit 208 includes a display, various indicators, a printer, and the like, and outputs the processing result from the processor 202 and the like.
  • the communication interface 218 exchanges data with the control system 1 via an arbitrary communication medium such as USB or Ethernet.
  • the support device 200 has an optical drive 212, and a recording medium 214 (for example, an optical recording medium such as a DVD (Digital Versatile Disc)) that non-transiently stores computer-readable instructions is contained therein.
  • the stored program is read and installed in the secondary storage device 210 or the like.
  • the support program 2104 or the like executed by the support device 200 may be installed via a computer-readable recording medium 214, or may be installed by downloading from a server device or the like on the network. Further, the function provided by support device 200 according to the present embodiment may be realized by utilizing a part of the module provided by the OS.
  • FIG. 3 shows a configuration example in which the functions required as the support device 200 are provided by the processor 202 executing the program, and some or all of these provided functions are provided by dedicated hardware. It may be implemented using a circuit (eg, ASIC or FPGA).
  • FIG. 4 is a diagram showing an example of an application scene of the control device 100 according to the present embodiment. The configuration shown in FIG. 4 is realized by expanding the program in the main memory 106.
  • the storage 108 which is the main storage device, stores the user data 30, the packages 32A, 32B, 32C, the format information 50, and the package consistency table 60.
  • the packages 32A, 32B, and 32C are also referred to as “package A”, “package B”, and “package C” in FIG. 4, respectively.
  • the package management module 106A is arranged in the main memory 106.
  • the user data 30 is created in the support device 200 and transferred from the support device 200 to the control device 100.
  • the user data 30 includes a user program 10, user data version information 12, and configuration data 14.
  • the user program 10 realizes the desired operation by using the instructions, functions, function modules, etc. provided by one or more of the packages 32A to 32C.
  • the version of the user program 10 is indicated by the user data version information 12.
  • the user data version is “1.2”.
  • the user data 30 may include information on the attribute of the user data in addition to the information on the user data version.
  • the configuration data 14 includes information that defines the configuration and settings of the control system 1 including the control device 100.
  • the configuration data 14 includes user program and setting value information associated with the field device 500 connected to the field network 2, and user program and setting information associated with a device connected to the higher level network 6. It can include information about settings.
  • the control device 100 stores programs in package units.
  • the packages 32A, 32B, 32C may relate to communication protocols such as E-CAT.
  • the package may be installed in the control device 100 in advance, or may be installed in the control device 100 by an add-on.
  • Each of the packages 32A, 32B, and 32C includes one or a plurality of versions of programs (package programs) and a check module.
  • Package 32A includes a version 1.0 program 20A, a version 1.1 program 21A, a version 1.2 program 22A, and a check module 25A.
  • the package 32B includes a version 20 program 20B, a version 2.0 program 22B, and a check module 25B.
  • the package 32C includes a program 20C of version 1.0 and a check module 25C.
  • the check module of each package checks the version of one or more programs included in the package and selects the appropriate version of the program.
  • the appropriate version is, for example, a version when the user program has backward compatibility with the program of the package program.
  • the user program may be a version having upward compatibility with the program of the package program.
  • the format information 50 includes format name information 52 and a package management table 54.
  • the format name information 52 includes information on the format name of the hardware, for example, the format of the processor 102 shown in FIG.
  • the model name information 52 may include information about the model name of other hardware.
  • the format name information 52 may include the format information of the field network controller 130.
  • the package management table 54 stores the format name included in the format name information 52 and the program version of the corresponding package program in association with each other.
  • FIG. 5 is a schematic diagram showing an example of the package management table 54.
  • the package management table 54 stores the format of the processor 102.
  • the format of the processor 102 is associated with the applicable version of the program of each package (denoted as "package A program", "package B program”, etc. in FIG. 5). For example, when the format of the processor 102 is "CPU101-1", the version of the program to which the package A program is applied is 1.1 or later, and the version of the program to which the package B program is applied is 1.0 or later.
  • the package consistency table 60 stores the user data version and the version of the package program in association with each other.
  • FIG. 6 is a schematic diagram showing an example of the package consistency table 60.
  • the program version of each package is registered for one user data version.
  • the package consistency table 60 represents a combination of package program versions that cannot be used for a certain user data version. For example, when the user data version is 1.0, the combination of the package A program A (version 1.01), the package B program (version 1.01), and the package C program (version 1.02) cannot be used.
  • a program executed by the processor 102 is expanded in the main memory 106.
  • the package management module 106A is one of the modules of the program expanded in the main memory 106. Data, information, and the like acquired by the processor 102 executing the program are temporarily stored in the main memory 106.
  • the arrow pointing from the storage 108 to the package management module 106A indicates that the information acquired from the storage 108 is stored in the main memory 106.
  • the arrow pointing from the package management module 106A to the storage 108 indicates the control by the package management module 106A.
  • the package management module 106A acquires the format information 50 from the storage 108 and selects the package program to be deployed from each of the packages 32A, 32B, and 32C.
  • the package management module 106A acquires the version of user data from the storage 108 and deploys the package program selected based on the user data version. As a result, the version of the package program adapted to the user data version is expanded in the main memory 106.
  • FIG. 7 is a diagram illustrating a deployment process based on fixed format information in the control device according to the present embodiment.
  • FIG. 7 shows a deployment flow based on the information included in the format information 50 in advance.
  • the package management module 106A refers to the format information 50 and acquires the format information (for example, the format information of the processor 102).
  • the package management module 106A refers to the package management table 54.
  • the package management module 106A acquires information (format information) regarding the package to be deployed and an appropriate version of the program of the package based on the format information acquired in step S1.
  • the package management module 106A refers to the user data 30. Specifically, the package management module 106A refers to the user data version information 12 to acquire the user data version.
  • step S4A the package management module 106A deploys the package 32A according to the user data version.
  • the package management module 106A gives a deployment instruction to the check module 25A of the package 32A.
  • package 32A a package program to which the check module 25A is compatible is selected (step S5A), and the program is deployed (step S6A).
  • step S4B the package management module 106A deploys the package 32B according to the user data version.
  • the package management module 106A gives a deployment instruction to the check module 25B of the package 32B.
  • step S5B a package program to which the check module 25B is compatible is selected (step S5B), and the program is deployed (step S6B).
  • step S4B has been described after the description of the process of step S4A, but the processes of steps S4A and S4B may be executed sequentially or in parallel. Further, the package consistency table 60 may be referred to in the processing of steps S4A and S4B.
  • FIG. 8 is a diagram illustrating a process of deploying an add-on package in the control device according to the present embodiment.
  • the package management module 106A executes the deployment of the package 32A according to the user data version.
  • the package management module 106A executes the deployment of the package 32B according to the user data version. Since the processes of steps S11 and S12 are basically the same as the processes of the corresponding steps shown in FIG. 7, the following description will not be repeated.
  • step S13 the package management module 106A receives an add-on operation for the package 32C from the outside.
  • the package management module 106A refers to the package consistency table 60 and determines whether or not there is a compatible version combination among the program combinations of the packages 32A, 32B, and 32C.
  • the package management module 106A obtains the user data version by referring to the user data version information 12 in step S15. In step S16, the package management module 106A instructs the check module 25C to deploy a compatible version of the program for the package 32C according to the user data version. In the package 32C, a package program to which the check module 25C is compatible is selected (step S17A), and the package program is deployed (step S17A).
  • FIG. 9 is a flowchart showing the flow of processing executed by the check module in the package program.
  • the check module receives the user data version from the package management module 106A and starts the deploy process.
  • the check module obtains the deployable program version of each package from the package management table 54.
  • the process proceeds to step S23, and the check module activates the deployable package program.
  • the check module informs the package management module of the activated package program version.
  • the check module informs the package management module 106A that there is no deployable package program.
  • the package management module only needs to select the required package.
  • the check module only needs to select the appropriate version of the program. Therefore, it is possible to flexibly deal with the addition of packages.
  • the check module is included in each package program.
  • the package management module 106A may have a check module.
  • a control device (100) for controlling a controlled object comprising: A main storage device that non-volatilely stores a user program and one or more program packages (32A, 32B, 32C) that store one or more versions of the program executed in cooperation with the user program.
  • the package management module (106A) selects a package to be deployed from the one or more program packages (32A, 32B, 32C) based on the version of the user program, and from the package to be deployed,
  • the one or more program packages (32A, 32B, 32C) are In response to the deployment process of the package management module (106A), a version of the program suitable for the version of the user program is selected from the packages to be deployed, and the selected program is used as the main memory (106). Including the check module (25A, 25B, 25C) to be placed in 1.
  • the control device (100) according to.
  • the main storage device (108) Storing format information about the format name of the hardware of the control device (100),
  • the package management module (106A) acquires the format information from the main storage device (108), and based on the format information and the version of the user program, the one or more program packages (32A, 32B, 32C), select the package to be deployed.
  • the control device (100) according to.
  • the main storage device (108) stores the format information and the version of the program associated with the format information in the one or more program packages (32A, 32B, 32C) (54).
  • Store The check module (25A, 25B, 25C) is based on the format information and the information stored in the package management table (54), and is information about the version of the program of the package that matches the version of the user program. 2.
  • the control device (100) according to.
  • the one or more program packages (32A, 32B, 32C) are a plurality of program packages.
  • the plurality of program packages include an add-on package (32C) added to the control device (100).
  • the main storage device (108) stores a table (60) for storing the version of the user program and the version of each program of the plurality of program packages in association with each other, Based on the information stored in the table (60), the package management module (106A) is a combination of a plurality of program packages including the add-on package (32C) suitable for the version of the user program. It is determined whether or not the combination of the add-on package (32C) having the version compatible with the version of the user program is selected in the case of the combination compatible with the version of the user program, To 4.
  • the control device (100) according to any one of the above.
  • a method for deploying software used in a control device (100) for controlling a control target comprises: A main storage device that non-volatilely stores a user program and one or more program packages (32A, 32B, 32C) that store one or more versions of the program executed in cooperation with the user program. 108), A main memory (106) for arranging the user program and the program of the program package (32A, 32B, 32C); A processor (102) for executing the software is provided.
  • the deployment method is The step of acquiring the version of the user program and Selecting a package to be deployed from the one or more program packages (32A, 32B, 32C) based on the version of the user program; A step of selecting a version of the program suitable for the version of the user program from the packages to be deployed, and A method of deploying software, comprising the step of arranging the selected program in the main memory (106).
  • the step of selecting the package to be deployed is Acquiring format information regarding a format name of a hardware of the control device (100), which is stored in the main storage device (108); 5.
  • the main storage device (108) stores the format information and the version of the program associated with the format information in the one or more program packages (32A, 32B, 32C) in a package management table (54).
  • Store and The step of selecting a version of the program that matches the version of the user program comprises: 6.
  • the one or more program packages (32A, 32B, 32C) are a plurality of program packages.
  • the plurality of program packages include an add-on package (32C) added to the control device (100).
  • the main storage device (108) stores a table (60) for storing the version of the user program and the version of each program of the plurality of program packages in association with each other,
  • the step of selecting a version of the program suitable for the version of the user program from the packages to be deployed is Determining whether a combination of a plurality of program packages including the add-on package (32C) is a combination suitable for the version of the user program based on the information stored in the table (60), 5.
  • the program of the add-on package (32C) having the version compatible with the version of the user program is selected.
  • the software deployment method according to any one of the above items.
  • control system 2 field network, 6 upper network, 10 user program, 12 user data version information, 14 configuration data, 20A, 20B, 20C, 21A, 22A, 22B program, 25A, 25B, 25C check module, 30 users Data, 32 package programs, 32A, 32B, 32C packages, 34 system programs, 36 protocol stacks, 38 device drivers, 40 setting information, 50 format information, 52 format name information, 54 package management table, 60 package consistency table, 100 Control device 102, 202 processor, 104 chipset, 106 main memory, 106A package management module, 108 storage, 110 upper network controller, 112 USB controller, 114 memory card interface, 116 memory card, 120 internal bus controller, 122 I / O Unit, 130 field network controller, 200 support device, 204 main storage device, 206 input section, 208 output section, 210, 510 secondary storage device, 212 optical drive, 214 recording medium, 218 communication interface, 220 processor bus, 300 server Equipment, 400 display device, 500 field equipment, 520, 524 robot, 522,526 robot

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Automation & Control Theory (AREA)
  • Stored Programmes (AREA)
  • Programmable Controllers (AREA)

Abstract

制御装置(100)は、ユーザプログラムおよびプログラムパッケージ(32A,32B,32C)を不揮発的に格納する主記憶装置(108)と、パッケージ管理モジュール(106A)が配置された主メモリ(106)と、プロセッサ(102)とを備える。パッケージ管理モジュール(106A)は、ユーザプログラムのバージョンに基づいて、プログラムパッケージ(32A,32B,32C)から、デプロイ対象のパッケージを選択して、デプロイ対象のパッケージから、ユーザプログラムのバージョンに適合したバージョンのプログラムを主メモリ(106)に配置するためのデプロイ処理を実行する。

Description

制御装置およびソフトウェアのデプロイ方法
 本開示は、制御対象を制御する制御装置およびその制御装置におけるソフトウェアのデプロイ方法に関する。
 様々な製造現場において、PLC(Programmable Logic Controller)などの制御装置が導入されている。このような制御装置は、一種のコンピュータであり、製造装置や製造設備などに応じて設計された制御プログラムなどのユーザプログラムが実行される。この種のプログラマブルコントローラは、プログラムツールにより作成されたユーザプログラムを記憶するとともに、このユーザプログラムを解釈及び実行してプロセスを制御している。
 プログラムツールおよびプログラマブルコントローラのそれぞれがプログラムを管理することにより、ツールとコントローラとの間でプログラムのバージョンが整合しないことが起こりえる。特開平7-253875号公報(特許文献1)は、ツールバージョンとインタプリタバージョンとが不一致の場合に、該当するユーザプログラムの実行を阻止するプログラム実行阻止手段を開示する。
特開平7-253875号公報
 プログラマブルコントローラでは、ユーザプログラムの実行時に呼び出される複数のプログラムを予め格納していることが多い。ユーザプログラムのさまざまなバージョンに対応可能なように、さまざまなバージョンのプログラムをプログラマブルコントローラに格納することが考えられる。したがって、ユーザプログラムを実行させるために、プログラマブルコントローラはユーザプログラムのバージョンに対応した適切なバージョンのパッケージプログラムを選択する必要がある。
 本開示の1つの目的は、ユーザプログラムのバージョンに応じて、複数のバージョンから適切なバージョンのパッケージプログラムを選択することができる制御装置およびその制御装置におけるソフトウェアのデプロイ方法を提供することである。
 本開示の一例は、制御対象を制御するための制御装置であって、ユーザプログラムと、ユーザプログラムと協働して実行される1または複数のバージョンのプログラムを格納する、1または複数のプログラムパッケージとを不揮発的に格納する主記憶装置と、ユーザプログラムおよびプログラムパッケージのプログラムを配置するための主メモリと、プログラムパッケージを管理するパッケージ管理モジュールを含むソフトウェアを実行するためのプロセッサとを備え、パッケージ管理モジュールは、ユーザプログラムのバージョンに基づいて、1または複数のプログラムパッケージから、デプロイ対象のパッケージを選択して、デプロイ対象のパッケージから、ユーザプログラムのバージョンに適合したバージョンのプログラムを主メモリに配置するためのデプロイ処理を実行する。
 上記によれば、制御装置は、ユーザプログラムのバージョンに応じて、複数のバージョンから適切なバージョンのパッケージプログラムを選択することができる。これにより、たとえばユーザプログラムの後方互換性を確保することができる。
 好ましくは、1または複数のプログラムパッケージは、パッケージ管理モジュールのデプロイ処理に応じて、デプロイ対象のパッケージから、ユーザプログラムのバージョンに適合したバージョンのプログラムを選択して、その選択されたプログラムを主メモリに配置するチェックモジュールを含む。
 上記によれば、パッケージ管理モジュールは、必要なパッケージを選択するだけでよい。一方、チェックモジュールは、適切なバージョンのプログラムを選択するだけでよい。したがって、パッケージの追加に対して柔軟に対応することができる。
 好ましくは、主記憶装置は、制御装置のハードウェアの形式名に関する形式情報を格納し、パッケージ管理モジュールは、主記憶装置から形式情報を取得して、形式情報およびユーザプログラムのバージョンに基づいて、1または複数のプログラムパッケージから、デプロイ対象のパッケージを選択する。
 上記によれば、形式情報に基づいて、ユーザプログラムと協働するプログラムを含むパッケージを選択することができる。
 好ましくは、主記憶装置は、形式情報と、1または複数のプログラムパッケージにおいて形式情報に対応付けられたプログラムのバージョンとを記憶するパッケージ管理テーブルを格納し、チェックモジュールは、形式情報およびパッケージ管理テーブルに記憶された情報に基づいて、ユーザプログラムのバージョンに適合した、パッケージのプログラムのバージョンについての情報を取得する。
 上記によれば、形式情報およびユーザプログラムのバージョンに基づいて、ユーザプログラムに適応するプログラムをパッケージから選択することができる。
 好ましくは、1または複数のプログラムパッケージは、複数のプログラムパッケージであり、複数のプログラムパッケージは、制御装置にアドオンされたアドオンパッケージを含み、主記憶装置は、ユーザプログラムのバージョンと、複数のプログラムパッケージの各々のプログラムのバージョンとを対応付けて記憶するテーブルを格納し、パッケージ管理モジュールは、テーブルに記憶された情報に基づいて、アドオンパッケージを含む複数のプログラムパッケージの組み合わせがユーザプログラムのバージョンに適合した組み合わせであるかどうかを判定して、ユーザプログラムのバージョンに適合した組み合わせの場合に、ユーザプログラムのバージョンに適合したバージョンを有するアドオンパッケージのプログラムを選択する。
 上記によれば、アドオンパッケージのプログラムを適切にデプロイすることができる。
 本開示の一例は、制御対象を制御する制御装置で利用されるソフトウェアのデプロイ方法であって、制御装置は、ユーザプログラムと、ユーザプログラムと協働して実行される1または複数のバージョンのプログラムを格納する、1または複数のプログラムパッケージとを不揮発的に格納する主記憶装置と、ユーザプログラムおよびプログラムパッケージのプログラムを配置するための主メモリと、ソフトウェアを実行するためのプロセッサとを備え、デプロイ方法は、ユーザプログラムのバージョンを取得するステップと、ユーザプログラムのバージョンに基づいて、1または複数のプログラムパッケージから、デプロイ対象のパッケージを選択するステップと、デプロイ対象のパッケージから、ユーザプログラムのバージョンに適合したバージョンのプログラムを選択するステップと、選択されたプログラムを主メモリに配置するステップとを備える。
 上記によれば、ユーザプログラムのバージョンに応じて、複数のバージョンから適切なバージョンのパッケージプログラムを選択することができる。これにより、たとえばユーザプログラムの後方互換性を確保することができる。
 好ましくは、デプロイ対象のパッケージを選択するステップは、主記憶装置に記憶された、制御装置のハードウェアの形式名に関する形式情報を取得するステップと、形式情報およびユーザプログラムのバージョンに基づいて、1または複数のプログラムパッケージから、デプロイ対象のパッケージを選択するステップとを含む。
 上記によれば、形式情報に基づいて、ユーザプログラムと協働するプログラムを含むパッケージを選択することができる。
 好ましくは、主記憶装置は、形式情報と、1または複数のプログラムパッケージにおいて形式情報に対応付けられたプログラムのバージョンとを記憶するパッケージ管理テーブルを格納し、ユーザプログラムのバージョンに適合したバージョンのプログラムを選択するステップは、形式情報に基づいて、バージョンの情報を取得するステップを含む。
 上記によれば、形式情報およびユーザプログラムのバージョンに基づいて、ユーザプログラムに適応するプログラムをパッケージから選択することができる。
 好ましくは、1または複数のプログラムパッケージは、複数のプログラムパッケージであり、複数のプログラムパッケージは、制御装置にアドオンされたアドオンパッケージを含み、主記憶装置は、ユーザプログラムのバージョンと、複数のプログラムパッケージの各々のプログラムのバージョンとを対応付けて記憶するテーブルを格納し、デプロイ対象のパッケージから、ユーザプログラムのバージョンに適合したバージョンのプログラムを選択するステップは、テーブルに記憶された情報に基づいて、アドオンパッケージを含む複数のプログラムパッケージの組み合わせがユーザプログラムのバージョンに適合した組み合わせであるかどうかを判定するステップと、複数のプログラムパッケージの組み合わせがユーザプログラムのバージョンに適合した組み合わせの場合に、ユーザプログラムのバージョンに適合したバージョンを有するアドオンパッケージのプログラムを選択する。
 上記によれば、アドオンパッケージのプログラムを適切にデプロイすることができる。
 本開示によれば、制御装置は、ユーザプログラムのバージョンに応じて、複数のバージョンから適切なバージョンのパッケージプログラムを選択することができる。
本実施の形態に係る制御システムの全体構成例を模式的に示す図である。 本実施の形態に係る制御装置のハードウェア構成例を示すブロック図である。 本実施の形態に従う制御装置に接続されるサポート装置のハードウェア構成例を示す模式図である。 本実施の形態に係る制御装置の適用場面の一例を示した図である。 パッケージ管理テーブルの例を示した模式図である。 パッケージ整合性テーブル60の例を示した模式図である。 本実施の形態に係る制御装置における固定形式情報に基づくデプロイ処理を説明する図である。 本実施の形態に係る制御装置におけるアドオンパッケージのデプロイ処理を説明する図である。 パッケージプログラム内のチェックモジュールが実行する処理のフローを示すフローチャートである。
 以下、図面を参照しつつ、本発明に従う各本実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される各本実施の形態および各変形例は、適宜選択的に組み合わされてもよい。
 <A.適用例>
 まず、図1および図2を参照して、本発明が適用される場面の一例について説明する。
 図1は、本実施の形態に係る制御システム1の全体構成例を模式的に示す図である。図1には、本実施の形態に係る制御装置100を中心とした制御システム1を示す。
 図1を参照して、制御装置100は、各種の設備や装置などの制御対象を制御する産業用コントローラに相当する。制御装置100は、後述するような制御演算を実行する一種のコンピュータであり、典型的には、PLC(プログラマブルコントローラ)として具現化されてもよい。
 制御装置100は、フィールドネットワーク2を介して各種のフィールド機器500と接続されてもよい。制御装置100は、フィールドネットワーク2などを介して、1または複数のフィールド機器500との間でデータを遣り取りする。一般的に、「フィールドネットワーク」は、「フィールドバス」とも称されるが、説明の簡素化のため、以下の説明においては、「フィールドネットワーク」と総称する。すなわち、本明細書の「フィールドネットワーク」は、狭義の「フィールドネットワーク」に加えて「フィールドバス」を含み得る概念である。
 フィールドネットワーク2には、任意のフィールド機器500を接続することができる。フィールド機器500は、製造装置や生産ラインなど(以下、「フィールド」とも総称する。)に対して何らかの物理的な作用を与えるアクチュエータ、および、フィールドとの間で情報を遣り取りする入出力装置などを含む。たとえばフィールドネットワーク2として、EtherCAT(登録商標)を採用することができる。
 図1に示す例においては、フィールドネットワーク2に接続されるフィールド機器500は、リモートI/O(Input/Output)装置510と、ロボットコントローラ522,526と、サーボドライバ540,544とを含む。ロボットコントローラ522,526およびサーボドライバ540,544は、制御装置100からの制御指令に従って動作する1または複数のアクチュエータ(デバイス)に相当する。
 図1には、制御装置100からの制御指令に従って動作する1または複数のアクチュエータについても、フィールドネットワーク2に接続されている例を示すが、これに限らず、制御装置100からの制御指令を受けることができれば、どのような接続形態であってもよい。例えば、フィールドネットワーク2に接続されたリモートI/O装置510から信号線を介して制御指令を与えるようにしてもよい。
 図2は、本実施の形態に係る制御装置100のハードウェア構成例を示すブロック図である。図2を参照して、本実施の形態に係る制御装置100は、CPUユニットとも称される演算処理部であり、プロセッサ102と、フィールドネットワークコントローラ130とを備える。
 フィールドネットワークコントローラ130は、フィールドネットワーク2を介したフィールド機器500の間のデータの遣り取りを制御する。このようなデータの遣り取りは、制御装置100からフィールド機器500に対する制御指令などのデータ(以下、「出力データ」とも称す。)を送信する処理と、フィールド機器500において収集または生成されたデータ(以下、「入力データ」とも称す。)を制御装置100が受信する処理とを含む。フィールドネットワークコントローラ130は、「通信回路」の一実施例に対応する。
 制御装置100は、予め定められた制御周期毎に、出力データの送信と、入力データの受信と、入力データを使用して出力データを生成する制御プログラムの実行とを順次繰り返すことによって、フィールド機器500を制御するように構成されている。
 制御プログラムは、ユーザにおける制御目的に応じて作成されるユーザプログラムと、ユーザプログラムと協働してユーザにおける制御目的を実現する少なくとも1つのプログラムを含む。後者のプログラムは、たとえばシステムプログラムを含み得る。本実施の形態では、制御装置100には、少なくとも1つのパッケージが格納され、パッケージは、1または複数のバージョンのプログラムを有する。
 制御装置100は、ユーザプログラムのバージョンなどに応じて、必要なパッケージを選択し、各パッケージにユーザプログラムのバージョン情報を含むデプロイ指示を与える。各パッケージは、そのバージョン情報に応じて、適切なバージョンのプログラムをロードする。したがって制御装置100では、ユーザプログラムのバージョンに応じて、複数のバージョンから適切なバージョンのパッケージプログラムを選択することができる。さらに制御装置100においては、パッケージの追加(アドオン)にも柔軟に対応できる。
 以下、本発明のより具体的な応用例として、本実施の形態に係る制御システム1のより詳細な構成および処理について説明する。
 <B.制御システムの全体構成例>
 まず、図1に示す制御システム1の全体構成例についてより詳細に説明する。
 図1に示す構成例において、サーボドライバ540,544は、制御装置100からの制御指令(例えば、位置指令または速度指令など)に従って、サーボモータ542,546をそれぞれ駆動する。
 ロボットコントローラ522はロボット520を駆動し、ロボットコントローラ526はロボット524を駆動する。ロボットコントローラ522,526は、制御装置100からの制御指令(位置指令または速度指令など)に従って、軌跡計算および各軸の角度計算などを行なうとともに、計算結果に従って、ロボット520,524を構成するサーボモータなどを駆動する。
 リモートI/O装置510は、典型的には、フィールドネットワーク2を介して通信を行なう通信カプラと、入力データの取得および出力データの出力を行なうための入出力部(以下、「I/Oユニット」とも称す。)とを含む。リモートI/O装置510には、入力リレーや各種センサ(例えば、アナログセンサ、温度センサ、振動センサなど)などの入力データを収集する装置、および、出力リレー、コンタクタ、サーボドライバ、および、その他任意のアクチュエータなどのフィールドに対して何らかの作用を与える装置が接続される。
 フィールド機器500としては、これらに限られることなく、入力データを収集する任意のデバイス(例えば、視覚センサなど)、ならびに、出力データに従う何らかの作用を与える任意のデバイス(例えば、インバータ装置など)などを採用することができる。
 制御装置100は、上位ネットワーク6を介して、他の装置に接続されていてもよい。上位ネットワーク6には、一般的なネットワークプロトコルであるイーサネット(登録商標)あるいはEtherNet/IP(登録商標)が採用されていてもよい。より具体的には、1または複数のサーバ装置300、または1または複数の表示装置400が上位ネットワーク6に接続されてもよい。
 サーバ装置300としては、データベースシステム、製造実行システム(MES:Manufacturing Execution System)などが想定される。製造実行システムは、制御対象の製造装置や設備からの情報を取得して、生産全体を監視および管理するものであり、オーダ情報、品質情報、出荷情報などを扱うこともできる。これに限らず、情報系サービスを提供する装置を上位ネットワーク6に接続するようにしてもよい。情報系サービスとしては、制御対象の製造装置や設備からの情報を取得して、マクロ的またはミクロ的な分析などを行なう処理が想定される。例えば、制御対象の製造装置や設備からの情報に含まれる何らかの特徴的な傾向を抽出するデータマイニングや、制御対象の設備や機械からの情報に基づく機械学習を行なうための機械学習ツールなどが想定される。
 表示装置400は、ユーザからの操作を受けて、制御装置100に対してユーザ操作に応じたコマンドなどを出力するとともに、制御装置100での演算結果などをグラフィカルに表示する。
 さらに、制御装置100には、サポート装置200が接続可能になっている。サポート装置200は、制御装置100が制御対象を制御するために必要な準備を支援する装置である。具体的には、サポート装置200は、制御装置100で実行されるプログラムの開発環境(プログラム作成編集ツール、パーサ、コンパイラなど)、制御装置100および制御装置100に接続される各種デバイスのパラメータ(コンフィギュレーション)を設定するための設定環境、生成したシーケンスプログラムを制御装置100へ出力する機能、制御装置100上で実行されるシーケンスプログラムなどをオンラインで修正・変更する機能、などを提供する。
 図1に示す制御システム1においては、制御装置100、サポート装置200および表示装置400がそれぞれ別体として構成されているが、これらの機能の全部または一部を単一の装置に集約するような構成を採用してもよい。
 <C.制御装置のハードウェア構成例>
 図2は、本実施の形態に係る制御装置100のハードウェア構成例を示すブロック図である。
 図2を参照して、制御装置100は、CPUユニットと称される演算処理部であり、プロセッサ102と、チップセット104と、主メモリ106と、ストレージ108と、上位ネットワークコントローラ110と、USB(Universal Serial Bus)コントローラ112と、メモリカードインターフェイス114と、内部バスコントローラ120と、フィールドネットワークコントローラ130とを含む。
 プロセッサ102は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)などにより構成される。プロセッサ102としては、複数のコアを有する構成を採用してもよいし、プロセッサ102を複数配置してもよい。すなわち、制御装置100は、1または複数のプロセッサ102、および/または、1または複数のコアを有するプロセッサ102を有している。チップセット104は、プロセッサ102および周辺エレメントを制御することで、制御装置100全体としての処理を実現する。
 主メモリ106は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。ストレージ108は、主記憶装置であり、例えば、HDD(Hard Disk Drive)およびSSD(Solid State Drive)などの不揮発性記憶装置などで構成される。
 プロセッサ102は、ストレージ108に格納された各種プログラムを読出して、主メモリ106に展開して実行することで、制御対象に応じた制御および各種処理を実現する。ストレージ108には、ユーザデータ30に加えて、1または複数のパッケージプログラム32、および設定情報40が格納される。
 ユーザデータ30は、ユーザにおける制御目的に応じてサポート装置200において作成されて、サポート装置200から制御装置100へと送られる。ユーザデータ30は、制御システム1を用いて制御する対象のライン(プロセス)などに応じて設計されたユーザプログラムを含む。ユーザプログラムは、パッケージプログラム32と協働して、ユーザにおける制御目的を実現する。すなわち、ユーザプログラムは、パッケージプログラム32によって提供される命令、関数、機能モジュールなどを利用することで、プログラムされた動作を実現する。そのため、ユーザプログラムおよびパッケージプログラムを、「制御プログラム」と総称する場合もある。パッケージプログラム32は、たとえば制御対象の製造装置あるいは設備等に応じて準備され、ストレージ108に格納される。
 システムプログラム34は、プロトコルスタック36およびデバイスドライバ38を含むことができる。システムプログラム34は、制御装置100としての機能を実現するためのプログラムである。たとえばシステムプログラム34は、スケジューラプログラムと、入出力処理プログラムと、その他のシステムプログラムとを含むことができる。プロトコルスタック36は、フィールドネットワーク2における通信の手順や遣り取りを規定する複数のプロトコルの階層からなる。デバイスドライバ38は、フィールドネットワークコントローラ130を制御するためのドライバである。
 上位ネットワークコントローラ110は、上位ネットワーク6を介して、サーバ装置300や表示装置400(図1参照)などとの間のデータの遣り取りを制御する。USBコントローラ112は、USB接続を介してサポート装置200との間のデータの遣り取りを制御する。
 メモリカードインターフェイス114は、メモリカード116が着脱可能に構成されており、メモリカード116に対してデータを書込み、メモリカード116から各種データ(シーケンスプログラム、ユーザプログラムなど)を読出すことが可能になっている。
 内部バスコントローラ120は、制御装置100に装着されるI/Oユニット122との間のデータの遣り取りを制御する。具体的には、内部バスコントローラ120は、I/Oユニット122へ出力されるデータ(出力データ)の送信バッファ、および、I/Oユニット122から入力されるデータ(入力データ)の受信バッファとして機能する。なお、プロセッサ102による演算処理によって生成された出力データは、原始的にはストレージ108に格納される。そして、特定のI/Oユニット122へ転送されるべき出力データは、ストレージ108から読み出されて、送信バッファに一時的に保持される。また、I/Oユニット122から転送された入力データは、受信バッファに一時的に保持された後、ストレージ108に移される。内部バスコントローラ120は、さらに、I/Oユニット122との間で、送信バッファの出力データを送信する処理、および入力データを受信して受信バッファに格納する処理を行なう。典型的には、内部バスコントローラ120は、内部バスにおける物理層およびデータリンク層の機能を提供する。
 フィールドネットワークコントローラ130は、フィールドネットワーク2を介したフィールド機器500との間のデータの遣り取りを制御する。すなわち、フィールドネットワークコントローラ130は、フィールドネットワーク2の規格に従い、出力データの送信および入力データの受信を制御する。具体的には、フィールドネットワークコントローラ130は、フィールド機器500へ出力されるデータ(出力データ)の送信バッファ、および、フィールド機器500から入力されるデータ(入力データ)の受信バッファとして機能する。なお、プロセッサ102による演算処理によって生成された出力データは、原始的にはストレージ108に格納される。そして、特定のフィールド機器500へ転送されるべき出力データは、ストレージ108から読み出されて、送信バッファに一時的に保持される。また、フィールド機器500から転送された入力データは、受信バッファに一時的に保持された後、ストレージ108に移される。フィールドネットワークコントローラ130は、さらに、フィールド機器500との間で、送信バッファの出力データを送信する処理、および入力データを受信して受信バッファに格納する処理を行なう。典型的には、フィールドネットワークコントローラ130は、フィールドネットワーク2における物理層およびデータリンク層の機能を提供する。
 図2には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。あるいは、制御装置100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
 <D.サポート装置の構成例>
 図3は、本実施の形態に従う制御装置100に接続されるサポート装置200のハードウェア構成例を示す模式図である。サポート装置200は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。
 図7を参照して、サポート装置200は、CPUやGPUなどのプロセッサ202と、主記憶装置204と、入力部206と、出力部208と、二次記憶装置510と、光学ドライブ212と、通信インターフェイス218とを含む。これらのコンポーネントは、プロセッサバス220を介して接続されている。
 プロセッサ202は、二次記憶装置210に格納されたプログラム(一例として、OS2102およびサポートプログラム2104)を読出して、主記憶装置204に展開して実行することで、各種処理を実現する。
 二次記憶装置210には、基本的な機能を実現するためのOS2102に加えて、サポート装置200としての機能を提供するためのサポートプログラム2104が格納される。サポートプログラム2104は、コンピュータである情報処理装置(実質的にはプロセッサ202)により実行されることで、本実施の形態に従うサポート装置200を実現する。
 二次記憶装置210には、サポートプログラム2104が実行されることで提供される開発環境においてユーザにより作成されるプロジェクト2106が格納される。
 本実施の形態において、サポート装置200は、制御装置100(図3では「PLC」と表記する)に含まれる各デバイスに対する設定および各デバイスで実行されるプログラムの作成が統合的に可能な開発環境を提供する。プロジェクト2106は、このような統合的な開発環境によって生成されるデータを含む。
 典型的には、プロジェクト2106は、標準制御ソースプログラム2108を含む。標準制御ソースプログラム2108は、オブジェクトコードに変換された上で、制御装置100へ転送され、ユーザプログラムとして格納される。
 入力部206は、キーボードやマウスなどで構成され、ユーザ操作を受け付ける。出力部208は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ202からの処理結果などを出力する。
 通信インターフェイス218は、USBやイーサネットなどの任意の通信媒体を介して、制御システム1との間のデータを遣り取りする。
 サポート装置200は、光学ドライブ212を有しており、コンピュータ読取可能な命令を非一過的に格納する記録媒体214(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)から、その中に格納されたプログラムが読取られて二次記憶装置210などにインストールされる。
 サポート装置200で実行されるサポートプログラム2104などは、コンピュータ読取可能な記録媒体214を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に従うサポート装置200が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
 図3には、プロセッサ202がプログラムを実行することで、サポート装置200として必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
 <E.制御装置の適用場面の例>
 図4は、本実施の形態に係る制御装置100の適用場面の一例を示した図である。なお、図4に示された構成は、主メモリ106にプログラムを展開することによって実現される。
 主記憶装置であるストレージ108は、ユーザデータ30と、パッケージ32A,32B,32Cと、形式情報50と、パッケージ整合性テーブル60とを格納する。パッケージ32A,32B,32Cは、それぞれ図4において、「パッケージA」、「パッケージB」、「パッケージC」とも表記される。一方、主メモリ106にプログラムを展開することにより、パッケージ管理モジュール106Aが主メモリ106に配置される。
 ユーザデータ30は、サポート装置200において作成されて、サポート装置200から制御装置100へと転送される。ユーザデータ30は、ユーザプログラム10と、ユーザデータバージョン情報12と、コンフィグレーションデータ14とを含む。
 ユーザプログラム10は、パッケージ32A~32Cのうちの1つまたは複数によって提供される命令、関数、機能モジュールなどを利用して、目的の動作を実現する。ユーザプログラム10のバージョンは、ユーザデータバージョン情報12により示される。図3の例では、ユーザデータのバージョンは「1.2」である。ユーザデータ30は、ユーザデータバージョンの情報に加えて、ユーザデータの属性の情報を含むのでもよい。
 コンフィグレーションデータ14は、制御装置100を含む制御システム1の構成や設定を定義する情報を含む。たとえばコンフィグレーションデータ14は、フィールドネットワーク2に接続されているフィールド機器500に関連付けられた、ユーザプログラムや設定値の情報、および、上位ネットワーク6に接続されている装置に関連付けられた、ユーザプログラムや設定値の情報を含むことができる。
 制御装置100には、パッケージ単位でプログラムが格納される。たとえばパッケージ32A,32B,32Cは、E-CATなどの通信プロトコルに関するものであってもよい。パッケージは予め制御装置100にインストールされていてもよく、アドオンにより制御装置100にインストールされてもよい。
 パッケージ32A,32B,32Cの各々は、1または複数のバージョンのプログラム(パッケージプログラム)と、チェックモジュールとを含む。パッケージ32Aは、バージョン1.0のプログラム20Aと、バージョン1.1のプログラム21Aと、バージョン1.2のプログラム22Aと、チェックモジュール25Aとを含む。
 パッケージ32Bは、バージョン1.0のプログラム20Bと、バージョン2.0のプログラム22Bと、チェックモジュール25Bとを含む。
 パッケージ32Cは、バージョン1.0のプログラム20Cと、チェックモジュール25Cとを含む。
 後述するデプロイにおいて、各パッケージのチェックモジュールは、当該パッケージに含まれる1または複数のプログラムのバージョンをチェックして、適切なバージョンのプログラムを選択する。適切なバージョンとは、たとえば、パッケージプログラムのプログラムに対して、ユーザプログラムが後方互換性を有する場合のバージョンである。パッケージプログラムのプログラムに対して、ユーザプログラムが上位互換性を有するバージョンであってもよい。
 形式情報50は、形式名情報52およびパッケージ管理テーブル54を含む。形式名情報52は、ハードウェアの形式名に関する情報、たとえば図2に示すプロセッサ102の形式を含む。形式名情報52は、他のハードウェアの形式名に関する情報を含んでもよい。たとえば形式名情報52は、フィールドネットワークコントローラ130の形式情報を含んでもよい。
 パッケージ管理テーブル54は、形式名情報52に含まれる形式名と、対応するパッケージプログラムのプログラムバージョンとを関連付けて記憶する。図5は、パッケージ管理テーブル54の例を示した模式図である。パッケージ管理テーブル54には、プロセッサ102の形式が格納される。プロセッサ102の形式と、各パッケージのプログラム(図5には「パッケージAプログラム」、「パッケージBプログラム」等と表記)の適応するバージョンとが対応付けられる。たとえばプロセッサ102の形式が「CPU101-1」である場合、パッケージAプログラムの適応するプログラムのバージョンは1.1以降であり、パッケージBプログラムの適応するプログラムのバージョンは1.0以降である。
 パッケージ整合性テーブル60は、ユーザデータバージョンと、パッケージプログラムのバージョンとを対応付けて記憶する。図6は、パッケージ整合性テーブル60の例を示した模式図である。図6に示すように、1つのユーザデータバージョンに対して、各パッケージのプログラムのバージョンが登録される。パッケージ整合性テーブル60は、あるユーザデータバージョンに対して使用できないパッケージプログラムのバージョンの組み合わせを表す。たとえばユーザデータバージョンが1.0のとき、パッケージAプログラムA(バージョン1.01)と、パッケージBプログラム(バージョン1.01)と、パッケージCプログラム(バージョン1.02)との組み合わせは利用できない。
 主メモリ106には、プロセッサ102によって実行されるプログラムが展開される。パッケージ管理モジュール106Aは、主メモリ106に展開されたプログラムのモジュールのうちの1つである。プロセッサ102がプログラムを実行することにより取得されたデータ、情報等は、主メモリ106に一時的に格納される。図6において、ストレージ108からパッケージ管理モジュール106Aへの向きの矢印は、ストレージ108から取得された情報が主メモリ106に格納されることを示す。一方、パッケージ管理モジュール106Aからストレージ108への向きの矢印は、パッケージ管理モジュール106Aによる制御を示している。
 パッケージ管理モジュール106Aは、ストレージ108から形式情報50を取得して、パッケージ32A,32B,32Cの各々からデプロイ対象のパッケージプログラムを選択する。パッケージ管理モジュール106Aは、ストレージ108からユーザデータのバージョンを取得して、そのユーザデータバージョンに基づいて選択したパッケージプログラムをデプロイする。これにより、ユーザデータバージョンに適応したバージョンのパッケージプログラムが主メモリ106に展開される。
 <F.デプロイ処理>
 以下に説明する例では、パッケージ32A,32Bは制御装置100に予めインストールされているものとし、パッケージ32Cは制御装置100にアドオンされたパッケージプログラムであるとする。
 図7は、本実施の形態に係る制御装置における固定形式情報に基づくデプロイ処理を説明する図である。図7は、形式情報50に予め含まれる情報に基づくデプロイのフローを示す。ステップS1において、パッケージ管理モジュール106Aは、形式情報50を参照して、形式情報(たとえばプロセッサ102の形式情報)を取得する。
 次にステップS2において、パッケージ管理モジュール106Aは、パッケージ管理テーブル54を参照する。パッケージ管理モジュール106Aは、ステップS1において取得された形式情報に基づき、デプロイ対象のパッケージ、およびそのパッケージのプログラムの適切なバージョンに関する情報(形式情報)を取得する。
 続いてステップS3において、パッケージ管理モジュール106Aは、ユーザデータ30を参照する。具体的には、パッケージ管理モジュール106Aは、ユーザデータバージョン情報12を参照して、ユーザデータバージョンを取得する。
 ステップS4Aにおいて、パッケージ管理モジュール106Aは、ユーザデータバージョンに従って、パッケージ32Aのデプロイを実行する。この場合、パッケージ管理モジュール106Aは、パッケージ32Aのチェックモジュール25Aにデプロイ指示を与える。パッケージ32Aでは、チェックモジュール25Aが適合可能なパッケージプログラムを選択し(ステップS5A)、そのプログラムをデプロイする(ステップS6A)。
 同様に、ステップS4Bにおいて、パッケージ管理モジュール106Aは、ユーザデータバージョンに従って、パッケージ32Bをデプロイする。パッケージ管理モジュール106Aは、パッケージ32Bのチェックモジュール25Bにデプロイ指示を与える。パッケージ32Bでは、チェックモジュール25Bが適合可能なパッケージプログラムを選択し(ステップS5B)、そのプログラムをデプロイする(ステップS6B)。
 説明の便宜上、ステップS4Aの処理の説明の次にステップS4Bの処理を説明したが、ステップS4A,S4Bの処理はシーケンシャルに実行されてもよく、並行して実行されてもよい。またステップS4A,S4Bの処理において、パッケージ整合性テーブル60が参照されてもよい。
 図8は、本実施の形態に係る制御装置におけるアドオンパッケージのデプロイ処理を説明する図である。図8を参照して、ステップS11において、パッケージ管理モジュール106Aは、ユーザデータバージョンに従って、パッケージ32Aのデプロイを実行する。ステップS12において、パッケージ管理モジュール106Aは、ユーザデータバージョンに従って、パッケージ32Bのデプロイを実行する。ステップS11,S12の処理は、図7に示した対応するステップの処理と基本的に同じであるので以後の説明は繰り返さない。
 ステップS13において、パッケージ管理モジュール106Aは、外部から、パッケージ32Cのアドオンの操作を受け付ける。この場合、パッケージ管理モジュール106Aは、パッケージ整合性テーブル60を参照して、パッケージ32A,32B,32Cのプログラムの組み合わせの中に、適合可能なバージョンの組み合わせが存在するかどうかを判断する。
 適合可能な適合可能なバージョンの組み合わせが存在する場合、ステップS15において、パッケージ管理モジュール106Aは、ユーザデータバージョン情報12を参照して、ユーザデータバージョンを取得する。ステップS16において、パッケージ管理モジュール106Aは、ユーザデータバージョンにしたがって、パッケージ32Cの適合可能なバージョンのプログラムをデプロイするようチェックモジュール25Cに指示する。パッケージ32Cでは、チェックモジュール25Cが適合可能なパッケージプログラムを選択し(ステップS17A)、そのパッケージプログラムをデプロイする(ステップS17A)。
 図9は、パッケージプログラム内のチェックモジュールが実行する処理のフローを示すフローチャートである。処理が開始されると、ステップS21において、パッケージ管理モジュール106Aからユーザデータバージョンを受けて、チェックモジュールはデプロイ処理を開始する。ステップS22において、チェックモジュールは、パッケージ管理テーブル54から各パッケージのデプロイ可能なプログラムのバージョンを取得する。このときに、デプロイ可能なパッケージプログラムがある場合、処理はステップS23に進み、チェックモジュールはデプロイ可能なパッケージプログラムを有効化する。続けて、ステップS24において、チェックモジュールは、有効化したパッケージプログラムバージョンを、パッケージ管理モジュールに伝える。一方、デプロイ可能なパッケージプログラムが無い場合には、チェックモジュールは、デプロイ可能なパッケージプログラムが無いことを、パッケージ管理モジュール106Aに伝える。
 本実施の形態によれば、パッケージ管理モジュールは、必要なパッケージを選択するだけでよい。一方、チェックモジュールは、適切なバージョンのプログラムを選択するだけでよい。したがって、パッケージの追加に対して柔軟に対応することができる。
 なお、上述の実施の形態では、チェックモジュールは各パッケージプログラムに含まれる。しかしながら、パッケージ管理モジュール106Aがチェックモジュールを有していてもよい。
 <G.付記>
 以上説明したように、本実施形態は以下に列挙する開示を含む。
 1.制御対象を制御するための制御装置(100)であって、
 ユーザプログラムと、前記ユーザプログラムと協働して実行される1または複数のバージョンのプログラムを格納する、1または複数のプログラムパッケージ(32A,32B,32C)とを不揮発的に格納する主記憶装置(108)と、
 前記ユーザプログラムおよび前記プログラムパッケージ(32A,32B,32C)の前記プログラムを配置するための主メモリ(106)と、
 前記プログラムパッケージ(32A,32B,32C)を管理するパッケージ管理モジュール(106A)を含むソフトウェアを実行するためのプロセッサ(102)とを備え、
 前記パッケージ管理モジュール(106A)は、前記ユーザプログラムのバージョンに基づいて、前記1または複数のプログラムパッケージ(32A,32B,32C)から、デプロイ対象のパッケージを選択して、前記デプロイ対象のパッケージから、前記ユーザプログラムのバージョンに適合したバージョンのプログラムを前記主メモリ(106)に配置するためのデプロイ処理を実行する、制御装置(100)。
 2.前記1または複数のプログラムパッケージ(32A,32B,32C)は、
 前記パッケージ管理モジュール(106A)の前記デプロイ処理に応じて、前記デプロイ対象のパッケージから、前記ユーザプログラムのバージョンに適合したバージョンのプログラムを選択して、その選択されたプログラムを前記主メモリ(106)に配置するチェックモジュール(25A,25B,25C)を含む、1.に記載の制御装置(100)。
 3.前記主記憶装置(108)は、
 前記制御装置(100)のハードウェアの形式名に関する形式情報を格納し、
 前記パッケージ管理モジュール(106A)は、前記主記憶装置(108)から前記形式情報を取得して、前記形式情報および前記ユーザプログラムのバージョンに基づいて、前記1または複数のプログラムパッケージ(32A,32B,32C)から、前記デプロイ対象のパッケージを選択する、2.に記載の制御装置(100)。
 4.前記主記憶装置(108)は、前記形式情報と、前記1または複数のプログラムパッケージ(32A,32B,32C)において前記形式情報に対応付けられたプログラムのバージョンとを記憶するパッケージ管理テーブル(54)を格納し、
 前記チェックモジュール(25A,25B,25C)は、前記形式情報および前記パッケージ管理テーブル(54)に記憶された情報に基づいて、前記ユーザプログラムのバージョンに適合した、前記パッケージのプログラムのバージョンについての情報を取得する、3.に記載の制御装置(100)。
 5.前記1または複数のプログラムパッケージ(32A,32B,32C)は、複数のプログラムパッケージであり、
 前記複数のプログラムパッケージは、前記制御装置(100)にアドオンされたアドオンパッケージ(32C)を含み、
 前記主記憶装置(108)は、前記ユーザプログラムのバージョンと、前記複数のプログラムパッケージの各々のプログラムのバージョンとを対応付けて記憶するテーブル(60)を格納し、
 前記パッケージ管理モジュール(106A)は、前記テーブル(60)に記憶された情報に基づいて、前記アドオンパッケージ(32C)を含む複数のプログラムパッケージの組み合わせが前記ユーザプログラムのバージョンに適合した組み合わせであるかどうかを判定して、前記ユーザプログラムのバージョンに適合した組み合わせの場合に、前記ユーザプログラムのバージョンに適合したバージョンを有する前記アドオンパッケージ(32C)のプログラムを選択する、1.から4.のいずれか1つに記載の制御装置(100)。
 6.制御対象を制御する制御装置(100)で利用されるソフトウェアのデプロイ方法であって、前記制御装置(100)は、
  ユーザプログラムと、前記ユーザプログラムと協働して実行される1または複数のバージョンのプログラムを格納する、1または複数のプログラムパッケージ(32A,32B,32C)とを不揮発的に格納する主記憶装置(108)と、
  前記ユーザプログラムおよび前記プログラムパッケージ(32A,32B,32C)の前記プログラムを配置するための主メモリ(106)と、
  前記ソフトウェアを実行するためのプロセッサ(102)とを備え、
 前記デプロイ方法は、
 前記ユーザプログラムのバージョンを取得するステップと、
 前記ユーザプログラムのバージョンに基づいて、前記1または複数のプログラムパッケージ(32A,32B,32C)から、デプロイ対象のパッケージを選択するステップと、
 前記デプロイ対象のパッケージから、前記ユーザプログラムのバージョンに適合したバージョンのプログラムを選択するステップと、
 選択されたプログラムを前記主メモリ(106)に配置するステップとを備える、ソフトウェアのデプロイ方法。
 7.前記デプロイ対象のパッケージを選択するステップは、
 前記主記憶装置(108)に記憶された、前記制御装置(100)のハードウェアの形式名に関する形式情報を取得するステップと、
 前記形式情報および前記ユーザプログラムのバージョンに基づいて、前記1または複数のプログラムパッケージ(32A,32B,32C)から、前記デプロイ対象のパッケージを選択するステップとを含む、6.に記載のソフトウェアのデプロイ方法。
 8.前記主記憶装置(108)は、前記形式情報と、前記1または複数のプログラムパッケージ(32A,32B,32C)において前記形式情報に対応付けられたプログラムのバージョンとを記憶するパッケージ管理テーブル(54)を格納し、
 前記ユーザプログラムのバージョンに適合したバージョンのプログラムを選択するステップは、
 前記形式情報に基づいて、バージョンの情報を取得するステップを含む、7.に記載のソフトウェアのデプロイ方法。
 9.前記1または複数のプログラムパッケージ(32A,32B,32C)は、複数のプログラムパッケージであり、
 前記複数のプログラムパッケージは、前記制御装置(100)にアドオンされたアドオンパッケージ(32C)を含み、
 前記主記憶装置(108)は、前記ユーザプログラムのバージョンと、前記複数のプログラムパッケージの各々のプログラムのバージョンとを対応付けて記憶するテーブル(60)を格納し、
 前記デプロイ対象のパッケージから、前記ユーザプログラムのバージョンに適合したバージョンのプログラムを選択するステップは、
 前記テーブル(60)に記憶された情報に基づいて、前記アドオンパッケージ(32C)を含む複数のプログラムパッケージの組み合わせが前記ユーザプログラムのバージョンに適合した組み合わせであるかどうかを判定するステップと、
 前記複数のプログラムパッケージの組み合わせが前記ユーザプログラムのバージョンに適合した組み合わせの場合に、前記ユーザプログラムのバージョンに適合したバージョンを有する前記アドオンパッケージ(32C)のプログラムを選択する、6.から8.のいずれか1項に記載のソフトウェアのデプロイ方法。
 今回開示された実施の形態はすべての点で例示であって制限的なものでないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
 1 制御システム、2 フィールドネットワーク、6 上位ネットワーク、10 ユーザプログラム、12 ユーザデータバージョン情報、14 コンフィグレーションデータ、20A,20B,20C,21A,22A,22B プログラム、25A,25B,25C チェックモジュール、30 ユーザデータ、32 パッケージプログラム、32A,32B,32C パッケージ、34 システムプログラム、36 プロトコルスタック、38 デバイスドライバ、40 設定情報、50 形式情報、52 形式名情報、54 パッケージ管理テーブル、60 パッケージ整合性テーブル、100 制御装置102,202 プロセッサ、104 チップセット、106 主メモリ、106A パッケージ管理モジュール、108 ストレージ、110 上位ネットワークコントローラ、112 USBコントローラ、114 メモリカードインターフェイス、116 メモリカード、120 内部バスコントローラ、122 I/Oユニット、130 フィールドネットワークコントローラ、200 サポート装置、204 主記憶装置、206 入力部、208 出力部、210,510 二次記憶装置、212 光学ドライブ、214 記録媒体、218 通信インターフェイス、220 プロセッサバス、300 サーバ装置、400 表示装置、500 フィールド機器、520,524 ロボット、522,526 ロボットコントローラ、540,544 サーボドライバ、542,546 サーボモータ、2104 サポートプログラム、2106 プロジェクト、2108 標準制御ソースプログラム、S1~S24 ステップ。

Claims (9)

  1.  制御対象を制御するための制御装置であって、
     ユーザプログラムと、前記ユーザプログラムと協働して実行される1または複数のバージョンのプログラムを格納する、1または複数のプログラムパッケージとを不揮発的に格納する主記憶装置と、
     前記ユーザプログラムおよび前記プログラムパッケージの前記プログラムを配置するための主メモリと、
     前記プログラムパッケージを管理するパッケージ管理モジュールを含むソフトウェアを実行するためのプロセッサとを備え、
     前記パッケージ管理モジュールは、前記ユーザプログラムのバージョンに基づいて、前記1または複数のプログラムパッケージから、デプロイ対象のパッケージを選択して、前記デプロイ対象のパッケージから、前記ユーザプログラムのバージョンに適合したバージョンのプログラムを前記主メモリに配置するためのデプロイ処理を実行する、制御装置。
  2.  前記1または複数のプログラムパッケージは、
     前記パッケージ管理モジュールの前記デプロイ処理に応じて、前記デプロイ対象のパッケージから、前記ユーザプログラムのバージョンに適合したバージョンのプログラムを選択して、その選択されたプログラムを前記主メモリに配置するチェックモジュールを含む、請求項1に記載の制御装置。
  3.  前記主記憶装置は、
     前記制御装置のハードウェアの形式名に関する形式情報を格納し、
     前記パッケージ管理モジュールは、前記主記憶装置から前記形式情報を取得して、前記形式情報および前記ユーザプログラムのバージョンに基づいて、前記1または複数のプログラムパッケージから、前記デプロイ対象のパッケージを選択する、請求項2に記載の制御装置。
  4.  前記主記憶装置は、前記形式情報と、前記1または複数のプログラムパッケージにおいて前記形式情報に対応付けられたプログラムのバージョンとを記憶するパッケージ管理テーブルを格納し、
     前記チェックモジュールは、前記形式情報および前記パッケージ管理テーブルに記憶された情報に基づいて、前記ユーザプログラムのバージョンに適合した、前記パッケージのプログラムのバージョンについての情報を取得する、請求項3に記載の制御装置。
  5.  前記1または複数のプログラムパッケージは、複数のプログラムパッケージであり、
     前記複数のプログラムパッケージは、前記制御装置にアドオンされたアドオンパッケージを含み、
     前記主記憶装置は、前記ユーザプログラムのバージョンと、前記複数のプログラムパッケージの各々のプログラムのバージョンとを対応付けて記憶するテーブルを格納し、
     前記パッケージ管理モジュールは、前記テーブルに記憶された情報に基づいて、前記アドオンパッケージを含む複数のプログラムパッケージの組み合わせが前記ユーザプログラムのバージョンに適合した組み合わせであるかどうかを判定して、前記ユーザプログラムのバージョンに適合した組み合わせの場合に、前記ユーザプログラムのバージョンに適合したバージョンを有する前記アドオンパッケージのプログラムを選択する、請求項1から請求項4のいずれか1項に記載の制御装置。
  6.  制御対象を制御する制御装置で利用されるソフトウェアのデプロイ方法であって、前記制御装置は、
      ユーザプログラムと、前記ユーザプログラムと協働して実行される1または複数のバージョンのプログラムを格納する、1または複数のプログラムパッケージとを不揮発的に格納する主記憶装置と、
      前記ユーザプログラムおよび前記プログラムパッケージの前記プログラムを配置するための主メモリと、
      前記ソフトウェアを実行するためのプロセッサとを備え、
     前記デプロイ方法は、
     前記ユーザプログラムのバージョンを取得するステップと、
     前記ユーザプログラムのバージョンに基づいて、前記1または複数のプログラムパッケージから、デプロイ対象のパッケージを選択するステップと、
     前記デプロイ対象のパッケージから、前記ユーザプログラムのバージョンに適合したバージョンのプログラムを選択するステップと、
     選択されたプログラムを前記主メモリに配置するステップとを備える、ソフトウェアのデプロイ方法。
  7.  前記デプロイ対象のパッケージを選択するステップは、
     前記主記憶装置に記憶された、前記制御装置のハードウェアの形式名に関する形式情報を取得するステップと、
     前記形式情報および前記ユーザプログラムのバージョンに基づいて、前記1または複数のプログラムパッケージから、前記デプロイ対象のパッケージを選択するステップとを含む、請求項6に記載のソフトウェアのデプロイ方法。
  8.  前記主記憶装置は、前記形式情報と、前記1または複数のプログラムパッケージにおいて前記形式情報に対応付けられたプログラムのバージョンとを記憶するパッケージ管理テーブルを格納し、
     前記ユーザプログラムのバージョンに適合したバージョンのプログラムを選択するステップは、
     前記形式情報に基づいて、バージョンの情報を取得するステップを含む、請求項7に記載のソフトウェアのデプロイ方法。
  9.  前記1または複数のプログラムパッケージは、複数のプログラムパッケージであり、
     前記複数のプログラムパッケージは、前記制御装置にアドオンされたアドオンパッケージを含み、
     前記主記憶装置は、前記ユーザプログラムのバージョンと、前記複数のプログラムパッケージの各々のプログラムのバージョンとを対応付けて記憶するテーブルを格納し、
     前記デプロイ対象のパッケージから、前記ユーザプログラムのバージョンに適合したバージョンのプログラムを選択するステップは、
     前記テーブルに記憶された情報に基づいて、前記アドオンパッケージを含む複数のプログラムパッケージの組み合わせが前記ユーザプログラムのバージョンに適合した組み合わせであるかどうかを判定するステップと、
     前記複数のプログラムパッケージの組み合わせが前記ユーザプログラムのバージョンに適合した組み合わせの場合に、前記ユーザプログラムのバージョンに適合したバージョンを有する前記アドオンパッケージのプログラムを選択する、請求項6から請求項8のいずれか1項に記載のソフトウェアのデプロイ方法。
PCT/JP2020/007790 2019-03-06 2020-02-26 制御装置およびソフトウェアのデプロイ方法 WO2020179581A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP20766476.4A EP3936951B1 (en) 2019-03-06 2020-02-26 Control device and software deployment method
US17/434,637 US11907735B2 (en) 2019-03-06 2020-02-26 Control device and method for deployment of software
CN202080017947.7A CN113508346B (zh) 2019-03-06 2020-02-26 控制装置以及软件的部署方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019-040601 2019-03-06
JP2019040601A JP7036064B2 (ja) 2019-03-06 2019-03-06 制御装置およびソフトウェアのデプロイ方法

Publications (1)

Publication Number Publication Date
WO2020179581A1 true WO2020179581A1 (ja) 2020-09-10

Family

ID=72338618

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/007790 WO2020179581A1 (ja) 2019-03-06 2020-02-26 制御装置およびソフトウェアのデプロイ方法

Country Status (5)

Country Link
US (1) US11907735B2 (ja)
EP (1) EP3936951B1 (ja)
JP (1) JP7036064B2 (ja)
CN (1) CN113508346B (ja)
WO (1) WO2020179581A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230144682A1 (en) * 2021-11-05 2023-05-11 Rockwell Automation Technologies, Inc. Operator interface with integrated industrial power system management capabilities

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07253875A (ja) 1994-03-14 1995-10-03 Toshiba Corp プログラマブルコントローラ及びそのプログラムツール
JPH11224999A (ja) * 1998-02-06 1999-08-17 Matsushita Electric Ind Co Ltd 電子部品実装用装置および電子部品実装用装置における制御プログラムのバージョン管理方法
JP2005038063A (ja) * 2003-07-16 2005-02-10 Omron Corp プログラマブルコントローラシステムおよびサポートツールならびにプログラマブルコントローラ用ユニットおよび接続保証方法
JP2016224559A (ja) * 2015-05-27 2016-12-28 株式会社キーエンス プログラム作成支援装置、制御方法およびプログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11161479A (ja) * 1997-11-28 1999-06-18 Brother Ind Ltd データ処理装置およびデータ処理方法ならびに記録媒体
US7376945B1 (en) * 2003-12-02 2008-05-20 Cisco Technology, Inc. Software change modeling for network devices
JP4110557B2 (ja) * 2005-06-21 2008-07-02 三菱電機株式会社 プログラム実行システムを備えた検査装置およびプログラミングシステム
CN103593203B (zh) * 2012-08-16 2016-12-21 施耐德电器工业公司 可编程逻辑控制器的编程和固件更新方法
JP5864467B2 (ja) * 2013-03-28 2016-02-17 株式会社沖データ 情報処理装置、ファームウェア更新方法及びコンピュータプログラム
US9690564B2 (en) * 2013-09-10 2017-06-27 International Business Machines Corporation Runtime detection of software configurations and upgrades
US9965377B1 (en) * 2016-03-29 2018-05-08 EMC IP Holding Company LLC Deploy pipeline for development packages
CN105912346A (zh) 2016-05-09 2016-08-31 合肥联宝信息技术有限公司 固件版本恢复方法、装置及终端
CN107809445A (zh) 2016-08-31 2018-03-16 阿里巴巴集团控股有限公司 服务请求处理系统、方法和装置
US10447814B2 (en) * 2017-02-02 2019-10-15 Microsoft Technology Licensing, Llc Joint servicing of software packages
US20180341475A1 (en) * 2017-05-24 2018-11-29 Dell Products L.P. Just In Time Deployment with Package Managers
CN107864098A (zh) 2017-10-18 2018-03-30 上海斐讯数据通信技术有限公司 一种路由器固件的兼容方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07253875A (ja) 1994-03-14 1995-10-03 Toshiba Corp プログラマブルコントローラ及びそのプログラムツール
JPH11224999A (ja) * 1998-02-06 1999-08-17 Matsushita Electric Ind Co Ltd 電子部品実装用装置および電子部品実装用装置における制御プログラムのバージョン管理方法
JP2005038063A (ja) * 2003-07-16 2005-02-10 Omron Corp プログラマブルコントローラシステムおよびサポートツールならびにプログラマブルコントローラ用ユニットおよび接続保証方法
JP2016224559A (ja) * 2015-05-27 2016-12-28 株式会社キーエンス プログラム作成支援装置、制御方法およびプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3936951A4

Also Published As

Publication number Publication date
CN113508346B (zh) 2024-01-30
EP3936951A4 (en) 2022-11-16
US20220171636A1 (en) 2022-06-02
EP3936951A1 (en) 2022-01-12
US11907735B2 (en) 2024-02-20
JP7036064B2 (ja) 2022-03-15
JP2020144594A (ja) 2020-09-10
EP3936951B1 (en) 2024-05-22
CN113508346A (zh) 2021-10-15

Similar Documents

Publication Publication Date Title
JP7189383B1 (ja) 検証システムおよび検証方法
US20050171622A1 (en) Industrial controller based on technology objects
JP2019061467A (ja) サポート装置およびサポートプログラム
WO2020179581A1 (ja) 制御装置およびソフトウェアのデプロイ方法
WO2021181799A1 (ja) ロボット制御システムおよび制御方法
JP5921781B2 (ja) プログラマブルコントローラおよびプログラマブルコントローラの制御方法
WO2020246097A1 (ja) サポート装置およびサポートプログラム
US10509393B2 (en) Control device and control method
CN111052012A (zh) 控制装置以及控制系统
WO2022123803A1 (ja) 制御システムおよび制御方法
WO2021038930A1 (ja) サポート装置、サポートプログラムおよび設定方法
JP2019179475A (ja) サポート装置、サポートプログラム、設定方法
JP5027820B2 (ja) 装置および構成要素から構成されているモジュール式の生産機械を制御するための方法
JP2001325010A (ja) プログラマブルコントローラシステム
WO2022249713A1 (ja) 制御システム、システムプログラムおよびデバッグ方法
WO2020246096A1 (ja) サポート装置およびサポートプログラム
JP7231073B2 (ja) 制御装置および制御システム
JP7151161B2 (ja) 制御システム、サポート装置、サポートプログラム
JP2021114019A (ja) データ処理方法
JP6002021B2 (ja) スレーブ機器
JP2020144812A (ja) エンジニアリングツール
JP2012014358A (ja) シミュレータ及びシミュレーション方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20766476

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2020766476

Country of ref document: EP

Effective date: 20211006