(57)【要約】【課題】互いに異なる言語で記述された複数のプログラム間で使用されている共有変数をユーザが容易に把握することができる技術を提供する。【解決手段】複数のプログラムで使用されている共有変数の一覧をプログラム毎に作成する共有変数一覧作成部（１４１，１５１）と、共有変数一覧作成部（１４１，１５１）によって作成された複数の共有変数一覧を集計し、各共有変数の使用元のプログラムの情報を含むプログラム一覧を作成するプログラム一覧集計部（１６０）と、を備えた。【選択図】図２
2020064399.tif 000002
【特許請求の範囲】
【請求項１】
互いに異なる言語で記述された複数のプログラムの夫々を、使用されている変数の情報とともに実行可能に記憶し、前記プログラムを実行することにより外部機器からの情報収集および外部機器への動作制御の少なくともいずれか一方を行う制御装置と、
前記制御装置によって実行される前記複数のプログラムのソースコードを編集可能に表示する端末装置と、を備える制御システムであって、
複数の前記プログラムで使用されている共有変数の一覧をプログラム毎に作成する共有変数一覧作成部と、
前記共有変数一覧作成部によって作成された複数の共有変数一覧を集計し、各共有変数の使用元のプログラムの情報を含むプログラム一覧を作成するプログラム一覧集計部と、
を備えた制御システム。
【請求項２】
前記プログラム一覧集計部は、
前記共有変数を、使用元のプログラムにおいて、読み込みで使用するか、書き込みで使用するかで別々に集計する請求項１に記載の制御システム。
【請求項３】
前記プログラム一覧集計部は、
前記共有変数の使用元のプログラムにおける、使用箇所のファンクション名、及び行番号の少なくとも何れか一方を集計する請求項１に記載の制御システム。
【請求項４】
前記共有変数一覧作成部は、前記プログラムにおける前記共有変数の使用履歴を蓄積し、
前記プログラム一覧集計部は、前記共有変数の使用元のプログラムにおける使用履歴の情報を含むプログラム一覧を作成する請求項１に記載の制御システム。
【請求項５】
前記制御装置は、
前記複数のプログラムを管理するプログラム管理部と、前記共有変数一覧作成部、及び前記プログラム一覧集計部と、を備え、
前記端末装置は、
前記制御装置から前記プログラム一覧を取得するプログラム一覧取得部と、
取得した前記プログラム一覧を表示するプログラム一覧表示部と、を備える請求項１から４の何れか１項に記載の制御システム。
【請求項６】
前記制御装置は、
前記複数のプログラムを管理するプログラム管理部と、前記共有変数一覧作成部とを備え、
前記端末装置は、
前記制御装置から前記共有変数一覧を取得する共有変数一覧取得部と、前記プログラム一覧集計部と、作成したプログラム一覧を表示するプログラム一覧表示部と、を備える請求項１から４の何れか１項に記載の制御システム。
【請求項７】
前記プログラム一覧表示部は、
前記共有変数を削除する操作がユーザによって行われた場合に、削除対象の前記共有変数を使用するプログラムの一覧を表示する請求項５又は６に記載の制御システム。
【請求項８】
請求項１〜７の何れか一項に記載の制御システムが備える制御装置。
【請求項９】
請求項１〜７の何れか一項に記載の制御システムが備える端末装置。
【請求項１０】
請求項１〜７の何れか一項に記載の制御システムが備える制御装置としてコンピュータを機能させるプログラムであって、前記制御装置が備える各部としてコンピュータを機能させるためのプログラム。
【請求項１１】
請求項１〜７の何れか一項に記載の制御システムが備える端末装置としてコンピュータを機能させるためのプログラムであって、前記端末装置が備える各部としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御システム、制御装置、端末装置、及びプログラムに関する。
【背景技術】
【０００２】
従来、生産現場においてＰＬＣ（Programmable Logic Controller）により、各種生産設備の管理および制御が行われている。ＰＬＣは、複数の制御対象の機器のそれぞれを制御するための複数のプログラムを実行可能に記憶している。これらのＰＬＣで実行されるプログラムには、ラダー言語等で記述された工作機械の制御プログラム、および、Java（登録商標）で記述されたプログラム等がある。
【０００３】
このように、異なる言語で記述された複数のプログラム間では、データ共有を行うことができない。このため、各言語で使用されているデータを互いに関連付けてテーブルに記憶し、プログラムからの要求に応じてテーブルを参照し、該当するデータを抽出して、返送する技術が提供されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−１３２２０８号公報（２０００年５月１２日公開）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、ＰＬＣで実行されるこれらの複数のプログラムでは、複数のプログラム間で共通して使用される共有変数が用いられている。共有変数が多数ある場合には、プログラマは、すべての変数の意味、役割、又はどの共有変数がどのプログラムから使用されるのかを記憶しておくことは困難である。
【０００６】
複数のプログラム間で共通して使用される共有変数の値を、あるプログラムから書き換えたり、削除したりした場合、その変更により、他のプログラムの動作に意図しない影響が発生したり、誤動作につながる場合がある。このため、共有変数の値を書き換えたり、削除したりする場合には、プログラマは各プログラムの内容を確認して、共有変数の使用元を調査する必要がある。
【０００７】
しかしながら、各プログラムは異なる言語で書かれており、共有変数がプログラム間で異なる目的で用いられていることがあるため、読解に時間がかかり、プログラムの開発効率に影響が生じていた。
【０００８】
本発明の一態様は、上述した事情に鑑みてなされたものであり、互いに異なる言語で記述された複数のプログラム間で使用されている共有変数をユーザが容易に把握することができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
前記の課題を解決するために、本発明の一態様に係る制御システムは、互いに異なる言語で記述された複数のプログラムの夫々を、使用されている変数の情報とともに実行可能に記憶し、前記プログラムを実行することにより外部機器からの情報収集および外部機器への動作制御の少なくともいずれか一方を行う制御装置と、前記制御装置によって実行される前記複数のプログラムのソースコードを編集可能に表示する端末装置と、を備える制御システムであって、複数の前記プログラムで使用されている共有変数の一覧をプログラム毎に作成する共有変数一覧作成部と、前記共有変数一覧作成部によって作成された複数の共有変数一覧を集計し、各共有変数の使用元のプログラムの情報を含むプログラム一覧を作成するプログラム一覧集計部と、を備えた構成である。
【００１０】
前記の構成によれば、互いに異なる言語で記述された複数のプログラム間で、共通する変数が用いられている場合に、使用されている共有変数を、使用元のプログラムの情報とともにユーザに提示することができる。よって、ユーザは、複数のプログラムの内容の確認に時間をかけることなく、共有変数がどのプログラムで用いられているか、及び各共有変数を削除、又は編集した場合の各プログラムに対する影響を容易に把握することができる。このため、ユーザは、共有変数の削除、又は共有変数の値の変更などの編集を、プログラムの内容の確認に時間をかけることなく行うことができるようになる。
【００１１】
また、本発明の一態様に係る制御システムは、前記の構成において、前記プログラム一覧集計部は、前記共有変数を、使用元のプログラムにおいて、読み込みで使用するか、書き込みで使用するかで別々に集計する構成である。
【００１２】
前記の構成によれば、ユーザは、共有変数の使用元のプログラムの内容の確認に時間をかけることなく、共有変数が使用元の複数のプログラムにおいて、それぞれ読み込みで使用するか、書き込みで使用するかを把握することができる。
【００１３】
また、本発明の一態様に係る制御システムは、前記の構成において、前記プログラム一覧集計部は、前記共有変数の使用元のプログラムにおける、使用箇所のファンクション名、及び行番号の少なくとも何れか一方を集計する構成である。
【００１４】
前記の構成によれば、ユーザは、共有変数の使用元のプログラムの内容の確認に時間をかけることなく、共有変数が使用元の複数のプログラムにおいて、それぞれどこで使用されているのかを把握することができる。
【００１５】
また、本発明の一態様に係る制御システムは、前記共有変数一覧作成部は、前記プログラムにおける前記共有変数の使用履歴を蓄積し、前記プログラム一覧集計部は、前記共有変数の使用元のプログラムにおける使用履歴の情報を含むプログラム一覧を作成する構成である。
【００１６】
前記の構成によれば、ユーザは、共有変数の使用元のプログラムの内容の確認に時間をかけることなく、共有変数が使用元の複数のプログラムにおいて、どのようなタイミングで使用されているのか、どれだけ頻繁に使用されているのかを容易に把握することができる。
【００１７】
また、本発明の一態様に係る制御システムは、前記の構成において、前記制御装置は、前記複数のプログラムを管理するプログラム管理部と、前記共有変数一覧作成部、及び前記プログラム一覧集計部と、を備え、前記端末装置は、前記制御装置から前記プログラム一覧を取得するプログラム一覧取得部と、取得した前記プログラム一覧を表示するプログラム一覧表示部と、を備える構成である。
【００１８】
前記の構成によれば、制御装置の側でプログラム一覧を集計し、端末装置に表示させることができる。
【００１９】
また、本発明の一態様に係る制御システムは、前記の構成において、前記制御装置は、前記複数のプログラムを管理するプログラム管理部と、前記共有変数一覧作成部とを備え、前記端末装置は、前記制御装置から前記共有変数一覧を取得する共有変数一覧取得部と、前記プログラム一覧集計部と、作成したプログラム一覧を表示するプログラム一覧表示部と、を備える構成である。
【００２０】
前記の構成によれば、端末装置の側でプログラム一覧を集計し、表示することができる。
【００２１】
また、本発明の一態様に係る制御システムは、前記の構成において、前記プログラム一覧表示部は、前記共有変数を削除する操作がユーザによって行われた場合に、削除対象の前記共有変数を使用するプログラムの一覧を表示する構成である。
【００２２】
前記の構成によれば、ユーザは、共有変数を削除する際に、削除しようとしている共有変数が複数のプログラムで使用されていることを知ることができ、当該共有変数を削除することによる他のプログラムの動作に生じる影響、又は他のプログラムに生じ得る誤動作を考慮することができる。よって、ユーザは、共有変数を削除することによって、意図しない影響が他のプログラムに生じたり、他のプログラムに誤動作が起きたりするのを未然に防ぐことができる。
【００２３】
また、前記の課題を解決するために、本発明の一態様に係る制御装置は、前記制御システムが備える制御装置である。
【００２４】
前記の構成によれば、例えばＰＬＣ等の産業用コントローラを用いて、共有変数の使用元のプログラムの情報を含むプログラム一覧を作成ことができる。
【００２５】
また、前記の課題を解決するために、本発明の一態様に係る端末装置は、前記制御システムが備える端末装置である。
【００２６】
前記の構成によれば、一般的なＰＣ、及びタブレット端末等を用いて、互いに異なる言語で記述された複数のプログラムの編集を可能とすることができる。
【００２７】
また、前記の課題を解決するために、本発明の一態様に係るプログラムは、制御システムが備える制御装置としてコンピュータを機能させるプログラムであって、前記制御装置が備える各部としてコンピュータを機能させるためのプログラムである。
【００２８】
前記の構成によれば、互いに異なる言語で記述された複数のプログラム間で使用されている共有変数を、使用元のプログラムの情報とともにユーザに提示することができる。
【００２９】
また、前記の課題を解決するために、本発明の一態様に係るプログラムは、制御システムが備える端末装置としてコンピュータを機能させるためのプログラムであって、前記端末装置が備える各部としてコンピュータを機能させるためのプログラム。
【００３０】
前記の構成によれば、互いに異なる言語で記述された複数のプログラム間で使用されている共有変数を、使用元のプログラムの情報とともにユーザに提示することができる。
【発明の効果】
【００３１】
本発明の一態様によれば、互いに異なる言語で記述された複数のプログラム間で使用されている共有変数をユーザが容易に把握することができる。
【図面の簡単な説明】
【００３２】
【図１】制御システムの概要を示す図である。
【図２】第１の実施形態の制御システムの機能構成を示すブロック図である。
【図３】（ａ）および（ｂ）はプログラム一覧の一例を示す図である。
【図４】（ａ）は共有変数使用情報ファイルの一例、（ｂ）はプログラム一覧の一例を示す図である。
【図５】（ａ）は共有変数使用情報ファイルの一例、（ｂ）はプログラム一覧の一例を示す図である。
【図６】（ａ）は共有変数使用情報ファイルの一例、（ｂ）はプログラム一覧の一例を示す図である。
【図７】（ａ）〜（ｄ）は端末装置におけるプログラム一覧の表示例を示す図である。
【図８】制御装置の処理の流れを示すフローチャートである。
【図９】端末装置の処理の流れを示すフローチャートである。
【図１０】制御システムの処理の流れを示すフローチャートである。
【図１１】端末装置の表示例を示す図である。
【図１２】制御装置と端末装置との間の処理の流れを示すシーケンス図である。
【図１３】第２の実施形態の制御システムの機能構成を示すブロック図である。
【図１４】第２の実施形態の制御装置の処理の流れを示すフローチャートである。
【図１５】第２の実施形態の端末装置の処理の流れを示すフローチャートである。
【図１６】第２の実施形態の制御装置と端末装置との間の処理の流れを示すシーケンス図である。
【図１７】第３の実施形態の制御システムの機能構成を示すブロック図である。
【図１８】共有変数使用情報ファイルの一例を示す図である。
【図１９】第３の実施形態の制御装置の処理の流れを示すフローチャートである。
【図２０】第３の実施形態の端末装置の処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００３３】
以下、本発明の一側面に係る実施の形態（以下、「本実施形態」とも表記する）を、図面に基づいて説明する。
【００３４】
§１  適用例
図１を用いて、本発明が適用される場面の一例について説明する。図１は、本実施形態に係る制御システム１の概要を示す図である。制御システム１は、制御装置１００と、端末装置２００と、を備えている。
【００３５】
制御装置１００は、ＰＬＣ（Programmable Logic Controller）であり、制御対象である複数のフィールド機器５０に接続されている。フィールド機器５０は、例えば、Ｉ／Ｏ装置５１、工作機械５２、およびベルトコンベアのサーボモータ５３等である。
【００３６】
制御装置１００は、制御対象のフィールド機器５０に応じたプログラムを実行することによりフィールド機器５０等の外部機器からの情報収集および外部機器への動作制御の少なくともいずれか一方を行う。制御装置１００は、複数のフィールド機器５０のそれぞれを制御することで、生産ラインと各フィールド機器５０とを同期制御する。
【００３７】
制御装置１００によって実行される複数のプログラムのそれぞれは、互いに同じ言語によって記述されているものもあるし、互いに異なる言語によって記述されているものもある。制御装置１００には、例えば、ラダー言語により記述されたＰＬＣプログラム、および、Ｊａｖａ（登録商標）により記述されたプログラム等の複数のプログラムが実行可能に記憶されている。なお、プログラムの種類としては、他にロボット用言語により記述されたロボットプログラム、Ｇ−コードにより記述されたＮＣプログラムなどが挙げられる。制御装置１００によって実行されるこれらのプログラムのそれぞれは、端末装置２００に対する操作によって、ユーザが編集可能である。
【００３８】
端末装置２００は、制御装置１００と通信し、制御装置１００によって実行される複数のプログラムのそれぞれを編集可能に表示する。端末装置２００は、制御装置１００によって実行される、互いに異なる言語によって記述された複数のプログラムを１つの開発環境で編集可能とする開発ツールをユーザに提供する。
【００３９】
このように、制御システム１は、制御装置１００が複数のプログラムを実行することにより外部機器からの情報収集および外部機器への動作制御の少なくともいずれか一方を行うとともに、端末装置２００が、制御装置１００によって実行される複数のプログラムを編集可能とする開発ツールをユーザに提供する。
【００４０】
§２  構成例
〔第１の実施形態〕
図２〜図７に基づいて、本発明の第１の実施形態に係る制御システム１の構成について詳細に説明する。図２は、第１の実施形態の制御システム１の要部構成を示すブロック図である。図３の（ａ）及び（ｂ）は制御システム１によって生成されるプログラム一覧の一例を示す図である。図４〜図６の（ａ）は、制御システム１によって生成される共有変数一覧の例を示す図であり、図４〜図６の（ｂ）は、共有変数一覧を集計して生成されるプログラム一覧の例を示す図である。図７の（ａ）〜（ｄ）は、端末装置２００におけるプログラム一覧の表示例を示す図である。
【００４１】
（制御装置１００の構成）
制御装置１００は、例えば産業用コントローラであり、ＰＬＣを好適に用いることができる。
【００４２】
制御装置１００は、制御部１１０と、ストレージ１８０と、を備えている。
【００４３】
ストレージ１８０は、例えば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などの不揮発性記憶装置で構成されている。ストレージ１８０には、互いに異なる言語によって記述されている複数のプログラムが実行可能に記憶されている。図２には、一例として、Ａ言語で記述されたＡ言語プログラム１８１と、Ｂ言語で記述されたＢ言語プログラム１８５とがストレージ１８０に格納されている場合が示されている。
【００４４】
Ａ言語プログラム１８１は、インタプリタ型のプログラムである。Ａ言語プログラム１８１は、プログラム内で使用している共有変数の情報をソースコードによって保持している。なお、Ａ言語プログラム１８１は、プログラム内で使用している共有変数の情報を、当該情報が書き込まれた共有変数使用情報ファイル１８３によって保持していてもよい。
【００４５】
Ｂ言語プログラム１８５は、インタプリタ型のプログラム、又はコンパイル型のプログラムである。Ｂ言語プログラム１８５は、プログラム内で使用している共有変数の情報を、当該情報が書き込まれた共有変数使用情報ファイル１８６によって保持している。
【００４６】
このように、ストレージ１８０は、互いに異なる言語で記述された複数のプログラム１８１，１８５の夫々を、プログラム内で使用されている変数の情報とともに実行可能に記憶している。
【００４７】
制御部１１０は、制御装置１００の各部を統括的に制御する演算処理部であり、図示は省略するが、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）などと称される演算部、および作業領域としてのメモリなどで構成される。制御装置１００は、１又は複数の制御部１１０を有していてもよい。
【００４８】
制御部１１０は、プログラム実行部１２０と、プログラム管理部１３０と、を含んでいる。
【００４９】
プログラム実行部１２０は、ストレージ１８０に格納された各種プログラムを読出して、主メモリに展開して実行することで、制御対象の外部機器からの情報収集および、当該外部機器への動作制御の少なくともいずれか一方を実現する。
【００５０】
プログラム管理部１３０は、ストレージ１８０に格納された複数のプログラムを管理する。プログラム管理部１３０は、ストレージ１８０に格納された複数のプログラムを１つの管理部で統括的に管理する構成であってもよいし、プログラム毎に個別の管理部で各プログラムを管理する構成であってもよい。本実施形態では、プログラム管理部１３０が、ストレージ１８０に格納された複数のプログラム毎に個別の管理部を備えている場合を例に説明する。
【００５１】
プログラム管理部１３０は、Ａ言語プログラム管理部１４０と、Ｂ言語プログラム管理部１５０と、プログラム一覧集計部１６０と、を含んでいる。
【００５２】
Ａ言語プログラム管理部１４０は、ストレージ１８０に格納されているＡ言語プログラム１８１で使用されている共有変数を管理する。Ａ言語プログラム管理部１４０は、Ａ言語プログラム１８１で使用されている共有変数の一覧を作成する共有変数一覧作成部１４１を有している。
【００５３】
共有変数一覧作成部１４１は、インタプリタ型言語で実装されたＡ言語プログラム１８１のソースコード１８２を解析することで、共有変数一覧を作成してもよい。Ａ言語プログラム１８１が、ストレージ１８０に共有変数使用情報ファイル１８３とともに格納されている場合には、共有変数一覧作成部１４１は、共有変数使用情報ファイル１８３を参照して、共有変数一覧を作成してもよい。
【００５４】
共有変数一覧作成部１４１は、Ａ言語プログラム１８１において、各共有変数が読み込みで使用されるか、書き込みで使用されるかの情報を含む共有変数一覧を作成する。また、共有変数一覧作成部１４１は、各共有変数のＡ言語プログラム１８１における使用箇所のファンクション名、及び行番号の少なくとも何れか一方を含む共有変数一覧を作成する。
【００５５】
また、共有変数一覧作成部１４１は、プログラム実行部１２０によってＡ言語プログラム１８１が実行された際の、Ａ言語プログラム１８１における各共有変数の使用履歴を蓄積する。共有変数一覧作成部１４１は、各共有変数のＡ言語プログラム１８１における使用履歴の情報を含む共有変数一覧を作成する。
【００５６】
Ｂ言語プログラム管理部１５０は、ストレージ１８０に格納されているＢ言語プログラム１８５で使用されている共有変数を管理する。Ｂ言語プログラム管理部１５０は、Ｂ言語プログラム１８５で使用されている共有変数の一覧を作成する共有変数一覧作成部１５１を有している。共有変数一覧作成部１５１は、コンパイラ型言語で実装されたＢ言語プログラム１８５に対応付けてストレージ１８０に記憶されている共有変数使用情報ファイル１８６を参照して、共有変数一覧を作成する。
【００５７】
共有変数一覧作成部１５１は、Ｂ言語プログラム１８５において、各共有変数が読み込みで使用されるか、書き込みで使用されるかの情報を含む共有変数一覧を作成する。また、共有変数一覧作成部１５１は、各共有変数のＢ言語プログラム１８５における使用箇所のファンクション名、及び行番号の少なくとも何れか一方を含む共有変数一覧を作成する。
【００５８】
また、共有変数一覧作成部１５１は、プログラム実行部１２０によってＢ言語プログラム１８５が実行された際の、Ｂ言語プログラム１８５における各共有変数の使用履歴を蓄積する。共有変数一覧作成部１５１は、各共有変数のＢ言語プログラム１８５における使用履歴の情報を含む共有変数一覧を作成する。
【００５９】
このように、プログラム管理部１３０は、ストレージ１８０に格納されている複数のプログラムで使用されている共有変数の一覧をプログラム毎に作成する。プログラム一覧集計部１６０は、共有変数一覧作成部１４１，１５１によって複数プログラム毎に作成された、複数の共有変数一覧を集計して、各共有変数の使用元のプログラムの情報を含むプログラム一覧を作成する。
【００６０】
図３の（ａ）に示すように、プログラム一覧は、共有変数の識別子が、使用元のプログラムの識別子に対応付けられた表の態様であってもよい。使用元のプログラムの識別子は、例えば、ユーザがプログラムに設定した名前であってもよいし、プログラムのファイル名であってもよいし、プログラムのファイルパスであってもよいし、これらの複数を組み合わせたものであってもよい。
【００６１】
また、プログラム一覧は、各共有変数と、共有変数の使用元のプログラムに関する情報と、含んでいればよく、表の態様に限定されるものではない。また、表の態様であっても、図３の（ｂ）に示すように、共有変数の一つ識別子に対して、複数の使用元のプログラムの識別子を対応付けた表の態様であってもよい。
【００６２】
図４の（ａ）に示すように、共有変数一覧作成部１４１，１５１によって作成された共有変数一覧には、各共有変数が定義で使用されているか、読み込みで使用されるか、書き込みで使用されるかの情報が含まれている。プログラム一覧集計部１６０は、共有変数一覧作成部１４１，１５１によって作成された、複数の共有変数一覧を参照して、共有変数を、使用元のプログラムにおいて、定義で使用されているか、読み込みで使用されているか、書き込みで使用されているかで別々に集計してもよい。図４の（ｂ）は、共有変数を、使用元のプログラムにおいて、定義で使用されているか、読み込みで使用されているか、書き込みで使用されているかで別々に集計して作成されたプログラム一覧の例を示している。
【００６３】
このように、プログラム一覧集計部１６０は、共有変数を、使用元のプログラムにおいて、定義で使用されているか、読み込みで使用されているか、書き込みで使用されているかで別々に集計するため以下のような効果が得られる。即ち、ユーザが所定の共有変数の使用元を把握しようとする場合に、当該共有変数を定義しているプログラム、書き込んでいるプログラム、読み込んでいるプログラムをそれぞれ別々に把握することができる。よって、ユーザは各プログラムの内容の確認、及び共有変数の使用元の調査を効率良く、短時間で行うことができる。
【００６４】
これにより、例えば、ある共有変数が意図しない値になっているとき、ユーザは、当該共有変数の書き込みを行っているプログラムの一覧のみを確認することで原因を特定することができ、当該共有変数の読み込みを行っているプログラムの一覧は確認する必要がない。
【００６５】
また、共有変数一覧作成部１４１，１５１によって作成された共有変数一覧には、各共有変数の、プログラムにおける使用箇所のファンクション名、及び行番号の少なくとも何れかが含まれていてもよい。図５の（ａ）は、各共有変数の、プログラムにおける使用箇所のファンクション名、及び行番号の少なくとも何れかを含む共有変数一覧の例を示している。プログラム一覧集計部１６０は、共有変数一覧作成部１４１，１５１によって作成された、複数の共有変数一覧を参照して、共有変数を、使用元のプログラムにおける、使用箇所のファンクション名、及び行番号の少なくとも何れか一方に基づいて集計してもよい。
【００６６】
図５の（ｂ）は、共有変数を、使用元のプログラムにおける、使用箇所のファンクション名、及び行番号の少なくとも何れか一方に基づいて集計して作成されたプログラム一覧の例を示している。このように、プログラム一覧集計部１６０は、共有変数を、使用元のプログラムにおける、使用箇所のファンクション名、及び行番号の少なくとも何れか一方に基づいて集計するため、ユーザは、プログラム一覧を参照することで、共有変数の使用元をより詳細に把握することができる。
【００６７】
また、共有変数一覧作成部１４１，１５１によって作成された共有変数一覧には、各共有変数のプログラムにおける使用履歴の情報が含まれている。図６の（ａ）は、各共有変数のプログラムにおける使用履歴の情報を含む共有変数一覧の例を示している。プログラム一覧集計部１６０は、共有変数一覧作成部１４１，１５１によって作成された、複数の共有変数一覧を参照して、共有変数の使用元のプログラムにおける使用履歴の情報を含むプログラム一覧を作成してもよい。図６の（ｂ）は、共有変数の使用元のプログラムにおける使用履歴の情報を含むプログラム一覧の例を示している。
【００６８】
（端末装置２００の構成）
端末装置２００は、一般的なＰＣ端末、およびタブレット端末等であり、ユーザ操作を受け付ける入力機能と、演算結果等をグラフィカルに表示する表示機能とを備える装置である。端末装置２００は、制御装置１００において実行される複数のプログラムのそれぞれのソースコードを、ユーザ操作によって編集するエディタとして機能する。
【００６９】
端末装置２００は、端末装置２００の各部を統括的に制御するエディタ制御部２１０を備えている。エディタ制御部２１０は、プログラム一覧取得部２１１と、プログラム一覧表示部２１２とを備えている。
【００７０】
プログラム一覧取得部２１１は、制御装置１００のプログラム一覧集計部１６０が作成したプログラム一覧を、制御装置１００から取得する。
【００７１】
プログラム一覧表示部２１２は、プログラム一覧取得部２１１が取得したプログラム一覧をグラフィカルに表示する。
【００７２】
図７の（ａ）に示すように、プログラム一覧表示部２１２は、共有変数と、共有変数の使用元のプログラムとが対応付けられたプログラム一覧を表形式で表示してもよい。また、図７の（ｂ）に示すように、プログラム一覧表示部２１２は、共有変数と、共有変数の使用元のプログラムとを、図形式で対応付けて表示してもよい。図７の（ｂ）に示した例では、プログラム一覧表示部２１２は、共有変数である「status」を、「PressSafetyWatcher」と、「PressStatusWatcher」との二つのプログラムで使用されていることを図形式で示している。
【００７３】
また、図７の（ｃ）に示すように、プログラム一覧表示部２１２は、共有変数と、共有変数の使用元のプログラムとを、テキスト形式で対応付けて表示してもよい。また、図７の（ｄ）に示すように、プログラム一覧表示部２１２は、共有変数にマウスのカーソールを被せると、当該共有変数の使用元のプログラムの一覧を、ツールチップで表示してもよい。
【００７４】
（制御装置１００の処理の流れについて）
図８は、制御装置１００における、プログラム一覧作成処理の流れを示すフローチャートである。制御装置１００は、ストレージ１８０に記憶している複数のプログラムの少なくとも何れか１つに更新が行われた場合に、プログラム一覧作成処理を実行してもよい。また、制御装置１００は、端末装置２００を介して、ユーザがストレージ１８０に記憶している複数のプログラムの少なくとも何れか１つを編集する操作を行った場合に、プログラム一覧作成処理を実行してもよい。
【００７５】
制御部１１０のプログラム管理部１３０は、ストレージ１８０における所定のプログラムフォルダ内に格納されている全てのプログラムを列挙する（ステップＳ１）
プログラム管理部１３０は、全てのプログラムについて、繰り返し処理、又は並行処理によって、各言語プログラム管理部１４０，１５０において、共有変数一覧作成部１４１，１５１の機能により、下記のステップＳ３の処理を実行する（ステップＳ２）。
【００７６】
共有変数一覧作成部１４１，１５１は、各プログラムが定義している変数、読み込み又は書き込みで使用している変数の一覧である共有変数一覧を作成する（ステップＳ３）。
【００７７】
プログラム管理部１３０は、全てのプログラムについて、ステップＳ３の処理が終了するまで待機する（ステップＳ４）。
【００７８】
プログラム管理部１３０は、全てのプログラムについて、ステップＳ３の処理が終了したら、ステップＳ３で作成した複数の共有変数一覧を、プログラム一覧集計部１６０の機能により集計し、各共有変数の使用元のプログラムの情報を含む一覧であるプログラム一覧を作成し、保持する（ステップＳ５）。
【００７９】
（端末装置２００の処理の流れについて）
図９は、端末装置２００における、プログラム一覧を表示する処理の流れを示すフローチャートである。
【００８０】
端末装置２００は、端末装置２００においてユーザが、制御装置１００によって実行可能に記憶されている複数のプログラムによって使用されている共有変数の使用元のプログラム一覧の表示を要求する操作を行った場合に、プログラム一覧を表示する処理を実行する。端末装置２００は、ユーザが、制御装置１００によって実行可能に記憶されている複数のプログラムの少なくとも何れか１つの編集を開始する操作を行った場合に、プログラム一覧を表示する処理を実行してもよい。
【００８１】
端末装置２００のエディタ制御部２１０は、ユーザによる各共有変数の使用元のプログラム一覧の表示要求を受け付ける（ステップＳ１１）。
【００８２】
エディタ制御部２１０は、プログラム一覧取得部２１１の機能により、制御装置１００のプログラム管理部１３０から、各共有変数の使用元のプログラム一覧を取得する（ステップＳ１２）。
【００８３】
エディタ制御部２１０は、プログラム一覧取得部２１１によって取得した各共有変数の使用元のプログラム一覧をプログラム一覧表示部２１２の機能により表示する（ステップＳ１３）。
【００８４】
このように、制御システム１は、制御装置１００において生成された各共有変数の使用元の情報を含むプログラム一覧を、端末装置２００に表示してユーザに提示することができる。この構成によれば、互いに異なる言語で記述された複数のプログラム間で、共有変数が異なる目的で用いられている場合であっても、共有変数が使用されているプログラム、及び各プログラムにおける共有変数の使用目的をユーザが容易に把握することができる。よって、ユーザは、複数のプログラムの解読に時間をかけることなく、共有変数の削除、又は共有変数の値の変更などの編集を行うことができる。
【００８５】
（端末装置２００におけるプログラム編集処理の流れについて）
上述したように、ユーザは、端末装置２００に対する操作で、制御装置１００によって実行される複数のプログラムのソースコードをそれぞれ編集することができる。端末装置２００には、プログラム１８１，１８５のソースコードが保存されている。プログラム１８１，１８５のソースコードは、端末装置２００のプログラムエディタにて作成されて、端末装置２００に保存されていてもよい。また、制御装置１００に格納されているプログラム１８１のソースコード１８２のコピーが、端末装置２００に送信されて、端末装置２００に保存されてもよい。また、プログラム１８１のソースコード１８２は、不図示の別の装置、例えばソースコードを管理するサーバ等から、端末装置２００に送信されて、端末装置２００に保存されてもよい。
【００８６】
ユーザは、端末装置２００において、ソースコードの開発、及びソースコードの編集を行うことができる。インタプリタ型のプログラムでは、端末装置２００においてユーザによって開発、又は編集されたソースコードは、制御装置１００に送信され、ストレージ１８０に格納される。コンパイル型のプログラムでは、端末装置２００においてユーザによって開発、又は編集されたコードがビルドされた後に、制御装置１００へと転送されて、ストレージ１８０に格納される。
【００８７】
端末装置２００は、ユーザが端末装置２００に保存されているソースコードを編集し、１又は複数のプログラムで使用されている共有変数を削除する操作を行った際に、当該共有変数の削除による１又は複数のプログラムに対する影響をユーザに提示する処理を行うことができてもよい。図１０は、ユーザが共有変数を削除する操作を行った場合の端末装置２００による処理の流れを示すフローチャートである。
【００８８】
ユーザが端末装置２００に対して共有変数を削除する操作を行うと、端末装置２００のエディタ制御部２１０は、ユーザによる操作内容を受け付ける（ステップＳ２１）。
【００８９】
エディタ制御部２１０は、プログラム一覧取得部２１１の機能により、制御装置１００のプログラム管理部１３０から、各共有変数の使用元のプログラム一覧を取得し、取得したプログラム一覧を参照して、対象の共有変数を使用するプログラムの存在を確認する（ステップＳ２２）。
【００９０】
エディタ制御部２１０は、対象の共有変数を使用するプログラムが存在するか否かを判定する（ステップＳ２３）。エディタ制御部２１０は、対象の共有変数を使用するプログラムが存在すると判定すると（ステップＳ２３でＹＥＳ）、ステップＳ２４に進む。エディタ制御部２１０は、対象の共有変数を使用するプログラムが存在しないと判定すると（ステップＳ２３でＮＯ）、ステップＳ２６に進む。
【００９１】
エディタ制御部２１０は、対象の共有変数を使用するプログラムが存在する旨と、対象の共有変数を本当にユーザが削除を望むのか否かを確認する表示を行う（ステップＳ２４）。図１１は、エディタ制御部２１０によって端末装置２００の表示画面に表示される確認画面の一例を示す図である。図１１に示すように、端末装置２００の表示画面には、対象の共有変数が使用されているプログラム一覧が表示される。
【００９２】
例えば、ユーザが共有変数である「status」を削除する操作を行った場合、エディタ制御部２１０は、「status」を共有変数として使用しているプログラムである「PressSafetyWatcher」、及び「PressStatusWatcher」を表示する。また、エディタ制御部２１０は、共有変数「status」が使用されている各プログラム「PressSafetyWatcher」、及び「PressStatusWatcher」のファイル名、及びファイルパス等をプログラムの名称とともに表示してもよい。なお、エディタ制御部２１０が表示する、対象の共有変数を使用するプログラムが存在する旨の確認画面の形式は、図１１に示したダイアログ形式に限られるものではない。
【００９３】
確認画面には、対象の共有変数を削除するか、又は対象の共有変数の削除をキャンセルするかをユーザが操作によって選択指示することができる操作ボタン、又はチェックボックス等が表示される。ユーザは、確認画面に表示されたこれらの操作ボタン、又はチェックボックスに対して任意の操作を行うことで、対象の共有変数を削除する、又は対象の共有変数の削除をキャンセルすることを指示する操作を行うことができる。
【００９４】
エディタ制御部２１０は、確認画面に対する操作で、ユーザが対象の共有変数の削除を許可したか否かを判定する（ステップＳ２５）。エディタ制御部２１０は、ユーザが対象の共有変数の削除を許可したと判定すると（ステップＳ２５でＹＥＳ）、ステップＳ２６に進む。エディタ制御部２１０は、ユーザが対象の共有変数の削除を許可しなかった（キャンセルした）と判定すると（ステップＳ２５でＮＯ）、処理を終了する。
【００９５】
エディタ制御部２１０は、端末装置２００に保存されている複数のプログラム１８１，１８５のソースコードのそれぞれに対して、対象の共有変数を削除する編集を行う（ステップＳ２６）。
【００９６】
このように、端末装置２００のプログラム一覧表示部２１２は、共有変数を削除する操作がユーザによって行われた場合に、削除対象の共有変数を使用するプログラムの一覧を表示することができてもよい。これにより、ユーザは、削除対象の共有変数が、どのプログラムで使用されているのかを容易に把握することができ、削除するか否かの判断を容易に行うことができる。
【００９７】
（制御装置１００、及び端末装置２００による処理の流れの変形例）
上述のように、制御装置１００が、プログラム１８１，１８５の更新時や、ユーザによる編集時に、予めプログラム一覧を作成しておくことで、ユーザが、端末装置２００においてプログラム一覧の表示を要求した際に、速やかに、プログラム一覧をユーザに提示することができる。
【００９８】
一方で、制御装置１００は、ユーザが端末装置２００に対する操作によってプログラム一覧の表示を要求した際に、プログラム一覧を作成する構成であってもよい。
【００９９】
図１２は、ユーザが端末装置２００に対する操作によってプログラム一覧の表示を要求した際に、制御装置１００がプログラム一覧を作成する場合の、制御装置１００と、端末装置２００との間の処理の流れを示すシーケンス図である。
【０１００】
端末装置２００のエディタ制御部２１０は、ユーザによる各共有変数の使用元のプログラム一覧の表示要求を受け付ける（ステップＳ３１）。
【０１０１】
エディタ制御部２１０は、プログラム一覧取得部２１１の機能により、制御装置１００のプログラム管理部１３０に対して、各共有変数の使用元のプログラム一覧の作成指示を送信する（ステップＳ３２）。
【０１０２】
制御装置１００の制御部１１０は、プログラム管理部１３０を介して、端末装置２００のエディタ制御部２１０から、各共有変数の使用元のプログラム一覧の作成指示を受信し、まず、ストレージ１８０における所定のプログラムフォルダ内に格納されている全てのプログラムを列挙する（ステップＳ３３）
プログラム管理部１３０は、全てのプログラムについて、繰り返し処理、又は並行処理によって、各言語プログラム管理部１４０，１５０において、共有変数一覧作成部１４１，１５１の機能により、下記のステップＳ３５の処理を実行する（ステップＳ３４）。
【０１０３】
共有変数一覧作成部１４１，１５１は、各プログラムが定義している変数、読み込み又は書き込みで使用している変数の一覧である共有変数一覧を作成する（ステップＳ３５）。
【０１０４】
プログラム管理部１３０は、全てのプログラムについて、ステップＳ３５の処理が終了するまで待機する（ステップＳ３６）。
【０１０５】
プログラム管理部１３０は、全てのプログラムについて、ステップＳ３５の処理が終了したら、ステップＳ３５で作成した複数の共有変数一覧を、プログラム一覧集計部１６０の機能により集計し、各共有変数の使用元のプログラムの情報を含む一覧であるプログラム一覧を作成し、端末装置２００にプログラム一覧が終了した旨通知する（ステップＳ３７）。
【０１０６】
端末装置２００のエディタ制御部２１０は、プログラム一覧取得部２１１の機能により、制御装置１００のプログラム管理部１３０から、各共有変数の使用元のプログラム一覧を取得する（ステップＳ３８）。
【０１０７】
エディタ制御部２１０は、プログラム一覧取得部２１１によって取得した各共有変数の使用元のプログラム一覧をプログラム一覧表示部２１２の機能により表示する（ステップＳ３９）。
【０１０８】
〔第２の実施形態〕
本発明の第２の実施形態について、以下に説明する。なお、説明の便宜上、上記第１の実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を繰り返さない。
【０１０９】
図１３は、第２の実施形態に係る制御システム２の要部構成を示すブロック図である。図１３に示すように、第２の実施形態の制御システム２では、共有変数の使用元のプログラムの情報を含むプログラム一覧を作成するプログラム一覧集計部４１２が、制御装置３００ではなく、端末装置４００に備えられている点で、第１の実施形態の制御システム１とは構成を異にする。なお、制御装置３００の構成は、プログラム管理部３３０がプログラム一覧集計部４１２を備えていない点の他は、第１の実施形態の制御装置１００の構成と同様であるため、その説明を省略する。
【０１１０】
端末装置４００は、端末装置４００の各部を統括的に制御する演算装置であるエディタ制御部４１０を備えている。エディタ制御部４１０は、共有変数一覧取得部４１１と、プログラム一覧集計部４１２と、プログラム一覧表示部４１３と、を含んでいる。共有変数一覧取得部４１１は、制御装置３００のプログラム管理部３３０から、複数の共有変数一覧作成部１４１，１５１によって作成された共有変数一覧のそれぞれを取得する。
【０１１１】
プログラム一覧集計部４１２は、共有変数一覧取得部４１１が制御装置３００から取得した複数の共有変数一覧を集計して、各共有変数の使用元のプログラムの情報を含むプログラム一覧を作成する。プログラム一覧表示部４１３は、プログラム一覧集計部４１２が作成したプログラム一覧を表示画面に表示する。
【０１１２】
（制御装置３００の処理の流れについて）
図１４は、制御装置３００における、共有変数一覧作成処理の流れを示すフローチャートである。制御装置３００は、ストレージ１８０に記憶している複数のプログラムの少なくとも何れか１つに更新が行われた場合に、共有変数一覧作成処理を実行してもよい。また、制御装置３００は、端末装置４００を介して、ユーザがストレージ１８０に記憶している複数のプログラムの少なくとも何れか１つを編集する操作を行った場合に、共有変数一覧作成処理を実行してもよい。
【０１１３】
制御部３１０のプログラム管理部３３０は、ストレージ１８０における所定のプログラムフォルダ内に格納されている全てのプログラムを列挙する（ステップＳ４１）
プログラム管理部３３０は、全てのプログラムについて、繰り返し処理、又は並行処理によって、各言語プログラム管理部１４０，１５０において、共有変数一覧作成部１４１，１５１の機能により、下記のステップＳ４３の処理を実行する（ステップＳ４２）。
【０１１４】
共有変数一覧作成部１４１，１５１は、各プログラムが定義している変数、読み込み又は書き込みで使用している変数の一覧である共有変数一覧を作成する（ステップＳ４３）。
【０１１５】
プログラム管理部３３０は、全てのプログラムについて、ステップＳ４３の処理が終了するまで待機する（ステップＳ４４）。
【０１１６】
（端末装置４００の処理の流れについて）
図１５は、端末装置４００における、プログラム一覧を表示する処理の流れを示すフローチャートである。
【０１１７】
端末装置４００は、端末装置４００においてユーザが、制御装置３００によって実行可能に記憶されている複数のプログラムによって使用されている共有変数の使用元のプログラム一覧の表示を要求する操作を行った場合に、プログラム一覧を表示する処理を実行する。端末装置４００は、ユーザが、制御装置３００によって実行可能に記憶されている複数のプログラムの少なくとも何れか１つの編集を開始する操作を行った場合に、プログラム一覧を表示する処理を実行してもよい。
【０１１８】
端末装置４００のエディタ制御部４１０は、ユーザによる各共有変数の使用元のプログラム一覧の表示要求を受け付ける（ステップＳ５１）。
【０１１９】
エディタ制御部４１０は、共有変数一覧取得部４１１の機能により、制御装置３００のプログラム管理部３３０から、各プログラムの共有変数一覧を取得する（ステップＳ５２）。
【０１２０】
エディタ制御部４１０は、プログラム一覧集計部４１２の機能により、ステップＳ５２で取得した複数の共有変数一覧を集計し、各共有変数の使用元のプログラムの情報を含む一覧であるプログラム一覧を作成し、保持する（ステップＳ５３）。
【０１２１】
エディタ制御部４１０は、プログラム一覧集計部４１２によって作成した各共有変数の使用元のプログラム一覧をプログラム一覧表示部４１３の機能により表示する（ステップＳ５４）。
【０１２２】
（制御装置３００、及び端末装置４００による処理の流れの変形例）
上述のように、制御装置３００が、プログラム１８１，１８５の更新時や、ユーザによる編集時に、予めプログラム一覧を作成しておくことで、ユーザが、端末装置４００においてプログラム一覧の表示を要求した際に、速やかに、プログラム一覧をユーザに提示することができる。
【０１２３】
一方で、制御装置３００は、ユーザが端末装置４００に対する操作によってプログラム一覧の表示を要求した際に、プログラム一覧を作成する構成であってもよい。
【０１２４】
図１６は、ユーザが端末装置４００に対する操作によってプログラム一覧の表示を要求した際に、制御装置３００がプログラム一覧を作成する場合の、制御装置３００と、端末装置４００との間の処理の流れを示すシーケンス図である。
【０１２５】
端末装置４００のエディタ制御部４１０は、ユーザによる各共有変数の使用元のプログラム一覧の表示要求を受け付ける（ステップＳ６１）。
【０１２６】
エディタ制御部４１０は、共有変数一覧取得部４１１の機能により、制御装置３００のプログラム管理部３３０に対して、各プログラムの共有変数一覧の作成指示を送信する（ステップＳ６２）。
【０１２７】
制御装置３００の制御部３１０は、プログラム管理部３３０を介して、端末装置４００のエディタ制御部４１０から、各プログラムの共有変数一覧の作成指示を受信し、まず、ストレージ１８０内に格納されている全てのプログラムを列挙する（ステップＳ６３）。
【０１２８】
プログラム管理部３３０は、全てのプログラムについて、繰り返し処理、又は並行処理によって、各言語プログラム管理部１４０，１５０において、共有変数一覧作成部１４１，１５１の機能により、下記のステップＳ６５の処理を実行する（ステップＳ６４）。
【０１２９】
共有変数一覧作成部１４１，１５１は、各プログラムが定義している変数、読み込み又は書き込みで使用している変数の一覧である共有変数一覧を作成する（ステップＳ６５）。
【０１３０】
プログラム管理部３３０は、全てのプログラムについて、ステップＳ６５の処理が終了するまで待機する（ステップＳ６６）。プログラム管理部３３０は、全てのプログラムについて、ステップＳ６５の処理が終了した後、共有変数一覧作成が終了した旨を端末装置４００に通知してもよい。
【０１３１】
端末装置４００のエディタ制御部４１０は、共有変数一覧取得部４１１の機能により、制御装置３００のプログラム管理部３３０から、各プログラムの共有変数一覧を取得する（ステップＳ６７）。
【０１３２】
エディタ制御部４１０は、プログラム一覧集計部４１２の機能により、ステップＳ６７で取得した各プログラムの共有変数一覧を集計し、各共有変数の使用元のプログラムの情報を含む一覧であるプログラム一覧を作成し保持する（ステップＳ６８）。
【０１３３】
エディタ制御部４１０は、プログラム一覧集計部４１２によって作成された各共有変数の使用元の情報を含むプログラム一覧をプログラム一覧表示部４１３の機能により表示する（ステップＳ６９）。
【０１３４】
このように、制御システム２は、制御装置３００において生成された各プログラムの共有変数一覧を、端末装置４００が取得し、端末装置４００において各共有変数の使用元の情報を含むプログラム一覧を生成することができてもよい。この構成によれば、互いに異なる言語で記述された複数のプログラム間で、共有変数が異なる目的で用いられている場合であっても、共有変数が使用されているプログラム、及び、各プログラムにおける共有変数の使用目的をユーザが容易に把握することができる。よって、ユーザは、複数のプログラムの解読に時間をかけることなく、共有変数の削除、又は共有変数の値の変更などの編集を行うことができる。
【０１３５】
〔第３の実施形態〕
本発明の第３の実施形態について、以下に説明する。なお、説明の便宜上、上記第１の実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を繰り返さない。
【０１３６】
図１７は、第３の実施形態に係る制御システム３の要部構成を示すブロック図である。図１７に示すように、第３の実施形態の制御システム３は、制御装置５００と、端末装置６００と、を備えている。
【０１３７】
制御装置５００は、制御部５１０と、ストレージ１８０と、を備えている。
【０１３８】
ストレージ１８０には、Ａ言語で記述されたＡ言語プログラム１８１と、Ｂ言語で記述されたＢ言語プログラム１８５とが格納されている。Ａ言語プログラム１８１は、プログラム内で使用している共有変数の情報を、当該情報が書き込まれた共有変数使用情報ファイル１８４によって保持している。Ｂ言語プログラム１８５は、プログラム内で使用している共有変数の情報を、当該情報が書き込まれた共有変数使用情報ファイル１８７によって保持している。
【０１３９】
図１８は、共有変数使用情報ファイル１８４，１８７の一例を示す図である。図１８に示すように、共有変数使用情報ファイル１８４，１８７には、プログラムで使用されている変数を共有変数として使用しているとみなす条件が書き込まれている。変数を共有変数として使用しているとみなす条件は、例えば、変数名の一部に含まれていてもよい。
【０１４０】
変数を共有変数として使用しているとみなす条件は、ＧＲＯＵＰ＿１，ＧＲＯＵＰ＿２，ＧＲＯＵＰ＿３と各プログラムにおける使用状況に応じてグループ分けされていてもよい。例えば、ＧＲＯＵＰ＿１は、当該変数がＡ言語プログラム１８１、及びＢ言語プログラム１８５で使用されていることを示してもよい。ＧＲＯＵＰ＿２は、当該変数がＡ言語プログラム１８１のみで使用されていることを示してもよい。ＧＲＯＵＰ＿３は、当該変数がＢ言語プログラム１８５のみで使用されていることを示してもよい。なお、これらの条件は、後述する端末装置６００の共有変数使用元有無判定部６１２に予めその定義が保持されている。
【０１４１】
例えば、変数名が「press_shared_variable」である共有変数について、共有変数使用情報ファイル１８４，１８７には、変数を共有変数として使用しているとみなす条件、例えば、ＧＲＯＵＰ＿１，ＧＲＯＵＰ＿２が書き込まれている。また、当該共有変数について、共有変数使用情報ファイル１８４，１８７には、変数の型名「ＳＡＦＥＴＹ＿ＳＴＡＴＵＳ」と、当該型名の変数を共有変数として使用しているとみなす条件、例えば、ＧＲＯＵＰ＿３，ＧＲＯＵＰ＿４が書き込まれている。変数を共有変数として使用しているとみなす条件は、変数名、又は変数の型名の部分一致、前方一致、後方一致、完全一致の何れかで設定可能であってもよい。
【０１４２】
制御装置５００の制御部５１０は、プログラム実行部１２０と、プログラム管理部５３０と、を備えている。プログラム管理部５３０は、Ａ言語プログラム管理部５４０と、Ｂ言語プログラム管理部５５０と、共有変数使用条件一覧集計部５６０と、を含んでいる。
【０１４３】
Ａ言語プログラム管理部５４０は、ストレージ１８０に格納されているＡ言語プログラム１８１で使用されている共有変数を管理する。Ａ言語プログラム管理部５４０は、Ａ言語プログラム１８１で使用されているとみなす共有変数の条件一覧を作成する共有変数条件一覧作成部５４１を有している。
【０１４４】
Ｂ言語プログラム管理部５５０は、ストレージ１８０に格納されているＢ言語プログラム１８５で使用されている共有変数を管理する。Ｂ言語プログラム管理部５５０は、Ｂ言語プログラム１８５で使用されているとみなす共有変数の条件一覧を作成する共有変数条件一覧作成部５５１を有している。
【０１４５】
共有変数条件一覧作成部５４１，５５１は、各プログラムの共有変数使用情報ファイル１８４，１８７を参照して、共有変数条件一覧を作成する。共有変数条件一覧作成部５４１，５５１は、共有変数使用情報ファイル１８４，１８７に含まれている変数名、又は変数の型名に対応付けられた、当該変数を共有変数として使用しているとみなす条件に基づいて、共有変数条件一覧を作成する。
【０１４６】
共有変数使用条件一覧集計部５６０は、共有変数条件一覧作成部５４１，５５１によって複数プログラム毎に作成された、複数の共有変数条件一覧を集計して、各共有変数を使用しているとみなす条件の一覧である共有変数使用条件一覧を作成する。共有変数使用条件一覧集計部５６０は、各プログラムが変数を共有変数として使用しているとみなす条件を集計することで、共有変数使用条件一覧を作成する。
【０１４７】
端末装置６００は、端末装置６００の各部を統括的に制御する演算装置であるエディタ制御部６１０を備えている。エディタ制御部６１０は、共有変数使用条件一覧取得部６１１と、共有変数使用元有無判定部６１２と、共有変数使用元表示部６１３と、を含んでいる。共有変数使用条件一覧取得部６１１は、制御装置５００のプログラム管理部５３０から、共有変数使用条件一覧集計部５６０によって作成された共有変数使用条件一覧を取得する。
【０１４８】
共有変数使用元有無判定部６１２は、共有変数使用条件一覧取得部６１１が制御装置５００から取得した共有変数使用条件一覧を参照して、各共有変数の使用元のプログラムの有無を判定する。共有変数使用元有無判定部６１２は、共有変数使用条件一覧に含まれる各共有変数と、予めその定義を保持している当該共有変数が使用されているとみなす条件とに応じて、各共有変数を使用しているプログラムを判定する。
【０１４９】
共有変数使用元有無判定部６１２は、例えば、ＧＲＯＵＰ＿１はＡ言語プログラム１８１及びＢ言語プログラム１８５で使用されている共有変数、ＧＲＯＵＰ＿２はＡ言語プログラム１８１のみで使用されている共有変数、ＧＲＯＵＰ＿３はＢ言語プログラム１８５で使用されている共有変数、という共有変数が使用されているとみなす条件の定義を予め保持している。共有変数使用元有無判定部６１２は、これらの条件に基づいて、共有変数使用条件一覧取得部６１１が制御装置５００から取得した共有変数使用条件一覧に記されている共有変数について使用元のプログラムを判定する。例えば、共有変数使用元有無判定部６１２は、共有変数使用条件一覧に記されている共有変数の変数名の一部に「ＧＲＯＵＰ＿１」が含まれている変数については、Ａ言語プログラム１８１及びＢ言語プログラム１８５で使用されている共有変数であると判定する。
【０１５０】
共有変数使用元表示部６１３は、共有変数使用元有無判定部６１２の判定結果を端末装置６００の表示画面に表示する。
【０１５１】
（制御装置５００の処理の流れについて）
図１９は、制御装置５００における、共有変数使用条件一覧作成処理の流れを示すフローチャートである。制御装置５００は、ストレージ１８０に記憶している複数のプログラムの少なくとも何れか１つに更新が行われた場合に、共有変数使用条件一覧作成処理を実行してもよい。また、制御装置５００は、端末装置６００を介して、ユーザがストレージ１８０に記憶している複数のプログラムの少なくとも何れか１つを編集する操作を行った場合に、共有変数使用条件一覧作成処理を実行してもよい。
【０１５２】
制御部５１０のプログラム管理部５３０は、ストレージ１８０における所定のプログラムフォルダ内に格納されている全てのプログラムを列挙する（ステップＳ７１）
プログラム管理部５３０は、全てのプログラムについて、繰り返し処理、又は並行処理によって、各言語プログラム管理部５４０，５５０において、共有変数条件一覧作成部５４１，５５１の機能により、下記のステップＳ７３の処理を実行する（ステップＳ７２）。
【０１５３】
共有変数条件一覧作成部５４１，５５１は、各プログラムの共有変数使用情報ファイル１８４，１８７を参照し、各変数を各プログラムの共有変数として使用しているとみなす条件の一覧を作成する（ステップＳ７３）。
【０１５４】
プログラム管理部５３０は、全てのプログラムについて、ステップＳ７３の処理が終了するまで待機する（ステップＳ７４）。
【０１５５】
（端末装置６００の処理の流れについて）
図２０は、端末装置６００における、各変数の使用元のプログラムを表示する処理の流れを示すフローチャートである。
【０１５６】
端末装置６００は、端末装置６００においてユーザが、制御装置５００によって実行可能に記憶されている複数のプログラムによって使用されている各変数の使用元のプログラムの表示を要求する操作を行った場合に、各変数の使用元のプログラムを表示する処理を実行する。端末装置６００は、ユーザが、端末装置６００に保存されている複数のプログラムのソースコードの少なくとも何れか１つの編集を開始する操作を行った場合に、各変数の使用元のプログラムを表示する処理を実行してもよい。
【０１５７】
端末装置６００のエディタ制御部６１０は、ユーザによる各変数の使用元のプログラムの表示要求を受け付ける（ステップＳ８１）。
【０１５８】
エディタ制御部６１０は、共有変数使用条件一覧取得部６１１の機能により、制御装置５００のプログラム管理部５３０から、各変数を各プログラムの共有変数として使用しているとみなす条件の一覧である共有変数使用条件一覧を取得する（ステップＳ８２）。
【０１５９】
エディタ制御部６１０は、共有変数使用元有無判定部６１２の機能により、ステップＳ８２で取得した共有変数使用条件一覧を参照し、予め設定されている条件と、共有変数使用条件一覧に記載されている条件とを照らし合わせて、各共有変数の使用元のプログラムの有無を判定する。エディタ制御部６１０は、共有変数使用元表示部６１３の機能により、共有変数使用元有無判定部６１２の判定結果を端末装置６００の表示画面に表示する（ステップＳ８３）。
【０１６０】
このように、制御システム３においては、制御装置５００において実行可能に格納されている各プログラムが、各変数を共有変数として使用しているとみなす条件が書き込まれた共有変数使用情報ファイルを備えている。よって、プログラムがインタプリタ型の言語出記述されていても、コンパイラ型の言語で記述されていても、複数のプログラム間で使用されている共有変数を用いているプログラムの有無を判定し、ユーザに判定結果を提示することができる。よって、ユーザは、複数のプログラムの解読に時間をかけることなく、共有変数の削除、又は共有変数の値の変更などの編集を行うことができる。
【０１６１】
〔ソフトウェアによる実現例〕
制御装置１００の制御ブロック（特に共有変数一覧作成部１４１，１５１、及びプログラム一覧集計部１６０）、及び端末装置２００の制御ブロック（特にプログラム一覧取得部２１１、及びプログラム一覧表示部２１２）は、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ソフトウェアによって実現してもよい。
【０１６２】
後者の場合、制御装置１００、及び端末装置２００は、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータを備えている。このコンピュータは、例えば１つ以上のプロセッサを備えていると共に、前記プログラムを記憶したコンピュータ読み取り可能な記録媒体を備えている。そして、前記コンピュータにおいて、前記プロセッサが前記プログラムを前記記録媒体から読み取って実行することにより、本発明の目的が達成される。前記プロセッサとしては、例えばＣＰＵ（Central Processing Unit）を用いることができる。前記記録媒体としては、「一時的でない有形の媒体」、例えば、ＲＯＭ（Read Only Memory）等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、前記プログラムを展開するＲＡＭ（Random Access Memory）などをさらに備えていてもよい。また、前記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して前記コンピュータに供給されてもよい。なお、本発明の一態様は、前記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【０１６３】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【０１６４】
１、２、３  制御システム
１００、３００、５００  制御装置
１１０、３１０、５１０  制御部
１２０  プログラム実行部
１３０、３３０、５３０  プログラム管理部
１４１、１５１  共有変数一覧作成部
１６０、４１２  プログラム一覧集計部
１８０  ストレージ
１８３、１８４、１８６、１８７  共有変数使用情報ファイル
２００、４００、６００  端末装置
２１０、４１０、６１０  エディタ制御部
２１１  プログラム一覧取得部
２１２、４１３  プログラム一覧表示部
４１１  共有変数一覧取得部
【図１】
2020064399.tif 000003
【図２】
2020064399.tif 000004
【図３】
2020064399.tif 000005
【図４】
2020064399.tif 000006
【図５】
2020064399.tif 000007
【図６】
2020064399.tif 000008
【図７】
2020064399.tif 000009
【図８】
2020064399.tif 000010
【図９】
2020064399.tif 000011
【図１０】
2020064399.tif 000012
【図１１】
2020064399.tif 000013
【図１２】
2020064399.tif 000014
【図１３】
2020064399.tif 000015
【図１４】
2020064399.tif 000016
【図１５】
2020064399.tif 000017
【図１６】
2020064399.tif 000018
【図１７】
2020064399.tif 000019
【図１８】
2020064399.tif 000020
【図１９】
2020064399.tif 000021
【図２０】
2020064399.tif 000022