WO2019230262A1 - Dispositif de support, système de commande et programme d'aide au développement - Google Patents

Dispositif de support, système de commande et programme d'aide au développement Download PDF

Info

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
Application number
PCT/JP2019/017153
Other languages
English (en)
Japanese (ja)
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 オムロン株式会社
Publication of WO2019230262A1 publication Critical patent/WO2019230262A1/fr

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • 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 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.

Abstract

La présente invention a pour objet de fournir un dispositif de support, un système de commande et un programme d'aide au développement, qui sont capables de fournir un environnement de développement avec lequel une gestion de version d'un programme de commande est possible. L'invention concerne un système de commande comprenant un serveur de gestion pour gérer chaque version d'un programme de commande. Le programme de commande créé ou édité est fourni au serveur de gestion à condition que le programme de commande puisse être converti en un programme ayant un format qui peut être exécuté par un PLC.
PCT/JP2019/017153 2018-05-29 2019-04-23 Dispositif de support, système de commande et programme d'aide au développement WO2019230262A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018102261A JP7067273B2 (ja) 2018-05-29 2018-05-29 サポート装置、制御システム、および開発支援プログラム
JP2018-102261 2018-05-29

Publications (1)

Publication Number Publication Date
WO2019230262A1 true WO2019230262A1 (fr) 2019-12-05

Family

ID=68696944

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/017153 WO2019230262A1 (fr) 2018-05-29 2019-04-23 Dispositif de support, système de commande et programme d'aide au développement

Country Status (2)

Country Link
JP (1) JP7067273B2 (fr)
WO (1) WO2019230262A1 (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023145362A1 (fr) * 2022-01-31 2023-08-03 オムロン株式会社 Système de commande de robot et procédé de configuration de système de commande de robot
WO2023145361A1 (fr) * 2022-01-31 2023-08-03 オムロン株式会社 Système de commande de robot et procédé de configuration de système de commande de robot

Citations (4)

* Cited by examiner, † Cited by third party
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 (fr) * 2013-10-28 2015-05-07 三菱電機株式会社 Système de développement, dispositif de terminal, procédé de développement et programme
JP2016081323A (ja) * 2014-10-17 2016-05-16 株式会社東芝 制御プログラム保守装置、及び制御プログラム保守方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
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 (fr) * 2013-10-28 2015-05-07 三菱電機株式会社 Système de développement, dispositif de terminal, procédé de développement et programme
JP2016081323A (ja) * 2014-10-17 2016-05-16 株式会社東芝 制御プログラム保守装置、及び制御プログラム保守方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023145362A1 (fr) * 2022-01-31 2023-08-03 オムロン株式会社 Système de commande de robot et procédé de configuration de système de commande de robot
WO2023145361A1 (fr) * 2022-01-31 2023-08-03 オムロン株式会社 Système de commande de robot et procédé de configuration de système de commande de robot

Also Published As

Publication number Publication date
JP2019207534A (ja) 2019-12-05
JP7067273B2 (ja) 2022-05-16

Similar Documents

Publication Publication Date Title
JP5039428B2 (ja) プログラマブルコントローラ及びplcシステム
JP4828271B2 (ja) 複数osバージョン用ソフトウェア生成装置及び複数osバージョン用ソフトウェア生成支援プログラム
US11080066B2 (en) Method for starting embedded apparatus, and apparatus
EP3336627B1 (fr) Dispositif de support, procédé, et support d'enregistrement sur lequel est stocké un programme de support
JP2008282362A (ja) プログラム編集支援装置、コンピュータプログラム、プログラム編集支援方法及びplcシステム
US20110126179A1 (en) Method and System for Dynamic Patching Software Using Source Code
WO2019230262A1 (fr) Dispositif de support, système de commande et programme d'aide au développement
TW201721412A (zh) 選擇及載入韌體卷區之技術
CN110554861B (zh) 具有编译和读取-评估-打印-循环操作的软件开发环境
US7861236B2 (en) System and method for version control for software development
JP2009157533A (ja) プログラマブルコントローラシステム
JP2017142794A (ja) プログラマブルコントローラシステム、そのコントローラ、支援装置、hci装置、二重化コントローラシステム
KR20200050886A (ko) 엔지니어링 장치, 엔지니어링 장치의 제어 방법 및 프로그램
JP5051377B2 (ja) プログラム開発支援装置の動作仕様管理方法
JP6541902B1 (ja) プログラム管理システム、プログラミング支援装置、プログラム管理方法、およびプログラミング支援プログラム
JP4702194B2 (ja) プログラム開発支援装置、プログラム開発支援方法およびプログラム開発支援プログラム
JP2006302066A (ja) リモート実行機能を備えたメンテナンスシステムおよびその方法
JP7151227B2 (ja) 開発システム、およびサポート装置
JP2013041546A (ja) デバッグ支援プログラム、デバッグ支援方法及びデバッグ支援システム
JP2009098963A (ja) モジュール自動生成システム
JP2007004516A (ja) 組込みシステムのプログラムデバッグ方法
JP2012093979A (ja) OSGiバンドル及びデプロイメントパッケージ自動作成システム、自動作成方法及び自動作成ツール
WO2022190417A1 (fr) Dispositif de support de développement, procédé de support de développement et programme de support de développement
WO2015136607A1 (fr) Système d'aide au développement d'un logiciel, procédé d'aide au développement d'un logiciel, et programme d'aide au développement d'un logiciel
CN117348886A (zh) 在OpenEuler系统上实现原生编译向下兼容的方法

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