(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0013】
以下、各図面に示される同一または同等の構成要素、部材、処理には、同一の符号を付するものとし、適宜重複した説明は省略する。
【0014】
実施の形態に係るデータ編集比較装置は、産業用機器の組み込みシステムを制御するためのソフトウエアを開発する環境に設けられる。ユーザはデータ編集比較装置を使用して所望の制御内容を表す制御データを生成し、生成された制御データをデータ編集比較装置に保持させる。データ編集比較装置は制御データの編集に際し、制御データを、処理単位に対応する図形要素を使用してディスプレイに表示させる。データ編集比較装置は制御データを、C言語などのテキストベースのプログラミング言語で記述されたソースプログラムに変換すなわちコンパイルする。
【0015】
データ編集比較装置によって生成されたソースプログラムはそのまま、もしくはさらに機械語へ翻訳された後、ターゲットボードに実装され、様々な産業用機器のシミュレーションに利用される。また、ソースプログラムを組み込みシステムに導入することで、産業用機器を直接駆動・制御することができる。
【0016】
制御データは、ディスプレイにおける図形を用いた表示に適合した形式を有していてもよい。例えば制御データは、サーボ制御やフィードバック制御などのループを含む制御を好適に表せるブロック線図に対応するデータであってもよい。あるいはまた、制御データは、組み込みシステムのシーケンス制御を記述するのに好適なラダー図やシーケンシャル・ファンクション・チャートや特許文献1に記載される表現に対応するデータであってもよい。
【0017】
処理単位は、制御内容を構成する処理の単位であり、特に処理の流れにおけるひとつの処理またはひとまとまりの処理であってもよい。例えば処理単位は、条件とそれに対する応答という処理の流れにおいては、条件や応答であってもよい。例えば処理単位は、入力とそれに対する出力という処理の流れにおいては、入力や出力であってもよい。例えば処理単位は、シーケンス制御の場合はシーケンスのステップであってもよく、ブロック線図の場合はブロックに対応する処理であってもよい。
【0018】
実施の形態に係るデータ編集比較装置は、上記のような図的なプログラム開発環境を提供する。また、データ編集比較装置は、そのような図的なプログラム開発環境において、テキストベースでの差分検索・表示機能に代えてまたは加えて、ブロック図等で図的に記述される制御データの間の差分を検索し、図的に表示する機能を提供する。これにより、制御データの開発者以外のコントローラユーザが制御データの内部のモニタやデータ収集を行う際、ソースファイルもしくは変数とアドレス値の対応等、制御データ内部の情報を意識する必要はなくなる。これにより、容易にかつ自由度高く内部のモニタ、データ収集を可能にする環境を提供することが可能となる。
【0019】
図1は、実施の形態に係るデータ編集比較装置10の機能および構成を示すブロック図である。ここに示す各ブロックは、ハードウエア的には、コンピュータのCPU(central processing unit)をはじめとする素子や機械装置で実現でき、ソフトウエア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウエア、ソフトウエアの組合せによっていろいろなかたちで実現できることは、本明細書に触れた当業者には理解されるところである。
【0020】
データ編集比較装置10は、マウスやキーボードなどの入力装置12およびディスプレイ14と接続される。データ編集比較装置10は不図示のインターネットなどのネットワークと接続されていてもよい。
データ編集比較装置10は、制御データ編集部40と、コンパイル部44と、表示制御部42と、比較対象指定受付部50と、データ比較部52と、差分表示指定受付部54と、制御データ保持部16と、差分データ保持部18と、を備える。
【0021】
図2は、制御データ保持部16の一例を示すデータ構造図である。
図2の例では制御データ保持部16は第1制御データ20と第2制御データ22とを含む。第1制御データ20、第2制御データ22はそれぞれ2つの処理単位を含む。各処理単位に対応する箱などの図形要素は、図形要素を一意に特定するIDすなわち名称と、処理の種類と、記述されるテキスト内容と、接続元と、接続先と、接続極性と、位置座標と、属する制御データ名等と、を属性として持ち、これらは構造体24、26、28、30として制御データに格納される。
【0022】
処理の種類は、条件処理であるかそれとも応答処理であるかを示す情報であってもよい。あるいはまた、ラダー図の場合は入力処理であるかそれとも出力処理であるかを示す情報であってもよい。接続極性は、次の図形要素への接続が正論理か負論理かを示す。接続先は複数存在してもよい。接続元、接続先はそれぞれ処理単位間の因果関係を示す。
【0023】
なお、因果関係は、条件に対する応答の関係であってもよいし、入力に対する出力の関係であってもよい。あるいはまた、因果関係は処理単位間の順序であってもよい。処理単位間の順序は、一連の処理において処理単位が実行される順序であってもよい。
【0024】
例えば、
図2において第1制御データ20に含まれる構造体24に対応する図形要素は、名称「A」、処理の種類「Condition」、テキスト内容「A==1」、接続元「NULL」、接続先「B」、接続極性「正論理」、位置座標「(Xa,Ya)」、属する制御データ名「Original」、を属性として有する。
【0025】
図3は、接続極性を説明するための模式図である。「A==1」の箱から「B=1」の箱への矢印32に丸印が付されていない場合、それらの間の接続は正論理である。すなわち、「A==1」が成立した場合、「B=1」を実行する。「A==1」の箱から「B=1」の箱への矢印34に丸印36が付されている場合、それらの間の接続は負論理である。すなわち、「A==1」が成立していない場合、「B=1」を実行する。
【0026】
図1に戻り、制御データ編集部40は、入力装置12および表示制御部42と協働して、インタラクティブな制御データの編集を可能とする。制御データ編集部40は、ユーザから入力装置12を介して入力される入力情報に基づいて制御データを編集し、編集された制御データを制御データ保持部16に登録する。制御データの編集は、新たに制御データを生成することと、既存の制御データを例えば制御データ保持部16から呼び出して変更することと、を含む。制御データ編集部40においては、例えば公知のラダー図編集技術や、特許文献1に記載されるような公知の図的プログラム編集技術が使用されてもよい。
あるいはまた、制御データ編集部40は、外部記憶装置やネットワーク(いずれも不図示)などから制御データを取得してもよい。
【0027】
コンパイル部44は、ユーザからの要求に基づき、制御データ保持部16によって保持される制御データをソースプログラムに変換する。ソースプログラムは、産業用機器の組み込みシステムで実行可能な形式を有していてもよい。ラダー図やブロック線図などの図的な表現に対応する制御データをソースプログラムに変換する技術は公知である。
【0028】
表示制御部42は、ユーザからの要求に基づき、制御データ保持部16によって保持される制御データを、箱や矢印などの図形要素を使用してディスプレイ14に表示させる。
【0029】
図4は、図形要素を使用して制御データを表示するデータ表示画面60の代表画面図である。データ表示画面60は
図2に示される制御データ保持部16に対応する。データ表示画面60は、図形要素を使用して第1制御データ20が表示される第1データ表示領域62と、図形要素を使用して第2制御データ22が表示される第2データ表示領域64と、を有する。
【0030】
第1データ表示領域62には、テキスト内容「A==1」を有する構造体24に対応する第1箱66と、テキスト内容「B=1」を有する構造体26に対応する第2箱68と、第1矢印74と、が表示される。第1矢印74は、構造体24、26の接続元、接続先、接続極性、位置座標、に基づき表示される。
第2データ表示領域64には、テキスト内容「A==1」を有する構造体28に対応する第3箱70と、テキスト内容「B=1」を有する構造体30に対応する第4箱72と、第2矢印76と、が表示される。第2矢印76は、構造体28、30の接続元、接続先、接続極性、位置座標、に基づき表示される。
【0031】
図5は、図形要素を使用して第3制御データを表示する別のデータ表示画面78の代表画面図である。データ表示画面78は、第3制御データで使用される変数やその値が表示される変数表示領域80と、図形要素を使用して第3制御データの制御内容が表示される制御内容表示領域82と、を有する。制御内容表示領域82は、処理単位に対応する箱群と、箱と箱との間に設けられる矢印群と、を主に含む。
制御内容表示領域82には、「「A==1」が成立した場合「B=1」を実行し、「A==1が成立していない場合「B=0」を実行する」という一連の処理が表示されている。
【0032】
図6は、図形要素を使用して第4制御データを表示する別のデータ表示画面84の代表画面図である。第4制御データは、第3制御データの変数名「B」を変数名「C」に変更したものである。
【0033】
図7は、図形要素を使用して第5制御データを表示する別のデータ表示画面86の代表画面図である。第5制御データは、第3制御データの「B=1」の箱および「B=0」の箱を所定距離下方に移動させたものである。処理単位間の因果関係に変更はないので、第5制御データの制御内容は第3制御データの制御内容と同等である。
【0034】
図1に戻り、比較対象指定受付部50は、入力装置12を介して、ユーザによる複数の異なる制御データの指定を受け付ける。特に比較対象指定受付部50は、比較元の制御データおよび比較先の制御データの指定を受け付ける。
【0035】
データ比較部52は、比較元の制御データと比較先の制御データとを比較し、それらの差分を導出する。データ比較部52は、比較元の制御データの全ての図形要素について、属性について1つずつ比較を行い、属する制御データ名以外に差異があるものを差分データとして差分データ保持部18に格納する。
【0036】
図8は、データ比較部52における一連の処理の一例を示すフローチャートである。データ比較部52は、制御データ保持部16によって保持される比較元の制御データを参照し、その制御データに含まれる構造体であってこれまで選択されていない構造体を選択する(S202)。データ比較部52は、制御データ保持部16によって保持される比較先の制御データを参照し、その制御データに、ステップS202で選択された構造体に対応する構造体が含まれるか否かを判定する(S204)。含まれると判定された場合(S204のY)、データ比較部52は、ステップS202で選択された構造体と、それに対応する比較先の制御データの構造体と、に差があるか否かを判定する(S206)。
【0037】
差があると判定された場合(S206のY)またはステップS204において含まれないと判定された場合(S204のN)、データ比較部52は、ステップS202で選択された構造体について差分データを生成し、差分データ保持部18に登録する(S208)。差分データは、比較元の制御データ名と、比較先の制御データ名と、ステップS206で導出された差についての情報と、を含む。差についての情報は、例えば構造体のどの属性がどのように異なるかを示す情報である。
【0038】
差分データの生成に際し、データ比較部52は、ステップS206で比較される2つの構造体間の差は、制御内容の違いによるものか否かを判定する(S210)。具体的には、データ比較部52は、2つの構造体間の差が位置座標の差のみであるか、それ以外の属性の差を含むかを判定する。データ比較部52は、前者の場合、2つの構造体に関して制御内容に違いはないと判定し、後者の場合、制御内容にも違いがあると判定する。
【0039】
2つの構造体に関して制御内容に違いはないと判定された場合(S210のN)、データ比較部52は、ステップS208で生成、登録された差分データに、2つの構造体間の差について制御内容は同等であることを記録する(S212)。例えば、差分データは、制御内容が同等であるか否かを示す同等フラグを有する。データ比較部52は、2つの構造体に関して制御内容に違いはないと判定された場合、その同等フラグを立てる。
【0040】
ステップS206において差がないと判定された場合(S206のN)またはステップS210において制御内容に違いがあると判定された場合(S210のY)またはステップS212において差分データが更新されると、データ比較部52は、比較元の制御データに含まれる全ての構造体が選択されたか否かを判定する(S214)。選択されていない構造体が存在すると判定された場合(S214のN)、処理はステップS202に戻る。全ての構造体が選択されたと判定された場合(S214のY)、データ比較部52は、比較先の制御データに含まれる全ての構造体が、ステップS206において比較されたか否かを判定する(S216)。比較されていない構造体が存在すると判定された場合(S216のN)、データ比較部52は、比較されていない構造体について差分データを生成し、差分データ保持部18に登録する(S218)。ステップS218において差分データが更新されるとまたはステップS216において全ての構造体が選択されたと判定された場合(S216のY)、処理は終了する。
【0041】
図2および
図4に示される第1制御データ20を比較元の制御データ、第2制御データ22を比較先の制御データとする例について説明する。データ比較部52は、第1制御データ20の第1箱66の構造体24について、対応する構造体を第2制御データ22から検索する。データ比較部52は、属する制御データ名以外が全て等しい箱の構造体が第2制御データ22に存在するので(第3箱70の構造体28)、構造体24についての検索を終了し、構造体24(第1箱66)に関する差分データを生成しない。データ比較部52は、第1制御データ20の第2箱68の構造体26について、対応する構造体を第2制御データ22から検索する。データ比較部52は、第2制御データ22中に、属する制御データ名以外に、位置座標に差異がある構造体30を発見し、構造体26(第2箱68)について差分データを生成する。この差分データ生成の際に、接続元である第1箱66の構造体24を再度検索し、第1箱66との接続極性に差異がないことから、第1箱66と第2箱68との接続関係は第3箱70と第4箱72との接続関係と同一であることを差分データに記録する。
【0042】
なお、上記の例においては簡単のため制御データが2つの箱を含む場合について説明したが、箱が3つ以上ある場合においても上記と同様の処理を繰り返すことで差分データを生成することが可能となる。
【0043】
図1に戻り、図形要素に対応する処理単位の処理順序やデータの流れを示す矢印等で表示される接続関係をトポロジーと称す。データ編集比較装置10は、
図7に示される第5制御データのようにトポロジー的には
図5に示される第3制御データと差分がなく、図形要素の位置が変わっただけの場合において、その位置の差分を差分として検出するか同一のものとするかについての選択機能を有する。差分表示指定受付部54は、入力装置12を介して、ユーザによる比較結果表示モードの指定を受け付ける。比較結果表示モードは、トポロジー的には差分がない場合はそれを差分として表示しない第1モードと、トポロジー的には差分がなくても図形要素の位置関係に差分があればそれを差分として表示する第2モードと、から選択される。
【0044】
表示制御部42は、比較元の制御データまたは比較先の制御データをディスプレイ14に表示させる際、差分データ保持部18を参照し、データ比較部52によって導出された差分に対応する部分をそうでない部分とは異なる態様で表示させる。特に、表示制御部42は、差分データ保持部18によって保持される差分データに対応する図形要素を強調してディスプレイ14に表示させる。
【0045】
表示制御部42は、指定された比較結果表示モードにしたがって差分を表示させる。第1モードが指定される場合、表示制御部42は、同等フラグが立っている差分データを参照しないか、無視する。第2モードが指定される場合、表示制御部42は、同等フラグの状態によらずに差分データを参照する。すなわち、第1モードが指定される場合、差分が図形要素の配置の差分のみを含む場合はその差分は無視されるが、第2モードが指定される場合はそのような差分も差分として表示される。
【0046】
図9は、第3制御データと第4制御データとの比較結果を示す比較結果表示画面88の代表画面図である。比較結果表示画面88は、比較元の制御データを
図5に示される第3制御データ、比較先の制御データを
図6に示される第4制御データとしたときの差分データに基づいて、第3制御データを示すデータ表示画面78に変更を加える形で生成される。
【0047】
比較結果表示画面88の変数表示領域90には、第3制御データで使用される変数および第4制御データで使用される変数が表示される。第3制御データおよび第4制御データの両方で使用される変数(「bool A」)すなわち差分に関しない変数は、破線や薄い色などの抑制された態様で表示される。このように、ある部分を抑制された態様で表示することは、それ以外の部分を強調することでもある。あるいはまた、そのような変数は表示されなくてもよい。第3制御データで使用されるが第4制御データで使用されない変数(「int B」)の表示色である第1の色は、第4制御データで使用されるが第3制御データで使用されない変数(「int C」)の表示色である第2の色とは異なる。
図9では第1の色と第2の色との差を濃淡で表現するが、青と赤など色分けして表示してもよい。
【0048】
比較結果表示画面88の制御内容表示領域92は、抑制された態様で表示される図形要素と、第1の色で表示される図形要素と、第2の色で表示される図形要素と、を含む。第3制御データと第4制御データとで制御データ名を除いて同一となる構造体(すなわち、対応する差分データが差分データ保持部18に存在しない構造体)に対応する図形要素(「A==1」の箱および関連する矢印)は、抑制された態様で表示される。対応する差分データが差分データ保持部18に存在する構造体については、第3制御データの構造体に対応する図形要素(「B=1」の箱および「B=0」の箱)は第1の色で表示され、第4制御データの構造体に対応する図形要素(「C=1」の箱および「C=0」の箱)は第2の色で表示される。これにより、ユーザは、比較の結果差分が発生した箇所をより容易かつ迅速に特定することができる。
【0049】
なお、
図9の例では、差分比較結果を1つの画面に重ねて表示しており、制御内容表示領域92については図形要素の位置は同じであるため、重なって表示されているが、場所をずらして表示してもよく、また差分比較結果をそれぞれ別画面で表示してもよい。
【0050】
図10は、第3制御データと第5制御データとの比較結果を示す別の比較結果表示画面94の代表画面図である。比較結果表示画面94は、比較元の制御データを
図5に示される第3制御データ、比較先の制御データを
図7に示される第5制御データとしたときの差分データに基づいて、第3制御データを示すデータ表示画面78に変更を加える形で生成される。その際、第2モードが指定されている。
【0051】
比較結果表示画面94の変数表示領域96には、第3制御データで使用される変数および第5制御データで使用される変数が表示される。第3制御データおよび第5制御データの両方で使用される変数(「bool A」「int B」)は、抑制された態様で表示される。
【0052】
比較結果表示画面94の制御内容表示領域98は、抑制された態様で表示される図形要素と、第3の色で表示される図形要素と、第3の色とは異なる第4の色で表示される図形要素と、を含む。
図10では第3の色と第4の色との差を濃淡で表現するが、青と赤など色分けして表示してもよい。
【0053】
第3制御データと第5制御データとで制御データ名を除いて同一となる構造体に対応する図形要素(「A==1」の箱)は、抑制された態様で表示される。対応する差分データが差分データ保持部18に存在する構造体については、第3制御データの構造体に対応する図形要素(上側の「B=1」の箱および上側の「B=0」の箱および関連する矢印)は第3の色で表示され、第5制御データの構造体に対応する図形要素(下側の「B=1」の箱および下側の「B=0」の箱および関連する矢印)は第4の色で表示される。この場合、ユーザは、トポロジー的には同じだが図形要素の位置関係に差分が生じている箇所をより容易かつ迅速に特定することができる。
【0054】
なお、
図10に関する例で第1モードが指定される場合は全ての差分が無視され、したがって比較結果表示画面の変数表示領域および制御内容表示領域の両方は抑制された態様で表示される。例えば、
図5に示されるデータ表示画面78の変数表示領域80および制御内容表示領域82をすべて破線で表現したものが比較結果表示画面となる。
【0055】
以上の構成によるデータ編集比較装置10の動作を説明する。ユーザは比較元の制御データと比較先の制御データとを選択し、データ編集比較装置10に対して指定する。データ編集比較装置10は指定された2つの制御データを比較し、差分を差分データとして差分データ保持部18に登録する。データ編集比較装置10は、差分データ保持部18によって保持される差分データに基づいて、比較結果をディスプレイ14に表示させる。
【0056】
上述の実施の形態において、保持部の例は、ハードディスクや半導体メモリである。また、本明細書の記載に基づき、各部を、図示しないCPUや、インストールされたアプリケーションプログラムのモジュールや、システムプログラムのモジュールや、ハードディスクから読み出したデータの内容を一時的に記憶する半導体メモリなどにより実現できることは本明細書に触れた当業者には理解されるところである。
【0057】
本実施の形態に係るデータ編集比較装置10によると、図形要素を使用して表現される制御データ同士をそのまますなわち他の形式に変換することなく比較し、差分を導出し、その差分を図形要素を使用して表示することができる。これにより、ユーザは、図形要素を使用して制御データを表現するソフトウエア開発環境において、より容易かつ迅速に制御データ間の差分を特定することができる。その結果、そのようなソフトウエア開発環境が有する利便性に加えて、ソフトウエアの開発をさらに効率化し、品質向上および保守作業の効率向上を実現することができる。
【0058】
また、本実施の形態に係るデータ編集比較装置10は図形要素を使用して制御データを表現するので、制御データ間の差分として、(1)制御内容の違いに基づく差分、(2)(1)には分類されないが図形要素の配置の違いに基づく差分、の2つがある。データ編集比較装置10は、(1)および(2)の両方を差分として表示するのか、(1)のみを差分として表示するのか、をユーザに選択させるよう構成される。したがって、比較結果の表示に関する自由度が向上する。特に、ユーザは、制御内容をベースに比較しているのか、見た目まで気にして比較しているのか、によって適切な比較結果表示モードを選択することができる。
【0059】
以上、実施の形態に係るデータ編集比較装置10の構成と動作について説明した。この実施の形態は例示であり、その各構成要素や各処理の組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【0060】
実施の形態では、制御データのうち差分に対応する図形要素は比較元と比較先とで異なる色で表示され、そうでない図形要素は抑制された態様で表示される場合について説明したが、これに限られない。例えば、差分に対応する図形要素をそうでない図形要素よりも拡大して表示する等、図形要素の大きさを異ならせてもよい。図形要素が文字を含む場合はその文字のフォントを異ならせてもよい。
【0061】
実施の形態では、箱に対して構造体を設け、矢印は構造体の接続元や接続先にて表現する場合について説明したが、これに限られず、矢印に対して独立した構造体を設けてもよい。