WO2022190428A1 - 開発支援装置、開発支援方法、及び、開発支援プログラム - Google Patents
開発支援装置、開発支援方法、及び、開発支援プログラム Download PDFInfo
- Publication number
- WO2022190428A1 WO2022190428A1 PCT/JP2021/034614 JP2021034614W WO2022190428A1 WO 2022190428 A1 WO2022190428 A1 WO 2022190428A1 JP 2021034614 W JP2021034614 W JP 2021034614W WO 2022190428 A1 WO2022190428 A1 WO 2022190428A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- variable
- variables
- development support
- control program
- list
- Prior art date
Links
- 238000011161 development Methods 0.000 title claims abstract description 108
- 238000000034 method Methods 0.000 title claims description 23
- 239000000284 extract Substances 0.000 claims abstract description 10
- 238000012217 deletion Methods 0.000 claims description 46
- 230000037430 deletion Effects 0.000 claims description 46
- 238000000605 extraction Methods 0.000 claims description 28
- 238000012545 processing Methods 0.000 claims description 22
- 230000004044 response Effects 0.000 claims description 10
- 230000003213 activating effect Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 8
- 238000013507 mapping Methods 0.000 description 8
- 101100295842 Arabidopsis thaliana OPT4 gene Proteins 0.000 description 7
- 101100295841 Arabidopsis thaliana OPT3 gene Proteins 0.000 description 6
- 238000012790 confirmation Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000000737 periodic effect Effects 0.000 description 3
- 238000005401 electroluminescence Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/056—Programming the PLC
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Definitions
- the present disclosure relates to technology for supporting development of a control program for a control device that controls a controlled object.
- Control devices such as PLCs (Programmable Logic Controllers) have been introduced at various manufacturing sites represented by FA (Factory Automation) systems.
- a control device is a kind of computer, and can control the control target by executing a control program designed according to the control target such as a manufacturing apparatus or manufacturing facility.
- control programs are created using a development support device prepared separately from the controller.
- Patent Document 1 discloses a program development support device capable of improving control program development efficiency by improving variable searchability.
- Patent Document 1 when an operand for a predetermined instruction is input, according to the specification of a keyword (character string), narrowing down by displaying a list of only variables with variable names that include the character string. enhances the searchability of variables.
- a definition list for declaring variables is provided in the source program of the above control program, and the variables declared in the definition list can be used in the source code.
- An object in one aspect is to appropriately extract deleterable and unnecessary variables in a control program for a control device that controls a controlled object.
- An object of the present invention is to provide a development support device capable of Another object of the present invention is to provide a development support method capable of appropriately extracting unnecessary variables that can be deleted from a control program.
- An object in still another aspect is to provide a development support program capable of appropriately extracting unnecessary variables that can be deleted from a control program.
- a development support device for supporting development of a control program for a control device that controls a controlled object.
- the development support device includes a storage unit, an extraction unit, an acquisition unit, and a determination unit.
- the storage unit stores a source code of a control program and a first list that declares a plurality of variables used in the source code.
- the extractor extracts a first variable unused in the source code from the plurality of variables in the first list.
- the acquisition unit acquires information for specifying a second variable used by a controlled object from among the plurality of variables while the control program is being executed.
- the determination unit deletes from the first list a third variable that does not correspond to the second variable among the first variables, based on the extraction result of the extraction unit and the information acquired by the acquisition unit. Judged as possible.
- the development support device excludes second variables used in the controlled object from unused variables in the source code of the control program, and determines variables that can be deleted from the first list. be able to. As a result, it is possible to appropriately extract variables that can be deleted from the control program by excluding variables that, when deleted, affect the external device side.
- the controlled object is connected to the control device via a network, and is configured to read variables shown in a second list created in advance from the control device during execution of the control program. good too.
- the acquisition unit may acquire information specifying the variables indicated in the second list directly from the controlled object or from the controlled object via the control device.
- the list (second list) created when the control program is executed can be used to easily acquire information specifying the second variable used by the controlled object.
- the controlled object is connected to the control device via a network, and is configured to access the controlled object via the network during execution of the control program to read some of the multiple variables.
- the control device holds, as access information, variable names read from the controlled object during execution of the control program.
- the acquisition unit may acquire the access information as information from the control device when the control program is executed.
- the second variable used by the controlled object cannot be specified using the list, it can be specified using the access information held in the control device.
- the development support device may further include a variable deletion unit that deletes the third variable from the first list.
- the first list can be automatically updated to the content in which the third variable determined to be deletable by the determination unit is deleted.
- the development support device may further include an interface unit for inputting user's operations.
- the extraction unit, the acquisition unit, and the determination unit may operate in response to input of a first operation for activating unnecessary variable deletion processing on the interface unit.
- the interface unit may output a message asking the user whether to delete the third variable extracted by the determination unit from the first list.
- the variable deletion unit may operate in response to input of a second operation to the interface unit to instruct deletion of the third variable according to the message.
- the third variable determined to be deletable by the determination unit can be deleted from the first list after confirmation by the user.
- the extraction unit, the acquisition unit, and the determination unit are operated after the synchronization of the versions of the control program is ensured between the control device and the development support device. good too.
- the development support method includes steps of extracting a first variable unused in the source code from a list declaring a plurality of variables used in the source code of the control program; The step of acquiring information for specifying the second variable used by the controlled object, the extraction result of the extracting step, and the information acquired in the acquiring step of obtaining the first variable and determining that a third variable out of which the second variable does not correspond can be deleted from the list.
- a development support program for a control program for a control device that controls a controlled object causes the computer to extract a first variable unused in the source code from a list declaring a plurality of variables used in the source code of the control program; a step of obtaining information for identifying a second variable used by the controlled object among the variables of the step of extracting, based on the extraction result of the step of extracting, and the information obtained in the step of obtaining the first and a step of determining that a third variable that does not correspond to the second variable among the variables in the list can be deleted from the list.
- the development support method and the development support program exclude the second variables used in the controlled object from the unused variables in the source code of the control program, and determine variables that can be deleted from the list. can do. As a result, it is possible to appropriately extract variables that can be deleted from the control program by excluding variables that, when deleted, affect the external device side.
- FIG. 1 is a schematic diagram showing an example configuration of an FA system to which a development support device according to an embodiment is applied;
- FIG. 1 is a schematic diagram showing an example of a hardware configuration of a development support device;
- FIG. 4 is a conceptual diagram for explaining operation of a control program;
- 4 is a conceptual diagram illustrating an example of a control program;
- FIG. It is a schematic diagram explaining the access aspect from an external apparatus to a control apparatus.
- 3 is a block diagram illustrating a configuration for unnecessary variable deletion processing by the development support device according to the embodiment;
- FIG. 7 is a flowchart of unnecessary variable deletion processing by the development support device according to the embodiment;
- FIG. 11 is a flowchart for explaining a modification of unnecessary variable deletion processing by the development support method according to the present embodiment;
- FIG. 1 is a schematic diagram showing an example configuration of an FA system 10 to which a development support device according to the present embodiment is applied. First, the system configuration of the FA system 10 will be described with reference to FIG.
- the FA system 10 includes one or more development support devices 100, one or more control devices (controllers) 200, and external devices 300 controlled by the control device 200.
- the development support device 100 is, for example, a notebook or desktop PC (Personal Computer), tablet terminal, smartphone, or other information processing device.
- a development support program 50 is installed in the development support device 100 .
- the development support program 50 is an application for supporting development of the control program 210 for the control device 200 .
- the development support program 50 is, for example, "Sysmac Studio” manufactured by Omron Corporation.
- a user can design a control program for the control device 200 on the development support program 50 and download the designed control program 210 to the controller.
- the development support device 100 can upload data or the like from the control device 200 .
- the control device 200 and the external device 300 are connected to the network NW1 to which the development support device 100 can be connected.
- Ethernet registered trademark
- the control device 200 is configured by a PLC, for example.
- the control device 200 and the external device 300 are connected to the network NW2.
- NW2 it is preferable to employ a field network that performs fixed-cycle communication, in which data arrival time is guaranteed.
- OPC UA registered trademark
- OPC UA registered trademark
- the like are known as a field network that performs such periodic communication.
- the external device 300 is composed of various industrial devices for automating production processes, various sensors, HMI (Human Machine Interface) devices, and the like.
- the external device 300 includes devices 300A-300C and devices 301A-301C connected to the network NW1 or NMW2.
- Devices 301A-301C are connected for communication with control device 200 via networks NW1 and NW2 by devices 300A-300C. Accordingly, the devices 301A to 301C can be controlled by the control program executed by the control device 200.
- the device 300A connected to the equipment 301A is assumed to be connected to the network NW2 to which OPC UA is applied.
- a device 300B connected to the device 301B and a device 300C connected to the device 301C are assumed to be connected to a network NW1 to which Ethernet is applied.
- the FA system 10 includes a plurality of control devices (controllers) 200, between the controllers, for example, between the control device 200 in FIG. 1 and another control device not shown, for example, OPC UA can be used to configure an inter-controller network (not shown).
- FIG. 2 shows a schematic diagram showing an example of the hardware configuration of the development support device 100. As shown in FIG.
- the development support device 100 is, for example, a computer configured according to a general-purpose computer architecture.
- the development support device 100 includes a processor 102 such as a CPU (Central Processing Unit) or MPU (Micro-Processing Unit), a main memory 104, a communication interface 111, an I/O (Input/Output) interface 114, and a display interface. 117 and non-volatile storage 120 . These components are communicatively connected to each other via an internal bus 125 .
- the processor 102 expands the development support program 50 stored in the storage device 120 into the main memory 104 and executes it, thereby activating the development tool for the control program 210 (see FIG. 1).
- the storage device 120 stores various data and programs 60 in addition to the development support program 50 .
- a source program for control program 210 is stored in main memory 104 or storage device 120 . That is, main memory 104 and storage device 120 correspond to one embodiment of "storage unit.”
- the communication interface 111 exchanges data with other communication devices via a network.
- the other communication device includes, for example, the control device 200 and the external device 300 shown in FIG. 1, and a server (not shown).
- the development support apparatus 100 may be configured such that various programs such as the development support program 50 can be downloaded from the other communication device via the communication interface 111 .
- the I/O interface 114 is connected to the operation unit 115 and receives signals indicating user operations from the operation unit 115 .
- the operation unit 115 typically includes a keyboard, mouse, touch panel, touch pad, etc., and receives operations from the user. Operation unit 115 may be configured integrally with development support apparatus 100 or may be configured separately from development support apparatus 100 .
- the display interface 117 is connected to the display unit 118, and transmits an image signal for displaying an image to the display unit 118 according to commands from the processor 102 or the like.
- the display unit 118 is configured by an LCD (Liquid Crystal Display), an organic EL (Electro Luminescence) display, or the like, and presents various types of information to the user.
- the display unit 118 may be configured integrally with the development support device 100 or may be configured separately from the development support device 100 .
- FIG. 2 shows a configuration example in which the necessary functions are provided by the processor 102 such as a CPU executing a program, but some or all of these provided functions may be implemented by dedicated hardware. It may be implemented using a circuit (for example, ASIC (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array), etc.). In this case, virtualization technology may be used to execute a plurality of OSs with different purposes in parallel, and necessary applications may be executed on each OS. Also, in the above description, the development support device 100 performs all the processing, but the present invention is not limited to this, and a plurality of devices may work together to provide the functions described above. . Furthermore, some or all of the functions may be implemented using computational resources called so-called cloud on a server.
- ASIC Application Specific Integrated Circuit
- FPGA Field-Programmable Gate Array
- FIG. 3 shows a conceptual diagram for explaining the operation of the control program.
- the source program 210s including the source code 51 and the variable definition list 52 is created by the user's operation using the operation units 115 and 118.
- FIG. also, the source program 210 s including the source code 51 and the variable definition list 52 is appropriately edited by the user's operation on the development support device 100 .
- the source code 51 and the variable definition list 52 are shown separately in FIG. 3, the source code 51 and the variable definition list 52 can be integrated into a file in the source program 210s.
- the source program 210s typically includes LD (ladder diagram), IL (instruction list), ST (structured text), FBD (function block diagram), SFC (sequential function chart), etc. defined in IEC61131-3. can be written in any language In the following description, as a typical example, a case where the source program is described by a ladder program (LD) will be described.
- LD ladder program
- the execution code 211 of the control program 210 is created and downloaded to the control device 200 by building the source program 210s.
- the control device 200 reserves a memory area 212 for storing the variables declared in the variable definition list 52 for the control program 210 .
- the devices 300A to 300C can access variables in the memory area 212 by data communication through the network NW1 or NW2 via the network interface 250.
- the variables stored in the shaded areas are accessed from the external device 300 (devices 300A to 300C).
- FIG. 4 shows a conceptual diagram explaining an example of the control program.
- FIG. 4A shows an example of a ladder circuit written by a ladder program, which is an example of a control program.
- FIG. 4(b) shows an example of the variable definition list explained in FIG.
- the ladder program is represented by a ladder circuit 220 in which a logic circuit using circuit elements and connection lines between an input-side bus 221 and an output-side bus 222 is drawn like a ladder. be done.
- the ladder circuit 220 includes a contact 224 that is turned on/off according to the value of the variable aa, and a coil 226 that outputs the on/off result as the variable bb.
- a ladder circuit is drawn by connecting circuit elements such as contacts 224 and coils 226 to each other with connecting lines 227 .
- the variable bb is further used as a variable for opening and closing contacts of another ladder circuit (not shown).
- the variable aa is the output value of the coil of another ladder circuit (not shown).
- Such a hierarchical combination of ladder circuits can describe the control operation for the control device 200 to control the external device 300 .
- variable definition list 52 is created by declaring at least the variable name and the data type of the variable for each variable.
- the data type is selectively set from predefined ones such as "BOOL”, "REAL”, and "LREAL”.
- a data area having a capacity according to the selected data type is secured for each variable declared in the variable definition list 52 .
- variable cc is unused in the ladder circuit even though it is declared.
- an area for storing the variable cc is secured in the memory area 212 of the control device 200 . Therefore, by deleting the unused variable cc from the variable definition list 52, the memory area of the control device 200 can be released. This eliminates the need to secure an unnecessary memory area, thereby improving the memory usage efficiency of the control device 200 .
- variable list 203 As shown in FIG. 5, by building the source program created or edited by the development support device 100, the variable list 203 corresponding to the variable definition list 52 is also created in the control device 200. That is, the variable list 203 includes variables declared in the variable definition list 52 . In the example of FIG. 5, it is assumed that the variables defined in the variable definition list 52 and the variable list 203 include variables OPT1 to OPT4.
- the subscription settings 305A define variables that are periodically read by periodic communication of the network during execution of the control program.
- the device 300A accesses the variables OPT1 and OPT2 and acquires the values of the variables from the control device 200 according to the subscription settings 305A through periodic communication.
- the values of variables OPT1 and OPT2 are used for monitoring state quantities and the like in device 301A.
- the control device 200 stores the access history from the devices 300A to 300C as the access information 201 when executing the control program. Therefore, based on the access information 201, the variables (here, OPT1 and OPT2) accessed by the control device 200 from the device 300A can be identified.
- a data link setting 305B is created that defines the correspondence (link) between the variables read from the control device 200 and the variables in the device 300B.
- the device 300B accesses the variables OPT2 and OPT3 of the control device 200 and acquires the values of the variables according to the data link setting 305B.
- the values of variables OPT2 and OPT3 can be used in device 301B in the same manner as described above.
- the control device 200 creates connection setting information 202 indicating that variables OPT2 and OPT3 are to be accessed in association with the data link setting 305B.
- the device 300C shares a protocol with the development support apparatus 100. Therefore, the device 300C can exchange data with the development support device 100 via the control device 200 or directly via the network NW1.
- the device 300C accesses variables OPT1 and OPT3 predetermined in the variable mapping 305C and obtains the values of the variables from the control device 200.
- FIG. the device 300C is HMI equipment such as a display. The values of variables OPT1 and OPT3 are used for display on the display.
- the development support apparatus 100 can specify variables accessed from the devices 300B and 300C connected to the network NW1 according to the connection setting information 202 and the variable mapping 305C.
- the development support apparatus 100 uses the variables OPT1 to OPT3 in the external device 300, while the external device 300 uses the variable OPT4. can be determined to be unused. In other words, if the variable OPT4 is not used in the source program, it can be determined that deletion does not affect the external device 300 side.
- Variables accessed from the devices 300B and 300C can also be specified based on the access information 201 in the control device 200, but information specifying the variables according to the connection setting information 202 and the variable mapping 305C is can be obtained easily.
- FIG. 6 shows a block diagram for explaining the configuration for unnecessary variable deletion processing by the development support device according to the present embodiment.
- the development support device 100 includes an extraction unit 55 , an acquisition unit 56 , a determination unit 57 , a user interface unit 58 and a variable deletion unit 59 .
- each of the acquisition unit 56, the determination unit 57, the user interface unit 58, and the variable deletion unit 59 is a part of the function of the program when the processor 102 of the development support device 100 executes the development support program 50.
- User interface portion 58 encompasses I/O interface 114 and display interface 117 shown in FIG.
- the user interface unit 58 starts unnecessary variable deletion processing.
- the user can input an instruction to start unnecessary variable deletion processing by selecting a menu screen displayed on the display unit 118 .
- the operation for the activation instruction corresponds to the "first operation".
- the extraction unit 55 collates the source code 51 and the variable definition list 52 to extract the unused variable V1 that is not used in the source code 51.
- variable cc is extracted as unused variable V1.
- the unused variable V1 corresponds to the "first variable” and the variable definition list 52 corresponds to one embodiment of the "first list” or "list”.
- the acquisition unit 56 acquires the access information 201 and the connection setting information 202 from the control device 200 as described with reference to FIG. Furthermore, the acquisition unit 56 acquires the variable mapping 305C of the device 300C directly from the device 300C or via the control device 200.
- FIG. The access information 201, the connection setting information 202, and the variable mapping 305C correspond to one example of information for identifying the device use variable V2 used by the external device 300 (controlled object). In the example of FIG. 5, it is understood that the information allows the variables OPT1-OPT3 to be identified as the device usage variable V2. That is, the device usage variable V2 corresponds to the "second variable", and the connection setting information 202 and the variable mapping 305C correspond to an embodiment of the "second list".
- the determination unit 57 Based on the non-use variable V1 extracted by the extraction unit 55 and the device use variable V2 specified from the information acquired by the acquisition unit 56, the determination unit 57 extracts the device use variable out of the non-use variable V1.
- a variable that does not correspond to V2 is determined to be a variable V3 that can be deleted from the control program 210 .
- the variable OPT4 can be extracted as the deletable variable V3.
- the user interface unit 58 uses the display unit 118 to notify the user of the deletable variable V3 and asks for confirmation as to whether or not it is permissible to delete the deletable variable V3. for example. Characters and graphics for clicking "YES” or “NO” in response to the display "Are you sure you want to delete these variables?"
- the user interface unit 58 generates an automatic deletion instruction to the variable deletion unit 59 when the user's deletion instruction is input by clicking "YES" on the above display.
- the operation for instructing deletion corresponds to the "second operation".
- variable deletion unit 59 deletes the deletable variable V3 from the variables included in the variable definition list 52 when the automatic deletion instruction is input. As a result, the variable definition list 52 is updated to the contents in which the deletable variable V3 is deleted.
- variable definition list 52 it is possible to automatically determine the deletable variable V3 from the variable definition list 52 by excluding the device use variable V2. Furthermore, the variable definition list 52 can be updated to the content in which the automatically determined deletable variable V3 is deleted.
- the user interface unit 58 can output to the user, using the display unit 118 or the like, a message indicating that the unnecessary variable deletion process has been completed. Furthermore, a message prompting the user to rebuild the source program (source code) may also be output to the user.
- FIG. 7 shows a flowchart of unnecessary variable deletion processing by the development support device according to the present embodiment. Processing of each step shown in FIG. 7 can typically be realized by software processing in which processor 102 of development support apparatus 100 executes development support program 50 .
- step S110 the development support device 100 determines whether or not the user has input an instruction to start the unnecessary variable deletion process. When no user instruction is input (NO determination in S110), the process after step S120 is put on standby.
- step S120 the development support device 100 determines whether or not the control programs of the development support device 100 and the control device 200 are synchronized. In a synchronized state (YES determination in S120), the variables included in the variable definition list 52 of the source program and the variables included in the variable list 203 of the control device 200 match. I can confirm.
- step S120 when the synchronization is not established (NO determination in S120), the development support device 100 executes the determination in step S120 again after executing the synchronization process in step S130. After confirming that the variables in the variable definition list 52 and the variable list 203 match in this way, the processing from step S140 onwards is executed.
- step S140 the development support device 100 extracts the unused variable V1 that is not used in the source code 51 by the same processing as the extraction unit 55 of FIG. Furthermore, in step S150, the development support apparatus 100 performs the same processing as the acquisition unit 56 in FIG. , the access information 201, the connection setting information 202, and the variable mapping 305C in FIG. Steps S140 and S150 may be processed in parallel, and contrary to FIG. 7, step S150 may precede step S140.
- step S160 the development support apparatus 100 performs the same processing as the determination unit 57 in FIG. For each usage variable V1, it is determined whether it is deletable or not deletable. As a result, in step S170, the deletable variable V3 can be extracted in the same manner as the determination unit 57 in FIG.
- step S180 the development support device 100 deletes the deletable variable V3 from the variables included in the variable definition list 52, similar to the variable deletion unit 59 shown in FIG.
- variable definition list 52 is updated to the content in which the automatically determined deletable variable V3 is deleted by the activation of the unnecessary variable deletion process in response to the user activation instruction. be able to.
- the development support device 100 can also execute steps S172, S175, and S185 for the user interface processing described in FIG. 6 in addition to the control processing in FIG. .
- the development support device 100 When the extraction of the deletable variable V3 in step S170 is completed, the development support device 100 notifies the user of the deletable variable V3 using the display unit 118 and deletes the deletable variable V3 in step S172. Ask for confirmation.
- the development support device 100 determines the user's instruction for the confirmation in step S172 in step S175. If the user inputs a deletion instruction, for example, if "YES" is clicked in response to the message "Are you sure you want to delete these variables?" Then, the process proceeds to step S180 for deleting the deletable variable V3.
- step S175 is judged as NO, so step S180 is skipped and the unnecessary variable deletion process ends.
- the deletable variable V3 is not deleted, and the variable definition list 52 is maintained with the contents before starting the unnecessary variable deletion process.
- step S180 the development support device 100 outputs a message to the user in step S185 to the effect that the unnecessary variable deletion process has ended.
- a message prompting rebuilding of the source program to reflect the updated variable definition list 52 may be further output.
- extraction of unused variables (V1) in the source program and identification of variables (V2) accessed from the external device 300 (controlled object) during execution of the control program can appropriately extract unnecessary variables that can be deleted in the control program.
- a development support device comprising: a determination unit (57) that determines that deletion from the first list is possible.
- the controlled object (300) is connected to the control device (200) through a network, and during the execution of the control program, the variables shown in the second list (202, 305C) created in advance are configured to read from a controller; Configuration 1, wherein the acquisition unit (56) acquires information specifying the variables indicated in the second list directly from the controlled object or from the controlled object via the control device. Development support device.
- the controlled object (300) is connected to the control device (200) through a network (NW1), and accesses the controlled object via the network during execution of the control program to change the plurality of variables. configured to read some variables,
- the control device holds, as access information (201), a variable name read from the controlled object during execution of the control program,
- the development support device according to configuration 1, wherein the acquisition unit (56) acquires the access information as the information from the control device when the control program is executed.
- [Configuration 5] Further comprising an interface unit (58) for inputting user operations,
- the extraction unit (55), the acquisition unit (56), and the determination unit (57) operate in response to input of a first operation for activating unnecessary variable deletion processing on the interface unit,
- the interface unit outputs a message asking the user whether or not to delete the third variable (V3) extracted by the determination unit from the first list (52),
- the development support device according to configuration 4, wherein the variable deletion unit (59) operates in response to input of a second operation to the interface unit to instruct deletion of the third variable according to the message.
- the development support program in a computer, extracting a first variable (V1) unused in the source code from a list (52) declaring a plurality of variables used in the source code (51) of the control program (S140); Acquiring information (201, 202, 305C) for specifying a second variable (V2) used by the controlled object among the plurality of variables in the execution state of the control program;
- a third variable (V3) that does not correspond to the second variable among the first variables, based on the extraction result in the extracting step and the information acquired in the acquiring step can be deleted from the list (S160, S170).
- 10 FA system 50 development support program, 51 source code, 52 variable definition list, 55 extraction unit, 56 acquisition unit, 57 determination unit, 58 user interface unit, 59 variable deletion unit, 100 development support device, 102 processor, 104 main memory, 111 communication interface, 114 I/O interface, 115 operation unit, 117 display interface, 118 display unit, 120 storage device, 125 internal bus, 200 control device, 201 access information, 202 connection setting information, 233 variable list, 210 Control program, 210s source program, 211 execution code, 212 memory area, 220 ladder circuit, 221 input side bus, 222 output side bus, 224 contact, 226 coil, 227 connection line, 250 network interface, 300 external device, 300A to 300C Device, 301A to 301C equipment, 305A subscription setting, 305B data link setting, 305C variable mapping, NW1, NW2 network, OPT1 to OPT4, aa, bb, cc variables.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
- Stored Programmes (AREA)
Abstract
Description
図1は、本実施の形態に係る開発支援装置が適用されるFAシステム10の構成の一例を示す概略図である。まず、図1を参照して、FAシステム10のシステム構成について説明する。
図2には、開発支援装置100のハードウェア構成の一例を示す模式図が示される。
次に、制御プログラムについて説明する。
開発支援装置100では、操作部115及び118を用いたユーザの操作により、ソースコード51及び変数定義リスト52を含むソースプログラム210sを作成する。又、ソースコード51及び変数定義リスト52を含むソースプログラム210sは、開発支援装置100に対するユーザの操作により、適宜編集される。尚、図3では、ソースコード51及び変数定義リスト52を別々に表記しているが、ソースプログラム210sにおいて、ソースコード51及び変数定義リスト52を一体されたファイルとすることも可能である。ソースプログラム210sは、典型的には、IEC61131-3に規定された、LD(ラダーダイアグラム)、IL(インストラクションリスト)、ST(ストラクチャードテキスト)、FBD(ファンクションブロックダイアグラム)、SFC(シーケンシャルファンクションチャート)等の任意の言語で記述することができる。以下の説明では、典型例として、ソースプログラムがラダープログラム(LD)によって記述される場合について説明する。
次に、図5を用いて、外部機器300から制御装置200へのアクセス態様について説明する。
図6には、本実施の形態に係る開発支援装置による不要変数削除処理のための構成を説明するブロック図が示される。
上述したような本実施の形態及び変形例は、以下のような技術思想を含む。
制御対象(300)を制御する制御装置(200)用の制御プログラム(210)の開発を支援するための開発支援装置(100)であって、
前記制御プログラムのソースコード(51)及び当該ソースコードで使用する複数の変数を宣言する第1のリスト(52)を記憶する記憶部(104,120)と、
前記第1のリスト内の前記複数の変数から前記ソースコードで不使用である第1の変数(V1)を抽出する抽出部(55)と、
前記制御プログラムの実行状態において、前記複数の変数のうちの前記制御対象が使用する第2の変数(V2)を特定するための情報(201,202,305C)を取得する取得部(56)と、
前記抽出部による抽出結果と、前記情報取得部によって取得された前記情報とに基づいて、前記第1の変数のうちの前記第2の変数に非該当である第3の変数(V3)を前記第1のリストから削除可能と判定する判定部(57)とを備える、開発支援装置。
前記制御対象(300)は、ネットワークによって前記制御装置(200)と接続されるとともに、前記制御プログラムの実行中に、予め作成された第2のリスト(202,305C)に示された変数を前記制御装置から読み出すように構成され、
前記取得部(56)は、前記制御対象から直接、又は、前記制御装置を介して前記制御対象から、前記第2のリストに示された変数を特定する情報を取得する、構成1に記載の開発支援装置。
前記制御対象(300)は、ネットワーク(NW1)によって前記制御装置(200)と接続されるとともに、前記制御プログラムの実行中に当該ネットワークを経由して前記制御対象にアクセスして前記複数の変数の一部の変数を読み出すように構成され、
前記制御装置は、前記制御プログラムの実行中に前記制御対象から読み出された変数名をアクセス情報(201)として保持し、
前記取得部(56)は、前記制御プログラムの実行時に前記アクセス情報を前記制御装置から前記情報として取得する、構成1に記載の開発支援装置。
前記第3の変数(V3)を前記第1のリスト(52)から削除する変数削除部(59)を更に備える、構成1~3のいずれか1項に記載の開発支援装置。
ユーザの操作を入力するためのインターフェイス部(58)を更に備え、
前記抽出部(55)、前記取得部(56)、及び、前記判定部(57)は、インターフェイス部に対する、不要変数の削除処理を起動する第1の操作の入力に応じて動作し、
前記インターフェイス部は、前記判定部によって抽出された前記第3の変数(V3)を前記第1のリスト(52)から削除するか否かを前記ユーザに求めるメッセージを出力し、
前記変数削除部(59)は、前記インターフェイス部に対する、前記メッセージに応じた前記第3の変数の削除を指示する第2の操作の入力に応じて動作する、構成4記載の開発支援装置。
前記第1の操作が入力されると、前記制御装置(200)及び前記開発支援装置(100)の間で前記制御プログラム(210)の同期が確保された後に、前記抽出部(55)、前記取得部(56)、及び、前記判定部(57)を動作させる、構成5に記載の開発支援装置。
制御対象(300)を制御する制御装置(200)用の制御プログラム(210)の、コンピュータによって実行される開発支援方法であって、
前記制御プログラムのソースコード(51)で使用される複数の変数を宣言するリスト(52)から前記ソースコードで不使用である第1の変数(V1)を抽出するステップ(S140)と、
前記制御プログラムの実行状態において、前記複数の変数のうちの前記制御対象が使用する第2の変数(V2)を特定するための情報(201,202,305C)を取得するステップ(S150)と、
前記抽出するステップでの抽出結果と、前記取得するステップで取得された前記情報とに基づいて、前記第1の変数のうちの前記第2の変数に非該当である第3の変数(V3)を前記リストから削除可能と判定するステップ(S160,S170)とを備える、開発支援方法。
制御対象(300)を制御する制御装置(200)用の制御プログラム(210)の開発支援プログラム(50)であって、
前記開発支援プログラムは、コンピュータに、
前記制御プログラムのソースコード(51)で使用される複数の変数を宣言するリスト(52)から前記ソースコードで不使用である第1の変数(V1)を抽出するステップ(S140)と、
前記制御プログラムの実行状態において、前記複数の変数のうちの前記制御対象が使用する第2の変数(V2)を特定するための情報(201,202,305C)を取得するステップと、
前記抽出するステップでの抽出結果と、前記取得するステップで取得された前記情報とに基づいて、前記第1の変数のうちの前記第2の変数に非該当である第3の変数(V3)を前記リストから削除可能と判定するステップ(S160,S170)とを実行させる、開発支援プログラム。
Claims (8)
- 制御対象を制御する制御装置用の制御プログラムの開発を支援するための開発支援装置であって、
前記制御プログラムのソースコード及び当該ソースコードで使用する複数の変数を宣言する第1のリストを記憶する記憶部と、
前記第1のリスト内の前記複数の変数から前記ソースコードで不使用である第1の変数を抽出する抽出部と、
前記制御プログラムの実行状態において、前記複数の変数のうちの前記制御対象が使用する第2の変数を特定するための情報を取得する取得部と、
前記抽出部による抽出結果と、前記取得部によって取得された前記情報とに基づいて、前記第1の変数のうちの前記第2の変数に非該当である第3の変数を前記第1のリストから削除可能と判定する判定部とを備える、開発支援装置。 - 前記制御対象は、ネットワークによって前記制御装置と接続されるとともに、前記制御プログラムの実行中に、予め作成された第2のリストに示された変数を前記制御装置から読み出すように構成され、
前記取得部は、前記制御対象から直接、又は、前記制御装置を介して前記制御対象から、前記第2のリストに示された変数を特定する情報を取得する、請求項1記載の開発支援装置。 - 前記制御対象は、ネットワークによって前記制御装置と接続されるとともに、前記制御プログラムの実行中に当該ネットワークを経由して前記制御対象にアクセスして前記複数の変数の一部の変数を読み出すように構成され、
前記制御装置は、前記制御プログラムの実行中に前記制御対象から読み出された変数名をアクセス情報として保持し、
前記取得部は、前記制御プログラムの実行時に前記アクセス情報を前記制御装置から前記情報として取得する、請求項1記載の開発支援装置。 - 前記第3の変数を前記第1のリストから削除する変数削除部を更に備える、請求項1~3のいずれか1項に記載の開発支援装置。
- ユーザの操作を入力するためのインターフェイス部を更に備え、
前記抽出部、前記取得部、及び、前記判定部は、前記インターフェイス部に対する、不要変数の削除処理を起動する第1の操作の入力に応じて動作し、
前記インターフェイス部は、前記判定部によって抽出された前記第3の変数を前記第1のリストから削除するか否かを前記ユーザに求めるメッセージを出力し、
前記変数削除部は、前記インターフェイス部に対する、前記メッセージに応じた前記第3の変数の削除を指示する第2の操作の入力に応じて動作する、請求項4記載の開発支援装置。 - 前記第1の操作が入力されると、前記制御装置及び前記開発支援装置の間で前記制御プログラムの同期が確保された後に、前記抽出部、前記取得部、及び、前記判定部を動作させる、請求項5記載の開発支援装置。
- 制御対象を制御する制御装置用の制御プログラムの、コンピュータによって実行される開発支援方法であって、
前記制御プログラムのソースコードで使用される複数の変数を宣言するリストから前記ソースコードで不使用である第1の変数を抽出するステップと、
前記制御プログラムの実行状態において、前記複数の変数のうちの前記制御対象が使用する第2の変数を特定するための情報を取得するステップと、
前記抽出するステップでの抽出結果と、前記取得するステップで取得された前記情報とに基づいて、前記第1の変数のうちの前記第2の変数に非該当である第3の変数を前記リストから削除可能と判定するステップとを備える、開発支援方法。 - 制御対象を制御する制御装置用の制御プログラムの開発支援プログラムであって、
前記開発支援プログラムは、コンピュータに、
前記制御プログラムのソースコードで使用される複数の変数を宣言するリストから前記ソースコードで不使用である第1の変数を抽出するステップと、
前記制御プログラムの実行状態において、前記複数の変数のうちの前記制御対象が使用する第2の変数を特定するための情報を取得するステップと、
前記抽出するステップでの抽出結果と、前記取得するステップで取得された前記情報とに基づいて、前記第1の変数のうちの前記第2の変数に非該当である第3の変数を前記リストから削除可能と判定するステップとを実行させる、開発支援プログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP21930276.7A EP4307060A1 (en) | 2021-03-11 | 2021-09-21 | Development assistance device, development assistance method, and development assistance program |
US18/279,258 US20240143287A1 (en) | 2021-03-11 | 2021-09-21 | Development support device, development support method, and non-transitory storage medium |
CN202180094743.8A CN116917818A (zh) | 2021-03-11 | 2021-09-21 | 开发辅助装置、开发辅助方法以及开发辅助程序 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021-039322 | 2021-03-11 | ||
JP2021039322A JP2022139087A (ja) | 2021-03-11 | 2021-03-11 | 開発支援装置、開発支援方法、及び、開発支援プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022190428A1 true WO2022190428A1 (ja) | 2022-09-15 |
Family
ID=83227814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2021/034614 WO2022190428A1 (ja) | 2021-03-11 | 2021-09-21 | 開発支援装置、開発支援方法、及び、開発支援プログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US20240143287A1 (ja) |
EP (1) | EP4307060A1 (ja) |
JP (1) | JP2022139087A (ja) |
CN (1) | CN116917818A (ja) |
WO (1) | WO2022190428A1 (ja) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07239788A (ja) * | 1994-02-28 | 1995-09-12 | Hokuriku Nippon Denki Software Kk | 不要変数型宣言チェック機能付きコンパイラ |
JP2002062910A (ja) * | 2000-08-22 | 2002-02-28 | Digital Electronics Corp | エディタ装置およびエディタプログラムを記録した記録媒体 |
JP2005044316A (ja) * | 2003-07-25 | 2005-02-17 | Omron Corp | シミュレーション支援ツールおよびラダープログラムの検証システムならびにプログラム製品 |
JP2005352612A (ja) | 2004-06-08 | 2005-12-22 | Omron Corp | プログラム開発支援装置および変数名リスト表示方法 |
JP2009009607A (ja) * | 1999-10-15 | 2009-01-15 | Omron Corp | ネットワークシステム |
JP2012118715A (ja) * | 2010-11-30 | 2012-06-21 | Fuji Electric Co Ltd | Plcシステム、その開発支援装置、プログラム |
JP2018206362A (ja) * | 2017-06-02 | 2018-12-27 | オムロン株式会社 | 工程解析装置、工程解析方法、及び工程解析プログラム |
JP2020064399A (ja) * | 2018-10-16 | 2020-04-23 | オムロン株式会社 | 制御システム、制御装置、端末装置、及びプログラム |
-
2021
- 2021-03-11 JP JP2021039322A patent/JP2022139087A/ja active Pending
- 2021-09-21 WO PCT/JP2021/034614 patent/WO2022190428A1/ja active Application Filing
- 2021-09-21 US US18/279,258 patent/US20240143287A1/en active Pending
- 2021-09-21 EP EP21930276.7A patent/EP4307060A1/en active Pending
- 2021-09-21 CN CN202180094743.8A patent/CN116917818A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07239788A (ja) * | 1994-02-28 | 1995-09-12 | Hokuriku Nippon Denki Software Kk | 不要変数型宣言チェック機能付きコンパイラ |
JP2009009607A (ja) * | 1999-10-15 | 2009-01-15 | Omron Corp | ネットワークシステム |
JP2002062910A (ja) * | 2000-08-22 | 2002-02-28 | Digital Electronics Corp | エディタ装置およびエディタプログラムを記録した記録媒体 |
JP2005044316A (ja) * | 2003-07-25 | 2005-02-17 | Omron Corp | シミュレーション支援ツールおよびラダープログラムの検証システムならびにプログラム製品 |
JP2005352612A (ja) | 2004-06-08 | 2005-12-22 | Omron Corp | プログラム開発支援装置および変数名リスト表示方法 |
JP2012118715A (ja) * | 2010-11-30 | 2012-06-21 | Fuji Electric Co Ltd | Plcシステム、その開発支援装置、プログラム |
JP2018206362A (ja) * | 2017-06-02 | 2018-12-27 | オムロン株式会社 | 工程解析装置、工程解析方法、及び工程解析プログラム |
JP2020064399A (ja) * | 2018-10-16 | 2020-04-23 | オムロン株式会社 | 制御システム、制御装置、端末装置、及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP2022139087A (ja) | 2022-09-26 |
EP4307060A1 (en) | 2024-01-17 |
US20240143287A1 (en) | 2024-05-02 |
CN116917818A (zh) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7272458B2 (en) | Control system setting device | |
CN112602025A (zh) | 工业控制器的数字孪生的自动设置 | |
US7860874B2 (en) | Method for searching across a PLC network | |
US9122269B2 (en) | Method and system for operating a machine from the field of automation engineering | |
US20060010230A1 (en) | System for accessing and browsing a PLC provided within a network | |
US20050270063A1 (en) | Method for portable PLC configurations | |
JP5875555B2 (ja) | 画像作成システム | |
CN111417907A (zh) | 创建和管理智能可编程逻辑控制器解决方案的方法和装置 | |
JP7063009B2 (ja) | 表示装置、画面生成方法、および画面生成プログラム | |
CN115657564A (zh) | 一种免编程现场控制装置及方法 | |
US20210067483A1 (en) | Control System, Controller, and Control Method | |
WO2022190428A1 (ja) | 開発支援装置、開発支援方法、及び、開発支援プログラム | |
JP2015518618A (ja) | フィールド機器の装置記述のアップデート情報を提供する方法およびシステム | |
US11321052B2 (en) | Development support device, development support method, and non-transitory computer readable medium | |
WO2022190427A1 (ja) | 開発支援装置、開発支援方法、及び、開発支援プログラム | |
US11199993B2 (en) | Control system, development assistance device, and development assistance program | |
JP6396084B2 (ja) | エンジニアリング装置、エンジニアリングシステム、およびダウンロード処理方法 | |
WO2022190417A1 (ja) | 開発支援装置、開発支援方法および開発支援プログラム | |
JP2019159937A (ja) | プログラミング支援装置、プログラミング支援方法及びプログラム | |
US10782982B2 (en) | Information processing apparatus and system, and method and recording medium for generating user interface | |
JP2007172128A (ja) | I/oシミュレータ装置 | |
US20210109948A1 (en) | Method of visualizing screen content on a data visualization system, and data visualization system for visualizing screen content | |
WO2020026738A1 (ja) | サポート装置およびサポートプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21930276 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 202180094743.8 Country of ref document: CN |
|
WWE | Wipo information: entry into national phase |
Ref document number: 18279258 Country of ref document: US |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2021930276 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2021930276 Country of ref document: EP Effective date: 20231011 |