WO2020021993A1 - 情報処理装置および表示プログラム - Google Patents

情報処理装置および表示プログラム Download PDF

Info

Publication number
WO2020021993A1
WO2020021993A1 PCT/JP2019/026265 JP2019026265W WO2020021993A1 WO 2020021993 A1 WO2020021993 A1 WO 2020021993A1 JP 2019026265 W JP2019026265 W JP 2019026265W WO 2020021993 A1 WO2020021993 A1 WO 2020021993A1
Authority
WO
WIPO (PCT)
Prior art keywords
displayed
additional
display
program
detailed
Prior art date
Application number
PCT/JP2019/026265
Other languages
English (en)
French (fr)
Inventor
明日香 杉山
克重 大貫
大輔 玉嶋
茜 一村
Original Assignee
オムロン株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オムロン株式会社 filed Critical オムロン株式会社
Priority to EP19840971.6A priority Critical patent/EP3832410A4/en
Priority to CN201980037226.XA priority patent/CN112204480B/zh
Publication of WO2020021993A1 publication Critical patent/WO2020021993A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/054Input/output
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13052Display of ladder diagram

Definitions

  • the present disclosure relates to an information processing device that displays a control program executed by a control device that controls a control target, and a display program for realizing the information processing device.
  • Control devices such as PLCs (Programmable Logic Controllers) have been introduced in various manufacturing sites.
  • a control device is a kind of computer, and executes a control program included in a user program designed according to a manufacturing apparatus or a manufacturing facility.
  • Such a control program is created in a development environment prepared separately from the control device.
  • the user displays the control program in various situations, such as a phase for creating a control program, a phase for confirming the operation of the control program, and a phase for correcting a bug in the control program. Therefore, there is a demand for a display of a control program that allows the development to proceed efficiently.
  • Patent Document 1 discloses, as a display form of a function block call instruction, an all display form in which all of a plurality of input / output terminals are displayed, and an input / output terminal not connected to a ladder circuit.
  • Patent Document 1 discloses, as a display form of a function block call instruction, an all display form in which all of a plurality of input / output terminals are displayed, and an input / output terminal not connected to a ladder circuit.
  • a device having a simple rectangular display mode that does not display a symbol is disclosed.
  • One object of the present disclosure is to provide an environment that can effectively support sequence program development.
  • an information processing device that displays a control program executed by a control device that controls a control target.
  • the information processing apparatus includes: a program display unit configured to display the control program in a circuit form in which objects representing command elements constituting the control program are connected; and a control unit that responds to selection of a specific object from the objects displayed in the circuit form.
  • An additional object indicating information related to execution of an instruction indicated by a specific object and indicating information that is not indicated in a state displayed in a circuit manner is maintained while maintaining the state of the object displayed in a circuit manner.
  • Additional display means for additionally displaying.
  • the additional display means determines the position of the additional object based on the density of the objects displayed in the circuit mode.
  • the additional display means determines the position of the additional object so that the overlapping area between the additional object and the object displayed in the circuit mode is relatively small.
  • the additional display means determines the position of the additional object based on the distance from the selected specific object.
  • objects indicating a common command can be displayed in association with each other.
  • the additional display means determines the position of the additional object based on the degree of overlap between the additional object and the object displayed in the circuit mode and the distance from the selected specific object.
  • the additional display unit acquires the display area and the display position of the object displayed in the circuit mode by modeling the object displayed in the circuit mode into a predetermined shape.
  • the display area and the display position of the object can be easily obtained.
  • the additional display means searches for a position at which to display the additional object, with the selected specific object as the center.
  • the additional display means may include, in an area between the selected specific object and an object arranged at a position adjacent to the selected specific object among the objects displayed in the circuit mode, If the additional object does not fit, the additional object is displayed outside the program displayed in a circuit manner.
  • the additional object can be displayed without hiding the object, and since the method of determining the display position of the additional object has a rule, the user can easily predict where the additional object is displayed. Easy to find additional objects displayed.
  • a display program for displaying a control program executed in a control device that controls a control target causes the computer to receive a selection of a specific object from among objects included in a circuit mode that connects the objects representing instruction elements constituting the control program.
  • the additional object indicating information related to the execution of the instruction indicated by the specific object and not indicating the information displayed in the circuit mode is maintained in the state of the object displayed in the circuit mode. And an additional display step.
  • FIG. 7 is a diagram showing transition of display of a control program according to the present embodiment. It is a schematic diagram which shows the example of a structure of the control system which can apply a support apparatus.
  • FIG. 3 is a schematic diagram illustrating a hardware configuration example of a support device. It is a figure showing an example of a user interface screen.
  • FIG. 4 is a diagram illustrating an example of an object.
  • FIG. 11 is a diagram illustrating an example of a program display area after additional display.
  • FIG. 7 is a diagram illustrating a display example of a detailed object.
  • FIG. 9 is a diagram illustrating a display example when the right side of the right bus is a display area. It is a conceptual view of a search method when D 1 direction to be searched. D 1 direction is a diagram showing an example of a search result when a search target. It is a conceptual view of a search method when D 2 direction to be searched.
  • A) is a figure which shows the detailed object 440a which concerns on a 1st modification
  • (b) is a figure which shows the detailed object 440b which concerns on a 2nd modification. It is a flowchart of the search processing in a modification.
  • FIG. 1 is a diagram showing transition of display of a control program according to the present embodiment.
  • the control program is a program executed by a control device that controls various devices used in the FA field.
  • control program is a program for providing basic functions of a control device that controls various devices used in the FA field, and a program arbitrarily designed according to a control target (“ User program).
  • control program may include only a program arbitrarily designed according to a control target.
  • control program In the international standard IEC61131-3, ladder diagram (LD: Ladder @ Diagram), function block diagram (FBD: Function @ Block @ Diagram), sequential function chart (SFC: Sequential @ Function @ Chart), instruction list (IL : Instruction @ List) and structured text (ST: Structured @ Text).
  • the control program according to the present invention is intended for a program described in a programming language that can be displayed in a circuit form in which a plurality of instruction elements are connected to each other. Specifically, the control program is described in LD, FBD, or SFC. Target the program. In the following, a description will be given assuming that a typical example is described in LD. When a method of describing the entire program in a plurality of languages is employed, the control program may include a program described in ST or IL.
  • the user checks the control program in various situations, such as a phase for creating the control program, a phase for checking the operation of the control program, and a phase for correcting a bug in the control program.
  • the information processing device for displaying the control program is provided with a device corresponding to the situation at the time of confirmation.
  • a support device 200 for supporting program development, a programmable display device for monitoring various devices controlled by the control device Etc. are provided.
  • the description will be given assuming that the configuration of the program is displayed on the support device 200.
  • the support device 200 displays the control program on the display 214 of the support device 200 in a circuit mode in which a plurality of command elements included in the control program are connected to each other.
  • the display destination is, for example, the display 214 included in the support device 200, but may be a display unit included in a device different from the support device 200.
  • the support device 200 When the support device 200 cannot display the entire control program, the support device 200 displays a command of a specified part of the control program in a circuit form. For example, in FIG. 1, it is assumed that a part 274b of the entire control program 274a is displayed on the display 214 as the circuit diagram 400.
  • Each command element is displayed as an object 420. That is, the circuit diagram 400 includes a plurality of objects 420 and lines 430 connecting the objects 420. In FIG. 1, some reference numerals are omitted to simplify the illustration.
  • the user can select a specific object 420 from the displayed objects 420 by operating an input unit such as a mouse or a keyboard.
  • the support device 200 additionally displays a detailed object 440 indicating information related to execution of an instruction indicated by the selected object 420 (also referred to as “selected object 450”) among the displayed objects 420.
  • the size of the display is changed for convenience before and after the additional display.
  • the information indicated by the detailed object 440 includes information that is not shown in a state where the detailed object 440 is displayed in a circuit form before the additional display (the state before the additional display).
  • the name 428 of the instruction indicated by the selected object 450 is shown before the additional display.
  • the detail object 440 shows details of the instruction indicated by the selected object 450. Specifically, in FIG. 1, for each parameter ("Parameter @ Name" column in the table) used in the instruction indicated by the selected object 450, the type of the parameter ("Data @ Type" column in the table) and the parameter Variable names ("Variable @ Name” column in the table) and the values input to the parameters ("Value" column in the table) are shown.
  • the support device 200 displays the detailed object 440 while maintaining the circuit diagram 400 displayed before the additional display.
  • the state that the circuit diagram 400 is maintained is displayed before the additional display without changing the relative positional relationship of the objects 420 included in the circuit diagram 400 that was displayed before the additional display. This means that all the objects 420 are kept displayed.
  • the support device 200 additionally displays the detailed object 440 while maintaining the state of the object 420 displayed in the circuit mode.
  • the support device 200 capable of effectively confirming the details of the control program and the flow of the control program is provided. As a result, it is possible to provide an environment that can effectively support control program development.
  • FIG. 2 is a schematic diagram illustrating a configuration example of the control system 1 to which the support device 200 can be applied.
  • control system 1 includes a plurality of PLCs 100-1, 100-2, 100-3, 100-4,... (Hereinafter, also collectively referred to as “PLC 100”).
  • PLC 100 is an example of a control device that controls a control target that is a field device such as a relay and a sensor.
  • the support device 200 is connectable to the PLC 100 and provides an environment that supports development of a control program of the PLC 100.
  • the control system 1 may have a configuration including one PLC 100.
  • a development environment for one PLC 100 will be described.
  • the PLC 100 typically includes a CPU unit 10 which is a main body for executing various programs including a control program, a power supply unit 12 for supplying power to the CPU unit 10 and the like, and an I / O (I / O) for exchanging signals from a field. Input / Output) unit 14.
  • the I / O unit 14 is connected to the CPU unit 10 via the system bus 11.
  • the development support environment provided by the support device 200 may have an editor (editing) of a control program, a debugger, a simulator, and a monitor function for outputting these output information to a monitor such as a display.
  • the support device 200 further has a function of acquiring a state value of the running PLC 100 and outputting the acquired value to a monitor such as a display.
  • the support program which is an application program stored in the optical recording medium 8
  • various functions for the development support environment as described above are realized.
  • the support program may be downloaded from an external server device or the like via a network.
  • the support device 200 is connected to the CPU unit 10 of the PLC 100 via a connection cable, for example.
  • the support device 200 is typically realized by a personal computer.
  • FIG. 3 is a schematic diagram illustrating a hardware configuration example of the support device 200.
  • support device 200 is typically configured by a general-purpose computer. Note that, from the viewpoint of maintainability at the manufacturing site where the PLC 100 is arranged, a notebook personal computer with excellent portability is preferable.
  • the support device 200 includes a storage unit 201 and a CPU 202 that executes various programs including an operating system (OS).
  • the storage unit 201 is executed by the CPU 202, a ROM (Read Only Memory) 204 for storing BIOS and various data, a memory RAM 206 for providing a work area for storing data necessary for executing a program in the CPU 202.
  • a hard disk (HDD) 208 for storing programs and the like in a nonvolatile manner.
  • the support device 200 further includes an operation unit 203 including a keyboard 210 and a mouse 212 operated by the user to input an instruction to the support device 200, and a display 214 for presenting information to the user.
  • the support device 200 includes a communication interface 218 for communicating with the PLC 100 (CPU unit 10) and the like.
  • the communication interface 218 may include a USB communication module for communicating with a USB interface (not shown) provided in the PLC 100.
  • the support device 200 includes an optical recording medium reader 216 for reading a support program for providing a development support environment stored in the optical recording medium 8 from the optical recording medium 8.
  • FIG. 3 illustrates a configuration example in which a processor such as the CPU 202 provides necessary functions by executing a program.
  • a processor such as the CPU 202 provides necessary functions by executing a program.
  • some or all of the provided functions may be replaced by dedicated hardware circuits (for example, , ASIC or FPGA).
  • a plurality of OSs having different purposes may be executed in parallel using virtualization technology, and a required application may be executed on each OS.
  • FIG. 4 is a diagram illustrating an example of a user interface screen 1000 on which a user program is displayed.
  • the user interface screen 1000 is presented to the user via the display 214.
  • the user interface screen 1000 includes a program display area 1400. As shown in FIG. 4, the program display area 1400 is set to a predetermined display range in the user interface screen 1000. The range of the program display area 1400 may be arbitrarily changed by a user operation.
  • the program display area 1400 displays instructions of a designated portion of the user program.
  • the user program is displayed in a circuit mode in which objects 420 indicating instruction elements are connected by a line 430. That is, the circuit diagram 400 is displayed in the program display area 1400.
  • FIG. 5 is a diagram showing an example of the object 420.
  • the object 420 includes a real object 422 indicating one part itself such as a contact 424 or a coil 426, and an aggregate object 421 collectively indicating a predetermined process.
  • the aggregate object 421 can be displayed in two different display formats. More specifically, the aggregate object 421 is displayed in one of a simplified format and a detailed format having a larger amount of information than the simplified format. As shown in FIG. 5, the aggregate object 425 in the detailed format has a larger amount of information contained in one object than the aggregate object 423 in the simplified format.
  • the display format may be predetermined or may be selectable by the user. Further, the display format may be switched when displayed in a circuit mode. In the following, when there is no particular need to separate the simplified form and the detailed form, it is referred to as “aggregate object 421”. When the simplified form of the collective object is described, it is referred to as “aggregate object 423”. In this case, “set object 425” is set.
  • the group of processes indicated by the ⁇ set object 421 ⁇ may include one defined by a function (FUN) or a function block (FB: Function @ Block), and one described in another language such as the ST language.
  • FUN function
  • FB Function @ Block
  • the support device 200 can further add information that is not shown in the simplified format to the display 214 among the contents of the processing indicated by the aggregate object 423 displayed in the simplified format.
  • FIG. 6 is a diagram showing an example of the program display area 1400 after the additional display.
  • detailed information is not shown in the aggregate object 425 in the detailed format for simplification of the figure.
  • the detailed object 440 is displayed in the program display area 1400 in response to the selection, so that the simplified form is displayed.
  • information not shown is additionally shown.
  • the display of the detailed object 440 in the program display area 1400 is also referred to as being additionally displayed.
  • a display switching function of the detailed object 440 may be assigned to a specific operation of the keyboard 210 such as a function key of the keyboard 210.
  • the timing of non-display includes a time when an operation for closing the detailed object 440 is received and a time when an operation for adding the real object 422 or the aggregate object 421 at the position where the detailed object 440 is provided is received. .
  • a button for closing the detail object 440 is provided, the button is operated, and a menu screen is displayed by right-clicking the mouse or the like, and the displayed menu screen is displayed. From choosing to close.
  • the display position of the detailed object 440 may be determined again and arranged.
  • the support device 200 Before and after the additional display, the positional relationship of the object 420 displayed in the circuit form does not change.
  • the support device 200 additionally displays the state of the object 420 displayed in a circuit manner.
  • the detailed object 440 is displayed so as to overlap the image displayed in the program display area 1400 before the additional display. That is, the detailed object 440 is displayed on the circuit diagram 400 including the object 420 and the line 430 displayed in a circuit manner.
  • the overlapping display means that the detailed object 440 is displayed on a layer located on the near side (side on which the user is located) with respect to the layer on which the circuit diagram 400 is displayed.
  • the layer displaying the detailed object 440 different from the layer displaying the circuit diagram 400, it is possible to make changes to the circuit diagram 400 while displaying the detailed object 440, and to display the detailed object 440.
  • the operability in changing the circuit diagram 400 can be the same before and after. Further, even when the execution result of the control program is reflected on the circuit diagram 400 in order to confirm the operation of the control program, the detailed object 440 can be displayed without affecting the reflection of the execution result.
  • the detailed object 440 may indicate the same information as the information when the aggregate object 421 is illustrated in the detailed format, or may indicate more information than the information when the aggregate object 421 is illustrated in the detailed format, In addition, less information may be shown than the information when the aggregate object 421 is shown in the detailed format.
  • the detail object 440 may be additionally displayed in response to the selection of the aggregate object 425. That is, in the present embodiment, the detailed object 440 is displayed when the aggregate object 423 is selected and a predetermined operation is received. However, when the aggregate object 425 is selected and the predetermined operation is received. However, the detailed object 440 may be displayed. Note that the following description is based on the assumption that the detailed object 440 is displayed when the aggregate object 423 is selected and a predetermined operation is received.
  • FIG. 7 is a diagram showing a display example of the detailed object 440.
  • the detailed object 440 can be displayed in various formats, for example, the same format as the detailed format (aggregate object format), a table format, a document format, and the like.
  • Various document formats are available, such as a method of displaying characters in a bulleted list and a method of displaying characters in one line.
  • the support device 200 determines the display position of the detailed object 440 in the program display area 1400 based on the position of the object 420 displayed in the circuit mode and the size of the object 420. More specifically, the positional relationship between the selected set object 423 (hereinafter, also referred to as “selected object 450”) and the detailed object 440, and the overlap between the object 420 and the detailed object 440 displayed in a circuit manner
  • the display position of the detailed object 440 is determined based on at least one of the degrees.
  • FIG. 8A is a diagram illustrating an example in which the detailed object 440 is displayed in a vacant area
  • FIG. 8B is a diagram illustrating an example in which the detailed object 440 is displayed at a position close to the selected object 450. .
  • the support device 200 specifies a free area 1410 (an area shown by oblique right diagonal lines in FIG. 8A) in the program display area 1400 where the object 420 is not displayed.
  • the display position of the detailed object 440 may be determined so that the detailed object 440 is arranged in the free area 1410.
  • the empty area 1410 is an area where the object 420 is not displayed. Therefore, arranging the detailed object 440 in the free space 1410 means that the position of the detailed object 440 is determined according to the density of the objects 420.
  • the display position is determined so that the area where the detailed object 440 and the object 420 overlap is relatively small.
  • the support device 200 may determine the display position of the detailed object 440 based on the distance from the center O with the display position of the selected object 450 as the center. For example, in the example illustrated in FIG. 8B, a position within a distance R from the center O is defined as a display range of the detailed object 440.
  • the empty area 1410 is specified by specifying the display position (x, y) and the display area (S) of the object 420, and is selected.
  • the position where the detailed object 440 is displayed is determined from the free space 1410 around the object 450.
  • FIG. 9 is a flowchart of the detailed object display processing.
  • the detailed object display process is a process executed by the CPU 202 of the support device 200.
  • the detailed object display process is realized by the CPU 202 executing an instruction code indicated by a GUI module 258 described later.
  • step S110 the CPU 202 determines whether or not the set object 423 has been selected. If it is determined that no selection has been made (NO in step S110), CPU 202 ends the process. If it is determined that it has been selected (YES in step S110), CPU 202 ends the process.
  • step S112 CPU 202 acquires position (X a, Y a) in the program display area 1400 of the selected object 450 and size and (S a).
  • the CPU 202 may acquire the position and size by modeling the shape of the selected object 450 into a predetermined shape.
  • the position and the size of the aggregate object 423 are obtained by modeling the shape into a predetermined shape, so that the position and the size can be easily calculated.
  • step S114 the CPU 202 acquires the size ( Sb ) of the detailed object 440 to be displayed.
  • the size (S b ) of the detail object 440 is obtained based on the display format of the detail object 440 and the amount of information shown in the detail object 440.
  • step S116 the CPU 202 performs a search process.
  • the search process is a process for searching for a position at which the detailed object 440 is displayed.
  • step S118 the CPU 202 displays the detailed object 440 on the foreground of the display area determined based on the search result, and ends the processing.
  • FIG. 10 is a flowchart of the search process.
  • step S202 the CPU 202 determines whether an omnidirectional search has been performed.
  • the “all directions” mean a direction centered on the selected object 450 and viewed from the center. More specifically, in the present embodiment, four directions of up, down, left, and right around the selected object 450 are defined as all directions. Note that the number of directions is not limited to four, but may be five or more, or three or less.
  • step S204 the CPU 202 determines the right side of the right bus as the display area, and returns to the detailed object display processing. This will be described in more detail with reference to FIG. FIG. 11 is a diagram showing a display example when the right side of the right bus is set as the display area. In FIG. 11, detailed information is not described for simplification of the drawing.
  • the object 420 is displayed in an area between the left bus 451 and the right bus 452. Of the left bus 451 and the right bus 452, the detailed object 440 is displayed outside the right bus 452, of which nothing is displayed outside.
  • step S202 If it is determined that there is a direction that has not been searched (NO in step S202), the CPU 202 proceeds to step S206.
  • step S206 the CPU 202 sets the unsearched direction as the search direction D.
  • the CPU 202 sets the search direction D according to a predetermined priority.
  • the priority may be set by a user or may be set by a program provider.
  • the search is performed in the order of rightward (D 1 ), downward (D 2 ), leftward, and upward.
  • step S208 the CPU 202 determines whether there is an object 420 in the search direction D starting from the selected object 450, the search direction D 'adjacent to the search direction D, and the search direction D ". That is, the CPU 202 selects the object. A position for displaying the detailed object 440 is searched around the object 450.
  • step S208 If it is determined that there is an object 420 (YES in step S208), CPU 202 proceeds to step S210.
  • CPU 202 may search direction D, D ', the position of the object 420 in the D "(X c, Y c ) to obtain the size (S c).
  • step S212 the CPU 202 determines whether or not the detailed object 440 fits in the free area 1410.
  • the empty area 1410 is an area between the selected object 450 at the position (X a , Y a ) and the object 420 at the position (X c , Y c ).
  • step S214 the CPU 202 determines the free area 1410 in which the detailed object 440 fits as the display area of the detailed object 440, and returns to the detailed object display processing.
  • step S212 If it is determined that it does not fit (NO in step S212), the CPU 202 returns to step S202, and repeats steps S202 to S212 until the search in all directions ends, or until an empty area 1410 in which the detailed object 440 fits is found. .
  • the fact that the detail object 440 fits in the free area 1410 means that the detail object 440 and the object 420 do not overlap. That is, repeating steps S202 to S212 until a free area 1410 in which the detailed object 440 can be accommodated is found, so that when the detailed object 440 is arranged, the area where the detailed object 440 and the object 420 overlap is relatively small. It can be said that the display position is determined.
  • the CPU 202 changes the search direction and again determines whether the detailed object 440 fits in the free area provided in the search direction. If no free area in which the detailed object 440 can be found is found even after searching in all directions, in step S204, the right side of the right bus 452, that is, the outside of the circuit diagram showing the user program is displayed in the display area of the detailed object 440. decide. In other words, when the periphery of the selected object 450 is surrounded by the object 420, the CPU 202 indicates the user program if the detailed object 440 cannot be contained in the area between the object 420 and the selected object 450. The detail object 440 is displayed outside the circuit diagram.
  • Figure 12 is a conceptual view of a search method when D 1 direction to be searched.
  • Figure 13 is a diagram showing an example of the search result when D 1 direction to be searched.
  • Figure 14 is a conceptual view of a search method when D 2 direction to be searched.
  • Figure 15 D 2 direction is a diagram showing an example of a search result when a search target.
  • the CPU 202 may obtain the position and the size of the object 420 by modeling the shape of the object 420 into a predetermined shape.
  • the CPU 202 is modeled as a square.
  • the position and the size of the object 420 can be easily calculated by modeling the object 420 into a predetermined shape and acquiring the position and the size.
  • the CPU 202 sets the search direction D again, and searches whether or not the detailed object 440 falls within the set search direction D.
  • the direction D 2 is set to the next direction D 1.
  • D 2 direction, the D 2 'direction and D 2 "direction, the object 420 for each of .2 single object that two position, and its position and size CPU202 acquires .
  • the position of the object 420-1 (X c1, Y c1) and size (S c1) as well as the position of the object 420-2 (X c2, Y c2) and size (S c2) CPU 202 acquires .
  • the CPU 202 may obtain the position and the size of the object 420 by modeling the shape of the object 420 into a predetermined shape.
  • FIG. 14 it is assumed that the CPU 202 is modeled as a square.
  • the position and the size of the object 420 can be easily calculated by modeling the object 420 into a predetermined shape and acquiring the position and the size.
  • step S208 the CPU 202 proceeds to step S220.
  • step S220 the CPU 202 determines whether the display position of the selected object 450 is at the right end.
  • the CPU 202 determines the right side of the right bus as the display area in step S204, and returns to the detailed object display processing.
  • step S220 If it is determined that the display position of the selected object 450 is not at the right end (NO in step S220), the CPU 202 proceeds to step S222.
  • step S222 the CPU 202 determines whether the circuit including the selected object 450 is located at the bottom of the program.
  • step S222 If it is determined that it is not the bottom (NO in step S222), the CPU 202 determines the right side of the right bus as the display area in step S204, and returns to the detailed object display processing.
  • step S222 If it is determined that it is at the bottom (YES in step S222), CPU 202 proceeds to step S224.
  • step S224 the CPU 202 determines whether or not the detailed object 440 fits in a free area below the selected object 450. If it is determined that the detailed object 440 does not fit in the free area below the selected object 450 (NO in step S224), the CPU 202 proceeds to step S204, and the right side of the right bus 452, that is, outside the circuit diagram showing the user program. Is determined as the display area of the detail object 440. On the other hand, when it is determined that the detailed object 440 fits in the free area below the selected object 450 (YES in step S224), the CPU 202 proceeds to step S226.
  • step S226 the CPU 202 determines the lower side of the selected object 450 as the display area, and returns to the detailed object display processing.
  • FIG. 16 is a diagram showing an example of the program display area 1400 before and after the additional display. In FIG. 16, it is assumed that the circuit including the selected object 450 is located at the bottom of the program.
  • the support device 200 displays the detailed object 440 below the selected object 450.
  • FIG. 17 is a schematic diagram illustrating a software configuration of the support device 200.
  • the instruction code included in the software illustrated in FIG. 17 is read at an appropriate timing, provided to the CPU 202 of the support device 200, and executed.
  • the software shown in FIG. 17 is included in a support program stored and provided in the optical recording medium 8.
  • OS 240 and programming application 250 are mounted on support device 200.
  • the support device 200 executes the OS 240 and provides an environment in which the programming application 250 can be executed.
  • a support program for implementing the support device 200 according to the present embodiment includes at least a programming application 250.
  • the programming application 250 includes an editor 252, a compiler 254, a debugger 256, a GUI (Graphical User Interface) module 258, a simulator 260, and a data storage unit 270.
  • Each module included in the programming application 250 is typically distributed while being stored as a support program in the optical recording medium 8 and installed in the support device 200.
  • the editor 252 provides functions such as input and editing for creating an executable program (source program). More specifically, the editor 252 provides a function of creating a source program of the user program 274 by a user operating the keyboard 210 and the mouse 212, and a function of saving and editing the created source program.
  • the compiler 254 provides a function of compiling a source program of the user program 274 and generating an executable program executable by the CPU unit 10.
  • the debugger 256 provides a function for debugging an executable program (source program).
  • the contents of the debugging include an operation of partially executing a range specified by the user in the source program and an operation of tracking a temporal change of a variable value during execution of the source program.
  • the GUI module 258 has a function of providing a user interface for a user to input various data and parameters. That is, the above-described user interface screen 1000 is provided by the GUI module 258.
  • the GUI module 258 displays a user interface screen based on the operation received by the operation unit 203, the user program 274, the variable setting 272 necessary for executing the program, the setting information 276 related to the display format, and the object information 278 related to the object. Provide 1000.
  • the GUI module 258 provides the functions of the program display unit and the additional display unit of the present invention.
  • the simulator 260 constructs an environment for simulating the execution of a program in the CPU unit 10 of the PLC 100 in the support device 200.
  • the data storage unit 270 stores a user program 274, a variable setting 272, setting information 276, and object information 278.
  • FIG. 18 is a diagram illustrating a modification of the additional display.
  • FIG. 18A is a diagram illustrating a detailed object 440a according to a first modification
  • FIG. 18B is a diagram illustrating a detailed object 440b according to a second modification.
  • the CPU 202 displays only the image that fits in the display area of the determined size without reducing the image displayed as the detailed object 440, and operates the scroll bar 442 and the like to reduce the user May be able to confirm the whole. Also, as shown in FIG. 18B, the image displayed as the detailed object 440 may be reduced to fit the image in the determined size.
  • FIG. 19 is a flowchart of a search process in the modification.
  • the search process is terminated when a priority is set in the search direction, the search is performed according to the priority, and a direction in which the detailed object 440 fits is found.
  • the search process may end without searching in all directions around the selected object.
  • the display position may be determined by performing an omnidirectional search, listing a plurality of display position candidates, and evaluating each of the plurality of candidates.
  • step S202 the CPU 202 executes steps S204-2, S214-2, and S226-2 instead of steps S204, S214, and S226 shown in FIG. If it is determined in step S202 that an omnidirectional search has been performed, the process proceeds to step S230.
  • step S204-2 the CPU 202 sets the right side of the right bus as a candidate for the display area of the detailed object 440.
  • step S214-2 the CPU 202 sets a free area 1410 in which the detailed object 440 can be accommodated as a candidate for a display area of the detailed object 440.
  • step S226-2 the CPU 202 sets the lower side of the selected object 450 as a display area candidate.
  • step S204-2 step S214-2, and step S226-2
  • the CPU 202 proceeds to step S202, and performs steps S206 to S204-2, step S214-2, and step S226 until the search in all directions is completed. -2 is repeated.
  • step S230 CPU 202 determines an optimal display area from display area candidates.
  • the evaluation method of the display area set as a candidate is determined based on, for example, a first factor indicating a degree of overlap with another object 420 and a second factor indicating a distance from the selected object 450.
  • the configuration may be such that the user can set which of the first factor and the second factor is to be weighted for evaluation.
  • the support device 200 that supports the development of the program has been described.
  • any information processing device capable of displaying a program is not limited to the support device 200, and may be, for example, an HMI that monitors various devices controlled by the PLC 100, a PC that is connected online to the PLC 100, or the like. You may.
  • a device that executes a program to be displayed and a device that has a function related to display may be configured separately.
  • the support device 200 displays the aggregate object 423 displayed in the simplified format by displaying the detailed object 440 of the processing contents indicated by the aggregate object 423 in the simplified format. Missing information can be added and shown on the display 214. At this time, the detailed object 440 is additionally displayed without changing the state of the object 420 shown in the circuit mode. Therefore, information on the instruction indicated by the selected object 420 can be additionally shown without losing the information before the detailed object 440 is additionally displayed. That is, the support device 200 capable of effectively confirming the details of the control program and the flow of the control program is provided. As a result, it is possible to provide an environment that can effectively support control program development.
  • the position of the detailed object 440 is determined according to the density of the objects 420. Therefore, the detailed object 440 can be displayed while avoiding a region where the objects 420 are densely packed. That is, the detailed object 440 can be displayed at an appropriate position according to the arrangement state of the object 420 included in the program displayed in the circuit mode.
  • the CPU 202 repeats steps S202 to S212 in FIG. 10 until a free area 1410 in which the detailed object 440 is stored is found. That is, when arranging the detailed object 440, the CPU 202 determines the display position so that the area where the detailed object 440 and the object 420 overlap is relatively small. Therefore, when the detailed object 440 is displayed, it is possible to prevent the object 420 indicating the instruction element from being hidden by the newly added detailed object 440. As a result, more information can be provided without losing information before and after additionally displaying the detailed object 440.
  • the support device 200 may determine the display position of the detailed object 440 based on the distance from the center O with the display position of the selected object 450 as the center. That is, the support device 200 determines the display position of the detailed object 440 based on the distance from the display position of the selected object 450. Therefore, the detailed object 440 can be displayed at a position corresponding to the display position of the selected object 450 indicating a command common to the detailed object 440. As a result, it is possible to display objects indicating common commands in association with each other.
  • step S230 in FIG. 19 the CPU 202 determines the position of the detailed object 440 based on the degree of overlap between the detailed object 440 and another object 420 and the distance from the selected object 450. Therefore, it is possible to prevent the other objects 420 from being hidden by the detailed object 440 while displaying the objects indicating the common command in association with each other. As a result, the detailed object 440 and the entire flow of the program can be displayed effectively.
  • the CPU 202 models the shape of the object 420 into a predetermined shape and acquires the position and size of the object 420.
  • the position and the size of the object 420 can be easily calculated by modeling the object 420 into a predetermined shape and acquiring the position and the size. As a result, the processing load on the CPU 202 can be reduced.
  • the CPU 202 searches for a position at which the detailed object 440 is displayed centering on the selected object 450. Therefore, an appropriate position related to the selected object 450 can be quickly searched. As a result, it is possible to reduce the load of the processing for determining the display position.
  • the CPU 202 may not fit the detailed object 440 in an area between the object 420 and the selected object 450.
  • the detailed object 440 is displayed outside the circuit diagram showing the user program. Therefore, the detailed object 440 can be displayed without hiding the object 420, and since the method of determining the display position of the detailed object 440 has a rule, the user can easily predict where the detailed object 440 will be displayed. It is easy to find the displayed detailed object 440.
  • An information processing apparatus comprising: an additional display unit (258) for additionally displaying an additional object (440) indicating information that is not displayed while maintaining the state of the object displayed in the circuit mode.
  • the additional display means determines the position of the additional object such that the overlapping area between the additional object and the object displayed in the circuit mode is relatively small (Steps S202 to S212), Configuration 1 or 2.
  • the information processing device according to configuration 2.
  • the additional display means determines the position of the additional object based on the degree of overlap between the additional object and the object displayed in the circuit mode and the distance from the selected specific object (step S230).
  • the information processing apparatus according to Configuration 1.
  • the additional display means models the object displayed in the circuit mode into a predetermined shape, thereby displaying the display area (S) and the display position (X, Y) of the object displayed in the circuit mode. 6.
  • the information processing apparatus according to any one of Configurations 1 to 5, wherein the information processing device acquires the information.
  • the additional display means includes: an object (420-1, 420-2, 420-A) arranged at a position adjacent to the selected specific object among the objects displayed in the circuit mode; If the additional object does not fit in the area between the specified specific object and the additional object, the additional object is displayed outside the program displayed in the circuit mode (step S204), and the information processing according to configuration 7 apparatus.
  • an additional object indicating information related to execution of an instruction indicated by the specific object and not shown in a state displayed in the circuit mode is added to the circuit.
  • S118 maintaining the state of the object displayed in the mode and additionally displaying the state.

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

制御プログラム開発を効果的に支援することが可能な環境を提供する。回路図に含まれるオブジェクトが示す命令に関する情報を、詳細オブジェクトを追加で表示することで示す場合に、回路図に含まれるオブジェクトの状態を維持したままにする。

Description

情報処理装置および表示プログラム
 本開示は、制御対象を制御する制御装置において実行される制御プログラムを表示する情報処理装置およびそれを実現するための表示プログラムに関する。
 様々な製造現場において、PLC(Programmable Logic Controller)などの制御装置が導入されている。このような制御装置は、一種のコンピュータであり、製造装置や製造設備などに応じて設計されたユーザプログラムに含まれる制御プログラムが実行される。このような制御プログラムは、制御装置とは別に用意された開発環境にて作成される。
 ユーザは、制御プログラムを作成するフェーズ、制御プログラムの動作を確認するフェーズ、制御プログラムのバグを修正するフェーズなど、様々な場面で制御プログラムを表示する。そのため、開発を効率的に進めることのできる制御プログラムの表示が求められている。
 例えば、特開2004-280341号公報(特許文献1)は、ファンクションブロック呼び出し命令の表示形態として、全ての複数の入出力端子を表示する全表示形態と、ラダー回路と連結していない入出力端子を表示しない簡易矩形表示形態を持つ装置を開示する。
特開2004-280341号公報
 しかし、特許文献1に開示の装置では、ファンクションブロック呼出し命令のような一つの命令要素の表示形態については鑑みられてはいたものの、一つの命令要素を詳細に表示する場合の他の命令要素の表示形態については鑑みられていなかった。
 本開示の一つの目的は、シーケンスプログラム開発を効果的に支援することが可能な環境を提供することである。
 本開示の一例によれば、制御対象を制御する制御装置において実行される制御プログラムを表示する情報処理装置が提供される。情報処理装置は、制御プログラムを、制御プログラムを構成する命令要素を示すオブジェクト同士を繋いた回路態様で表示するプログラム表示手段と、回路態様で表示されたオブジェクトのうちの特定のオブジェクトの選択に応じて、特定のオブジェクトが示す命令の実行に関する情報であって、回路態様で表示されている状態において示されていない情報を示す追加オブジェクトを、回路態様で表示されているオブジェクトの状態を維持して追加で表示する追加表示手段とを含む。
 この開示によれば、制御プログラムの一部が示す情報と、制御プログラム全体の流れとが効果的に表示されるため、制御プログラム開発を効果的に支援することが可能な環境を提供することができる。
 上述の開示において、追加表示手段は、前記回路態様で表示されているオブジェクトの密集度合いに基づいて前記追加オブジェクトの位置を決定する。
 この開示によれば、回路態様で表示されているプログラムに含まれるオブジェクトの配置状況に応じた適当な位置に追加オブジェクトを表示することができる。
 上述の開示において、追加表示手段は、追加オブジェクトと回路態様で表示されているオブジェクトとの重なる面積が相対的に小さくなるように追加オブジェクトの位置を決定する。
 この開示によれば、命令要素を示すオブジェクトが新たに追加で表示される追加オブジェクトで隠れてしまうことを防止することができる。その結果、より多くの情報を提供することができる。
 上述の開示において、追加表示手段は、選択された特定のオブジェクトからの距離に基づいて追加オブジェクトの位置を決定する。
 この開示によれば、互いに共通する命令を示すオブジェクトを関連付けて表示することができる。
 上述の開示において、追加表示手段は、追加オブジェクトと回路態様で表示されているオブジェクトとの重なり度合いと、選択された特定のオブジェクトからの距離とに基づいて追加オブジェクトの位置を決定する。
 この開示によれば、互いに共通する命令を示すオブジェクトを関連付けて表示しつつ、他のオブジェクトを追加オブジェクトで隠してしまうことを防止することができる。
 上述の開示において、追加表示手段は、回路態様で表示されているオブジェクトを予め定められた形状にモデル化することで、回路態様で表示されているオブジェクトの表示面積および表示位置を取得する。
 この開示によれば、オブジェクトの表示面積および表示位置を容易に取得することができる。
 上述の開示において、追加表示手段は、選択された特定のオブジェクトを中心に、追加オブジェクトを表示する位置を探索する。
 この開示によれば、選択された特定のオブジェクトと関連した適当な位置を早くに探索することができる。その結果、表示位置を決定する処理の負担を軽減することができる。
 上述の開示において、追加表示手段は、回路態様で表示されたオブジェクトのうちの選択された特定のオブジェクトと隣接する位置に配置されたオブジェクトと、選択された特定のオブジェクトとの間の領域に、追加オブジェクトが収まらない場合に、回路態様で表示されたプログラムの外に追加オブジェクトを表示する。
 この開示によれば、オブジェクトを隠すことなく追加オブジェクトを表示することができるとともに、追加オブジェクトの表示位置の決定方法に法則性があるため、ユーザはどこに追加オブジェクトが表示されるかを予測しやすく、表示された追加オブジェクトを探しやすい。
 本開示の別の一例によれば、制御対象を制御する制御装置において実行される制御プログラムを表示するための表示プログラムが提供される。表示プログラムはコンピュータに、制御プログラムを、制御プログラムを構成する命令要素を示すオブジェクト同士を繋いた回路態様に含まれるオブジェクトのうちの特定のオブジェクトの選択を受け付けるステップと、特定のオブジェクトの選択を受け付けた場合に、特定のオブジェクトが示す命令の実行に関する情報であって、回路態様で表示されている状態において示されていない情報を示す追加オブジェクトを、回路態様で表示されているオブジェクトの状態を維持して追加で表示するステップと、を実行させる。
 この開示によれば、制御プログラムの一部が示す情報と、制御プログラム全体の流れとが効果的に表示されるため、制御プログラム開発を効果的に支援することが可能な環境を提供することができる。
 本開示の一例によれば、制御プログラム開発を効果的に支援することが可能な環境を提供することができる。
本実施の形態に係る制御プログラムの表示の遷移を示す図である。 サポート装置を適用可能な制御システムの構成例を示す模式図である。 サポート装置のハードウェア構成例を示す模式図である。 ユーザインターフェイス画面の一例を示す図である。 オブジェクトの一例を示す図である。 追加表示後のプログラム表示領域の一例を示す図である。 詳細オブジェクトの表示例を示した図である。 (a)は、詳細オブジェクト440を空いている領域に表示する例を示した図であり、(b)は、選択オブジェクト450と近い位置に表示する例を示した図である。 詳細オブジェクト表示処理のフローチャートである。 探索処理のフローチャートである。 右母線の右側を表示領域としたときの表示例を示す図である。 方向が探索対象であるときの探索手法の概念図である。 方向が探索対象であるときの探索結果の一例を示す図である。 方向が探索対象であるときの探索手法の概念図である。 方向が探索対象であるときの探索結果の一例を示す図である。 追加表示がされる前後のプログラム表示領域の一例を示す図である。 サポート装置のソフトウェア構成を示す模式図である。 (a)は、第1の変形例に係る詳細オブジェクト440aを示す図であり、(b)は、第2の変形例に係る詳細オブジェクト440bを示す図である。 変形例における探索処理のフローチャートである。
 本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
 §1 適用例
 図1を参照して、本発明が適用される場面の一例について説明する。図1は、本実施の形態に係る制御プログラムの表示の遷移を示す図である。制御プログラムは、FA分野で使用される各種装置を制御する制御装置が実行するプログラムである。
 本明細書において、「制御プログラム」は、FA分野で使用される各種装置を制御する制御装置の基本的な機能を提供するためのプログラムと、制御対象に応じて任意に設計されるプログラム(「ユーザプログラム」ともいう)とを包含する概念である。但し、制御プログラムは、制御対象に応じて任意に設計されるプログラムのみを含む場合もある。
 国際規格IEC61131-3においては、PLCアプリケーションのプログラミング言語として、ラダーダイアグラム(LD:Ladder Diagram)、ファンクションブロックダイアグラム(FBD:Function Block Diagram)、シーケンシャルファンクションチャート(SFC:Sequential Function Chart)、インストラクションリスト(IL:Instruction List)、ストラクチャードテキスト(ST:Structured Text)の5種類を規定する。本発明に係る制御プログラムは、複数の命令要素を互いに繋いだ回路態様で表示可能なプログラミング言語で記述されているプログラムを対象としており、具体的には、LD,FBD,またはSFCで記述されたプログラムを対象とする。以下では、典型例としてLDで記述されているものとして説明する。なお、プログラム全体を複数の言語で記述する方式を採用する場合に、制御プログラム内にSTまたはILで記述されたプログラムが含まれていてもよい。
 ユーザは、制御プログラムを作成するフェーズ、制御プログラムの動作を確認するフェーズ、制御プログラムのバグを修正するフェーズなど、様々な場面で制御プログラムを確認する。制御プログラムを表示する情報処理装置は、確認時の状況に応じた装置が提供されており、たとえば、プログラムの開発を支援するサポート装置200、制御装置に制御される各種装置を監視するプログラマブル表示器などが提供されている。以下では、典型例として、サポート装置200にプログラムの構成が表示されるものとして説明する。
 サポート装置200は、サポート装置200が備えるディスプレイ214に、制御プログラムに含まれる複数の命令要素を互いに繋いだ回路態様で制御プログラムを表示する。表示先は、サポート装置200が備えるディスプレイ214を一例としたが、サポート装置200とは異なる装置が備える表示部であってもよい。
 サポート装置200は、制御プログラムの全体を表示することができないような場合、制御プログラムのうちの指定された部分の命令を回路態様で表示する。たとえば、図1においては、制御プログラム全体274aのうちの一部274bが回路図400としてディスプレイ214に表示されているものとする。
 各命令要素は、各々、オブジェクト420で表示される。すなわち、回路図400は、複数のオブジェクト420と、オブジェクト420同士を繋ぐ線430から構成されている。なお、図1においては、図示を簡略化するため、符号を一部省略している。
 ユーザは、マウスやキーボードなどの入力部を操作することで、表示されているオブジェクト420のうち、特定のオブジェクト420を選択することができる。サポート装置200は、表示されているオブジェクト420のうち、選択されたオブジェクト420(「選択オブジェクト450」ともいう)が示す命令の実行に関する情報を示す詳細オブジェクト440を追加で表示する。なお、図1においては、追加で表示される前後でディスプレイの大きさを便宜的に変化させている。
 詳細オブジェクト440が示す情報は、詳細オブジェクト440を追加で表示する前の回路態様で表示されている状態(追加表示前の状態)では示されていない情報を含む。たとえば、図1において、追加表示前の状態では、選択オブジェクト450が示す命令の名称428が示されている。一方、詳細オブジェクト440には、選択オブジェクト450が示す命令の詳細が示されている。具体的には、図1においては、選択オブジェクト450が示す命令において用いられるパラメータ(表の「Parameter Name」欄)ごとに、そのパラメータの型(表の「Data Type」欄)、そのパラメータに対して付けられた変数名(表の「Variable Name」欄)、および、そのパラメータに入力された値(表の「Value」欄)が示されている。
 サポート装置200は、詳細オブジェクト440を追加で表示する場合に、追加で表示する前に表示していた回路図400を維持したまま詳細オブジェクト440を表示する。回路図400を維持したままとは、追加で表示する前に表示されていた回路図400に含まれる各オブジェクト420の相対的な位置関係を変えることなく、追加で表示する前に表示されていた全てのオブジェクト420を表示したままとすることをいう。換言すると、サポート装置200は、回路態様で表示されているオブジェクト420の状態を維持したまま、詳細オブジェクト440を追加で表示する。
 このように、詳細オブジェクト440を追加で表示する場合に、回路態様で表示されているオブジェクト420の状態を維持したままとすることで、詳細オブジェクト440を追加で表示する前の情報を欠落させることなく、選択されたオブジェクト420が示す命令に関する情報を追加で示すことができる。すなわち、制御プログラムの詳細と、制御プログラムの流れとを効果的に確認することができるサポート装置200が提供される。その結果、制御プログラム開発を効果的に支援することが可能な環境を提供することができる。
 §2 具体例
 以下、本発明の具体例として、本実施の形態に係るサポート装置200のより詳細な構成および処理について説明する。
 <A.サポート装置を適用可能な制御システム>
 図2は、サポート装置200を適用可能な制御システム1の構成例を示す模式図である。図2を参照して、制御システム1は、複数のPLC100-1,100-2,100-3,100-4,…(以下、「PLC100」とも総称する。)を含んでいる。PLC100の各々は、リレー,センサー等のフィールド機器である制御対象を制御する制御装置の一例である。サポート装置200は、PLC100に接続可能であり、PLC100の制御プログラムの開発を支援する環境を提供する。制御システム1は、1台のPLC100を含む構成であってもよい。以下では、説明を簡単にするために、1台のPLC100を対象にした開発環境を説明する。
 PLC100は、典型的には、制御プログラムを含む各種プログラムを実行する主体であるCPUユニット10と、CPUユニット10などへ電力を供給する電源ユニット12と、フィールドからの信号を遣り取りするI/O(Input/Output)ユニット14とを含む。I/Oユニット14は、CPUユニット10とシステムバス11を介して接続されている。
 サポート装置200が提供する開発支援環境は、制御プログラムのエディタ(編集)、デバッカ、シミュレータおよびこれらの出力情報をディスプレイ等のモニタに出力するためのモニタ機能等を有し得る。サポート装置200は、さらに、運転中のPLC100の状態値を取得し、ディスプレイ等のモニタに出力する機能なども備える。
 光学記録媒体8に格納されたアプリケーションプログラムであるサポートプログラムがサポート装置200にインストールされることで、上述したような開発支援環境のための各種機能が実現される。光学記録媒体8に代えて、外部のサーバ装置などからネットワークを介して、サポートプログラムをダウンロードするようにしてもよい。サポート装置200は、一例として、接続ケーブルを介してPLC100のCPUユニット10と接続される。サポート装置200は、典型的には、パーソナルコンピュータで実現される。
 <B.サポート装置200のハードウェア構成例>
 図3は、サポート装置200のハードウェア構成例を示す模式図である。図3を参照して、サポート装置200は、典型的には、汎用のコンピュータで構成される。なお、PLC100が配置される製造現場における保守性の観点からは、可搬性に優れたノート型のパーソナルコンピュータが好ましい。
 サポート装置200は、記憶部201と、オペレーティングシステム(OS)を含む各種プログラムを実行するCPU202とを備える。記憶部201は、BIOSや各種データを格納するROM(Read Only Memory)204と、CPU202でのプログラムの実行に必要なデータを格納するための作業領域を提供するメモリRAM206と、CPU202で実行されるプログラムなどを不揮発的に格納するハードディスク(HDD)208とを含む。
 サポート装置200は、さらに、サポート装置200に指示を入力するためにユーザが操作するキーボード210およびマウス212を含む操作部203、および情報をユーザに提示するためのディスプレイ214を含む。サポート装置200は、PLC100(CPUユニット10)などと通信するための通信インターフェイス218を含む。通信インターフェイス218は、PLC100が備えるUSBインターフェイス(図示略)と通信するためにUSB通信モジュールを含み得る。
 サポート装置200は、光学記録媒体8からそれに格納されている開発支援環境を提供するためのサポートプログラムを読み取るための光学記録媒体読取装置216を含む。
 図3には、CPU202等のプロセッサがプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
 <C.ユーザインターフェイス画面>
 図4は、ユーザプログラムが表示されるユーザインターフェイス画面1000の一例を示す図である。ユーザインターフェイス画面1000は、ディスプレイ214を介してユーザに提示される。
 ユーザインターフェイス画面1000は、プログラム表示領域1400を含む。図4に示すように、プログラム表示領域1400は、ユーザインターフェイス画面1000内の予め定められた表示範囲に設定されている。プログラム表示領域1400の範囲をユーザ操作により任意に変更可能な構成であってもよい。
 プログラム表示領域1400には、ユーザプログラムのうち、指定された部分の命令が表示されている。ユーザプログラムは、命令要素を示すオブジェクト420同士を線430でつないだ回路態様で表示される。すなわち、プログラム表示領域1400には回路図400が表示されている。
 図5は、オブジェクト420の一例を示す図である。オブジェクト420は、接点424やコイル426などの一部品そのものを示す実オブジェクト422と、所定の処理を一まとまりに示した集合オブジェクト421とを含む。
 集合オブジェクト421は、異なる2つの表示形式で表示され得る。具体的には、集合オブジェクト421は、簡略形式と、簡略形式よりも情報量の多い詳細形式とのうち、いずれか一方の表示形式で表示される。図5に示すように、詳細形式の集合オブジェクト425は、簡略形式の集合オブジェクト423に比べて、一つのオブジェクトに含まれる情報量が多い。表示形式は、予め定められていてもよく、ユーザによって選択可能であってもよい。また、回路態様で表示されているときに表示形式を切り替えることができるようにしてもよい。なお、以下では、簡略形式と詳細形式とを特に分ける必要がない場合は「集合オブジェクト421」とし、簡略形式の集合オブジェクトについて説明する場合は「集合オブジェクト423」とし、詳細形式の集合オブジェクトについて説明する場合は「集合オブジェクト425」とする。
 集合オブジェクト421が示す一まとまりの処理は、ファンクション(FUN:function)またはファンクションブロック(FB:Function Block)によって定義されているもの、およびST言語など他の言語で記述されたものを含み得る。
 <D.追加表示>
 サポート装置200は、簡略形式で表示された集合オブジェクト423について、その集合オブジェクト423が示す処理の内容のうち、簡略形式では示されていない情報をさらに追加してディスプレイ214に表示することができる。
 図6は、追加表示後のプログラム表示領域1400の一例を示す図である。なお、図6においては、図を簡略化するため、詳細形式の集合オブジェクト425に詳細な情報を示していない。プログラム表示領域1400に表示された集合オブジェクト423が操作部203からの操作に基づいて選択されると、その選択に応答して、プログラム表示領域1400に詳細オブジェクト440が表示されることで、簡略形式では示されていない情報がさらに追加して示される。ここで、詳細オブジェクト440がプログラム表示領域1400に表示されることを追加表示されるともいう。
 追加表示をするための操作としては、たとえば、マウス212を操作して一つの集合オブジェクト423を選択する方法が挙げられる。また、キーボード210のファンクションキーなど、キーボード210の特定の操作に詳細オブジェクト440の表示切替機能を割り当ててもよい。
 なお、一度表示した詳細オブジェクト440を非表示にすることも可能である。非表示にするタイミングは、詳細オブジェクト440を閉じるための操作が受け付けられたとき、および詳細オブジェクト440が設けられている位置に実オブジェクト422や集合オブジェクト421を追加する操作が受け付けられたときを含む。詳細オブジェクト440を閉じるための操作には、詳細オブジェクト440に閉じるためのボタンを設け、そのボタンを操作すること、および、マウスを右クリックする等してメニュー画面を表示し、表示されたメニュー画面から閉じることを選択することを含む。また、詳細オブジェクト440が設けられている位置に実オブジェクト422や集合オブジェクト421を追加する操作が受け付けられたときには、詳細オブジェクト440の表示位置を再度決定し、配置するようにしてもよい。
 追加表示される前後で、回路態様で表示されているオブジェクト420の位置関係は変わらない。換言すると、サポート装置200は、回路態様で表示されているオブジェクト420の状態を維持したまま追加表示する。このとき、詳細オブジェクト440は、追加表示される前にプログラム表示領域1400に表示されていた画像の上に重ねて表示される。すなわち、詳細オブジェクト440は、回路態様で表示されているオブジェクト420および線430とから構成された回路図400の上に重ねて表示される。重ねて表示するとは、回路図400が表示されるレイヤーよりも手前側(ユーザが位置する側)に位置するレイヤーに詳細オブジェクト440を表示することを意味する。このように、詳細オブジェクト440を表示するレイヤーを、回路図400を表示するレイヤーと異ならせることで、詳細オブジェクト440を表示したまま、回路図400に変更を加えることができ、詳細オブジェクト440を表示した前と後とで、回路図400を変更する上での操作性を同じにすることができる。また、制御プログラムの動作を確認するために制御プログラムの実行結果を回路図400に反映する場合であっても、実行結果の反映に影響を与えることなく詳細オブジェクト440を表示することができる。
 詳細オブジェクト440は、集合オブジェクト421を詳細形式で示したときの情報と同じ情報を示してもよく、また、集合オブジェクト421を詳細形式で示したときの情報よりも多い情報を示してもよく、また、集合オブジェクト421を詳細形式で示したときの情報よりも少ない情報を示してもよい。
 詳細オブジェクト440が集合オブジェクト421を詳細形式で示したときの情報よりも多い情報を示す場合、集合オブジェクト425を選択したことに応答して詳細オブジェクト440を追加で表示するようにしてもよい。すなわち、本実施の形態においては、集合オブジェクト423が選択されて所定の操作を受け付けたときに、詳細オブジェクト440を表示するものとしたが、集合オブジェクト425が選択されて所定の操作を受け付けたときであっても、詳細オブジェクト440を表示できるようにしてもよい。なお、以下では、集合オブジェクト423が選択されて所定の操作を受け付けたときに、詳細オブジェクト440を表示するものとして説明する。
 図7は、詳細オブジェクト440の表示例を示した図である。詳細オブジェクト440は、たとえば、詳細形式と同じ形式(集合オブジェクト形式)、表形式、ドキュメント形式など、様々な形式で表示可能である。ドキュメント形式としては、箇条書きで文字を表示する方法、一行で表示する方法など、様々な形式を利用可能である。
 <E.詳細オブジェクト440の表示位置>
 サポート装置200は、プログラム表示領域1400内での詳細オブジェクト440の表示位置を、回路態様で表示されているオブジェクト420の位置およびオブジェクト420のサイズに基づいて決定する。より具体的には、選択された集合オブジェクト423(以下、「選択オブジェクト450」ともいう)と詳細オブジェクト440との位置関係、および、回路態様で表示されているオブジェクト420と詳細オブジェクト440との重なり度合いのうちの少なくとも一方の観点に基づいて詳細オブジェクト440の表示位置を決定する。
 図8(a)は、詳細オブジェクト440を空いている領域に表示する例を示した図であって、図8(b)は、選択オブジェクト450と近い位置に表示する例を示した図である。
 図8(a)に示すように、サポート装置200は、プログラム表示領域1400のうち、オブジェクト420が表示されていない空き領域1410(図8(a)の右斜め斜線で示した領域)を特定し、空き領域1410に詳細オブジェクト440を配置するように詳細オブジェクト440の表示位置を決定してもよい。空き領域1410とは、オブジェクト420が表示されていない領域である。そのため、空き領域1410に詳細オブジェクト440を配置するとは、換言すると、オブジェクト420の密集度合いに応じて詳細オブジェクト440の位置が決定されているともいえる。
 より具体的には、詳細オブジェクト440を配置したときに、詳細オブジェクト440とオブジェクト420とが重なる面積が相対的に小さくなるように表示位置が決定される。
 図8(b)に示すように、サポート装置200は、選択オブジェクト450の表示位置を中心として、その中心Oからの距離に基づいて詳細オブジェクト440の表示位置を決定してもよい。たとえば、図8(b)に示す例では、中心Oからの距離がR以内の位置を詳細オブジェクト440の表示範囲として規定されている。
 本実施の形態においては、回路態様で表示される各オブジェクト420について、そのオブジェクト420の表示位置(x,y)と、表示面積(S)とを特定することで空き領域1410を特定し、選択オブジェクト450を中心にその周囲の空き領域1410から詳細オブジェクト440を表示する位置を決定する。
 図9は、詳細オブジェクト表示処理のフローチャートである。詳細オブジェクト表示処理は、サポート装置200のCPU202が実行する処理である。詳細オブジェクト表示処理は、後述するGUIモジュール258が示す命令コードをCPU202が実行することで実現される。
 ステップS110において、CPU202は、集合オブジェクト423が選択されたか否かを判定する。選択されなかったと判定した場合(ステップS110においてNO)、CPU202は、処理を終了する。選択されたと判定した場合(ステップS110においてYES)、CPU202は、処理を終了する。
 ステップS112において、CPU202は、選択オブジェクト450のプログラム表示領域1400内における位置(X,Y)とサイズ(S)とを取得する。このとき、CPU202は、選択オブジェクト450の形状を予め定められた形状にモデル化して位置およびサイズを取得してもよい。本実施の形態においては、CPU202は、四角形にモデル化しているものとする。このように、予め定められた形状にモデル化して集合オブジェクト423の位置およびサイズを取得することで、容易に位置およびサイズを算出することができる。
 ステップS114において、CPU202は、表示する詳細オブジェクト440のサイズ(S)を取得する。詳細オブジェクト440のサイズ(S)は、詳細オブジェクト440の表示形式および詳細オブジェクト440に示す情報量に基づいて取得される。
 ステップS116において、CPU202は、探索処理を行う。探索処理は、詳細オブジェクト440を表示する位置を探索するための処理である。
 ステップS118において、CPU202は、探索結果に基づいて決定された表示領域の最前面に詳細オブジェクト440を表示して処理を終了する。
 <F.探索処理>
 図10~図16を参照して、詳細オブジェクト440を表示する位置を探索するための処理について説明する。図10は、探索処理のフローチャートである。
 ステップS202において、CPU202は、全方向探索したか否かを判定する。全方向とは、選択オブジェクト450を中心として、その中心からみた方向をいう。具体的には、本実施の形態においては、選択オブジェクト450を中心とした上下左右の4方向を全方向とする。なお、全方向は、4方向に限らず、5方向以上、または3方向以下であってもよい。
 全方向探索したと判定した場合(ステップS202においてYES)、CPU202は、ステップS204において、右母線の右側を表示領域に決定して、詳細オブジェクト表示処理に戻る。より詳細に、図11を参照して説明する。図11は、右母線の右側を表示領域としたときの表示例を示す図である。なお、図11においては、図の簡略化のため、詳細な情報について記述していない。
 オブジェクト420は、左母線451と右母線452とに挟まれた領域に表示されている。左母線451と右母線452とのうち、外側に何も表示されていない右母線452の外側に詳細オブジェクト440は表示される。
 探索していない方向があると判定した場合(ステップS202においてNO)、CPU202は、ステップS206に進む。
 ステップS206において、CPU202は、未探索の方向を探索方向Dに設定する。複数の未探索の方向が存在する場合、CPU202は、予め定められた優先順位に沿って探索方向Dを設定する。優先順位は、ユーザによって設定されてもよく、プログラム提供者によって設定されていてもよい。本実施の形態においては、右方向(D)、下方向(D)、左方向、上方向の順に探索するものとする。
 ステップS208において、CPU202は、選択オブジェクト450を起点に探索方向Dと、探索方向Dと隣り合う探索方向D’と探索方向D”にオブジェクト420があるか否かを判定する。すなわち、CPU202は選択オブジェクト450を中心に詳細オブジェクト440を表示する位置を探索する。
 オブジェクト420があると判定した場合(ステップS208においてYES)、CPU202は、ステップS210に進む。
 ステップS210において、CPU202は、探索方向D,D’,D”にあるオブジェクト420の位置(X,Y)とサイズ(S)とを取得する。
 ステップS212において、CPU202は、空き領域1410に詳細オブジェクト440が収まるか否かを判定する。空き領域1410は、位置(X,Y)の選択オブジェクト450と、位置(X,Y)のオブジェクト420との間の領域である。
 収まると判定した場合(ステップS212においてYES)、CPU202は、ステップS214において、詳細オブジェクト440が収まる空き領域1410を詳細オブジェクト440の表示領域に決定して、詳細オブジェクト表示処理に戻る。
 収まらないと判定した場合(ステップS212においてNO)、CPU202は、ステップS202に戻り、全方向の探索が終了するまで、あるいは、詳細オブジェクト440が収まる空き領域1410が見つかるまでステップS202~ステップS212を繰り返す。
 空き領域1410に詳細オブジェクト440が収まるということは、詳細オブジェクト440とオブジェクト420とが重ならないことを意味する。すなわち、詳細オブジェクト440が収まる空き領域1410が見つかるまでステップS202~ステップS212を繰り返すことは、詳細オブジェクト440を配置したときに、詳細オブジェクト440とオブジェクト420とが重なる面積が相対的に小さくなるように表示位置を決定しているともいえる。
 また、CPU202は、空き領域に詳細オブジェクト440が収まらない場合、探索方向を変えて再度、その探索方向に設けられた空き領域に詳細オブジェクト440が収まるか否かを判定する。そして、全方向を探索しても詳細オブジェクト440が収まる空き領域が見つからなかった場合は、ステップS204において、右母線452の右側、すなわちユーザプログラムを示す回路図の外側を詳細オブジェクト440の表示領域に決定する。つまり、CPU202は、選択オブジェクト450の周囲がオブジェクト420に囲まれているような場合に、オブジェクト420と選択オブジェクト450との間の領域に詳細オブジェクト440を収めることができなければ、ユーザプログラムを示す回路図の外側に詳細オブジェクト440を表示する。
 図12~図15を参照して、ステップS202~ステップS212の繰り返しにより詳細オブジェクト440の表示位置を決定する概略について説明する。図12は、D方向が探索対象であるときの探索手法の概念図である。図13は、D方向が探索対象であるときの探索結果の一例を示す図である。図14は、D方向が探索対象であるときの探索手法の概念図である。図15、D方向が探索対象であるときの探索結果の一例を示す図である。
 図12に示すように、D方向、D’方向およびD”方向には、オブジェクト420が1つ位置している。CPU202は、D方向に位置するオブジェクト420-Aの位置(XcA,YcA)およびサイズ(ScA)を取得する。
 このとき、CPU202は、オブジェクト420の形状を予め定められた形状にモデル化してオブジェクト420の位置およびサイズを取得してもよい。図12においては、CPU202は、四角形にモデル化しているものとする。このように、予め定められた形状にモデル化してオブジェクト420の位置およびサイズを取得することで、容易に位置およびサイズを算出することができる。
 図13に示すように、図12に示す例では、サイズ(S)の詳細オブジェクト440が、選択オブジェクト450とオブジェクト420-Aとの間に収まらない。このような場合、CPU202は、探索方向Dを再度設定し、設定した探索方向Dに詳細オブジェクト440が収まるか否かを探索する。本実施の形態においては、方向Dの次に方向Dが設定される。
 図14に示すように、D方向、D’方向およびD”方向には、オブジェクト420が2つ位置している。2つのオブジェクトの各々について、その位置とサイズとをCPU202は取得する。具体的には、オブジェクト420-1の位置(Xc1,Yc1)およびサイズ(Sc1)ならびにオブジェクト420-2の位置(Xc2,Yc2)およびサイズ(Sc2)をCPU202は取得する。
 このとき、CPU202は、オブジェクト420の形状を予め定められた形状にモデル化してオブジェクト420の位置およびサイズを取得してもよい。図14においては、CPU202は、四角形にモデル化しているものとする。このように、予め定められた形状にモデル化してオブジェクト420の位置およびサイズを取得することで、容易に位置およびサイズを算出することができる。
 図15に示すように、図14に示す例では、サイズSの詳細オブジェクト440が、選択オブジェクト450とオブジェクト420-1との間に収まる。CPU202は、選択オブジェクト450とオブジェクト420-1との間を詳細オブジェクト440の表示位置に決定して、詳細オブジェクト表示処理に戻る。
 図10の探索処理のフローチャートに戻り、オブジェクト420がないと判定した場合(ステップS208においてNO)の処理について説明する。オブジェクト420がないと判定した場合(ステップS208においてNO)、CPU202は、ステップS220に進む。
 ステップS220において、CPU202は、選択オブジェクト450の表示位置が右端か否かを判定する。
 選択オブジェクト450の表示位置が右端であると判定した場合(ステップS220においてYES)、CPU202は、ステップS204において、右母線の右側を表示領域に決定して、詳細オブジェクト表示処理に戻る。
 選択オブジェクト450の表示位置が右端ではないと判定した場合(ステップS220においてNO)、CPU202は、ステップS222に進む。
 ステップS222において、CPU202は、選択オブジェクト450を含む回路がプログラムの一番下に位置するか否かを判定する。
 一番下ではないと判定した場合(ステップS222においてNO)、CPU202は、ステップS204において、右母線の右側を表示領域に決定して、詳細オブジェクト表示処理に戻る。
 一番下であると判定した場合(ステップS222においてYES)、CPU202は、ステップS224に進む。
 ステップS224において、CPU202は、選択オブジェクト450の下にある空き領域に詳細オブジェクト440が収まるか否かを判定する。選択オブジェクト450の下にある空き領域に詳細オブジェクト440が収まらないと判定した場合(ステップS224においてNO)、CPU202は、ステップS204に進み、右母線452の右側、すなわちユーザプログラムを示す回路図の外側を詳細オブジェクト440の表示領域に決定する。一方、選択オブジェクト450の下にある空き領域に詳細オブジェクト440が収まると判定した場合(ステップS224においてYES)、CPU202は、ステップS226に進む。
 ステップS226において、CPU202は、選択オブジェクト450の下側を表示領域に決定して、詳細オブジェクト表示処理に戻る。
 図16は、追加表示がされる前後のプログラム表示領域1400の一例を示す図である。図16においては、選択オブジェクト450を含む回路がプログラムの一番下に位置するものとする。
 プログラムの一番下に選択オブジェクト450を含む回路が位置し、選択オブジェクト450の下側に空き領域がある場合、サポート装置200は、選択オブジェクト450の下に詳細オブジェクト440を表示する。
 <G.サポート装置200のソフトウェア構成>
 図17を参照して、サポート装置200が備えるソフトウェア構成について説明する。図17は、サポート装置200のソフトウェア構成を示す模式図である。図17に示すソフトウェアに含まれる命令コードは、適切なタイミングで読出され、サポート装置200のCPU202へ提供されて実行される。また、図17に示すソフトウェアは、光学記録媒体8に格納されて提供されるサポートプログラムに含まれる。
 図17を参照して、サポート装置200には、OS240およびプログラミングアプリケーション250が実装される。サポート装置200ではOS240が実行され、プログラミングアプリケーション250を実行可能な環境が提供される。本実施の形態に係るサポート装置200を実現するためのサポートプログラムは、少なくともプログラミングアプリケーション250を含む。
 プログラミングアプリケーション250は、エディタ252と、コンパイラ254と、デバッガ256と、GUI(Graphical User Interface)モジュール258と、シミュレータ260と、データ格納部270とを含む。プログラミングアプリケーション250に含まれるそれぞれのモジュールは、典型的には、光学記録媒体8にサポートプログラムとして格納された状態で流通して、サポート装置200にインストールされる。
 エディタ252は、実行可能プログラム(ソースプログラム)を作成するための入力および編集といった機能を提供する。より具体的には、エディタ252は、ユーザがキーボード210やマウス212を操作してユーザプログラム274のソースプログラムを作成する機能に加えて、作成したソースプログラムの保存機能および編集機能を提供する。
 コンパイラ254は、ユーザプログラム274のソースプログラムをコンパイルして、CPUユニット10で実行可能な実行可能プログラムを生成する機能を提供する。
 デバッガ256は、実行可能プログラム(ソースプログラム)に対してデバッグを行うための機能を提供する。このデバッグの内容としては、ソースプログラムのうちユーザが指定した範囲を部分的に実行する、ソースプログラムの実行中における変数値の時間的な変化を追跡する、といった動作を含む。
 GUIモジュール258は、ユーザが各種データやパラメータなどを入力するためのユーザインターフェイスを提供する機能を有する。すなわち、前述したユーザインターフェイス画面1000は、GUIモジュール258によって提供される。GUIモジュール258は、操作部203が受け付けた操作、並びに、ユーザプログラム274、プログラムの実行に必要な変数設定272、表示形式に係る設定情報276、およびオブジェクトに係るオブジェクト情報278に基づいてユーザインターフェイス画面1000を提供する。GUIモジュール258は、本願発明のプログラム表示手段および追加表示手段の機能を提供する。
 シミュレータ260は、サポート装置200内にPLC100のCPUユニット10でのプログラムの実行をシミュレーションする環境を構築する。
 データ格納部270には、ユーザプログラム274、変数設定272、設定情報276、およびオブジェクト情報278が格納されている。
 <H.変形例>
 (h1.追加表示)
 本実施の形態においては、詳細オブジェクト440のサイズ(S)を変更することなく追加表示する例を示した。CPU202は、空き領域1410の範囲に基づいて詳細オブジェクト440のサイズを決定してもよい。図18は、追加表示の変形例を示す図である。図18(a)は、第1の変形例に係る詳細オブジェクト440aを示す図であり、(b)は、第2の変形例に係る詳細オブジェクト440bを示す図である。
 CPU202は、図18(a)に示すように、詳細オブジェクト440として表示する画像を縮小することなく、決定したサイズの表示領域に収まる画像のみ表示し、スクロールバー442などを操作することで、ユーザが全体を確認することができるようにしてもよい。また、図18(b)に示すように、詳細オブジェクト440として表示する画像を縮小することで、決定したサイズに画像を収めるようにしてもよい。
 (h2.探索処理)
 図19は、変形例における探索処理のフローチャートである。本実施の形態においては、探索する方向に優先順位を設定し、優先順位に沿って探索し、詳細オブジェクト440が収まる方向が見つかったことを以て探索処理が終了するとした。すなわち、選択オブジェクトを中心としてその周囲を全方向探索することなく、探索処理が終了することがある。なお、全方向探索し、表示位置の候補を複数挙げて、複数の候補の各々を評価して、表示位置を決定してもよい。
 変形例における探索処理のフローチャートについて、本実施の形態と共通する処理については共通のステップ番号を付しており、共通する処理については、説明を省略する。
 具体的に、変形例において、CPU202は、図10に示すステップS204、ステップS214、ステップS226の代わりにステップS204-2、ステップS214-2、ステップS226-2を実行する。また、ステップS202において、全方向探索したと判定した場合、ステップS230に進む。
 ステップS204-2において、CPU202は、右母線の右側を詳細オブジェクト440の表示領域の候補に設定する。
 ステップS214-2において、CPU202は、詳細オブジェクト440が収まる空き領域1410を詳細オブジェクト440の表示領域の候補に設定する。
 ステップS226-2において、CPU202は、選択オブジェクト450の下側を表示領域の候補に設定する。
 CPU202は、ステップS204-2、ステップS214-2、およびステップS226-2の後、ステップS202に進み、全方向の探索が終了するまで、ステップS206~ステップS204-2、ステップS214-2、ステップS226-2の処理を繰り返す。
 全方向の探索が終了したと判定した場合(ステップS202においてYES)、CPU202は、ステップS230において、表示領域の候補の中から最適な表示領域を決定する。候補に設定された表示領域の評価方法としては、たとえば、他のオブジェクト420との重なり度合いを示す第1の因子と、選択オブジェクト450からの距離を示す第2の因子とに基づいて決定する。第1の因子と第2の因子とのうち、どちらの因子に評価の重み付けをするかをユーザが設定できる構成であってもよい。
 (h3.情報処理装置)
 本実施の形態においては、プログラムを表示する情報処理装置の一例として、プログラムの開発を支援するサポート装置200を挙げた。なお、プログラムを表示することが可能な情報処理装置であればサポート装置200に限られるものではなく、たとえば、PLC100が制御する各種装置を監視するHMIや、PLC100とオンライン接続されるPCなどであってもよい。また、表示するプログラムを実行する装置と、表示に係る機能を有する装置とが別体で構成されてもよい。
 <I.作用・効果>
 本実施の形態においては、サポート装置200は、簡略形式で表示された集合オブジェクト423について、その集合オブジェクト423が示す処理の内容のうち、詳細オブジェクト440を表示することで、簡略形式では示されていない情報を追加してディスプレイ214に示すことができる。このとき、回路態様で示されたオブジェクト420の状態を変えずに詳細オブジェクト440を追加で表示する。そのため、詳細オブジェクト440を追加で表示する前の情報を欠落させることなく、選択されたオブジェクト420が示す命令に関する情報を追加で示すことができる。すなわち、制御プログラムの詳細と、制御プログラムの流れとを効果的に確認することができるサポート装置200が提供される。その結果、制御プログラム開発を効果的に支援することが可能な環境を提供することができる。
 また、図8(a)に示すように、オブジェクト420の密集度合いに応じて詳細オブジェクト440の位置が決定される。そのため、オブジェクト420が密集している領域を避けて詳細オブジェクト440を表示することができる。すなわち、回路態様で表示されているプログラムに含まれるオブジェクト420の配置状況に応じた適当な位置に詳細オブジェクト440を表示することができる。
 また、CPU202は、詳細オブジェクト440が収まる空き領域1410が見つかるまで図10のステップS202~ステップS212を繰り返す。すなわち、CPU202は、詳細オブジェクト440を配置したときに、詳細オブジェクト440とオブジェクト420とが重なる面積が相対的に小さくなるように表示位置を決定する。そのため、詳細オブジェクト440が表示されるときに、命令要素を示すオブジェクト420が新たに追加で表示される詳細オブジェクト440で隠れてしまうことを防止することができる。その結果、詳細オブジェクト440を追加で表示する前後で情報を欠落させることがなく、より多くの情報を提供することができる。
 図8(b)に示すように、サポート装置200は、選択オブジェクト450の表示位置を中心として、その中心Oからの距離に基づいて詳細オブジェクト440の表示位置を決定してもよい。すなわち、サポート装置200は、選択オブジェクト450の表示位置からの距離に基づいて詳細オブジェクト440の表示位置を決定する。そのため、詳細オブジェクト440と共通の命令について示した選択オブジェクト450の表示位置に応じた位置に詳細オブジェクト440を表示することができる。その結果、互いに共通する命令を示すオブジェクトを関連付けて表示することができる。
 また、図19のステップS230において、CPU202は、詳細オブジェクト440と他のオブジェクト420との重なり度合いと、選択オブジェクト450からの距離とに基づいて、詳細オブジェクト440の位置を決定する。そのため、互いに共通する命令を示すオブジェクトを関連付けて表示しつつ、他のオブジェクト420を詳細オブジェクト440で隠してしまうことを防止することができる。その結果、効果的に詳細オブジェクト440と、プログラムの全体の流れとを表示することができる。
 また、図12および図14に示すように、CPU202は、オブジェクト420の形状を予め定められた形状にモデル化してオブジェクト420の位置およびサイズを取得する。このように、予め定められた形状にモデル化してオブジェクト420の位置およびサイズを取得することで、容易に位置およびサイズを算出することができる。その結果、CPU202への処理負担を軽減することができる。
 また、図10および図19のステップS208に示すように、CPU202は選択オブジェクト450を中心に詳細オブジェクト440を表示する位置を探索する。そのため、選択オブジェクト450と関連した適当な位置を早くに探索することができる。その結果、表示位置を決定する処理の負担を軽減することができる。
 図10に示すように、CPU202は、選択オブジェクト450の周囲がオブジェクト420に囲まれているような場合に、オブジェクト420と選択オブジェクト450との間の領域に詳細オブジェクト440を収めることができなければ、ユーザプログラムを示す回路図の外側に詳細オブジェクト440を表示する。そのため、オブジェクト420を隠すことなく詳細オブジェクト440を表示することができるとともに、詳細オブジェクト440の表示位置の決定方法に法則性があるため、ユーザはどこに詳細オブジェクト440が表示されるかを予測しやすく、表示された詳細オブジェクト440を探しやすい。
 §4 付記
 以上のように、上記の実施の形態および変形例は以下のような技術思想を含む。
 [構成1]
 制御対象を制御する制御装置において実行される制御プログラムを表示する情報処理装置(200)であって、
 前記制御プログラムを、当該制御プログラムを構成する命令要素を示すオブジェクト(420)同士を繋いた回路態様で表示するプログラム表示手段(258)と、
 前記回路態様で表示されたオブジェクトのうちの特定のオブジェクト(450)の選択に応じて、当該特定のオブジェクトが示す命令の実行に関する情報であって、前記回路態様で表示されている状態において示されていない情報を示す追加オブジェクト(440)を、前記回路態様で表示されているオブジェクトの状態を維持して追加で表示する追加表示手段(258)とを備える、情報処理装置。
 [構成2]
 前記追加表示手段は、前記回路態様で表示されているオブジェクトの密集度合いに基づいて前記追加オブジェクトの位置を決定する、構成1に記載の情報処理装置。
 [構成3]
 前記追加表示手段は、前記追加オブジェクトと前記回路態様で表示されているオブジェクトとの重なる面積が相対的に小さくなるように前記追加オブジェクトの位置を決定する(ステップS202~ステップS212)、構成1または構成2に記載の情報処理装置。
 [構成4]
 前記追加表示手段は、前記選択された特定のオブジェクトからの距離(R)に基づいて前記追加オブジェクトの位置を決定する、構成1に記載の情報処理装置。
 [構成5]
 前記追加表示手段は、前記追加オブジェクトと前記回路態様で表示されているオブジェクトとの重なり度合いと、前記選択された特定のオブジェクトからの距離とに基づいて前記追加オブジェクトの位置を決定する(ステップS230)、構成1に記載の情報処理装置。
 [構成6]
 前記追加表示手段は、前記回路態様で表示されているオブジェクトを予め定められた形状にモデル化することで、当該回路態様で表示されているオブジェクトの表示面積(S)および表示位置(X,Y)を取得する、構成1~構成5のうちいずれかに記載の情報処理装置。
 [構成7]
 前記追加表示手段は、前記選択された特定のオブジェクトを中心に、前記追加オブジェクトを表示する位置を探索する(ステップS208)、構成1~構成6のうちいずれかに記載の情報処理装置。
 [構成8]
 前記追加表示手段は、前記回路態様で表示されたオブジェクトのうちの前記選択された特定のオブジェクトと隣接する位置に配置されたオブジェクト(420-1,420-2,420-A)と、当該選択された特定のオブジェクトとの間の領域に、前記追加オブジェクトが収まらない場合に、前記回路態様で表示されたプログラムの外に当該追加オブジェクトを表示する(ステップS204)、構成7に記載の情報処理装置。
 [構成9]
 制御対象を制御する制御装置において実行される制御プログラムを表示するための表示プログラム(258)であって、前記表示プログラムはコンピュータ(200)に、
 前記制御プログラムを、当該制御プログラムを構成する命令要素を示すオブジェクト同士を繋いた回路態様に含まれるオブジェクトのうちの特定のオブジェクトの選択を受け付けるステップ(S110)と、
 前記特定のオブジェクトの選択を受け付けた場合に、当該特定のオブジェクトが示す命令の実行に関する情報であって、前記回路態様で表示されている状態において示されていない情報を示す追加オブジェクトを、前記回路態様で表示されているオブジェクトの状態を維持して追加で表示するステップ(S118)と、を実行させる、表示プログラム。
 今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。また、実施の形態および各変形例において説明された発明は、可能な限り、単独でも、組合せても、実施することが意図される。
 1 制御システム、8 光学記録媒体、10 CPUユニット、14 I/Oユニット、11 システムバス、12 電源ユニット、200 サポート装置、201 記憶部、202 CPU、203 操作部、206 RAM、210 キーボード、212 マウス、214 ディスプレイ、216 光学記録媒体読取装置、218 通信インターフェイス、250 プログラミングアプリケーション、252 エディタ、254 コンパイラ、256 デバッガ、258 モジュール、260 シミュレータ、270 データ格納部、272 変数設定、274 ユーザプログラム、274a 全体、274b 一部、276 設定情報、278 オブジェクト情報、400 回路図、420 オブジェクト、421,423,425 集合オブジェクト、422 実オブジェクト、424 接点、426 コイル、428 名称、430 線、440,440a,440b 詳細オブジェクト、442 スクロールバー、450 選択オブジェクト、451 左母線、452 右母線、1000 ユーザインターフェイス画面、1400 プログラム表示領域、1410 空き領域、D 探索方向、O 中心。

Claims (9)

  1.  制御対象を制御する制御装置において実行される制御プログラムを表示する情報処理装置であって、
     前記制御プログラムを、当該制御プログラムを構成する命令要素を示すオブジェクト同士を繋いた回路態様で表示するプログラム表示手段と、
     前記回路態様で表示されたオブジェクトのうちの特定のオブジェクトの選択に応じて、当該特定のオブジェクトが示す命令の実行に関する情報であって、前記回路態様で表示されている状態において示されていない情報を示す追加オブジェクトを、前記回路態様で表示されているオブジェクトの状態を維持して追加で表示する追加表示手段とを備える、情報処理装置。
  2.  前記追加表示手段は、前記回路態様で表示されているオブジェクトの密集度合いに基づいて前記追加オブジェクトの位置を決定する、請求項1に記載の情報処理装置。
  3.  前記追加表示手段は、前記追加オブジェクトと前記回路態様で表示されているオブジェクトとの重なる面積が相対的に小さくなるように前記追加オブジェクトの位置を決定する、請求項1または請求項2に記載の情報処理装置。
  4.  前記追加表示手段は、前記選択された特定のオブジェクトからの距離に基づいて前記追加オブジェクトの位置を決定する、請求項1に記載の情報処理装置。
  5.  前記追加表示手段は、前記追加オブジェクトと前記回路態様で表示されているオブジェクトとの重なり度合いと、前記選択された特定のオブジェクトからの距離とに基づいて前記追加オブジェクトの位置を決定する、請求項1に記載の情報処理装置。
  6.  前記追加表示手段は、前記回路態様で表示されているオブジェクトを予め定められた形状にモデル化することで、当該回路態様で表示されているオブジェクトの表示面積および表示位置を取得する、請求項1~請求項5のうちいずれかに記載の情報処理装置。
  7.  前記追加表示手段は、前記選択された特定のオブジェクトを中心に、前記追加オブジェクトを表示する位置を探索する、請求項1~請求項6のうちいずれかに記載の情報処理装置。
  8.  前記追加表示手段は、前記回路態様で表示されたオブジェクトのうちの前記選択された特定のオブジェクトと隣接する位置に配置されたオブジェクトと、当該選択された特定のオブジェクトとの間の領域に、前記追加オブジェクトが収まらない場合に、前記回路態様で表示されたプログラムの外に当該追加オブジェクトを表示する、請求項7に記載の情報処理装置。
  9.  制御対象を制御する制御装置において実行される制御プログラムを表示するための表示プログラムであって、前記表示プログラムはコンピュータに、
     前記制御プログラムを、当該制御プログラムを構成する命令要素を示すオブジェクト同士を繋いた回路態様に含まれるオブジェクトのうちの特定のオブジェクトの選択を受け付けるステップと、
     前記特定のオブジェクトの選択を受け付けた場合に、当該特定のオブジェクトが示す命令の実行に関する情報であって、前記回路態様で表示されている状態において示されていない情報を示す追加オブジェクトを、前記回路態様で表示されているオブジェクトの状態を維持して追加で表示するステップと、を実行させる、表示プログラム。
PCT/JP2019/026265 2018-07-27 2019-07-02 情報処理装置および表示プログラム WO2020021993A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP19840971.6A EP3832410A4 (en) 2018-07-27 2019-07-02 INFORMATION PROCESSING DEVICE AND DISPLAY PROGRAM
CN201980037226.XA CN112204480B (zh) 2018-07-27 2019-07-02 信息处理装置以及计算机可读记录介质

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018-141679 2018-07-27
JP2018141679A JP7119714B2 (ja) 2018-07-27 2018-07-27 情報処理装置、表示プログラム、および方法

Publications (1)

Publication Number Publication Date
WO2020021993A1 true WO2020021993A1 (ja) 2020-01-30

Family

ID=69181664

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/026265 WO2020021993A1 (ja) 2018-07-27 2019-07-02 情報処理装置および表示プログラム

Country Status (4)

Country Link
EP (1) EP3832410A4 (ja)
JP (1) JP7119714B2 (ja)
CN (1) CN112204480B (ja)
WO (1) WO2020021993A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4101741B1 (en) 2020-02-04 2024-03-13 Nippon Steel Corporation Lateral surface member structure of vehicle body

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08166807A (ja) * 1994-12-15 1996-06-25 Omron Corp 制御プログラム作成装置
JP2004280341A (ja) 2003-03-14 2004-10-07 Omron Corp ファンクションブロック呼び出し命令を含むラダープログラムの表示切替方法及びプログラミング装置
JP2006330865A (ja) * 2005-05-24 2006-12-07 Keyence Corp ユーザプログラム表示装置及びこれに適用されるプログラム
JP2018067191A (ja) * 2016-10-20 2018-04-26 三菱電機株式会社 プラント制御システム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3115068B2 (ja) * 1991-12-19 2000-12-04 株式会社東芝 画面表示制御装置
JP2521035B2 (ja) * 1993-12-03 1996-07-31 インターナショナル・ビジネス・マシーンズ・コーポレイション 表示装置への注釈の配置
JP2002244798A (ja) * 2001-02-19 2002-08-30 Digital Electronics Corp プログラマブル表示器
JP4736081B2 (ja) * 2004-07-30 2011-07-27 株式会社リコー コンテンツ閲覧システム、コンテンツサーバ、プログラムおよび記憶媒体
JP4725747B2 (ja) * 2007-04-27 2011-07-13 オムロン株式会社 Plcの制御プログラム開発支援装置
JP5573457B2 (ja) * 2010-07-23 2014-08-20 ソニー株式会社 情報処理装置、情報処理方法及び情報処理プログラム
MY181880A (en) * 2013-02-20 2021-01-12 Panasonic Ip Corp America Method for controlling information apparatus and program
EP3392752A4 (en) * 2015-12-14 2018-12-12 Sony Corporation Information processing device, information processing method, and program
US10295981B2 (en) * 2016-02-12 2019-05-21 Mitsubishi Electric Corporation Engineering tool

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08166807A (ja) * 1994-12-15 1996-06-25 Omron Corp 制御プログラム作成装置
JP2004280341A (ja) 2003-03-14 2004-10-07 Omron Corp ファンクションブロック呼び出し命令を含むラダープログラムの表示切替方法及びプログラミング装置
JP2006330865A (ja) * 2005-05-24 2006-12-07 Keyence Corp ユーザプログラム表示装置及びこれに適用されるプログラム
JP2018067191A (ja) * 2016-10-20 2018-04-26 三菱電機株式会社 プラント制御システム

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
CN112204480B (zh) 2024-07-12
EP3832410A1 (en) 2021-06-09
CN112204480A (zh) 2021-01-08
EP3832410A4 (en) 2022-04-20
JP7119714B2 (ja) 2022-08-17
JP2020017225A (ja) 2020-01-30

Similar Documents

Publication Publication Date Title
EP3798817B1 (en) User interface logical and execution view navigation and shifting
CN112558928A (zh) 虚拟设计环境
US6173246B1 (en) Method and system for a unified process automation software system
US20110252163A1 (en) Integrated Development Environment for Rapid Device Development
CN112579050A (zh) 基于任务的配置呈现背景
JP6950665B2 (ja) エンジニアリング装置、エンジニアリング装置の制御方法及びプログラム
US11775142B2 (en) Preferential automation view curation
WO2024140416A1 (zh) 一种工业控制程序开发平台及方法
EP4296803A1 (en) Device configuration object template with user interaction for device properties generator
US20230333822A1 (en) Graphical and text based co-design editor for industrial automation projects
WO2020021993A1 (ja) 情報処理装置および表示プログラム
WO2020246097A1 (ja) サポート装置およびサポートプログラム
JP2013084112A (ja) プログラマブルコントローラシステム、そのプログラミング装置、プログラマブルコントローラ、プログラム、デバッグ方法
JP7238678B2 (ja) 情報処理装置、サポートプログラムおよびサポートシステム
EP3792710B1 (en) Control system, support device, and support program
JP7241982B1 (ja) 画像生成プログラム、画像生成装置、プログラマブルコントローラシステム及び画像生成方法
WO2020246096A1 (ja) サポート装置およびサポートプログラム
CN112272820A (zh) 支持装置以及支持程序
EP4345603A1 (en) Use of device profiles in automation projects
WO2020189142A1 (ja) 制御システム、制御方法、および制御プログラム
US20240103851A1 (en) Presentation design to automation device binding
JP7070223B2 (ja) サポート装置およびサポートプログラム
CN117827175A (zh) 算子参数设置方法和装置、算子流程图创建方法和装置
WO2012124153A1 (ja) シミュレーション装置
JP2001075634A (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: 19840971

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2019840971

Country of ref document: EP

Effective date: 20210301