WO2022190417A1 - Development support device, development support method, and development support program - Google Patents

Development support device, development support method, and development support program Download PDF

Info

Publication number
WO2022190417A1
WO2022190417A1 PCT/JP2021/034467 JP2021034467W WO2022190417A1 WO 2022190417 A1 WO2022190417 A1 WO 2022190417A1 JP 2021034467 W JP2021034467 W JP 2021034467W WO 2022190417 A1 WO2022190417 A1 WO 2022190417A1
Authority
WO
WIPO (PCT)
Prior art keywords
variable
source code
unused
variables
development support
Prior art date
Application number
PCT/JP2021/034467
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 オムロン株式会社
Publication of WO2022190417A1 publication Critical patent/WO2022190417A1/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 extraction unit notifies the user of the extracted unused variable via the interface when the extracted unused variable is an internal variable.
  • the configurator 257 acquires network information 293 indicating the network configuration of the FA system 10 and stores the acquired network information 293 in the data storage unit 299 .
  • the network information 293 includes configuration information received (downloaded) from each control device 200 (PLC) connected to the network.
  • the configuration information included in the network information 293 includes information received from the actual control device 200 or logical (virtual) information that is not actual information.
  • Logical information can include information that the user inputs via editor 252 by operating operation unit 115 .
  • the extraction unit 262 when it is determined that the unused variable is an internal variable (YES determination in S240), the extraction unit 262 notifies the user of the unused variable via the GUI module 258. .
  • the deletion unit 264 deletes unused variables according to deletion instructions from the user via the GUI module 258 .
  • step S25 and subsequent steps are skipped, and the determination process ends without deleting the unused variable. do.

Landscapes

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

Abstract

A development support device (100) that, when source code for a control program (210) for a control device (200) that controls a control target (300) has been edited in accordance with a user operation: extracts unused variables that are not referenced by command elements included in the edited source code from a variable declaration that defines variables referenced by command elements included in the source code; and reports the extracted unused variables to a user via an interface. The development support device (100) updates the variable declaration by deleting the unused variables from the variable declaration in accordance with user input given via the interface ordering deletion of the unused variables.

Description

開発支援装置、開発支援方法および開発支援プログラムDevelopment support device, development support method and development support program
 本開示は、制御対象を制御する制御装置用の制御プログラムの開発を支援するための技術に関する。 The present disclosure relates to technology for supporting development of a control program for a control device that controls a controlled object.
 様々な製造現場において、PLC(Programmable Logic Controller)等の制御装置が導入されている。この様な制御装置は、一種のコンピュータであり、製造装置や製造設備等の制御対象に応じて設計された制御プログラムが実行されることで、当該制御対象を制御することができる。一般的に、この様な制御プログラムは、コントローラとは別に用意された開発支援装置を用いて作成される。 At various manufacturing sites, control devices such as PLC (Programmable Logic Controller) have been introduced. Such a control device is a kind of computer, and can control the control target by executing a control program designed according to the control target such as a manufacturing apparatus or manufacturing facility. Such a control program is generally created using a development support device prepared separately from the controller.
 この様な制御プログラムは、一般的に、予め宣言された変数を用いて記述される。例えば、特開2005-352612号公報(特許文献1)には、変数の検索性を高めることで制御プログラムの開発効率を高めることができるプログラム開発支援装置が開示される。特許文献1のプログラム開発支援装置では、所定の命令に対するオペランドを入力した場合に、キーワード(文字列)の指定に応じて、当該文字列を含む変数名の変数のみを一覧表示する絞り込みを行うことによって、変数の検索性が高められる。 Such control programs are generally written using pre-declared variables. For example, Japanese Unexamined Patent Application Publication No. 2005-352612 (Patent Document 1) discloses a program development support device capable of improving control program development efficiency by improving variable searchability. In the program development support device of Patent Document 1, when an operand for a predetermined instruction is input, according to the specification of a keyword (character string), narrowing down by displaying a list of only variables with variable names that include the character string. enhances the searchability of variables.
特開2005-352612号公報JP 2005-352612 A
 上記の制御プログラムのソースプログラムでは、変数を宣言するための定義リストが設けられており、当該定義リスト中で宣言された変数がソースコード内で使用可能となる。 A definition list for declaring variables is provided in the source program of the above control program, and the variables declared in the definition list can be used in the source code.
 一方で、当該制御プログラムの変更または編集の際に、ソースコード内で削除された変数についても、定義リスト内に残されている場合には、制御プログラムの実行時に当該変数に対応するメモリ領域が確保される。このため、制御装置のメモリ領域を適切に確保する観点からは、不要な変数については定義リストから削除することが好ましい。 On the other hand, if a variable deleted in the source code remains in the definition list when the control program is changed or edited, the memory area corresponding to the variable will be restored when the control program is executed. Secured. Therefore, from the viewpoint of appropriately securing the memory area of the control device, it is preferable to delete unnecessary variables from the definition list.
 一方で、制御プログラムの実行時には、制御装置および制御対象の間でネットワークが構築されて制御対象が制御されるため、必要な変数を削除してしまうと制御対象側で不都合が生じることも懸念される。 On the other hand, when the control program is executed, a network is constructed between the control device and the controlled object, and the controlled object is controlled. be.
 本開示は上述のような問題点を解決するためになされたものであって、ある局面における目的は、制御プログラム内の削除可能な不要な変数を削除することが可能な開発支援装置を提供することである。他の局面における目的は、制御プログラム内の削除可能な不要な変数を削除することが可能な開発支援方法を提供することである。さらなる他の局面における目的は、制御プログラム内の削除可能な不要な変数を削除することが可能な開発支援プログラムを提供することである。 The present disclosure has been made to solve the problems as described above, and an object in one aspect is to provide a development support device capable of deleting unnecessary variables that can be deleted in a control program. That is. Another object of the present invention is to provide a development support method capable of deleting unnecessary variables that can be deleted from a control program. An object in still another aspect is to provide a development support program capable of deleting unnecessary variables that can be deleted in a control program.
 本開示の一例によれば、制御対象を制御する制御装置用の制御プログラムの開発を支援するための開発支援装置が提供される。開発支援装置は、エディタと、記憶部と、インターフェイスと、抽出部と、削除部とを備える。エディタは、ユーザ操作に従って、制御プログラムのソースコードを生成および編集する。記憶部は、ソースコードと、当該ソースコードに含まれる命令要素が参照する変数を定義した変数宣言とを記憶する。インターフェイスは、ユーザと対話する。抽出部は、エディタによりソースコードが編集された場合に、変数宣言から、編集されたソースコードに含まれる命令要素により参照されない不使用変数を抽出する。抽出部は、抽出した不使用変数を、インターフェイスを介してユーザに通知する。削除部は、インターフェイスを介した不使用変数の削除を指示するユーザ入力に従って不使用変数を変数宣言から削除することにより、変数宣言を更新する。 According to one example of the present disclosure, a development support device is provided for supporting development of a control program for a control device that controls a controlled object. The development support device includes an editor, a storage unit, an interface, an extraction unit, and a deletion unit. The editor generates and edits the source code of the control program according to user's operation. The storage unit stores source code and variable declarations defining variables referenced by instruction elements included in the source code. The interface interacts with the user. When the source code is edited by the editor, the extraction unit extracts unused variables not referenced by instruction elements included in the edited source code from the variable declaration. The extraction unit notifies the user of the extracted unused variables via an interface. The deleter updates the variable declaration by deleting the unused variables from the variable declaration according to user input through the interface directing the deletion of the unused variables.
 本開示によれば、開発支援装置において、ユーザ操作に従ってソースコードが編集されるごとに不使用変数が抽出され、抽出された不使用変数が削除されるため、ソースプログラムの編集によって不使用となった変数が変数宣言内に蓄積されることを抑制することができる。さらに本開示によれば、インターフェイスを介してユーザから削除指示された不使用変数のみが変数宣言から削除されるため、ソースコード内では不使用であっても制御対象で使用される変数などの制御対象側に影響を与える変数を除外して、制御プログラム内の削除可能な変数を削除することができる。 According to the present disclosure, the development support device extracts unused variables each time the source code is edited according to a user operation, and deletes the extracted unused variables. You can suppress the accumulation of variables in variable declarations. Furthermore, according to the present disclosure, only unused variables that are instructed to be deleted by the user via the interface are deleted from the variable declarations, so even if they are unused in the source code, they are not used in the control target. Deletable variables in the control program can be deleted, excluding variables that affect the target side.
 上述の開示において、抽出部は、エディタによりソースコードが編集された場合であって、ソースコードから少なくとも一部の命令要素が削除されたときに、変数宣言から不使用変数を抽出する。 In the above disclosure, the extraction unit extracts unused variables from variable declarations when the source code is edited by an editor and at least some instruction elements are deleted from the source code.
 この開示によれば、ユーザ操作に従ってソースコードが編集された場合であって、ソースコードから命令削除が削除されることによって不使用変数が生じる可能性があるときに、不使用変数の抽出が行われるため、不使用変数の削除を効率良く行うことができる。 According to this disclosure, when the source code is edited according to a user operation and the deletion of instructions from the source code may result in unused variables, the unused variables are extracted. Therefore, unused variables can be deleted efficiently.
 上述の開示において、抽出部は、ソースコードの改変部分に含まれる命令要素が参照する変数と変数宣言との整合性を判定し、整合性がないと判定されたことに応じて不使用変数を抽出する。 In the above disclosure, the extraction unit determines consistency between variables referenced by instruction elements included in the modified portion of the source code and variable declarations, and extracts unused variables in response to the determination that there is no consistency. Extract.
 この開示によれば、編集されたソースコードのうちの不使用変数が生じる可能性がある改変部分に限定して不使用変数の抽出が行われるため、不使用変数の削除を効率良く行うことができる。 According to this disclosure, since the unused variables are extracted only from the modified portion where the unused variables may occur in the edited source code, the unused variables can be efficiently deleted. can.
 上述の開示において、抽出部は、抽出した不使用変数が内部変数である場合に、抽出した不使用変数を、インターフェイスを介してユーザに通知する。 In the above disclosure, the extraction unit notifies the user of the extracted unused variable via the interface when the extracted unused variable is an internal variable.
 この開示によれば、不使用変数が内部変数である場合に変数宣言から当該不使用変数を削除するため、削除されると制御対象に影響を与える変数(入力変数、出力変数など)を除外して、制御プログラムから削除可能な不使用変数を削除することができる。 According to this disclosure, in order to remove the unused variable from the variable declaration if the unused variable is an internal variable, exclude variables (input variables, output variables, etc.) that affect the controlled object when deleted. can be used to remove unused variables that can be removed from the control program.
 本開示の他の例によれば、制御対象を制御する制御装置用の制御プログラムの開発を支援するための開発支援装置が提供される。開発支援装置は、エディタと、記憶部と、抽出部と、削除部とを備える。エディタは、ユーザ操作に従って、制御プログラムのソースコードを生成および編集する。記憶部は、ソースコードと、当該ソースコードに含まれる命令要素が参照する変数を定義した変数宣言とを記憶する。抽出部は、エディタによりソースコードが編集された場合に、変数宣言から、編集されたソースコードに含まれる命令要素により参照されない不使用変数を抽出する。削除部は、抽出部により抽出された不使用変数が、ソースコードの編集によって使用状態から不使用状態に変更された変数である場合に、不使用変数を前記変数宣言から削除することにより、変数宣言を更新する。 According to another example of the present disclosure, a development support device is provided for supporting development of a control program for a control device that controls a controlled object. The development support device includes an editor, a storage unit, an extraction unit, and a deletion unit. The editor generates and edits the source code of the control program according to user's operation. The storage unit stores source code and variable declarations defining variables referenced by instruction elements included in the source code. When the source code is edited by the editor, the extraction unit extracts unused variables not referenced by instruction elements included in the edited source code from the variable declaration. If the unused variable extracted by the extractor is a variable that has been changed from a used state to an unused state by editing the source code, the deletion unit deletes the unused variable from the variable declaration to remove the variable Update declaration.
 この開示によれば、開発支援装置において、ユーザ操作に従ってソースコードが編集されるごとに不使用変数が抽出され、抽出された不使用変数が削除されるため、ソースプログラムの編集によって不使用となった変数が変数宣言内に蓄積されることを抑制することができる。さらに本開示によれば、ソースコード内では不使用であっても制御対象で使用される変数などの制御対象側に影響を与える変数については、元々不使用状態の変数であって、ソースコードの編集によって使用状態から不使用状態に変更されるものでないため、削除対象から除外することができる。そのため、ユーザからの削除指示によらずに自動的に不使用変数を削除する構成としても、制御対象側に影響を与える変数を除外して、制御プログラム内の削除可能な変数を削除することができる。 According to this disclosure, the development support device extracts unused variables each time the source code is edited according to a user operation, and deletes the extracted unused variables. You can suppress the accumulation of variables in variable declarations. Furthermore, according to the present disclosure, variables that affect the controlled object side, such as variables that are unused in the source code but are used in the controlled object, are originally unused variables and are not used in the source code. Since it is not changed from the used state to the unused state by editing, it can be excluded from deletion targets. Therefore, even if the configuration automatically deletes unused variables without receiving a deletion instruction from the user, it is possible to delete variables that can be deleted in the control program by excluding variables that affect the controlled object side. can.
 上述の開示において、開発支援装置は、ビルダをさらに備える。ビルダは、ソースコードおよび変数宣言から制御プログラムの実行コードを生成する。 In the above disclosure, the development support device further includes a builder. The builder generates execution code of the control program from the source code and variable declarations.
 この開示によれば、編集されたソースコードと、削除可能な不使用変数が削除された変数宣言とから実行コードが生成されるため、制御装置において、不使用変数を格納するためのメモリ領域が確保されることを抑制することができる。 According to this disclosure, since the executable code is generated from the edited source code and the variable declaration from which the deletable unused variables are deleted, a memory area for storing the unused variables is required in the control device. It can be suppressed to be secured.
 本開示のさらに他の例によれば、制御対象を制御する制御装置用の制御プログラムの開発を支援するための開発支援方法が提供される。開発支援方法は、ユーザ操作に従って、制御プログラムのソースコードを生成および編集するステップと、ソースコードと、当該ソースコードに含まれる命令要素が参照する変数を定義した変数宣言とを記憶するステップと、ソースコードが編集された場合に、変数宣言から、編集されたソースコードに含まれる命令要素により参照されない不使用変数を抽出するステップと、抽出された不使用変数を、インターフェイスを介してユーザに通知するステップと、インターフェイスを介した不使用変数の削除を指示するユーザ入力に従って不使用変数を変数宣言から削除することにより、変数宣言を更新するステップとを備える。 According to yet another example of the present disclosure, a development support method for supporting development of a control program for a control device that controls a controlled object is provided. The development support method includes steps of generating and editing a source code of a control program according to a user's operation, storing the source code and a variable declaration defining a variable referenced by an instruction element included in the source code, extracting unused variables not referenced by instruction elements included in the edited source code from variable declarations when the source code is edited; and notifying a user of the extracted unused variables via an interface. and updating the variable declaration by removing the unused variables from the variable declaration according to user input through the interface directing the removal of the unused variables.
 本開示のさらに他の例によれば、制御対象を制御する制御装置用の制御プログラムの開発を支援するための開発支援プログラムが提供される。開発支援プログラムは、コンピュータに、ユーザ操作に従って、制御プログラムのソースコードを生成および編集するステップと、ソースコードと、当該ソースコードに含まれる命令要素が参照する変数を定義した変数宣言とを記憶するステップと、ソースコードが編集された場合に、変数宣言から、編集されたソースコードに含まれる命令要素により参照されない不使用変数を抽出するステップと、抽出された不使用変数を、インターフェイスを介してユーザに通知するステップと、インターフェイスを介した不使用変数の削除を指示するユーザ入力に従って不使用変数を変数宣言から削除することにより、変数宣言を更新するステップとを実行させる。 According to yet another example of the present disclosure, a development support program is provided for supporting development of a control program for a control device that controls a controlled object. The development support program stores, in a computer, a step of generating and editing the source code of the control program according to a user operation, the source code, and a variable declaration defining variables referred to by instruction elements included in the source code. extracting unused variables not referenced by instruction elements included in the edited source code from variable declarations when the source code is edited; extracting the extracted unused variables via an interface; Notifying a user and updating the variable declaration by removing the unused variable from the variable declaration in accordance with user input through the interface directing the removal of the unused variable are performed.
 この開示によれば、開発支援方法および開発支援プログラムによって、ユーザ操作に従ってソースコードが編集されるごとに不使用変数が抽出され、抽出された不使用変数が削除されるため、ソースプログラムの編集によって不使用となった変数が変数宣言内に蓄積されることを抑制することができる。さらに本開示によれば、インターフェイスを介してユーザから削除指示された不使用変数のみが変数宣言から削除されるため、ソースコード内では不使用であっても制御対象で使用される変数などの制御対象側に影響を与える変数を除外して、制御プログラム内の削除可能な変数を削除することができる。 According to this disclosure, the development support method and the development support program extract unused variables each time the source code is edited according to a user operation, and delete the extracted unused variables. It is possible to suppress the accumulation of unused variables in variable declarations. Furthermore, according to the present disclosure, only unused variables that are instructed to be deleted by the user via the interface are deleted from the variable declarations, so even if they are unused in the source code, they are not used in the control target. Deletable variables in the control program can be deleted, excluding variables that affect the target side.
 本開示によれば、制御対象を制御する制御装置用の制御プログラム内の削除可能な不要な変数を削除することができる。 According to the present disclosure, it is possible to delete unnecessary variables that can be deleted in the control program for the control device that controls the controlled object.
実施の形態に係る開発支援装置が適用されるFAシステムの構成の一例を示す概略図である。1 is a schematic diagram showing an example of a configuration of an FA system to which a development support device according to an embodiment is applied; FIG. 開発支援装置のハードウェア構成の一例を示す模式図である。1 is a schematic diagram showing an example of a hardware configuration of a development support device; FIG. 開発支援装置の機能構成の一例を示す図である。3 is a diagram illustrating an example of a functional configuration of a development support device; FIG. 開発支援装置における制御プログラムの開発環境の一例を概略的に示す図である。FIG. 2 is a diagram schematically showing an example of a control program development environment in a development support device; 開発支援装置おける制御プログラム開発の概略処理の一例を示すフローチャートである。4 is a flowchart showing an example of schematic processing of control program development in the development support device; 図5に示した判定処理を説明する概念図である。FIG. 6 is a conceptual diagram for explaining the determination processing shown in FIG. 5; 判定処理の第1実施例を示すフローチャートである。4 is a flow chart showing a first example of determination processing; 表示部における変数定義リストの表示例を示す図である。FIG. 10 is a diagram showing a display example of a variable definition list on the display unit; 判定処理の第2実施例を示すフローチャートである。9 is a flow chart showing a second example of determination processing; 判定処理の第3実施例を示すフローチャートである。It is a flow chart which shows the 3rd example of judgment processing. 判定処理の第4実施例を示すフローチャートである。FIG. 11 is a flow chart showing a determination process according to a fourth embodiment; FIG. 第4実施例に適用される変数定義リストの一例を示す図である。It is a figure which shows an example of the variable definition list applied to 4th Example. 判定処理の第5実施例を示すフローチャートである。FIG. 12 is a flow chart showing a fifth example of determination processing; FIG.
 以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品及び構成要素には同一の符号を付してある。それらの名称および機能も同じである。従って、これらについての詳細な説明は原則的には繰り返さない。 Each embodiment according to the present invention will be described below with reference to the drawings. In the following description, the same parts and components are given the same reference numerals. Their names and functions are also the same. Therefore, detailed description of these will not be repeated in principle.
 <A.適用例>
 図1は、本実施の形態に係る開発支援装置が適用されるFA(Factory Automation)システム10の構成の一例を示す概略図である。まず、図1を参照して、FAシステム10のシステム構成について説明する。
<A. Application example>
FIG. 1 is a schematic diagram showing an example of the configuration of an FA (Factory Automation) system 10 to which a development support device according to this embodiment is applied. First, the system configuration of the FA system 10 will be described with reference to FIG.
 FAシステム10は、1つ以上の開発支援装置100と、1つ以上の制御装置(コントローラ)200と、制御装置200によって制御される外部機器300とを備える。 The FA system 10 includes one or more development support devices 100, one or more control devices (controllers) 200, and external devices 300 controlled by the control device 200.
 開発支援装置100は、例えば、ノート型またはデスクトップ型のPC(Personal Computer)、タブレット端末、スマートフォン、または、その他の情報処理装置である。 The development support device 100 is, for example, a notebook or desktop PC (Personal Computer), tablet terminal, smartphone, or other information processing device.
 開発支援装置100には、開発支援プログラム50がインストールされている。開発支援プログラム50は、制御装置200用の制御プログラム210の開発を支援するためのアプリケーションである。開発支援プログラム50は、たとえば、オムロン社製の「Sysmac Studio」である。ユーザは、開発支援プログラム50上で制御装置200用の制御プログラムを設計し、設計した制御プログラム210をコントローラにダウンロードすることができる。あるいは、開発支援装置100は、制御装置200からデータ等をアップロードすることも可能である。 A development support program 50 is installed in the development support device 100 . The development support program 50 is an application for supporting development of the control program 210 for the control device 200 . The development support program 50 is, for example, "Sysmac Studio" manufactured by Omron Corporation. A user can design a control program for the control device 200 on the development support program 50 and download the designed control program 210 to the controller. Alternatively, the development support device 100 can upload data or the like from the control device 200 .
 制御装置200および外部機器300は、開発支援装置100が接続可能なネットワークNW1に接続されている。ネットワークNW1には、Ethernet(登録商標)等が採用される。制御装置200は、例えば、PLCによって構成される。 The control device 200 and the external device 300 are connected to a network NW1 to which the development support device 100 can be connected. Ethernet (registered trademark) or the like is adopted for the network NW1. The control device 200 is configured by a PLC, for example.
 制御装置200および外部機器300は、ネットワークNW2に接続されている。ネットワークNW2には、データの到達時間が保証される、定周期通信を行うフィールドネットワークを採用することが好ましい。このような定周期通信を行うフィールドネットワークとしては、OPC UA(登録商標)等が知られている。 The control device 200 and the external device 300 are connected to the network NW2. For the network NW2, it is preferable to employ a field network that performs fixed-cycle communication, in which data arrival time is guaranteed. OPC UA (registered trademark) and the like are known as a field network that performs such periodic communication.
 外部機器300は、生産工程を自動化するための種々の産業用機器、各種センサ類、及び、HMI(Human Machine Interface)機器等によって構成される。外部機器300は、ネットワークNW1またはNMW2に接続されるデバイス300A~300Cと、機器301A~301Cとを含む。機器301A~301Cは、デバイス300A~300CによってネットワークNW1,NW2を介して制御装置200と通信接続される。これにより、制御装置200で実行される制御プログラムによって、機器301A~301Cを制御することができる。すなわち、外部機器300は、制御プログラムによって制御される「制御対象」に対応する。 The external device 300 is composed of various industrial devices for automating production processes, various sensors, HMI (Human Machine Interface) devices, and the like. External device 300 includes devices 300A-300C connected to network NW1 or NMW2, and devices 301A-301C. Devices 301A-301C are connected for communication with control device 200 via networks NW1 and NW2 by devices 300A-300C. Accordingly, the devices 301A to 301C can be controlled by the control program executed by the control device 200. FIG. That is, the external device 300 corresponds to the "controlled object" controlled by the control program.
 図1の例では、機器301Aと接続されるデバイス300Aは、OPCUAが適用されたネットワークNW2と接続されるものとする。また、機器301Bと接続されるデバイス300B、および、機器301Cと接続されるデバイス300Cは、EtherNETが適用されたネットワークNW1と接続されるものとする。 In the example of FIG. 1, the device 300A connected to the equipment 301A is connected to the network NW2 to which OPCUA is applied. A device 300B connected to the equipment 301B and a device 300C connected to the equipment 301C are assumed to be connected to the network NW1 to which EtherNET is applied.
 <B.開発支援装置のハードウェア構成>
 図2を参照して、開発支援装置100のハードウェア構成について説明する。図2は、開発支援装置100のハードウェア構成の一例を示す模式図である。
<B. Hardware Configuration of Development Support Device>
A hardware configuration of the development support device 100 will be described with reference to FIG. FIG. 2 is a schematic diagram showing an example of the hardware configuration of the development support device 100. As shown in FIG.
 開発支援装置100は、一例として、汎用的なコンピュータアーキテクチャに準じて構成されるコンピュータからなる。開発支援装置100は、CPU(Central Processing Unit)やMPU(Micro-Processing Unit)などのプロセッサ102と、主メモリ104と、通信インターフェイス111と、I/O(Input/Output)インターフェイス114と、表示インターフェイス117と、不揮発性の記憶装置120とを含む。これらのコンポーネントは、内部バス125を介して互いに通信可能に接続されている。 The development support device 100 is, for example, a computer configured according to a general-purpose computer architecture. The development support device 100 includes a processor 102 such as a CPU (Central Processing Unit) or MPU (Micro-Processing Unit), a main memory 104, a communication interface 111, an I/O (Input/Output) interface 114, and a display interface. 117 and non-volatile storage 120 . These components are communicatively connected to each other via an internal bus 125 .
 プロセッサ102は、記憶装置120に格納されている開発支援プログラム50を主メモリ104に展開して実行することで、制御プログラム210(図1参照)の開発ツールを起動する。記憶装置120は、開発支援プログラム50の他にも、各種のデータおよびプログラム60を格納する。制御プログラム210のソースプログラムは、主メモリ104または記憶装置120に記憶される。 The processor 102 expands the development support program 50 stored in the storage device 120 into the main memory 104 and executes it, thereby activating the development tool for the control program 210 (see FIG. 1). The storage device 120 stores various data and programs 60 in addition to the development support program 50 . A source program for control program 210 is stored in main memory 104 or storage device 120 .
 通信インターフェイス111は、他の通信機器との間でネットワークを介してデータを遣り取りする。当該他の通信機器は、例えば、図1に示された制御装置200および外部機器300、および、図示しないサーバ等を含む。開発支援装置100は、通信インターフェイス111を介して、当該他の通信機器から、開発支援プログラム50などの各種プログラムをダウンロード可能なように構成されてもよい。 The communication interface 111 exchanges data with other communication devices via a network. The other communication device includes, for example, the control device 200 and the external device 300 shown in FIG. 1, and a server (not shown). The development support apparatus 100 may be configured such that various programs such as the development support program 50 can be downloaded from the other communication device via the communication interface 111 .
 I/Oインターフェイス114は、操作部115に接続され、操作部115からのユーザ操作を示す信号を取り込む。操作部115は、典型的には、キーボード、マウス、タッチパネル、タッチパッドなどからなり、ユーザからの操作を受け付ける。操作部115は、開発支援装置100と一体的に構成されてもよいし、開発支援装置100とは別に構成されてもよい。 The I/O interface 114 is connected to the operation unit 115 and receives signals indicating user operations from the operation unit 115 . The operation unit 115 typically includes a keyboard, mouse, touch panel, touch pad, etc., and receives operations from the user. Operation unit 115 may be configured integrally with development support apparatus 100 or may be configured separately from development support apparatus 100 .
 表示インターフェイス117は、表示部118と接続され、プロセッサ102などからの指令に従って、表示部118に対して、画像を表示するための画像信号を送出する。表示部118は、LCD(Liquid Crystal Display)や有機EL(Electro Luminescence)ディスプレイ等によって構成され、ユーザに対して各種情報を提示する。表示部118は、開発支援装置100と一体的に構成されてもよいし、開発支援装置100とは別に構成されてもよい。 The display interface 117 is connected to the display unit 118, and transmits an image signal for displaying an image to the display unit 118 according to commands from the processor 102 or the like. The display unit 118 is configured by an LCD (Liquid Crystal Display), an organic EL (Electro Luminescence) display, or the like, and presents various types of information to the user. The display unit 118 may be configured integrally with the development support device 100 or may be configured separately from the development support device 100 .
 なお、図2には、CPU等のプロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。また、上述の説明においては、開発支援装置100がすべての処理を実行する形態について例示したが、これに限らず、複数の装置が連携して上述したような機能を提供するようにしてもよい。さらに、一部または全部の機能をサーバ上のいわゆるクラウドと称される計算リソースを利用して実現してもよい。 Note that FIG. 2 shows a configuration example in which necessary functions are provided by the processor 102 such as a CPU executing a program. It may be implemented using a circuit (for example, ASIC (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array), etc.). In this case, virtualization technology may be used to execute a plurality of OSs with different purposes in parallel, and necessary applications may be executed on each OS. In the above description, the development support apparatus 100 performs all the processes, but the present invention is not limited to this, and a plurality of apparatuses may work together to provide the functions described above. . Furthermore, some or all of the functions may be implemented using computational resources called so-called cloud on a server.
 <C.開発支援装置の機能構成>
 次に、図3を参照して、開発支援装置100の機能構成について説明する。図3は、開発支援装置100の機能構成の一例を示す図である。
<C. Functional Configuration of Development Support Device>
Next, the functional configuration of the development support device 100 will be described with reference to FIG. FIG. 3 is a diagram showing an example of the functional configuration of the development support device 100. As shown in FIG.
 開発支援装置100には、OS240、プログラミングアプリケーション250およびネットワーク設定アプリケーション280が実装される。開発支援装置100では、OS240が実行され、プログラミングアプリケーション250およびネットワーク設定アプリケーション280を実行可能な環境が提供される。本実施の形態に係る開発支援装置100を実現するための開発支援プログラムは、少なくともプログラミングアプリケーション250を含む。 An OS 240 , a programming application 250 and a network setting application 280 are installed in the development support device 100 . The development support device 100 executes an OS 240 and provides an environment in which a programming application 250 and a network setting application 280 can be executed. A development support program for realizing development support apparatus 100 according to the present embodiment includes at least programming application 250 .
 プログラミングアプリケーション250は、エディタ252と、ビルダ254と、デバッガ256と、GUI(Graphical User Interface)モジュール258と、シミュレータ260と、データ格納部270とを含む。プログラミングアプリケーション250に含まれるそれぞれのモジュールは、典型的には、CD-ROMに格納された状態で流通して、開発支援装置100にインストールされる。データ格納部270は、記憶装置120を含んで構成される。 The programming application 250 includes an editor 252 , a builder 254 , a debugger 256 , a GUI (Graphical User Interface) module 258 , a simulator 260 and a data storage section 270 . Each module included in programming application 250 is typically distributed in a state stored in a CD-ROM and installed in development support device 100 . The data storage unit 270 is configured including the storage device 120 .
 エディタ252は、予め定められたプログラミング言語の仕様に従いソースプログラムを生成するための入力および編集といった機能を提供する。ソースプログラムは、ソースコードと、ソースコードに含まれる命令要素が参照する変数を定義した変数宣言とを含む。 The editor 252 provides input and editing functions for generating a source program according to a predetermined programming language specification. A source program includes source code and variable declarations that define variables referenced by instruction elements included in the source code.
 ソースプログラムは、典型的には、IEC61131-3に規定された、LD(ラダーダイアグラム:Ladder Diagram)、IL(インストラクションリスト:Instruction List)、ST(ストラクチャードテキスト:Structured Text)、FBD(ファンクションブロックダイアグラム:Function Block Diagram)、SFC(シーケンシャルファンクションチャート:Sequential Function Chart)等の任意の言語にて記述することができる。 The source program is typically LD (Ladder Diagram), IL (Instruction List), ST (Structured Text), FBD (Function Block Diagram), which are defined in IEC61131-3. Function Block Diagram), SFC (Sequential Function Chart), etc. can be described in any language.
 ソースプログラムは、いずれの言語でも「変数」を用いて記述される。「変数」とは、制御プログラム210において扱われるデータに与えられた識別子である。典型的には、「変数」は、制御装置200や制御装置200の制御対象の状態を表すデータである。言い換えると、「変数」とは、制御装置200や制御対象の状態に連動して値が変化するデータのことをいう。「変数」の概念は、1つの値を表すデータ、配列として表されるデータ、構造体として表されるデータ、制御プログラム210に規定されうる種々のデータを含み得る。 Source programs are written using "variables" in any language. A “variable” is an identifier given to data handled in the control program 210 . Typically, the “variable” is data representing the state of the control device 200 or the controlled object of the control device 200 . In other words, "variable" refers to data whose value changes in conjunction with the state of the control device 200 or the controlled object. The concept of “variable” can include data representing one value, data represented as an array, data represented as a structure, and various data that can be defined in the control program 210 .
 エディタ252は、ユーザによる操作部115の操作内容を受け付けて、受け付けた操作内容に従ってソースプログラムを生成する機能と、生成したソースプログラムを保存する機能とを提供する。また、エディタ252は、ユーザ操作に従って、ソースプログラムを編集する機能を提供する。エディタ252によるソースプログラムの生成または編集時、エディタ252は、GUIモジュール258を介して編集作業を支援するための情報を表示部118に表示させる。 The editor 252 provides a function of receiving the operation content of the operation unit 115 by the user, generating a source program according to the received operation content, and a function of saving the generated source program. Also, the editor 252 provides a function of editing the source program according to user's operation. When the editor 252 generates or edits the source program, the editor 252 causes the display unit 118 to display information for supporting the editing work via the GUI module 258 .
 ビルダ254は、予め定められたプログラミング言語の仕様に従いソースプログラムをビルドして、制御装置200で実行可能な形式の実行コード(制御プログラム210)を生成する機能を提供する。 The builder 254 provides a function of building a source program according to a predetermined programming language specification and generating execution code (control program 210) in a format executable by the control device 200.
 デバッガ256は、ソースプログラムに対してデバッグを行うための機能を提供する。このデバッグの内容としては、ソースコードのうちユーザが指摘した範囲を部分的に実行する、ソースコードの実行中における変数値の時間的な変化を追跡する、といった動作を含む。デバッガ256は、デバッグを支援するための情報をGUIモジュール258を介して表示部118に表示させる。 The debugger 256 provides a function for debugging the source program. Contents of this debugging include operations such as partially executing a range pointed out by the user in the source code and tracing temporal changes in variable values during execution of the source code. Debugger 256 causes display unit 118 to display information for assisting debugging via GUI module 258 .
 シミュレータ260は、開発支援装置100内に、制御装置200(PLC)でのプログラムの実行をシミュレーションする環境を構築する。 The simulator 260 builds an environment in the development support device 100 for simulating program execution in the control device 200 (PLC).
 データ格納部270は、プログラミングアプリケーション250の各部により利用(読み書き)される各種情報を格納する。データ格納部270に格納される内容については後述する。 The data storage unit 270 stores various information used (read/write) by each unit of the programming application 250 . The contents stored in the data storage unit 270 will be described later.
 ネットワーク設定アプリケーション280は、コンフィグレータ257と、データ格納部299とを含む。ネットワーク設定アプリケーション280に含まれるモジュールは、典型的には、CD-ROMに格納された状態で流通して、開発支援装置100にインストールされる。 The network setting application 280 includes a configurator 257 and a data storage unit 299. Modules included in the network setting application 280 are typically distributed in a state stored in a CD-ROM and installed in the development support device 100 .
 コンフィグレータ257は、FAシステム10のネットワーク構成を示すネットワーク情報293を取得し、取得したネットワーク情報293をデータ格納部299に格納する。ネットワーク情報293は、ネットワークに接続される各制御装置200(PLC)から受信する(ダウンロードされる)コンフィグ情報を含む。なお、ネットワーク情報293が有するコンフィグ情報は、実機の制御装置200から受信する情報、または実機の情報ではない論理的(仮想的)な情報を含む。論理的な情報は、ユーザが操作部115を操作することによりエディタ252を介して入力する情報を含み得る。 The configurator 257 acquires network information 293 indicating the network configuration of the FA system 10 and stores the acquired network information 293 in the data storage unit 299 . The network information 293 includes configuration information received (downloaded) from each control device 200 (PLC) connected to the network. The configuration information included in the network information 293 includes information received from the actual control device 200 or logical (virtual) information that is not actual information. Logical information can include information that the user inputs via editor 252 by operating operation unit 115 .
 <D.制御プログラムの開発環境>
 次に、図4を参照して、開発支援装置100における制御プログラムの開発環境を説明する。図4は、開発支援装置100における制御プログラムの開発環境の一例を概略的に示す図である。
<D. Control program development environment>
Next, a control program development environment in the development support device 100 will be described with reference to FIG. FIG. 4 is a diagram schematically showing an example of a control program development environment in the development support device 100. As shown in FIG.
 図4では、説明のために、プログラミングアプリケーション250のうち、エディタ252およびビルダ254が示されて他の部分の図示は省略されている。また、図4では、エディタ252およびビルダ254に関連づけて、データ格納部270、GUIモジュール258および転送モジュール212が示される。 For the sake of explanation, FIG. 4 shows the editor 252 and the builder 254 of the programming application 250 and omits the illustration of other parts. Also shown in FIG. 4 are data store 270 , GUI module 258 and transfer module 212 in association with editor 252 and builder 254 .
 図4では、データ格納部270のデータのうち、エディタ252およびビルダ254と関連する、ソースコード271、変数定義リスト272および実行コード273が示されている。 4 shows source code 271, variable definition list 272 and execution code 273 related to editor 252 and builder 254 among the data in data storage unit 270. FIG.
 エディタ252は、変数宣言生成部253と、ソースコード生成部255とを有する。変数宣言生成部253は、操作部115を介して受け付けるユーザ操作に従って変数定義リスト272を生成する。ソースコード生成部255は、ユーザ操作に従って記述されるソースプログラムを編集することにより、ソースプログラムを予め定められたプログラム言語のソースコード271に変換する。 The editor 252 has a variable declaration generator 253 and a source code generator 255 . Variable declaration generation unit 253 generates variable definition list 272 according to a user operation received via operation unit 115 . The source code generator 255 converts the source program into source code 271 in a predetermined program language by editing the source program described according to user operations.
 ソースコード271は、制御装置200で実行される処理を、変数を用いて記述した命令部を含む。命令部は、変数を用いて記述された命令要素を含む。「命令要素」とは、ソースコード271の命令部を記述する要素を総称するものであり、例えば、演算子、ファンクションブロック、ファンクション、オペランドを含む。ソースコード271は、複数の命令要素を互いに繋いだ回路態様で表示可能なプログラミング言語で記述することができる。以下では、典型例としてLDで記述されたソースコードを対象とする。 The source code 271 includes an instruction section in which the processing executed by the control device 200 is described using variables. The command part includes command elements described using variables. "Instruction element" is a general term for elements describing the instruction part of the source code 271, and includes, for example, operators, function blocks, functions, and operands. The source code 271 can be written in a programming language that can be displayed in a circuit form in which a plurality of instruction elements are interconnected. In the following, the source code written in LD is targeted as a typical example.
 変数定義リスト272は、ソースコード271に含まれる命令要素が参照する変数を定義した変数宣言である。変数定義リスト272は、変数ごとに、少なくとも、変数名と、当該変数のデータ型とを宣言することで作成される。 The variable definition list 272 is a variable declaration that defines variables referenced by instruction elements included in the source code 271 . The variable definition list 272 is created by declaring at least the variable name and the data type of the variable for each variable.
 エディタ252は、生成されたソースコード271および変数定義リスト272をデータ格納部270に格納する。データ格納部270は「記憶部」の一実施例に対応する。 The editor 252 stores the generated source code 271 and variable definition list 272 in the data storage unit 270. The data storage unit 270 corresponds to one embodiment of the "storage unit".
 なお、図4では、ソースコード271と変数定義リスト272とを別々に表記しているが、ソースプログラムにおいて、ソースコード271および変数定義リスト272が一体化されたファイルとすることも可能である。また、ソースプログラムが複数のソースコードを有する場合には、ソースコードごとに変数定義リスト272が作成されてもよいし、複数のソースコードを一纏めにして変数定義リスト272が作成されてもよい。 Although the source code 271 and the variable definition list 272 are shown separately in FIG. 4, it is also possible to integrate the source code 271 and the variable definition list 272 into a file in the source program. Also, when the source program has multiple source codes, the variable definition list 272 may be created for each source code, or the variable definition list 272 may be created by grouping the multiple source codes.
 エディタ252は、抽出部262と、削除部264とをさらに有する。抽出部262は、変数定義リスト272から、ソースコード271に含まれる命令要素により参照されていない変数(以下、「不使用変数」とも称する)を抽出する機能を提供する。削除部264は、抽出部262により抽出された不使用変数を変数定義リスト272から削除することにより、変数定義リスト272を更新する機能を提供する。抽出部262および削除部264については後述する。 The editor 252 further has an extractor 262 and a deleter 264 . The extraction unit 262 provides a function of extracting variables not referenced by instruction elements included in the source code 271 (hereinafter also referred to as “unused variables”) from the variable definition list 272 . The deletion unit 264 provides a function of updating the variable definition list 272 by deleting the unused variables extracted by the extraction unit 262 from the variable definition list 272 . The extraction unit 262 and deletion unit 264 will be described later.
 ビルダ254は、予め定められたプログラム言語用のコンパイラおよびリンカーを含む。コンパイラは、ソースコード271を複数のファイルに分割し、ファイル単位でコンパイルすることにより、複数のオブジェクトファイルを作成する。リンカーは、作成された複数のオブジェクトファイルを結合することにより、実行コード273を生成する。実行コード273は、制御装置200のプロセッサにより実行可能なコードからなり、データ格納部270に格納されるソースコード271および変数定義リスト272を用いて生成される。 Builder 254 includes a compiler and linker for a predetermined programming language. The compiler divides the source code 271 into a plurality of files and compiles each file to create a plurality of object files. The linker generates executable code 273 by combining the created object files. The execution code 273 consists of code executable by the processor of the control device 200 and is generated using the source code 271 and the variable definition list 272 stored in the data storage unit 270 .
 転送モジュール212は、実行コード273を制御装置200(PLC)に転送(ダウンロードまたはアップロード)するように、通信インターフェイス111を制御する。 The transfer module 212 controls the communication interface 111 to transfer (download or upload) the execution code 273 to the control device 200 (PLC).
 GUIモジュール258は、エディタ252とユーザとの対話を実現するように、表示インターフェイス117およびI/Oインターフェイス114を制御する。GUIモジュール258は、ユーザと対話するための「インターフェイス」の一実施例に対応する。 The GUI module 258 controls the display interface 117 and the I/O interface 114 to realize interaction between the editor 252 and the user. GUI module 258 corresponds to one embodiment of an "interface" for interacting with a user.
 開発支援装置100は、実行コード273を転送モジュール212により制御装置200(PLC)に転送する。制御装置200では、制御プログラム210用に、変数定義リスト272で宣言された変数を格納するためのメモリ領域が確保される。このとき、各変数について、そのデータ型に従った容量を有するメモリ領域が確保される。 The development support device 100 transfers the execution code 273 to the control device 200 (PLC) using the transfer module 212 . The control device 200 reserves a memory area for storing the variables declared in the variable definition list 272 for the control program 210 . At this time, a memory area having a capacity according to the data type is secured for each variable.
 外部機器300(デバイス300A~300C)は、ネットワークNW1またはNW2によるデータ通信により、メモリ領域の変数にアクセス可能である。制御装置200内部のプロセッサによって実行コード273が実行されることにより、複数の制御装置200間でのデータの遣り取り、および、制御対象である外部機器300の制御が実施される。 The external equipment 300 (devices 300A to 300C) can access variables in the memory area through data communication via the network NW1 or NW2. The execution code 273 is executed by the processor inside the control device 200 to exchange data among the plurality of control devices 200 and to control the external device 300 to be controlled.
 <E.制御プログラム開発の処理>
 図5は、開発支援装置100における制御プログラム開発の概略処理の一例を示すフローチャートである。
<E. Processing of control program development>
FIG. 5 is a flow chart showing an example of a schematic process of control program development in the development support device 100 .
 図5を参照して、開発支援装置100では、ソースプログラムを生成また編集する場合に、まず、エディタ252が起動される。エディタ252は、ソースプログラムのエディット処理を実行する(ステップS1)。具体的には、エディタ252は、操作部115を介して受け付けるユーザ操作に従ってソースプログラムを編集して表示部118に表示するとともに、ソースコード271および変数定義リスト272を生成する。 Referring to FIG. 5, in development support device 100, editor 252 is first activated when generating or editing a source program. The editor 252 executes source program editing processing (step S1). Specifically, editor 252 edits the source program according to a user operation received via operation unit 115 and displays it on display unit 118 , and also generates source code 271 and variable definition list 272 .
 エディット処理が実行されると、エディタ252は、判定処理を実行する(ステップS2)。判定処理(S2)では、エディタ252は、編集されたソースコード271に含まれる命令要素が参照する変数と、変数定義リスト272との整合性を判定する。 When the editing process is executed, the editor 252 executes determination process (step S2). In the determination process ( S<b>2 ), the editor 252 determines consistency between variables referenced by instruction elements included in the edited source code 271 and the variable definition list 272 .
 <F.判定処理>
 次に、図5に示した判定処理(S2)について説明する。図6は、図5に示した判定処理(S2)を説明する概念図である。
<F. Judgment processing>
Next, the determination processing (S2) shown in FIG. 5 will be described. FIG. 6 is a conceptual diagram explaining the determination process (S2) shown in FIG.
 図6(A)には、制御プログラムの一例であるラダープログラムによって記述されるラダー回路の一例と、変数定義リスト272の一例とが示される。 FIG. 6A shows an example of a ladder circuit described by a ladder program, which is an example of a control program, and an example of a variable definition list 272. FIG.
 ラダープログラムは、入力側母線421と出力側母線422との間に回路要素と接続線とを用いた論理回路を梯子状に描いたラダー回路420により表現される。回路要素は「命令要素」の一実施例に対応する。 A ladder program is represented by a ladder circuit 420 in which a logic circuit using circuit elements and connecting lines between an input-side bus 421 and an output-side bus 422 is drawn like a ladder. A circuit element corresponds to an example of an "instruction element."
 図6(A)の例では、ラダー回路420は、変数aの値に応じてオン/オフされる接点425と、変数cの値に応じてオン/オフされる接点426と、オン/オフ結果を変数bとして出力するコイル427とを含む。ラダー回路420は、接点425,426およびコイル427といった回路要素を互いに接続線423で繋ぐことで記述される。例えば、変数bは他のラダー回路(図示せず)の接点を開閉する変数としてさらに用いられる。あるいは、変数aおよび変数cは、他のラダー回路(図示せず)のコイルの出力値である。このようなラダー回路の階層的な組合せによって、制御装置200が外部機器300を制御するための処理を記述することができる。 In the example of FIG. 6A, the ladder circuit 420 includes a contact 425 that is turned on/off according to the value of the variable a, a contact 426 that is turned on/off according to the value of the variable c, and an on/off result. as variable b. Ladder circuit 420 is described by connecting circuit elements such as contacts 425 and 426 and coil 427 to each other with connection lines 423 . For example, the variable b is further used as a variable for opening and closing contacts of another ladder circuit (not shown). Alternatively, variables a and c are output values of coils of another ladder circuit (not shown). Such a hierarchical combination of ladder circuits can describe processing for the control device 200 to control the external device 300 .
 変数定義リスト272は、変数ごとに、少なくとも、変数名と、当該変数のデータ型とを宣言することで生成される。データ型は、予め定義された、「BOOL」、「REAL」および「INT」等のうちから選択的に設定される。後述するビルド処理(S3)にてビルダ254(図4)によってソースプログラムがビルドされると、変数定義リスト272で宣言された変数の各々について、選択されたデータ型に従った容量を有するメモリ領域が確保される。 The variable definition list 272 is generated by declaring at least the variable name and the data type of the variable for each variable. The data type is selectively set from predefined ones such as "BOOL", "REAL" and "INT". When the source program is built by the builder 254 (FIG. 4) in the build process (S3) to be described later, each variable declared in the variable definition list 272 is stored in a memory area having a capacity according to the selected data type. is ensured.
 ここで、エディタ(図4)により、図6(A)に示すラダー回路420が編集されたケースを想定する。図6(B)は、ユーザ操作に従って、ラダー回路420から接点426が削除されたケースを例示している。このケースでは、接点426が削除されたことにより、接点426に入力される変数cは、ラダー回路420に含まれる回路要素のいずれからも参照されない「不使用変数」となる。なお、図示は省略するが、接点426に入力される変数cが別の変数に変更されたケースにおいても、変数cは不使用変数となる。 Here, it is assumed that the ladder circuit 420 shown in FIG. 6(A) is edited by the editor (FIG. 4). FIG. 6B illustrates a case in which the contacts 426 are deleted from the ladder circuit 420 according to user's operation. In this case, the variable c input to the contact 426 becomes an “unused variable” that is not referenced by any of the circuit elements included in the ladder circuit 420 due to the deletion of the contact 426 . Although illustration is omitted, even in the case where the variable c input to the contact 426 is changed to another variable, the variable c becomes an unused variable.
 一方、図6(A)に示す変数定義リスト272では、変数a,bとともに変数cも宣言されている。そのため、図6(B)のラダー回路420と図6(A)の変数定義リスト272とから構成されるソースプログラムをビルドすると、制御装置200のメモリ領域には、変数c(不使用変数)を格納するための領域が確保されることになる。したがって、図6(C)に示すように、変数定義リスト272から、変数c(不使用変数)を削除することによって、制御装置200のメモリ領域を解放することができる。 On the other hand, in the variable definition list 272 shown in FIG. 6(A), the variable c is also declared along with the variables a and b. Therefore, when building a source program composed of the ladder circuit 420 of FIG. 6B and the variable definition list 272 of FIG. An area for storing is secured. Therefore, by deleting the variable c (unused variable) from the variable definition list 272 as shown in FIG. 6C, the memory area of the control device 200 can be released.
 そこで、判定処理(S2)では、編集されたソースコード271(図6(B))に含まれる回路要素が参照する変数と、変数定義リスト272で宣言されている変数とを比較し、両者の整合性を判定する。そして、両者の整合性が無いと判定された場合には、変数定義リスト272から、ソースコード271で使用されていない不使用変数を抽出し、抽出した不使用変数を変数定義リスト272から削除する。 Therefore, in the determination process (S2), the variables referenced by the circuit elements included in the edited source code 271 (FIG. 6B) are compared with the variables declared in the variable definition list 272, and Determine consistency. If it is determined that the two are inconsistent, an unused variable that is not used in the source code 271 is extracted from the variable definition list 272, and the extracted unused variable is deleted from the variable definition list 272. .
 なお、判定処理(S2)は、エディット処理(S1)によってソースコード271が編集された場合に実行される。したがって、ユーザ操作に従ってソースコード271が編集されるごとに、編集されたソースコード271と変数定義リスト272との整合性が判定され、不使用変数が抽出される。そして、抽出された不使用変数は、変数定義リスト272から削除される。このようにエディット処理(S1)の実行に応じて判定処理(S2)を実行する構成としたことにより、ソースプログラムの編集によって不使用となった変数が変数定義リスト272内に蓄積されることを抑制することができる。 Note that the determination process (S2) is executed when the source code 271 is edited by the edit process (S1). Therefore, every time the source code 271 is edited according to a user operation, consistency between the edited source code 271 and the variable definition list 272 is determined, and unused variables are extracted. Then, the extracted unused variables are deleted from the variable definition list 272 . By executing the determination process (S2) in accordance with the execution of the edit process (S1) in this way, it is possible to prevent the unused variables from being accumulated in the variable definition list 272 due to the editing of the source program. can be suppressed.
 図5に戻って、ソースコード271をビルドする場合、開発支援装置100は、ビルダ254を起動する。ビルダ254は、ソースコード271をビルドし、実行コード273を生成する(ステップS3)。 Returning to FIG. 5 , when building the source code 271 , the development support device 100 activates the builder 254 . Builder 254 builds source code 271 and generates execution code 273 (step S3).
 実行コード273を制御装置200に転送する場合、転送モジュール212は、実行コード273を制御装置200に転送するように通信インターフェイス111を制御する(ステップS4)。 When transferring the execution code 273 to the control device 200, the transfer module 212 controls the communication interface 111 so as to transfer the execution code 273 to the control device 200 (step S4).
 <G.判定処理の実施例>
 次に、判定処理(図5のS2)の処理手順について、複数の実施例を挙げて説明する。以下では、複数の実施例をそれぞれ独立した実施例として説明するが、これに限定されず、複数の実施例のうちの少なくとも2つの実施例を組み合わせることも可能である。
<G. Example of determination processing>
Next, the processing procedure of the determination processing (S2 in FIG. 5) will be described with a plurality of examples. A plurality of embodiments will be described below as independent embodiments, but the present invention is not limited to this, and at least two of the plurality of embodiments can be combined.
 <g1.判定処理の第1実施例>
 図7は、判定処理の第1実施例を示すフローチャートである。
<g1. First Example of Determination Processing>
FIG. 7 is a flow chart showing a first example of determination processing.
 図7を参照して、抽出部262は、ステップS21により、ソースコード271が編集されたか否かを判定する。ソースコード271が編集されていない場合(S21のNO判定時)、抽出部262は、判定処理を終了して図5の処理に戻る。 With reference to FIG. 7, the extraction unit 262 determines whether the source code 271 has been edited in step S21. If the source code 271 has not been edited (NO determination in S21), the extraction unit 262 terminates the determination process and returns to the process of FIG.
 一方、ソースコード271が編集された場合(S21のYES判定時)には、抽出部262は、編集されたソースコード271に含まれる命令要素が参照する変数と、変数定義リスト272との整合性を判定する。 On the other hand, if the source code 271 has been edited (YES determination in S21), the extraction unit 262 checks the consistency between variables referenced by instruction elements included in the edited source code 271 and the variable definition list 272. judge.
 具体的には、抽出部262は、最初に、ステップS22により、編集されたソースコード271から、当該ソースコード271に含まれる命令要素が参照する変数を抽出する。次に、抽出部262は、ステップS23により、ソースコード271から抽出した変数と変数定義リスト272とを比較する。このとき、抽出部262は、抽出した変数と、変数定義リスト272で宣言されている変数とに整合性が有るか否かを判定する。 Specifically, the extraction unit 262 first extracts variables referenced by instruction elements included in the source code 271 from the edited source code 271 in step S22. Next, the extraction unit 262 compares the variables extracted from the source code 271 with the variable definition list 272 in step S23. At this time, the extraction unit 262 determines whether or not the extracted variables are consistent with the variables declared in the variable definition list 272 .
 抽出した変数と変数定義リスト272とに整合性が無いと判定された場合、抽出部262は、ステップS24に進み、変数定義リスト272で宣言されている変数のなかに、編集されたソースコード271に含まれる命令要素により参照されていない変数(不使用変数)が有るか否かを判定する。 If it is determined that there is no consistency between the extracted variables and the variable definition list 272, the extraction unit 262 advances to step S24 and inserts the edited source code 271 into the variables declared in the variable definition list 272. It is determined whether or not there is a variable (unused variable) that is not referenced by an instruction element included in .
 一方、不使用変数が無いと判定された場合(S24のNO判定時)、抽出部262は、判定処理(S2)を終了して図5の処理に戻る。例えば、エディット処理(図5のS1)によってソースコード271に命令要素が追加された場合であって、当該命令要素が変数定義リスト272に宣言されていない変数を参照するときには、ソースコード271から抽出された変数と変数定義リスト272との整合性が無いものの、不使用変数が無いため、S24ではNO判定とされる。 On the other hand, if it is determined that there is no unused variable (NO in S24), the extraction unit 262 terminates the determination process (S2) and returns to the process of FIG. For example, when an instruction element is added to the source code 271 by the editing process (S1 in FIG. 5), and the instruction element refers to a variable not declared in the variable definition list 272, extract from the source code 271. Although there is no consistency between the selected variables and the variable definition list 272, since there is no unused variable, a NO determination is made in S24.
 ステップS24にて不使用変数有りと判定された場合(S24のYES判定時)、抽出部262は、GUIモジュール258を介してユーザに不使用変数を通知する。削除部264は、GUIモジュール258を介したユーザ入力に従って不使用変数を削除する。 If it is determined that there are unused variables in step S24 (YES in S24), the extraction unit 262 notifies the user of the unused variables via the GUI module 258. The deletion unit 264 deletes unused variables according to user input via the GUI module 258 .
 具体的には、GUIモジュール258は、表示部118を介して変数定義リスト272をユーザに提示する。図8は、表示部118における変数定義リスト272の表示例を示す図である。図8の例では、変数定義リスト272は、変数ごとに少なくとも変数名およびデータ型を表したテーブル形式で表示されている。なお、変数定義リスト272は他の形式で表示されてもよい。 Specifically, the GUI module 258 presents the variable definition list 272 to the user via the display unit 118 . FIG. 8 is a diagram showing a display example of the variable definition list 272 on the display unit 118. As shown in FIG. In the example of FIG. 8, the variable definition list 272 is displayed in a table format showing at least the variable name and data type for each variable. Note that the variable definition list 272 may be displayed in other formats.
 GUIモジュール258は、ステップS25により、表示部118を用いて、不使用変数がある旨をユーザに通知するとともに、不使用変数を削除してもよいかの確認をユーザに求める。図6に示したケースでは、GUIモジュール258は、例えば、「不使用変数cを削除します。よろしいですか?」というメッセージ500を表示部118に表示する。メッセージ500には、「YES」または「NO」をクリックするための文字および図形502,504を表示させることができる。 In step S25, the GUI module 258 uses the display unit 118 to notify the user that there are unused variables, and asks the user to confirm whether or not the unused variables can be deleted. In the case shown in FIG. 6, GUI module 258 displays message 500 on display 118, for example, "Delete unused variable c. Are you sure?" Message 500 may display text and graphics 502, 504 for clicking "YES" or "NO".
 GUIモジュール258は、メッセージ500に対して「YES」がクリックされることで、ユーザの削除指示が入力されると(S26のYES判定時)、削除部264に対して削除指示を生成する。 The GUI module 258 generates a deletion instruction to the deletion unit 264 when the user's deletion instruction is input by clicking "YES" in response to the message 500 (when YES is determined in S26).
 削除部264は、削除指示が入力されると、ステップS27により、変数定義リスト272に含まれる変数から、不使用変数を削除する。これにより、変数定義リスト272は、不使用変数が削除された内容に更新される。 When the deletion instruction is input, the deletion unit 264 deletes unused variables from the variables included in the variable definition list 272 in step S27. As a result, the variable definition list 272 is updated with the content from which unused variables are deleted.
 一方で、メッセージ500に対して「NO」がクリックされた場合には、ステップS26がNO判定とされるため、ステップS27がスキップされて、判定処理が終了される。この場合には、不使用変数は削除されず、変数定義リスト272は、判定処理の起動前の内容に維持される。 On the other hand, if "NO" is clicked on the message 500, step S26 is determined as NO, so step S27 is skipped and the determination process ends. In this case, the unused variables are not deleted, and the variable definition list 272 is maintained with the contents before starting the determination process.
 なお、ステップS27により不使用変数が削除された場合には、GUIモジュール258は、更新後の変数定義リスト272を反映するためのソースプログラムの再ビルドを促すメッセージをさらに出力してもよい。 Note that when the unused variables are deleted in step S27, the GUI module 258 may further output a message prompting rebuilding of the source program to reflect the updated variable definition list 272.
 以上説明したように、第1実施例に係る判定処理は、ユーザインターフェイスを介して不使用変数をユーザに通知し、ユーザからの削除指示に従って不使用変数を削除するように構成される。これによると、ユーザの意に反して変数が削除されることを防止できる。 As described above, the determination process according to the first embodiment is configured to notify the user of unused variables via the user interface and delete the unused variables in accordance with deletion instructions from the user. According to this, it is possible to prevent the variable from being deleted against the user's will.
 詳細には、変数定義リスト272に含まれる変数には、ソースコード271内では不使用であっても、ネットワークNW1,NW2を介して外部機器300からアクセスされる変数が存在する場合がある。当該変数が、ソースプログラム271内での不使用変数として変数定義リスト272から削除されると、外部機器300側に影響を与える虞がある。第1実施例に係る判定処理によれば、ユーザから削除指示された不使用変数のみが変数定義リスト272から削除されるため、上述のような変数が削除されることを防ぐことができる。 Specifically, variables included in the variable definition list 272 may include variables that are not used in the source code 271 but accessed from the external device 300 via the networks NW1 and NW2. If the variable is deleted from the variable definition list 272 as an unused variable in the source program 271, it may affect the external device 300 side. According to the determination process according to the first embodiment, only the unused variables instructed to be deleted by the user are deleted from the variable definition list 272, so it is possible to prevent the above-described variables from being deleted.
 <g2.判定処理の第2実施例>
 図9は、判定処理の第2実施例を示すフローチャートである。図9のフローチャートは、図7に示した第1実施例のフローチャートに対し、ステップS210の処理を追加したものである。図9において、図7と共通するステップについての説明は繰り返さない。
<g2. Second Example of Determination Processing>
FIG. 9 is a flow chart showing a second embodiment of determination processing. The flowchart of FIG. 9 is obtained by adding the process of step S210 to the flowchart of the first embodiment shown in FIG. In FIG. 9, the description of the steps common to FIG. 7 will not be repeated.
 図9を参照して、第2実施例では、ソースコード271が編集された場合(S21のYES判定時)には、抽出部262は、ステップS210に進み、上記編集によってソースコード271から少なくとも1つの命令要素が削除されたか否かを判定する。ステップS210の判定は、エディット処理(図5のS1)の起動前のソースコード271と、エディット処理の実行後のソースコード271とを比較することにより行うことができる。 Referring to FIG. 9, in the second embodiment, when source code 271 has been edited (YES in S21), extraction unit 262 proceeds to step S210, and extracts at least one copy from source code 271 by the above editing. Determines whether one instruction element has been deleted. The determination in step S210 can be made by comparing the source code 271 before starting the editing process (S1 in FIG. 5) and the source code 271 after executing the editing process.
 エディット処理によってソースコード271から少なくとも1つの命令要素が削除されたと判定された場合(S210のYES判定時)、抽出部262は、ステップS22に処理を進める。一方、ソースコード271から命令要素が削除されていないと判定された場合(S210のNO判定時)には、ステップS22以降がスキップされて、判定処理が終了される。 If it is determined that at least one command element has been deleted from the source code 271 by the editing process (YES determination in S210), the extraction unit 262 advances the process to step S22. On the other hand, if it is determined that the instruction element has not been deleted from the source code 271 (NO determination in S210), step S22 and subsequent steps are skipped, and the determination process ends.
 第2実施例に係る判定処理においても、ユーザから削除指示された不使用変数が変数定義リスト272から削除されるため、第1実施例に係る判定処理と同様の効果を得ることができる。 Also in the determination process according to the second embodiment, unused variables instructed to be deleted by the user are deleted from the variable definition list 272, so that the same effect as the determination process according to the first embodiment can be obtained.
 さらに第2実施例に係る判定処理は、エディット処理によってソースコード271が編集された場合であって、ソースコード271から命令要素が削除されたときに実行される。これによると、命令要素の削除に伴って当該命令要素が参照する変数が不使用となったケースにおいて、判定処理が実行されることにより、不使用となった変数を削除することができる。その一方で、エディット処理によってソースコード271に命令要素が追加されたケースでは、S210がNO判定とされるため、判定処理が実行されない。第2実施例では、不使用変数が生じる可能性があるケースにおいて判定処理を実行することにより、不使用変数の削除を効率良く行うことができる。 Furthermore, the determination process according to the second embodiment is executed when the source code 271 is edited by the editing process and the instruction element is deleted from the source code 271. According to this, when a variable referred to by an instruction element becomes unused due to the deletion of the instruction element, the unused variable can be deleted by executing the determination process. On the other hand, in the case where an instruction element is added to the source code 271 by the editing process, the judgment process is not executed because the judgment in S210 is NO. In the second embodiment, it is possible to efficiently delete unused variables by executing determination processing in cases where unused variables may occur.
 <g3.判定処理の第3実施例>
 図10は、判定処理の第3実施例を示すフローチャートである。図10のフローチャートは、図7に示した第1実施例のフローチャートにおけるステップS22の処理を、ステップS220の処理を置き換えたものである。図10において、図7と共通するステップについての説明は繰り返さない。
<g3. Third Example of Determination Processing>
FIG. 10 is a flow chart showing a third embodiment of determination processing. The flowchart of FIG. 10 replaces the processing of step S22 in the flowchart of the first embodiment shown in FIG. 7 with the processing of step S220. In FIG. 10, the description of the steps common to FIG. 7 will not be repeated.
 図10を参照して、第3実施例では、ソースコード271が編集された場合(S21のYES判定時)には、抽出部262は、ステップS220により、ソースコード271の改変部分、すなわち、編集前のソースコード271から改変された部分において、当該改変部分に含まれる命令要素が参照する変数を抽出する。当該改変部分には、編集前のソースコード271に対して追加、変更または削除された命令要素が含まれている。 Referring to FIG. 10, in the third embodiment, when source code 271 has been edited (YES determination in S21), extraction unit 262 extracts the modified portion of source code 271, that is, the edited portion, in step S220. In the portion modified from the previous source code 271, the variables referenced by the instruction elements included in the modified portion are extracted. The modified portion includes instruction elements added, modified, or deleted from the source code 271 before editing.
 抽出部262は、ステップS23により、ソースコード271の改変部分から抽出した変数と変数定義リスト272とを比較する。抽出した変数と、変数定義リスト272で宣言されている変数とに整合性が無いと判定された場合であって、変数定義リスト272内に不使用変数有りと判定されたとき(S24のYES判定時)、ステップS25~S27の処理によって不使用変数が削除される。 The extraction unit 262 compares the variables extracted from the modified portion of the source code 271 with the variable definition list 272 in step S23. When it is determined that there is no consistency between the extracted variables and the variables declared in the variable definition list 272, and it is determined that there are unused variables in the variable definition list 272 (YES in S24). time), unused variables are deleted by the processing of steps S25 to S27.
 以上説明したように、第3実施例に係る判定処理においても、ユーザから削除指示された不使用変数が変数定義リスト272から削除されるため、第1実施例に係る判定処理と同様の効果を得ることができる。 As described above, also in the determination process according to the third embodiment, the unused variables instructed to be deleted by the user are deleted from the variable definition list 272. Therefore, the same effect as the determination process according to the first embodiment can be obtained. Obtainable.
 さらに第3実施例に係る判定処理は、ソースコード271のうちエディット処理によって改変された部分に対して実行される。したがって、編集前のソースコード271から改変されていない部分については、変数が抽出されず、当該変数と変数定義リスト272との比較も行われない。このように不使用変数が生じる可能性がある部分に限定して判定処理を実行することにより、不使用変数の削除を効率良く行うことができる。 Furthermore, the determination process according to the third embodiment is performed on the portion of the source code 271 that has been altered by the edit process. Therefore, no variables are extracted from the unaltered portions of the source code 271 before editing, and no comparison is made between the variables and the variable definition list 272 . In this way, by executing the determination process only on portions where unused variables may occur, it is possible to efficiently delete unused variables.
 <g4.判定処理の第4実施例>
 図11は、判定処理の第4実施例を示すフローチャートである。図11のフローチャートは、図7に示した第1実施例のフローチャートに対し、ステップS240の処理を追加したものである。図11において、図7と共通するステップについての説明は繰り返さない。
<g4. Fourth Example of Determination Processing>
FIG. 11 is a flow chart showing a fourth embodiment of determination processing. The flowchart of FIG. 11 is obtained by adding the process of step S240 to the flowchart of the first embodiment shown in FIG. In FIG. 11, the description of the steps common to FIG. 7 will not be repeated.
 図11を参照して、第4実施例では、ステップS24にて変数定義リスト272内に不使用変数が有ると判定された場合(S24のYES判定時)、抽出部262は、ステップS240に進み、当該不使用変数が内部変数であるか否かを判定する。 Referring to FIG. 11, in the fourth embodiment, when it is determined in step S24 that there is an unused variable in variable definition list 272 (YES in S24), extraction unit 262 proceeds to step S240. , determines whether the unused variable is an internal variable.
 ここで、ソースコード271で使用される変数は、内部変数、入力変数および出力変数を含む。「内部変数」とは、制御装置200で実行されるプログラムの内部だけで使用する変数である。「入力変数」および「出力変数」は制御対象である外部機器300が保持する値を示す変数である。「入力変数」は外部機器300から制御装置200に入力される入力データの変数であり、「出力変数」は制御装置200から外部機器300に出力する出力データの変数である。したがって、不使用変数が入力変数または出力変数である場合には、当該不使用変数を削除することによって、外部機器300側に影響を与える虞がある。 Here, the variables used in the source code 271 include internal variables, input variables and output variables. An “internal variable” is a variable that is used only inside the program executed by the control device 200 . "Input variable" and "output variable" are variables indicating values held by external device 300, which is the object to be controlled. An “input variable” is a variable of input data input from the external device 300 to the control device 200 , and an “output variable” is a variable of output data output from the control device 200 to the external device 300 . Therefore, if the unused variable is an input variable or an output variable, deleting the unused variable may affect the external device 300 side.
 第4実施例に係る判定処理では、不使用変数が内部変数であると判定された場合(S240のYES判定時)、抽出部262は、GUIモジュール258を介してユーザに不使用変数を通知する。削除部264は、GUIモジュール258を介したユーザからの削除指示に従って不使用変数を削除する。一方、不使用変数が入力変数または出力変数であると判定された場合(S240のNO判定時)には、ステップS25以降がスキップされることにより、不使用変数が削除されずに判定処理が終了する。 In the determination process according to the fourth embodiment, when it is determined that the unused variable is an internal variable (YES determination in S240), the extraction unit 262 notifies the user of the unused variable via the GUI module 258. . The deletion unit 264 deletes unused variables according to deletion instructions from the user via the GUI module 258 . On the other hand, if it is determined that the unused variable is an input variable or an output variable (NO in S240), step S25 and subsequent steps are skipped, and the determination process ends without deleting the unused variable. do.
 なお、第4実施例においては、図12に示すように、変数定義リスト272を、内部変数を定義する部分と、入力変数および出力変数を定義する部分とを有するように構成することができる。このようにすると、ステップS23の処理において、変数定義リスト272のうちの内部変数を定義した部分と、ソースコード271から抽出した変数とを比較することによって、不使用の内部変数を抽出することができる。 Note that in the fourth embodiment, as shown in FIG. 12, the variable definition list 272 can be configured to have a portion that defines internal variables and a portion that defines input variables and output variables. In this way, in the process of step S23, unused internal variables can be extracted by comparing the portion defining the internal variables in the variable definition list 272 with the variables extracted from the source code 271. can.
 以上説明したように、第4実施例に係る判定処理においても、ユーザから削除指示された不使用変数が変数定義リスト272から削除されるため、第1実施例に係る判定処理と同様の効果を得ることができる。 As described above, also in the determination process according to the fourth embodiment, the unused variables instructed to be deleted by the user are deleted from the variable definition list 272. Therefore, the same effect as the determination process according to the first embodiment can be obtained. Obtainable.
 さらに第4実施例に係る判定処理は、不使用変数が内部変数である場合に変数定義リスト272から当該不使用変数を削除するため、削除されると外部機器300に影響を与える変数を除外して、制御プログラムから削除可能な不使用変数を削除することができる。 Furthermore, the determination process according to the fourth embodiment deletes the unused variable from the variable definition list 272 when the unused variable is an internal variable, and therefore excludes variables that affect the external device 300 when deleted. can be used to remove unused variables that can be removed from the control program.
 <g5.判定処理の第5実施例>
 図13は、判定処理の第5実施例を示すフローチャートである。図13のフローチャートは、図7に示した第1実施例のフローチャートに対し、ステップS25,S26に代えて、ステップS242の処理を追加したものである。図13において、図7と共通するステップについての説明は繰り返さない。
<g5. Fifth Example of Determination Process>
FIG. 13 is a flow chart showing a fifth embodiment of determination processing. The flowchart of FIG. 13 is obtained by adding processing of step S242 instead of steps S25 and S26 to the flowchart of the first embodiment shown in FIG. In FIG. 13, the description of the steps common to FIG. 7 will not be repeated.
 図13を参照して、第5実施例では、ステップS24にて変数定義リスト272内に不使用変数が有ると判定された場合(S24のYES判定時)、抽出部262は、ステップS242に進み、抽出した不使用変数が、ソースコード271の編集によって使用状態から不使用状態に変更された変数であるか否かを判定する。例えば、直前のエディット処理において、ソースコード271から命令要素が削除されたことによって、当該命令要素が参照する変数が使用状態から不使用状態に変更される場合がある。抽出部262は、ステップS23の処理にて抽出された不使用変数が、ソースコード271の編集後に新たに抽出されたものである場合に、当該変数が使用状態から不使用状態に変更されたものであると判断し、ステップS242をYES判定とする。一方、ステップS23の処理にて抽出された不使用変数が、編集後に新たに抽出されたものでない場合には、元々不使用状態の変数であると判断し、抽出部262は、ステップS242をNO判定とする。 Referring to FIG. 13, in the fifth embodiment, when it is determined in step S24 that there is an unused variable in variable definition list 272 (YES in S24), extraction unit 262 proceeds to step S242. , determines whether or not the extracted unused variable is a variable that has been changed from the used state to the unused state by editing the source code 271 . For example, when an instruction element is deleted from the source code 271 in the previous editing process, the variable referred to by the instruction element may be changed from the used state to the unused state. If the unused variable extracted in the process of step S23 is newly extracted after the editing of the source code 271, the extraction unit 262 extracts the variable that has been changed from the used state to the unused state. , and a YES determination is made in step S242. On the other hand, if the unused variable extracted in the process of step S23 is not newly extracted after editing, it is determined that the variable is originally in an unused state, and the extracting unit 262 determines NO in step S242. Judge.
 不使用変数が使用状態から不使用状態に変更された変数である場合(S242のYES判定時)には、削除部264は、ステップS27により、変数定義リスト272に含まれる変数から不使用変数を削除する。これにより、変数定義リスト272は、不使用変数が削除された内容に更新される。 If the unused variable is a variable that has been changed from the used state to the unused state (YES determination in S242), deletion unit 264 removes the unused variable from the variables included in variable definition list 272 in step S27. delete. As a result, the variable definition list 272 is updated with the content from which unused variables are deleted.
 一方、不使用変数が使用状態から不使用状態に変更された変数でない場合(S242のNO判定時)には、ステップS27がスキップされて、判定処理が終了される。この場合には、不使用変数は削除されず、変数定義リスト272は、判定処理の起動前の内容に維持される。 On the other hand, if the unused variable has not been changed from the used state to the unused state (NO determination in S242), step S27 is skipped and the determination process ends. In this case, the unused variables are not deleted, and the variable definition list 272 is maintained with the contents before starting the determination process.
 以上説明したように、第5実施例に係る判定処理は、ソースコード271の編集によって使用状態から不使用状態に変更された変数を、ユーザからの削除指示を介さず、自動的に削除するように構成される。このようにすると、ソースコード271内では不使用であっても外部機器300からアクセスされる変数については、元々不使用状態の変数であって、ソースコード271の編集によって使用状態から不使用状態に変更されるものでないため、削除対象から除外することができる。そのため、ユーザからの削除指示によらずに自動的に不使用変数を削除する構成としても、上述のような変数が変数定義リスト272から削除されてしまうことを防ぐことができる。 As described above, the determination processing according to the fifth embodiment automatically deletes the variables that have been changed from the used state to the unused state by editing the source code 271 without going through the deletion instruction from the user. configured to In this way, variables that are not used in the source code 271 but are accessed from the external device 300 are originally in an unused state and are changed from a used state to an unused state by editing the source code 271. Since it is not changed, it can be excluded from being deleted. Therefore, even with a configuration that automatically deletes unused variables without receiving deletion instructions from the user, it is possible to prevent the above variables from being deleted from the variable definition list 272 .
 <付記>
 上述したような本実施の形態および変形例は、以下のような技術思想を含む。
<Appendix>
The present embodiment and modifications as described above include the following technical ideas.
 [構成1]
 制御対象(300)を制御する制御装置(200)用の制御プログラム(210)の開発を支援するための開発支援装置(100)であって、
 ユーザ操作に従って、前記制御プログラムのソースコードを生成および編集するエディタ(252)と、
 前記ソースコード(271)と、前記ソースコードに含まれる命令要素が参照する変数を定義した変数宣言(272)とを記憶する記憶部(270)と、
 前記ユーザと対話するためのインターフェイス(258)と、
 前記エディタにより前記ソースコードが編集された場合に、前記変数宣言から、編集された前記ソースコードに含まれる前記命令要素により参照されない不使用変数を抽出するとともに、抽出した前記不使用変数を、前記インターフェイスを介して前記ユーザに通知する抽出部(262)と、
 前記インターフェイスを介した前記不使用変数の削除を指示するユーザ入力に従って前記不使用変数を前記変数宣言から削除することにより、前記変数宣言を更新する削除部(264)とを備える、開発支援装置。
[Configuration 1]
A development support device (100) for supporting development of a control program (210) for a control device (200) that controls a controlled object (300),
an editor (252) for generating and editing the source code of the control program according to user operation;
a storage unit (270) for storing the source code (271) and a variable declaration (272) defining variables referenced by instruction elements included in the source code;
an interface (258) for interacting with the user;
when the source code is edited by the editor, an unused variable not referenced by the instruction element included in the edited source code is extracted from the variable declaration; an extractor (262) notifying said user via an interface;
a deletion unit (264) that updates the variable declaration by deleting the unused variable from the variable declaration in accordance with user input instructing deletion of the unused variable through the interface.
 [構成2]
 前記抽出部(262)は、前記エディタ(252)により前記ソースコード(271)が編集された場合であって、前記ソースコードから少なくとも一部の前記命令要素が削除されたときに、前記変数宣言(272)から前記不使用変数を抽出する、構成1に記載の開発支援装置。
[Configuration 2]
When the source code (271) is edited by the editor (252) and at least some of the instruction elements are deleted from the source code, the extraction unit (262) extracts the variable declaration The development support device according to configuration 1, wherein the unused variable is extracted from (272).
 [構成3]
 前記抽出部(262)は、前記ソースコード(271)の改変部分に含まれる前記命令要素が参照する変数と前記変数宣言(272)との整合性を判定し、整合性がないと判定されたことに応じて前記不使用変数を抽出する、構成1または2に記載の開発支援装置。
[Configuration 3]
The extraction unit (262) determines consistency between variables referenced by the instruction elements included in the modified portion of the source code (271) and the variable declaration (272), and is determined to be inconsistent. 3. The development support device according to configuration 1 or 2, wherein the unused variables are extracted according to circumstances.
 [構成4]
 前記抽出部(262)は、抽出した前記不使用変数が内部変数である場合に、抽出した前記不使用変数を、前記インターフェイス(258)を介して前記ユーザに通知する、構成1から3のいずれかに記載の開発支援装置。
[Configuration 4]
Any one of configurations 1 to 3, wherein the extraction unit (262) notifies the user of the extracted unused variable via the interface (258) when the extracted unused variable is an internal variable 1. The development support device according to claim 1.
 [構成5]
 制御対象(300)を制御する制御装置(200)用の制御プログラム(210)の開発を支援するための開発支援装置(100)であって、
 ユーザ操作に従って、前記制御プログラムのソースコード(271)を生成および編集するエディタ(262)と、
 前記ソースコードと、前記ソースコードに含まれる命令要素が参照する変数を定義した変数宣言(272)とを記憶する記憶部(270)と、
 前記エディタにより前記ソースコードが編集された場合に、前記変数宣言から、編集された前記ソースコードに含まれる前記命令要素により参照されない不使用変数を抽出する抽出部(262)と、
 前記抽出部により抽出された前記不使用変数が、前記ソースコードの編集によって使用状態から不使用状態に変更された変数である場合に、前記不使用変数を前記変数宣言から削除することにより、前記変数宣言を更新する削除部(264)とを備える、開発支援装置。
[Configuration 5]
A development support device (100) for supporting development of a control program (210) for a control device (200) that controls a controlled object (300),
an editor (262) for generating and editing the source code (271) of the control program according to user operation;
a storage unit (270) for storing the source code and a variable declaration (272) defining a variable referenced by an instruction element included in the source code;
an extraction unit (262) for extracting unused variables not referenced by the instruction elements included in the edited source code from the variable declaration when the source code is edited by the editor;
If the unused variable extracted by the extracting unit is a variable that has been changed from a used state to an unused state by editing the source code, by deleting the unused variable from the variable declaration, and a deletion unit (264) for updating variable declarations.
 [構成6]
 前記ソースコード(271)および前記変数宣言(272)から前記制御プログラム(210)の実行コードを生成するビルダをさらに備える、構成1から5のいずれか1項に記載の開発支援装置。
[Configuration 6]
6. The development support device according to any one of configurations 1 to 5, further comprising a builder that generates execution code of the control program (210) from the source code (271) and the variable declaration (272).
 [構成7]
 制御対象(300)を制御する制御装置(200)用の制御プログラム(210)の開発を支援するための開発支援方法であって、
 ユーザ操作に従って、前記制御プログラムのソースコード(271)を生成および編集するステップ(S1)と、
 前記ソースコードと、前記ソースコードに含まれる命令要素が参照する変数を定義した変数宣言(272)とを記憶するステップ(S1)と、
 前記ソースコードが編集された場合に、前記変数宣言から、編集された前記ソースコードに含まれる前記命令要素により参照されない不使用変数を抽出するステップ(S2,S21~S24)と、
 抽出された前記不使用変数を、インターフェイス(258)を介して前記ユーザに通知するステップ(S25)と、
 前記インターフェイスを介した前記不使用変数の削除を指示するユーザ入力に従って前記不使用変数を前記変数宣言から削除することにより、前記変数宣言を更新するステップ(S2,S26,S27)とを備える、開発支援方法。
[Configuration 7]
A development support method for supporting development of a control program (210) for a control device (200) that controls a controlled object (300), comprising:
a step (S1) of generating and editing the source code (271) of the control program according to a user operation;
a step (S1) of storing the source code and a variable declaration (272) defining a variable referred to by an instruction element included in the source code;
extracting unused variables not referenced by the instruction elements included in the edited source code from the variable declaration when the source code is edited (S2, S21 to S24);
a step (S25) of notifying the user of the extracted unused variables via an interface (258);
and updating the variable declaration by deleting the unused variable from the variable declaration according to a user input through the interface instructing deletion of the unused variable. how to help.
 [構成8]
 制御対象(300)を制御する制御装置(200)用の制御プログラム(210)の開発を支援するための開発支援プログラムであって、
 前記開発支援プログラムは、コンピュータに、
 ユーザ操作に従って、前記制御プログラムのソースコード(271)を生成および編集するステップ(S1)と、
 前記ソースコードと、前記ソースコードに含まれる命令要素が参照する変数を定義した変数宣言(272)とを記憶するステップ(S1)と、
 前記ソースコードが編集された場合に、前記変数宣言から、編集された前記ソースコードに含まれる前記命令要素により参照されない不使用変数を抽出するステップ(S2,S21~S24)と、
 抽出された前記不使用変数を、インターフェイス(258)を介して前記ユーザに通知するステップ(S25)と、
 前記インターフェイスを介した前記不使用変数の削除を指示するユーザ入力に従って前記不使用変数を前記変数宣言から削除することにより、前記変数宣言を更新するステップ(S2,S26,S27)とを実行させる、開発支援プログラム。
[Configuration 8]
A development support program for supporting development of a control program (210) for a control device (200) that controls a controlled object (300),
The development support program, in a computer,
a step (S1) of generating and editing the source code (271) of the control program according to a user operation;
a step (S1) of storing the source code and a variable declaration (272) defining a variable referred to by an instruction element included in the source code;
extracting unused variables not referenced by the instruction elements included in the edited source code from the variable declaration when the source code is edited (S2, S21 to S24);
a step (S25) of notifying the user of the extracted unused variables via an interface (258);
updating the variable declaration by deleting the unused variable from the variable declaration according to a user input instructing deletion of the unused variable through the interface (S2, S26, S27); Development assistance program.
 今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。 The embodiments disclosed this time should be considered illustrative in all respects and not restrictive. The scope of the present invention is indicated by the scope of the claims rather than the above description, and is intended to include all changes within the scope and meaning equivalent to the scope of the claims.
 10 FAシステム、50 開発支援プログラム、60 各種データ・プログラム、100 開発支援装置、102 プロセッサ、104 主メモリ、111 通信インターフェイス、114 I/Oインターフェイス、115 操作部、117 表示インターフェイス、118 表示部、120 記憶装置、200 制御装置、210 制御プログラム、212 転送モジュール、250 プログラミングアプリケーション、252 エディタ、253 変数宣言生成部、254 ビルダ、255 ソースコード生成部、256 デバッガ、257 コンフィグレータ、258 GUIモジュール、260 シミュレータ、262 抽出部、264 削除部、270,299 データ格納部、271 ソースコード、272 変数定義リスト、273 実行コード、293 コンフィグ情報、280 ネットワーク設定アプリケーション、300 外部機器、300A~300C デバイス、301A~301C 機器、420 ラダー回路、421 入力側母線、422 出力側母線、423 接続線、425,426 接点、427 コイル、a~i 変数、NW1,NW2 ネットワーク。 10 FA system, 50 development support program, 60 various data programs, 100 development support device, 102 processor, 104 main memory, 111 communication interface, 114 I/O interface, 115 operation unit, 117 display interface, 118 display unit, 120 Storage device, 200 control device, 210 control program, 212 transfer module, 250 programming application, 252 editor, 253 variable declaration generator, 254 builder, 255 source code generator, 256 debugger, 257 configurator, 258 GUI module, 260 simulator, 262 Extraction part, 264 Deletion part, 270, 299 Data storage part, 271 Source code, 272 Variable definition list, 273 Execution code, 293 Configuration information, 280 Network setting application, 300 External device, 300A to 300C Device, 301A to 301C Device , 420 ladder circuit, 421 input side busbar, 422 output side busbar, 423 connection line, 425, 426 contact, 427 coil, a to i variables, NW1, NW2 network.

Claims (8)

  1.  制御対象を制御する制御装置用の制御プログラムの開発を支援するための開発支援装置であって、
     ユーザ操作に従って、前記制御プログラムのソースコードを生成および編集するエディタと、
     前記ソースコードと、前記ソースコードに含まれる命令要素が参照する変数を定義した変数宣言とを記憶する記憶部と、
     前記ユーザと対話するためのインターフェイスと、
     前記エディタにより前記ソースコードが編集された場合に、前記変数宣言から、編集された前記ソースコードに含まれる前記命令要素により参照されない不使用変数を抽出するとともに、抽出した前記不使用変数を、前記インターフェイスを介して前記ユーザに通知する抽出部と、
     前記インターフェイスを介した前記不使用変数の削除を指示するユーザ入力に従って前記不使用変数を前記変数宣言から削除することにより、前記変数宣言を更新する削除部とを備える、開発支援装置。
    A development support device for supporting development of a control program for a control device that controls a controlled object,
    an editor that generates and edits the source code of the control program according to user operations;
    a storage unit that stores the source code and a variable declaration defining a variable referenced by an instruction element included in the source code;
    an interface for interacting with the user;
    when the source code is edited by the editor, an unused variable not referenced by the instruction element included in the edited source code is extracted from the variable declaration; an extractor that notifies the user via an interface;
    a deletion unit that updates the variable declaration by deleting the unused variable from the variable declaration in accordance with a user input instructing deletion of the unused variable via the interface.
  2.  前記抽出部は、前記エディタにより前記ソースコードが編集された場合であって、前記ソースコードから少なくとも一部の前記命令要素が削除されたときに、前記変数宣言から前記不使用変数を抽出する、請求項1に記載の開発支援装置。 The extraction unit extracts the unused variable from the variable declaration when the source code is edited by the editor and at least part of the instruction elements are deleted from the source code. The development support device according to claim 1.
  3.  前記抽出部は、前記ソースコードの改変部分に含まれる前記命令要素が参照する変数と前記変数宣言との整合性を判定し、整合性がないと判定されたことに応じて前記不使用変数を抽出する、請求項1または2に記載の開発支援装置。 The extraction unit determines consistency between variables referenced by the instruction elements included in the modified portion of the source code and the variable declaration, and extracts the unused variables in response to the determination that there is no consistency. 3. The development support device according to claim 1, which extracts.
  4.  前記抽出部は、抽出した前記不使用変数が内部変数である場合に、抽出した前記不使用変数を、前記インターフェイスを介して前記ユーザに通知する、請求項1から3のいずれか1項に記載の開発支援装置。 4. The extracting unit according to any one of claims 1 to 3, wherein, when the extracted unused variable is an internal variable, the extracted unused variable is notified to the user via the interface. development support device.
  5.  制御対象を制御する制御装置用の制御プログラムの開発を支援するための開発支援装置であって、
     ユーザ操作に従って、前記制御プログラムのソースコードを生成および編集するエディタと、
     前記ソースコードと、前記ソースコードに含まれる命令要素が参照する変数を定義した変数宣言とを記憶する記憶部と、
     前記エディタにより前記ソースコードが編集された場合に、前記変数宣言から、編集された前記ソースコードに含まれる前記命令要素により参照されない不使用変数を抽出する抽出部と、
     前記抽出部により抽出された前記不使用変数が、前記ソースコードの編集によって使用状態から不使用状態に変更された変数である場合に、前記不使用変数を前記変数宣言から削除することにより、前記変数宣言を更新する削除部とを備える、開発支援装置。
    A development support device for supporting development of a control program for a control device that controls a controlled object,
    an editor that generates and edits the source code of the control program according to user operations;
    a storage unit that stores the source code and a variable declaration defining a variable referenced by an instruction element included in the source code;
    an extraction unit for extracting unused variables not referenced by the instruction elements included in the edited source code from the variable declaration when the source code is edited by the editor;
    If the unused variable extracted by the extracting unit is a variable that has been changed from a used state to an unused state by editing the source code, by deleting the unused variable from the variable declaration, and a deletion unit that updates variable declarations.
  6.  前記ソースコードおよび前記変数宣言から前記制御プログラムの実行コードを生成するビルダをさらに備える、請求項1から5のいずれか1項に記載の開発支援装置。 The development support device according to any one of claims 1 to 5, further comprising a builder that generates execution code of said control program from said source code and said variable declaration.
  7.  制御対象を制御する制御装置用の制御プログラムの開発を支援するための開発支援方法であって、
     ユーザ操作に従って、前記制御プログラムのソースコードを生成および編集するステップと、
     前記ソースコードと、前記ソースコードに含まれる命令要素が参照する変数を定義した変数宣言とを記憶するステップと、
     前記ソースコードが編集された場合に、前記変数宣言から、編集された前記ソースコードに含まれる前記命令要素により参照されない不使用変数を抽出するステップと、
     抽出された前記不使用変数を、インターフェイスを介して前記ユーザに通知するステップと、
     前記インターフェイスを介した前記不使用変数の削除を指示するユーザ入力に従って前記不使用変数を前記変数宣言から削除することにより、前記変数宣言を更新するステップとを備える、開発支援方法。
    A development support method for supporting development of a control program for a control device that controls a controlled object,
    generating and editing the source code of the control program according to user operation;
    storing the source code and a variable declaration defining a variable referenced by an instruction element included in the source code;
    extracting unused variables not referenced by the instruction elements included in the edited source code from the variable declaration when the source code is edited;
    notifying the user of the extracted unused variables via an interface;
    and updating the variable declaration by deleting the unused variable from the variable declaration in accordance with user input through the interface to instruct deletion of the unused variable.
  8.  制御対象を制御する制御装置用の制御プログラムの開発を支援するための開発支援プログラムであって、
     前記開発支援プログラムは、コンピュータに、
     ユーザ操作に従って、前記制御プログラムのソースコードを生成および編集するステップと、
     前記ソースコードと、前記ソースコードに含まれる命令要素が参照する変数を定義した変数宣言とを記憶するステップと、
     前記ソースコードが編集された場合に、前記変数宣言から、編集された前記ソースコードに含まれる前記命令要素により参照されない不使用変数を抽出するステップと、
     抽出された前記不使用変数を、インターフェイスを介して前記ユーザに通知するステップと、
     前記インターフェイスを介した前記不使用変数の削除を指示するユーザ入力に従って前記不使用変数を前記変数宣言から削除することにより、前記変数宣言を更新するステップとを実行させる、開発支援プログラム。
    A development support program for supporting development of a control program for a control device that controls a controlled object,
    The development support program, in a computer,
    generating and editing the source code of the control program according to user operation;
    storing the source code and a variable declaration defining a variable referenced by an instruction element included in the source code;
    extracting unused variables not referenced by the instruction elements included in the edited source code from the variable declaration when the source code is edited;
    notifying the user of the extracted unused variables via an interface;
    updating the variable declaration by deleting the unused variable from the variable declaration in accordance with a user input instructing deletion of the unused variable through the interface.
PCT/JP2021/034467 2021-03-11 2021-09-21 Development support device, development support method, and development support program WO2022190417A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021-039324 2021-03-11
JP2021039324A JP2022139089A (en) 2021-03-11 2021-03-11 Development support device, development support method, and development support program

Publications (1)

Publication Number Publication Date
WO2022190417A1 true WO2022190417A1 (en) 2022-09-15

Family

ID=83227784

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/034467 WO2022190417A1 (en) 2021-03-11 2021-09-21 Development support device, development support method, and development support program

Country Status (2)

Country Link
JP (1) JP2022139089A (en)
WO (1) WO2022190417A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000181696A (en) * 1998-12-15 2000-06-30 Mitsubishi Electric Corp Program controller and program controlling method
JP2002062910A (en) * 2000-08-22 2002-02-28 Digital Electronics Corp Editor device and storage medium recording editor program
JP2009009607A (en) * 1999-10-15 2009-01-15 Omron Corp Network system
JP2012118715A (en) * 2010-11-30 2012-06-21 Fuji Electric Co Ltd Plc system, development support device for the same, and program
JP2017037466A (en) * 2015-08-10 2017-02-16 オムロン株式会社 Support device and support program

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000181696A (en) * 1998-12-15 2000-06-30 Mitsubishi Electric Corp Program controller and program controlling method
JP2009009607A (en) * 1999-10-15 2009-01-15 Omron Corp Network system
JP2002062910A (en) * 2000-08-22 2002-02-28 Digital Electronics Corp Editor device and storage medium recording editor program
JP2012118715A (en) * 2010-11-30 2012-06-21 Fuji Electric Co Ltd Plc system, development support device for the same, and program
JP2017037466A (en) * 2015-08-10 2017-02-16 オムロン株式会社 Support device and support program

Also Published As

Publication number Publication date
JP2022139089A (en) 2022-09-26

Similar Documents

Publication Publication Date Title
CN101669077B (en) Debug system for diagram of orogrammable controller, its programming device and its debugging method
JP5039428B2 (en) Programmable controller and PLC system
CN111142466B (en) Engineering device, control method for engineering device, and storage medium
JP5155829B2 (en) Programmable controller diagram debugging system, programming device and program thereof
JP2008276381A (en) Debug system for diagram of programmable controller, programming device therefor and program therefor
WO2022190417A1 (en) Development support device, development support method, and development support program
EP3734379A1 (en) Method and system for generating control programs in a cloud computing environment
JP7067273B2 (en) Support equipment, control systems, and development support programs
WO2012104959A1 (en) Motion sfc program component creation device
EP3971660A1 (en) Method and system for providing engineering of an industrial device in a cloud computing environment
EP4073626B1 (en) Method and system for generating engineering diagrams in an engineering system
JP5205988B2 (en) PLC global variable definition method
WO2022190418A1 (en) Development assitance device, development assitance method, and development assitance program
US20220291903A1 (en) Information processing device, recording medium, and support system
CN113939780A (en) Support device and support program
WO2022190428A1 (en) Development assistance device, development assistance method, and development assistance program
WO2024128118A1 (en) Development assistance device, development assistance method, and development assistance program
WO2022190427A1 (en) Development support device, development support method, and development support program
US20230237249A1 (en) Method and system for generating an automation engineering project in a technical installation using multidisciplinary approach
EP4167079A1 (en) Method and system for generating and optimizing engineering programs for a technical installation
EP4254200A1 (en) Method and system for eradicating programmatical errors from engineering programs in a technical installation
EP4328683A1 (en) Method and system for generating user recommendations to aid generation of an engineering project
WO2021192456A1 (en) Information processing device and program for displaying ladder program
JP2008282343A (en) Debugging system for diagram of programmable controller, programming device therefor, and program therefor
EP4141653A1 (en) Method and system for generating engineering programs which are compatible with a specific engineering environment

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21930265

Country of ref document: EP

Kind code of ref document: A1