(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-12
(45)【発行日】2022-12-20
(54)【発明の名称】プログラム編集装置、プログラム編集方法、および、プログラム編集プログラム
(51)【国際特許分類】
G05B 19/05 20060101AFI20221213BHJP
【FI】
G05B19/05 B
(21)【出願番号】P 2019055348
(22)【出願日】2019-03-22
【審査請求日】2020-12-15
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】100155712
【氏名又は名称】村上 尚
(72)【発明者】
【氏名】荒井 航
【審査官】稲垣 浩司
(56)【参考文献】
【文献】特開2014-6717(JP,A)
【文献】特開平4-370805(JP,A)
【文献】特開平8-314702(JP,A)
【文献】特開2016-115017(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/05
(57)【特許請求の範囲】
【請求項1】
通信ネットワークを介して制御対象機器を制御するPLC(Programmable Logic Controller)で実行されるプログラムを編集するプログラム編集装置であって、
ユーザからの入力に応じて、処理ステップを示す単位処理図形を有向線によって接続し、複数の処理ステップを順に実行する前記プログラムを図形プログラムとして生成し、表示する制御を行うプログラム編集部を備え、
ユーザによって選択された複数の前記図形プログラム同士を比較し、処理内容に差異がある部分の前記単位処理図形および前記有向線を明示して表示する制御を行う比較部を、さらに備え
、
前記比較部は、複数の前記図形プログラムを含む図形プログラム群がユーザによって複数選択される指示入力を受け付けるとともに、選択された複数の前記図形プログラム群に含まれる複数の前記図形プログラムの中から、比較すべき前記図形プログラムのペアを選定する選定部をさらに備え、
前記選定部は、比較すべき前記図形プログラムのペアの候補のそれぞれについて、一方の前記図形プログラムから、他方の前記図形プログラムへ変更するために必要な編集操作量を算出し、前記編集操作量に基づいて、比較すべき前記図形プログラムのペアを選定するプログラム編集装置。
【請求項2】
前記選定部は、候補となる全ての前記ペアの中から、(1)前記編集操作量の合計が最小となる前記ペア、(2)前記編集操作量の総乗算値が最小となる前記ペア、または、(3)共通となる前記単位処理図形の数および前記有向線の数の合計が最大となる前記ペアを選定する請求項
1に記載のプログラム編集装置。
【請求項3】
前記比較部は、処理内容に差異がない部分の前記単位処理図形および前記有向線に関して、比較対象の複数の前記図形プログラム同士で互いに位置が対応するように表示する制御を行う請求項1~
2のいずれか一項に記載のプログラム編集装置。
【請求項4】
前記比較部は、処理内容に差異がない部分の前記単位処理図形および前記有向線に関して、比較対象の複数の前記図形プログラムのそれぞれにおいて省略表示をする制御を行う請求項1~
2のいずれか一項に記載のプログラム編集装置。
【請求項5】
前記比較部は、処理内容に差異がある部分の前記単位処理図形に関して、前記単位処理図形の処理内容に係るパラメータに差異がある場合に、該パラメータを表示する制御を行う請求項1~
4のいずれか一項に記載のプログラム編集装置。
【請求項6】
通信ネットワークを介して制御対象機器を制御するPLC(Programmable Logic Controller)で実行されるプログラムを編集するプログラム編集方法であって、
ユーザからの入力に応じて、処理ステップを示す単位処理図形を有向線によって接続し、複数の処理ステップを順に実行する前記プログラムを図形プログラムとして生成し、表示する制御を行う編集ステップと、
ユーザによって選択された複数の前記図形プログラム同士を比較し、処理内容に差異がある部分の前記単位処理図形および前記有向線を明示して表示する制御を行う比較ステップと、
を含み、
前記比較ステップは、複数の前記図形プログラムを含む図形プログラム群がユーザによって複数選択される指示入力を受け付けるとともに、選択された複数の前記図形プログラム群に含まれる複数の前記図形プログラムの中から、比較すべき前記図形プログラムのペアを選定するステップをさらに含み、
前記選定するステップは、比較すべき前記図形プログラムのペアの候補のそれぞれについて、一方の前記図形プログラムから、他方の前記図形プログラムへ変更するために必要な編集操作量を算出し、前記編集操作量に基づいて、比較すべき前記図形プログラムのペアを選定する、プログラム編集方法。
【請求項7】
請求項1~
5のいずれか一項に記載のプログラム編集装置としてコンピュータを機能させるためのプログラム編集プログラムであって、上記各部としてコンピュータを機能させるためのプログラム編集プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラマブルロジックコントローラに実行させるプログラムを編集するプログラム編集装置等に関する。
【背景技術】
【0002】
プログラミング言語の知識を持たないユーザが、各種情報処理装置のプログラムを作成するための方法として、プログラム部品を示す図形を接続して図形プログラムを作成することが従来技術として知られている。特許文献1には、視覚プログラミングシステムおよび図形プログラム編集方法の一例が記載されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開平8-314702号公報(1996年11月29日公開)
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上述のような従来技術は、修正で生じた差分を確認する際、処理内容が同じでも図形プログラムの外観が大きく異なる場合がある等の理由により、修正で生じた差分をユーザが簡単に把握する方法がないという問題がある。
【0005】
ここで、あるグラフを別のグラフと等しくするための操作手順である編集スクリプトをもって差分を表現し、グラフ編集距離(graph edit distance)を近似的に求めるアルゴリズムによって、修正前後のグラフの差異を確認する方法が知られている。また、類似度の判定をユーザの認知により近づけるため、「エッジの置換」「頂点の追加」「頂点の置換」といった各編集操作により加算される距離に重み付けを行うことがある。
【0006】
しかし、これらの従来技術は、例えば、置換される頂点自体の類否といった質的な差異を考慮せず、また、計算量が多くなる場合があるという問題がある。
【0007】
本発明の一態様は、計算量を抑制しながらも、図形プログラムに生じた差分をユーザが簡単に把握できるように表示するプログラム編集装置等を実現することを目的とする。
【課題を解決するための手段】
【0008】
本発明は、上述した課題を解決するために、以下の構成を採用する。
【0009】
本発明の一側面に係るプログラム編集装置は、通信ネットワークを介して制御対象機器を制御するPLC(Programmable Logic Controller)で実行されるプログラムを編集するプログラム編集装置であって、ユーザからの入力に応じて、処理ステップを示す単位処理図形を有向線によって接続し、複数の処理ステップを順に実行する上記プログラムを図形プログラムとして生成し、表示する制御を行うプログラム編集部を備え、ユーザによって選択された複数の上記図形プログラム同士を比較し、処理内容に差異がある部分の上記単位処理図形および上記有向線を明示して表示する制御を行う比較部を備える。
【0010】
上記構成によれば、よりユーザの認識に近い差分表示により、差分をユーザが簡単に把握できる表示が実現される。
【0011】
上記一側面に係るプログラム編集装置において、上記比較部は、複数の上記図形プログラムを含む図形プログラム群がユーザによって複数選択される指示入力を受け付けるとともに、選択された複数の上記図形プログラム群に含まれる複数の上記図形プログラムの中から、比較すべき上記図形プログラムのペアを選定する選定部をさらに有していてもよい。
【0012】
上記構成によれば、複数の図形プログラムの差分をまとめてユーザに表示することが実現される。
【0013】
上記一側面に係るプログラム編集装置において、上記選定部は、比較すべき上記図形プログラムのペアの候補のそれぞれについて、一方の上記図形プログラムから、他方の上記図形プログラムへ変更するために必要な編集操作量を算出し、上記編集操作量に基づいて、比較すべき上記図形プログラムのペアを選定する構成を有していてもよい。
【0014】
上記構成によれば、差分表示する図形プログラムをユーザの認識により近しく選定することが実現される。
【0015】
上記一側面に係るプログラム編集装置において、上記選定部は、候補となる全ての上記ペアの中から、(1)上記編集操作量の合計が最小となる上記ペア、(2)上記編集操作量の総乗算値が最小となる上記ペア、または、(3)共通となる上記単位処理図形および有向線の数の合計が最大となる上記ペアを選定する構成を有していてもよい。
【0016】
上記構成によれば、差分表示する図形プログラムをユーザの認識に更により近しく選定することが実現される。
【0017】
上記一側面に係るプログラム編集装置において、上記図形プログラム群のそれぞれについて、含まれる複数の上記図形プログラムの順番が決まっており、上記選定部は、上記順番に基づいて、比較すべき上記図形プログラムのペアを選定する構成を有していてもよい。
【0018】
上記構成によれば、より計算量を抑制し、処理負荷を軽減させることが実現される。
【0019】
上記一側面に係るプログラム編集装置において、上記比較部は、処理内容に差異がない部分の上記単位処理図形および有向線に関して、比較対象の複数の上記図形プログラム同士で互いに位置が対応するように表示する制御を行う構成を有していてもよい。
【0020】
上記構成によれば、ユーザにとってより把握が容易な表示が実現される。
【0021】
上記一側面に係るプログラム編集装置において、上記比較部は、処理内容に差異がない部分の前記単位処理図形および前記有向線に関して、比較対象の複数の上記図形プログラムのそれぞれにおいて省略表示をする制御を行う構成を有していてもよい。
【0022】
上記構成によれば、ユーザにとって不要な情報が削減され、より把握が容易な表示が実現される。
【0023】
上記一側面に係るプログラム編集装置において、上記比較部は、処理内容に差異がある部分の前記単位処理図形に関して、前記単位処理図形の処理内容に係るパラメータに差異がある場合に、該パラメータを表示する制御を行う構成を有していてもよい。
【0024】
上記構成によれば、単位処理図形の処理内容に係るパラメータのみに変更がある場合でもユーザが直感的に把握できることが実現される。
【0025】
本発明の一側面に係るプログラム編集方法は、通信ネットワークを介して制御対象機器を制御するPLC(Programmable Logic Controller)で実行されるプログラムを編集するプログラム編集方法であって、ユーザからの入力に応じて、処理ステップを示す単位処理図形を有向線によって接続し、複数の処理ステップを順に実行する上記プログラムを図形プログラムとして生成し、表示する制御を行う編集ステップと、ユーザによって選択された複数の上記図形プログラム同士を比較し、処理内容に差異がある部分の上記単位処理図形および上記有向線を明示して表示する制御を行う比較ステップと、を含む。
【0026】
上記構成によれば、よりユーザの認識に近い差分表示により、差分をユーザが簡単に把握できる表示が実現される。
【発明の効果】
【0027】
本発明によれば、図形プログラムの修正で生じた差分をユーザが簡単に把握する方法を実現できる。
【図面の簡単な説明】
【0028】
【
図1】実施形態1の全体構成の概要を示す図である。
【
図2】PLC上で実行される図形プログラムの一例を示す図である。
【
図3】比較部による一連の比較処理の流れを示すフローチャートである。
【
図4】各図形プログラム群から選定されうる図形プログラムのペアの、編集操作量の合計が最小となる組み合わせを求める処理の流れを示すフローチャートである。
【
図5】比較の対象となる2つの図形プログラムの一例を示す図である。
【
図6】複数の図形プログラム群に含まれる図形プログラムの組み合わせごとの編集操作量を示す図である。
【
図7】複数の図形プログラム群について可能なペアパターンを示す図である。
【
図8】比較対象となった複数の図形プログラム群を表示する表示画面の一例を示す図である。
【
図9】比較対象となる複数の図形プログラム群について、互いに変更の無かった部分を省略して表示する表示画面の一例を示す図である。
【
図10】各図形プログラム群から選定されうる図形プログラムのペアの、編集操作量の合計が最小となる組み合わせを求める処理の流れを示すフローチャートである。
【
図11】編集操作量の合計の代わりに、該ペアにおける共部の単位処理図形及び有向線の最大数を用いる場合の処理の流れを示すフローチャートである。
【
図12】差分表示ペア選定部が図形プログラムのペアを選定する際に図形プログラムの仮想平面上の座標を用いる場合の処理の流れを示すフローチャートである。
【
図13】各図形プログラム群における図形プログラムの基準座標値を示す図である。
【
図14】編集操作量の算出の際の、各操作の内容に応じた重みづけを示す図である。
【
図15】
図14の重みづけに従って算出した、各図形プログラムペアの編集操作量を示す図である。
【
図16】
図14の重みづけに従って算出した、各ペアパターンにおける編集操作量の合計及び総乗(総乗算値)を示す図である。
【
図17】
図5における2つの図形プログラム群上の、単位処理図形の座標を示す図である。
【発明を実施するための形態】
【0029】
以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。
【0030】
§1 適用例
図1を参照して、まず、本発明が適用された構成の一例を説明する。
図1は、本実施形態の全体概要を示す図である。
図1には、本発明に係るプログラム編集装置が端末装置100に適用された一構成例を示している。
【0031】
図1に示す構成では、生産システム200がPLC(Programmable Logic Controller)210を含み、該PLC210が、PLC210にプログラムを提供する端末装置100およびPLC210がデータの読み書きを行うデータベース4
10と通信可能に接続されている。
【0032】
生産システム200は、例えば、工場やプラントにおける生産のための機器及びそれを統括制御する装置である。生産システム200は、PLC210のほか、例えば各種ユニット220、各種機器230及びこれらのユニットや機器を制御するための実行可能ファイル240を有する。ここで、ユニット220とは、I/Oユニットや通信ユニット等の末端の機器である機器230とPLC210を中継するユニットの総称である。また、機器230とは、アクチュエータ、汎用センサ、シリアル機器、既設PLC等の、制御される末端機器及び制御に必要なデータを取得するための末端機器である。
【0033】
端末装置100は、例えばパーソナルコンピュータ(PC)である。端末装置100は、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等を含む。
【0034】
本実施形態に係る端末装置100は、通信ネットワークを介して制御対象機器を制御するPLC210で実行されるプログラムを編集するプログラム編集装置であって、ユーザからの入力に応じて、処理ステップを示す単位処理図形を有向線によって接続し、複数の処理ステップを順に実行する上記プログラムを図形プログラムとして生成し、表示する制御を行うとともに、ユーザによって選択された複数の上記図形プログラム同士を比較し、処理内容に差異が生じている部分の図形を明示して表示する制御を行う。この構成によれば、よりユーザの認識に近い差分表示により、差分をユーザが簡単に把握できる表示が実現される。
【0035】
§2 構成例
以下、端末装置100の構成例について、詳細に説明する。
【0036】
端末装置100にはPLC210に提供するプログラムを編集するプログラム編集部110、ユーザからの図形プログラムの編集操作を受け付ける入力部130、図形プログラムを表示する表示部140、編集された図形プログラムをPLC210に送信するPLCサポート部150が含まれる。
【0037】
プログラム編集部110は、複数の図形プログラムを比較してユーザに見やすいように表示座標調整を行う比較部111、プログラム記憶部121、図形プログラム部品格納部122、図形プログラム表示部123を有する。
【0038】
図形プログラムとは、部品化されたプログラム部品を単位処理図形として、単位処理図形同士のデータの受け渡し方向を有向線として表示することによって、一連のプログラムの実行順をユーザにわかりやすく表示したものである。本実施形態では、図形プログラムはPLC210上のパイプラインに対応している。
【0039】
プログラム編集部110は、例えば以下のように図形プログラムを設定しプログラム記憶部121に保存することができる。すなわち、ある単位処理図形が、自らを接続先とする有向線を持たない場合、当該単位処理図形を図形プログラムの始点に設定する。当該単位処理図形に接続された有向線があれば、該有向線及び当該有向線に接続された単位処理図形を当該図形プログラムに追加する。更に、新しく追加された単位処理図形に接続先の単位処理図形がある場合は、接続先がなくなるまでこれを繰り返す。プログラム記憶部121は、また、全図形プログラムを1つの図形プログラム群として扱い保存することもできる。
【0040】
図形プログラム部品格納部122は、図形プログラムの部品となる単位処理図形を格納する。単位処理図形は、装置や実行プログラムの種類によって定義されている。
【0041】
図形プログラム表示部123は、図形プログラムを表示用に整形し、表示部140に送信する。
【0042】
表示部140は、図形プログラム表示部123から送られた図形プログラムを例えばスクリーン上に表示する。
【0043】
入力部130は、ユーザの図形プログラムに対する編集操作を受け付ける。
【0044】
単位処理図形はPLC210上の実行可能ファイル240及びパラメータと対応している。また、仮想平面上の有向線はそれらの実行可能ファイル240の実行順及びデータの受け渡しに対応している。
【0045】
端末装置100は、PLC210と例えばUSBケーブルで接続されている。PLC210へのプログラムの書込みなどの通信は、USBケーブルおよびPLCサポート部150を通じて行われる。なお、USBに代えてEthernet(登録商標)で接続され、EthernetケーブルおよびLAN機器を通じて通信が行われてもよい。
【0046】
図形プログラム群の実体、すなわち、プログラム部品を使用するという宣言・各プログラム部品の設定・実行順序(データの受け渡し)は、例えばテキストデータとしてプログラム記憶部121に記憶され、PLCサポート部150を通じてPLC210に送信される。
【0047】
そして、本実施形態に係る生産システム200では、PLC210は、プログラム編集部110で生成された図形プログラムを読み込み、該図形プログラムで定義された順序で実行可能ファイル240を実行する。この際、プログラムの実行及びデータの受け渡しは、図形プログラム上の有向線で表された順序で行われる。
【0048】
この構成により、プログラムに不慣れなユーザでも、画面上に表示された図形プログラムを操作することで、PLC210上で動作するプログラムを直感的に作成することができる。
【0049】
図2には、PLC210上で実行される図形プログラムの一例を示している。
図2において、入力ノードInput、ロジックノードLogic、出力ノードOutputにより構成される複数のパイプラインが示されている。なお、図示されないが、各々のロジックノードLogicと出力ノードOutputの前段には受信キューが接続される。
【0050】
PLC210は更に、それが備える記憶装置内のデータファイル211、212や、その内部で動作する、工作機械のモーション制御プログラム等のアプリケーション213、214、パイプライン演算装置215を有している。
【0051】
パイプライン演算装置215は、演算部216及び制御部217を有している。演算部216においては、入力ノードと出力ノードとの間に、順次必要なロジックノードが接続されて、パイプラインが構成される。パイプラインは、通常多数であるが、少なくとも1つあればよい。制御部217は、上記ノードやキューを監視し、ノードの稼働時間を割り当てる。
【0052】
パイプライン演算装置215の入力ノードInputの接続先は、データファイル211や、アプリケーション213であり得る。更に、入力ノードInputの接続先は、PLC210の外部機器である、工作機械や測定機器その他の各種FA機器、各種生産情報に関するデータを収集し提供するデータサーバ11、各種生産情報に関するデータを保存するデータベース12、インターネットやその他のネットワーク上のクラウドサーバ13であり得る。
【0053】
パイプライン演算装置215の出力ノードOutputの接続先は、データファイル212や、アプリケーション214であり得る。更に、出力ノードOutputの接続先は、PLC210の外部機器である、工作機械や測定機器その他の各種FA機器、FA機器に関するデータを収集し提供するデータサーバ11、各種生産情報に関するデータを収集し提供するデータベース12、インターネットやその他のネットワーク上のクラウドサーバ13であり得る。
【0054】
入力ノードInputの接続先であるアプリケーション213と、出力ノードOutputの接続先であるアプリケーション214とは、異なるアプリケーションであってもよいし、同一のアプリケーションであってもよい。
【0055】
<プログラム編集部>
プログラム編集部110は、図形プログラムの編集を行うが、例えば、図形プログラム群に変更が生じる際、ユーザが編集前後の差分を確認したいと考える場合が生ずる。プログラム編集部110は、ユーザの操作を受け付けた場合には、図形プログラム群の比較を行う。
【0056】
例えば、プログラム編集部110は、図形プログラム群に変更を生じさせる際に、変更前の図形プログラム群及び変更後の図形プログラム群をプログラム記憶部121に保存する。以下、一例として、変更前の図形プログラム群を図形プログラム群PA、変更後の図形プログラム群を図形プログラム群PBとして、比較操作の流れを説明する。
【0057】
図3は、比較部111による一連の比較処理の流れを示したフローチャートである。
【0058】
(ステップS301)
ステップS301において、プログラム編集部110は、プログラム記憶部121に保存されている第一の図形プログラム群PA及び第二の図形プログラム群PBを読み込む。
【0059】
(ステップS302)
ステップS302において、プログラム編集部110は、ユーザからの比較操作を受け付ける。
【0060】
(ステップS303)
ステップS303において、比較部111は、比較対象として2以上の図形プログラム群が選択されているかどうかを判断する。2以上の図形プログラム群が比較対象として選択されている場合、比較部111は、ステップS304に移行する。2未満の図形プログラム群のみが選択されている場合、比較部111は、比較操作の受付状態を維持するためステップS302へ移行する。
【0061】
(ステップS304)
ステップS304において、比較部111は、選択された図形プログラム群同士を比較し、処理内容に差異がある部分を特定する。詳細には、差異が生じている箇所を特定する。具体的には、まず、差分表示ペア選定部112は、一方の図形プログラム群の中のある図形プログラムに対して、もう一方の図形プログラム群の中のいずれの図形プログラムと比較するかを決定する。ユーザの感覚上もっとも似ている図形プログラム同士の組み合わせを比較する方がよりユーザが直感的に差分を把握できるようになるため、差分表示ペア選定部112は、可能な限り類似した図形プログラム同士を選出する。後述するように、そのような方法は複数考えられる。比較の対象となる図形プログラムの組のパターンを決定した後、比較部111は、図形プログラムのペアについて、処理内容に差異がある部分を特定する。
【0062】
(ステップS305)
ステップS305において、比較部111は、処理内容に差異が生じている部分の図形を明示して図形プログラムを表示する。図形プログラム表示制御部114は、該差異をより見やすくするために図形プログラムの座標を再設定し、例えば表示部140を通じてスクリーンに表示する。
【0063】
<比較部>
以下、図形プログラム群を比較する方法の例について説明する。
【0064】
図4は、差分表示ペア選定部112の処理の流れの一例として、各図形プログラム群から選定されうる図形プログラムのペアの、編集操作量の合計が最小となる組み合わせを求める方法を示したフローチャートである。
【0065】
(ステップS401)
ステップS401において、差分表示ペア選定部112は、両図形プログラム群内の図形プログラムの数が同じかどうかを判断する。もし同数でない場合、差分表示ペア選定部112はステップS402へ移行し、図形プログラムの数が少ない方の図形プログラム群に、単位処理図形も有向線も持たない図形プログラムを仮想的に追加して、ステップS401の判断を再び行う。もし同数である場合、差分表示ペア選定部112は、ステップS403からステップS405までを、各図形プログラム群から1件ずつ選びだした図形プログラムの全ペアについて繰り返す。全てのペアについて繰り返した後、ステップS406に移行する。
【0066】
(ステップS403)
ステップS403において、差分表示ペア選定部112は、各図形プログラム群から図形プログラムの組を一つずつ抽出する。
【0067】
(ステップS404)
ステップS404において、編集操作量導出部113は、ステップS403で抽出された図形プログラムの組において、抽出した組み合わせに係る最短編集操作量を算出する。最短編集操作量とは、一方の図形プログラムから他方の図形プログラムへ変化させるために必要な操作量のことであり、例えば、「単位処理図形の追加」「単位処理図形の削除」「単位処理図形の変更」「有向線の追加」「有向線の削除」「有向線の変更」についてそれぞれ編集操作量を1として算出する。
【0068】
(ステップS405)
ステップS405において、編集操作量導出部113は、ステップS404で算出された最短編集距離を、例えばマトリクス内に保存して、求められた値を再使用できるようにする。
【0069】
(ステップS406)
ステップS406において、差分表示ペア選定部112は、図形プログラムのペアパターンからペアパターン表を生成する。ペアパターン表は、両図形プログラム群内で可能な図形プログラムの組み合わせパターンを定義するものである。
【0070】
(ステップS407)
ステップS407において、差分表示ペア選定部112は、ステップS406で定義されたペアパターンごとに、例えば、当該ペアパターンにおける各図形プログラムのペアにおける編集操作量の合計を求める。なお、編集操作量の合計の代わりに、編集操作量の総乗(総乗算値)を求めてもよい。ただし、この場合には、編集操作量が0となる組み合わせが1つでも存在する場合にそのペアパターンの編集操作量の総乗(総乗算値)が0となってしまうことを防ぐため、編集操作量が0となる組み合わせは総乗(総乗算値)の計算から除外される。全てのペアパターンについて計算が完了したのち、ステップS408に移行する。
【0071】
(ステップS408)
ステップS408において、差分表示ペア選定部112は、最も編集操作量の合計の小さいペアパターンを選定する。なお、最も編集操作量の合計の小さいペアパターンの代わりに、最も編集操作量の総乗(総乗算値)の小さいペアパターンを選定してもよい。どちらの選定方法によっても、ユーザの直感に近い類似度で図形プログラムのペアを選定することができる。
【0072】
(ステップS410)
ステップS410において、比較部111は、両図形プログラム群において差異が生じている箇所を特定する。差異は、最短編集操作において行われる操作、例えば、単位処理図形の追加・削除・パラメータの変更等である。または、編集操作を求める方法の精度によって最短編集操作を求めることができない場合には、最短に近い編集操作における操作であってもよい。
【0073】
図5は、比較の具体例を示すために、比較の対象となる図形プログラム群
PA及び
PBの一例を示した図である。各図形プログラム群を構成する単位処理図形及び有向線は、仮想平面P1及びP2上に配置されている。当該座標は、例えば、ユーザに表示されるスクリーン上の平面座標に対応していても良く、あるいは、より簡略化された座標であってもよい。
【0074】
図5では、図形プログラム群PAにおいて、単位処理図形F11が座標(X1、Y1)、単位処理図形F12が座標(X2、Y1)、単位処理図形F13が(X3、Y1)、単位処理図形F14が座標(X3、Y2)にそれぞれ配置されており、(F11、F12、F13)及び(F11、F14)の順に処理が行われるように有向線で接続されている。これらの単位処理図形及び有向線は、他の有向線又は単位処理図形を介して互いに接続されているから、1つの図形プログラムとして定義される。
【0075】
ここでは、図形プログラムの始点となっている単位処理図形のY座標の順に、単位処理図形(F11、F12、F13、F14)及びそれらを接続する有向線のグループを「図形プログラムPA1」、単位処理図形(F21、F22)及びそれらを接続する有向線を「図形プログラムPA2」、単位処理図形(F31、F32、F33)及びそれらを接続する有向線を「図形プログラムPA3」、単位処理図形(F41、F42)及びそれらを接続する有向線を「図形プログラムPA4」とする。
【0076】
図形プログラム群PBにおいては、図形プログラム群PAと比較して、単位処理図形F14、F41及びF42及びそれらに接続されていた有向線が削除されており、単位処理図形F32のパラメータが変更されている。また、単位処理図形F33の内容は「DBにINSERT」から「HTTP POSTでサーバに送信」へと変更されている。単位処理図形及び有向線の位置も図形プログラム群PBとは異なっている。図形プログラム群PBにおいても上記と同様に、図形プログラムの始点となっている単位処理図形のY座標の順に、単位処理図形(F21、F22)及びそれらを接続する有向線を「図形プログラムPB1」、単位処理図形(F11、F12、F13)及びそれらを接続する有向線を「図形プログラムPB2」、単位処理図形(F31、F32、F33)及びそれらを接続する有向線を「図形プログラムPB3」と定義する。
図4のフローチャートに従えば、図形プログラム群PAと
PBとでは、
PAに含まれる図形プログラム数が4、
PBに含まれる図形プログラム数が3のため、差分表示ペア選定部112はステップS402に従って、図形プログラム群PBに、単位処理図形も有向線も持たない図形プログラムPB4(不図示)を仮想的に追加する。
【0077】
図6は、
図5の場合において、図形プログラム群PA及び
PBに含まれる図形プログラムの組み合わせごとの編集操作量を示した図である。ステップS40
5において、編集操作量導出部113は、ステップS40
4で算出された最短編集距離を、このような表に保存してよい。
【0078】
図7は、図形プログラム群PA及び
PBの間で可能なペアパターンを示した図である。この図では、パターン1の方がパターン2よりも編集操作量の合計が小さい。図示しないが、編集操作量の合計が最小となるペアパターンを選出した場合、選出される図形プログラムの組は(PA1―PB2、PA2―PB1、PA3―PB3、PA4―PB4)である。
【0079】
<画面図>
図8は、図形プログラム表示制御部114が
図5の例の図形プログラム群PA及び図形プログラム群PBを、それぞれ「変更前」「変更後」として表示する場合の一例を示した画面図である。
【0080】
この例では、図形プログラム表示制御部114は、図形プログラム群PA及びPBの対応する図形プログラムを、ユーザが確認しやすいよう、スクリーン上のY軸を揃えて表示している。図形プログラム群PAを示す画面510には、上から順に図形プログラムPA1、PA2、PA3及びPA4が描画されている。図形プログラム群PBを示す画面560には、それらの図形プログラムとの対応に応じて上から順に図形プログラムPB2、PB1、PB3及びPB4が描画されている。なお、図形プログラムPB4は単位処理図形及び有向線を持たないため、画面上には表示されない。
【0081】
この例では、図形プログラム群PAに存在するがPBに存在しない単位処理図形及び有向線は、点線で表示されている。同様に、図形プログラム群PBに存在するがPAに存在しない単位処理図形及び有向線が強調されていてもよい。また、図形プログラム群PAとPBとで処理内容が異なる単位処理図形F32は、枠が太線になるという強調が施されている。また、図形プログラム群PAとPBとでパラメータのみが異なる単位処理図形F32の近傍には、それぞれのパラメータが表示されている。
【0082】
また、この例では、各編集差分となっている単位処理図形に対して、その種別及びパラメータをユーザが確認できるよう、追加のUI要素551及び552が表示されている。例えば、UI要素544は、UI要素551及び552に表示するために現在選択されている差分の単位処理図形を示す。現在選択されている単位処理図形F32においてはパラメータ「期間」が「6」から「12」へ変更されているので、UI要素551には「期間」及びその内容「6」、UI要素552には「期間」及びその内容「12」が表示されている。UI要素501及び502は、ユーザの操作を受け付け、別の差分となっている単位処理図形の詳細情報を順に表示する。
【0083】
また、図形プログラム表示制御部114は、例えばUI要素503を通じた操作を受け付けることで、差分の生じていない単位処理図形及び有向線を省略した図を画面に表示することができてもよい。
【0084】
図9は、図形プログラム表示制御部114が、
図5の例の図形プログラム群PA及び図形プログラム群PBを、互いに変更の無かった部分を省略して表示する場合の画面図の一例である。この例では、差分となっている単位処理図形から2以上の有向線を介する単位処理図形及び有向線は表示されず、代わりに、当該部分が省略されていることを示すUI要素525が表示される。図形プログラム表示制御部114は、例えば、UI要素503又はUI要素525を介してユーザの操作を受け付けた場合には、当該省略表示を終了し、
図8の画面を表示してもよい。
【0085】
§3 変形例1
図10は、差分表示ペア選定部112の処理の流れの一例として、各図形プログラム群から選定されうる図形プログラムのペアの、編集操作量の合計が最小となる組み合わせを求める、
図4とは別の方法を示したフローチャートである。なお、
図4で説明したステップと同内容のステップについては、詳細な説明を繰り返さない。
【0086】
ステップS401及びステップS402は、
図4と共通である。
【0087】
(ステップS4031)
ステップS4031において、差分表示ペア選定部112は、図形プログラムのペアパターンからペアパターン表を生成する。このステップは、
図4のステップS406に相当する。生成されたペアパターンごとに、以下ステップS4041からステップS4
091までを繰り返す。
【0088】
(ステップS4041)
まず、ペアパターンに含まれるペアごとにステップS4041からステップS4091までを繰り返す。ステップS4041において、差分表示ペア選定部112は、当該ペアの最短編集操作量を既に計算したかどうかを判定する。未計算の場合、ステップS4051へ移行する。計算済みの場合、ステップS4071へ移行する。
【0089】
(ステップS4051)
ステップS4051は、
図4のステップS404に相当する。
【0090】
(ステップS4061)
ステップS4061は、
図4のステップS405に相当する。
【0091】
(ステップS4071)
ステップS4071において、差分表示ペア選定部112は、当該ペアに係る計算済みの最短編集操作量を読み込む。
【0092】
(ステップS4081)
ステップS4081において、差分表示ペア選定部112は、現在ペアの最短編集操作量を現在ペアパターンの最短編集量合計に加算する。
【0093】
(ステップS4091)
ステップS4091において、差分表示ペア選定部112は、現在ペアパターンの計算済み最短編集操作量の合計が他のペアパターンの最短編集操作量の合計以上であるかどうかを判断する。現在ペアパターンの計算済み最短編集操作量の合計が、編集操作量の合計が最小のペアパターンの編集操作量の合計未満である場合、次のペアについてステップS4041に移行し、そうでない場合は、次のペアパターンについてステップS4041に移行する。
【0094】
【0095】
上記の構成によれば、全ペアについて最短編集操作量を計算する前に最も編集操作量の小さいペアパターンを求めることができる場合があるため、
図4と比較して計算量を減らすことができる。なお、ステップS4081及びステップS4091では、最も似たペアを求めるために編集操作量の合計の最小値を利用しているが、編集操作量の総乗(総乗算値)の最小値を利用してもよい。
【0096】
§4 変形例2
図11は、
図4のステップS40
4で、編集操作量の合計の代わりに、該ペアにおける共部の単位処理図形及び有向線の最大数(以下、最大共通単位数という)を用いる場合のフローチャートである。なお、
図4で説明したステップと同内容のステップについては、詳細な説明を繰り返さない。
【0097】
(ステップS4042)
ステップS4042において、編集操作量導出部113は、選定されたペアにおいて単位処理図形及び単位処理図形に接続された有向線が同一となっている部分について、何個の単位処理図形及び有向線が同一であるかを算出する。
図5の例で言えば、例えば、図形プログラムPA3と図形プログラムPB3とは、単位処理図形F31及び単位処理図形F31を始点とする有向線において同一であり、他に同一の単位処理図形を持たないので、最大共通単位数は2と計算される。
【0098】
(ステップS4072)
ステップS4072において、編集操作量導出部113は、当該ペアパターンにおける最大共通単位数の合計を求める。
【0099】
(ステップS4082)
ステップS4082において、差分表示ペア選定部112は、最大共通単位数の合計が最大となるペアパターンを選定する。
【0100】
ステップS4042及びステップS4082以外のステップは、
図4と共通である。
【0101】
§5 変形例3
図12は、差分表示ペア選定部112が図形プログラムのペアを選定する際に図形プログラムの仮想平面上の座標を用いる場合の処理の流れを示したフローチャートである。なお、
図4で説明したステップと同内容のステップについては、詳細な説明を繰り返さない。
【0102】
ステップS401及びステップS402は、
図4と共通である。
【0103】
(ステップS4033)
ステップS4033において、差分表示ペア選定部112は、各図形プログラムの基準座標値を取得する。基準座標値とは、例えば、各図形プログラムの始点となっている単位処理図形の仮想平面上の座標でもよく、各図形プログラムの始点から最も多くの単位処理図形及び有向線を介した単位処理図形の単位処理図形でもよい。また、別の例では、各図形プログラム内の単位処理図形のX座標又はY座標の最大値・最小値・平均値・中央値等を基準座標値として用いてもよい。
【0104】
(ステップS4043)
ステップS4043において、差分表示ペア選定部112は、基準座標値をもとに、一方の図形プログラム群の各図形プログラムに対し、もう一方の図形プログラム群から図形プログラムを選び出してペアパターンを選定する。例えば、差分表示ペア選定部112は、各図形プログラムのペアにおける基準座標値の差の合計が最小になるようペアパターンを選定しても良いし、基準座標値の差の総乗(総乗算値)(差が0のペアを除く)が最小になるようペアパターンを選定しても良い。
【0105】
図13は、本変形例の一例であり、各図形プログラム群における図形プログラムを基準座標値のY座標が小さい順に並べ替えた図である。差分表示ペア選定部112は、当該図において上から数えた順番が同じとなる図形プログラムのペア、つまり(PA1―PB1、PA2―PB2、PA3―PB3、PA4―PB4)をペアパターンとして選定してもよい。
【0106】
【0107】
本変形例によれば、ペアパターンを選定するまでの間に最短編集操作量を求めなくてよいため、
図4の場合に比べ計算量を減らすことができる。
【0108】
§6 変形例4
図14は、
図4のステップS40
4において、編集操作量の算出の際に各操作の内容に応じた重みづけを示した場合の図である。例えば、「単位処理図形の置換」操作は、単位処理図形を削除及び追加する操作と同じとも考えられるため、編集操作量は「単位処理図形の削除」及び「単位処理図形の追加」の和である2としている。また、単位処理図形にて実行される内容が同じで、パラメータのみが異なる場合、差異は小さいと考えられるため、「単位処理図形の置換」の4分の1の値である0.5に設定されている。
【0109】
図15は、
図14の重みづけに従って各図形プログラムペアの編集操作量を算出した場合のマトリクスである。
図6の場合と比較して、例えば、PA2-PB2ペアの編集操作量が大きくなっているのに対し、PA
3-PB3ペアの編集操作量は小さくなっている。
【0110】
図16は、
図14の重みづけに従って各ペアパターンにおける編集操作量の合計及び総乗(総乗算値)を算出した場合のマトリクスである。
図7と比較すると、パターン1とパターン2の編集操作量合計の差異がより明確になっている。
【0111】
本変形例の構成によれば、ユーザの認識上差が大きい操作はより大きな編集操作量に、差が小さい操作はより小さな編集操作量に基づいて計算されるので、よりユーザの感覚に近い編集操作量を導出することが可能になる。なお、単位処理図形の置換や有向線の方向の置換を禁止することによっても、同様の効果を奏する。
【0112】
§7 変形例5
また、プログラム編集部110は、各単位処理図形に重複しない番号を付して、各図形プログラム群における座標を比較し、座標が異なる単位処理図形を差分として表示することもできる。本変形例によれば、図形プログラムのペアを選定することなく、差分を比較することができるため、計算量を減らし高速に処理することができる。
【0113】
図17は、
図5における図形プログラム群PA及び図形プログラム群PB上の、単位処理図形の座標を示したマトリクスである。例えば単位処理図形F21についてみると、F21は図形プログラム群PA及び図形プログラム群PB上で異なる座標上にあるので、図形プログラム表示制御部114は、F21を差分として設定し表示する。また、例えば単位処理図形F41についてみると、F41は図形プログラム群PAには存在するがPBには存在しないから、片方の図形プログラム群にのみ存在する単位処理図形として設定し表示する。
【0114】
〔ソフトウェアによる実現例〕
プログラム編集部110は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、ソフトウェアによって実現してもよい。
【0115】
後者の場合、プログラム編集部110は、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータを備えている。このコンピュータは、例えば1つ以上のプロセッサを備えていると共に、上記プログラムを記憶したコンピュータ読み取り可能な記録媒体を備えている。そして、上記コンピュータにおいて、上記プロセッサが上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記プロセッサとしては、例えばCPU(Central Processing Unit)を用いることができる。上記記録媒体としては、「一時的でない有形の媒体」、例えば、ROM(Read Only Memory)等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムを展開するRAM(Random Access Memory)などをさらに備えていてもよい。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【0116】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【0117】
100 端末装置(プログラム編集装置)
110 プログラム編集部
111 比較部
112 差分表示ペア選定部
113 編集操作量導出部
114 図形プログラム表示制御部
123 図形プログラム表示部
140 表示部
210 PLC
PA、PB 図形プログラム群
PA1、PA2、PA3、PA4、PB1、PB2、PB3、PB4 図形プログラム