WO2019230262A1 - サポート装置、制御システム、および開発支援プログラム - Google Patents
サポート装置、制御システム、および開発支援プログラム Download PDFInfo
- Publication number
- WO2019230262A1 WO2019230262A1 PCT/JP2019/017153 JP2019017153W WO2019230262A1 WO 2019230262 A1 WO2019230262 A1 WO 2019230262A1 JP 2019017153 W JP2019017153 W JP 2019017153W WO 2019230262 A1 WO2019230262 A1 WO 2019230262A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- program
- management server
- control
- control program
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Definitions
- the present invention relates to a support device that supports development of a control program executed by a control device that controls a control target, a development support system including the support device, and a development support program.
- Control devices such as PLC (Programmable Logic Controller) have been introduced in various manufacturing sites.
- a control device is a kind of computer, and a control program designed according to a manufacturing device, manufacturing equipment, or the like is executed.
- Such a control program is created using a support device prepared separately from the control device.
- Patent Document 1 discloses a technique for reducing the burden on a user who creates a program described in a graphical programming language and a program described in a high-level programming language. .
- An object of the present invention is to provide a support device, a control system, and a development support program that can provide a development environment capable of managing a version of a control program.
- a support device that supports development of a control program executed by a control device that controls a control target.
- the support device includes a creation unit for creating or editing the control program, a generation unit that generates an executable program executable by the control device from the creation program obtained by the creation unit, and the control program for each version.
- the management server to be managed includes an output unit that outputs the control program created or edited by the creation unit to the management server in order to save the control program created or edited by the creation unit as a version of the control program.
- the output unit outputs the control program created or edited by the creation unit to the management server on the condition that an output condition including at least that the execution format program has been successfully generated is satisfied.
- the support device further includes a notification unit that notifies that the output condition is not satisfied.
- the user can recognize that there is a defect in the created program created or edited. As a result, it is possible to prevent in advance that program development is progressed using a defective control program and that a defective control program is introduced into the control device.
- the output condition includes that the executable program has been transferred to the control device.
- the control device executes the control program executed in the control device and the control of each version managed by the management server. It further includes a comparison unit that compares the program and outputs a comparison result.
- the management server is provided separately from the support device. According to this disclosure, the processing burden on the support device can be reduced.
- the creation unit may create or edit the control program regardless of whether it is connected to the management server.
- the output unit outputs the control program created or edited when not connected to the management server to the management server on the condition that the output condition is satisfied in response to the start of the connection with the management server. To do.
- a control system for supporting development of a control program executed by a control device that controls a control target.
- the control system includes a creation unit for creating or editing a control program, a generation unit for generating an executable program that can be executed by the control device from the creation program obtained by the creation unit, and a control program for each version.
- a management server to be managed; and an output unit that outputs the control program created or edited by the creation unit to the management server in order to save the control program created or edited by the creation unit as a version of the control program.
- the output unit outputs the control program created or edited by the creation unit to the management server on the condition that an output condition including at least that the execution format program has been successfully generated is satisfied.
- control system includes a control device having a management unit that manages the control program for each version, a control program for each version managed by the management unit, and a control for each version managed by the management server. It further includes a comparison unit that compares the program and outputs a comparison result.
- the version of the control program is managed by both the control device and the management server, a control system having a wide management range can be provided.
- a development support program that supports development of a control program executed by a control device that controls a control target.
- the development support program generates, on a computer, a step of generating an executable program in a format executable by the control device from a created program obtained by creation or editing, and a management server that manages the control program for each version.
- Control obtained by creation or editing in order to save the control program obtained by creation or editing as one version of the control program on condition that an output condition including at least the success of generation is satisfied. Outputting the program to the management server.
- a development environment that can manage control programs by version can be provided. Furthermore, it is possible to manage except for a defective program that cannot be converted into an executable program.
- FIG. 10 is a schematic diagram showing a schematic configuration of a control system in Modification 2.
- FIG. 10 is a schematic diagram which shows schematic structure of the control system in the modification 3.
- FIG. 10 is a schematic diagram showing a schematic configuration of a control system in Modification 5.
- FIG. 1 is a diagram schematically showing an application scene of the control system 1a according to the present embodiment.
- the control system 1a provides an environment for developing a control program to be executed by a control device such as a PLC (programmable controller) that controls a control target.
- a control device such as a PLC (programmable controller) that controls a control target.
- control program is a concept including a program for providing basic functions of the PLC and a program (also referred to as a “user program”) arbitrarily designed according to a control target. is there.
- control program may include only a program arbitrarily designed according to the control target.
- the “control program” is a high-level language program such as source code or intermediate code (also referred to as “creation program”), and a low-level language program that can execute an object-type PLC (also referred to as “execution format program”). ).
- the control system 1a manages a control program for each version, a creation unit 210a for creating or editing a control program, a generation unit 220a that creates an executable program from the creation program created or edited by the creation unit 210a.
- the management server 300a and the output part 230a which outputs the control program created or edited by the creation part 210a to the management server 300a are included.
- the creation unit 210a is a concept including software for providing a function for creating a program of a high-level language such as source code or intermediate code, and hardware such as a keyboard and a mouse operated by a user to create the source code. is there.
- the management server 300a is a concept including a computer, a program, and a system that provide a function of managing a change history when one control program is edited, and includes the management server 300a, a creation unit 210a, a generation unit 220a, and The output unit 230a may be provided by an integrated computer, and each function may be provided in another device.
- “Version” is a notation indicating that one control program was created and changed. “Managing the control program for each version” means, for example, saving the change history 310 of one control program. Note that the storage unit for storing the change history 310 is not necessarily provided in the management server 300a, and may be provided in a device to which the management server 300a can be connected as appropriate.
- the change history 310 includes program information 312 related to the changed program, and history information 314 including the date and time of change and the changed user.
- the program information 312 may be information that can be developed into each version of the program based on the program information 312, and may be, for example, difference information between the program before the change and the program after the change.
- the management server 300 a stores difference information (such as “1.0 ⁇ 1.1” in the figure) as the program information 312. Note that the program information 312 may not be the difference information but the program for each version.
- the history information 314 is a concept including information indicating the status when the control program is created or edited, such as the changed date and time and the changed user. Further, the history information 314 includes information directly generated by the user such as a comment or a program, and information generated along with information directly generated by the user such as a change date and a changed user.
- the management server 300a manages the change history 310 including the program information 312 and the history information 314 for each type of control program.
- the output unit 230a outputs the control program to the management server 300a on condition that the execution format program has been successfully generated. Note that the output unit 230a may output at least one of the creation program and the execution format program. The output unit 230a does not output the control program to the management server 300a when the generation unit 220a cannot generate the execution format program, that is, when the generation of the execution format program fails.
- control program A (1.n) is obtained by the creation unit 210a editing n control program A (“control program A (1.n)” in the figure).
- the output unit 230a is the generation program A (1.n + 1).
- the control program A (1.n + 1) related to is output to the management server 300a.
- the management server 300a updates the change history 310 based on the sent control program A (1.n + 1).
- the output unit 230a has the generation program A (1 .N + 1) does not output the control program A (1.n + 1) to the management server 300a.
- control system 1a shown in FIG. 1 can provide a development environment capable of managing the control program for each version. This facilitates the development of a control program by a plurality of people. Further, in the control system 1a, only the control program related to the creation program that can be converted into at least the execution format program is managed. Therefore, it is possible to manage except for a defective program that cannot be converted into an executable program. As a result, the control system 1a with high management accuracy can be provided.
- FIG. 2 is a schematic diagram showing a schematic configuration of the control system 1 according to the present embodiment.
- the control system 1 includes a support device 200 for developing a control program executed by the PLC 100 and a management server 300 for managing a version of the control program developed using the support device 200.
- the management server 300 is connected to the support device 200 via the local network 10 so as to be communicable and is formed separately from the support device 200.
- one support device 200 may have the function of the management server 300.
- the management server 300 may be communicably connected to the support device 200 via an external network such as the Internet.
- Management server 300 stores change history 310 of the control program.
- the change history 310 includes program information 312 and history information 314.
- the program information 312 is information that can be developed into each version of the program based on the program information 312.
- the history information 314 is information including the changed date and time and the changed user.
- the control system 1 may include a PLC 100. In the present embodiment, the control system 1 will be described as including the PLC 100.
- the support device 200 can be connected to the PLC 100 via the connection cable 20 or the like.
- the management server 300 provides a management environment for managing the change history of the control program created and edited using the support device 200.
- the support device 200 provides a development environment for developing a control program.
- the PLC 100 provides an execution environment for executing the control program.
- control system 1 may include a plurality of support devices 200 that can be connected to the management server 300.
- An example of the flow of program development will be described taking the control system 1 shown in FIG. 2 as an example.
- control program A For example, one or more users create one control program (program A), and the program A is edited one or more times.
- a debugging operation is performed on the program (program A (Ver.1.1) in FIG. 2) obtained by editing.
- the support device 200 and the PLC 100 are connected by the connection cable 20, and the debugging work is performed using the PLC 100.
- the control program managed by the management server 300 may be installed (introduced) in the PLC 100 via the support device 200, or stored in the memory card from the support device 200 and introduced by inserting the memory card into the PLC 100. May be.
- the editing work and the debugging work of the control program shown in (2) may be performed by a plurality of developers.
- the management server 300 By making it possible to manage the version of the control program using the management server 300, it becomes easy to develop a program by a plurality of developers, and as a result, there is an advantage that the time for developing the control program can be shortened.
- each developer can freely update the program on the management server 300, the program may be updated to a defective program. In such a case, there is a risk that program development may be advanced using a defective program, or that a defective program may be introduced into the PLC 100.
- program development may be advanced using a defective program, or a defective program may be missed. Thus, it is prevented in advance from being introduced into the PLC 100.
- FIG. 3 is a schematic diagram showing a hardware configuration of PLC 100 according to the embodiment of the present invention.
- the PL 100 includes a processor 102 such as a CPU (Central Processing Unit) and an MPU (Micro-Processing Unit), a chip set 104, a main memory 106, a flash memory 108, an internal bus controller 122, a field bus controller 124, A USB (Universal Serial Bus) connector 126 and a memory card interface 128 are included.
- a processor 102 such as a CPU (Central Processing Unit) and an MPU (Micro-Processing Unit)
- a chip set 104 such as a CPU (Central Processing Unit) and an MPU (Micro-Processing Unit)
- main memory 106 such as a main memory 106, a flash memory 108, an internal bus controller 122, a field bus controller 124, A USB (Universal Serial Bus) connector 126 and a memory card interface 128 are included.
- USB Universal Serial Bus
- the processor 102 and the chipset 104 are typically configured according to a general-purpose computer architecture. That is, the processor 102 interprets and executes the instruction codes sequentially supplied from the chip set 104 according to the internal clock.
- the chip set 104 exchanges internal data with various connected components and generates instruction codes necessary for the processor 102. Further, the chip set 104 has a function of caching data obtained as a result of execution of arithmetic processing by the processor 102.
- the main memory 106 is a volatile storage area, and stores various programs to be executed by the processor 102 after powering on the PLC 100.
- the main memory 106 is also used as a working memory when the processor 102 executes various programs.
- a main memory 106 a device such as DRAM (Dynamic Random Access Memory) or SRAM (Static Random Access Memory) is used.
- the flash memory 108 is a nonvolatile memory, and stores various programs (modules) such as a real-time OS (Operating System), a system program, and an executable program, and data such as various parameters in a nonvolatile manner. These programs and data are copied to the main memory 106 so that the processor 102 can access them as necessary.
- the PLC 100 includes a flash memory 108 as a semiconductor memory as a non-volatile memory, but a magnetic recording medium such as a hard disk drive or an optical recording medium such as a DVD-RAM (Digital Versatile Disk Random Access Memory). May be provided as a storage device for storing programs and data.
- the internal bus controller 122 is an interface for exchanging data with various devices connected to the PLC 100 through the internal bus.
- An example of such a device is an I / O unit.
- the field bus controller 124 is an interface for exchanging data with various driving devices connected to the PLC 100 through the field bus. Examples of such drive devices include a servo driver, a robot controller, and a visual sensor.
- the internal bus controller 122 and the field bus controller 124 can give arbitrary commands to the connected devices, and can acquire arbitrary data (including measurement values) managed by the devices. .
- the internal bus controller 122 and / or the field bus controller 124 also functions as an interface for exchanging data with the driving device.
- the USB connector 126 is a communication interface for connecting the support device 200 and the PLC 100.
- a program executable program that can be executed by the processor 102 of the PLC 100 transferred from the support device 200 is taken into the PLC 100 via the USB connector 126.
- the memory card interface 128 is configured to be detachable from a memory card 130 (for example, an SD card) that is an example of an external storage medium, and writes data to the memory card 130 and reads data from the memory card 130. Is possible.
- a memory card 130 for example, an SD card
- FIG. 4 is a schematic diagram showing a hardware configuration of the support device 200 according to the embodiment of the present invention.
- the support device 200 is typically composed of a general-purpose computer. Note that the support device 200 is preferably a notebook personal computer excellent in portability from the viewpoint of maintainability.
- the support device 200 stores a CPU 201 that executes various programs including an OS, a BIOS (Basic Input Output System) and a ROM (Read Only Memory) 202 that stores various data, and data that is necessary for the CPU 201 to execute the program.
- a RAM 203 that provides a work area for executing the operation, and a hard disk (HDD) 204 that stores a program executed by the CPU 201 in a nonvolatile manner.
- BIOS Basic Input Output System
- ROM Read Only Memory
- the support device 200 further includes a keyboard 205 and a mouse 206 that receive an operation from the user, and a monitor 207 for presenting information to the user.
- the support device 200 includes a communication interface (IF) 209 for communicating with the PLC 100, the management server 300, and the like.
- the communication IF 209 includes, for example, a USB connector.
- CD-ROM 9 Various programs executed by the support device 200 are stored in the CD-ROM 9 and distributed.
- the program stored in the CD-ROM 9 is read by a CDROM (Compact Disk-Read Only Memory) drive 208 and stored in the HDD 204 or the like.
- the program may be downloaded from a host computer or the like via a network.
- FIG. 5 is a schematic diagram showing a software configuration executed by the PLC 100 according to the embodiment of the present invention.
- the software executed by the PLC 100 has three layers of a real-time OS 400, a system program 410, and an execution format program 436 that is a user program.
- the real-time OS 400 is designed according to the computer architecture of the PLC 100, and provides a basic execution environment for the processor 102 to execute the system program 410 and the execution format program 436.
- the real-time OS 400 is typically provided by a PLC manufacturer or a specialized software company.
- the system program 410 is a software group for providing functions as the PLC 100.
- the system program 410 includes a scheduler program 412, an output processing program 414, an input processing program 416, a sequence command operation program 432, a motion operation program 434, and other system programs 420.
- the output processing program 414 and the input processing program 416 are executed continuously (integrally), and therefore these programs may be collectively referred to as an IO processing program 418.
- the execution format program 436 is a program in an object program format that can be executed by the processor 102 of the PLC 100 among user programs created according to the control purpose of the user.
- the user program is a program arbitrarily designed according to a target line (process) to be controlled using the control system 1.
- the execution format program 436 realizes the control purpose of the user in cooperation with the sequence command calculation program 432 and the motion calculation program 434. That is, the execution format program 436 realizes a programmed operation by using instructions, functions, function modules, and the like provided by the sequence instruction operation program 432 and the motion operation program 434. Therefore, the execution format program 436, the sequence instruction calculation program 432, and the motion calculation program 434 may be collectively referred to as a control program 430.
- the processor 102 of the PLC 100 executes the system program 410 and the execution format program 436 stored in the flash memory 108.
- the execution format program 436 is created according to the control purpose (for example, a target line or process) by the user.
- the execution format program 436 is generated by compiling the source program 530 described in a ladder language or the like in the support device 200 or the like. Then, the generated execution format program 436 is transferred from the support device 200 to the PLC 100 via the connection cable 20 and stored in the flash memory 108 or the like.
- the execution format program 436 includes a program ID 532.
- the program ID 532 is an identifier that is generated every time the source program 530 before being converted into the execution format program 436 is generated or edited, and is included in the source program 530.
- the program ID 532 is also inherited when the source program 530 is compiled and the executable program 436 is generated. That is, the program ID 532 included in the source program 530 is equal to the program ID 532 included in the executable program 436 obtained by compiling the source program 530.
- the scheduler program 412 controls the start of processing in each execution cycle and the resumption of processing after the suspension of processing for the output processing program 414, the input processing program 416, and the control program 430. More specifically, the scheduler program 412 controls the execution of the execution format program 436 and the motion calculation program 434.
- the output processing program 414 rearranges the output data generated by the execution of the execution format program 436 (control program 430) into a format suitable for transferring to the internal bus controller 122 and / or the field bus controller 124.
- the output processing program 414 issues such an instruction.
- the input processing program 416 rearranges the input data received by the internal bus controller 122 and / or the field bus controller 124 into a format suitable for use by the control program 430.
- the sequence command calculation program 432 is a program that is called when a certain sequence command used in the execution format program 436 is executed and executed to realize the content of the command.
- the motion calculation program 434 is a program that is executed in accordance with an instruction from the execution format program 436 and calculates a command value to be output to a motor driver such as a servo motor driver or a pulse motor driver.
- the real-time OS 400 provides an environment for switching and executing a plurality of programs over time.
- FIG. 6 is a schematic diagram showing a software configuration executed by the support device 200 according to the embodiment of the present invention.
- the support apparatus 200 executes the OS 510, and provides an environment in which various programs included in the PLC support program 520 can be executed.
- the PLC support program 520 includes an editor program 521, a compiler program 522, a debugger program 523, a communication program 526, and a management program 524. Each program is typically distributed in a state stored in the CD-ROM 9 and installed in the support device 200. Note that each program included in the PLC support program 520 may be downloaded from a host computer or the like via a network.
- the editor program 521 provides functions such as input and editing for creating a source program 530 that is a user program. More specifically, the editor program 521 provides a storage function and an editing function for the created source program 530 in addition to a function for the user to operate the keyboard 205 and the mouse 206 to create the source program 530. The editor program 521 accepts an input of the source program 530 stored in the management server 300.
- the compiler program 522 provides a function of compiling the source program 530 and generating an execution program 436 in an object program format that can be executed by the processor 102 of the PLC 100.
- the debugger program 523 provides a function for debugging the source program of the user program.
- the contents of the debugging include operations such as partially executing a range designated by the user in the source program, and tracking temporal changes in variable values during the execution of the source program.
- the communication program 526 provides a function of transferring the execution format program 436 to the PLC 100 and a function of outputting the source program 530 to the management server 300.
- the management program 524 provides a function for determining whether or not to output the source program 530 to the management server 300. Specifically, among the source programs 530, it is determined whether or not the execution format program 436 has been generated by successful compilation, and only the source program 530 for which the execution format program 436 has been generated is output to the management server 300. Provide functionality.
- the support apparatus 200 When the user program created or edited by the support apparatus 200 is stored in the management server 300, the support apparatus 200 outputs the user program to the management server 300.
- the support apparatus 200 outputs the user program to the management server 300.
- a process executed by the support apparatus 200 to output a user program to the management server 300 will be described.
- FIG. 7 is a flowchart of output processing executed by the support device 200 according to the embodiment of the present invention.
- the output process is a process performed when the CPU 201 of the support apparatus 200 executes the PLC support program 520.
- the user program output by the support device 200 may be the source program 530 before being compiled, or the executable program 436 after being compiled, and the source program 530 and the executable format. Both of the programs 436 may be used.
- the support device 200 outputs a source program 530.
- step S101 the CPU 201 determines whether a save instruction has been accepted.
- the save instruction is input via the mouse 206 or the keyboard 205. If it is determined that a storage instruction has not been received (NO in step S101), the CPU 201 ends the process.
- step S101 If it is determined that a storage instruction has been received (YES in step S101), the CPU 201 switches the process to step S102.
- step S102 the CPU 201 compiles the source program 530 to be saved.
- step S103 the CPU 201 determines whether the compilation is successful. Whether or not the compilation is successful is determined based on whether or not the executable program 436 has been generated. When the executable program 436 is generated, the CPU 201 determines that the compilation is successful. When the executable program is not generated, the CPU 201 determines that the compilation has failed.
- step S103 If it is determined that the compilation is successful (YES in step S103), the CPU 201 switches the process to step S104.
- step S104 the CPU 201 determines whether or not it is connected to the PLC 100. If connected to PLC 100 (YES in step S104), the process is switched to step S105.
- step S105 the CPU 201 transmits the execution format program 436 to the PLC 100.
- the executable program 436 to be transmitted is obtained by compiling the source program 530 to be saved in step S102.
- step S106 the CPU 201 determines whether the transfer is successful.
- the CPU 201 determines whether or not the transfer is successful depending on whether or not the operation mode of the PLC 100 has been normally switched from the program mode to the operation mode.
- the PLC 100 switches the operation mode to the program mode when installing the sent executable program 436, and switches to the operation mode when it is normally transferred, while continuing to program the operation mode when an error occurs. Leave in mode.
- the CPU 201 determines that the transfer is successful when the operation mode of the PLC 100 is the operation mode.
- the CPU 201 determines that the transfer has failed when the operation mode of the PLC 100 is the program mode even after the predetermined period has elapsed.
- step S106 If it is determined that the transfer is successful (YES in step S106), the CPU 201 switches the process to step S107.
- step S104 If it is determined that it is not connected to the PLC 100 (NO in step S104), the CPU 201 switches the process to step S107.
- step S107 the CPU 201 transmits the source program 530 to be saved to the management server 300 and ends the process.
- step S103 If it is determined that the compilation has failed (NO in step S103), the CPU 201 switches the process to step S111.
- step S111 the CPU 201 determines to notify that the compilation has failed.
- step S106 If it is determined that the transfer to the PLC 100 has failed (NO in step S106), the CPU 201 switches the process to step S112.
- step S112 the CPU 201 determines to notify that the transfer to the PLC 100 has failed.
- step S111 After executing the process of step S111 or step S112, the CPU 201 switches the process to step S113.
- step S113 the CPU 201 determines to notify that the source program 530 cannot be output to the management server 300.
- step S114 the CPU 201 performs the determined notification. Specifically, the contents determined in steps S111 to S113 are displayed on monitor 207. That is, the CPU 201 displays on the monitor 207 the reason why the program cannot be output to the management server 300 and the reason why the program cannot be output.
- step S115 the CPU 201 discards the save instruction and ends the process.
- notification of the cause that cannot be output is performed. However, it may be configured to notify only that output cannot be performed.
- FIG. 8 is a diagram illustrating an example of a functional configuration of the support device 200 according to the embodiment of the present invention that functions in execution of output processing.
- the support apparatus 200 includes a creation unit 210 for creating or editing a user program, a generation unit 220 that generates an execution format program 436 from the source program 530 created or edited by the creation unit 210, and a creation unit 210 And an output unit 230 that outputs the edited user program to the management server 300. Further, the support device 200 includes a communication unit 240 that transfers the execution format program 436 to the PLC 100.
- the creation unit 210 creates or edits the source program 530 in accordance with a user operation.
- the source program 530 created or edited by the creation unit 210 is temporarily stored in the RAM 203, for example.
- the output unit 230 When the output unit 230 receives a save instruction input from the input unit such as the keyboard 205 and the mouse 206, the output unit 230 causes the generation unit 220 to generate the execution format program 436, and whether the generation is successful, that is, whether the compilation is successful. Judge whether or not.
- the output unit 230 determines that the compilation is successful, the output unit 230 causes the communication unit 240 to transfer the executable program 436 to the PLC 100.
- the communication unit 240 transfers the execution format program 436 to the PLC 100 and notifies the output unit 230 whether or not the transfer is successful.
- the output unit 230 outputs the source program 530 to the management server 300 when the transfer of the execution format program 436 is successful.
- the output unit 230 displays the processing result on the monitor 207.
- the processing result includes the success or failure of compilation, the success or failure of transfer of the executable program 436, and the output result of the source program 530.
- the user program installed in the PLC 100 installed at the production site may be rewritten via a support device that is not connected to the management server 300.
- a user program created in a development environment that is not connected to the management server 300 may be installed in the PLC 100. That is, at the production site, a user program created under a situation that cannot be managed by the management server 300 may be installed in the PLC 100.
- Ver. 1.0 user program is rewritten and Ver.
- Ver. 1.0 user program is rewritten and Ver.
- Ver. 1.0 user program is rewritten and Ver.
- the support apparatus 200 changes a user program installed in the PLC 100, a user program installed in the PLC 100, The user program managed by the management server 300 is compared, and the comparison result is notified. For example, when there is no program ID 532 included in the user program managed by the management server 300 that matches the program ID 532 included in the user program installed in the PLC 100, the support apparatus 200 stores the program ID 532 in the PLC 100. The fact that there is a possibility that the installed user program is not stored on the management server 300 is notified.
- FIG. 9 is a flowchart of an introduction process executed by the support device 200 according to the embodiment of the present invention. More specifically, the introduction process is a process performed when the CPU 201 of the support device 200 executes the PLC support program 520.
- step S201 the CPU 201 determines whether or not an introduction instruction has been accepted. If it is determined that the introduction instruction has not been received (NO in step S201), the CPU 201 ends the process.
- the introduction instruction is input via the mouse 206 or the keyboard 205.
- step S201 If it is determined that the introduction instruction has been received (YES in step S201), the CPU 201 switches the process to step S202.
- step S202 the CPU 201 extracts the program ID 532 included in the execution format program 436 installed in the PLC 100 and compares it with the history information of the source program 530 managed by the management server 300.
- step S ⁇ b> 203 the CPU 201 determines whether or not there is a program ID 532 that matches the program ID 532 of the executable program 436 installed in the PLC 100 in the program ID 532 included in the source program 530 managed by the management server 300. Judging. If there is no matching program ID 532 (NO in step S203), CPU 201 switches the process to step S204.
- step S204 the CPU 201 notifies that there is no matching program ID.
- the monitor 207 displays that there is no matching history information.
- step S205 the CPU 201 outputs the execution format program 436 installed in the PLC 100 to the management server 300.
- the execution format program 436 installed in the PLC 100 may be temporarily stored in the RAM 203 of the support apparatus 200, and it may be determined whether to output to the management server 300 based on a user instruction.
- the CPU 201 may decompile and generate the source program 530 and output it to the management server 300.
- CPU201 outputs execution form program 436 installed in PLC100 to management server 300, and switches processing to Step S206.
- step S203 If there is a matching program ID 532 (YES in step S203), the CPU 201 switches the process to step S206.
- step S206 the CPU 201 transfers the execution format program 436 to be introduced to the PLC 100 and ends the process. If the execution format program 436 to be installed is not stored in the management server, at least one of the execution format program 436 to be installed and the source program 530 may be output to the management server 300 as well. .
- FIG. 10 is a diagram illustrating an example of a functional configuration of the support device 200 according to the embodiment of the present invention, which functions in executing the introduction process.
- the support device 200 may include a comparison unit 250. Based on receiving the instruction for introduction, the comparison unit 250 compares the executable program 436 executed in the PLC 100 with each version of the user program managed by the management server 300 and monitors the comparison result. It outputs to 207.
- the comparison unit 250 compares the program ID 532 for each version included in the program information 312 stored in the management server 300 with the program ID 532 included in the execution format program 436 executed in the PLC 100. .
- the support apparatus 200 outputs the user program to the management server 300 on condition that at least the execution format program 436 can be generated. Therefore, it is possible to prevent a user program having a defect that cannot generate the execution format program 436 from being stored in the management server 300. As a result, it is possible to prevent in advance that program development is progressed using a defective user program or that a defective user program is introduced into the PLC 100 in advance.
- the support apparatus 200 When the support apparatus 200 includes a monitor 207 and a user program cannot be output to the management server 300, the support apparatus 200 notifies the monitor 207 by displaying that fact. Thereby, the user can recognize that the created or edited user program has a defect. As a result, it is possible to prevent the development of a program from using a defective program and the introduction of the defective program into the PLC 100 in advance.
- the support apparatus 200 outputs the user program to the management server 300 on condition that the execution format program 436 can be generated and the execution format program 436 can be transferred to the PLC 100. Therefore, it is possible to prevent a user program having a problem that cannot be transferred to the PLC 100 from being stored in the management server 300. As a result, it is possible to prevent in advance that program development is progressed using a defective user program or that a defective user program is introduced into the PLC 100 in advance.
- the support device 200 changes the user program installed in the PLC 100
- the support device 200 compares the user program installed in the PLC 100 with the user program managed by the management server 300, and notifies the comparison result. Therefore, it is possible to manage user programs created under circumstances that cannot be managed by the management server 300. As a result, the range that can be managed by the management server 300 is expanded. Thereby, it is possible to prevent the created function from being deleted excessively.
- the support device 200 and the management server 300 are separate bodies. Therefore, the processing load on the support device 200 can be reduced.
- the CPU 201 of the support device 200 executes the processes after step S102 based on the reception of the save instruction. That is, in the above embodiment, an example is shown in which the output processing is executed on the assumption that the support device 200 and the management server 300 are always connected to be communicable. Note that the support device 200 and the management server 300 need not always be connected so that they can communicate with each other. For example, the CPU 201 of the support device 200 may execute the processing after step S102 depending on whether the connection with the management server 300 is started, instead of whether or not a storage instruction is accepted.
- the user program can be managed without re-instructing the user program created or edited during a period in which it is not connected to the management server 300. That is, it is possible to strengthen management for a user program created or edited during a period when it is not connected to the management server 300.
- FIG. 11 is a schematic diagram illustrating a schematic configuration of a control system 1b according to the second modification.
- the control system 1b differs from the control system 1 shown in FIG. 2 in that it includes a PLC 100b instead of the PLC 100 and a support device 200b instead of the support device 200.
- the PLC 100b is different from the PLC 100 in that an access unit 142 for communicating with the management server 300 is provided.
- the PLC 100b including the access unit 142 may include functions related to the generation unit 220, the output unit 230, and the comparison unit 250 included in the support device 200 (the generation unit 144, the output unit 146, and the comparison unit 148 in FIG. 11).
- the support device 200b differs from the support device 200 in that it does not include the generation unit 220 and the output unit 230. That is, in the control system 1b according to the second modification, the PLC 100b can communicate with the management server 300, and the PLC 100b includes a compilation function.
- the support device 200b transfers the source program 530 to the PLC 100b.
- the generation unit 144 of the PLC 100b Upon receiving the source program 530, the generation unit 144 of the PLC 100b generates an execution format program 436 based on the received source program 530.
- the output unit 146 outputs the user program to the management server 300 based on the generation of the execution format program 436.
- the output unit 146 may output the user program to the management server 300 based on the reception of the execution format program 436.
- the comparison unit 148 compares the installed executable program 436 with each version of the user program managed by the management server 300 based on being connected to the network for communicating with the management server 300.
- the comparison result is output.
- the output destination may be an LED or the like provided in the PLC 100b. If the PLC 100b is communicably connected to a device such as the support device 200, a portable terminal, or a printer, these devices may be used. There may be.
- the comparison unit 148 may output the comparison result only when there is no program that matches the installed execution format program 436 among the user programs of each version managed by the management server 300.
- the PLC 100b Even if the execution format program 436 is installed in the PLC 100b from the support device or the memory card 130 that does not have communication means with the management server 300, the PLC 100b has a comparison function. User programs can be managed.
- FIG. 12 is a schematic diagram illustrating a schematic configuration of a control system 1c in the third modification.
- the control system 1c is different from the control system 1 shown in FIG. 2 in that it includes a PLC 100c instead of the PLC 100, and the PLC 100c includes a management unit 300c as a function related to the management server 300.
- the PLC 100c may have a storage unit for storing the change history 310 of the control program, or the change history 310 may be stored in a server that can communicate with the PLC 100c. Since the PLC 100c includes the management unit 300c, the execution format program 436 is installed in the PLC 100c from the support device or the memory card 130 that does not have communication means with the management server 300. All user programs can be managed.
- the change history 310 can be acquired earlier than when the change history 310 is stored in an external server. it can.
- the storage area of the PLC 100c can be saved.
- the support device 200 determines whether to output a user program.
- the support device 200 may output the user program to the management server 300 based on the reception of the save instruction.
- the management server 300 may have a function of generating an executable program and a function of determining whether the output user program is to be managed (whether to save).
- the management server 300 may have a function of notifying the support apparatus 200 that the user program is not stored when it is determined that the user program is not stored.
- the support device 200 may receive a notification that the user program has not been saved and notify the user of the notification.
- FIG. 13 is a schematic diagram illustrating a schematic configuration of a control system 1e according to the fifth modification.
- the control system 1e differs from the control system 1 shown in FIG. 2 in that it includes a PLC 100e instead of the PLC 100, and a support device 200e instead of the support device 200.
- the PLC 100e is different from the PLC 100 in that it further includes a management unit 154 for managing the version of the control program. That is, the control system 1 e is different from the control system 1 in that the version of the control program is managed by both the PLC 100 e and the management server 300.
- the function of the management unit 154 is the same as that of the management server 300, and thus the description thereof is omitted.
- the management unit 154 according to the modification 5 manages the control program executed by the PLC 100e and does not manage the control program executed by another PLC.
- the management server 300 can manage a plurality of control programs.
- the user may create a control program using the PLC 100e in a state where the support device 200e is not connected to the management server 300 (offline).
- the control program created offline may be excluded from the management target.
- control program created offline can be included in the management target. Can provide a wide version control system.
- the support device 200e includes a comparison unit 250e.
- the comparison unit 250e compares the change history 154a stored in the management unit 154 with the change history 310 stored in the management server 300 when the support device 200e is connected to be able to communicate with both the PLC 100e and the management server 300. And output the comparison result.
- the comparison result is output to the monitor 207.
- the user can synchronize the change history 310 and the change history 154a based on the comparison result output to the monitor 207.
- the PLC 100e may include an access unit 142e for communicating with the management server 300. For example, every time a control program is sent from the support device 200e, the PLC 100e sends a control program managed by the management server 300 connected via the access unit 142e and the sent control program. For comparison, the change history 310 and the change history 154a may be synchronized.
- the comparison unit 250e may compare only the program ID 532, or may compare information including the history information 314. For example, by comparing the information including the history information 314, it is possible to detect that the history information 314 does not match even though the program ID matches in the change history 310 and the change history 154a. .
- the output device outputs a control program created or edited by the creation unit to the management server on condition that an output condition including at least that the generation of the executable program is successful is satisfied.
- ⁇ Configuration 2> The support apparatus according to Configuration 1, further comprising a notification unit (207) that notifies that the output condition is not satisfied.
- ⁇ Configuration 4> When an operation to change the control program executed in the control device is received, the control program executed in the control device is compared with each version of the control program managed by the management server, 4.
- the support device according to any one of configurations 1 to 3, further comprising a comparison unit (250) that outputs a comparison result.
- the creation unit creates or edits a control program regardless of whether it is connected to the management server
- the output unit creates a control program created or edited when not connected to the management server in response to the start of connection with the management server, provided that the output condition is satisfied.
- a management server 300, 300a, 300c) for managing the control program for each version;
- the output unit outputs a control program created or edited by the creation unit to the management server on condition that an output condition including at least that the execution program has been successfully generated is satisfied.
- a control device having a management unit (154) for managing the control program for each version;
- a comparison unit that compares the control program (154a) of each version managed by the management unit with the control program (310) of each version managed by the management server and outputs a comparison result.
- a development support program (520) for supporting development of a control program executed by a control device (100, 100e) for controlling a control object The development support program is stored in a computer, A step (S102) of generating an executable program (436) in a format executable by the control device from a creation program (530) obtained by creation or editing; A control program obtained by creation or editing is provided on the condition that an output condition including at least that the execution program has been successfully generated is satisfied in the management server (300) that manages the control program for each version.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Programmable Controllers (AREA)
Abstract
制御プログラムのバージョンを管理することが可能な開発環境を提供可能なサポート装置、制御システム、および開発支援プログラムを提供することを目的とする。制御システムは制御プログラムをバージョンごとに管理する管理サーバを備える。作成または編集された制御プログラムは、PLCが実行可能な形式のプログラムに変換できることを条件に管理サーバに出力される。
Description
本発明は、制御対象を制御する制御装置で実行される制御プログラムの開発を支援するサポート装置、サポート装置を含む開発支援システムおよび、開発支援プログラムに関する。
様々な製造現場において、PLC(Programmable Logic Controller)などの制御装置が導入されている。このような制御装置は、一種のコンピュータであり、製造装置や製造設備などに応じて設計された制御プログラムが実行される。このような制御プログラムは、制御装置とは別に用意されたサポート装置を用いて作成される。
たとえば、特開2016-224557号公報(特許文献1)は、グラフィカルプログラミング言語により記述されるプログラムと高級プログラミング言語により記述されるプログラムを作成するユーザの負担を軽減するための技術を開示している。
しかし、制御プログラムの高度化により、複数人または複数のグループで協同して制御プログラムを作成する機会が増えている。そのため、制御プログラムのバージョンを管理することが可能な開発環境が求められている。
本発明は、制御プログラムのバージョンを管理することが可能な開発環境を提供可能なサポート装置、制御システム、および開発支援プログラムを提供することを目的とする。
本開示の一例によれば、制御対象を制御する制御装置で実行される制御プログラムの開発を支援するサポート装置が提供される。サポート装置は、制御プログラムを作成または編集するための作成部と、作成部によって得られた作成プログラムから制御装置が実行可能な形式の実行形式プログラムを生成する生成部と、制御プログラムをバージョンごとに管理する管理サーバに、作成部が作成または編集した制御プログラムを一のバージョンの制御プログラムとして保存するために、作成部が作成または編集した制御プログラムを管理サーバに出力する出力部とを含む。出力部は、実行形式プログラムの生成が成功したことを少なくとも含む出力条件が成立していることを条件に作成部が作成または編集した制御プログラムを管理サーバに出力する。
この開示によれば、制御プログラムをバージョンごとに管理可能な開発環境を提供できる。さらに、実行形式プログラムを生成することができない不具合のある制御プログラムが管理サーバに保存されてしまうことを防止することができる。その結果、不具合のある制御プログラムを用いてプログラム開発が進められてしまうことや、不具合のある制御プログラムを過って制御装置に導入してしまうことを予め防止することができる。
上述の開示において、サポート装置は、出力条件が成立しなかったことを通知する通知部をさらに含む。
この開示によれば、ユーザに作成または編集した作成プログラムに欠陥があることを認識させることができる。その結果、不具合のある制御プログラムを用いてプログラム開発が進められてしまうことや、不具合のある制御プログラムを過って制御装置に導入してしまうことを予め防止することができる。
上述の開示において、出力条件は、制御装置に実行形式プログラムを転送できたことを含む。
この開示によれば、制御装置に転送することができないような不具合のある制御プログラムが管理サーバに保存されてしまうことを防止することができる。その結果、不具合のある制御プログラムを用いてプログラム開発が進められてしまうことや、不具合のある制御プログラムを過って制御装置に導入してしまうことを予め防止することができる。
上述の開示において、サポート装置は、制御装置において実行されている制御プログラムを変更する操作を受け付けたときに、制御装置において実行されている制御プログラムと、管理サーバが管理している各バージョンの制御プログラムとを比較し、比較結果を出力する比較部をさらに含む。
この開示によれば、管理サーバが管理し得ない状況下で作成された制御プログラムについても、管理することができる。その結果、管理サーバが管理することのできる範囲が広がる。
上述の開示において、管理サーバは、サポート装置とは別に設けられている。
この開示によれば、サポート装置の処理負担を軽減することができる。
この開示によれば、サポート装置の処理負担を軽減することができる。
上述の開示において、作成部は、管理サーバと接続されているか否かに関わらず制御プログラムを作成または編集してもよい。出力部は、管理サーバとの接続を開始したことに応じて、管理サーバと接続されていないときに作成または編集された制御プログラムを、出力条件が成立していることを条件に管理サーバに出力する。
この開示によれば、管理サーバと接続されていない期間に作成または編集された制御プログラムに対する管理を強化することができる。
本開示の別の一例によれば、制御対象を制御する制御装置で実行される制御プログラムの開発を支援するための制御システムが提供される。制御システムは、制御プログラムを作成または編集するための作成部と、作成部によって得られた作成プログラムから制御装置が実行可能な形式の実行形式プログラムを生成する生成部と、制御プログラムをバージョンごとに管理する管理サーバと、作成部が作成または編集した制御プログラムを一のバージョンの制御プログラムとして保存するために、作成部が作成または編集した制御プログラムを管理サーバに出力する出力部とを含む。出力部は、実行形式プログラムの生成が成功したことを少なくとも含む出力条件が成立していることを条件に作成部が作成または編集した制御プログラムを管理サーバに出力する。
この開示によれば、制御プログラムをバージョンごとに管理可能な開発環境を提供できる。さらに、実行形式プログラムを生成することができない不具合のある制御プログラムが管理サーバに保存されてしまうことを防止することができる。その結果、不具合のある制御プログラムを用いてプログラム開発が進められてしまうことや、不具合のある制御プログラムを過って制御装置に導入してしまうことを予め防止することができる。
上述の開示において、制御システムは、制御プログラムをバージョンごとに管理する管理部を有する制御装置と、管理部が管理している各バージョンの制御プログラムと、管理サーバが管理している各バージョンの制御プログラムとを比較し、比較結果を出力する比較部をさらに含む。
この開示によれば、制御装置と、管理サーバとの両方で制御プログラムのバージョンを管理するため、管理範囲の広い制御システムを提供できる。
本開示の別の一例によれば、制御対象を制御する制御装置で実行される制御プログラムの開発を支援する開発支援プログラムが提供される。開発支援プログラムはコンピュータに、作成または編集によって得られた作成プログラムから制御装置が実行可能な形式の実行形式プログラムを生成するステップと、制御プログラムをバージョンごとに管理する管理サーバに、実行形式プログラムの生成が成功したことを少なくとも含む出力条件が成立していることを条件に、作成または編集によって得られた制御プログラムを一のバージョンの制御プログラムとして保存するために、作成または編集によって得られた制御プログラムを前記管理サーバに出力するステップとを実行させる。
この開示によれば、制御プログラムをバージョンごとに管理可能な開発環境を提供できる。さらに、実行形式プログラムを生成することができない不具合のある制御プログラムが管理サーバに保存されてしまうことを防止することができる。その結果、不具合のある制御プログラムを用いてプログラム開発が進められてしまうことや、不具合のある制御プログラムを過って制御装置に導入してしまうことを予め防止することができる。
制御プログラムをバージョンごとに管理可能な開発環境を提供できる。さらに、実行形式プログラムに変換することのできないような不具合のあるプログラムを除いて管理することができる。
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
§1 適用例
まず、図1を参照して、本発明が適用される場面の一例について説明する。図1は、本実施の形態に係る制御システム1aの適用場面を模式的に示す図である。制御システム1aは、たとえば、制御対象を制御するPLC(プログラマブルコントローラ)などの制御装置で実行される制御プログラムを開発する環境を提供する。
まず、図1を参照して、本発明が適用される場面の一例について説明する。図1は、本実施の形態に係る制御システム1aの適用場面を模式的に示す図である。制御システム1aは、たとえば、制御対象を制御するPLC(プログラマブルコントローラ)などの制御装置で実行される制御プログラムを開発する環境を提供する。
本明細書において、「制御プログラム」は、PLCの基本的な機能を提供するためのプログラムと、制御対象に応じて任意に設計されるプログラム(「ユーザプログラム」ともいう)とを包含する概念である。但し、制御プログラムは、制御対象に応じて任意に設計されるプログラムのみを含む場合もある。また、「制御プログラム」は、ソースコードまたは中間コードといった高水準言語のプログラム(「作成プログラム」ともいう)と、オブジェクト形式のPLCが実行可能な低水準言語のプログラム(「実行形式プログラム」ともいう)とを包含する概念である。
制御システム1aは、制御プログラムを作成または編集するための作成部210aと、作成部210aによって作成または編集された作成プログラムから実行形式プログラムを生成する生成部220aと、制御プログラムをバージョンごとに管理する管理サーバ300aと、作成部210aによって作成または編集された制御プログラムを管理サーバ300aに出力する出力部230aとを含む。
作成部210aは、ソースコードまたは中間コードといった高水準言語のプログラムを作成する機能を提供するためのソフトフェアと、ソースコードを作成するためにユーザが操作するキーボードおよびマウスといったハードウェアを含む概念である。
管理サーバ300aは、一の制御プログラムが編集されたときの変更履歴を管理する機能を提供するコンピュータ、プログラム、システムを包含する概念であって、管理サーバ300aならびに、作成部210a、生成部220aおよび出力部230aが一体のコンピュータで提供されてもよく、各々の機能を別の装置に設けてもよい。
「バージョン」は、一の制御プログラムが作成され、その制御プログラムに対して変更が加えられたことを示す表記である。「制御プログラムをバージョンごとに管理する」とは、たとえば、一の制御プログラムの変更履歴310を保存することである。なお、変更履歴310を保存するための記憶部は、管理サーバ300aが備える必要はなく、管理サーバ300aが適宜接続できる装置が備えていてもよい。
変更履歴310は、変更されたプログラムに関するプログラム情報312と、変更された日時および変更したユーザを含む履歴情報314とを含む。
プログラム情報312は、プログラム情報312に基づいて各バージョンのプログラムにそれぞれ展開することができる情報であればよく、たとえば、変更前のプログラムと変更後のプログラムとの差分情報であってもよい。図1に示す例では、管理サーバ300aは、プログラム情報312として差分情報(図中の「1.0→1.1」など)を記憶している。なお、プログラム情報312は、差分情報ではなく、バージョンごとのプログラムそのものであってもよい。
履歴情報314は、変更された日時および変更したユーザなど、制御プログラムが作成または編集されたときの状況を示す情報を含む概念である。また、履歴情報314は、コメントやプログラムなどのユーザが直接生成する情報と、変更日時や変更したユーザなどユーザが直接生成した情報に付随して生成される情報とを含む。
管理サーバ300aは、プログラム情報312および履歴情報314を含む変更履歴310を制御プログラムの種類ごとに管理する。
出力部230aは、実行形式プログラムの生成が成功したことを条件に制御プログラムを管理サーバ300aに出力する。なお、出力部230aは、作成プログラムおよび実行形式プログラムのうちの少なくともいずれか一方のプログラムを出力すればよい。出力部230aは、生成部220aが実行形式プログラムを生成することができなかった場合、すなわち、実行形式プログラムの生成に失敗した場合には、制御プログラムを管理サーバ300aに出力しない。
たとえば、図1に示す例においては、バージョン1.nの制御プログラムA(図中の「制御プログラムA(1.n)」)を作成部210aが編集して作成プログラムA(1.n+1)が得られたものとする。
成功時が示す例では、生成部220aが作成プログラムA(1.n+1)から実行形式プログラムA(1.n+1)を生成することができた結果、出力部230aは作成プログラムA(1.n+1)に係る制御プログラムA(1.n+1)を管理サーバ300aに出力する。管理サーバ300aは、送られた制御プログラムA(1.n+1)に基づいて、変更履歴310を更新する。
一方、失敗時が示す例では、生成部220aが作成プログラムA(1.n+1)から実行形式プログラムA(1.n+1)を生成することができなかった結果、出力部230aは作成プログラムA(1.n+1)に係る制御プログラムA(1.n+1)を管理サーバ300aに出力しない。
このように、図1に示す制御システム1aにおいては、制御プログラムをバージョンごとに管理可能な開発環境を提供できる。これにより、複数人による制御プログラムの開発が容易になる。さらに、制御システム1aにおいては、少なくとも実行形式プログラムに変換することができた作成プログラムに係る制御プログラムだけが管理される。そのため、実行形式プログラムに変換することのできないような不具合のあるプログラムを除いて管理することができる。その結果、管理精度の高い制御システム1aを提供することができる。
§2 具体例
以下、本発明の具体例として、本実施の形態に係る制御システム1のより詳細な構成および処理について説明する。
以下、本発明の具体例として、本実施の形態に係る制御システム1のより詳細な構成および処理について説明する。
<A.制御システム1の全体構成例>
図2は、本実施の形態に係る制御システム1の概略構成を示す模式図である。制御システム1は、PLC100で実行される制御プログラムを開発するためのサポート装置200と、サポート装置200を用いて開発された制御プログラムのバージョンを管理するための管理サーバ300とを含む。
図2は、本実施の形態に係る制御システム1の概略構成を示す模式図である。制御システム1は、PLC100で実行される制御プログラムを開発するためのサポート装置200と、サポート装置200を用いて開発された制御プログラムのバージョンを管理するための管理サーバ300とを含む。
本実施の形態においては、管理サーバ300はローカルネットワーク10を介してサポート装置200と通信可能に接続されており、サポート装置200と別体に形成されているものとして説明する。なお、管理サーバ300の機能を一のサポート装置200が備えていてもよい。また、管理サーバ300は、インターネットなどの外部ネットワークを介してサポート装置200と通信可能に接続されてもよい。
管理サーバ300は、制御プログラムの変更履歴310を記憶する。変更履歴310は、プログラム情報312および履歴情報314を含む。プログラム情報312は、プログラム情報312に基づいて各バージョンのプログラムに展開することができる情報である。履歴情報314は、変更された日時および変更したユーザを含む情報である。
制御システム1は、PLC100を含んでいてもよい。本実施の形態においては、制御システム1はPLC100を含むものとして説明する。サポート装置200は、接続ケーブル20などを介してPLC100と接続することができる。
管理サーバ300は、サポート装置200を用いて作成および編集された制御プログラムの変更履歴を管理する管理環境を提供する。サポート装置200は、制御プログラムを開発する開発環境を提供する。PLC100は、制御プログラムを実行する実行環境を提供する。
また、制御システム1は、管理サーバ300と接続可能なサポート装置200を複数備えてもよい。図2に示す制御システム1を例に、プログラムの開発の流れの一例について説明する。
(1) たとえば、1または複数のユーザによって、1の制御プログラム(プログラムA)が作成され、そのプログラムAが1または複数回、編集される。
(2) 編集されて得られたプログラム(図2においてはプログラムA(Ver.1.1))に対してデバック作業が行われる。デバック作業中は、たとえば、サポート装置200とPLC100とが接続ケーブル20で接続されており、PLC100を用いてデバック作業が行われる。
管理サーバ300によって管理された制御プログラムは、サポート装置200を介してPLC100にインストール(導入)されてもよく、また、サポート装置200からメモリカードに保存し、メモリカードをPLC100に挿入することで導入されてもよい。
(1)および(2)に示した制御プログラムの編集作業およびデバック作業は、複数人の開発者によって行なわれてもよい。管理サーバ300を利用して制御プログラムのバージョンを管理できるようにすることで、複数人の開発者によるプログラム開発が容易になり、その結果、制御プログラムを開発する時間を短縮できるという利点がある。しかし、各開発者が自由に管理サーバ300上のプログラムを更新することができてしまうと、不具合のあるプログラムに更新されてしまう虞がある。このような場合に、不具合のあるプログラムを用いてプログラム開発が進められてしまう虞や、不具合のあるプログラムを過ってPLC100に導入してしまう虞がある。
本実施の形態においては、管理サーバ300に制御プログラムを出力するときに一定の制限を設けることで、不具合のあるプログラムを用いてプログラム開発が進められてしまうことや、不具合のあるプログラムを過ってPLC100に導入してしまうことを予め防止する。
<B.PLCのハードウェア構成>
図3は、本発明の実施の形態に係るPLC100のハードウェア構成を示す模式図である。PL100は、CPU(Central Processing Unit)やMPU(Micro-Processing Unit)などのプロセッサ102と、チップセット104と、主メモリ106と、フラッシュメモリ108と、内部バスコントローラ122と、フィールドバスコントローラ124と、USB(Universal Serial Bus)コネクタ126と、メモリカードインターフェイス128とを含む。
図3は、本発明の実施の形態に係るPLC100のハードウェア構成を示す模式図である。PL100は、CPU(Central Processing Unit)やMPU(Micro-Processing Unit)などのプロセッサ102と、チップセット104と、主メモリ106と、フラッシュメモリ108と、内部バスコントローラ122と、フィールドバスコントローラ124と、USB(Universal Serial Bus)コネクタ126と、メモリカードインターフェイス128とを含む。
プロセッサ102およびチップセット104は、典型的には、汎用的なコンピュータアーキテクチャに準じて構成される。すなわち、プロセッサ102は、チップセット104から内部クロックに従って順次供給される命令コードを解釈して実行する。チップセット104は、接続されている各種コンポーネントとの間で内部的なデータを遣り取りするとともに、プロセッサ102に必要な命令コードを生成する。さらに、チップセット104は、プロセッサ102での演算処理の実行の結果得られたデータなどをキャッシュする機能を有する。
主メモリ106は、揮発性の記憶領域であり、PLC100への電源投入後にプロセッサ102で実行されるべき各種プログラムを格納する。主メモリ106は、プロセッサ102による各種プログラムの実行時の作業用メモリとしても使用される。このような主メモリ106としては、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)といったデバイスが用いられる。
フラッシュメモリ108は、不揮発性メモリであって、リアルタイムOS(Operating System)、システムプログラム、実行可能プログラムといった各種プログラム(モジュール)、および各種パラメータといったデータを不揮発的に格納する。これらのプログラムやデータは、必要に応じて、プロセッサ102がアクセスできるように主メモリ106にコピーされる。なお、PLC100は、不揮発性メモリとして、半導体メモリであるフラッシュメモリ108を備えるとしたが、ハードディスクドライブのような磁気記録媒体や、DVD-RAM(Digital Versatile Disk Random Access Memory)のような光学記録媒体などをプログラムやデータを格納するための記憶装置として備えてもよい。
内部バスコントローラ122は、PLC100と内部バスを通じて連結される各種デバイスとデータを遣り取りするインターフェイスである。このようなデバイスの一例として、I/Oユニットなどが挙げられる。
フィールドバスコントローラ124は、PLC100とフィールドバスを通じて連結される各種の駆動機器とデータを遣り取りするインターフェイスである。このような駆動機器の一例として、たとえば、サーボドライバや、ロボットコントローラ、視覚センサなどが挙げられる。
内部バスコントローラ122およびフィールドバスコントローラ124は、接続されているデバイスに対して任意の指令を与えることができるとともに、デバイスが管理している任意のデータ(測定値を含む)を取得することができる。また、内部バスコントローラ122および/またはフィールドバスコントローラ124は、駆動機器との間でデータを遣り取りするためのインターフェイスとしても機能する。
USBコネクタ126は、サポート装置200とPLC100とを接続するための通信インターフェイスである。典型的には、サポート装置200から転送されるPLC100のプロセッサ102で実行可能なプログラム(実行形式プログラム)などは、USBコネクタ126を介してPLC100に取込まれる。
メモリカードインターフェイス128は、外部記憶媒体の一例であるメモリカード130(たとえば、SDカード)を着脱可能に構成されており、メモリカード130に対してデータを書き込み、メモリカード130からデータを読出すことが可能になっている。
<C.サポート装置のハードウェア構成>
図4は本発明の実施の形態に係るサポート装置200のハードウェア構成を示す模式図である。サポート装置200は、典型的には、汎用のコンピュータで構成される。なお、サポート装置200は、メンテナンス性の観点からは、可搬性に優れたノート型のパーソナルコンピュータが好ましい。
図4は本発明の実施の形態に係るサポート装置200のハードウェア構成を示す模式図である。サポート装置200は、典型的には、汎用のコンピュータで構成される。なお、サポート装置200は、メンテナンス性の観点からは、可搬性に優れたノート型のパーソナルコンピュータが好ましい。
サポート装置200は、OSを含む各種プログラムを実行するCPU201と、BIOS(Basic Input Output System)や各種データを格納するROM(Read Only Memory)202と、CPU201でのプログラムの実行に必要なデータを格納するための作業領域を提供するRAM203と、CPU201で実行されるプログラムなどを不揮発的に格納するハードディスク(HDD)204とを含む。
サポート装置200は、さらに、ユーザからの操作を受け付けるキーボード205およびマウス206と、情報をユーザに提示するためのモニタ207とを含む。サポート装置200は、PLC100および管理サーバ300などと通信するための通信インターフェイス(IF)209を含む。通信IF209は、たとえば、USBコネクタなどを含む。
サポート装置200で実行される各種プログラムは、CD-ROM9に格納されて流通する。このCD-ROM9に格納されたプログラムは、CDROM(Compact Disk-Read Only Memory)ドライブ208によって読取られ、HDD204などへ格納される。あるいは、上位のホストコンピュータなどからネットワークを通じてプログラムをダウンロードするように構成してもよい。
<D.PLCのソフトウェア構成>
次に、図5を参照して、本実施の形態に係るPLC100の各種機能を提供するためのソフトウェア群について説明する。これらのソフトウェアに含まれる命令コードは、適切なタイミングで読み出され、PLC100のプロセッサ102によって実行される。
次に、図5を参照して、本実施の形態に係るPLC100の各種機能を提供するためのソフトウェア群について説明する。これらのソフトウェアに含まれる命令コードは、適切なタイミングで読み出され、PLC100のプロセッサ102によって実行される。
図5は、本発明の実施の形態に係るPLC100で実行されるソフトウェア構成を示す模式図である。PLC100で実行されるソフトウェアとしては、リアルタイムOS400と、システムプログラム410と、ユーザプログラムである実行形式プログラム436との3階層になっている。
リアルタイムOS400は、PLC100のコンピュータアーキテクチャに応じて設計されており、プロセッサ102がシステムプログラム410および実行形式プログラム436を実行するための基本的な実行環境を提供する。このリアルタイムOS400は、典型的には、PLCのメーカーあるいは専門のソフトウェア会社などによって提供される。
システムプログラム410は、PLC100としての機能を提供するためのソフトウェア群である。具体的には、システムプログラム410は、スケジューラプログラム412と、出力処理プログラム414と、入力処理プログラム416と、シーケンス命令演算プログラム432と、モーション演算プログラム434と、その他のシステムプログラム420とを含む。なお、一般には出力処理プログラム414および入力処理プログラム416は、連続的(一体として)に実行されるので、これらのプログラムを、IO処理プログラム418と総称する場合もある。
実行形式プログラム436は、ユーザにおける制御目的に応じて作成されるユーザプログラムのうち、PLC100のプロセッサ102で実行可能なオブジェクトプログラム形式になっているプログラムである。ユーザプログラムは、制御システム1を用いて制御する対象のライン(プロセス)などに応じて、任意に設計されるプログラムである。実行形式プログラム436は、シーケンス命令演算プログラム432およびモーション演算プログラム434と協働して、ユーザにおける制御目的を実現する。すなわち、実行形式プログラム436は、シーケンス命令演算プログラム432およびモーション演算プログラム434によって提供される命令、関数、機能モジュールなどを利用することで、プログラムされた動作を実現する。そのため、実行形式プログラム436、シーケンス命令演算プログラム432、およびモーション演算プログラム434を、制御プログラム430と総称する場合もある。
このように、PLC100のプロセッサ102は、フラッシュメモリ108に格納されたシステムプログラム410および実行形式プログラム436を実行する。
実行形式プログラム436は、ユーザにおける制御目的(たとえば、対象のラインやプロセス)に応じて作成される。実行形式プログラム436は、サポート装置200などにおいて、ラダー言語などによって記述されたソースプログラム530がコンパイルされることで生成される。そして、生成された実行形式プログラム436は、サポート装置200から接続ケーブル20を介してPLC100へ転送され、フラッシュメモリ108などに格納される。実行形式プログラム436はプログラムID532を含む。
プログラムID532は、実行形式プログラム436に変換される前のソースプログラム530が生成または編集される度に生成される識別子であって、ソースプログラム530に含まれる。プログラムID532は、ソースプログラム530がコンパイルされて実行形式プログラム436が生成された場合も引き継がれる。すなわち、ソースプログラム530に含まれるプログラムID532と、このソースプログラム530をコンパイルすることで得られる実行形式プログラム436に含まれるプログラムID532とは等しい。
スケジューラプログラム412は、出力処理プログラム414、入力処理プログラム416、および制御プログラム430について、各実行サイクルでの処理開始および処理中断後の処理再開を制御する。より具体的には、スケジューラプログラム412は、実行形式プログラム436およびモーション演算プログラム434の実行を制御する。
出力処理プログラム414は、実行形式プログラム436(制御プログラム430)の実行によって生成された出力データを、内部バスコントローラ122および/またはフィールドバスコントローラ124へ転送するのに適した形式に再配置する。内部バスコントローラ122またはフィールドバスコントローラ124が、プロセッサ102からの、送信を実行するための指示を必要とする場合は、出力処理プログラム414がそのような指示を発行する。
入力処理プログラム416は、内部バスコントローラ122および/またはフィールドバスコントローラ124によって受信された入力データを、制御プログラム430が使用するのに適した形式に再配置する。
シーケンス命令演算プログラム432は、実行形式プログラム436で使用されるある種のシーケンス命令が実行されるときに呼び出されて、その命令の内容を実現するために実行されるプログラムである。
モーション演算プログラム434は、実行形式プログラム436による指示に従って実行され、サーボモータドライバやパルスモータドライバといったモータドライバに対して出力する指令値を算出するプログラムである。
リアルタイムOS400は、複数のプログラムを時間の経過に従い切り替えて実行するための環境を提供する。
<E.サポート装置のソフトウェア構成>
図6は、本発明の実施の形態に係るサポート装置200で実行されるソフトウェア構成を示す模式図である。サポート装置200ではOS510が実行され、PLCサポートプログラム520に含まれる各種のプログラムを実行可能な環境が提供される。
図6は、本発明の実施の形態に係るサポート装置200で実行されるソフトウェア構成を示す模式図である。サポート装置200ではOS510が実行され、PLCサポートプログラム520に含まれる各種のプログラムを実行可能な環境が提供される。
PLCサポートプログラム520は、エディタプログラム521と、コンパイラプログラム522と、デバッガプログラム523と、通信プログラム526と、管理プログラム524とを含む。各プログラムは、典型的には、CD-ROM9に格納された状態で流通して、サポート装置200にインストールされる。なお、PLCサポートプログラム520に含まれる各プログラムを上位のホストコンピュータなどからネットワークを通じてダウンロードするように構成してもよい。
エディタプログラム521は、ユーザプログラムであるソースプログラム530を作成するための入力および編集といった機能を提供する。より具体的には、エディタプログラム521は、ユーザがキーボード205やマウス206を操作してソースプログラム530を作成する機能に加えて、作成したソースプログラム530の保存機能および編集機能を提供する。また、エディタプログラム521は、管理サーバ300に保存されたソースプログラム530の入力を受付ける。
コンパイラプログラム522は、ソースプログラム530をコンパイルして、PLC100のプロセッサ102で実行可能なオブジェクトプログラム形式の実行形式プログラム436を生成する機能を提供する。
デバッガプログラム523は、ユーザプログラムのソースプログラムに対してデバッグを行うための機能を提供する。このデバッグの内容としては、ソースプログラムのうちユーザが指定した範囲を部分的に実行する、ソースプログラムの実行中における変数値の時間的な変化を追跡する、といった動作を含む。
通信プログラム526は、PLC100へ実行形式プログラム436を転送する機能、および、管理サーバ300にソースプログラム530を出力する機能を提供する。
管理プログラム524は、ソースプログラム530を管理サーバ300に出力するか否かを判断する機能を提供する。具体的には、ソースプログラム530のうち、コンパイルが成功して実行形式プログラム436が生成されたか否かを判定し、実行形式プログラム436の生成がされたソースプログラム530のみを管理サーバ300に出力する機能を提供する。
<F.保存の流れ>
サポート装置200が作成または編集したユーザプログラムを管理サーバ300に保存する際に、サポート装置200は管理サーバ300にユーザプログラムを出力する。以下、サポート装置200が実行する、ユーザプログラムを管理サーバ300に出力する処理について説明する。
サポート装置200が作成または編集したユーザプログラムを管理サーバ300に保存する際に、サポート装置200は管理サーバ300にユーザプログラムを出力する。以下、サポート装置200が実行する、ユーザプログラムを管理サーバ300に出力する処理について説明する。
[f1.フローチャート]
図7は、本発明の実施の形態に係るサポート装置200が実行する出力処理のフローチャートである。出力処理は、サポート装置200のCPU201がPLCサポートプログラム520を実行することで行われる処理である。なお、サポート装置200が出力するユーザプログラムは、コンパイルがされる前のソースプログラム530であっても、コンパイルがされた後の実行形式プログラム436であってもよく、また、ソースプログラム530および実行形式プログラム436の双方であってもよい。本実施の形態においては、サポート装置200はソースプログラム530を出力する。
図7は、本発明の実施の形態に係るサポート装置200が実行する出力処理のフローチャートである。出力処理は、サポート装置200のCPU201がPLCサポートプログラム520を実行することで行われる処理である。なお、サポート装置200が出力するユーザプログラムは、コンパイルがされる前のソースプログラム530であっても、コンパイルがされた後の実行形式プログラム436であってもよく、また、ソースプログラム530および実行形式プログラム436の双方であってもよい。本実施の形態においては、サポート装置200はソースプログラム530を出力する。
ステップS101において、CPU201は、保存の指示を受け付けたか否かを判断する。保存の指示は、マウス206またはキーボード205を介して入力される。保存の指示を受け付けていないと判断した場合(ステップS101においてNO)、CPU201は、処理を終了する。
保存の指示を受け付けたと判断した場合(ステップS101においてYES)、CPU201は、処理をステップS102に切り替える。
ステップS102において、CPU201は、保存対象のソースプログラム530をコンパイルする。
ステップS103において、CPU201は、コンパイルに成功したか否かを判断する。コンパイルに成功したか否かは、実行形式プログラム436が生成されたか否かに基づいて判定される。実行形式プログラム436が生成された場合、CPU201は、コンパイルに成功したと判断する。実行形式プログラムが生成されなかった場合、CPU201は、コンパイルに失敗したと判断する。
コンパイルに成功したと判断した場合(ステップS103においてYES)、CPU201は、処理をステップS104に切り替える。
ステップS104において、CPU201は、PLC100に接続されているか否かを判断する。PLC100に接続されている場合(ステップS104においてYES)、処理をステップS105に切り替える。
ステップS105において、CPU201は、実行形式プログラム436をPLC100に送信する。送信する実行形式プログラム436は、ステップS102において、保存対象のソースプログラム530をコンパイルしたことで得られる。
ステップS106において、CPU201は、転送に成功したか否かを判断する。CPU201は、PLC100の動作モードがプログラムモードから運転モードに正常に切り替わったか否かに応じて、転送に成功したか否かを判断する。PLC100は、送られた実行形式プログラム436をインストールする場合に、動作モードをプログラムモードに切替え、正常に転送された場合に運転モードに切替える一方、エラーが生じた場合は継続して動作モードをプログラムモードのままとする。CPU201は、PLC100の動作モードが運転モードであるときに転送に成功したと判断する。一方、CPU201は、所定期間経過した後もPLC100の動作モードがプログラムモードであるときに転送に失敗したと判断する。
転送に成功したと判断した場合(ステップS106においてYES)、CPU201は、処理をステップS107に切り替える。
PLC100と接続されていないと判断した場合(ステップS104においてNO)、CPU201は、処理をステップS107に切り替える。
ステップS107において、CPU201は、管理サーバ300に保存対象のソースプログラム530を送信して処理を終了する。
また、コンパイルに失敗したと判断した場合(ステップS103においてNO)、CPU201は、処理をステップS111に切り替える。
ステップS111において、CPU201は、コンパイルに失敗した旨を通知することを決定する。
また、PLC100への転送に失敗したと判断した場合(ステップS106においてNO)、CPU201は、処理をステップS112に切り替える。
ステップS112において、CPU201は、PLC100への転送に失敗した旨を通知することを決定する。
ステップS111またはステップS112の処理を実行した後、CPU201は、処理をステップS113に切り替える。
ステップS113において、CPU201は、ソースプログラム530を管理サーバ300に出力することができない旨を通知することを決定する。
ステップS114において、CPU201は、決定した通知を行う。具体的には、ステップS111~ステップS113において決定した内容をモニタ207に表示する。すなわち、CPU201は、プログラムを管理サーバ300に出力することができないことと、なぜ出力することができないかの原因とをモニタ207に表示する。
ステップS115において、CPU201は、保存の指示を破棄して処理を終了する。
なお、本発明の実施の形態において、出力することができない原因の通知を行なうものとしたが、出力することができないことのみを通知する構成であってもよい。
なお、本発明の実施の形態において、出力することができない原因の通知を行なうものとしたが、出力することができないことのみを通知する構成であってもよい。
[f2.機能構成]
図8は、出力処理の実行において機能する、本発明の実施の形態に係るサポート装置200の機能構成の一例を示す図である。
図8は、出力処理の実行において機能する、本発明の実施の形態に係るサポート装置200の機能構成の一例を示す図である。
サポート装置200は、ユーザプログラムを作成または編集するための作成部210と、作成部210によって作成または編集されたソースプログラム530から実行形式プログラム436を生成する生成部220と、作成部210によって作成または編集されたユーザプログラムを管理サーバ300に出力する出力部230とを備える。また、サポート装置200は、PLC100に実行形式プログラム436を転送する通信部240を備える。
作成部210は、ユーザの操作に従ってソースプログラム530を作成または編集する。作成部210が作成または編集したソースプログラム530は、たとえば、RAM203に一時的に保存される。
出力部230は、キーボード205およびマウス206などの入力部から入力された保存指示を受け付けると、生成部220に実行形式プログラム436を生成させ、生成が成功したか否か、すなわちコンパイルが成功したか否かを判断する。
出力部230は、コンパイルが成功したと判断した場合に、通信部240に実行形式プログラム436をPLC100に転送させる。通信部240は、実行形式プログラム436をPLC100に転送し、転送に成功したか否かを出力部230に通知する。
出力部230は、実行形式プログラム436の転送に成功した場合、管理サーバ300にソースプログラム530を出力する。また、出力部230は、処理結果をモニタ207に表示する。処理結果は、コンパイルの成功または失敗、実行形式プログラム436の転送の成功または失敗、およびソースプログラム530の出力結果を含む。
<G.制御プログラムのインストール>
生産現場に設置されたPLC100にインストールされたユーザプログラムは、管理サーバ300と接続されていないサポート装置を介して書き換えられることがある。また、管理サーバ300と接続されていない開発環境で作成されたユーザプログラムがPLC100にインストールされることがある。すなわち、生産現場においては、管理サーバ300が管理し得ない状況下で作成されたユーザプログラムがPLC100にインストールされていることがある。
生産現場に設置されたPLC100にインストールされたユーザプログラムは、管理サーバ300と接続されていないサポート装置を介して書き換えられることがある。また、管理サーバ300と接続されていない開発環境で作成されたユーザプログラムがPLC100にインストールされることがある。すなわち、生産現場においては、管理サーバ300が管理し得ない状況下で作成されたユーザプログラムがPLC100にインストールされていることがある。
たとえば、PLC100に既にインストールされているユーザプログラム(Ver.1.0とする)に新たな機能を追加するために、管理サーバ300が管理し得ない状況下でVer.1.0のユーザプログラムが書き換えられて、Ver.1.1のユーザプログラムとなった状況を考える。このような場合に、Ver1.0のユーザプログラムに他の機能が追加され、新たにVer.2.0のユーザプログラムをPLC100に再インストールしようとした場合、Ver1.1に書き換えられたときに追加された新たな機能が削除されてしまう虞がある。
新たな機能が削除されてしまうことを防止するため、本実施の形態においては、サポート装置200は、PLC100にインストールされたユーザプログラムに変更を加える際に、PLC100にインストールされているユーザプログラムと、管理サーバ300によって管理されているユーザプログラムとを比較し、比較結果を通知する。たとえば、サポート装置200は、管理サーバ300によって管理されているユーザプログラムに含まれるプログラムID532の中に、PLC100にインストールされているユーザプログラムに含まれるプログラムID532と一致するものが無い場合に、PLC100にインストールされているユーザプログラムが管理サーバ300上に保存されていない虞がある旨を通知する。
PLC100が実行中のユーザプログラムを変更するために新たなユーザプログラムをインストールする際に、本発明の実施の形態に係るサポート装置200が実行する導入処理について以下説明する。
[g1.フローチャート]
図9は、本発明の実施の形態に係るサポート装置200が実行する導入処理のフローチャートである。より具体的には、導入処理は、サポート装置200のCPU201がPLCサポートプログラム520を実行することで行われる処理である。
図9は、本発明の実施の形態に係るサポート装置200が実行する導入処理のフローチャートである。より具体的には、導入処理は、サポート装置200のCPU201がPLCサポートプログラム520を実行することで行われる処理である。
ステップS201において、CPU201は、導入の指示を受け付けたか否かを判断する。導入の指示を受け付けていないと判断した場合(ステップS201においてNO)、CPU201は、処理を終了する。導入の指示は、マウス206またはキーボード205を介して入力される。
導入の指示を受け付けたと判断した場合(ステップS201においてYES)、CPU201は、処理をステップS202に切り替える。
ステップS202において、CPU201は、PLC100にインストールされている実行形式プログラム436に含まれるプログラムID532を抽出し、管理サーバ300によって管理されているソースプログラム530の履歴情報と比較する。
ステップS203において、CPU201は、管理サーバ300によって管理されているソースプログラム530に含まれるプログラムID532の中に、PLC100にインストールされている実行形式プログラム436のプログラムID532と一致するプログラムID532があるか否かを判断する。一致するプログラムID532がない場合(ステップS203においてNO)、CPU201は、処理をステップS204に切り替える。
ステップS204において、CPU201は、一致するプログラムIDがない旨の通知を行う。たとえば、モニタ207に、一致する履歴情報がない旨を表示する。
ステップS205において、CPU201は、PLC100にインストールされている実行形式プログラム436を管理サーバ300に出力する。なお、PLC100にインストールされている実行形式プログラム436をサポート装置200のRAM203に一時的に保存し、ユーザの指示に基づいて、管理サーバ300に出力するか否かを決定するようにしてもよい。また、実行形式プログラム436を管理サーバ300に出力するとしたが、CPU201は、逆コンパイルして、ソースプログラム530を生成して管理サーバ300に出力してもよい。CPU201は、PLC100にインストールされている実行形式プログラム436を管理サーバ300に出力して、処理をステップS206に切り替える。
一致するプログラムID532がある場合(ステップS203においてYES)、CPU201は、処理をステップS206に切り替える。
ステップS206において、CPU201は、導入対象の実行形式プログラム436をPLC100に転送して処理を終了する。なお、導入対象の実行形式プログラム436が管理サーバに保存されていない場合は、導入対象の実行形式プログラム436およびソースプログラム530のうちの少なくとも一方を、管理サーバ300にも出力するようにしてもよい。
[g2.機能構成]
図10は、導入処理の実行において機能する、本発明の実施の形態に係るサポート装置200の機能構成の一例を示す図である。
図10は、導入処理の実行において機能する、本発明の実施の形態に係るサポート装置200の機能構成の一例を示す図である。
サポート装置200は、比較部250を備えてもよい。比較部250は、導入の指示を受け付けたことに基づいて、PLC100において実行されている実行形式プログラム436と、管理サーバ300が管理している各バージョンのユーザプログラムとを比較し、比較結果をモニタ207に出力する。
具体的には、比較部250は、管理サーバ300が記憶しているプログラム情報312に含まれるバージョンごとのプログラムID532と、PLC100において実行されている実行形式プログラム436に含まれるプログラムID532とを比較する。
<H.作用・効果>
以上のように、制御プログラムをバージョンごとに管理可能な開発環境を提供できる。そのため、一の制御プログラムに対して加えた変更の変遷を管理することができ、複数人でのプログラム開発を行なうことが容易になる。さらに、サポート装置200は、少なくとも、実行形式プログラム436を生成することができたことを条件にユーザプログラムを管理サーバ300に出力する。そのため、実行形式プログラム436を生成することができない不具合のあるユーザプログラムが管理サーバ300に保存されてしまうことを防止することができる。その結果、不具合のあるユーザプログラムを用いてプログラム開発が進められてしまうことや、不具合のあるユーザプログラムを過ってPLC100に導入してしまうことを予め防止することができる。
以上のように、制御プログラムをバージョンごとに管理可能な開発環境を提供できる。そのため、一の制御プログラムに対して加えた変更の変遷を管理することができ、複数人でのプログラム開発を行なうことが容易になる。さらに、サポート装置200は、少なくとも、実行形式プログラム436を生成することができたことを条件にユーザプログラムを管理サーバ300に出力する。そのため、実行形式プログラム436を生成することができない不具合のあるユーザプログラムが管理サーバ300に保存されてしまうことを防止することができる。その結果、不具合のあるユーザプログラムを用いてプログラム開発が進められてしまうことや、不具合のあるユーザプログラムを過ってPLC100に導入してしまうことを予め防止することができる。
サポート装置200はモニタ207を備え、管理サーバ300にユーザプログラムを出力することができない場合に、その旨をモニタ207に表示することで通知する。これにより、ユーザは、作成または編集したユーザプログラムに欠陥があることを認識することができる。その結果、不具合のあるプログラムを用いてプログラム開発が進められてしまうことや、不具合のあるプログラムを過ってPLC100に導入してしまうことを予め防止することができる。
サポート装置200は、実行形式プログラム436を生成できたことに加えて、PLC100に実行形式プログラム436を転送できたことを条件にユーザプログラムを管理サーバ300に出力する。そのため、PLC100に転送することができないような不具合のあるユーザプログラムが管理サーバ300に保存されてしまうことを防止することができる。その結果、不具合のあるユーザプログラムを用いてプログラム開発が進められてしまうことや、不具合のあるユーザプログラムを過ってPLC100に導入してしまうことを予め防止することができる。
サポート装置200は、PLC100にインストールされたユーザプログラムに変更を加える際に、PLC100にインストールされているユーザプログラムと、管理サーバ300によって管理されているユーザプログラムとを比較し、比較結果を通知する。そのため、管理サーバ300が管理し得ない状況下で作成されたユーザプログラムについても、管理することができる。その結果、管理サーバ300が管理することのできる範囲が広がる。これにより、作成された機能を過って削除してしまうことを防止することができる。
サポート装置200と、管理サーバ300とは別体である。そのため、サポート装置200の処理負担を軽減することができる。
§3 変形例
<変形例1>
上記の実施の形態において、サポート装置200のCPU201は、保存の指示を受け付けたことに基づいてステップS102以降の処理を実行するとした。すなわち、上記の実施の形態において、サポート装置200と管理サーバ300とは常時通信可能に接続されていることを前提とした上で、出力処理を実行する例を示した。なお、サポート装置200と管理サーバ300とは、常時、通信可能に接続されている必要はない。たとえば、サポート装置200のCPU201は、保存の指示を受け付けたか否かではなく、管理サーバ300との接続が開始されたことに応じて、ステップS102以降の処理を実行するようにしてもよい。これにより、管理サーバ300と接続されていない期間に作成または編集されたユーザプログラムに対する保存の指示を改めて行わなくとも、このユーザプログラムを管理することができる。すなわち、管理サーバ300と接続されていない期間に作成または編集されたユーザプログラムに対する管理を強化することができる。
<変形例1>
上記の実施の形態において、サポート装置200のCPU201は、保存の指示を受け付けたことに基づいてステップS102以降の処理を実行するとした。すなわち、上記の実施の形態において、サポート装置200と管理サーバ300とは常時通信可能に接続されていることを前提とした上で、出力処理を実行する例を示した。なお、サポート装置200と管理サーバ300とは、常時、通信可能に接続されている必要はない。たとえば、サポート装置200のCPU201は、保存の指示を受け付けたか否かではなく、管理サーバ300との接続が開始されたことに応じて、ステップS102以降の処理を実行するようにしてもよい。これにより、管理サーバ300と接続されていない期間に作成または編集されたユーザプログラムに対する保存の指示を改めて行わなくとも、このユーザプログラムを管理することができる。すなわち、管理サーバ300と接続されていない期間に作成または編集されたユーザプログラムに対する管理を強化することができる。
<変形例2>
図11は、変形例2における制御システム1bの概略構成を示す模式図である。制御システム1bは、図2に示す制御システム1と比較して、PLC100の代わりにPLC100bを備え、サポート装置200の代わりにサポート装置200bを備える点で異なる。
図11は、変形例2における制御システム1bの概略構成を示す模式図である。制御システム1bは、図2に示す制御システム1と比較して、PLC100の代わりにPLC100bを備え、サポート装置200の代わりにサポート装置200bを備える点で異なる。
PLC100bは、PLC100と比較して、管理サーバ300と通信するためのアクセス部142を備える点で異なる。アクセス部142を備えるPLC100bは、サポート装置200が備える生成部220、出力部230、比較部250に係る機能を備えていてもよい(図11中の生成部144、出力部146、比較部148)。また、サポート装置200bは、サポート装置200と比較して、生成部220および出力部230を備えていない点で異なる。すなわち、変形例2における制御システム1bにおいて、PLC100bが管理サーバ300と通信可能であり、コンパイル機能をPLC100bが備える。
サポート装置200bは、ソースプログラム530をPLC100bに転送する。PLC100bの生成部144は、ソースプログラム530を受信すると、受信したソースプログラム530に基づいて実行形式プログラム436を生成する。出力部146は、実行形式プログラム436が生成されたことに基づいて、ユーザプログラムを管理サーバ300に出力する。
このように、PLC100bが出力部146を備えることにより、管理サーバ300が管理することのできない開発環境下で開発されたユーザプログラムのうち、PLC100bにインストールされたユーザプログラムについては管理することができる。なお、出力部146は、実行形式プログラム436を受信したことに基づいて、管理サーバ300にユーザプログラムを出力するようにしてもよい。
比較部148は、管理サーバ300と通信するためのネットワークに接続されたことに基づいて、インストールされている実行形式プログラム436と、管理サーバ300が管理している各バージョンのユーザプログラムとを比較し、比較結果を出力する。出力先は、たとえば、PLC100bに設けられたLEDなどであってもよく、また、PLC100bがサポート装置200や携帯端末やプリンターなどの機器と通信可能に接続されている場合には、これらの機器であってもよい。比較部148は、管理サーバ300が管理している各バージョンのユーザプログラムの中に、インストールされている実行形式プログラム436と一致するプログラムがない場合にのみ比較結果を出力するようにしてもよい。
PLC100bが比較機能を備えることにより、管理サーバ300との通信手段を有していないサポート装置やメモリカード130からPLC100bに実行形式プログラム436をインストールした場合であっても、PLC100bにインストールされた全てのユーザプログラムについて管理することができる。
<変形例3>
図12は、変形例3における制御システム1cの概略構成を示す模式図である。制御システム1cは、図2に示す制御システム1と比較して、PLC100の代わりにPLC100cを備え、PLC100cが管理サーバ300に係る機能として管理部300cを備える点で異なる。
図12は、変形例3における制御システム1cの概略構成を示す模式図である。制御システム1cは、図2に示す制御システム1と比較して、PLC100の代わりにPLC100cを備え、PLC100cが管理サーバ300に係る機能として管理部300cを備える点で異なる。
PLC100cは、制御プログラムの変更履歴310を保存するための記憶部を有していてもよく、また、PLC100cと通信可能なサーバに変更履歴310を保存するようにしてもよい。PLC100cが、管理部300cを備えることで、管理サーバ300との通信手段を有していないサポート装置やメモリカード130からPLC100cに実行形式プログラム436をインストールした場合であっても、PLC100cにインストールされた全てのユーザプログラムについて管理することができる。
なお、PLC100cが制御プログラムの変更履歴310を保存するための記憶部を有している場合、外部のサーバに変更履歴310を保存している場合に比べて、変更履歴310を早く取得することができる。一方、外部のサーバに変更履歴310を保存する場合、PLC100cの記憶領域を省力化することができる。
<変形例4>
上記の実施の形態においては、サポート装置200がユーザプログラムを出力するか否かを判断するものとした。たとえば、サポート装置200は保存の指示を受け付けたことに基づいてユーザプログラムを管理サーバ300に出力するようにしてもよい。この場合、管理サーバ300は、実行形式プログラムを生成する機能と、出力されたユーザプログラムを管理対象とするか否か(保存するか否か)を決定する機能とを備えてもよい。
上記の実施の形態においては、サポート装置200がユーザプログラムを出力するか否かを判断するものとした。たとえば、サポート装置200は保存の指示を受け付けたことに基づいてユーザプログラムを管理サーバ300に出力するようにしてもよい。この場合、管理サーバ300は、実行形式プログラムを生成する機能と、出力されたユーザプログラムを管理対象とするか否か(保存するか否か)を決定する機能とを備えてもよい。
また、管理サーバ300は、ユーザプログラムを保存しないと決定した場合に、保存しない旨をサポート装置200に通知する機能を備えてもよい。サポート装置200は、ユーザプログラムが保存されなかった旨の通知を受けて、ユーザにその通知を行ってもよい。
<変形例5>
図13は、変形例5における制御システム1eの概略構成を示す模式図である。制御システム1eは、図2に示す制御システム1と比較して、PLC100の代わりにPLC100eを備え、サポート装置200の代わりにサポート装置200eを備える点で異なる。
図13は、変形例5における制御システム1eの概略構成を示す模式図である。制御システム1eは、図2に示す制御システム1と比較して、PLC100の代わりにPLC100eを備え、サポート装置200の代わりにサポート装置200eを備える点で異なる。
PLC100eは、PLC100と比較して、制御プログラムのバージョンを管理するための管理部154をさらに備える点で異なる。すなわち、制御システム1eは、PLC100eと、管理サーバ300との両方で制御プログラムのバージョンを管理する点で、制御システム1と異なる。なお、管理部154の機能は、管理サーバ300と共通するため、説明を省略する。ここで、変形例5にかかる管理部154は、PLC100eで実行される制御プログラムについて管理し、他のPLCで実行される制御プログラムについては管理しない。一方、管理サーバ300は、複数の制御プログラムについて管理することができる。
たとえば、ユーザは、サポート装置200eを管理サーバ300と接続させない状態(オフライン)で、PLC100eを利用して制御プログラムを作成することもある。このような場合に、管理サーバ300のみで制御プログラムのバージョンを管理している場合に、オフラインで作成された制御プログラムについては管理対象から外れてしまう虞がある。
変形例5に係る制御システム1eにおいては、PLC100eと、管理サーバ300との両方で制御プログラムのバージョンを管理することで、オフラインで作成された制御プログラムについても管理対象に含めることができ、管理範囲が広いバージョン管理システムを提供できる。
PLC100eと、管理サーバ300との両方で制御プログラムのバージョンを管理することで、管理範囲が広いバージョン管理システムを提供できる一方、PLC100eと、管理サーバ300とで、変更履歴を同期させる必要がある。変更履歴310をPLC100eと、管理サーバ300とで同期させるため、サポート装置200eは、比較部250eを備える。比較部250eは、サポート装置200eがPLC100eおよび管理サーバ300のいずれとも通信可能に接続されているときに、管理部154が記憶する変更履歴154aと、管理サーバ300が記憶する変更履歴310とを比較し、比較結果を出力する。たとえば、比較結果はモニタ207に出力する。ユーザは、モニタ207に出力された比較結果に基づいて、変更履歴310と変更履歴154aとを同期させることができる。
なお、ユーザ操作に応じて変更履歴310と変更履歴154aとを同期させる例を示したが、ユーザ操作に関わらず、変更履歴310と変更履歴154aとが一致していない場合に同期させるようにしてもよい。
なお、PLC100eは、管理サーバ300と通信するためのアクセス部142eを備えてもよい。たとえば、PLC100eは、サポート装置200eから制御プログラムが送られる度に、管理部154は、アクセス部142eを介して接続されている管理サーバ300によって管理されている制御プログラムと送られた制御プログラムとを比較して変更履歴310と変更履歴154aとを同期させるようにしてもよい。
また、変更履歴310と変更履歴154aとの比較について、比較部250eは、プログラムID532のみを比較するようにしてもよく、また、履歴情報314を含む情報を比較してもよい。たとえば、履歴情報314を含む情報を比較することで、プログラムIDは変更履歴310と変更履歴154aとで一致しているにも関わらず、履歴情報314が一致しないようなことも検出することができる。
§4 付記
以上のように、上記の実施の形態および変形例は以下のような開示を含む。
以上のように、上記の実施の形態および変形例は以下のような開示を含む。
<構成1>
制御対象を制御する制御装置(100,100e)で実行される制御プログラムの開発を支援するサポート装置(200,200e)であって、
制御プログラムを作成または編集するための作成部(210,210a)と、
前記作成部によって得られた作成プログラム(530)から前記制御装置が実行可能な形式の実行形式プログラム(436)を生成する生成部(220,220a)と、
制御プログラムをバージョンごとに管理する管理サーバ(300,300c)に、前記作成部が作成または編集した制御プログラムを一のバージョンの制御プログラムとして保存するために、前記作成部が作成または編集した制御プログラムを前記管理サーバに出力する出力部(230,230a)とを備え、
前記出力部は、前記実行形式プログラムの生成が成功したことを少なくとも含む出力条件が成立していることを条件に前記作成部が作成または編集した制御プログラムを前記管理サーバに出力する、サポート装置。
制御対象を制御する制御装置(100,100e)で実行される制御プログラムの開発を支援するサポート装置(200,200e)であって、
制御プログラムを作成または編集するための作成部(210,210a)と、
前記作成部によって得られた作成プログラム(530)から前記制御装置が実行可能な形式の実行形式プログラム(436)を生成する生成部(220,220a)と、
制御プログラムをバージョンごとに管理する管理サーバ(300,300c)に、前記作成部が作成または編集した制御プログラムを一のバージョンの制御プログラムとして保存するために、前記作成部が作成または編集した制御プログラムを前記管理サーバに出力する出力部(230,230a)とを備え、
前記出力部は、前記実行形式プログラムの生成が成功したことを少なくとも含む出力条件が成立していることを条件に前記作成部が作成または編集した制御プログラムを前記管理サーバに出力する、サポート装置。
<構成2>
前記出力条件が成立しなかったことを通知する通知部(207)をさらに備える、構成1に記載のサポート装置。
前記出力条件が成立しなかったことを通知する通知部(207)をさらに備える、構成1に記載のサポート装置。
<構成3>
前記出力条件は、前記制御装置に前記実行形式プログラムを転送できたことを含む、構成1または構成2に記載のサポート装置。
前記出力条件は、前記制御装置に前記実行形式プログラムを転送できたことを含む、構成1または構成2に記載のサポート装置。
<構成4>
前記制御装置において実行されている制御プログラムを変更する操作を受け付けたときに、前記制御装置において実行されている制御プログラムと、前記管理サーバが管理している各バージョンの制御プログラムとを比較し、比較結果を出力する比較部(250)をさらに備える、構成1~構成3のうちいずれかに記載のサポート装置。
前記制御装置において実行されている制御プログラムを変更する操作を受け付けたときに、前記制御装置において実行されている制御プログラムと、前記管理サーバが管理している各バージョンの制御プログラムとを比較し、比較結果を出力する比較部(250)をさらに備える、構成1~構成3のうちいずれかに記載のサポート装置。
<構成5>
前記管理サーバは、前記サポート装置とは別に設けられている、構成1~構成4のうちいずれかに記載のサポート装置。
前記管理サーバは、前記サポート装置とは別に設けられている、構成1~構成4のうちいずれかに記載のサポート装置。
<構成6>
前記作成部は、前記管理サーバと接続されているか否かに関わらず制御プログラムを作成または編集し、
前記出力部は、前記管理サーバとの接続を開始したことに応じて、前記管理サーバと接続されていないときに作成または編集された制御プログラムを、前記出力条件が成立していることを条件に前記管理サーバに出力する、構成5に記載のサポート装置。
前記作成部は、前記管理サーバと接続されているか否かに関わらず制御プログラムを作成または編集し、
前記出力部は、前記管理サーバとの接続を開始したことに応じて、前記管理サーバと接続されていないときに作成または編集された制御プログラムを、前記出力条件が成立していることを条件に前記管理サーバに出力する、構成5に記載のサポート装置。
<構成7>
制御対象を制御する制御装置(100,100b,100c,100e)で実行される制御プログラムの開発を支援するための制御システム(1,1a,1b,1c,1e)であって、
制御プログラムを作成または編集するための作成部(210,210a)と、
前記作成部によって得られた作成プログラムから前記制御装置が実行可能な形式の実行形式プログラムを生成する生成部(220,220a,144)と、
制御プログラムをバージョンごとに管理する管理サーバ(300,300a,300c)と、
前記作成部が作成または編集した制御プログラムを一のバージョンの制御プログラムとして保存するために、前記作成部が作成または編集した制御プログラムを前記管理サーバに出力する出力部(230,230a,146)とを備え、
前記出力部は、前記実行形式プログラムの生成が成功したことを少なくとも含む出力条件が成立していることを条件に前記作成部が作成または編集した制御プログラムを前記管理サーバに出力する、制御システム。
制御対象を制御する制御装置(100,100b,100c,100e)で実行される制御プログラムの開発を支援するための制御システム(1,1a,1b,1c,1e)であって、
制御プログラムを作成または編集するための作成部(210,210a)と、
前記作成部によって得られた作成プログラムから前記制御装置が実行可能な形式の実行形式プログラムを生成する生成部(220,220a,144)と、
制御プログラムをバージョンごとに管理する管理サーバ(300,300a,300c)と、
前記作成部が作成または編集した制御プログラムを一のバージョンの制御プログラムとして保存するために、前記作成部が作成または編集した制御プログラムを前記管理サーバに出力する出力部(230,230a,146)とを備え、
前記出力部は、前記実行形式プログラムの生成が成功したことを少なくとも含む出力条件が成立していることを条件に前記作成部が作成または編集した制御プログラムを前記管理サーバに出力する、制御システム。
<構成8>
制御プログラムをバージョンごとに管理する管理部(154)を有する制御装置(100e)と、
前記管理部が管理している各バージョンの制御プログラム(154a)と、前記管理サーバが管理している各バージョンの制御プログラム(310)とを比較し、比較結果を出力する比較部(250e)をさらに備える、構成7に記載の制御システム。
制御プログラムをバージョンごとに管理する管理部(154)を有する制御装置(100e)と、
前記管理部が管理している各バージョンの制御プログラム(154a)と、前記管理サーバが管理している各バージョンの制御プログラム(310)とを比較し、比較結果を出力する比較部(250e)をさらに備える、構成7に記載の制御システム。
<構成9>
制御対象を制御する制御装置(100,100e)で実行される制御プログラムの開発を支援する開発支援プログラム(520)であって、
前記開発支援プログラムはコンピュータに、
作成または編集によって得られた作成プログラム(530)から前記制御装置が実行可能な形式の実行形式プログラム(436)を生成するステップ(S102)と、
制御プログラムをバージョンごとに管理する管理サーバ(300)に、前記実行形式プログラムの生成が成功したことを少なくとも含む出力条件が成立していることを条件に、作成または編集によって得られた制御プログラムを一のバージョンの制御プログラムとして保存するために、作成または編集によって得られた制御プログラムを前記管理サーバに出力するステップ(S103,S107)とを実行させる、開発支援プログラム。
制御対象を制御する制御装置(100,100e)で実行される制御プログラムの開発を支援する開発支援プログラム(520)であって、
前記開発支援プログラムはコンピュータに、
作成または編集によって得られた作成プログラム(530)から前記制御装置が実行可能な形式の実行形式プログラム(436)を生成するステップ(S102)と、
制御プログラムをバージョンごとに管理する管理サーバ(300)に、前記実行形式プログラムの生成が成功したことを少なくとも含む出力条件が成立していることを条件に、作成または編集によって得られた制御プログラムを一のバージョンの制御プログラムとして保存するために、作成または編集によって得られた制御プログラムを前記管理サーバに出力するステップ(S103,S107)とを実行させる、開発支援プログラム。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。また、実施の形態および各変形例において説明された発明は、可能な限り、単独でも、組合せても、実施することが意図される。
1,1a,1b,1c,1e 制御システム、9 CD-ROM、10 ローカルネットワーク、20 接続ケーブル、100,100b,100c,100e PLC、102 プロセッサ、104 チップセット、106 主メモリ、108 フラッシュメモリ、122 内部バスコントローラ、124 フィールドバスコントローラ、126 USBコネクタ、128 メモリカードインターフェイス、130 メモリカード、142,142e アクセス部、144,220,220a 生成部、146,230,230a 出力部、148,250,250e 比較部、154,300c 管理部、154a,310 変更履歴、200,200b,200e サポート装置、201 CPU、202 ROM、203 RAM、204 HDD、205 キーボード、206 マウス、207 モニタ、208 CDROMドライブ、209 通信IF、210,210a 作成部、300,300a 管理サーバ、312 プログラム情報、314 履歴情報、400 リアルタイムOS、410 システムプログラム、412 スケジューラプログラム、414 出力処理プログラム、416 入力処理プログラム、418 IO処理プログラム、420 その他のシステムプログラム、430 制御プログラム、432 シーケンス命令演算プログラム、434 モーション演算プログラム、436 実行形式プログラム、510 OS、520 PLCサポートプログラム、521 エディタプログラム、522 コンパイラプログラム、523 デバッガプログラム、524 管理プログラム、526 通信プログラム、530 ソースプログラム、532 プログラムID。
Claims (9)
- 制御対象を制御する制御装置で実行される制御プログラムの開発を支援するサポート装置であって、
制御プログラムを作成または編集するための作成部と、
前記作成部によって得られた作成プログラムから前記制御装置が実行可能な形式の実行形式プログラムを生成する生成部と、
制御プログラムをバージョンごとに管理する管理サーバに、前記作成部が作成または編集した制御プログラムを一のバージョンの制御プログラムとして保存するために、前記作成部が作成または編集した制御プログラムを前記管理サーバに出力する出力部とを備え、
前記出力部は、前記実行形式プログラムの生成が成功したことを少なくとも含む出力条件が成立していることを条件に前記作成部が作成または編集した制御プログラムを前記管理サーバに出力する、サポート装置。 - 前記出力条件が成立しなかったことを通知する通知部をさらに備える、請求項1に記載のサポート装置。
- 前記出力条件は、前記制御装置に前記実行形式プログラムを転送できたことを含む、請求項1または請求項2に記載のサポート装置。
- 前記制御装置において実行されている制御プログラムを変更する操作を受け付けたときに、前記制御装置において実行されている制御プログラムと、前記管理サーバが管理している各バージョンの制御プログラムとを比較し、比較結果を出力する比較部をさらに備える、請求項1~請求項3のうちいずれかに記載のサポート装置。
- 前記管理サーバは、前記サポート装置とは別に設けられている、請求項1~請求項4のうちいずれかに記載のサポート装置。
- 前記作成部は、前記管理サーバと接続されているか否かに関わらず制御プログラムを作成または編集し、
前記出力部は、前記管理サーバとの接続を開始したことに応じて、前記管理サーバと接続されていないときに作成または編集された制御プログラムを、前記出力条件が成立していることを条件に前記管理サーバに出力する、請求項5に記載のサポート装置。 - 制御対象を制御する制御装置で実行される制御プログラムの開発を支援するための制御システムであって、
制御プログラムを作成または編集するための作成部と、
前記作成部によって得られた作成プログラムから前記制御装置が実行可能な形式の実行形式プログラムを生成する生成部と、
制御プログラムをバージョンごとに管理する管理サーバと、
前記作成部が作成または編集した制御プログラムを一のバージョンの制御プログラムとして保存するために、前記作成部が作成または編集した制御プログラムを前記管理サーバに出力する出力部とを備え、
前記出力部は、前記実行形式プログラムの生成が成功したことを少なくとも含む出力条件が成立していることを条件に前記作成部が作成または編集した制御プログラムを前記管理サーバに出力する、制御システム。 - 制御プログラムをバージョンごとに管理する管理部を有する制御装置と、
前記管理部が管理している各バージョンの制御プログラムと、前記管理サーバが管理している各バージョンの制御プログラムとを比較し、比較結果を出力する比較部をさらに備える、請求項7に記載の制御システム。 - 制御対象を制御する制御装置で実行される制御プログラムの開発を支援する開発支援プログラムであって、
前記開発支援プログラムはコンピュータに、
作成または編集によって得られた作成プログラムから前記制御装置が実行可能な形式の実行形式プログラムを生成するステップと、
制御プログラムをバージョンごとに管理する管理サーバに、前記実行形式プログラムの生成が成功したことを少なくとも含む出力条件が成立していることを条件に、作成または編集によって得られた制御プログラムを一のバージョンの制御プログラムとして保存するために、作成または編集によって得られた制御プログラムを前記管理サーバに出力するステップとを実行させる、開発支援プログラム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2018-102261 | 2018-05-29 | ||
| JP2018102261A JP7067273B2 (ja) | 2018-05-29 | 2018-05-29 | サポート装置、制御システム、および開発支援プログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2019230262A1 true WO2019230262A1 (ja) | 2019-12-05 |
Family
ID=68696944
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2019/017153 Ceased WO2019230262A1 (ja) | 2018-05-29 | 2019-04-23 | サポート装置、制御システム、および開発支援プログラム |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP7067273B2 (ja) |
| WO (1) | WO2019230262A1 (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2023145361A1 (ja) * | 2022-01-31 | 2023-08-03 | オムロン株式会社 | ロボット制御システムおよびロボット制御システムを構成する方法 |
| WO2023145362A1 (ja) * | 2022-01-31 | 2023-08-03 | オムロン株式会社 | ロボット制御システムおよびロボット制御システムを構成する方法 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008282363A (ja) * | 2007-05-14 | 2008-11-20 | Keyence Corp | プログラマブルコントローラ、プログラム作成支援装置、コンピュータプログラム及びplcシステム |
| JP2013168031A (ja) * | 2012-02-15 | 2013-08-29 | Fuji Electric Co Ltd | プログラマブルコントローラシステム、その支援装置、プログラム |
| WO2015063831A1 (ja) * | 2013-10-28 | 2015-05-07 | 三菱電機株式会社 | 開発システム及び端末装置及び開発方法及びプログラム |
| JP2016081323A (ja) * | 2014-10-17 | 2016-05-16 | 株式会社東芝 | 制御プログラム保守装置、及び制御プログラム保守方法 |
-
2018
- 2018-05-29 JP JP2018102261A patent/JP7067273B2/ja active Active
-
2019
- 2019-04-23 WO PCT/JP2019/017153 patent/WO2019230262A1/ja not_active Ceased
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008282363A (ja) * | 2007-05-14 | 2008-11-20 | Keyence Corp | プログラマブルコントローラ、プログラム作成支援装置、コンピュータプログラム及びplcシステム |
| JP2013168031A (ja) * | 2012-02-15 | 2013-08-29 | Fuji Electric Co Ltd | プログラマブルコントローラシステム、その支援装置、プログラム |
| WO2015063831A1 (ja) * | 2013-10-28 | 2015-05-07 | 三菱電機株式会社 | 開発システム及び端末装置及び開発方法及びプログラム |
| JP2016081323A (ja) * | 2014-10-17 | 2016-05-16 | 株式会社東芝 | 制御プログラム保守装置、及び制御プログラム保守方法 |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2023145361A1 (ja) * | 2022-01-31 | 2023-08-03 | オムロン株式会社 | ロボット制御システムおよびロボット制御システムを構成する方法 |
| WO2023145362A1 (ja) * | 2022-01-31 | 2023-08-03 | オムロン株式会社 | ロボット制御システムおよびロボット制御システムを構成する方法 |
| JP2023111377A (ja) * | 2022-01-31 | 2023-08-10 | オムロン株式会社 | ロボット制御システムおよびロボット制御システムを構成する方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP7067273B2 (ja) | 2022-05-16 |
| JP2019207534A (ja) | 2019-12-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5039428B2 (ja) | プログラマブルコントローラ及びplcシステム | |
| EP3410296B1 (en) | Starting method and device for embedded device | |
| JP6520545B2 (ja) | サポート装置およびサポートプログラム | |
| JP2007257046A (ja) | 複数osバージョン用ソフトウェア生成装置及び複数osバージョン用ソフトウェア生成支援プログラム | |
| CN114217787A (zh) | 组件化应用程序的开发方法、装置及存储介质 | |
| KR20200050886A (ko) | 엔지니어링 장치, 엔지니어링 장치의 제어 방법 및 프로그램 | |
| TW201721412A (zh) | 選擇及載入韌體卷區之技術 | |
| JP2009146229A (ja) | プログラマブルコントローラシステム | |
| JP2017142794A (ja) | プログラマブルコントローラシステム、そのコントローラ、支援装置、hci装置、二重化コントローラシステム | |
| JP7067273B2 (ja) | サポート装置、制御システム、および開発支援プログラム | |
| WO2015136607A1 (ja) | ソフトウェア開発支援システム、ソフトウェア開発支援方法およびソフトウェア開発支援プログラム | |
| JP2009157533A (ja) | プログラマブルコントローラシステム | |
| CN110554861B (zh) | 具有编译和读取-评估-打印-循环操作的软件开发环境 | |
| JP7172864B2 (ja) | サポート装置およびサポートプログラム | |
| CN112204479B (zh) | 程序管理系统、编程辅助装置、程序管理方法及编程辅助程序 | |
| JP5051377B2 (ja) | プログラム開発支援装置の動作仕様管理方法 | |
| US7861236B2 (en) | System and method for version control for software development | |
| WO2019171794A1 (ja) | サポート装置およびサポートプログラム | |
| CN115469873A (zh) | 安卓系统下的编译方法、终端和管理系统平台 | |
| JP7151227B2 (ja) | 開発システム、およびサポート装置 | |
| JP5906609B2 (ja) | デバッグ支援プログラム、デバッグ支援方法及びデバッグ支援システム | |
| JP2009098963A (ja) | モジュール自動生成システム | |
| KR102760575B1 (ko) | 다종 운영체제에서 구동 가능한 메시지 처리 시스템 및 방법 | |
| JP7848076B2 (ja) | コントロールシステム及び方法 | |
| JP2012093979A (ja) | OSGiバンドル及びデプロイメントパッケージ自動作成システム、自動作成方法及び自動作成ツール |
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: 19811401 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 19811401 Country of ref document: EP Kind code of ref document: A1 |