WO2012043008A1 - プログラマブル・ロジック・コントローラの実行環境をバージョンアップする方法、システム、およびプログラム - Google Patents

プログラマブル・ロジック・コントローラの実行環境をバージョンアップする方法、システム、およびプログラム Download PDF

Info

Publication number
WO2012043008A1
WO2012043008A1 PCT/JP2011/065522 JP2011065522W WO2012043008A1 WO 2012043008 A1 WO2012043008 A1 WO 2012043008A1 JP 2011065522 W JP2011065522 W JP 2011065522W WO 2012043008 A1 WO2012043008 A1 WO 2012043008A1
Authority
WO
WIPO (PCT)
Prior art keywords
upgrade
controller
execution environment
user
information
Prior art date
Application number
PCT/JP2011/065522
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 JP2011542619A priority Critical patent/JP4987169B2/ja
Priority to CN201180046999.8A priority patent/CN103124938B/zh
Priority to KR1020137010198A priority patent/KR101493628B1/ko
Priority to DE112011103308.7T priority patent/DE112011103308B4/de
Publication of WO2012043008A1 publication Critical patent/WO2012043008A1/ja

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
    • 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
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Definitions

  • the present invention relates to a method, a system, and a program.
  • Low level automation systems may include dedicated robotic equipment or other automation systems that are controlled or monitored by a programmable logic controller (PLC).
  • PLC programmable logic controller
  • machine vision systems, bar code readers, and various sensing devices and instruments such as various optical, electrical, electromechanical, and temperature sensors may be used to monitor such processes.
  • a user develops a control logic such as a ladder program, and a PLC (controller) executes this control logic in order to achieve a manufacturing process desired by the user.
  • the control logic is stored in the controller's memory as user application software, which can be read by the controller.
  • the controller is provided with an execution environment in which the controller's processor can process control logic and execute user applications. Since this execution environment (eg, similar to an operating system (OS) in a personal computer) is part of the controller, the controller manufacturer is responsible for maintaining the execution environment. The controller manufacturer often upgrades the execution environment if there is a problem or malfunction in the execution environment. Since this execution environment is stored in non-volatile memory, manufacturers often replace the entire controller and apply upgrades to the execution environment, but this method results in increased support costs for these controller manufacturers. Furthermore, the user must stop the manufacturing process when upgrading the execution environment.
  • OS operating system
  • the exemplary embodiments of the present invention refer to at least the above-mentioned problems and disadvantages and other disadvantages not mentioned above.
  • the present invention is not required to overcome the above disadvantages, and the embodiments described above do not necessarily overcome the above disadvantages.
  • a method for upgrading the execution environment of a programmable logic controller includes: reading out controller controller type of the controller and operating system version information of the controller; reading out version information corresponding to the controller type and the version information; and based on the version up information, The step of determining a part to be upgraded in the execution environment and the step of upgrading the determined part in the execution environment are included.
  • a system for performing software maintenance of a programmable logic controller includes a programming tool and a controller.
  • the programming tool can be operated to upgrade the execution environment of the controller.
  • the programming tool includes a controller type determination unit that reads the controller type of the controller and the version information of the operating system of the controller, and a version upgrade information determination unit that reads the version upgrade information corresponding to the controller type and the version information.
  • a version upgrade area determination unit that determines a part to be upgraded in the execution environment based on the version upgrade information; a version upgrade unit that upgrades the determined part in the execution environment; It is included.
  • FIG. 1 is a diagram illustrating an example of a system configuration.
  • FIG. 2 is a diagram illustrating an example of a procedure in which version upgrade can be applied to an execution environment (operating system) of a controller (sequencer).
  • FIG. 3A is a diagram illustrating an example of a configuration of a controller.
  • FIG. 3B is a diagram illustrating an example of the software structure of the controller.
  • FIG. 4A is a diagram illustrating an example of OS execution parameters.
  • FIG. 4B is a diagram illustrating an example of OS execution parameters.
  • FIG. 5 is a diagram for explaining the OS program in more detail.
  • FIG. 6 is a diagram illustrating an example of a ladder program.
  • FIG. 7A is a diagram illustrating version upgrade information and version upgrade software.
  • FIG. 7B is a diagram illustrating version upgrade information and version upgrade software.
  • FIG. 8A is a diagram illustrating an example of the procedure of FIG. 2 in more detail.
  • FIG. 8B is a diagram for explaining an example of the procedure of FIG. 2 in further detail.
  • FIG. 9 is a diagram for explaining the internal structure of the programming tool.
  • FIG. 1 shows a system configuration according to an exemplary embodiment of the present invention.
  • the programming tool 1 installs a program developed by the user in the control sequencer 2.
  • the sequencer 2 is a device that controls a user's manufacturing process.
  • the sequencer 2 may be a programmable logic controller (PLC).
  • PLC programmable logic controller
  • the sequencer 2 and the programming tool 1 can be connected to each other by means such as USB (Universal Serial Bus).
  • the programming tool 1 may include a processor with separate logic or processing units that perform different functions. These different logical units can be incorporated into software embodied on a processor.
  • the server 3 is connected to the programming tool 1 via the Internet 4 and stores information and files necessary for maintaining and upgrading the software used in the sequencer 2.
  • the server 3 may be a computer managed by the manufacturer of the sequencer 3 or another maintenance company that supports the sequencer 2.
  • the server 3 is connected to the Internet 4 and accepts a predetermined request based on a prescribed URL.
  • the server 3 can have a hard disk drive unit as a storage unit, and upgrade software 52 (described later) prepared for maintenance and replacement of the sequencer 2 in the storage unit (described later).
  • the upgrade information 53 can be stored.
  • FIG. 2 shows a procedure by which version upgrade can be applied to the execution environment (for example, operating system) of the controller 2.
  • step S201 the customer connects the programming tool to the target controller that the customer desires to maintain.
  • step S202 data (that is, version information) indicating the OS (operating system) version of the target controller and other data are read by the programming tool.
  • step S203 the programming tool refers to the OS data information stored in the server 3 regarding the OS version (version information) read from the controller.
  • step S204 the programming tool determines whether the version upgrade should be applied to the execution environment (eg, operating system) of the controller. Further, the programming tool determines the contents of the version upgrade based on the data (that is, version information) indicating the OS version read from the controller by the programming tool and other data.
  • step S204 the programming tool terminates the process and determines that the upgrade should be applied (in step S204). In the case of “Yes”), the process proceeds to step S205.
  • step S205 the programming tool applies the version upgrade to the execution environment of the controller.
  • FIG. 3A is a diagram for explaining the configuration of the sequencer 2.
  • the external units 21 and 22 are connected to the controller module 23 via the system bus 24.
  • the external units 21 and 22 are units connected to external devices or external devices such as sensors, lamps, actuators, and servos (not shown), and store data related to the external devices or external devices. These external devices or external devices execute a predetermined manufacturing process by exchanging information and signals with the external units 21 and 22, for example.
  • the external units 21 and 22 can be used for input / output of digital information and analog signals based on bit groups.
  • the controller module 23 includes a processor 231, a memory unit 232, a system bus I / F 233, and a programming tool connection unit 234.
  • the controller module communicates with the system bus 24 via the system bus I / F 233.
  • the processor 231 is an MPU (micro processing unit) that executes a program developed by a user or an operating system (OS) of the sequencer 2.
  • OS operating system
  • the memory unit 232 includes a nonvolatile memory 232a and a volatile memory 232b.
  • the nonvolatile memory 232a stores an OS execution parameter 31, an OS program file 32, OS version information 33, a user program 34, controller information 35, and the like.
  • the volatile memory 232b acquires and stores data related to external devices or external devices from the external units 21 and 22 via the system bus 24. However, all or part of the information stored in the nonvolatile memory 232a can be further stored in the volatile memory 232b for the purpose of high-speed access.
  • the contents of the memory unit 232 can be upgraded through various means such as a carrier wave, an RF signal, an Ethernet (registered trademark) signal, and TCP / IP.
  • a carrier wave such as a carrier wave, an RF signal, an Ethernet (registered trademark) signal, and TCP / IP.
  • the list of storage media includes electrical connections with one or more wires, portable computer diskettes such as floppy disks or flexible disks, magnetics Tape or other magnetic media, hard disk, random access memory (RAM), read only memory (ROM), erasable programmable read only memory (EPROM or flash memory), memory card, other memory Chip or cartridge, optical fiber, portable compact disk read-only memory (CD-ROM), other optical media, punch cards, paper tape, other physical media with hole patterns, read by computer / controller Out It includes any other medium or suitable combinations thereof may.
  • the programming tool connection unit 234 may include a network interface module 104 that allows the sequencer 2 to communicate with the programming tool via the network interface module.
  • the network interface module 104 may include a network interface card coupled to a data bus.
  • the network interface module provides a two-way data communication connection to the network link.
  • Such bi-directional data communication connection may be connected to a local area network (LAN).
  • LAN local area network
  • the network interface module 104 may be an integrated services digital network (ISDN) card or modem that provides a data communication connection to a corresponding type of telephone line.
  • ISDN integrated services digital network
  • the network interface module 104 may be a local area network interface card (LAN NIC) that provides a data communication connection to a compatible LAN.
  • LAN NIC local area network interface card
  • Wireless links such as known 802.11a, 802.11b, 802.11g and Bluetooth may also be used for network implementation.
  • network interface module 104 sends and receives electrical, electromagnetic, or optical signals that carry digital / analog data streams that represent various types of information.
  • the OS execution parameter 31 includes an operation parameter of the OS program 32.
  • a watchdog timer (WDT) setting can be included as the OS execution parameter 31.
  • the OS program 32 refers to a function that uses an OS execution parameter to execute a certain calculation.
  • an error handling function e.g., a function that defines what happens when a divide by zero occurs or when a definition in the user's code cannot be performed by the controller
  • the OS program 32 is designed so that the calculation of the OS program changes based on the calculation parameters for each function.
  • the watchdog timer (WDT) setting is monitored, and if the watchdog timer (WDT) setting exceeds a certain value (for example, 200 milliseconds), the current execution It may be a program that stops the program inside.
  • a certain value for example, 200 milliseconds
  • the OS program 32 represents a program code that adjusts the overall function of the execution environment of the controller.
  • the OS program 32 is similar to the OS kernel code of the personal computer. Like the OS kernel code, the OS program 32 operates in a privileged mode, and a user program such as a ladder program cannot change the OS program or control the OS program. Control the execution of In addition, the OS program 32 is responsible for optimal execution of controller hardware, management and execution of user sequence programs, communication with programming tools, diagnosis of controller hardware, and reporting of hardware diagnosis results. .
  • the OS version information 33 is information used for identifying the version of the current OS program 32.
  • the user program 34 is a list of instructions for controlling the controller. In the field of factory automation, programs in the form of ladder diagrams are often used.
  • the controller information 35 corresponds to information on the manufacturer, model name, model, etc. of the controller.
  • FIG. 3B shows the internal structure of the software of the controller, and the detailed description of FIG. 3B will be made after the description of FIG.
  • the watchdog timer (WDT) setting 401 is an example of the OS execution parameter 31.
  • FIG. 4A shows multiple OS execution parameters via a graphical user interface. That is, the plurality of OS execution parameters can be configured using a graphical user interface.
  • FIG. 4A also shows an error check 402 that is another example of the OS execution parameter 31.
  • the OS execution parameter can be configured as a data structure such as an MPU register as shown in FIG. 4B.
  • Data structure 403 shows WDT setting 401 and includes a plurality of bits pointing to various portions of WDT setting 401. For example, bit 0 of data structure 403 specifies whether the initial execution monitoring time is turned on or turned off.
  • Bit 1 specifies whether the slow execution monitoring time is turned on or turned off.
  • the remaining bits in the data structure 403 can specify the value entered in the WDT setting field in FIG. 4A.
  • the data structure 404 shows a plurality of bits related to the setting of the error check 402 in FIG. 4A. For example, bit 0 in data structure 404 is “1” when the battery check execution setting is checked by the user in FIG. 4A.
  • FIG. 5 shows the OS program 32 in more detail.
  • the OS program 32 can be further divided into a plurality of execution modules.
  • execution module 32a implements certain error handling
  • another execution module 32b implements a watchdog timer (WDT)
  • yet another execution module 32c corresponds to an operator used in the ladder program.
  • An instruction code can be implemented.
  • the execution module 32 can include instructions such as LD and MOV and their definitions.
  • FIG. 6 shows an example of a ladder program stored in the user program 34.
  • a ladder program is a kind of user application program. Each step of the ladder program consists of operands that the operator operates accordingly.
  • the operator is an identifier indicating the type of calculation. Operands are data or variables that the operator operates on accordingly.
  • the command LD SM400 is composed of a combination of an operand called SM400 and an operator called LD.
  • the operator LD is a command that can load the value stored in the SM 400 into the memory.
  • the LD instruction can be defined to load the data stored in the memory into the SM 400. This LD instruction is merely an example, and the LD can be defined differently if the execution environment is different.
  • FIG. 3B illustrates the internal structure of the controller software.
  • the internal structure of the controller software can be divided into seven layers (seven software layers), and the OS program file 32 includes five of the seven layers.
  • FIG. 3B illustrates six of the seven layers.
  • the user layer 301 includes OS execution parameters, user sequence programs, and I / O data.
  • the user layer 301 is not included in the file of the controller OS program 32 (see FIG. 3A), but is closely related to the file of the controller OS program 32.
  • the OS execution parameter corresponds to the OS execution parameter 31 (see FIG. 3A)
  • the user sequence program corresponds to the user program 34 (see FIG. 3A).
  • I / O data refers to input data and output data used for execution of user sequence programs.
  • the controller acquires input data from the external units 21 and 22, executes a user sequence program, and outputs the data to the external units 21 and 22.
  • the user I / F layer 302 is a part of the controller OS. More specifically, the user I / F layer 302 is a part of a file of the OS program 32 (see FIG. 3A).
  • the user I / F layer 302 includes functions such as OS execution parameter decoding and user sequence program decoding.
  • the OS execution parameter / decode function is a function for reading and decoding the OS execution parameter 31 (see FIG. 3A).
  • the user sequence program decoding function is a function for reading and decoding the user sequence program.
  • the application layer 303 is a part of the file of the OS program 32 (see FIG. 3A), and is responsible for executing the user sequence program. More specifically, the application layer 303 includes user sequence program instruction execution and communication functions.
  • the user sequence program instruction execution is a function for executing an instruction decoded by the user sequence program decode function in the user I / F layer 302.
  • the communication function is a function for handling communication between the controller and the programming tool.
  • the diagnosis layer 304 is also a part of the file of the OS program 32 (see FIG. 3A), and is responsible for checking and diagnosing the controller itself.
  • the diagnosis layer 304 includes diagnosis result management, system bus diagnosis, module diagnosis, and battery diagnosis.
  • the diagnosis result management stores diagnosis results obtained from different diagnosis functions such as a system bus diagnosis function, a module diagnosis function, and a battery diagnosis function.
  • the system bus diagnosis is a function responsible for checking the state of the system bus.
  • the module diagnosis is a function for checking the status of the controller module itself and the external unit.
  • Battery diagnosis is a function responsible for checking the state of the battery.
  • the abstraction layer 305 includes functions such as file access, device memory access, module access, communication data buffer, and operation management. Similarly, the abstraction layer 305 is a part of the file of the OS program 32 (see FIG. 3A).
  • the file access function controls access to the file of the OS execution parameter 31 (see FIG. 3A) or the file of the user sequence program (user program 34) with respect to other software layers (for example, allow, Or ban.)
  • the device memory access controls access to the device memory with respect to other layers (for example, allow or prohibit).
  • the device group includes, for example, components (for example, a contact point and a coil group) constituting a program and a virtual element for programming in the CPU of the controller.
  • the virtual element may include part of a programming language used by the controller CPU.
  • virtual elements may include those that identify certain functions and represent basic building blocks used in the user program.
  • the virtual element may include a switch.
  • a user can incorporate a switch into his program by incorporating a virtual element corresponding to the switch.
  • the instrument memory is in volatile memory.
  • Module access controls eg, allows or prohibits
  • the communication data buffer controls (for example, allows or prohibits) communication with a device connected to the software layer without requiring the use of a communication protocol.
  • Operation management deals with LEDs, switches, and batteries.
  • the operation management controls (for example, allows or prohibits) theoretical access to the LED, switch, and battery for the software layer group.
  • the last layer is a hardware I / F (hardware interface) layer 306.
  • the hardware I / F layer 306 is a part of the file of the OS program 32 (see FIG. 3A), and includes a driver program that performs interface processing with hardware resources.
  • the hardware I / F layer 306 includes a sequence instruction execution engine driver responsible for controlling different modules based on the execution of sequence instructions.
  • the hardware I / F layer 306 further includes a flash ROM driver that is a driver for nonvolatile memory, a system bus communication driver that is a system bus driver, and a communication driver that bears a communication port.
  • the upgrade information 53 and the structure specific to the upgrade information 53 is an important feature of the present invention that provides unique flexibility in upgrading controller software to the present invention.
  • the upgrade information 53 is stored in the server 3 (see FIG. 1) and transferred from the server 3 to the programming tool 1 via the Internet 4. It should be noted that any type of network can be used to transfer upgrade information from the server 3 to the programming tool 1.
  • the upgrade software 52 is installed in the sequencer 2 by the programming tool 1 based on the contents of the upgrade information 53. Based on the upgrade information 53, the upgrade software 52 completely replaces the OS program 32 (see FIG. 3A) with a new version, or replaces a part of the OS program 32 with a new one.
  • the upgrade information 53 is shown in FIGS. 7A and 7B in a tree structure in which the top entry is “controller type”.
  • the controller type 700 is information for identifying a model of a controller targeted by the upgrade software 52.
  • different version upgrade software 52 can be prepared for each model, and the two or more version upgrade information 53 is similarly prepared corresponding to each version upgrade information 52. It can be done.
  • the upgrade information 53 further includes a hardware change necessity 702.
  • the hardware change necessity 702 indicates whether the controller includes a defective hardware design, or the hardware needs to be changed. Indicates whether there is. If the hardware change necessity 702 is 1 (true), a message indicating that hardware replacement is required may be displayed to the controller user. This message may be displayed through the programming tool 1.
  • the version upgrade factor 703 includes major version upgrade information, minor version upgrade information, and defect information.
  • the upgrade factor 703 further includes information specifying the importance level of maintenance, that is, urgency. If the upgrade software 52 includes a new function that does not yet exist in the controller, the major upgrade is “1 (true)”. For example, a new function may be incorporated into an OS (execution environment) of a controller that communicates via the Internet.
  • the minor upgrade information indicates that certain functions that are already part of the controller OS should be improved, and that the upgrade software 52 includes improvements.
  • the upgrade software 52 can be equipped with an extended WDT function. It should be noted that the importance of the upgrade is low when the minor version upgrade field is “1 (true)”. When the importance is “low”, an option is provided to the user, and the user may select to install the upgrade software 52 at his / her discretion using the option.
  • the defect field (defect information) in the upgrade factor 703 indicates whether there is a defect in the execution environment of the controller. More specifically, the defect field can be set to “1 (true)” when a defect exists in the OS program 32. For example, the failure field may be “1 (true)” when the WDT function does not work or the WDT function fails to retrieve parameters from the WDT data structure 403.
  • the defect field is 1 (true)
  • the importance of the upgrade is “high”. If the importance is “high”, the upgrade software 52 can be installed on the controller (sequencer 2) immediately / forcedly because the upgrade software 52 is prepared to fix an essential problem.
  • the user of the controller may not use a function including a defect. In this case, an option is provided to the user, and the user can use the option to upgrade to the controller OS. You may choose to skip the application.
  • the OS version upgrade location 704 can specify the OS layer that the upgrade affects.
  • the upgrade software 52 may affect only the diagnostic layer or both the diagnostic layer and the abstraction layer of the OS program 32.
  • the upgrade information 705 is information that identifies the part of the OS program 32 that is affected by the upgrade software 52. This entry has a dependent entry.
  • the first subordinate entry may be the version upgrade function list 705-1.
  • the upgrade function list 705-1 identifies the functions included in the OS program 32. For example, when the WDT function is affected, the version upgrade function list 705-1 designates “1 (true)” in the next version upgrade entry of function 1. Similarly, when the upgrade software 52 affects other OS functions such as initial execution monitoring and low-speed execution monitoring, the upgrade entry can be specified for each of these functions.
  • the upgrade information 705 may further include a version upgrade instruction list 705-2 as another subordinate entry.
  • the upgrade command list 705-2 specifies whether the upgrade is applied to different commands such as LD and MOV.
  • FIG. 7B schematically shows the upgrade software 52.
  • the upgrade software 52 includes binary data that is applied as an upgrade to the execution environment (OS) of the controller.
  • OS execution environment
  • the upgrade software 52 includes binary data for specific functions of that layer. Therefore, if one of the layers does not need to be upgraded, the OS data 706 does not include binary data for upgrading that layer. Further, the upgrade software 52 may include a checksum 707 for the OS data 706.
  • step S801 the user connects a programming tool to the target controller to perform maintenance on the target controller.
  • step S802-1 the programming tool reads controller type information from the target controller.
  • step S802-2 the programming tool reads OS version information from the target controller.
  • step S803-1 the programming tool connects the target controller to the Internet.
  • step S803-2 the programming tool accesses the server 3 to read the upgrade information from the server.
  • the server may store upgrade information for two or more controllers. Therefore, in step S804, the programming tool determines whether there is upgrade information corresponding to the target controller. If not, the procedure can be terminated or the user can decide to perform maintenance on the next controller.
  • each of the above steps can be performed by logical units in programming tool 1. That is, the programming tool can have a first logical unit that reads data from the server and a second logical unit that reads the OS version type.
  • step S804 if it is determined that the upgrade information corresponding to the target controller is present in the upgrade information read from the server, the programming tool advances the procedure to step S806-1.
  • step S806-1 OS upgrade information (for example, upgrade information 53 as shown in FIG. 7A) is read for the corresponding target controller.
  • the programming tool may have to analyze the upgrade information to find the upgrade information 53 corresponding to the target controller.
  • step S806-1 the upgrade information 53 corresponding to the target controller is found
  • step S806-2 the programming tool determines whether or not the hardware change in the upgrade information 53 is necessary 702. Confirm.
  • step S807 the programming tool checks whether the hardware change necessity 702 is “1 (true)” in the version upgrade information 53.
  • the programming tool is “1 (true)” (in the case of “Yes” in step S807), the procedure proceeds to step S808.
  • step S808 the programming tool notifies the administrator that the hardware needs to be replaced. For example, the programming tool notifies that the controller needs to be replaced.
  • step S807 If it is “0 (false)” in step S807 (“No” in step S807), the programming tool advances the procedure to S809-1.
  • step S809-1 the programming tool confirms the OS upgrade location 704 in the upgrade information 53.
  • step S809-2 the programming tool determines whether there is a defect to be corrected by this version upgrade. This is determined by checking whether the “failure” information is “1 (true)” under the upgrade factor 703 in the upgrade information 53. When the defect information is “1 (true)” (“Yes” in step S809-2), the programming tool advances the procedure to step S810-1 because the importance of “upgrade” is high. When the defect information is “0 (false)” (“No” in step S809-2), the programming tool ends the procedure.
  • step S810-1 the programming tool confirms the OS upgrade location 704 in the upgrade information 53.
  • step S810-2 the programming tool checks whether the version upgrade affects the basic part of the OS program 32 of the controller. That is, if any one of the diagnostic layer, the abstraction layer, and the hardware I / F layer is “1 (true)” under the OS version upgrade location 704, the programming tool updates the OS program of the controller. It is determined that 32 basic parts are affected. If the programming tool determines that the upgrade affects the basic part of the controller OS program 32 (“Yes” in step S810-2), the programming tool proceeds to step S814-1. In step 814-1, the programming tool accesses the support site via the Internet and reads out OS data from the support site.
  • step S814-2 the programming tool uses the upgrade software 52 to replace corresponding portions of various layers in the basic portion of the OS program 32 of the controller. For example, when there is a defect in the abstraction layer 305, the programming tool replaces the abstraction layer 305 in the OS program 32 using the upgrade software 52.
  • step S811-1 the programming tool reads the OS execution parameter 31 and the OS program 32 from the target controller.
  • steps S812-1 and S812-2 the programming tool refers to the upgrade information 53 to determine the OS execution parameter and the portion of the OS program that is affected by the upgrade program 52.
  • step S812-1 the programming tool reads the OS execution parameter 31 to identify the OS function used by the user. For example, if one of the bits in the data structure 403 (see FIG. 4B) is set, this may be an indication that the WDT function is using the WDT setting.
  • step S812-2 the programming tool checks the upgrade function list 705-1 in the upgrade information 53.
  • the upgrade function list 705-1 provides a list of functions that are affected by the upgrade software 52.
  • the programming tool may provide the user with an option as to whether these functions should be upgraded.
  • step S810-3 the programming tool performs the following check to confirm the secondary necessity for version upgrade.
  • the programming tool checks whether there is an overlap between the version upgrade function list and the function used by the user, that is, whether the OS data corresponding to the defect is a function used by the user.
  • step S814-1 if the OS data corresponding to the failure is targeted for a function used by the user (“Yes” in step S810-3), and the OS data corresponding to the failure is If the function used in step S810 is not targeted (if “No” in step S810-3), the procedure proceeds to step S811-2.
  • step S812-2 when the option is provided to the user in step S812-2, the case where the user selects the option to be upgraded corresponds to the case of “Yes” in step S810-3, and the user should upgrade the version.
  • the case where the option of not being selected is selected corresponds to the case of “No” in step S810-3.
  • the programming tool can extract instructions / operators used by the user in the ladder program or application program.
  • the programming tool can compare the extracted instructions with the instructions in the upgrade instruction list 705-2 and apply the upgrade to the ladder program accordingly. Therefore, in step S811-2, the programming tool reads the OS execution parameter 31 and the OS program 32 from the target controller.
  • the programming tool refers to the upgrade information 53 to determine the OS execution parameter and the portion of the OS program that is affected by the upgrade program 52. For example, in step S812-3, the programming tool reads the OS execution parameter 31 to identify the instruction used by the user. Furthermore, there may be an instruction that is not used by the user and is affected by the upgrade software 52. Therefore, in step S812-4, the programming tool checks the version upgrade instruction list 705-2 in the version upgrade information 53.
  • the upgrade command list 705-2 provides a list of commands that are affected by the upgrade software 52.
  • the programming tool may provide the user with an option as to whether these instructions should be upgraded.
  • step S810-4 the programming tool performs the following check in order to confirm the tertiary necessity for version upgrade. The programming tool checks whether there is an overlap between the version upgrade instruction list and the instruction used by the user, that is, whether or not the OS data corresponding to the defect is an instruction used by the user.
  • the programming tool advances the procedure to step S814-1 if the OS data corresponding to the failure is targeted for the function used by the user (“Yes” in step S810-4), and the OS data corresponding to the failure is If the function used in step S810 is not targeted (“No” in step S810-4), the procedure is terminated.
  • step S812-4 when options are provided to the user in step S812-4, the case where the user selects an option that should be upgraded corresponds to the case of “Yes” in step S810-4, and the user should upgrade the version.
  • the case where the option of not being selected is selected corresponds to the case of “No” in step S810-4.
  • the above procedure allows the user to be given better control over the controller operating system version upgrade procedure, and certain functions and programs that the user will be affected by the version upgrade.
  • the group is not used, it is possible to realize a control that does not apply the version upgrade to the controller.
  • the programming tool 1 includes a controller type determination unit 901 that reads out controller controller type and controller operating system version information, a version upgrade information determination unit 902 that reads out version information corresponding to the controller type and version information, and version upgrade information.
  • the version upgrade information includes information for specifying a part to be upgraded in the operating system. As described above, the upgrade information includes information for specifying the upgrade function list.
  • the version upgrade function list includes information regarding the function to be upgraded, which is included in the operating system.
  • the upgrade area determination unit 903 can determine whether the function included in the operating system is used by the user of the controller by reading the operating system execution parameter.
  • the version upgrade unit 904 can apply the version upgrade only to the function used by the user among the functions of the operating system.
  • the programming tool can provide the user with an option for selecting whether to upgrade one function from the version upgrade function list.
  • the upgrade unit 904 upgrades only the function selected by the user using these options.
  • the upgrade area determination unit 903 can further determine whether or not the user application program uses one instruction from a plurality of instructions specified by the upgrade information 53.
  • the upgrade unit 904 If it is determined that the application program uses at least one of the plurality of instructions, the user application program can be upgraded.
  • each block in the flowchart and block diagram, and combinations of blocks in the flowchart and block diagram can be implemented by computer program instructions.
  • These computer program instructions are supplied to a processor such as a general-purpose computer, a dedicated computer, or another programmable data processing device, and a group of instructions executed through the processor of the computer or other programmable data processing device is a flowchart or Means for performing the functions / operations specified in the block diagram block or blocks may be generated.
  • a processor such as FPGA or ASIC.
  • These computer program instructions can be a computer or other programmable data processing device or computer readable medium that can instruct other devices to function in a particular manner, or more specifically. Includes an instruction group stored in a computer-readable storage medium, whereby the instruction group stored in the computer-readable medium performs a function / operation specified by a block or block group in a flowchart or block diagram. It is possible to make it possible to produce inclusions.

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

 (課題)コントローラOSデータのバージョンアップの必要性を確認し、自動的に行われるコントローラOSデータの無駄なバージョンアップを排除し、金銭的、時間的、作業的に効率が良く、かつ安全性を考慮したコントローラOSデータのバージョンアップ方法を提供する。 (解決手段)現在発達しているインターネット網と、コントローラ用のプログラミングツールとの組み合わせを活用し、コントローラ用のプログラミングツールをコントローラに接続したとき、コントローラのOSバージョンを自動的に確認し、インターネット上の所定のサイトに存在する最新OSバージョンを確認する。そして、バージョンアップすべきと判断した場合(例えば、不具合の内在が報告されているコントローラであると判断した場合)、最新OSデータをコントローラにダウンロードする。

Description

[規則37.2に基づきISAが決定した発明の名称] プログラマブル・ロジック・コントローラの実行環境をバージョンアップする方法、システム、およびプログラム
 本発明は、方法、システム、およびプログラムに関する。
 現代の製造設備、及び特に工業自動化の分野において、自動化プロセスは、多くの場合、低水準の自動化システムやプロセス制御および監視システム等によって制御される。低水準の自動化システムは、プログラマブル・ロジック・コントローラ(PLC)によって制御もしくは監視される専用ロボット機器、または他の自動化システムを含んでいることがある。またこのようなプロセスを監視するため、マシン・ビジョン・システム、バーコードリーダー、及び種々の光学、電気、電気機械、温度センサ等の種々の検知装置および計器が使用されることがある。
 一般的に、ユーザはラダープログラムのような制御ロジックを開発し、PLC(コントローラ)はユーザが所望する製造プロセスを達成するためにこの制御ロジックを実行する。制御ロジックは、ユーザ・アプリケーション・ソフトウェアとしてコントローラのメモリに格納され、それはコントローラにより読み出し可能である。コントローラには、コントローラのプロセッサが制御ロジックを処理しユーザ・アプリケーションを実行できる実行環境が提供される。この(例えばパーソナルコンピュータにおけるオペレーティングシステム(OS)に類似した)実行環境はコントローラの一部であるので、コントローラ製造元がその実行環境を保守する責任を負う。コントローラの製造元は、この実行環境に問題または不具合があればしばしば実行環境のバージョンアップを行う。この実行環境は不揮発性メモリに格納されるので、製造元は多くの場合コントローラ全体を交換して実行環境にバージョンアップを適用するが、この方法はこれらコントローラの製造元に対しサポート費用の増加をもたらす。さらに、ユーザはその実行環境をバージョンアップするときは製造プロセスを停止しなければならない。
 したがって、コントローラの実行環境の効率的なバージョンアップを可能にするためのシステムや方法が要求される。
 本発明の例示的な実施形態は、少なくとも上記した問題点や不都合な点及び前述されていないその他の不都合な点について言及するものである。本発明は上記不都合な点を克服することが要求されているものではなく、また本発明の実施形態によって必ずしも上記した不都合な点を克服するものでもない。
 本発明の第1の局面によって、プログラマブル・ロジック・コントローラの実行環境をバージョンアップする方法が提供されている。この方法には、前記コントローラのコントローラ型式および前記コントローラのオペレーティングシステムのバージョン情報を読み出すステップと、前記コントローラ型式および前記バージョン情報に対応するバージョンアップ情報を読み出すステップと、前記バージョンアップ情報に基づいて前記実行環境の中でバージョンアップされるべき部分を判定するステップと、前記実行環境の中で前記判定された部分をバージョンアップするステップとが含まれている。
 本発明の第2の局面によってプログラマブル・ロジック・コントローラのソフトウェア保守を実行するシステムが提供されている。このシステムには、プログラミングツールとコントローラとが備わっている。前記プログラミングツールは、前記コントローラの実行環境をバージョンアップするための操作が可能である。また、前記プログラミングツールは、該コントローラのコントローラ型式および前記コントローラのオペレーティングシステムのバージョン情報を読み出すコントローラ型式判定ユニットと、前記コントローラ型式および前記バージョン情報に対応するバージョンアップ情報を読み出すバージョンアップ情報判定ユニットと、前記バージョンアップ情報に基づいて前記実行環境の中でバージョンアップされるべき部分を判定するバージョンアップエリア判定ユニットと、前記実行環境の中の前記判定された部分をバージョンアップするバージョンアップユニットと、が含まれている。
 本発明の上記態様および/または他の態様は、添付図面を参照して本発明のいくつかの例示的な実施形態を説明することによってより一層明らかになるであろう。
図1は、システム構成の一例を示す図である。 図2は、コントローラ(シーケンサ)の実行環境(オペレーティングシステム)にバージョンアップが適用できる手順の一例を説明する図である。 図3Aは、コントローラの構成の一例を示す図である。 図3Bは、コントローラのソフトウェアの構造の一例を示す図である。 図4Aは、OS実行パラメータの実施例を示す図である。 図4Bは、OS実行パラメータの実施例を示す図である。 図5は、OSプログラムをさらに詳細に説明する図である。 図6は、ラダープログラムの一例を示す図である。 図7Aは、バージョンアップ情報およびバージョンアップソフトウェアを示す図である。 図7Bは、バージョンアップ情報およびバージョンアップソフトウェアを示す図である。 図8Aは、図2の手順の一例をさらに詳細に説明する図である。 図8Bは、図2の手順の一例をさらに詳細に説明する図である。 図9は、プログラミングツールの内部構造を説明する図である。
 以下に本発明のいくつかの実施形態を添付図面を参照してより詳細に説明する。
 以下の説明では、異なる図面であっても類似した要素には類似の参照番号が使用される。発明の包括的な理解を助けるべく、詳細な構成や構成要素等が明細書中で例示されているが、しかしながら、本発明は具体的に例示されたこれらの事項なしに実施することも可能である。さらに、不必要な細部を記載することで発明を分かり難くすることがあるので、既知の機能または構成は詳細に説明されていない。
実施の形態.
 図1は、本発明の例示的な実施形態によるシステム構成を示している。プログラミングツール1は、ユーザによって開発されたプログラムを制御シーケンサ2にインストールする。シーケンサ2は、ユーザの製造プロセスを制御する機器である。シーケンサ2はプログラマブル・ロジック・コントローラ(PLC)でもよい。シーケンサ2およびプログラミングツール1は、USB(ユニバーサル・シリアル・バス)などの手段によって互いに接続され得るものである。プログラミングツール1は、異なる機能を実行する別個の論理ユニットまたは処理ユニットを備えるプロセッサを含んでいてもよい。これらそれぞれ異なる論理ユニットは、プロセッサ上で具現化されるソフトウェアに組み込ませることができる。サーバ3はインターネット4を介してプログラミングツール1に接続され、シーケンサ2で使用されるソフトウェアを保守・バージョンアップするために必要な情報やファイルを格納する。以下、「シーケンサ」および「コントローラ」の語が交互に用いられているが、それらはシーケンサ2を指すものである。サーバ3は、シーケンサ3の製造元またはシーケンサ2をサポートする別の保守会社によって管理されているコンピュータであってもよい。サーバ3はインターネット4と接続され、規定されたURLに基づく所定の要求を受け付ける。サーバ3は、ストレージユニットとしてハード・ディスク・ドライブ・ユニットを有することができ、そのストレージユニット内にシーケンサ2の保守および交換のために準備された(後述する)バージョンアップソフトウェア52および(後述する)バージョンアップ情報53を格納することができる。
 次に、図2は、コントローラ2の実行環境(例えば、オペレーティングシステム)に対して、それによりバージョンアップが適用され得る手順を示している。
 ステップS201では、顧客が、自身が保守することを望む対象コントローラにプログラミングツールを接続する。ステップS202では、対象コントローラのOS(オペレーティングシステム)のバージョンを示すデータ(すなわち、バージョン情報)及び他のデータがプログラミングツールによって読み出される。ステップS203では、プログラミングツールは、該コントローラから読み出されたOSバージョン(バージョン情報)に関してサーバ3に格納されているOSデータ情報を参照する。ステップS204では、プログラミングツールは、コントローラの実行環境(例えば、オペレーティングシステム)にバージョンアップを適用すべきかどうかを判定する。また、プログラミングツールは、プログラミングツールがコントローラから読み出したOSバージョンを示すデータ(すなわち、バージョン情報)および他のデータに基づいて、バージョンアップの内容を決定する。プログラミングツールは、バージョンアップが適用されるべきでないと判定した場合(ステップS204で「No」の場合)に、処理を終了し、バージョンアップが適用されるべきであると判定した場合(ステップS204で「Yes」の場合)に、処理をステップS205へ進める。ステップS205では、プログラミングツールは、コントローラの実行環境にバージョンアップを適用する。上記手順は本発明によって想定され得る手順の一例についての概略的な記述であり、その詳細は、次にコントローラの構造を詳細に説明することにより明らかにされるであろう。
 図3Aは、シーケンサ2の構成を説明するための図である。シーケンサ2では、外部ユニット21および22がシステムバス24を介してコントローラモジュール23に接続される。外部ユニット21および22は、図示されていないセンサ、ランプ、アクチュエータおよびサーボ等の外部装置または外部機器に接続されるユニットであり、外部装置または外部機器に関するデータを格納している。これら外部装置または外部機器は、例えば外部ユニット21および22との間で情報や信号をやり取りすることなどにより、所定の製造プロセスを実行する。外部ユニット21および22は、ビット群に基づくデジタル情報やアナログ信号の入出力に用いることができる。
 コントローラモジュール23は、プロセッサ231と、メモリユニット232と、システムバスI/F233と、プログラミングツール接続ユニット234とを含む。コントローラモジュールはシステムバスI/F233を介してシステムバス24と通信する。プロセッサ231は、ユーザによって開発されたプログラムや、シーケンサ2のオペレーティングシステム(OS)を実行するMPU(マイクロ・プロセッシング・ユニット)である。以下、ユーザによって開発されたプログラムは、アプリケーションプログラムと称する。メモリユニット232は不揮発性メモリ232aおよび揮発性メモリ232bを備えている。不揮発性メモリ232aは、OS実行パラメータ31、OSプログラムファイル32、OSバージョン情報33、ユーザプログラム34、及びコントローラ情報35等を格納している。揮発性メモリ232bは、外部装置または外部機器に関するデータを外部ユニット21および22からシステムバス24経由で取得し格納している。しかしながら、不揮発性メモリ232aに格納された情報の全部または一部は高速アクセスの目的でさらに揮発性メモリ232bに格納することもできる。
 メモリユニット232の内容は、搬送波、RF信号、イーサネット(登録商標)(Ethernet(登録商標))信号、TCP/IPなどの様々な手段を介してバージョンアップすることができる。そのすべてを網羅しているわけではないが、記憶媒体のリストには、1本またはそれ以上の配線を有する電気的接続、フロッピー(登録商標)ディスクもしくはフレキシブルディスクのような携帯用コンピュータディスケット、磁気テープもしくは他の磁気的媒体、ハードディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、消去可能プログラマブル・リード・オンリー・メモリ(EPROMまたはフラッシュメモリ)、メモリカード、その他のメモリチップもしくはカートリッジ、光ファイバ、携帯用コンパクト・ディスク・リード・オンリー・メモリ(CD-ROM)、その他の光学的媒体、パンチカード、紙テープ、その他穴パターンを備えた物理的媒体、コンピュータ/コントローラが読み出すことができるその他の媒体、またはこれらの適当な組み合わせが含まれる。
 プログラミングツール接続ユニット234は、シーケンサ2がネットワーク・インターフェイス・モジュールを介してプログラミングツールと通信することができるようなネットワーク・インターフェイス・モジュール104を含んでいてもよい。ネットワーク・インターフェイス・モジュール104は、データバスに連結されたネットワーク・インターフェイス・カードを含んでいてもよい。ネットワーク・インターフェイス・モジュールは、ネットワークリンクへの双方向データ通信接続を提供する。そのような双方向データ通信接続は、ローカルエリアネットワーク(LAN)に接続されるものでもよい。たとえば、ネットワーク・インターフェイス・モジュール104は、対応する型の電話回線へのデータ通信接続を提供する統合サービス・デジタル・ネットワーク(ISDN)カードまたはモデムでもよい。また別の実施例として、ネットワーク・インターフェイス・モジュール104は、互換性があるLANへのデータ通信接続を提供するローカル・エリア・ネットワーク・インターフェイス・カード(LAN NIC)でもよい。既知の802.11a、802.11b、802.11gおよびBluetooth等の無線リンクもネットワークの実装のために使用してもよい。このような実装においては、いずれもネットワーク・インターフェイス・モジュール104が、様々なタイプの情報を示すデジタル/アナログ・データ・ストリームを搬送する電気的、電磁気的、または、光学的信号を送受信する。
 OS実行パラメータ31は、OSプログラム32の演算パラメータを含んでおり、たとえば、ウォッチドッグ・タイマ(WDT)・セッティングをOS実行パラメータ31として含めることができる。OSプログラム32は、ある一定の演算を実行するためにOS実行パラメータを利用する機能を参照する。たとえば、エラー処理用機能(たとえば、ゼロ除算が生じたとき、または、ユーザのコード中の規定がコントローラによって実行できないときに何が起こるかを定義する機能)がOSプログラム32として認識され得る。OSプログラム32は、OSプログラムの演算が各機能用の演算パラメータに基づいて変化するように設計される。OSプログラム32の別の例として、ウォッチドッグ・タイマ(WDT)・セッティングを監視し、ウォッチドッグ・タイマ(WDT)・セッティングがある一定の値(たとえば、200ミリ秒)を超えた場合、現在実行中のプログラムを停止するプログラムであってもよい。
 OSプログラム32は、コントローラの実行環境の全体的な機能を調整するプログラムコードを代表するものである。OSプログラム32はパーソナルコンピュータのOSのカーネルコードに類似している。OSのカーネルコードと同様に、OSプログラム32は特権モードで動き、ラダープログラム等のユーザプログラムは、OSプログラムを変更したり、またはOSプログラムを制御したりすることはできないが、OSプログラムはユーザプログラムの実行を制御する。さらに、OSプログラム32は、コントローラハードウェアの最適な実行、ユーザ・シーケンス・プログラムの管理および実行、プログラミングツールとの通信、コントローラハードウェアの診断、及びハードウェア診断の結果の報告等の責任を負う。
 OSバージョン情報33は、現行のOSプログラム32のバージョンを識別するため使用される情報である。ユーザプログラム34はコントローラを制御するための命令のリストである。工場自動化の分野では、ラダーダイアグラムの形式のプログラムが使用されることが多い。コントローラ情報35は、コントローラの製造元、モデル名、型式などに関する情報に相当するものである。
 図3Bは、コントローラのソフトウェアの内部構造を示しており、図3Bの詳細な説明は図6の説明の後に行われる。
 図4Aおよび図4Bは、OS実行パラメータ31のいくつかの例をより詳細に示している。ウォッチドッグ・タイマ(WDT)セッティング401は、OS実行パラメータ31の一例である。図4Aは、グラフィカル・ユーザ・インターフェイスを介して、複数のOS実行パラメータを示している。すなわち、複数のOS実行パラメータは、グラフィカル・ユーザ・インターフェイスを使用して構成することができる。図4Aは、OS実行パラメータ31の別の例であるエラーチェック402も示している。OS実行パラメータは、図4Bに示されているようにMPUレジスタのようなデータ構造として構成することができる。データ構造403は、WDTセッティング401を示しており、WDTセッティング401の様々な部分を指す複数のビットを含んでいる。たとえば、データ構造403のビット0は、初期実行監視時間がオンにされているか、または、オフにされているかを指定する。ビット1は、低速実行監視時間がオンにされているか、またはオフにされるかどうかを指定する。データ構造403の中の残りのビット群は、図4AでWDTセッティングフィールドに入力された値を指定することができる。同様に、データ構造404は、図4Aにおいてエラーチェック402のセッティングに関係した複数のビットを示している。たとえば、データ構造404中のビット0は、図4Aでバッテリチェック実行セッティングがユーザによりチェックされる場合に「1」である。
 図5は、OSプログラム32をより詳細に示したものである。図5に示されるように、OSプログラム32はさらに複数の実行モジュールに分割され得る。たとえば、実行モジュール32aはある一定のエラー処理を実施し、別の実行モジュール32bはウォッチドッグ・タイマ(WDT)を実施し、さらに別の実行モジュール32cは、ラダープログラムで使用されるオペレータに対応する命令コードを実施することができる。たとえば、実行モジュール32は、LD、MOVなどの命令やそれらの定義を含むことができるのである。
 図6は、ユーザプログラム34に格納されたラダープログラムの一例を示している。ラダープログラムは、一種のユーザ・アプリケーション・プログラムである。ラダープログラムの各ステップは、オペレータがそれに従って動作するオペランドで構成されている。オペレータは演算のタイプを示す識別子である。オペランドは、オペレータがそれに従って動作するデータまたは変数である。たとえば、コマンドLD SM400は、SM400と称するオペランドと、LDと称するオペレータとの組み合わせで構成される。オペレータLDは、SM400に格納された値をメモリにロードすることができる命令である。LD命令は、メモリに格納されたデータをSM400にロードするように定義され得る。このLD命令は、単なる一例であり、実行環境が異なればLDを異なるように定義し得る。
 図3Bは、コントローラのソフトウェアの内部構造を図示したものである。コントローラのソフトウェアの内部構造は、7つのレイヤ(7つのソフトウェアレイヤ)に分割することが可能であり、OSプログラムファイル32は、この7つのレイヤのうちの5つのレイヤを含む。なお、図3Bには、7つのレイヤのうちの6つのレイヤが例示されている。
 ユーザレイヤ301は、OS実行パラメータ、ユーザ・シーケンス・プログラム、及びI/Oデータを含んでいる。ユーザレイヤ301は、コントローラのOSプログラム32(図3A参照)のファイル中に含まれないが、コントローラのOSプログラム32のファイルと密接に関連している。OS実行パラメータは、OS実行パラメータ31(図3A参照)に対応し、ユーザ・シーケンス・プログラムは、ユーザプログラム34(図3A参照)に対応している。I/Oデータは、ユーザ・シーケンス・プログラムの実行のために使用される入力データおよび出力データを指す。コントローラは、外部ユニット21、22から入力データを取得し、ユーザ・シーケンス・プログラムを実行してデータを外部ユニット21、22へ出力する。
 ユーザI/Fレイヤ302は、コントローラOSの一部である。より具体的には、ユーザI/Fレイヤ302は、OSプログラム32(図3A参照)のファイルの一部である。ユーザI/Fレイヤ302は、OS実行パラメータ・デコードおよびユーザ・シーケンス・プログラム・デコード等の機能を含んでいる。OS実行パラメータ・デコード機能は、OS実行パラメータ31(図3A参照)を読んで復号するための機能である。同様に、ユーザ・シーケンス・プログラム・デコード機能は、ユーザ・シーケンス・プログラムを読んで復号するための機能である。
 アプリケーションレイヤ303は、OSプログラム32(図3A参照)のファイルの一部であり、ユーザ・シーケンス・プログラムの実行を担っている。より具体的には、アプリケーションレイヤ303は、ユーザ・シーケンス・プログラム命令実行、及び通信機能を含んでいる。ユーザ・シーケンス・プログラム命令実行は、ユーザI/Fレイヤ302でユーザ・シーケンス・プログラム・デコード機能によって復号された命令を実行するための機能である。通信機能は、コントローラとプログラミングツールとの間の通信を取り扱うための機能である。
 診断レイヤ304もまた、OSプログラム32(図3A参照)のファイルの一部であり、コントローラ自体のチェックおよび診断を担っている。診断レイヤ304は、診断結果マネージメント、システムバス診断、モジュール診断、及びバッテリ診断を含んでいる。診断結果マネージメントは、システムバス診断機能、モジュール診断機能、および、バッテリ診断機能などの異なる診断機能から得られる診断結果を格納する。システムバス診断は、システムバスの状態のチェックを担う機能である。モジュール診断は、コントローラモジュール自体および外部ユニットの状態のチェックを担う機能である。バッテリ診断はバッテリの状態のチェックを担う機能である。
 抽象化レイヤ305は、ファイルアクセス、機器のメモリアクセス、モジュールアクセス、通信データバッファ、および動作マネージメントなどの機能を含んでいる。抽象化レイヤ305も同様に、OSプログラム32(図3A参照)のファイルの一部である。ファイルアクセス機能は、他のソフトウェアレイヤに対して、OS実行パラメータ31(図3A参照)のファイルまたはユーザ・シーケンス・プログラム(ユーザプログラム34)のファイルへのアクセスを制御する(例えば、許容したり、禁止したりする)。機器メモリアクセスは、他のレイヤに対して、機器メモリへのアクセスを制御する(例えば、許容したり、禁止したりする)。機器群は、例えば、プログラムを構成する構成要素(たとえば、接点およびコイル群)を含むと共に、コントローラのCPUにおけるプログラミング用の仮想要素を含む。仮想要素は、コントローラのCPUによって使用されるプログラミング言語の一部を含んでも良い。これら仮想要素は、ある機能を特定するとともに、ユーザプログラムで使用される基本的なビルディングブロックを表わしているものを含んでも良い。たとえば、仮想要素(機器)は、スイッチを示すものを含んでもよい。ユーザは、スイッチに対応する仮想要素を組み込むことにより、自分のプログラム中にスイッチを組み込むことができる。機器メモリは揮発性メモリ内にある。モジュールアクセスは、種々のソフトウェアレイヤに対して、外部ユニットのいくつかに理論的にアクセスすることを制御する(例えば、許容したり、禁止したりする)。通信データバッファは、通信プロトコルの使用を要求することなく、ソフトウェアレイヤに対して接続された機器と通信することを制御する(例えば、許容したり、禁止したりする)。動作マネージメントは、LED、スイッチ、および、バッテリを取り扱う。動作マネージメントは、ソフトウェアレイヤ群に対して、LEDやスイッチ、バッテリへの理論的なアクセスを制御する(例えば、許容したり、禁止したりする)。
 最後のレイヤは、ハードウェアI/F(ハードウェアインターフェイス)レイヤ306である。ハードウェアI/Fレイヤ306も同様にOSプログラム32(図3A参照)のファイルの一部であり、ハードウェア資源とのインターフェイス処理を行うドライバプログラムを含んでいる。ハードウェアI/Fレイヤ306は、シーケンス命令の実行に基づいて異なるモジュールの制御を担うシーケンス命令実行エンジン・ドライバを含んでいる。ハードウェアI/Fレイヤ306は、不揮発性メモリ用のドライバであるフラッシュROMドライバと、システムバス用のドライバであるシステムバス通信ドライバと、通信ポートを担う通信ドライバとをさらに含んでいる。
 次に、バージョンアップ情報53の詳細な説明が図7Aおよび図7Bに関して与えられる。バージョンアップ情報53およびバージョンアップ情報53に特有の構造は、本発明に対してコントローラのソフトウェアをバージョンアップする際の独自の柔軟性を提供する本発明の重要な特徴である。バージョンアップ情報53は、サーバ3(図1参照)に格納され、インターネット4を介してサーバ3からプログラミングツール1へ転送される。どのようなタイプのネットワークでもサーバ3からプログラミングツール1へバージョンアップ情報を転送するため使用できることに注目すべきである。バージョンアップソフトウェア52は、バージョンアップ情報53の内容に基づいてプログラミングツール1によってシーケンサ2にインストールされる。バージョンアップソフトウェア52は、バージョンアップ情報53に基づいて、OSプログラム32(図3A参照)を新しいバージョンのものに完全に置き換えるか、または、OSプログラム32の一部を新しいものに置き換える。
 バージョンアップ情報53は、最上位エントリが「コントローラ型式」であるツリー構造で図7Aおよび図7Bに示されている。コントローラ型式700は、バージョンアップソフトウェア52が対象とするコントローラのモデルを識別する情報である。コントローラに2つ以上のモデルがあるとき、モデル毎に異なるバージョンアップソフトウェア52が準備されることが可能であり、2つ以上のバージョンアップ情報53は同様に各バージョンアップ情報52に対応して準備され得るものである。
 コントローラ型式700が特定されると、OSバージョン701がバージョンアップソフトウェア52に対して特定される。バージョンアップ情報53はさらにハードウェア変更の要否702を含んでおり、ハードウェア変更の要否702は、コントローラが不具合のあるハードウェア設計を含んでいるかどうか、または、ハードウェアの変更が必要であるかどうかを示す。ハードウェア変更の要否702が1(true)である場合、ハードウェアの交換が必要であるというメッセージがコントローラのユーザに対して表示され得る。このメッセージはプログラミングツール1を通じて表示されてもよい。
 次に、バージョンアップ要因703は、メジャーバージョンアップ情報と、マイナーバージョンアップ情報と、不具合情報とを含む。バージョンアップ要因703は、さらに保守の重要度、すなわち、緊急性を特定する情報も含む。バージョンアップソフトウェア52がコントローラの中に未だ存在しない新しい機能を含んでいる場合、メジャーバージョンアップは「1(true)」である。たとえば、新しい機能が、インターネットを介して通信するコントローラのOS(実行環境)に組み込まれることがある。マイナーバージョンアップ情報には、既にコントローラOSの一部である、ある一定の機能が改良されるべきであり、かつ、バージョンアップソフトウェア52は改良点を含んでいることが示されている。たとえば、バージョンアップソフトウェア52には、拡張WDT機能を装備することもできる。マイナーバージョンアップフィールドが「1(true)」である場合、アップグレードの重要度は低いことに注目すべきである。重要性が「低」である場合、ユーザに対して選択肢が提供され、その選択肢を用いてユーザは自分の判断でバージョンアップソフトウェア52をインストールすることを選択してもよい。
 バージョンアップ要因703中の不具合フィールド(不具合情報)は、コントローラの実行環境に不具合が存在するかどうかを示す。より具体体には、不具合フィールドは、OSプログラム32の中に不具合が存在するときに「1(true)」とすることができる。たとえば、不具合フィールドは、WDT機能が働かないか、または、WDT機能がWDTデータ構造403からパラメータを取り出しそこなったときに「1(true)」とすることができる。不具合フィールドが1(true)である場合、アップグレードの重要度は「高」である。重要度が「高」である場合、バージョンアップソフトウェア52が本質的な問題の修正のため準備されているので、バージョンアップソフトウェア52が直ちに/強制的にコントローラ(シーケンサ2)にインストールされ得る。しかしながら、コントローラ(シーケンサ2)のユーザは、不具合を含む機能を使用していないことがあり、その場合、ユーザに対して選択肢が提供され、その選択肢を用いてユーザは、コントローラOSへのアップグレードの適用をスキップすることを選択してもよい。
 さらに、OSバージョンアップ箇所704は、バージョンアップが影響を及ぼすOSレイヤを指定することができる。たとえば、バージョンアップソフトウェア52は、診断レイヤのみ、または、OSプログラム32の診断レイヤおよび抽象化レイヤの両方に影響を及ぼすこともある。
 バージョンアップ情報705は、バージョンアップソフトウェア52に影響を受けるOSプログラム32の部分を特定する情報である。このエントリには従属エントリが存在している。たとえば、第1の従属エントリは、バージョンアップ機能一覧705-1であり得る。バージョンアップ機能一覧705-1はOSプログラム32に含まれている機能を特定する。たとえば、WDT機能が影響を受ける場合、バージョンアップ機能一覧705-1は、機能1の次のバージョンアップエントリに「1(true)」を指定する。同様に、バージョンアップソフトウェア52が、初期実行監視、低速実行監視などの他のOS機能に影響を与える場合、バージョンアップエントリはこれらの機能毎に特定され得る。バージョンアップ情報705は、別の従属エントリとして、バージョンアップ命令リスト705-2をさらに含むこともできる。バージョンアップ命令リスト705-2は、バージョンアップがLD、MOVなど、異なる命令に適用されているかどうかを特定する。
 図7Bはバージョンアップソフトウェア52を図式的に示している。バージョンアップソフトウェア52は、コントローラの実行環境(OS)へのバージョンアップとして適用されるバイナリデータを含んでいる。例示的な実装によれば、図3Bで説明されたソフトウェアレイヤのいずれかがバージョンアップされるべき場合、バージョンアップソフトウェア52は、そのレイヤの特定の機能に対するバイナリデータを含んでいる。したがって、レイヤの1つがバージョンアップされる必要がない場合、OSデータ706はそのレイヤをバージョンアップするためのバイナリデータを含まない。さらに、バージョンアップソフトウェア52は、OSデータ706用のチェックサム707を含んでいてもよい。
 次に、図2に示す手順の詳細について、図8A及び図8Bを用いて説明される。ステップS801で、ユーザは、対象コントローラに関する保守を実行するため、プログラミングツールを対象コントローラに接続する。ステップS802-1では、プログラミングツールは、対象コントローラからコントローラ型式の情報を読み出す。ステップS802-2では、プログラミングツールは、対象コントローラからOSバージョン情報を読み出す。S803-1では、プログラミングツールは、対象コントローラをインターネットに接続する。S803-2では、プログラミングツールは、サーバからバージョンアップ情報を読み出すためサーバ3にアクセスする。サーバは2台以上のコントローラのためのバージョンアップ情報を格納していてもよい。したがって、ステップS804では、プログラミングツールは、対象コントローラに対応するバージョンアップ情報が存在するかどうかを判定する。存在しない場合、手順を終了させるか、もしくは、ユーザが次のコントローラに関する保守を実行することに決めることができる。図8Aでは、手順を終了させる場合を例示している。上記の各ステップはプログラミングツール1中の論理ユニット群によって実行できることに注目すべきである。すなわち、プログラミングツールは、サーバからデータを読み出す第1の論理ユニットと、OSバージョン型式を読み出す第2の論理ユニットとを有することができるのである。
 ステップS804では、プログラミングツールは、対象コントローラに対応するバージョンアップ情報がサーバから読み出されたバージョンアップ情報の中に存在すると判定された場合、手順をステップS806-1へ進める。ステップS806-1では、OSバージョンアップ情報(例えば、図7Aに示すようなバージョンアップ情報53)が対応する対象コントローラ用に読み出される。プログラミングツールは、対象コントローラに対応するバージョンアップ情報53を見つけ出すべくバージョンアップ情報を解析しなければならない場合もある。
 ステップS806-1でバージョンアップ情報が決定される、すなわち対象コントローラに対応するバージョンアップ情報53を見つけ出されると、ステップS806-2では、プログラミングツールは、バージョンアップ情報53におけるハードウェア変更の要否702を確認する。ステップS807では、プログラミングツールは、ハードウェア変更の要否702がバージョンアップ情報53中で「1(true)」であるかどうかをチェックする。プログラミングツールは、「1(true)」である場合(ステップS807で「Yes」の場合)、手順をステップS808へ進める。ステップS808では、プログラミングツールは、管理者に、PLCに対してハードウェアの交換が必要であることを通知する。たとえば、プログラミングツールは、コントローラを交換する必要があることを通知する。プログラミングツールは、ステップS807で「0(false)」である場合(ステップS807で「No」の場合)、手順をS809ー1へ進める。ステップS809ー1では、プログラミングツールは、バージョンアップ情報53におけるOSバージョンアップ箇所704を確認する。ステップS809-2では、プログラミングツールは、このバージョンアップによって訂正されるべき不具合があるかどうかを判定する。これは、バージョンアップ情報53中のバージョンアップ要因703の下で「不具合」情報が「1(true)」であるかどうかをチェックすることにより判定される。プログラミングツールは、不具合情報が「1(true)」である場合(ステップS809-2で「Yes」の場合)、「アップグレード」の重要度は高であるので、手順をステップS810-1へ進める。プログラミングツールは、不具合情報が「0(false)」である場合(ステップS809-2で「No」の場合)、手順を終了させる。
 ステップS810-1では、プログラミングツールは、バージョンアップ情報53におけるOSバージョンアップ箇所704を確認する。ステップS810-2では、プログラミングツールは、バージョンアップがコントローラのOSプログラム32の基本部分に影響を与えるかどうかをチェックする。すなわち、プログラミングツールは、OSバージョンアップ箇所704の下で診断レイヤ、抽象化レイヤ、ハードウェアI/Fレイヤのいずれか1つが「1(true)」である場合、そのバージョンアップがコントローラのOSプログラム32の基本部分に影響を与えると判定する。プログラミングツールは、バージョンアップがコントローラのOSプログラム32の基本部分に影響を与えると判定した場合(ステップS810-2で「Yes」の場合)、手順をステップS814ー1へそのまま進める。ステップ814ー1では、プログラミングツールは、インターネット経由でサポートサイトにアクセスし、サポートサイトからOSデータを読み出す。ステップS814ー2では、プログラミングツールは、バージョンアップソフトウェア52を用いて、コントローラのOSプログラム32の基本部分の中の様々なレイヤの対応する部分を差し替える。たとえば、抽象化レイヤ305に不具合がある場合、プログラミングツールは、バージョンアップソフトウェア52を用いて、OSプログラム32の中の抽象化レイヤ305を差し替える。
 一方、プログラミングツールは、バージョンアップがコントローラのOSプログラム32の基本部分に影響を与えないと判定した場合(ステップS810で「No」の場合)、手順をステップS811-1へ進める。ステップS811-1では、プログラミングツールは、対象コントローラからOS実行パラメータ31およびOSプログラム32を読み出す。ステップS812ー1及びステップS812ー2では、プログラミングツールは、バージョンアップ情報53を参照することにより、OS実行パラメータおよびOSプログラムの中でバージョンアッププログラム52による影響を受ける部分を判定する。たとえば、ステップS812-1では、プログラミングツールは、OS実行パラメータ31を読み出すことにより、ユーザが使用しているOS機能を特定する。たとえば、データ構造403(図4Bを参照)のビット中で1つが設定される場合、これは、WDT機能がWDTセッティングを使用していることを示唆していると言える。さらに、ユーザによって使用されずにバージョンアップソフトウェア52による影響を受ける機能が存在する可能性がある。そこで、ステップS812-2では、プログラミングツールは、バージョンアップ情報53におけるバージョンアップ機能一覧705-1を確認する。バージョンアップ機能一覧705-1は、バージョンアップソフトウェア52による影響を受けている機能のリストを提供する。
 なお、ユーザによって使用される機能に基づいて、プログラミングツールは、これらの機能をバージョンアップすべきかどうかについての選択肢をユーザに提供してもよい。
 さらに、バージョンアップ機能一覧とユーザによって使用される機能との間に重複がない場合、OSプログラム32に対してバージョンアップが適用されなくてもよい可能性がある。これは、バージョンアップ機能一覧中に特定されたいくつかの機能に不具合があるが、これらの機能がユーザによって使用されていないときに起こり得る。したがって、OSプログラム32中のこれらの機能に対してはバージョンアップを行わなくてもよい可能性もある。そこで、ステップS810-3では、プログラミングツールは、バージョンアップの二次的な必要性を確認するために、次のチェックを行う。プログラミングツールは、バージョンアップ機能一覧とユーザによって使用される機能との間に重複があるかどうか、すなわち不具合対応のOSデータがユーザにより使用される機能を対象としているか否かをチェックする。プログラミングツールは、不具合対応のOSデータがユーザにより使用される機能を対象としている場合(ステップS810-3で「Yes」の場合)、手順をステップS814-1へ進め、不具合対応のOSデータがユーザにより使用される機能を対象としていない場合(ステップS810-3で「No」の場合)、手順をステップS811-2へ進める。
 なお、ステップS812-2でユーザに選択肢を提供したときは、ユーザがバージョンアップすべきとの選択肢を選択した場合がステップS810-3で「Yes」の場合に対応し、ユーザがバージョンアップすべきでないとの選択肢を選択した場合がステップS810-3で「No」の場合に対応する。
 さらに、プログラミングツールは、ラダープログラムまたはアプリケーションプログラムの中でユーザによって使用されている命令/オペレータを抽出することも可能である。プログラミングツールは、抽出された命令をバージョンアップ命令リスト705-2中の命令と比較し、それに応じてラダープログラムに対してバージョンアップを適用することができる。そこで、ステップS811-2では、プログラミングツールは、対象コントローラからOS実行パラメータ31およびOSプログラム32を読み出す。ステップS812ー3及びステップS812ー4では、プログラミングツールは、バージョンアップ情報53を参照することにより、OS実行パラメータおよびOSプログラムの中でバージョンアッププログラム52による影響を受ける部分を判定する。たとえば、ステップS812-3では、プログラミングツールは、OS実行パラメータ31を読み出すことにより、ユーザが使用している命令を特定する。さらに、ユーザによって使用されずにバージョンアップソフトウェア52による影響を受ける命令が存在する可能性がある。そこで、ステップS812-4では、プログラミングツールは、バージョンアップ情報53におけるバージョンアップ命令一覧705-2を確認する。バージョンアップ命令一覧705-2は、バージョンアップソフトウェア52による影響を受けている命令のリストを提供する。
 なお、ユーザによって使用される命令に基づいて、プログラミングツールは、これらの命令をバージョンアップすべきかどうかについての選択肢をユーザに提供してもよい。
 さらに、バージョンアップ命令一覧とユーザによって使用される機能との間に重複がない場合、OSプログラム32に対してバージョンアップが適用されなくてもよい可能性がある。これは、バージョンアップ命令一覧中に特定されたいくつかの命令に不具合があるが、これらの命令がユーザによって使用されていないときに起こり得る。したがって、OSプログラム32中のこれらの命令に対してはバージョンアップを行わなくてもよい可能性もある。そこで、ステップS810-4では、プログラミングツールは、バージョンアップの三次的な必要性を確認するために、次のチェックを行う。プログラミングツールは、バージョンアップ命令一覧とユーザによって使用される命令との間に重複があるかどうか、すなわち不具合対応のOSデータがユーザにより使用される命令を対象としているか否かをチェックする。プログラミングツールは、不具合対応のOSデータがユーザにより使用される機能を対象としている場合(ステップS810-4で「Yes」の場合)、手順をステップS814-1へ進め、不具合対応のOSデータがユーザにより使用される機能を対象としていない場合(ステップS810-4で「No」の場合)、手順を終了させる。
 なお、ステップS812-4でユーザに選択肢を提供したときは、ユーザがバージョンアップすべきとの選択肢を選択した場合がステップS810-4で「Yes」の場合に対応し、ユーザがバージョンアップすべきでないとの選択肢を選択した場合がステップS810-4で「No」の場合に対応する。
 上記のような手順によって、ユーザは、コントローラ・オペレーティング・システムのバージョンアップの手順に対してよりよい制御を供与され得るのであり、もしユーザがバージョンアップによる影響を受けるであろう、ある機能やプログラム群を使用していない場合、コントローラに対してバージョンアップは適用されないような制御を実現できる。
 次に、プログラミングツールの内部構造が図9を参照してより詳細に説明される。プログラミングツール1は、コントローラのコントローラ型式およびコントローラのオペレーティングシステムのバージョン情報を読み出すコントローラ型式判定ユニット901と、コントローラ型式およびバージョン情報に対応するバージョンアップ情報を読み出すバージョンアップ情報判定ユニット902と、バージョンアップ情報に基づいてオペレーティングシステム中でバージョンアップされるべき部分を判定するバージョンアップエリア判定ユニット903と、オペレーティングシステム中の判定された部分をバージョンアップするバージョンアップユニット904とを含む。
 バージョンアップ情報は、オペレーティングシステムの中でバージョンアップすべき部分を特定するための情報を含む。先に述べたように、バージョンアップ情報は、バージョンアップ機能一覧を特定する情報を含む。バージョンアップ機能一覧は、オペレーティングシステムに含まれる、バージョンアップされるべき機能に関する情報を含む。バージョンアップエリア判定ユニット903は、オペレーティングシステム実行パラメータを読み出すことにより、オペレーティングシステムに含まれる機能がコントローラのユーザによって使用されているかどうかを判定することができる。バージョンアップユニット904は、オペレーティングシステムの機能の中でユーザによって使用されている機能だけにバージョンアップを適用することができる。
 さらに、プログラミングツールは、バージョンアップ機能一覧から一つの機能をバージョンアップするかどうかを選択するための選択肢をユーザに提供することができる。バージョンアップユニット904は、それらの選択肢を用いてユーザによって選択された機能だけをバージョンアップする。
 バージョンアップエリア判定ユニット903は、ユーザ・アプリケーション・プログラムがバージョンアップ情報53で特定された複数の命令から一つの命令を使用しているかどうかをさらに判定することができ、バージョンアップユニット904は、ユーザ・アプリケーション・プログラムが複数の命令の中の少なくとも1個を使用していると判定された場合、このユーザ・アプリケーション・プログラムをバージョンアップすることができる。
 フローチャートやブロック図の各ブロック、及びフローチャートやブロック図内のブロック群の組み合わせは、コンピュータプログラム命令群によって実施できることが理解されよう。これらのコンピュータプログラム命令は、汎用コンピュータ、専用コンピュータ、または、他のプログラマブル・データ処理装置等のプロセッサに供給され、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行する命令群がフローチャートやブロック図のブロックまたは複数のブロックで特定された機能/動作を実行する手段を生成するようにできる。さらに、図9におけるブロック群の各々は、FPGA、ASICなどのプロセッサによって実装可能である。
 これらのコンピュータプログラム命令群は、コンピュータ、あるいは他のプログラマブル・データ処理装置、または他の機器群に対してもそれらが特定の方法で機能するように指示できるコンピュータ読み取り可能な媒体、またはより具体的には、コンピュータ読み取り可能な記憶媒体に格納され、それによってコンピュータで読み取り可能な媒体に格納された命令群がフローチャートやブロック図のブロックまたはブロック群で特定される機能/動作を実施する命令群を含む物を製造できるようにすることが可能である。
 以上の実施形態群は、単なる例示であり、本発明を制限するように解釈されるべきでない。本教示は、他のタイプの装置に容易に適用可能である。同様に、本発明の実施形態の説明は、請求項の範囲を制限することなく、例示的であることが意図され、多数の代替、変更および変形が可能であることは当業者にとって明白であろう。
  1 プログラミングツール
  2 シーケンサ
  3 サーバ
  4 インターネット
 52 バージョンアップソフトウェア
 53 バージョンアップ情報

Claims (21)

  1.  プログラマブル・ロジック・コントローラの実行環境をバージョンアップする方法であって、
     前記コントローラのコントローラ型式および前記コントローラのオペレーティングシステムのバージョン情報を読み出すステップと、
     前記コントローラ型式および前記バージョン情報に対応するバージョンアップ情報を読み出すステップと、
     前記バージョンアップ情報に基づいて前記実行環境の中でバージョンアップされるべき部分を判定するステップと、
     前記実行環境の中で前記判定された部分をバージョンアップするステップと、
     を備えることを特徴とする方法。
  2.  前記バージョンアップ情報は、前記実行環境の中でバージョンアップされるべき部分を特定する情報を含む、
     ことを特徴とする請求項1に記載の方法。
  3.  前記バージョンアップ情報は、バージョンアップ機能一覧を特定する情報を含み、
     前記バージョンアップ機能一覧は、前記実行環境に含まれる機能の中でバージョンアップされるべき機能に関する情報を含む、
     ことを特徴とする請求項1に記載の方法。
  4.  前記コントローラのオペレーティングシステムの実行パラメータを読み出すことにより、前記実行環境に含まれる前記機能が前記コントローラのユーザによって使用されているかどうかを判定するステップと、
     前記実行環境中、前記ユーザによって使用されている実行環境の機能だけにバージョンアップを適用するステップと、
     をさらに備える、
     ことを特徴とする請求項3に記載の方法。
  5.  前記バージョンアップ機能一覧の中の機能をバージョンアップするかどうかを選択するための選択肢を前記ユーザに提供するステップと、
     前記選択肢を用いて前記ユーザによって選択された機能だけをバージョンアップするステップと、
     をさらに備える、
     ことを特徴とする請求項3に記載の方法。
  6.  前記バージョンアップ情報は、バージョンアップされるべき複数の命令を特定する情報を含む、
     ことを特徴とする請求項1に記載の方法。
  7.  ユーザ・アプリケーション・プログラムが前記複数の命令中の一つの命令を使用しているかどうかを判定するステップと、
     前記ユーザ・アプリケーション・プログラムが前記複数の命令の中の少なくとも1つを使用していると判定された場合に前記ユーザ・アプリケーション・プログラムをバージョンアップするステップと、
     をさらに備える、
     ことを特徴とする請求項6に記載の方法。
  8.  プログラマブル・ロジック・コントローラのソフトウェア保守を実行するシステムであって、
     プログラミングツールと、
     コントローラと、
     を備え、
     前記プログラミングツールは、前記コントローラの実行環境をバージョンアップするように操作可能であり、
     前記プログラミングツールは、
     前記コントローラのコントローラ型式および前記コントローラのオペレーティングシステムのバージョン情報を読み出すコントローラ型式判定ユニットと、
     前記コントローラ型式および前記バージョン情報に対応するバージョンアップ情報を読み出すバージョンアップ情報判定ユニットと、
     前記バージョンアップ情報に基づいて前記実行環境の中でバージョンアップされるべき部分を判定するバージョンアップエリア判定ユニットと、
     前記実行環境の中の前記判定された部分をバージョンアップするバージョンアップユニットと、
     を含む、
     ことを特徴とするシステム。
  9.  前記バージョンアップ情報は、前記実行環境の中でバージョンアップされるべき部分を特定する情報を含む、
     ことを特徴とする請求項8に記載のシステム。
  10.  前記バージョンアップ情報は、バージョンアップ機能一覧を特定する情報を含み、
     前記バージョンアップ機能一覧は、前記実行環境に含まれる機能の中でバージョンアップされるべき機能に関する情報を含む、
     ことを特徴とする請求項8に記載のシステム。
  11.  前記バージョンアップエリア判定ユニットは、前記コントローラのオペレーティングシステムの実行パラメータを読み出すことにより、前記実行環境に含まれる前記機能が前記コントローラのユーザによって使用されているかどうかを判定し、
     前記バージョンアップユニットは、前記実行環境の中で、前記ユーザによって使用されている実行環境の機能だけにバージョンアップを適用する、
     ことを特徴とする請求項10に記載のシステム。
  12.  前記システムでは、前記バージョンアップ機能一覧の中の機能をバージョンアップするかどうかを選択するための選択肢が前記ユーザに提供され、
     前記バージョンアップユニットは、前記ユーザによって選択された機能だけをバージョンアップする、
     ことを特徴とする請求項10に記載のシステム。
  13.  前記バージョンアップ情報は、バージョンアップされるべき複数の命令を特定する情報を含む、
     ことを特徴とする請求項8に記載のシステム。
  14.  前記バージョンアップエリア判定ユニットは、ユーザ・アプリケーション・プログラムが前記複数の命令中の一つの命令を使用しているかどうかを判定し、
     前記バージョンアップユニットは、前記ユーザ・アプリケーション・プログラムが前記複数の命令の中の少なくとも1つを使用していると判定された場合に、前記ユーザ・アプリケーション・プログラムをバージョンアップする、
     ことを特徴とする請求項13に記載のシステム。
  15.  コンピュータに、プログラマブル・ロジック・コントローラの実行環境をバージョンアップする方法を実行させるためのプログラムであって、
     前記コンピュータに、
     前記コントローラのコントローラ型式およびオペレーティングシステムのバージョン情報を読み出すステップと、
     前記コントローラ型式および前記バージョン情報に対応するバージョンアップ情報を読み出すステップと、
     前記バージョンアップ情報に基づいて前記実行環境の中でバージョンアップされるべき部分を判定するステップと、
     前記実行環境の中で前記判定された部分をバージョンアップするステップと、
     を実行させることを特徴とするプログラム。
  16.  前記バージョンアップ情報は、前記実行環境の中でバージョンアップされるべき部分を特定する情報を含む、
     ことを特徴とする請求項15に記載のプログラム。
  17.  前記バージョンアップ情報は、バージョンアップ機能一覧を特定する情報を含み、
     前記バージョンアップ機能一覧は、前記実行環境に含まれる機能の中でバージョンアップされるべき機能に関する情報を含む、
     ことを特徴とする請求項15に記載のプログラム。
  18.  前記コンピュータに、
     前記コントローラのオペレーティングシステムの実行パラメータを読み出すことにより、前記実行環境に含まれる前記機能が前記コントローラのユーザによって使用されているかどうかを判定するステップと、
     前記実行環境の中で前記ユーザによって使用されている実行環境の機能だけにバージョンアップを適用するステップと、
     をさらに実行させる、
     ことを特徴とする請求項17に記載のプログラム。
  19.  前記コンピュータに、
     前記バージョンアップ機能一覧の中の機能をバージョンアップするかどうかを選択する余地を前記ユーザに提供するステップと、
     前記ユーザによって選択された機能だけをバージョンアップするステップと、
     をさらに実行させる、
     ことを特徴とする請求項17に記載のプログラム。
  20.  前記バージョンアップ情報は、バージョンアップされるべき複数の命令を特定する情報を含む、
     ことを特徴とする請求項15に記載のプログラム。
  21.  前記コンピュータに、
     ユーザ・アプリケーション・プログラムが前記複数の命令中の一つの命令を使用しているかどうかを判定するステップと、
     前記ユーザ・アプリケーション・プログラムが前記複数の命令の中の少なくとも1つを使用していると判定された場合に前記ユーザ・アプリケーション・プログラムをバージョンアップするステップと、
     をさらに実行させる、
     ことを特徴とする請求項20に記載のプログラム。
PCT/JP2011/065522 2010-09-29 2011-07-06 プログラマブル・ロジック・コントローラの実行環境をバージョンアップする方法、システム、およびプログラム WO2012043008A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2011542619A JP4987169B2 (ja) 2010-09-29 2011-07-06 プログラマブル・ロジック・コントローラの実行環境をバージョンアップする方法、システム、およびプログラム
CN201180046999.8A CN103124938B (zh) 2010-09-29 2011-07-06 对可编程逻辑控制器的执行环境进行升级的方法及系统
KR1020137010198A KR101493628B1 (ko) 2010-09-29 2011-07-06 프로그래머블·로직·컨트롤러의 실행 환경을 버전 업 하는 방법, 시스템 및 프로그램이 기록된 컴퓨터 판독가능 매체
DE112011103308.7T DE112011103308B4 (de) 2010-09-29 2011-07-06 Verfahren, System und Programm

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/893,914 2010-09-29
US12/893,914 US8806470B2 (en) 2010-09-29 2010-09-29 System, method, and apparatus for software maintenance of sensor and control systems

Publications (1)

Publication Number Publication Date
WO2012043008A1 true WO2012043008A1 (ja) 2012-04-05

Family

ID=45872020

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/065522 WO2012043008A1 (ja) 2010-09-29 2011-07-06 プログラマブル・ロジック・コントローラの実行環境をバージョンアップする方法、システム、およびプログラム

Country Status (6)

Country Link
US (1) US8806470B2 (ja)
JP (1) JP4987169B2 (ja)
KR (1) KR101493628B1 (ja)
CN (1) CN103124938B (ja)
DE (1) DE112011103308B4 (ja)
WO (1) WO2012043008A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016190377A1 (ja) * 2015-05-26 2016-12-01 京セラ株式会社 ソフトウェア更新装置、ソフトウェア更新システムおよびソフトウェア更新方法
JP2018055211A (ja) * 2016-09-27 2018-04-05 ブラザー工業株式会社 数値制御装置

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9229771B2 (en) * 2012-03-08 2016-01-05 Microsoft Technology Licensing, Llc Cloud bursting and management of cloud-bursted applications
EP2711797A1 (en) * 2012-09-21 2014-03-26 ABB Research Ltd. Operating a programmable logic controller
US9444896B2 (en) 2012-12-05 2016-09-13 Microsoft Technology Licensing, Llc Application migration between clouds
CN104216725B (zh) * 2013-06-04 2019-04-19 Sap欧洲公司 用于软件解决方案托管的存储库层策略调整
KR101707266B1 (ko) * 2013-08-29 2017-02-15 엘에스산전 주식회사 Plc에서의 os의 업데이트 장치 및 방법
JP5937637B2 (ja) * 2014-04-30 2016-06-22 ファナック株式会社 シーケンスプログラムの切り替え時に、切り替え予告信号を出力する制御装置
CN104035799A (zh) * 2014-06-19 2014-09-10 浪潮电子信息产业股份有限公司 一种软件可定制升级的方法
CN106293851A (zh) * 2016-08-19 2017-01-04 联想(北京)有限公司 一种固件升级方法及设备
CN111133412A (zh) 2017-07-25 2020-05-08 奥罗拉实验室有限公司 基于工具链构建车辆ecu软件的软件增量更新和异常检测
EP3462262A1 (de) * 2017-09-29 2019-04-03 Siemens Aktiengesellschaft Automatisiertes zuordnen von messdaten zur cloudbasierten überwachung mechanischer assets
EP3742240A1 (de) * 2019-05-22 2020-11-25 Siemens Aktiengesellschaft Verfahren und engineering-system zur änderung eines programms einer industriellen automatisierungskomponente
CN115421820B (zh) * 2022-11-03 2023-02-21 深圳市江元智造科技有限公司 一种基于安卓应用的自动清理方法、系统和可读存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10185189A (ja) * 1996-12-26 1998-07-14 Tokyo Gas Co Ltd 燃焼機器修理支援装置
JP2002222005A (ja) * 2001-01-24 2002-08-09 Yaskawa Electric Corp 数値制御装置システム
JP2002297388A (ja) * 2001-03-29 2002-10-11 Yaskawa Electric Corp システムパートプログラムのダウンロード方法、それに用いるシステムメモリおよびシステムパートプログラム
JP2003015879A (ja) * 2001-06-29 2003-01-17 Sharp Corp ファーム格納方法
JP2003022233A (ja) * 2001-07-06 2003-01-24 Toshiba Corp 入出力モジュール装置、制御装置及びプログラミング装置
JP2003216430A (ja) * 2002-01-18 2003-07-31 Nec Corp ソフトウェア自動更新システムおよび端末
JP2005038063A (ja) * 2003-07-16 2005-02-10 Omron Corp プログラマブルコントローラシステムおよびサポートツールならびにプログラマブルコントローラ用ユニットおよび接続保証方法
JP2006227871A (ja) * 2005-02-17 2006-08-31 Fujitsu Ten Ltd アップデートシステム、情報処理装置、情報配信装置、及びアップデート方法
JP2009282934A (ja) * 2008-05-26 2009-12-03 Mitsubishi Electric Corp プログラマブルコントローラシステム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5805898A (en) * 1995-02-24 1998-09-08 International Business Machines Corporation Method and apparatus for estimating installation time in a data processing system
JP3635903B2 (ja) 1997-12-15 2005-04-06 三菱電機株式会社 プログラマブルコントローラ
US6360363B1 (en) * 1997-12-31 2002-03-19 Eternal Systems, Inc. Live upgrade process for object-oriented programs
US7080371B1 (en) * 1998-03-03 2006-07-18 Siebel Systems, Inc. Method, system, apparatus and program product for distribution and instantiation of software upgrades
US6711738B1 (en) * 2000-11-27 2004-03-23 Siemens Aktiengesellschaft Method for replacing technologically aging sub-systems in a system
US6763517B2 (en) * 2001-02-12 2004-07-13 Sun Microsystems, Inc. Automated analysis of kernel and user core files including searching, ranking, and recommending patch files
US7093244B2 (en) * 2001-04-18 2006-08-15 Domosys Corporation Method of remotely upgrading firmware in field-deployed devices
US7051327B1 (en) * 2001-05-08 2006-05-23 Gateway Inc. System for providing data backup and restore with updated version by creating data package based upon configuration data application data and user response to suggestion
DE10161321A1 (de) * 2001-12-13 2003-06-26 Siemens Ag Verfahren zur Aktualisierung von elektronisch modifizierbaren Komponenten eines Automatisierungsgerätes
US20040031029A1 (en) * 2002-08-06 2004-02-12 Kyu-Woong Lee Methods and systems for automatically updating software components in a network
JP4085930B2 (ja) * 2002-11-08 2008-05-14 コニカミノルタホールディングス株式会社 画像処理装置
US7454745B2 (en) * 2003-07-31 2008-11-18 International Business Machines Corporation Automated semantic-based updates to modified code base
US20060080656A1 (en) * 2004-10-12 2006-04-13 Microsoft Corporation Methods and instructions for patch management
US20060106920A1 (en) * 2004-11-15 2006-05-18 Microsoft Corporation Method and apparatus for dynamically activating/deactivating an operating system
US20070016432A1 (en) * 2005-07-15 2007-01-18 Piggott Bryan N Performance and cost analysis system and method
US8392602B2 (en) 2005-09-30 2013-03-05 Rockwell Automation Technologies, Inc. Embedding controllers and devices with data to facilitate up-to-date control and configuration information

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10185189A (ja) * 1996-12-26 1998-07-14 Tokyo Gas Co Ltd 燃焼機器修理支援装置
JP2002222005A (ja) * 2001-01-24 2002-08-09 Yaskawa Electric Corp 数値制御装置システム
JP2002297388A (ja) * 2001-03-29 2002-10-11 Yaskawa Electric Corp システムパートプログラムのダウンロード方法、それに用いるシステムメモリおよびシステムパートプログラム
JP2003015879A (ja) * 2001-06-29 2003-01-17 Sharp Corp ファーム格納方法
JP2003022233A (ja) * 2001-07-06 2003-01-24 Toshiba Corp 入出力モジュール装置、制御装置及びプログラミング装置
JP2003216430A (ja) * 2002-01-18 2003-07-31 Nec Corp ソフトウェア自動更新システムおよび端末
JP2005038063A (ja) * 2003-07-16 2005-02-10 Omron Corp プログラマブルコントローラシステムおよびサポートツールならびにプログラマブルコントローラ用ユニットおよび接続保証方法
JP2006227871A (ja) * 2005-02-17 2006-08-31 Fujitsu Ten Ltd アップデートシステム、情報処理装置、情報配信装置、及びアップデート方法
JP2009282934A (ja) * 2008-05-26 2009-12-03 Mitsubishi Electric Corp プログラマブルコントローラシステム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016190377A1 (ja) * 2015-05-26 2016-12-01 京セラ株式会社 ソフトウェア更新装置、ソフトウェア更新システムおよびソフトウェア更新方法
JP2016218932A (ja) * 2015-05-26 2016-12-22 京セラ株式会社 ソフトウェア更新装置およびソフトウェア更新システム
JP2018055211A (ja) * 2016-09-27 2018-04-05 ブラザー工業株式会社 数値制御装置

Also Published As

Publication number Publication date
DE112011103308T5 (de) 2013-08-29
US20120079470A1 (en) 2012-03-29
JP4987169B2 (ja) 2012-07-25
DE112011103308B4 (de) 2018-02-01
US8806470B2 (en) 2014-08-12
CN103124938B (zh) 2015-05-13
JPWO2012043008A1 (ja) 2014-02-06
KR101493628B1 (ko) 2015-02-23
KR20130095763A (ko) 2013-08-28
CN103124938A (zh) 2013-05-29

Similar Documents

Publication Publication Date Title
JP4987169B2 (ja) プログラマブル・ロジック・コントローラの実行環境をバージョンアップする方法、システム、およびプログラム
US8644959B2 (en) System and method for functionalization in line with demand, for control and regulatory devices
US8966028B2 (en) Virtual placeholder configuration for distributed input/output modules
CN101960417B (zh) 网络上现场设备的配置
JP2009099150A6 (ja) プログラムの自動修正方法及び自動化システム
JP2009099150A (ja) プログラムの自動修正方法及び自動化システム
EP2761811B1 (en) Tool and method for dynamic configuration and implementation of device firmware utilizing defined components
US20110271269A1 (en) Hardware Virtualization System
JP6776436B2 (ja) 制御装置
JP4916170B2 (ja) プログラマブル表示器、サーバおよびそれらのプログラム
JP2017515418A (ja) 独立した基礎ネットワークにマップされた論理モデルを提供するゲートウェイ
CN109643231A (zh) 非冗余输入/输出(i/o)固件的过程中迁移
KR102560634B1 (ko) Pc 프로그램을 사용하여 plc를 제어하는 방법
US8832670B2 (en) Programmable controller and programming tool for communication with legacy equipment
EP1966660A1 (en) Processing unit and method for configuring a networked automation system
JP5119204B2 (ja) プログラマブルコントローラ、データ書き込み方法、及び受信モジュール
JP7281275B2 (ja) モジュール及びこれを備える情報処理装置、並びにモジュールのプログラムデータを更新するプログラムデータ更新方法
KR101354698B1 (ko) 차량용 전자 제어 장치의 동작 방법
JP2006502463A (ja) 自動化装置の電子的に変更可能な構成要素の更新方法
JP6099106B2 (ja) 少なくとも一つのデータキャリアを提供するための方法、コンピュータシステム、および、メモリデバイス
US20140172130A1 (en) Modular System And Associated Method
US20170124145A1 (en) Device type manager
US20220011735A1 (en) Support apparatus, non-transitory computer readable medium, and control apparatus
WO2012034816A1 (en) A low or medium voltage electric power distribution network

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201180046999.8

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 2011542619

Country of ref document: JP

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

Ref document number: 11828569

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 112011103308

Country of ref document: DE

Ref document number: 1120111033087

Country of ref document: DE

ENP Entry into the national phase

Ref document number: 20137010198

Country of ref document: KR

Kind code of ref document: A

122 Ep: pct application non-entry in european phase

Ref document number: 11828569

Country of ref document: EP

Kind code of ref document: A1