(57)【要約】【課題】計算量を抑制しながらも、図形プログラムに生じた差分をユーザが簡単に把握できるように表示する。【解決手段】端末装置１００は、ユーザからの入力に応じて、処理ステップを示す単位処理図形を有向線によって接続し、複数の処理ステップを順に実行するプログラムを図形プログラムとして生成し、表示する制御を行うプログラム編集部１１０を備え、ユーザによって選択された複数の図形プログラム同士を比較し、処理内容に差異がある部分の単位処理図形および有向線を明示して表示する制御を行う比較部１１１をさらに備える。【選択図】図１
2020155044.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワークを介して制御対象機器を制御するＰＬＣ（Programmable Logic Controller）で実行されるプログラムを編集するプログラム編集装置であって、
ユーザからの入力に応じて、処理ステップを示す単位処理図形を有向線によって接続し、複数の処理ステップを順に実行する前記プログラムを図形プログラムとして生成し、表示する制御を行うプログラム編集部を備え、
ユーザによって選択された複数の前記図形プログラム同士を比較し、処理内容に差異がある部分の前記単位処理図形および前記有向線を明示して表示する制御を行う比較部を、
さらに備えるプログラム編集装置。
【請求項２】
前記比較部は、複数の前記図形プログラムを含む図形プログラム群がユーザによって複数選択される指示入力を受け付けるとともに、選択された複数の前記図形プログラム群に含まれる複数の前記図形プログラムの中から、比較すべき前記図形プログラムのペアを選定する選定部をさらに備える請求項１に記載のプログラム編集装置。
【請求項３】
前記選定部は、比較すべき前記図形プログラムのペアの候補のそれぞれについて、一方の前記図形プログラムから、他方の前記図形プログラムへ変更するために必要な編集操作量を算出し、前記編集操作量に基づいて、比較すべき前記図形プログラムのペアを選定する請求項２に記載のプログラム編集装置。
【請求項４】
前記選定部は、候補となる全ての前記ペアの中から、(1)前記編集操作量の合計が最小となる前記ペア、(2)前記編集操作量の総乗算値が最小となる前記ペア、または、(3)共通となる前記単位処理図形の数および前記有向線の数の合計が最大となる前記ペアを選定する請求項３に記載のプログラム編集装置。
【請求項５】
前記図形プログラム群のそれぞれについて、含まれる複数の前記図形プログラムの順番が決まっており、
前記選定部は、前記順番に基づいて、比較すべき前記図形プログラムのペアを選定する請求項２に記載のプログラム編集装置。
【請求項６】
前記比較部は、処理内容に差異がない部分の前記単位処理図形および前記有向線に関して、比較対象の複数の前記図形プログラム同士で互いに位置が対応するように表示する制御を行う請求項１〜５のいずれか一項に記載のプログラム編集装置。
【請求項７】
前記比較部は、処理内容に差異がない部分の前記単位処理図形および前記有向線に関して、比較対象の複数の前記図形プログラムのそれぞれにおいて省略表示をする制御を行う請求項１〜５のいずれか一項に記載のプログラム編集装置。
【請求項８】
前記比較部は、処理内容に差異がある部分の前記単位処理図形に関して、前記単位処理図形の処理内容に係るパラメータに差異がある場合に、該パラメータを表示する制御を行う請求項１〜７のいずれか一項に記載のプログラム編集装置。
【請求項９】
通信ネットワークを介して制御対象機器を制御するＰＬＣ（Programmable Logic Controller）で実行されるプログラムを編集するプログラム編集方法であって、
ユーザからの入力に応じて、処理ステップを示す単位処理図形を有向線によって接続し、複数の処理ステップを順に実行する前記プログラムを図形プログラムとして生成し、表示する制御を行う編集ステップと、
ユーザによって選択された複数の前記図形プログラム同士を比較し、処理内容に差異がある部分の前記単位処理図形および前記有向線を明示して表示する制御を行う比較ステップと、
を含むプログラム編集方法。
【請求項１０】
請求項１〜８のいずれか一項に記載のプログラム編集装置としてコンピュータを機能させるためのプログラム編集プログラムであって、上記各部としてコンピュータを機能させるためのプログラム編集プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルロジックコントローラに実行させるプログラムを編集するプログラム編集装置等に関する。
【背景技術】
【０００２】
プログラミング言語の知識を持たないユーザが、各種情報処理装置のプログラムを作成するための方法として、プログラム部品を示す図形を接続して図形プログラムを作成することが従来技術として知られている。特許文献１には、視覚プログラミングシステムおよび図形プログラム編集方法の一例が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平８−３１４７０２号公報（１９９６年１１月２９日公開）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述のような従来技術は、修正で生じた差分を確認する際、処理内容が同じでも図形プログラムの外観が大きく異なる場合がある等の理由により、修正で生じた差分をユーザが簡単に把握する方法がないという問題がある。
【０００５】
ここで、あるグラフを別のグラフと等しくするための操作手順である編集スクリプトをもって差分を表現し、グラフ編集距離（graph edit distance）を近似的に求めるアルゴリズムによって、修正前後のグラフの差異を確認する方法が知られている。また、類似度の判定をユーザの認知により近づけるため、「エッジの置換」「頂点の追加」「頂点の置換」といった各編集操作により加算される距離に重み付けを行うことがある。
【０００６】
しかし、これらの従来技術は、例えば、置換される頂点自体の類否といった質的な差異を考慮せず、また、計算量が多くなる場合があるという問題がある。
【０００７】
本発明の一態様は、計算量を抑制しながらも、図形プログラムに生じた差分をユーザが簡単に把握できるように表示するプログラム編集装置等を実現することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、上述した課題を解決するために、以下の構成を採用する。
【０００９】
本発明の一側面に係るプログラム編集装置は、通信ネットワークを介して制御対象機器を制御するＰＬＣ（Programmable Logic Controller）で実行されるプログラムを編集するプログラム編集装置であって、ユーザからの入力に応じて、処理ステップを示す単位処理図形を有向線によって接続し、複数の処理ステップを順に実行する上記プログラムを図形プログラムとして生成し、表示する制御を行うプログラム編集部を備え、ユーザによって選択された複数の上記図形プログラム同士を比較し、処理内容に差異がある部分の上記単位処理図形および上記有向線を明示して表示する制御を行う比較部を備える。
【００１０】
上記構成によれば、よりユーザの認識に近い差分表示により、差分をユーザが簡単に把握できる表示が実現される。
【００１１】
上記一側面に係るプログラム編集装置において、上記比較部は、複数の上記図形プログラムを含む図形プログラム群がユーザによって複数選択される指示入力を受け付けるとともに、選択された複数の上記図形プログラム群に含まれる複数の上記図形プログラムの中から、比較すべき上記図形プログラムのペアを選定する選定部をさらに有していてもよい。
【００１２】
上記構成によれば、複数の図形プログラムの差分をまとめてユーザに表示することが実現される。
【００１３】
上記一側面に係るプログラム編集装置において、上記選定部は、比較すべき上記図形プログラムのペアの候補のそれぞれについて、一方の上記図形プログラムから、他方の上記図形プログラムへ変更するために必要な編集操作量を算出し、上記編集操作量に基づいて、比較すべき上記図形プログラムのペアを選定する構成を有していてもよい。
【００１４】
上記構成によれば、差分表示する図形プログラムをユーザの認識により近しく選定することが実現される。
【００１５】
上記一側面に係るプログラム編集装置において、上記選定部は、候補となる全ての上記ペアの中から、(1)上記編集操作量の合計が最小となる上記ペア、(2)上記編集操作量の総乗算値が最小となる上記ペア、または、(3)共通となる上記単位処理図形および有向線の数の合計が最大となる上記ペアを選定する構成を有していてもよい。
【００１６】
上記構成によれば、差分表示する図形プログラムをユーザの認識に更により近しく選定することが実現される。
【００１７】
上記一側面に係るプログラム編集装置において、上記図形プログラム群のそれぞれについて、含まれる複数の上記図形プログラムの順番が決まっており、上記選定部は、上記順番に基づいて、比較すべき上記図形プログラムのペアを選定する構成を有していてもよい。
【００１８】
上記構成によれば、より計算量を抑制し、処理負荷を軽減させることが実現される。
【００１９】
上記一側面に係るプログラム編集装置において、上記比較部は、処理内容に差異がない部分の上記単位処理図形および有向線に関して、比較対象の複数の上記図形プログラム同士で互いに位置が対応するように表示する制御を行う構成を有していてもよい。
【００２０】
上記構成によれば、ユーザにとってより把握が容易な表示が実現される。
【００２１】
上記一側面に係るプログラム編集装置において、上記比較部は、処理内容に差異がない部分の前記単位処理図形および前記有向線に関して、比較対象の複数の上記図形プログラムのそれぞれにおいて省略表示をする制御を行う構成を有していてもよい。
【００２２】
上記構成によれば、ユーザにとって不要な情報が削減され、より把握が容易な表示が実現される。
【００２３】
上記一側面に係るプログラム編集装置において、上記比較部は、処理内容に差異がある部分の前記単位処理図形に関して、前記単位処理図形の処理内容に係るパラメータに差異がある場合に、該パラメータを表示する制御を行う構成を有していてもよい。
【００２４】
上記構成によれば、単位処理図形の処理内容に係るパラメータのみに変更がある場合でもユーザが直感的に把握できることが実現される。
【００２５】
本発明の一側面に係るプログラム編集方法は、通信ネットワークを介して制御対象機器を制御するＰＬＣ（Programmable Logic Controller）で実行されるプログラムを編集するプログラム編集方法であって、ユーザからの入力に応じて、処理ステップを示す単位処理図形を有向線によって接続し、複数の処理ステップを順に実行する上記プログラムを図形プログラムとして生成し、表示する制御を行う編集ステップと、ユーザによって選択された複数の上記図形プログラム同士を比較し、処理内容に差異がある部分の上記単位処理図形および上記有向線を明示して表示する制御を行う比較ステップと、を含む。
【００２６】
上記構成によれば、よりユーザの認識に近い差分表示により、差分をユーザが簡単に把握できる表示が実現される。
【発明の効果】
【００２７】
本発明によれば、図形プログラムの修正で生じた差分をユーザが簡単に把握する方法を実現できる。
【図面の簡単な説明】
【００２８】
【図１】実施形態１の全体構成の概要を示す図である。
【図２】ＰＬＣ上で実行される図形プログラムの一例を示す図である。
【図３】比較部による一連の比較処理の流れを示すフローチャートである。
【図４】各図形プログラム群から選定されうる図形プログラムのペアの、編集操作量の合計が最小となる組み合わせを求める処理の流れを示すフローチャートである。
【図５】比較の対象となる２つの図形プログラムの一例を示す図である。
【図６】複数の図形プログラム群に含まれる図形プログラムの組み合わせごとの編集操作量を示す図である。
【図７】複数の図形プログラム群について可能なペアパターンを示す図である。
【図８】比較対象となった複数の図形プログラム群を表示する表示画面の一例を示す図である。
【図９】比較対象となる複数の図形プログラム群について、互いに変更の無かった部分を省略して表示する表示画面の一例を示す図である。
【図１０】各図形プログラム群から選定されうる図形プログラムのペアの、編集操作量の合計が最小となる組み合わせを求める処理の流れを示すフローチャートである。
【図１１】編集操作量の合計の代わりに、該ペアにおける共部の単位処理図形及び有向線の最大数を用いる場合の処理の流れを示すフローチャートである。
【図１２】差分表示ペア選定部が図形プログラムのペアを選定する際に図形プログラムの仮想平面上の座標を用いる場合の処理の流れを示すフローチャートである。
【図１３】各図形プログラム群における図形プログラムの基準座標値を示す図である。
【図１４】編集操作量の算出の際の、各操作の内容に応じた重みづけを示す図である。
【図１５】図１４の重みづけに従って算出した、各図形プログラムペアの編集操作量を示す図である。
【図１６】図１４の重みづけに従って算出した、各ペアパターンにおける編集操作量の合計及び総乗（総乗算値）を示す図である。
【図１７】図５における２つの図形プログラム群上の、単位処理図形の座標を示す図である。
【発明を実施するための形態】
【００２９】
以下、本発明の一側面に係る実施の形態（以下、「本実施形態」とも表記する）を、図面に基づいて説明する。
【００３０】
§１  適用例
図１を参照して、まず、本発明が適用された構成の一例を説明する。図１は、本実施形態の全体概要を示す図である。図１には、本発明に係るプログラム編集装置が端末装置１００に適用された一構成例を示している。
【００３１】
図１に示す構成では、生産システム２００がＰＬＣ（Programmable Logic Controller）２１０を含み、該ＰＬＣ２１０が、ＰＬＣ２１０にプログラムを提供する端末装置１００およびＰＬＣ２１０がデータの読み書きを行うデータベース４００と通信可能に接続されている。
【００３２】
生産システム２００は、例えば、工場やプラントにおける生産のための機器及びそれを統括制御する装置である。生産システム２００は、ＰＬＣ２１０のほか、例えば各種ユニット２２０、各種機器２３０及びこれらのユニットや機器を制御するための実行可能ファイル２４０を有する。ここで、ユニット２２０とは、Ｉ／Ｏユニットや通信ユニット等の末端の機器である機器２３０とＰＬＣ２１０を中継するユニットの総称である。また、機器２３０とは、アクチュエータ、汎用センサ、シリアル機器、既設ＰＬＣ等の、制御される末端機器及び制御に必要なデータを取得するための末端機器である。
【００３３】
端末装置１００は、例えばパーソナルコンピュータ（ＰＣ）である。端末装置１００は、ＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等を含む。
【００３４】
本実施形態に係る端末装置１００は、通信ネットワークを介して制御対象機器を制御するＰＬＣ２１０で実行されるプログラムを編集するプログラム編集装置であって、ユーザからの入力に応じて、処理ステップを示す単位処理図形を有向線によって接続し、複数の処理ステップを順に実行する上記プログラムを図形プログラムとして生成し、表示する制御を行うとともに、ユーザによって選択された複数の上記図形プログラム同士を比較し、処理内容として実質的に差異が生じている部分の図形を明示して表示する制御を行う。この構成によれば、よりユーザの認識に近い差分表示により、差分をユーザが簡単に把握できる表示が実現される。
【００３５】
§２  構成例
以下、端末装置１００の構成例について、詳細に説明する。
【００３６】
端末装置１００にはＰＬＣ２１０に提供するプログラムを編集するプログラム編集部１１０、ユーザからの図形プログラムの編集操作を受け付ける入力部１３０、図形プログラムを表示する表示部１４０、編集された図形プログラムをＰＬＣ２１０に送信するＰＬＣサポート部１５０が含まれる。
【００３７】
プログラム編集部１１０は、複数の図形プログラムを比較してユーザに見やすいように表示座標調整を行う比較部１１１、プログラム記憶部１２１、図形プログラム部品格納部１２２、図形プログラム表示部１２３を有する。
【００３８】
図形プログラムとは、部品化されたプログラム部品を単位処理図形として、単位処理図形同士のデータの受け渡し方向を有向線として表示することによって、一連のプログラムの実行順をユーザにわかりやすく表示したものである。本実施形態では、図形プログラムはＰＬＣ２１０上のパイプラインに対応している。
【００３９】
プログラム編集部１１０は、例えば以下のように図形プログラムを設定しプログラム記憶部１２１に保存することができる。すなわち、ある単位処理図形が、自らを接続先とする有向線を持たない場合、当該単位処理図形を図形プログラムの始点に設定する。当該単位処理図形に接続された有向線があれば、該有向線及び当該有向線に接続された単位処理図形を当該図形プログラムに追加する。更に、新しく追加された単位処理図形に接続先の単位処理図形がある場合は、接続先がなくなるまでこれを繰り返す。プログラム記憶部１２１は、また、全図形プログラムを１つの図形プログラム群として扱い保存することもできる。
【００４０】
図形プログラム部品格納部１２２は、図形プログラムの部品となる単位処理図形を格納する。単位処理図形は、装置や実行プログラムの種類によって定義されている。
【００４１】
図形プログラム表示部１２３は、図形プログラムを表示用に整形し、表示部１４０に送信する。
【００４２】
表示部１４０は、図形プログラム表示部１２３から送られた図形プログラムを例えばスクリーン上に表示する。
【００４３】
入力部１３０は、ユーザの図形プログラムに対する編集操作を受け付ける。
【００４４】
単位処理図形はＰＬＣ２１０上の実行可能ファイル２４０及びパラメータと対応している。また、仮想平面上の有向線はそれらの実行可能ファイル２４０の実行順及びデータの受け渡しに対応している。
【００４５】
端末装置１００は、ＰＬＣ２１０と例えばＵＳＢケーブルで接続されている。ＰＬＣ２１０へのプログラムの書込みなどの通信は、ＵＳＢケーブルおよびＰＬＣサポート部１５０を通じて行われる。なお、ＵＳＢに代えてＥｔｈｅｒｎｅｔ（登録商標）で接続され、ＥｔｈｅｒｎｅｔケーブルおよびＬＡＮ機器を通じて通信が行われてもよい。
【００４６】
図形プログラム群の実体、すなわち、プログラム部品を使用するという宣言・各プログラム部品の設定・実行順序（データの受け渡し）は、例えばテキストデータとしてプログラム記憶部１２１に記憶され、ＰＬＣサポート部１５０を通じてＰＬＣ２１０に送信される。
【００４７】
そして、本実施形態に係る生産システム２００では、ＰＬＣ２１０は、プログラム編集部１１０で生成された図形プログラムを読み込み、該図形プログラムで定義された順序で実行可能ファイル２４０を実行する。この際、プログラムの実行及びデータの受け渡しは、図形プログラム上の有向線で表された順序で行われる。
【００４８】
この構成により、プログラムに不慣れなユーザでも、画面上に表示された図形プログラムを操作することで、ＰＬＣ２１０上で動作するプログラムを直感的に作成することができる。
【００４９】
図２には、ＰＬＣ２１０上で実行される図形プログラムの一例を示している。図２において、入力ノードＩｎｐｕｔ、ロジックノードＬｏｇｉｃ、出力ノードＯｕｔｐｕｔにより構成される複数のパイプラインが示されている。なお、図示されないが、各々のロジックノードＬｏｇｉｃと出力ノードＯｕｔｐｕｔの前段には受信キューが接続される。
【００５０】
ＰＬＣ２１０は更に、それが備える記憶装置内のデータファイル２１１、２１２や、その内部で動作する、工作機械のモーション制御プログラム等のアプリケーション２１３、２１４、パイプライン演算装置２１５を有している。
【００５１】
パイプライン演算装置２１５は、演算部２１６及び制御部２１７を有している。演算部２１６においては、入力ノードと出力ノードとの間に、順次必要なロジックノードが接続されて、パイプラインが構成される。パイプラインは、通常多数であるが、少なくとも１つあればよい。制御部２１７は、上記ノードやキューを監視し、ノードの稼働時間を割り当てる。
【００５２】
パイプライン演算装置２１５の入力ノードＩｎｐｕｔの接続先は、データファイル２１１や、アプリケーション２１３であり得る。更に、入力ノードＩｎｐｕｔの接続先は、ＰＬＣ２１０の外部機器である、工作機械や測定機器その他の各種ＦＡ機器、各種生産情報に関するデータを収集し提供するデータサーバ１１、各種生産情報に関するデータを保存するデータベース１２、インターネットやその他のネットワーク上のクラウドサーバ１３であり得る。
【００５３】
パイプライン演算装置２１５の出力ノードＯｕｔｐｕｔの接続先は、データファイル２１２や、アプリケーション２１４であり得る。更に、出力ノードＯｕｔｐｕｔの接続先は、ＰＬＣ２１０の外部機器である、工作機械や測定機器その他の各種ＦＡ機器、ＦＡ機器に関するデータを収集し提供するデータサーバ１１、各種生産情報に関するデータを収集し提供するデータベース１２、インターネットやその他のネットワーク上のクラウドサーバ１３であり得る。
【００５４】
入力ノードＩｎｐｕｔの接続先であるアプリケーション２１３と、出力ノードＯｕｔｐｕｔの接続先であるアプリケーション２１４とは、異なるアプリケーションであってもよいし、同一のアプリケーションであってもよい。
【００５５】
＜プログラム編集部＞
プログラム編集部１１０は、図形プログラムの編集を行うが、例えば、図形プログラム群に変更が生じる際、ユーザが編集前後の差分を確認したいと考える場合が生ずる。プログラム編集部１１０は、ユーザの操作を受け付けた場合には、図形プログラム群の比較を行う。
【００５６】
例えば、プログラム編集部１１０は、図形プログラム群に変更を生じさせる際に、変更前の図形プログラム群及び変更後の図形プログラム群をプログラム記憶部１２１に保存する。以下、一例として、変更前の図形プログラム群を図形プログラム群ＰＡ、変更後の図形プログラム群を図形プログラム群ＰＢとして、比較操作の流れを説明する。
【００５７】
図３は、比較部１１１による一連の比較処理の流れを示したフローチャートである。
【００５８】
（ステップＳ３０１）
ステップＳ３０１において、プログラム編集部１１０は、プログラム記憶部１２１に保存されている第一の図形プログラム群ＰＡ及び第二の図形プログラム群ＰＢを読み込む。
【００５９】
（ステップＳ３０２）
ステップＳ３０２において、プログラム編集部１１０は、ユーザからの比較操作を受け付ける。
【００６０】
（ステップＳ３０３）
ステップＳ３０３において、比較部１１１は、比較対象として２以上の図形プログラム群が選択されているかどうかを判断する。２以上の図形プログラム群が比較対象として選択されている場合、比較部１１１は、ステップＳ３０４に移行する。２未満の図形プログラム群のみが選択されている場合、比較部１１１は、比較操作の受付状態を維持するためステップＳ３０２へ移行する。
【００６１】
（ステップＳ３０４）
ステップＳ３０４において、比較部１１１は、選択された図形プログラム群同士を比較し、処理内容に差異がある部分を特定する。詳細には、実質的な差異が生じている箇所を特定する。具体的には、まず、差分表示ペア選定部１１２は、一方の図形プログラム群の中のある図形プログラムに対して、もう一方の図形プログラム群の中のいずれの図形プログラムと比較するかを決定する。ユーザの感覚上もっとも似ている図形プログラム同士の組み合わせを比較する方がよりユーザが直感的に差分を把握できるようになるため、差分表示ペア選定部１１２は、可能な限り類似した図形プログラム同士を選出する。後述するように、そのような方法は複数考えられる。比較の対象となる図形プログラムの組のパターンを決定した後、比較部１１１は、図形プログラムのペアについて、処理内容に差異がある部分を特定する。
【００６２】
（ステップＳ３０５）
ステップＳ３０５において、比較部１１１は、処理内容として実質的に差異が生じている部分の図形を明示して図形プログラムを表示する。図形プログラム表示制御部１１４は、該差異をより見やすくするために図形プログラムの座標を再設定し、例えば表示部１４０を通じてスクリーンに表示する。
【００６３】
＜比較部＞
以下、図形プログラム群を比較する方法の例について説明する。
【００６４】
図４は、差分表示ペア選定部１１２の処理の流れの一例として、各図形プログラム群から選定されうる図形プログラムのペアの、編集操作量の合計が最小となる組み合わせを求める方法を示したフローチャートである。
【００６５】
（ステップＳ４０１）
ステップＳ４０１において、差分表示ペア選定部１１２は、両図形プログラム群内の図形プログラムの数が同じかどうかを判断する。もし同数でない場合、差分表示ペア選定部１１２はステップＳ４０２へ移行し、図形プログラムの数が少ない方の図形プログラム群に、単位処理図形も有向線も持たない図形プログラムを仮想的に追加して、ステップＳ４０１の判断を再び行う。もし同数である場合、差分表示ペア選定部１１２は、ステップＳ４０４からステップＳ４０６までを、各図形プログラム群から１件ずつ選びだした図形プログラムの全ペアについて繰り返す。全てのペアについて繰り返した後、ステップＳ４０７に移行する。
【００６６】
（ステップＳ４０４）
ステップＳ４０４において、差分表示ペア選定部１１２は、各図形プログラム群から図形プログラムの組を一つずつ抽出する。
【００６７】
（ステップＳ４０５）
ステップＳ４０５において、編集操作量導出部１１３は、ステップＳ４０４で抽出された図形プログラムの組において、抽出した組み合わせに係る最短編集操作量を算出する。最短編集操作量とは、一方の図形プログラムから他方の図形プログラムへ変化させるために必要な操作量のことであり、例えば、「単位処理図形の追加」「単位処理図形の削除」「単位処理図形の変更」「有向線の追加」「有向線の削除」「有向線の変更」についてそれぞれ編集操作量を１として算出する。
【００６８】
（ステップＳ４０６）
ステップＳ４０６において、編集操作量導出部１１３は、ステップＳ４０５で算出された最短編集距離を、例えばマトリクス内に保存して、求められた値を再使用できるようにする。
【００６９】
（ステップＳ４０７）
ステップＳ４０７において、差分表示ペア選定部１１２は、図形プログラムのペアパターンからペアパターン表を生成する。ペアパターン表は、両図形プログラム群内で可能な図形プログラムの組み合わせパターンを定義するものである。
【００７０】
（ステップＳ４０８）
ステップＳ４０８において、差分表示ペア選定部１１２は、ステップＳ４０７で定義されたペアパターンごとに、例えば、当該ペアパターンにおける各図形プログラムのペアにおける編集操作量の合計を求める。なお、編集操作量の合計の代わりに、編集操作量の総乗（総乗算値）を求めてもよい。ただし、この場合には、編集操作量が０となる組み合わせが１つでも存在する場合にそのペアパターンの編集操作量の総乗（総乗算値）が０となってしまうことを防ぐため、編集操作量が０となる組み合わせは総乗（総乗算値）の計算から除外される。全てのペアパターンについて計算が完了したのち、ステップＳ４１０に移行する。
【００７１】
（ステップＳ４０９）
ステップＳ４０９において、差分表示ペア選定部１１２は、最も編集操作量の合計の小さいペアパターンを選定する。なお、最も編集操作量の合計の小さいペアパターンの代わりに、最も編集操作量の総乗（総乗算値）の小さいペアパターンを選定してもよい。どちらの選定方法によっても、ユーザの直感に近い類似度で図形プログラムのペアを選定することができる。
【００７２】
（ステップＳ４１０）
ステップＳ４１０において、比較部１１１は、両図形プログラム群において実質的な差異が生じている箇所を特定する。実質的な差異は、最短編集操作において行われる操作、例えば、単位処理図形の追加・削除・パラメータの変更等である。または、編集操作を求める方法の精度によって最短編集操作を求めることができない場合には、最短に近い編集操作における操作であってもよい。
【００７３】
図５は、比較の具体例を示すために、比較の対象となる図形プログラムＡ及びＢの一例を示した図である。各図形プログラム群を構成する単位処理図形及び有向線は、仮想平面Ｐ１及びＰ２上に配置されている。当該座標は、例えば、ユーザに表示されるスクリーン上の平面座標に対応していても良く、あるいは、より簡略化された座標であってもよい。
【００７４】
図５では、図形プログラム群ＰＡにおいて、単位処理図形Ｆ１１が座標（Ｘ１、Ｙ１）、単位処理図形Ｆ１２が座標（Ｘ２、Ｙ１）、単位処理図形Ｆ１３が（Ｘ３、Ｙ１）、単位処理図形Ｆ１４が座標（Ｘ３、Ｙ２）にそれぞれ配置されており、（Ｆ１１、Ｆ１２、Ｆ１３）及び（Ｆ１１、Ｆ１４）の順に処理が行われるように有向線で接続されている。これらの単位処理図形及び有向線は、他の有向線又は単位処理図形を介して互いに接続されているから、１つの図形プログラムとして定義される。
【００７５】
ここでは、図形プログラムの始点となっている単位処理図形のＹ座標の順に、単位処理図形（Ｆ１１、Ｆ１２、Ｆ１３、Ｆ１４）及びそれらを接続する有向線のグループを「図形プログラムＰＡ１」、単位処理図形（Ｆ２１、Ｆ２２）及びそれらを接続する有向線を「図形プログラムＰＡ２」、単位処理図形（Ｆ３１、Ｆ３２、Ｆ３３）及びそれらを接続する有向線を「図形プログラムＰＡ３」、単位処理図形（Ｆ４１、Ｆ４２）及びそれらを接続する有向線を「図形プログラムＰＡ４」とする。
【００７６】
図形プログラム群ＰＢにおいては、図形プログラム群ＰＡと比較して、単位処理図形Ｆ１４、Ｆ４１及びＦ４２及びそれらに接続されていた有向線が削除されており、単位処理図形Ｆ３２のパラメータが変更されている。また、単位処理図形Ｆ３３の内容は「ＤＢにＩＮＳＥＲＴ」から「ＨＴＴＰ  ＰＯＳＴでサーバに送信」へと変更されている。単位処理図形及び有向線の位置も図形プログラム群ＰＢとは異なっている。図形プログラム群ＰＢにおいても上記と同様に、図形プログラムの始点となっている単位処理図形のＹ座標の順に、単位処理図形（Ｆ２１、Ｆ２２）及びそれらを接続する有向線を「図形プログラムＰＢ１」、単位処理図形（Ｆ１１、Ｆ１２、Ｆ１３）及びそれらを接続する有向線を「図形プログラムＰＢ２」、単位処理図形（Ｆ３１、Ｆ３２、Ｆ３３）及びそれらを接続する有向線を「図形プログラムＰＢ３」と定義する。図４のフローチャートに従えば、図形プログラム群ＰＡとＢとでは、Ａに含まれる図形プログラム数が４、Ｂに含まれる図形プログラム数が３のため、差分表示ペア選定部１１２はステップＳ４０２に従って、図形プログラム群ＰＢに、単位処理図形も有向線も持たない図形プログラムＰＢ４（不図示）を仮想的に追加する。
【００７７】
図６は、図５の場合において、図形プログラム群ＰＡ及びＢに含まれる図形プログラムの組み合わせごとの編集操作量を示した図である。ステップＳ４０６において、編集操作量導出部１１３は、ステップＳ４０５で算出された最短編集距離を、このような表に保存してよい。
【００７８】
図７は、図形プログラム群ＰＡ及びＢの間で可能なペアパターンを示した図である。この図では、パターン１の方がパターン２よりも編集操作量の合計が小さい。図示しないが、編集操作量の合計が最小となるペアパターンを選出した場合、選出される図形プログラムの組は（ＰＡ１―ＰＢ２、ＰＡ２―ＰＢ１、ＰＡ３―ＰＢ３、ＰＡ４―ＰＢ４）である。
【００７９】
＜画面図＞
図８は、図形プログラム表示制御部１１４が図５の例の図形プログラム群ＰＡ及び図形プログラム群ＰＢを、それぞれ「変更前」「変更後」として表示する場合の一例を示した画面図である。
【００８０】
この例では、図形プログラム表示制御部１１４は、図形プログラム群ＰＡ及びＰＢの対応する図形プログラムを、ユーザが確認しやすいよう、スクリーン上のＹ軸を揃えて表示している。図形プログラム群ＰＡを示す画面５１０には、上から順に図形プログラムＰＡ１、ＰＡ２、ＰＡ３及びＰＡ４が描画されている。図形プログラム群ＰＢを示す画面５６０には、それらの図形プログラムとの対応に応じて上から順に図形プログラムＰＢ２、ＰＢ１、ＰＢ３及びＰＢ４が描画されている。なお、図形プログラムＰＢ４は単位処理図形及び有向線を持たないため、画面上には表示されない。
【００８１】
この例では、図形プログラム群ＰＡに存在するがＰＢに存在しない単位処理図形及び有向線は、点線で表示されている。同様に、図形プログラム群ＰＢに存在するがＡに存在しない単位処理図形及び有向線が強調されていてもよい。また、図形プログラム群ＰＡとＰＢとで処理内容が異なる単位処理図形Ｆ３２は、枠が太線になるという強調が施されている。また、図形プログラム群ＰＡとＰＢとでパラメータのみが異なる単位処理図形Ｆ３２の近傍には、それぞれのパラメータが表示されている。
【００８２】
また、この例では、各編集差分となっている単位処理図形に対して、その種別及びパラメータをユーザが確認できるよう、追加のＵＩ要素５５１及び５５２が表示されている。例えば、ＵＩ要素５４４は、ＵＩ要素５５１及び５５２に表示するために現在選択されている差分の単位処理図形を示す。現在選択されている単位処理図形Ｆ３２においてはパラメータ「期間」が「６」から「１２」へ変更されているので、ＵＩ要素５５１には「期間」及びその内容「６」、ＵＩ要素５５２には「期間」及びその内容「１２」が表示されている。ＵＩ要素５０１及び５０２は、ユーザの操作を受け付け、別の差分となっている単位処理図形の詳細情報を順に表示する。
【００８３】
また、図形プログラム表示制御部１１４は、例えばＵＩ要素５０３を通じた操作を受け付けることで、差分の生じていない単位処理図形及び有向線を省略した図を画面に表示することができてもよい。
【００８４】
図９は、図形プログラム表示制御部１１４が、図５の例の図形プログラム群ＰＡ及び図形プログラム群ＰＢを、互いに変更の無かった部分を省略して表示する場合の画面図の一例である。この例では、差分となっている単位処理図形から２以上の有向線を介する単位処理図形及び有向線は表示されず、代わりに、当該部分が省略されていることを示すＵＩ要素５２５が表示される。図形プログラム表示制御部１１４は、例えば、ＵＩ要素５０３又はＵＩ要素５２５を介してユーザの操作を受け付けた場合には、当該省略表示を終了し、図８の画面を表示してもよい。
【００８５】
§３  変形例１
図１０は、差分表示ペア選定部１１２の処理の流れの一例として、各図形プログラム群から選定されうる図形プログラムのペアの、編集操作量の合計が最小となる組み合わせを求める、図４とは別の方法を示したフローチャートである。なお、図４で説明したステップと同内容のステップについては、詳細な説明を繰り返さない。
【００８６】
ステップＳ４０１及びステップＳ４０２は、図４と共通である。
【００８７】
（ステップＳ４０３１）
ステップＳ４０３１において、差分表示ペア選定部１１２は、図形プログラムのペアパターンからペアパターン表を生成する。このステップは、図４のステップＳ４０６に相当する。生成されたペアパターンごとに、以下ステップＳ４０４１からステップＳ４１０までを繰り返す。
【００８８】
（ステップＳ４０４１）
まず、ペアパターンに含まれるペアごとにステップＳ４０４１からステップＳ４０９１までを繰り返す。ステップＳ４０４１において、差分表示ペア選定部１１２は、当該ペアの最短編集操作量を既に計算したかどうかを判定する。未計算の場合、ステップＳ４０５１へ移行する。計算済みの場合、ステップＳ４０７１へ移行する。
【００８９】
（ステップＳ４０５１）
ステップＳ４０５１は、図４のステップＳ４０４に相当する。
【００９０】
（ステップＳ４０６１）
ステップＳ４０６１は、図４のステップＳ４０５に相当する。
【００９１】
（ステップＳ４０７１）
ステップＳ４０７１において、差分表示ペア選定部１１２は、当該ペアに係る計算済みの最短編集操作量を読み込む。
【００９２】
（ステップＳ４０８１）
ステップＳ４０８１において、差分表示ペア選定部１１２は、現在ペアの最短編集操作量を現在ペアパターンの最短編集量合計に加算する。
【００９３】
（ステップＳ４０９１）
ステップＳ４０９１において、差分表示ペア選定部１１２は、現在ペアパターンの計算済み最短編集操作量の合計が他のペアパターンの最短編集操作量の合計以上であるかどうかを判断する。現在ペアパターンの計算済み最短編集操作量の合計が、編集操作量の合計が最小のペアパターンの編集操作量の合計未満である場合、次のペアについてステップＳ４０４１に移行し、そうでない場合は、次のペアパターンについてステップＳ４０４１に移行する。
【００９４】
ステップＳ４１０は、図４と共通である。
【００９５】
上記の構成によれば、全ペアについて最短編集操作量を計算する前に最も編集操作量の小さいペアパターンを求めることができる場合があるため、図４と比較して計算量を減らすことができる。なお、ステップＳ４０８１及びステップＳ４０９１では、最も似たペアを求めるために編集操作量の合計の最小値を利用しているが、編集操作量の総乗（総乗算値）の最小値を利用してもよい。
【００９６】
§４  変形例２
図１１は、図４のステップＳ４０５で、編集操作量の合計の代わりに、該ペアにおける共部の単位処理図形及び有向線の最大数（以下、最大共通単位数という）を用いる場合のフローチャートである。なお、図４で説明したステップと同内容のステップについては、詳細な説明を繰り返さない。
【００９７】
（ステップＳ４０４２）
ステップＳ４０４２において、編集操作量導出部１１３は、選定されたペアにおいて単位処理図形及び単位処理図形に接続された有向線が同一となっている部分について、何個の単位処理図形及び有向線が同一であるかを算出する。図５の例で言えば、例えば、図形プログラムＰＡ３と図形プログラムＰＢ３とは、単位処理図形Ｆ３１及び単位処理図形Ｆ３１を始点とする有向線において同一であり、他に同一の単位処理図形を持たないので、最大共通単位数は２と計算される。
【００９８】
（ステップＳ４０７２）
ステップＳ４０７２において、編集操作量導出部１１３は、当該ペアパターンにおける最大共通単位数の合計を求める。
【００９９】
（ステップＳ４０８２）
ステップＳ４０８２において、差分表示ペア選定部１１２は、最大共通単位数の合計が最大となるペアパターンを選定する。
【０１００】
ステップＳ４０４２及びステップＳ４０８２以外のステップは、図４と共通である。
【０１０１】
§５  変形例３
図１２は、差分表示ペア選定部１１２が図形プログラムのペアを選定する際に図形プログラムの仮想平面上の座標を用いる場合の処理の流れを示したフローチャートである。なお、図４で説明したステップと同内容のステップについては、詳細な説明を繰り返さない。
【０１０２】
ステップＳ４０１及びステップＳ４０２は、図４と共通である。
【０１０３】
（ステップＳ４０３３）
ステップＳ４０３３において、差分表示ペア選定部１１２は、各図形プログラムの基準座標値を取得する。基準座標値とは、例えば、各図形プログラムの始点となっている単位処理図形の仮想平面上の座標でもよく、各図形プログラムの始点から最も多くの単位処理図形及び有向線を介した単位処理図形の単位処理図形でもよい。また、別の例では、各図形プログラム内の単位処理図形のＸ座標又はＹ座標の最大値・最小値・平均値・中央値等を基準座標値として用いてもよい。
【０１０４】
（ステップＳ４０４３）
ステップＳ４０４３において、差分表示ペア選定部１１２は、基準座標値をもとに、一方の図形プログラム群の各図形プログラムに対し、もう一方の図形プログラム群から図形プログラムを選び出してペアパターンを選定する。例えば、差分表示ペア選定部１１２は、各図形プログラムのペアにおける基準座標値の差の合計が最小になるようペアパターンを選定しても良いし、基準座標値の差の総乗（総乗算値）（差が０のペアを除く）が最小になるようペアパターンを選定しても良い。
【０１０５】
図１３は、本変形例の一例であり、各図形プログラム群における図形プログラムを基準座標値のＹ座標が小さい順に並べ替えた図である。差分表示ペア選定部１１２は、当該図において上から数えた順番が同じとなる図形プログラムのペア、つまり（ＰＡ１―ＰＢ１、ＰＡ２―ＰＢ２、ＰＡ３―ＰＢ３、ＰＡ４―ＰＢ４）をペアパターンとして選定してもよい。
【０１０６】
ステップＳ４１０は、図４と共通である。
【０１０７】
本変形例によれば、ペアパターンを選定するまでの間に最短編集操作量を求めなくてよいため、図４の場合に比べ計算量を減らすことができる。
【０１０８】
§６  変形例４
図１４は、図４のステップＳ４０５において、編集操作量の算出の際に各操作の内容に応じた重みづけを示した場合の図である。例えば、「単位処理図形の置換」操作は、単位処理図形を削除及び追加する操作と同じとも考えられるため、編集操作量は「単位処理図形の削除」及び「単位処理図形の追加」の和である２としている。また、単位処理図形にて実行される内容が同じで、パラメータのみが異なる場合、実質的な差異は小さいと考えられるため、「単位処理図形の置換」の４分の１の値である０．５に設定されている。
【０１０９】
図１５は、図１４の重みづけに従って各図形プログラムペアの編集操作量を算出した場合のマトリクスである。図６の場合と比較して、例えば、ＰＡ２−ＰＢ２ペアの編集操作量が大きくなっているのに対し、ＰＡ２−ＰＢ３ペアの編集操作量は小さくなっている。
【０１１０】
図１６は、図１４の重みづけに従って各ペアパターンにおける編集操作量の合計及び総乗（総乗算値）を算出した場合のマトリクスである。図７と比較すると、パターン１とパターン２の編集操作量合計の差異がより明確になっている。
【０１１１】
本変形例の構成によれば、ユーザの認識上差が大きい操作はより大きな編集操作量に、差が小さい操作はより小さな編集操作量に基づいて計算されるので、よりユーザの感覚に近い編集操作量を導出することが可能になる。なお、単位処理図形の置換や有向線の方向の置換を禁止することによっても、同様の効果を奏する。
【０１１２】
§７  変形例５
また、プログラム編集部１１０は、各単位処理図形に重複しない番号を付して、各図形プログラム群における座標を比較し、座標が異なる単位処理図形を差分として表示することもできる。本変形例によれば、図形プログラムのペアを選定することなく、差分を比較することができるため、計算量を減らし高速に処理することができる。
【０１１３】
図１７は、図５における図形プログラム群ＰＡ及び図形プログラム群ＰＢ上の、単位処理図形の座標を示したマトリクスである。例えば単位処理図形Ｆ２１についてみると、Ｆ２１は図形プログラム群ＰＡ及び図形プログラム群ＰＢ上で異なる座標上にあるので、図形プログラム表示制御部１１４は、Ｆ２１を差分として設定し表示する。また、例えば単位処理図形Ｆ４１についてみると、Ｆ４１は図形プログラム群ＰＡには存在するがＰＢには存在しないから、片方の図形プログラム群にのみ存在する単位処理図形として設定し表示する。
【０１１４】
〔ソフトウェアによる実現例〕
プログラム編集部１１０は、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ソフトウェアによって実現してもよい。
【０１１５】
後者の場合、プログラム編集部１１０は、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータを備えている。このコンピュータは、例えば１つ以上のプロセッサを備えていると共に、上記プログラムを記憶したコンピュータ読み取り可能な記録媒体を備えている。そして、上記コンピュータにおいて、上記プロセッサが上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記プロセッサとしては、例えばＣＰＵ（Central Processing Unit）を用いることができる。上記記録媒体としては、「一時的でない有形の媒体」、例えば、ＲＯＭ（Read Only Memory）等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムを展開するＲＡＭ（Random Access Memory）などをさらに備えていてもよい。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【０１１６】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【０１１７】
１００  端末装置（プログラム編集装置）
１１０  プログラム編集部
１１１  比較部
１１２  差分表示ペア選定部
１１３  編集操作量導出部
１１４  図形プログラム表示制御部
１２３  図形プログラム表示部
１４０  表示部
２１０  ＰＬＣ
ＰＡ、ＰＢ  図形プログラム群
ＰＡ１、ＰＡ２、ＰＡ３、ＰＡ４、ＰＢ１、ＰＢ２、ＰＢ３、ＰＢ４  図形プログラム
【図１】
2020155044.tif 000003
【図２】
2020155044.tif 000004
【図３】
2020155044.tif 000005
【図４】
2020155044.tif 000006
【図５】
2020155044.tif 000007
【図６】
2020155044.tif 000008
【図７】
2020155044.tif 000009
【図８】
2020155044.tif 000010
【図９】
2020155044.tif 000011
【図１０】
2020155044.tif 000012
【図１１】
2020155044.tif 000013
【図１２】
2020155044.tif 000014
【図１３】
2020155044.tif 000015
【図１４】
2020155044.tif 000016
【図１５】
2020155044.tif 000017
【図１６】
2020155044.tif 000018
【図１７】
2020155044.tif 000019