WO2023248478A1 - Information processing device - Google Patents

Information processing device Download PDF

Info

Publication number
WO2023248478A1
WO2023248478A1 PCT/JP2022/025380 JP2022025380W WO2023248478A1 WO 2023248478 A1 WO2023248478 A1 WO 2023248478A1 JP 2022025380 W JP2022025380 W JP 2022025380W WO 2023248478 A1 WO2023248478 A1 WO 2023248478A1
Authority
WO
WIPO (PCT)
Prior art keywords
function block
unit
instance
input
instance name
Prior art date
Application number
PCT/JP2022/025380
Other languages
French (fr)
Japanese (ja)
Inventor
大 三橋
Original Assignee
ファナック株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ファナック株式会社 filed Critical ファナック株式会社
Priority to PCT/JP2022/025380 priority Critical patent/WO2023248478A1/en
Publication of WO2023248478A1 publication Critical patent/WO2023248478A1/en

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

Definitions

  • the present invention relates to an information processing device.
  • IEC61131-3 uses function blocks as a means of converting programs into components. For example, a technique is known that automatically edits a function block instance by modifying the function block definition. For example, see Patent Document 1.
  • the methods of assigning and referencing parameter values are: (1) assigning and referencing parameters when calling an instance, (2) separating assigning and referencing parameters (i.e., assigning and referencing parameters separately (i.e., at a location other than when calling an instance).
  • assigning and referencing parameter values are: (1) assigning and referencing parameters when calling an instance, (2) separating assigning and referencing parameters (i.e., assigning and referencing parameters separately (i.e., at a location other than when calling an instance).
  • FIG. 1 is a diagram of a functional block configuration of a PLC programming device according to a first embodiment;
  • FIG. It is a figure which shows an example of the read sequence program. It is a figure which shows an example of the display screen of an analysis result. It is a flowchart explaining analysis processing of a PLC programming device. It is a figure showing an example of composition of a PLC programming device concerning a 2nd embodiment. It is a figure which shows an example of the setting screen of display/hide of an alert. It is a figure showing an example of composition of a PLC programming device concerning a 3rd embodiment. It is a figure which shows an example of the display screen of an analysis result. It is a figure showing an example of an editing screen.
  • FIG. 3 is a diagram illustrating an example of a sequence program that assigns and references parameters when calling an instance.
  • FIG. 2 is a diagram illustrating an example of a sequence program that separately assigns and references parameters.
  • FIG. 3 is a diagram illustrating an example of a sequence program that sets initial values for parameters in a function block type declaration.
  • FIG. 2 is a diagram illustrating an example of a sequence program without parameter substitution or reference.
  • FIG. 3 is a diagram illustrating an example of adding parameters to a function block definition section of a sequence program.
  • each embodiment reads a selected sequence program, acquires a function block definition and an instance name from the read sequence program, searches the read sequence program for a usage part of the instance name, and retrieves the function block definition and instance name from the read sequence program.
  • a common configuration is that the access situation including at least one of the instance invocation position, parameter assignment position, or parameter reference position is analyzed based on the definition and the instance name search result, and the analysis result is displayed.
  • all alerts in the analysis results are displayed.
  • the second embodiment differs from the first embodiment in that display/non-display of alerts is selected for each parameter based on user input from among all alerts.
  • FIG. 1 is a diagram showing a functional block configuration of a PLC programming device as an information processing device according to a first embodiment.
  • the PLC programming device 1 is a computer, tablet terminal, or the like known to those skilled in the art, and may be directly connected to a PLC (not shown) via a connection interface (not shown). Further, the PLC programming device 1 may be connected to a PLC (not shown) via a network (not shown) such as a LAN (Local Area Network) or the Internet. In this case, the PLC programming device 1 may include a communication unit (not shown) for communicating with a PLC (not shown) through such a connection. As shown in FIG. 1, the PLC programming device 1 includes a CPU 10, a storage section 20, an input section 30, and a display section 40.
  • the input unit 30 is an input device such as a keyboard, a mouse, or a touch panel disposed on a display unit 40 (described later), and accepts input from the user.
  • the display unit 40 is a display device such as an LCD (Liquid Crystal Display), and displays a display screen that displays information regarding the function block based on display instructions from the function block information display control unit 140, which will be described later.
  • LCD Liquid Crystal Display
  • the storage unit 20 is, for example, an SSD (Solid State Drive) or an HDD (Hard Disk Drive), and stores n sequence programs P1 to Pn (n is an integer of 2 or more) together with the OS and various software.
  • each of the sequence programs P1 to Pn includes a function block definition section, a variable declaration section, and a program section, similar to the sequence programs shown in FIGS. 10A to 10D.
  • the function block information acquisition unit 110 acquires a function block definition and an instance name from a sequence program Pi selected from among the n sequence programs P1 to Pn based on the user's input via the input unit 30, for example. i is an integer from 1 to n). Specifically, the function block information acquisition unit 110 reads the selected sequence program Pi.
  • FIG. 2 is a diagram showing an example of the read sequence program Pi. Note that FIG. 2 also shows the number of lines in the program section of the sequence program Pi.
  • the function block information acquisition unit 110 obtains the function block definition name “MY_FB”, input parameters “IN1”, “IN2”, “IN3”, output parameters “OUT”, and input/output from the function block definition section of the read sequence program Pi. Get the parameter "None" as a function block definition.
  • the function block information acquisition unit 110 also acquires instance (variable) names “fbinst1,” “fbinst2,” and “fbinst3” from the variable declaration section of the sequence program Pi.
  • the function block analysis unit 130 determines the calling position of each of the acquired instance names "fbinst1", “fbinst2”, and “fbinst3", the input parameter "IN1" in each of the instance names “fbinst1", “fbinst2”, and “fbinst3”, Based on the assignment positions of "IN2" and "IN3" and the reference position of the output parameter "OUT”, check whether there is an input/input/output parameter assignment process before the instance call position, the instance call position It is then determined whether there is a reference process for output/input/output parameters after that, and whether there are two or more assignment processes for input/input/output parameters for one call of an instance.
  • the function block information display control unit 140 sets the input parameter "IN2" in the frame because there is only an initial value setting for the input parameter "IN2" and no substitution. may be displayed in a color such as yellow, and a message such as "There are no settings other than the initial values.” may be displayed.
  • FIG. 4 is a flowchart illustrating the analysis process of the PLC programming device 1. The flow shown here is executed every time one sequence program Pi is selected from n sequence programs P1 to Pn.
  • step S11 the function block information acquisition section 110 acquires a function block definition from the function block definition section of the selected sequence program Pi.
  • step S13 the function block instance name search unit 120 searches and extracts the usage of the instance name included in the instance information read out in step S12 from the selected sequence program Pi.
  • step S14 the function block analysis unit 130 determines the calling position of the instance defined by the instance name, the parameter assignment position, or the parameter reference from the function block definition read in step S11 and the search result in step S13. Analyze access status including location.
  • step S15 the function block information display control section 140 displays the analysis result of step S14 on the display section 40.
  • step S16 the function block information acquisition unit 110 determines whether there is a next instance. If there is no next instance, the process proceeds to step S17. On the other hand, if there is a next instance, the process returns to step S12.
  • step S17 the function block information acquisition unit 110 determines whether there is no next function block definition. If there is no next function block definition, the PLC programming device 1 ends the analysis process. On the other hand, if there is a next function block definition, the process returns to step S11.
  • the PLC programming device 1 can prevent programming errors such as omissions in parameter substitution and omissions in reference to function blocks, and can prevent accidents due to unintended behavior. Furthermore, the PLC programming device 1 can easily grasp the situation in which parameters of function blocks are substituted and referenced, thereby reducing the burden on the user.
  • the first embodiment has been described above.
  • ⁇ Second embodiment> Next, a second embodiment will be described. As described above, in the first embodiment, all alerts in the analysis results are displayed. On the other hand, the second embodiment differs from the first embodiment in that display/non-display of alerts is selected for each parameter based on user input from among all alerts. Thereby, the PLC programming device 1A can prevent programming errors such as omissions in parameter substitution and omissions in function block parameters, and can prevent accidents due to unintended behavior. The second embodiment will be described below.
  • FIG. 5 is a diagram showing an example of the configuration of a PLC programming device 1A according to the second embodiment. Note that elements having the same functions as those of the PLC programming device 1 in FIG. 1 are denoted by the same reference numerals, and detailed description thereof will be omitted.
  • the PLC programming device 1A includes a control section 10a, a storage section 20, an input section 30, and a display section 40.
  • the storage unit 20, input unit 30, and display unit 40 have the same functions as the storage unit 20, input unit 30, and display unit 40 in the first embodiment.
  • the sequence programs P1 to Pn are equivalent to the sequence programs P1 to Pn in the first embodiment.
  • the control unit 10a includes a CPU, ROM, RAM, CMOS memory, etc., which are configured to be able to communicate with each other via a bus, which is well known to those skilled in the art.
  • the CPU is a processor that controls the entire PLC programming device 1A.
  • the CPU reads the system program and application program stored in the ROM via the bus, and controls the entire PLC programming device 1A according to the system program and application program.
  • the control unit 10a realizes the functions of the function block information acquisition unit 110, function block instance name search unit 120, function block analysis unit 130, and function block information display control unit 140a. It is composed of
  • the function block information acquisition unit 110, function block instance name search unit 120, and function block analysis unit 130 are equivalent to the function block information acquisition unit 110, function block instance name search unit 120, and function block analysis unit 130 in the first embodiment. Has a function.
  • the function block information display control section 140a displays the analysis results of the function block analysis section 130 on the display section 40, similar to the function block information display control section 140 in FIG. Further, the function block information display control unit 140a selects display/non-display of alerts for each parameter based on user input via the input unit 30. Specifically, the function block information display control unit 140a controls, for example, when the user places the mouse pointer of the input unit 30 at the instance name “fbinst1” on the analysis result display screen shown in FIG. When the position of the instance name "fbinst1" is touched on the touch panel of the input unit 30, a setting screen for switching display/non-display of alerts is displayed as shown in FIG.
  • the function block information display control unit 140a displays the second parameter of the instance name "fbinst1" as shown by the dashed rectangle. Hide the "IN1" alert. By doing so, the PLC programming device 1A hides alerts such as locations intended by the user or locations that the user has determined are not errors, and displays only the more important alert locations. It is possible to prevent programming errors such as omissions in parameter substitution and omissions in function block parameters.
  • step S15 of FIG. 4 the function block information display control unit 140a displays the analysis result of step S14 on the display unit 40, and the position of the instance name “fbinst1” is touched by the user on the touch panel of the input unit 30, etc. If so, a settings screen for switching alert display/hide is displayed, and based on the user's input, the alert for the parameter selected to be hidden on the settings screen is hidden.
  • the PLC programming device 1A displays only the more important alerted locations by hiding the locations intended by the user and the locations determined by the user to be non-errors. By doing so, it is possible to prevent programming errors such as omissions in parameter substitution and omissions in function block parameters, and to prevent accidents due to unintended behavior. Furthermore, the PLC programming device 1A can easily grasp the situation in which parameters of function blocks are substituted and referenced, thereby reducing the burden on the user.
  • the second embodiment has been described above.
  • a third embodiment will be described.
  • the second embodiment differs from the first embodiment in that display/non-display of alerts is selected for each parameter based on user input from among all alerts.
  • the third embodiment when the access status displayed based on the user's input is selected, the screen transitions to an editing screen for editing the part of the selected access status. This is different from the second embodiment.
  • the PLC programming device 1B can prevent programming errors such as omissions in parameter substitution and omissions in function blocks, and can prevent accidents due to unintended behavior.
  • the third embodiment will be described below.
  • the control unit 10b includes a CPU, ROM, RAM, CMOS memory, etc., which are configured to be able to communicate with each other via a bus, which are well known to those skilled in the art.
  • the CPU is a processor that controls the entire PLC programming device 1B.
  • the CPU reads the system program and application program stored in the ROM via the bus, and controls the entire PLC programming device 1B according to the system program and application program.
  • the control unit 10b realizes the functions of the function block information acquisition unit 110, function block instance name search unit 120, function block analysis unit 130, and function block information display control unit 140b. It is composed of
  • the function block information acquisition unit 110, function block instance name search unit 120, and function block analysis unit 130 are equivalent to the function block information acquisition unit 110, function block instance name search unit 120, and function block analysis unit 130 in the first embodiment. Has a function.
  • the function block information display control section 140b displays the analysis results of the function block analysis section 130 on the display section 40, similar to the function block information display control section 140 in FIG. Furthermore, when one of the access situations is selected from the analysis results displayed based on the user's input via the input unit 30, the function block information display control unit 140b provides text for editing the part of the selected access situation. Transition to an editing screen such as an editor. Specifically, the function block information display control unit 140a allows the user to input the instance name “fbinst2” indicated by a dashed rectangle using the mouse or touch panel of the input unit 30 on the analysis result display screen shown in FIG. 8, for example. By being selected, as shown in FIG.
  • the screen changes to an editing screen for editing the program section of the sequence program Pi, and jumps to the code position of the selected instance name "fbinst2" shown in shaded area.
  • the PLC programming device 1B can easily edit the code at the corresponding location according to the analysis result.
  • step S15 of FIG. 4 the function block information display control unit 140b displays the analysis result of step S14 on the display unit 40, and the user selects an instance name such as “fbinst2” using the touch panel of the input unit 30.
  • the screen changes to an editing screen for editing the program section of the sequence program Pi, and jumps to the code position of the selected instance name.
  • step S16 if editing of the code of the selected instance name is completed, the process advances to step S16.
  • the PLC programming device 1B prevents programming mistakes such as omission of parameter substitution and reference of function blocks by transitioning to an editing screen for editing the code of the corresponding part according to the analysis result. It is possible to prevent accidents caused by unintended behavior. Furthermore, the PLC programming device 1B can easily grasp the situation in which parameters of function blocks are substituted and referenced, thereby reducing the burden on the user.
  • the third embodiment has been described above.
  • the PLC programming devices 1, 1A, and 1B are not limited to the above-mentioned embodiments, and can be used within the range that can achieve the purpose. Including modifications, improvements, etc.
  • the sequence programs P1 to Pn are stored in the storage unit 20 of the PLC programming device 1, 1A, 1B, but the present invention is not limited thereto.
  • the sequence programs P1 to Pn may be stored in an external device such as a server.
  • ⁇ Modification 2> Further, for example, in the first and second embodiments described above, the PLC programming devices 1, 1A, and 1B, as shown in FIG. Although the access status of the instance and each parameter is analyzed and the analysis results are sequentially displayed in step S15, the present invention is not limited to this.
  • the PLC programming devices 1 and 1A may analyze the access status of instances and each parameter for all instances and all function block definitions, and display the analysis results.
  • the PLC programming device 1B analyzes the access status of instances and each parameter for each instance (step S16) and for each function block definition (step S17), as shown in FIG. Then, in step S15, the analysis results are sequentially displayed, and if an instance name is selected, the screen changes to an editing screen for editing the program section of the sequence program Pi, and the screen jumps to the code position of the selected instance name and edits it.
  • the PLC programming device 1B analyzes the access status of instances and each parameter for all instances and all function block definitions, displays the analysis results, and when an instance name is selected, the program section of the sequence program Pi is displayed. It may be possible to transition to an editing screen for editing, jump to the code position of the selected instance name, and edit.
  • Non-transitory computer-readable media include various types of tangible storage media. Examples of non-transitory computer-readable media are magnetic recording media (e.g., flexible disks, magnetic tapes, hard disk drives), magneto-optical recording media (e.g., magneto-optical disks), CD-ROMs (Read Only Memory), CD-ROMs, R, CD-R/W, semiconductor memory (for example, mask ROM, PROM (Programmable ROM), EPROM (Erasable PROM), flash ROM, RAM).
  • the program may also be provided to the computer on various types of transitory computer readable media. Examples of transitory computer-readable media include electrical signals, optical signals, and electromagnetic waves.
  • the temporary computer-readable medium can provide the program to the computer via wired communication channels such as electrical wires and optical fibers, or via wireless communication channels.
  • the step of writing a program to be recorded on a recording medium includes not only processes that are performed in chronological order, but also processes that are not necessarily performed in chronological order but are executed in parallel or individually. It also includes.
  • the information processing device of the present disclosure can take various embodiments having the following configurations.
  • the PLC programming device 1 which is an information processing device of the present disclosure, includes a function block information acquisition unit 110 that acquires a function block definition and an instance name from a sequence program Pi, and a function block information acquisition unit 110 that acquires a function block definition and an instance name from a sequence program Pi.
  • a function block instance name search unit 120 that searches for usage locations of the obtained instance name, the function block definition obtained by the function block information acquisition unit 110, and the search results of the function block instance name search unit 120,
  • a function block analysis unit 130 that analyzes an access situation including at least one of an instance call position defined by an instance name, a parameter assignment position, or a parameter reference position, and a display unit that displays the analysis results of the function block analysis unit 130.
  • a function block information display control section 140 is provided. According to this PLC programming device 1, it is possible to prevent programming errors such as omissions in parameter substitution and omissions in function blocks, and to prevent accidents due to unintended behavior.
  • the function block analysis unit 130 determines whether there is an assignment process for an input/input/output parameter among the parameters before the instance call position. Determines whether there is reference processing for output/input/output parameters among the parameters after the position, and whether there is assignment processing for input/input/output parameters in two or more places for one instance call.
  • the function block information display control unit 140 may display an alert on the display unit 40 if the determination result of the function block analysis unit 130 falls under any of the following.
  • the function block information display control unit 140a may select display/non-display of the alert for each parameter based on user input.
  • the function block information display control unit 140 controls the selected access status when the access status displayed based on the user's input is selected. You may transition to an editing screen where you can edit the access status.

Abstract

The purpose of the present invention is to prevent programming errors such as omitting to assign or refer parameters in function blocks and thereby prevent accidents due to unintended behavior. This information processing device is provided with: a function block information acquisition unit that acquires a function block definition and an instance name from a sequence program; a function block instance name search unit that searches the sequence program for locations where the instance name acquired by the function block information acquisition unit is used; a function block analysis unit that analyzes access conditions including at least either calling positions for the instance defined by the instance name, parameter assignment positions, or parameter reference positions on the basis of the acquired function block definition and the results of the search by the function block instance name search unit; and a function block information display control unit that displays the results of the analysis by the function block analysis unit on a display unit.

Description

情報処理装置information processing equipment
 本発明は、情報処理装置に関する。 The present invention relates to an information processing device.
 PLC(Programmable Logic Controller)のプログラムはIEC61131-3で規格化されている。IEC61131-3ではプログラムを部品化する手段としてファンクションブロックが使用されている。
 例えば、ファンクションブロック定義を修正することによりファンクションブロックインスタンスの編集を自動的に行う技術が知られている。例えば、特許文献1参照。
 なお、ファンクションブロックではパラメータの値を代入、参照する方法として、(1)インスタンスの呼び出し時にパラメータを代入、参照する、(2)パラメータを分離代入、分離参照する(すなわち、インスタンスの呼び出し以外の箇所でパラメータを代入、参照する)、(3)ファンクションブロックの型宣言でパラメータに初期値を設定する(呼び出し時の省略)、(4)パラメータの代入、参照なしの4つがある。
 図10A~10Dは、パラメータの値を代入、参照する4つの方法それぞれを行うシーケンスプログラムの一例を示す図である。図10A~10Dに示すように、シーケンスプログラムは、ファンクションブロックを定義するファンクションブロック定義部と、定義したファンクションブロックをデータ型としたインスタンス(変数)を宣言する変数宣言部と、プログラム内で「インスタンス名+()」と記述し、代入処理又は参照処理を呼び出すプログラム部と、を有する。
 (1)インスタンスの呼び出し時にパラメータを代入、参照する方法では、図10Aに示すように、プログラム部においてインスタンス「fbinst」の呼び出し時にパラメータ「IN1」、「IN2」の代入処理が行われるとともに、パラメータ「OUT」の参照処理が行われる。
 (2)パラメータを分離代入、分離参照する方法では、図10Bに示すように、プログラム部においてインスタンス「fbinst」が呼び出される前に、パラメータ「IN1」、「IN2」の代入処理が行われ、インスタンス「fbinst」が呼び出される後に、パラメータ「OUT」の参照処理が行われる。
 (3)ファンクションブロックの型宣言でパラメータに初期値を設定する方法では、図10Cに示すように、ファンクションブロック定義部においてパラメータ「IN1」、「IN2」、「OUT」それぞれに「1」、「2」、「0」の初期値が設定され初期化が行われる。
 (4)パラメータの代入、参照なしの方法では、図10Dに示すように、プログラム部において、インスタンス「fbinst」の呼び出し時、及びインスタンス「fbinst」の呼び出し前後でパラメータの代入も参照も行っていない。この場合でも、IEC61131-3ではエラーやウォーニングにならない。
PLC (Programmable Logic Controller) programs are standardized by IEC61131-3. IEC61131-3 uses function blocks as a means of converting programs into components.
For example, a technique is known that automatically edits a function block instance by modifying the function block definition. For example, see Patent Document 1.
In addition, in a function block, the methods of assigning and referencing parameter values are: (1) assigning and referencing parameters when calling an instance, (2) separating assigning and referencing parameters (i.e., assigning and referencing parameters separately (i.e., at a location other than when calling an instance). There are four types: (3) setting initial values for parameters in the function block type declaration (omitted when calling), and (4) parameter assignment without reference.
FIGS. 10A to 10D are diagrams showing examples of sequence programs that perform each of the four methods of assigning and referencing parameter values. As shown in FIGS. 10A to 10D, a sequence program includes a function block definition section that defines function blocks, a variable declaration section that declares instances (variables) whose data type is the defined function block, and an "instance name+()" and calls an assignment process or a reference process.
(1) In the method of assigning and referencing parameters when calling an instance, as shown in FIG. Reference processing for “OUT” is performed.
(2) In the method of separate assignment and separate reference of parameters, as shown in FIG. After "fbinst" is called, the parameter "OUT" is referenced.
(3) In the method of setting initial values for parameters in the function block type declaration, as shown in Figure 10C, parameters "IN1", "IN2", and "OUT" are set to "1" and "OUT" respectively in the function block definition section, as shown in Figure 10C. Initial values of "2" and "0" are set and initialization is performed.
(4) In the method without parameter assignment or reference, as shown in FIG. 10D, no parameter assignment or reference is performed in the program section when calling the instance "fbinst" and before and after calling the instance "fbinst". . Even in this case, no error or warning occurs according to IEC61131-3.
特開2009-9462号公報Japanese Patent Application Publication No. 2009-9462
 ところで、図11の右側に示すように、例えば、シーケンスプログラムのファンクションブロック定義部に網掛けで示すパラメータ「IN3」を追加する場合、その定義型のインスタンス全てに対して、プログラム部に追加されたパラメータ「IN3」の「fbinst.IN3」から始まる代入(参照)処理を追加するのが一般的な対処である。しかしながら、プログラム部においてパラメータ「IN3」の「fbinst.IN3」の代入(参照)処理の追加を忘れたとしても、上記(4)パラメータの代入、参照なしの方法の通りパラメータ「IN3」を代入(参照)処理せずにインスタンスを呼び出すこともIEC61131-3の規格で許容されているため、代入(参照)処理を忘れるプログラミングミスも、コンパイラはこれをエラーとして検知できない。そのため、当該シーケンスプログラムを動かしてしまうと、思わぬ事故を引き起こす恐れがある。また、対応漏れがないかチェックを行う必要があるが、シーケンスプログラムが膨大であるほど対応漏れが生じやすく、プログラマの対応・確認の負担となっている。 By the way, as shown on the right side of FIG. 11, for example, when adding the shaded parameter "IN3" to the function block definition section of a sequence program, all instances of that definition type are added to the function block definition section of the sequence program. A common solution is to add assignment (reference) processing starting from "fbinst.IN3" for parameter "IN3". However, even if you forget to add the assignment (reference) process for "fbinst.IN3" to the parameter "IN3" in the program section, the parameter "IN3" can be assigned ( The IEC61131-3 standard allows calling an instance without processing it (reference), so a programming mistake in which assignment (reference) processing is forgotten will not be detected by the compiler as an error. Therefore, running the sequence program may cause an unexpected accident. In addition, it is necessary to check whether there are any omissions, but the larger the sequence program, the more likely it is that omissions will occur, placing a burden on the programmer to deal with and check.
 そこで、ファンクションブロックのパラメータの代入漏れ、参照漏れのプログラミングミスを防止し、意図せぬ挙動による事故を防止することが望まれている。 Therefore, it is desired to prevent programming errors such as omissions in parameter substitution and omissions in function blocks, and to prevent accidents due to unintended behavior.
 本開示の情報処理装置の一態様は、シーケンスプログラムからファンクションブロック定義とインスタンス名とを取得するファンクションブロック情報取得部と、前記シーケンスプログラムから前記ファンクションブロック情報取得部により取得された前記インスタンス名の使用箇所を検索するファンクションブロックインスタンス名検索部と、前記ファンクションブロック情報取得部により取得された前記ファンクションブロック定義と、前記ファンクションブロックインスタンス名検索部の検索結果とに基づいて、前記インスタンス名で定義されたインスタンスの呼出し位置、パラメータの代入位置、又はパラメータの参照位置の少なくともいずれかを含むアクセス状況を解析するファンクションブロック解析部と、前記ファンクションブロック解析部の解析結果を表示部に表示するファンクションブロック情報表示制御部と、を備える。 One aspect of the information processing device of the present disclosure includes a function block information acquisition unit that acquires a function block definition and an instance name from a sequence program, and use of the instance name acquired by the function block information acquisition unit from the sequence program. Based on the function block instance name search unit that searches for a location, the function block definition acquired by the function block information acquisition unit, and the search result of the function block instance name search unit, a function block analysis unit that analyzes an access situation including at least one of an instance call position, a parameter assignment position, or a parameter reference position; and a function block information display that displays the analysis results of the function block analysis unit on a display unit. A control unit.
 一態様によれば、ファンクションブロックのパラメータの代入漏れ、参照漏れのプログラミングミスを防止し、意図せぬ挙動による事故を防止することができる。 According to one aspect, it is possible to prevent programming errors such as omissions in parameter substitution and omissions in reference to function blocks, and to prevent accidents due to unintended behavior.
第1実施形態に係るPLCプログラミング装置の機能ブロック構成の図である。1 is a diagram of a functional block configuration of a PLC programming device according to a first embodiment; FIG. 読み出したシーケンスプログラムの一例を示す図である。It is a figure which shows an example of the read sequence program. 解析結果の表示画面の一例を示す図である。It is a figure which shows an example of the display screen of an analysis result. PLCプログラミング装置の解析処理について説明するフローチャートである。It is a flowchart explaining analysis processing of a PLC programming device. 第2実施形態に係るPLCプログラミング装置の構成の一例を示す図である。It is a figure showing an example of composition of a PLC programming device concerning a 2nd embodiment. アラートの表示/非表示の設定画面の一例を示す図である。It is a figure which shows an example of the setting screen of display/hide of an alert. 第3実施形態に係るPLCプログラミング装置の構成の一例を示す図である。It is a figure showing an example of composition of a PLC programming device concerning a 3rd embodiment. 解析結果の表示画面の一例を示す図である。It is a figure which shows an example of the display screen of an analysis result. 編集画面の一例を示す図である。It is a figure showing an example of an editing screen. インスタンスの呼び出し時にパラメータを代入、参照するシーケンスプログラムの一例を示す図である。FIG. 3 is a diagram illustrating an example of a sequence program that assigns and references parameters when calling an instance. パラメータを分離代入、分離参照するシーケンスプログラムの一例を示す図である。FIG. 2 is a diagram illustrating an example of a sequence program that separately assigns and references parameters. ファンクションブロックの型宣言でパラメータに初期値を設定するシーケンスプログラムの一例を示す図である。FIG. 3 is a diagram illustrating an example of a sequence program that sets initial values for parameters in a function block type declaration. パラメータの代入、参照なしのシーケンスプログラムの一例を示す図である。FIG. 2 is a diagram illustrating an example of a sequence program without parameter substitution or reference. シーケンスプログラムのファンクションブロック定義部にパラメータの追加の一例を示す図である。FIG. 3 is a diagram illustrating an example of adding parameters to a function block definition section of a sequence program.
 第1実施形態から第3実施形態について図面を参照して詳細に説明をする。
 ここで、各実施形態は、選択されたシーケンスプログラムを読み出し、読み出したシーケンスプログラムからファンクションブロック定義とインスタンス名とを取得し、読み出したシーケンスプログラムからインスタンス名の使用箇所を検索し、取得したファンクションブロック定義とインスタンス名の検索結果とに基づいて、インスタンスの呼出し位置、パラメータの代入位置、又はパラメータの参照位置の少なくともいずれかを含むアクセス状況を解析し、解析結果を表示するという構成において共通する。
 ただし、第1実施形態では解析結果における全てのアラートを表示する。これに対し、第2実施形態では全てのアラートのうちユーザの入力に基づいてアラートの表示/非表示をパラメータ毎に選択する点で、第1実施形態と相違する。また、第3実施形態ではユーザの入力に基づいて表示したアクセス状況が選択された場合、選択されたアクセス状況の箇所を編集する編集画面に遷移する点で、第1実施形態及び第2実施形態と相違する。
 以下では、まず第1実施形態について詳細に説明し、次に第2実施形態及び第3実施形態において特に第1実施形態と相違する部分について説明を行う。
The first to third embodiments will be described in detail with reference to the drawings.
Here, each embodiment reads a selected sequence program, acquires a function block definition and an instance name from the read sequence program, searches the read sequence program for a usage part of the instance name, and retrieves the function block definition and instance name from the read sequence program. A common configuration is that the access situation including at least one of the instance invocation position, parameter assignment position, or parameter reference position is analyzed based on the definition and the instance name search result, and the analysis result is displayed.
However, in the first embodiment, all alerts in the analysis results are displayed. On the other hand, the second embodiment differs from the first embodiment in that display/non-display of alerts is selected for each parameter based on user input from among all alerts. Further, in the third embodiment, when the access status displayed based on the user's input is selected, the screen transitions to an editing screen for editing the part of the selected access status, which is different from the first and second embodiments. It differs from
In the following, first, the first embodiment will be described in detail, and then, in the second and third embodiments, particularly the parts that are different from the first embodiment will be described.
<第1実施形態>
 図1は、第1実施形態に係る情報処理装置としてのPLCプログラミング装置の機能ブロック構成の図である。
 PLCプログラミング装置1は、当業者にとって公知のコンピュータ、タブレット端末等であり、図示しない接続インタフェースを介して図示しないPLCと直接接続されてもよい。また、PLCプログラミング装置1は、LAN(Local Area Network)やインターネット等の図示しないネットワークを介して図示しないPLCと接続されていてもよい。この場合、PLCプログラミング装置1は、かかる接続によって図示しないPLCと通信を行うための図示しない通信部を備えてもよい。
 図1に示すように、PLCプログラミング装置1は、CPU10と、記憶部20と、入力部30と、表示部40と、を有する。
<First embodiment>
FIG. 1 is a diagram showing a functional block configuration of a PLC programming device as an information processing device according to a first embodiment.
The PLC programming device 1 is a computer, tablet terminal, or the like known to those skilled in the art, and may be directly connected to a PLC (not shown) via a connection interface (not shown). Further, the PLC programming device 1 may be connected to a PLC (not shown) via a network (not shown) such as a LAN (Local Area Network) or the Internet. In this case, the PLC programming device 1 may include a communication unit (not shown) for communicating with a PLC (not shown) through such a connection.
As shown in FIG. 1, the PLC programming device 1 includes a CPU 10, a storage section 20, an input section 30, and a display section 40.
 入力部30は、キーボードやマウス、後述する表示部40に配置されたタッチパネル等の入力装置であり、ユーザからの入力を受け付ける。 The input unit 30 is an input device such as a keyboard, a mouse, or a touch panel disposed on a display unit 40 (described later), and accepts input from the user.
 表示部40は、LCD(Liquid Crystal Display)等の表示装置であり、後述するファンクションブロック情報表示制御部140からの表示指示に基づいてファンクションブロックに関する情報等を表示する表示画面を表示する。 The display unit 40 is a display device such as an LCD (Liquid Crystal Display), and displays a display screen that displays information regarding the function block based on display instructions from the function block information display control unit 140, which will be described later.
 記憶部20は、例えば、SSD(Solid State Drive)やHDD(Hard Disk Drive)等であり、OSや各種ソフトウェアとともに、n個のシーケンスプログラムP1~Pnを記憶する(nは2以上の整数)。
 なお、シーケンスプログラムP1~Pnそれぞれは、図10A~10Dに示すシーケンスプログラムと同様に、ファンクションブロック定義部、変数宣言部、及びプログラム部を有する。
The storage unit 20 is, for example, an SSD (Solid State Drive) or an HDD (Hard Disk Drive), and stores n sequence programs P1 to Pn (n is an integer of 2 or more) together with the OS and various software.
Note that each of the sequence programs P1 to Pn includes a function block definition section, a variable declaration section, and a program section, similar to the sequence programs shown in FIGS. 10A to 10D.
 制御部10は、CPU、ROM、RAM、CMOSメモリ等を有し、これらはバスを介して相互に通信可能に構成される、当業者にとって公知のものである。
 CPUはPLCプログラミング装置1を全体的に制御するプロセッサである。CPUは、ROMに格納されたシステムプログラム及びアプリケーションプログラムを、バスを介して読み出し、システムプログラム及びアプリケーションプログラムに従ってPLCプログラミング装置1全体を制御する。これにより、図1に示すように、制御部10は、ファンクションブロック情報取得部110、ファンクションブロックインスタンス名検索部120、ファンクションブロック解析部130、及びファンクションブロック情報表示制御部140の機能を実現するように構成される。RAMには一時的な計算データや表示データ等の各種データが格納される。CMOSメモリは図示しないバッテリでバックアップされ、PLCプログラミング装置1の電源がオフされても記憶状態が保持される不揮発性メモリとして構成される。
The control unit 10 includes a CPU, ROM, RAM, CMOS memory, etc., which are configured to be able to communicate with each other via a bus, which are well known to those skilled in the art.
The CPU is a processor that controls the PLC programming device 1 as a whole. The CPU reads the system program and application program stored in the ROM via the bus, and controls the entire PLC programming device 1 according to the system program and application program. As a result, as shown in FIG. 1, the control unit 10 realizes the functions of the function block information acquisition unit 110, function block instance name search unit 120, function block analysis unit 130, and function block information display control unit 140. It is composed of Various data such as temporary calculation data and display data are stored in the RAM. The CMOS memory is backed up by a battery (not shown) and is configured as a nonvolatile memory that maintains its storage state even when the power to the PLC programming device 1 is turned off.
 ファンクションブロック情報取得部110は、例えば、入力部30を介してユーザの入力に基づいてn個のシーケンスプログラムP1~Pnのうち選択されたシーケンスプログラムPiからファンクションブロック定義とインスタンス名とを取得する(iは1~nの整数)。
 具体的には、ファンクションブロック情報取得部110は、選択されたシーケンスプログラムPiを読み出す。
 図2は、読み出したシーケンスプログラムPiの一例を示す図である。なお、図2では、シーケンスプログラムPiのプログラム部の行数も示す。
 ファンクションブロック情報取得部110は、読み出したシーケンスプログラムPiのファンクションブロック定義部からファンクションブロック定義名「MY_FB」、入力パラメータ「IN1」、「IN2」、「IN3」、出力パラメータ「OUT」、及び入出力パラメータ「なし」をファンクションブロック定義として取得する。また、ファンクションブロック情報取得部110は、シーケンスプログラムPiの変数宣言部からインスタンス(変数)名「fbinst1」、「fbinst2」、「fbinst3」を取得する。
The function block information acquisition unit 110 acquires a function block definition and an instance name from a sequence program Pi selected from among the n sequence programs P1 to Pn based on the user's input via the input unit 30, for example. i is an integer from 1 to n).
Specifically, the function block information acquisition unit 110 reads the selected sequence program Pi.
FIG. 2 is a diagram showing an example of the read sequence program Pi. Note that FIG. 2 also shows the number of lines in the program section of the sequence program Pi.
The function block information acquisition unit 110 obtains the function block definition name “MY_FB”, input parameters “IN1”, “IN2”, “IN3”, output parameters “OUT”, and input/output from the function block definition section of the read sequence program Pi. Get the parameter "None" as a function block definition. The function block information acquisition unit 110 also acquires instance (variable) names “fbinst1,” “fbinst2,” and “fbinst3” from the variable declaration section of the sequence program Pi.
 ファンクションブロックインスタンス名検索部120は、選択されたシーケンスプログラムPiからファンクションブロック情報取得部110により取得されたインスタンス名の使用箇所を検索する。
 具体的には、ファンクションブロックインスタンス名検索部120は、例えば、図2のシーケンスプログラムPiのプログラム部においてインスタンス名「fbinst1」を検索し、5行目の「fbinst1.IN1:=3;」、6行目の「fbinst1.IN2:=fbinst1.IN2*2;」、及び13行目の「fbinst1(IN1:=5,IN3:=4,OUT=>out1);」を抽出する。
 また、ファンクションブロックインスタンス名検索部120は、インスタンス名「fbinst2」を検索し、23行目の「fbinst2(IN1:=6,IN2:=12,IN3:=11);」を抽出する。
 また、ファンクションブロックインスタンス名検索部120は、インスタンス名「fbinst3」を検索し、30行目の「fbinst3.IN1:=100;」、31行目の「fbinst3();」、及び40行目の「fbinst3.OUT=>out3;」を抽出する。
The function block instance name search unit 120 searches for the usage of the instance name acquired by the function block information acquisition unit 110 from the selected sequence program Pi.
Specifically, the function block instance name search unit 120 searches for the instance name "fbinst1" in the program section of the sequence program Pi shown in FIG. The line “fbinst1.IN2:=fbinst1.IN2*2;” and the 13th line “fbinst1(IN1:=5, IN3:=4, OUT=>out1);” are extracted.
Further, the function block instance name search unit 120 searches for the instance name “fbinst2” and extracts “fbinst2(IN1:=6, IN2:=12, IN3:=11);” on the 23rd line.
Further, the function block instance name search unit 120 searches for the instance name “fbinst3”, and searches for “fbinst3.IN1:=100;” on the 30th line, “fbinst3();” on the 31st line, and “fbinst3();” on the 40th line. Extract “fbinst3.OUT=>out3;”.
 ファンクションブロック解析部130は、ファンクションブロック情報取得部110により取得されたファンクションブロック定義と、ファンクションブロックインスタンス名検索部120の検索結果とに基づいて、インスタンス名で定義されたインスタンスの呼出し位置、パラメータの代入位置、又はパラメータの参照位置の少なくともいずれかを含むアクセス状況を解析する。
 具体的には、ファンクションブロック解析部130は、例えば、ファンクションブロック情報取得部110により取得されたファンクションブロック定義と、ファンクションブロックインスタンス名検索部120の検索結果に基づいて、図2のシーケンスプログラムPiのプログラム部において、インスタンス名「fbinst1」、「fbinst2」、「fbinst3」それぞれの呼び出し位置、インスタンス名「fbinst1」、「fbinst2」、「fbinst3」それぞれにおける入力パラメータ「IN1」、「IN2」、「IN3」の代入位置、及び出力パラメータ「OUT」の参照位置を含むアクセス状況を解析結果として取得する。
 そして、ファンクションブロック解析部130は、取得したインスタンス名「fbinst1」、「fbinst2」、「fbinst3」それぞれの呼び出し位置、インスタンス名「fbinst1」、「fbinst2」、「fbinst3」それぞれにおける入力パラメータ「IN1」、「IN2」、「IN3」の代入位置、及び出力パラメータ「OUT」の参照位置に基づいて、インスタンスの呼び出し位置より前に入力・入出力パラメータの代入処理が存在するか否か、インスタンスの呼び出し位置より後に出力・入出力パラメータの参照処理が存在するか否か、インスタンスの1つの呼び出しに対して入力・入出力パラメータの代入処理が2箇所以上存在するか否かを判定する。
Based on the function block definition acquired by the function block information acquisition unit 110 and the search results of the function block instance name search unit 120, the function block analysis unit 130 determines the calling position of the instance defined by the instance name, An access situation including at least either an assignment position or a parameter reference position is analyzed.
Specifically, the function block analysis unit 130 analyzes the sequence program Pi of FIG. In the program section, the call positions for instance names "fbinst1", "fbinst2", and "fbinst3", and the input parameters "IN1", "IN2", and "IN3" for instance names "fbinst1", "fbinst2", and "fbinst3", respectively. The access status including the assignment position of and the reference position of the output parameter "OUT" is obtained as an analysis result.
Then, the function block analysis unit 130 determines the calling position of each of the acquired instance names "fbinst1", "fbinst2", and "fbinst3", the input parameter "IN1" in each of the instance names "fbinst1", "fbinst2", and "fbinst3", Based on the assignment positions of "IN2" and "IN3" and the reference position of the output parameter "OUT", check whether there is an input/input/output parameter assignment process before the instance call position, the instance call position It is then determined whether there is a reference process for output/input/output parameters after that, and whether there are two or more assignment processes for input/input/output parameters for one call of an instance.
 すなわち、ファンクションブロック解析部130は、図2のシーケンスプログラムPiのプログラム部における13行目のインスタンス名「fbinst1」のインスタンスの呼び出し位置に対して、5行目と13行目との2箇所に入力パラメータ「IN1」の代入位置があることから、2重に代入処理されていると判定し、アラートの出力を決定する。
 また、ファンクションブロック解析部130は、図2のシーケンスプログラムPiのプログラム部における23行目のインスタンス名「fbinst2」のインスタンスの呼び出し位置より後に、出力パラメータ「OUT」の参照位置がないと判定し、アラートの出力を決定する。
 また、ファンクションブロック解析部130は、図2のシーケンスプログラムPiのプログラム部における31行目のインスタンス名「fbinst3」のインスタンスの呼び出し位置より前に、入力パラメータ「IN3」の代入位置がないと判定し、アラートの出力を決定する。なお、ファンクションブロック解析部130は、31行目のインスタンス名「fbinst3」のインスタンスへの呼び出しより前に、入力パラメータ「IN2」の代入位置もないと判定するが、ファンクションブロック定義部において初期値「10」が設定されていることから、注意喚起を促す出力を決定するようにしてもよい。
In other words, the function block analysis unit 130 inputs data into two locations, the 5th line and the 13th line, with respect to the calling position of the instance with the instance name "fbinst1" on the 13th line in the program section of the sequence program Pi in FIG. Since there is a substitution position for the parameter "IN1", it is determined that the substitution process is being performed twice, and an alert output is determined.
Further, the function block analysis unit 130 determines that there is no reference position of the output parameter “OUT” after the calling position of the instance with the instance name “fbinst2” on the 23rd line in the program section of the sequence program Pi in FIG. Determine the alert output.
Further, the function block analysis unit 130 determines that there is no assignment position for the input parameter “IN3” before the calling position of the instance with the instance name “fbinst3” on the 31st line in the program section of the sequence program Pi in FIG. , determine the output of the alert. Note that the function block analysis unit 130 determines that there is no assignment position for the input parameter “IN2” before calling the instance with the instance name “fbinst3” on the 31st line, but the function block definition unit determines that the initial value “IN2” is not assigned. 10'' is set, an output for prompting attention may be determined.
 ファンクションブロック情報表示制御部140は、ファンクションブロック解析部130の解析結果を表示部40に表示する。
 図3は、解析結果の表示画面の一例を示す図である。
 図3に示すように、ファンクションブロック情報表示制御部140は、インスタンス名「fbinst1」のインスタンスの呼び出しにおいて、入力パラメータ「IN1」が5行目と13行目との2箇所で代入されていることから、2つ目の代入位置である13行目の入力パラメータ「IN1」の枠を赤色等の色で表示し、「2重に代入されています!」等のアラートを表示する。
 また、ファンクションブロック情報表示制御部140は、インスタンス名「fbinst2」のインスタンスの呼び出しにおいて、出力パラメータ「OUT」の参照箇所がないことから、出力パラメータ「OUT」の枠を赤色等の色で表示し、「参照箇所がありません!」等のアラートを表示する。
 また、ファンクションブロック情報表示制御部140は、インスタンス名「fbinst3」のインスタンスの呼び出しにおいて、入力パラメータ「IN3」の代入箇所がないことから、入力パラメータ「IN3」の枠を赤色等の色で表示し付けするとともに、「代入箇所がありません!」というアラートを表示する。なお、ファンクションブロック情報表示制御部140は、インスタンス名「fbinst3」のインスタンスの呼び出しにおいて、入力パラメータ「IN2」の初期値の設定があるだけで代入箇所がないことから、入力パラメータ「IN2」の枠を黄色等の色で表示し、「初期値以外の設定がありません。」等のメッセージを表示するようにしてもよい。
Function block information display control section 140 displays the analysis results of function block analysis section 130 on display section 40 .
FIG. 3 is a diagram showing an example of an analysis result display screen.
As shown in FIG. 3, the function block information display control unit 140 determines that the input parameter "IN1" is substituted in two places, the 5th line and the 13th line, when calling the instance with the instance name "fbinst1". Then, the frame of the input parameter "IN1" on the 13th line, which is the second substitution position, is displayed in a color such as red, and an alert such as "Double substitution!" is displayed.
Furthermore, in calling the instance with the instance name "fbinst2", the function block information display control unit 140 displays the frame of the output parameter "OUT" in a color such as red because there is no reference to the output parameter "OUT". , displays an alert such as "Reference location not found!".
In addition, in calling the instance with the instance name "fbinst3", the function block information display control unit 140 displays the frame of the input parameter "IN3" in a color such as red because there is no substitution place for the input parameter "IN3". At the same time, an alert saying "No substitution location!" is displayed. Note that when calling the instance with the instance name "fbinst3", the function block information display control unit 140 sets the input parameter "IN2" in the frame because there is only an initial value setting for the input parameter "IN2" and no substitution. may be displayed in a color such as yellow, and a message such as "There are no settings other than the initial values." may be displayed.
<PLCプログラミング装置1の解析処理>
 次に、図4を参照しながら、PLCプログラミング装置1の解析処理の流れを説明する。
 図4は、PLCプログラミング装置1の解析処理について説明するフローチャートである。ここで示すフローは、n個のシーケンスプログラムP1~Pnのうち1つのシーケンスプログラムPiが選択される度に実行される。
<Analysis processing of PLC programming device 1>
Next, the flow of analysis processing of the PLC programming device 1 will be explained with reference to FIG.
FIG. 4 is a flowchart illustrating the analysis process of the PLC programming device 1. The flow shown here is executed every time one sequence program Pi is selected from n sequence programs P1 to Pn.
 ステップS11において、ファンクションブロック情報取得部110は、選択されたシーケンスプログラムPiのファンクションブロック定義部から、ファンクションブロック定義を取得する。 In step S11, the function block information acquisition section 110 acquires a function block definition from the function block definition section of the selected sequence program Pi.
 ステップS12において、ファンクションブロック情報取得部110は、選択されたシーケンスプログラムPiの変数宣言部から、インスタンス名を含むインスタンス情報を取得する。 In step S12, the function block information acquisition section 110 acquires instance information including the instance name from the variable declaration section of the selected sequence program Pi.
 ステップS13において、ファンクションブロックインスタンス名検索部120は、選択されたシーケンスプログラムPiから、ステップS12で読み出されたインスタンス情報に含まれるインスタンス名の使用箇所を検索し抽出する。 In step S13, the function block instance name search unit 120 searches and extracts the usage of the instance name included in the instance information read out in step S12 from the selected sequence program Pi.
 ステップS14において、ファンクションブロック解析部130は、ステップS11で読み出されたファンクションブロック定義と、ステップS13の検索結果から、インスタンス名で定義されたインスタンスの呼出し位置、パラメータの代入位置、又はパラメータの参照位置を含むアクセス状況を解析する。 In step S14, the function block analysis unit 130 determines the calling position of the instance defined by the instance name, the parameter assignment position, or the parameter reference from the function block definition read in step S11 and the search result in step S13. Analyze access status including location.
 ステップS15において、ファンクションブロック情報表示制御部140は、ステップS14の解析結果を表示部40に表示する。 In step S15, the function block information display control section 140 displays the analysis result of step S14 on the display section 40.
 ステップS16において、ファンクションブロック情報取得部110は、次のインスタンスがないか否かを判定する。次のインスタンスがない場合、処理はステップS17に進む。一方、次のインスタンスがある場合、処理はステップS12に戻る。 In step S16, the function block information acquisition unit 110 determines whether there is a next instance. If there is no next instance, the process proceeds to step S17. On the other hand, if there is a next instance, the process returns to step S12.
 ステップS17において、ファンクションブロック情報取得部110は、次のファンクションブロック定義がないか否かを判定する。次のファンクションブロック定義がない場合、PLCプログラミング装置1は、解析処理を終了する。一方、次のファンクションブロック定義がある場合、処理はステップS11に戻る。 In step S17, the function block information acquisition unit 110 determines whether there is no next function block definition. If there is no next function block definition, the PLC programming device 1 ends the analysis process. On the other hand, if there is a next function block definition, the process returns to step S11.
 以上により、第1実施形態に係るPLCプログラミング装置1は、ファンクションブロックのパラメータの代入漏れ、参照漏れのプログラミングミスを防止し、意図せぬ挙動による事故を防止することができる。
 また、PLCプログラミング装置1は、ファンクションブロックのパラメータの代入・参照されている状況を容易に把握することができるため、ユーザの負担を軽減することができる。
 以上、第1実施形態について説明した。
As described above, the PLC programming device 1 according to the first embodiment can prevent programming errors such as omissions in parameter substitution and omissions in reference to function blocks, and can prevent accidents due to unintended behavior.
Furthermore, the PLC programming device 1 can easily grasp the situation in which parameters of function blocks are substituted and referenced, thereby reducing the burden on the user.
The first embodiment has been described above.
<第2実施形態>
 次に、第2実施形態について説明する。上述したように、第1実施形態では解析結果における全てのアラートを表示する。これに対し、第2実施形態では全てのアラートのうちユーザの入力に基づいてアラートの表示/非表示をパラメータ毎に選択する点で、第1実施形態と相違する。
 これにより、PLCプログラミング装置1Aは、ファンクションブロックのパラメータの代入漏れ、参照漏れのプログラミングミスを防止し、意図せぬ挙動による事故を防止することができる。
 以下、第2実施形態について説明する。
<Second embodiment>
Next, a second embodiment will be described. As described above, in the first embodiment, all alerts in the analysis results are displayed. On the other hand, the second embodiment differs from the first embodiment in that display/non-display of alerts is selected for each parameter based on user input from among all alerts.
Thereby, the PLC programming device 1A can prevent programming errors such as omissions in parameter substitution and omissions in function block parameters, and can prevent accidents due to unintended behavior.
The second embodiment will be described below.
 図5は、第2実施形態に係るPLCプログラミング装置1Aの構成の一例を示す図である。なお、図1のPLCプログラミング装置1の要素と同様の機能を有する要素については、同じ符号を付し、詳細な説明は省略する。
 図5に示すように、PLCプログラミング装置1Aは、制御部10a、記憶部20、入力部30、及び表示部40を有する。
 記憶部20、入力部30、及び表示部40は、第1実施形態における記憶部20、入力部30、及び表示部40と同等の機能を有する。
 シーケンスプログラムP1~Pnは、第1実施形態におけるシーケンスプログラムP1~Pnと同等のものである。
FIG. 5 is a diagram showing an example of the configuration of a PLC programming device 1A according to the second embodiment. Note that elements having the same functions as those of the PLC programming device 1 in FIG. 1 are denoted by the same reference numerals, and detailed description thereof will be omitted.
As shown in FIG. 5, the PLC programming device 1A includes a control section 10a, a storage section 20, an input section 30, and a display section 40.
The storage unit 20, input unit 30, and display unit 40 have the same functions as the storage unit 20, input unit 30, and display unit 40 in the first embodiment.
The sequence programs P1 to Pn are equivalent to the sequence programs P1 to Pn in the first embodiment.
 制御部10aは、CPU、ROM、RAM、CMOSメモリ等を有し、これらはバスを介して相互に通信可能に構成される、当業者にとって公知のものである。
 CPUはPLCプログラミング装置1Aを全体的に制御するプロセッサである。CPUは、ROMに格納されたシステムプログラム及びアプリケーションプログラムを、バスを介して読み出し、システムプログラム及びアプリケーションプログラムに従ってPLCプログラミング装置1A全体を制御する。これにより、図5に示すように、制御部10aは、ファンクションブロック情報取得部110、ファンクションブロックインスタンス名検索部120、ファンクションブロック解析部130、及びファンクションブロック情報表示制御部140aの機能を実現するように構成される。
 ファンクションブロック情報取得部110、ファンクションブロックインスタンス名検索部120、ファンクションブロック解析部130は、第1実施形態におけるファンクションブロック情報取得部110、ファンクションブロックインスタンス名検索部120、ファンクションブロック解析部130と同等の機能を有する。
The control unit 10a includes a CPU, ROM, RAM, CMOS memory, etc., which are configured to be able to communicate with each other via a bus, which is well known to those skilled in the art.
The CPU is a processor that controls the entire PLC programming device 1A. The CPU reads the system program and application program stored in the ROM via the bus, and controls the entire PLC programming device 1A according to the system program and application program. As a result, as shown in FIG. 5, the control unit 10a realizes the functions of the function block information acquisition unit 110, function block instance name search unit 120, function block analysis unit 130, and function block information display control unit 140a. It is composed of
The function block information acquisition unit 110, function block instance name search unit 120, and function block analysis unit 130 are equivalent to the function block information acquisition unit 110, function block instance name search unit 120, and function block analysis unit 130 in the first embodiment. Has a function.
 ファンクションブロック情報表示制御部140aは、図1のファンクションブロック情報表示制御部140と同様に、ファンクションブロック解析部130の解析結果を表示部40に表示する。
 また、ファンクションブロック情報表示制御部140aは、入力部30を介してユーザの入力に基づいて、アラートの表示/非表示をパラメータ毎に選択する。
 具体的には、ファンクションブロック情報表示制御部140aは、例えば、図3に示す解析結果の表示画面において、ユーザにより入力部30のマウスのポインターがインスタンス名「fbinst1」の位置に配置されたり、ユーザにより入力部30のタッチパネルによりインスタンス名「fbinst1」の位置がタッチされることで、図6に示すように、アラートの表示/非表示を切り替える設定画面を表示する。ファンクションブロック情報表示制御部140aは、ユーザの入力に基づいて設定画面においてパラメータ「IN1」の非表示が選択されることにより、破線の矩形で示すようにインスタンス名「fbinst1」の2つ目のパラメータ「IN1」のアラートを非表示にする。
 そうすることで、PLCプログラミング装置1Aは、ユーザが意図した箇所や、ユーザがエラーでないと判断した箇所等のアラートを非表示にすることにより、より重要なアラートの箇所のみを表示することにより、ファンクションブロックのパラメータの代入漏れ、参照漏れのプログラミングミスを防止することができる。
The function block information display control section 140a displays the analysis results of the function block analysis section 130 on the display section 40, similar to the function block information display control section 140 in FIG.
Further, the function block information display control unit 140a selects display/non-display of alerts for each parameter based on user input via the input unit 30.
Specifically, the function block information display control unit 140a controls, for example, when the user places the mouse pointer of the input unit 30 at the instance name “fbinst1” on the analysis result display screen shown in FIG. When the position of the instance name "fbinst1" is touched on the touch panel of the input unit 30, a setting screen for switching display/non-display of alerts is displayed as shown in FIG. When non-display of the parameter "IN1" is selected on the setting screen based on the user's input, the function block information display control unit 140a displays the second parameter of the instance name "fbinst1" as shown by the dashed rectangle. Hide the "IN1" alert.
By doing so, the PLC programming device 1A hides alerts such as locations intended by the user or locations that the user has determined are not errors, and displays only the more important alert locations. It is possible to prevent programming errors such as omissions in parameter substitution and omissions in function block parameters.
 なお、PLCプログラミング装置1Aの解析処理は、図4と同様であり、詳細な説明は省略する。
 ただし、図4のステップS15において、ファンクションブロック情報表示制御部140aは、ステップS14の解析結果を表示部40に表示し、ユーザにより入力部30のタッチパネル等によりインスタンス名「fbinst1」等の位置がタッチされる場合、アラートの表示/非表示を切り替える設定画面を表示し、ユーザの入力に基づいて設定画面で非表示が選択されたパラメータのアラートを非表示にする。
Note that the analysis process of the PLC programming device 1A is the same as that shown in FIG. 4, and detailed explanation will be omitted.
However, in step S15 of FIG. 4, the function block information display control unit 140a displays the analysis result of step S14 on the display unit 40, and the position of the instance name “fbinst1” is touched by the user on the touch panel of the input unit 30, etc. If so, a settings screen for switching alert display/hide is displayed, and based on the user's input, the alert for the parameter selected to be hidden on the settings screen is hidden.
 以上により、第2実施形態に係るPLCプログラミング装置1Aは、ユーザが意図した箇所や、ユーザがエラーでないと判断した箇所等を非表示にすることにより、より重要なアラートされた箇所のみを表示することにより、ファンクションブロックのパラメータの代入漏れ、参照漏れのプログラミングミスを防止し、意図せぬ挙動による事故を防止することができる。
 また、PLCプログラミング装置1Aは、ファンクションブロックのパラメータの代入・参照されている状況を容易に把握することができるため、ユーザの負担を軽減することができる。
 以上、第2実施形態について説明した。
As described above, the PLC programming device 1A according to the second embodiment displays only the more important alerted locations by hiding the locations intended by the user and the locations determined by the user to be non-errors. By doing so, it is possible to prevent programming errors such as omissions in parameter substitution and omissions in function block parameters, and to prevent accidents due to unintended behavior.
Furthermore, the PLC programming device 1A can easily grasp the situation in which parameters of function blocks are substituted and referenced, thereby reducing the burden on the user.
The second embodiment has been described above.
<第3実施形態>
 次に、第3実施形態について説明する。上述したように、第1実施形態では解析結果における全てのアラートを表示する。また、第2実施形態では全てのアラートのうちユーザの入力に基づいてアラートの表示/非表示をパラメータ毎に選択する点で、第1実施形態と相違する。これらに対して、第3実施形態ではユーザの入力に基づいて表示したアクセス状況が選択された場合、選択されたアクセス状況の箇所を編集する編集画面に遷移する点で、第1実施形態及び第2実施形態と相違する。
 これにより、PLCプログラミング装置1Bは、ファンクションブロックのパラメータの代入漏れ、参照漏れのプログラミングミスを防止し、意図せぬ挙動による事故を防止することができる。
 以下、第3実施形態について説明する。
<Third embodiment>
Next, a third embodiment will be described. As described above, in the first embodiment, all alerts in the analysis results are displayed. The second embodiment differs from the first embodiment in that display/non-display of alerts is selected for each parameter based on user input from among all alerts. In contrast, in the third embodiment, when the access status displayed based on the user's input is selected, the screen transitions to an editing screen for editing the part of the selected access status. This is different from the second embodiment.
Thereby, the PLC programming device 1B can prevent programming errors such as omissions in parameter substitution and omissions in function blocks, and can prevent accidents due to unintended behavior.
The third embodiment will be described below.
 図7は、第3実施形態に係るPLCプログラミング装置1Bの構成の一例を示す図である。なお、図1のPLCプログラミング装置1の要素と同様の機能を有する要素については、同じ符号を付し、詳細な説明は省略する。
 図7に示すように、PLCプログラミング装置1Bは、制御部10b、記憶部20、入力部30、及び表示部40を有する。
 記憶部20、入力部30、及び表示部40は、第1実施形態における記憶部20、入力部30、及び表示部40と同等の機能を有する。
 シーケンスプログラムP1~Pnは、第1実施形態におけるシーケンスプログラムP1~Pnと同等のものである。
FIG. 7 is a diagram showing an example of the configuration of a PLC programming device 1B according to the third embodiment. Note that elements having the same functions as those of the PLC programming device 1 in FIG. 1 are denoted by the same reference numerals, and detailed description thereof will be omitted.
As shown in FIG. 7, the PLC programming device 1B includes a control section 10b, a storage section 20, an input section 30, and a display section 40.
The storage unit 20, input unit 30, and display unit 40 have the same functions as the storage unit 20, input unit 30, and display unit 40 in the first embodiment.
The sequence programs P1 to Pn are equivalent to the sequence programs P1 to Pn in the first embodiment.
 制御部10bは、CPU、ROM、RAM、CMOSメモリ等を有し、これらはバスを介して相互に通信可能に構成される、当業者にとって公知のものである。
 CPUはPLCプログラミング装置1Bを全体的に制御するプロセッサである。CPUは、ROMに格納されたシステムプログラム及びアプリケーションプログラムを、バスを介して読み出し、システムプログラム及びアプリケーションプログラムに従ってPLCプログラミング装置1B全体を制御する。これにより、図7に示すように、制御部10bは、ファンクションブロック情報取得部110、ファンクションブロックインスタンス名検索部120、ファンクションブロック解析部130、及びファンクションブロック情報表示制御部140bの機能を実現するように構成される。
 ファンクションブロック情報取得部110、ファンクションブロックインスタンス名検索部120、ファンクションブロック解析部130は、第1実施形態におけるファンクションブロック情報取得部110、ファンクションブロックインスタンス名検索部120、ファンクションブロック解析部130と同等の機能を有する。
The control unit 10b includes a CPU, ROM, RAM, CMOS memory, etc., which are configured to be able to communicate with each other via a bus, which are well known to those skilled in the art.
The CPU is a processor that controls the entire PLC programming device 1B. The CPU reads the system program and application program stored in the ROM via the bus, and controls the entire PLC programming device 1B according to the system program and application program. As a result, as shown in FIG. 7, the control unit 10b realizes the functions of the function block information acquisition unit 110, function block instance name search unit 120, function block analysis unit 130, and function block information display control unit 140b. It is composed of
The function block information acquisition unit 110, function block instance name search unit 120, and function block analysis unit 130 are equivalent to the function block information acquisition unit 110, function block instance name search unit 120, and function block analysis unit 130 in the first embodiment. Has a function.
 ファンクションブロック情報表示制御部140bは、図1のファンクションブロック情報表示制御部140と同様に、ファンクションブロック解析部130の解析結果を表示部40に表示する。
 また、ファンクションブロック情報表示制御部140bは、入力部30を介してユーザの入力に基づいて表示した解析結果のうち1つのアクセス状況が選択された場合、選択されたアクセス状況の箇所を編集するテキストエディタ等の編集画面に遷移する。
 具体的には、ファンクションブロック情報表示制御部140aは、例えば、図8に示す解析結果の表示画面において、ユーザにより入力部30のマウスやタッチパネル等で、破線の矩形で示すインスタンス名「fbinst2」が選択されることで、図9に示すように、シーケンスプログラムPiのプログラム部を編集する編集画面に遷移し、網掛けで示す選択されたインスタンス名「fbinst2」のコードの位置にジャンプする。
 そうすることで、PLCプログラミング装置1Bは、解析結果に応じて対応する箇所のコードを容易に編集することができる。
The function block information display control section 140b displays the analysis results of the function block analysis section 130 on the display section 40, similar to the function block information display control section 140 in FIG.
Furthermore, when one of the access situations is selected from the analysis results displayed based on the user's input via the input unit 30, the function block information display control unit 140b provides text for editing the part of the selected access situation. Transition to an editing screen such as an editor.
Specifically, the function block information display control unit 140a allows the user to input the instance name “fbinst2” indicated by a dashed rectangle using the mouse or touch panel of the input unit 30 on the analysis result display screen shown in FIG. 8, for example. By being selected, as shown in FIG. 9, the screen changes to an editing screen for editing the program section of the sequence program Pi, and jumps to the code position of the selected instance name "fbinst2" shown in shaded area.
By doing so, the PLC programming device 1B can easily edit the code at the corresponding location according to the analysis result.
 なお、PLCプログラミング装置1Bの解析処理は、図4と同様であり、詳細な説明は省略する。
 ただし、図4のステップS15において、ファンクションブロック情報表示制御部140bは、ステップS14の解析結果を表示部40に表示し、ユーザにより入力部30のタッチパネル等によりインスタンス名「fbinst2」等が選択される場合、シーケンスプログラムPiのプログラム部を編集する編集画面に遷移し、選択されたインスタンス名のコードの位置にジャンプする。この場合、選択されたインスタンス名のコードの編集が終了した場合、処理はステップS16に進む。
Note that the analysis process of the PLC programming device 1B is the same as that shown in FIG. 4, and detailed explanation will be omitted.
However, in step S15 of FIG. 4, the function block information display control unit 140b displays the analysis result of step S14 on the display unit 40, and the user selects an instance name such as “fbinst2” using the touch panel of the input unit 30. In this case, the screen changes to an editing screen for editing the program section of the sequence program Pi, and jumps to the code position of the selected instance name. In this case, if editing of the code of the selected instance name is completed, the process advances to step S16.
 以上により、第3実施形態に係るPLCプログラミング装置1Bは、解析結果に応じて対応する箇所のコードを編集する編集画面に遷移することにより、ファンクションブロックのパラメータの代入漏れ、参照漏れのプログラミングミスを防止し、意図せぬ挙動による事故を防止することができる。
 また、PLCプログラミング装置1Bは、ファンクションブロックのパラメータの代入・参照されている状況を容易に把握することができるため、ユーザの負担を軽減することができる。
 以上、第3実施形態について説明した。
As described above, the PLC programming device 1B according to the third embodiment prevents programming mistakes such as omission of parameter substitution and reference of function blocks by transitioning to an editing screen for editing the code of the corresponding part according to the analysis result. It is possible to prevent accidents caused by unintended behavior.
Furthermore, the PLC programming device 1B can easily grasp the situation in which parameters of function blocks are substituted and referenced, thereby reducing the burden on the user.
The third embodiment has been described above.
 以上、第1実施形態、第2実施形態、及び第3実施形態について説明したが、PLCプログラミング装置1、1A、1Bは、上述の実施形態に限定されるものではなく、目的を達成できる範囲での変形、改良等を含む。 Although the first embodiment, second embodiment, and third embodiment have been described above, the PLC programming devices 1, 1A, and 1B are not limited to the above-mentioned embodiments, and can be used within the range that can achieve the purpose. Including modifications, improvements, etc.
<変形例1>
 第1実施形態、第2実施形態、及び第3実施形態では、シーケンスプログラムP1~Pnは、PLCプログラミング装置1、1A、1Bの記憶部20に記憶されたが、これに限定されない。例えば、シーケンスプログラムP1~Pnは、サーバ等の外部装置に記憶されていてもよい。
<Modification 1>
In the first embodiment, the second embodiment, and the third embodiment, the sequence programs P1 to Pn are stored in the storage unit 20 of the PLC programming device 1, 1A, 1B, but the present invention is not limited thereto. For example, the sequence programs P1 to Pn may be stored in an external device such as a server.
<変形例2>
 また例えば、上述の第1実施形態及び第2実施形態では、PLCプログラミング装置1、1A、1Bは、図4に示すように、インスタンス毎(ステップS16)、及びファンクションブロック定義毎(ステップS17)にインスタンス及び各パラメータのアクセス状況を解析し、ステップS15で解析結果を順次表示したが、これに限定されない。例えば、PLCプログラミング装置1、1Aは、全てのインスタンス及び全てのファンクションブロック定義についてインスタンス及び各パラメータのアクセス状況を解析し、解析結果を表示するようにしてもよい。
<Modification 2>
Further, for example, in the first and second embodiments described above, the PLC programming devices 1, 1A, and 1B, as shown in FIG. Although the access status of the instance and each parameter is analyzed and the analysis results are sequentially displayed in step S15, the present invention is not limited to this. For example, the PLC programming devices 1 and 1A may analyze the access status of instances and each parameter for all instances and all function block definitions, and display the analysis results.
<変形例3>
 また例えば、上述の第3実施形態では、PLCプログラミング装置1Bは、図4に示すように、インスタンス毎(ステップS16)、及びファンクションブロック定義毎(ステップS17)にインスタンス及び各パラメータのアクセス状況を解析して、ステップS15で解析結果を順次表示し、インスタンス名が選択された場合、シーケンスプログラムPiのプログラム部を編集する編集画面に遷移し、選択されたインスタンス名のコードの位置にジャンプして編集したが、これに限定されない。例えば、PLCプログラミング装置1Bは、全てのインスタンス及び全てのファンクションブロック定義についてインスタンス及び各パラメータのアクセス状況を解析して解析結果を表示し、インスタンス名が選択された場合、シーケンスプログラムPiのプログラム部を編集する編集画面に遷移し、選択されたインスタンス名のコードの位置にジャンプして編集するようにしてもよい。
<Modification 3>
For example, in the third embodiment described above, the PLC programming device 1B analyzes the access status of instances and each parameter for each instance (step S16) and for each function block definition (step S17), as shown in FIG. Then, in step S15, the analysis results are sequentially displayed, and if an instance name is selected, the screen changes to an editing screen for editing the program section of the sequence program Pi, and the screen jumps to the code position of the selected instance name and edits it. However, it is not limited to this. For example, the PLC programming device 1B analyzes the access status of instances and each parameter for all instances and all function block definitions, displays the analysis results, and when an instance name is selected, the program section of the sequence program Pi is displayed. It may be possible to transition to an editing screen for editing, jump to the code position of the selected instance name, and edit.
 なお、第1実施形態、第2実施形態、及び第3実施形態における、PLCプログラミング装置1、1A、1Bに含まれる各機能は、ハードウェア、ソフトウェア又はこれらの組み合わせによりそれぞれ実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。 Note that each function included in the PLC programming devices 1, 1A, and 1B in the first embodiment, the second embodiment, and the third embodiment can be realized by hardware, software, or a combination thereof. Here, being realized by software means being realized by a computer reading and executing a program.
 プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(Non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(Tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば、光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM)を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(Transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は、無線通信路を介して、プログラムをコンピュータに供給できる。 The program can be stored and delivered to a computer using various types of non-transitory computer readable media. Non-transitory computer-readable media include various types of tangible storage media. Examples of non-transitory computer-readable media are magnetic recording media (e.g., flexible disks, magnetic tapes, hard disk drives), magneto-optical recording media (e.g., magneto-optical disks), CD-ROMs (Read Only Memory), CD-ROMs, R, CD-R/W, semiconductor memory (for example, mask ROM, PROM (Programmable ROM), EPROM (Erasable PROM), flash ROM, RAM). The program may also be provided to the computer on various types of transitory computer readable media. Examples of transitory computer-readable media include electrical signals, optical signals, and electromagnetic waves. The temporary computer-readable medium can provide the program to the computer via wired communication channels such as electrical wires and optical fibers, or via wireless communication channels.
 なお、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。 Note that the step of writing a program to be recorded on a recording medium includes not only processes that are performed in chronological order, but also processes that are not necessarily performed in chronological order but are executed in parallel or individually. It also includes.
 以上を換言すると、本開示の情報処理装置は、次のような構成を有する各種各様の実施形態を取ることができる。 In other words, the information processing device of the present disclosure can take various embodiments having the following configurations.
 (1)本開示の情報処理装置であるPLCプログラミング装置1は、シーケンスプログラムPiからファンクションブロック定義とインスタンス名とを取得するファンクションブロック情報取得部110と、シーケンスプログラムPiからファンクションブロック情報取得部110により取得されたインスタンス名の使用箇所を検索するファンクションブロックインスタンス名検索部120と、ファンクションブロック情報取得部110により取得されたファンクションブロック定義と、ファンクションブロックインスタンス名検索部120の検索結果とに基づいて、インスタンス名で定義されたインスタンスの呼出し位置、パラメータの代入位置、又はパラメータの参照位置の少なくともいずれかを含むアクセス状況を解析するファンクションブロック解析部130と、ファンクションブロック解析部130の解析結果を表示部40に表示するファンクションブロック情報表示制御部140と、を備える。
 このPLCプログラミング装置1によれば、ファンクションブロックのパラメータの代入漏れ、参照漏れのプログラミングミスを防止し、意図せぬ挙動による事故を防止することができる。
(1) The PLC programming device 1, which is an information processing device of the present disclosure, includes a function block information acquisition unit 110 that acquires a function block definition and an instance name from a sequence program Pi, and a function block information acquisition unit 110 that acquires a function block definition and an instance name from a sequence program Pi. Based on the function block instance name search unit 120 that searches for usage locations of the obtained instance name, the function block definition obtained by the function block information acquisition unit 110, and the search results of the function block instance name search unit 120, A function block analysis unit 130 that analyzes an access situation including at least one of an instance call position defined by an instance name, a parameter assignment position, or a parameter reference position, and a display unit that displays the analysis results of the function block analysis unit 130. 40, a function block information display control section 140 is provided.
According to this PLC programming device 1, it is possible to prevent programming errors such as omissions in parameter substitution and omissions in function blocks, and to prevent accidents due to unintended behavior.
 (2) (1)に記載のPLCプログラミング装置1において、ファンクションブロック解析部130は、インスタンスの呼び出し位置より前にパラメータのうち入力・入出力パラメータの代入処理が存在するか否か、インスタンスの呼び出し位置より後にパラメータのうち出力・入出力パラメータの参照処理が存在するか否か、インスタンスの1つの呼び出しに対して入力・入出力パラメータへの代入処理が2箇所以上存在するか否かを判定し、ファンクションブロック情報表示制御部140は、ファンクションブロック解析部130の判定結果がいずれかに該当する場合、表示部40にアラートとして表示してもよい。 (2) In the PLC programming device 1 described in (1), the function block analysis unit 130 determines whether there is an assignment process for an input/input/output parameter among the parameters before the instance call position. Determines whether there is reference processing for output/input/output parameters among the parameters after the position, and whether there is assignment processing for input/input/output parameters in two or more places for one instance call. The function block information display control unit 140 may display an alert on the display unit 40 if the determination result of the function block analysis unit 130 falls under any of the following.
 (3) (2)に記載のPLCプログラミング装置1Aにおいて、ファンクションブロック情報表示制御部140aは、ユーザの入力に基づいてアラートの表示/非表示をパラメータ毎に選択してもよい。 (3) In the PLC programming device 1A described in (2), the function block information display control unit 140a may select display/non-display of the alert for each parameter based on user input.
 (4) (1)から(3)のいずれかに記載のPLCプログラミング装置1Bにおいて、ファンクションブロック情報表示制御部140は、ユーザの入力に基づいて表示したアクセス状況が選択された場合、選択されたアクセス状況の箇所を編集する編集画面に遷移してもよい。 (4) In the PLC programming device 1B described in any one of (1) to (3), the function block information display control unit 140 controls the selected access status when the access status displayed based on the user's input is selected. You may transition to an editing screen where you can edit the access status.
 1、1A、1B PLCプログラミング装置
 10、10a、10b 制御部
 110 ファンクションブロック情報取得部
 120 ファンクションブロックインスタンス名検索部
 130 ファンクションブロック解析部
 140、140a、140b ファンクションブロック情報表示制御部
 20 記憶部
 30 入力部
 40 表示部
 P1~Pn シーケンスプログラム
1, 1A, 1B PLC programming device 10, 10a, 10b Control section 110 Function block information acquisition section 120 Function block instance name search section 130 Function block analysis section 140, 140a, 140b Function block information display control section 20 Storage section 30 Input section 40 Display section P1 to Pn Sequence program

Claims (4)

  1.  シーケンスプログラムからファンクションブロック定義とインスタンス名とを取得するファンクションブロック情報取得部と、
     前記シーケンスプログラムから前記ファンクションブロック情報取得部により取得された前記インスタンス名の使用箇所を検索するファンクションブロックインスタンス名検索部と、
     前記ファンクションブロック情報取得部により取得された前記ファンクションブロック定義と、前記ファンクションブロックインスタンス名検索部の検索結果とに基づいて、前記インスタンス名で定義されたインスタンスの呼出し位置、パラメータの代入位置、又はパラメータの参照位置の少なくともいずれかを含むアクセス状況を解析するファンクションブロック解析部と、
     前記ファンクションブロック解析部の解析結果を表示部に表示するファンクションブロック情報表示制御部と、
     を備える情報処理装置。
    a function block information acquisition unit that acquires a function block definition and an instance name from the sequence program;
    a function block instance name search unit that searches for a usage location of the instance name acquired by the function block information acquisition unit from the sequence program;
    Based on the function block definition acquired by the function block information acquisition unit and the search result of the function block instance name search unit, the call position, parameter assignment position, or parameter of the instance defined by the instance name is determined. a function block analysis unit that analyzes an access situation including at least one of the reference positions;
    a function block information display control unit that displays analysis results of the function block analysis unit on a display unit;
    An information processing device comprising:
  2.  前記ファンクションブロック解析部は、前記インスタンスの呼び出し位置より前に前記パラメータのうち入力・入出力パラメータの代入処理が存在するか否か、前記インスタンスの呼び出し位置より後に前記パラメータのうち出力・入出力パラメータの参照処理が存在するか否か、前記インスタンスの1つの呼び出しに対して前記入力・入出力パラメータへの代入処理が2箇所以上存在するか否かを判定し、
     前記ファンクションブロック情報表示制御部は、前記ファンクションブロック解析部の判定結果がいずれかに該当する場合、前記表示部にアラートとして表示する、請求項1記載の情報処理装置。
    The function block analysis unit determines whether there is an assignment process for an input/input/output parameter among the parameters before the calling position of the instance, and whether there is an assignment process for an input/input/output parameter among the parameters after the calling position of the instance. Determine whether there is a reference process of , and whether there are two or more assignment processes to the input/input/output parameters for one call of the instance,
    2. The information processing apparatus according to claim 1, wherein the function block information display control section displays an alert on the display section if the determination result of the function block analysis section falls under any of the following.
  3.  前記ファンクションブロック情報表示制御部は、ユーザの入力に基づいて前記アラートの表示/非表示を前記パラメータ毎に選択する、請求項2記載の情報処理装置。 The information processing apparatus according to claim 2, wherein the function block information display control section selects display/non-display of the alert for each of the parameters based on user input.
  4.  前記ファンクションブロック情報表示制御部は、ユーザの入力に基づいて表示した前記アクセス状況が選択された場合、選択された前記アクセス状況の箇所を編集する編集画面に遷移する、請求項1から請求項3のいずれか1項に記載の情報処理装置。 Claims 1 to 3, wherein, when the access status displayed based on user input is selected, the function block information display control unit transitions to an editing screen for editing a portion of the selected access status. The information processing device according to any one of the above.
PCT/JP2022/025380 2022-06-24 2022-06-24 Information processing device WO2023248478A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/025380 WO2023248478A1 (en) 2022-06-24 2022-06-24 Information processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/025380 WO2023248478A1 (en) 2022-06-24 2022-06-24 Information processing device

Publications (1)

Publication Number Publication Date
WO2023248478A1 true WO2023248478A1 (en) 2023-12-28

Family

ID=89379358

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/025380 WO2023248478A1 (en) 2022-06-24 2022-06-24 Information processing device

Country Status (1)

Country Link
WO (1) WO2023248478A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007102384A (en) * 2005-09-30 2007-04-19 Omron Corp Debugging device
JP2009009462A (en) * 2007-06-29 2009-01-15 Fanuc Ltd Sequence program editing apparatus
JP2009104227A (en) * 2007-10-19 2009-05-14 Omron Corp Plc control program development device and program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007102384A (en) * 2005-09-30 2007-04-19 Omron Corp Debugging device
JP2009009462A (en) * 2007-06-29 2009-01-15 Fanuc Ltd Sequence program editing apparatus
JP2009104227A (en) * 2007-10-19 2009-05-14 Omron Corp Plc control program development device and program

Similar Documents

Publication Publication Date Title
EP3338179B1 (en) Graphical representation of data in a program code editor
KR100613052B1 (en) Method and Apparatus For Interoperation Between Legacy Software and Screen Reader Programs
CN108228287B (en) QT-based user interface control generation method and device
CN111143004B (en) Scene guiding method and device, electronic equipment and storage medium
JP4302146B2 (en) Program creation support device
CN112416318B (en) Micro-service development method and device, storage medium and electronic equipment
CN104536398B (en) Frequency converter monitoring method and system
CN105335435A (en) File management method and information processing equipment
US20110126171A1 (en) Dynamic native editor code view facade
WO2023248478A1 (en) Information processing device
US20110029951A1 (en) Visually Presenting Inherited Members in Object-Oriented Languages
US20180365789A1 (en) Device management apparatus, device management method, and non-transitory computer readable storage medium
CN109582318B (en) Processing method and device for Portobuf localization, terminal and storage medium
TWI467481B (en) Method, system, and computer program product for hierarchical program source management
JP2005309593A (en) Program preparation device and program preparation method
JP2003186536A (en) Alarm-monitoring device
JP2016128941A (en) Output determination device, output determination method, output determination program, and static analysis device
US9182950B2 (en) Non-transitory computer-readable recording medium storing user interface program for developing application software
RU2668787C1 (en) Systems and methods for the machine post-processor configurator
KR101726120B1 (en) Program editing device, program editing method and computer readable recoding medium for recording program editing program
US9542182B2 (en) Standardization of variable names in an integrated development environment
JP2013097567A (en) Help creation support device, help creation support program and help creation support method
JP5540856B2 (en) Apparatus and method for setting a workflow
CN116431142B (en) High-efficiency programming method capable of being quickly constructed and not prone to error
KR20210048045A (en) Automatic drawing up system for flight log

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: 22948037

Country of ref document: EP

Kind code of ref document: A1