JP2011059918A - バージョン管理装置及びバージョン管理方法 - Google Patents
バージョン管理装置及びバージョン管理方法 Download PDFInfo
- Publication number
- JP2011059918A JP2011059918A JP2009207950A JP2009207950A JP2011059918A JP 2011059918 A JP2011059918 A JP 2011059918A JP 2009207950 A JP2009207950 A JP 2009207950A JP 2009207950 A JP2009207950 A JP 2009207950A JP 2011059918 A JP2011059918 A JP 2011059918A
- Authority
- JP
- Japan
- Prior art keywords
- control program
- information
- control
- program
- block
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】複数の制御プログラム(制御ブロック)に影響する恐れがある修正箇所を短時間で認識することが可能なバージョン管理装置及び管理方法を得る。
【解決手段】バージョン管理装置2A内の流用プログラム検索部23は、バージョン管理データベース22内で制御プログラム関連情報15内の流用元情報120に基づく検索処理を行い、検索対象プログラム情報が指示するユーザ指定の制御プログラムに関連する検索結果情報(一覧データ)を得る。バージョン管理装置2A内の不具合波及プログラム一覧表示部24は、流用プログラム検索部7で作成した一覧データに基づいて、ユーザが理解容易な制御プログラムの一覧を表示データとして画面に表示する。
【選択図】図1
【解決手段】バージョン管理装置2A内の流用プログラム検索部23は、バージョン管理データベース22内で制御プログラム関連情報15内の流用元情報120に基づく検索処理を行い、検索対象プログラム情報が指示するユーザ指定の制御プログラムに関連する検索結果情報(一覧データ)を得る。バージョン管理装置2A内の不具合波及プログラム一覧表示部24は、流用プログラム検索部7で作成した一覧データに基づいて、ユーザが理解容易な制御プログラムの一覧を表示データとして画面に表示する。
【選択図】図1
Description
この発明は、FAコントローラの制御プログラムを管理用に用いられる制御プログラム用のバージョン管理装置及びバージョン管理方法に関する。
従来の制御プログラム用のバージョン管理方法および装置では、現在の制御プログラムについてのソースプログラムの内容と版数が増加したときのソースプログラムの内容を比較して変更差分をバージョン管理データベースに保管する。特定のバージョンのアプリケーションを構成するソースコードを取得する場合は、ソースジェネレータにより、一括してソースプログラムを再現する処理を行っていた。このような処理は、例えば、特許文献1に開示されている。
また、ソースプログラムの修正時に、そのソースプログラムを使用している装置の一覧を得る方法として、部品単位で管理する方法がある。ソースプログラムを部品単位でサーバに格納し、部品にトレースIDを付加して、配布の履歴情報を記録することにより、修正が影響する装置の一覧を取得する制御プログラム用バージョン管理処理が行われていた。このような処理は、例えば、特許文献2に開示されている。
工場の製造装置に使用される制御プログラムは、既存の制御プログラムを流用して開発することが多い。新しい(製造)装置用の制御プログラムを作成する場合、既存の制御プログラムを編集対象の制御プログラムとしてコピーして、新しい装置のシステム構成に合わせてデバイス番号の付け替え等を含む編集作業を編集対象の制御プログラムに対して行う。また、制御プログラムの一つである、シーケンスプログラムで使用されるラダー言語には、回路ブロックと呼ばれるひとかたまりの単位(制御ブロック)があり、この制御ブロック単位でコピーして流用することが多い。なお、本明細書中で述べる「デバイス」とは、制御プログラム(制御ブロック)中に記述され、センサの入出力値をメモリ上に格納する対象(デバイス番号がメモリのアドレスに相当)を意味する。
このような制御プログラム用の従来のバージョン管理方法および装置において、あるバージョンの制御プログラムで発生した不具合の修正において、同様の修正を他の装置の制御プログラム(別バージョンの制御プログラム)にも反映しようとする場合を考える。この場合、特許文献1で開示された処理では単純に変更差分のみを管理しているため、デバイス番号の変更のような、ロジックの変更でなく流用のための変更について考慮されず、該当ロジックがそのプログラムに含まれているか否かを制御プログラムごとに目視により確認しなければならないという問題点があった。
さらに、これらの制御プログラムは流用の度にデバイス番号の付け替えなどの変更が行われるため、目視による確認に時間がかかるという問題点もあった。また、流用時に変更が行われるため、複数回の変更が繰り返され、ソフトウェアツールによる自動判別が困難であると問題もあった。
また、特許文献2で開示された処理は、制御プログラムに加えた修正を他の装置に反映させることができるが、修正を反映できる範囲は、同一制御プログラムを配布した装置に限定されており、共通するロジックをコピーして作成された場合でも最終的に異なる制御プログラムとなった場合は影響範囲を特定することはできない。
この発明は、上記問題点を解決するためになされたもので、複数の制御プログラム(制御ブロック)に影響する恐れがある修正箇所を短時間で認識することが可能な制御プログラム用のバージョン管理装置及び管理方法を得ることを目的とする。
この発明に係る請求項1記載のバージョン管理装置は、所定の制御対象を制御する制御プログラムを管理するバージョン管理装置であって、所定の制御プログラム開発装置によって開発された制御プログラムを登録制御プログラムとして制御プログラム関連情報と関連づけて登録するバージョン管理データベースを備え、前記登録制御プログラムは流用元制御プログラムに基づき前記所定の制御プログラム開発装置によって開発された制御プログラムを含み、前記制御プログラム関連情報は、前記登録制御プログラム用の識別情報であるバージョン情報、前記登録制御プログラムの前記流用元制御プログラム用の識別情報である流用元情報、及び前記登録制御プログラムにおける前記流用元制御プログラムからの変更内容を示す変更情報を含み、前記バージョン管理装置は、前記バージョン管理データベース内に登録された登録制御プログラム内の一の登録制御プログラムを指示する情報を検索対象プログラム情報とし、前記バージョン管理データベース内で前記制御プログラム関連情報に基づく検索処理を行い、前記検索対象プログラム情報の指示する制御プログラムに対し、所定の関連性要件を満足する前記登録制御プログラムを指示する検索結果情報を得るプログラム情報検索部と、前記検索結果情報に基づき表示データを表示する検索情報表示部とをさらに備える。
この発明における請求項1記載のバージョン管理装置において、プログラム情報検索部は、バージョン管理データベース内で制御プログラム関連情報に基づく検索処理を行い、検索対象プログラム情報の指示する制御プログラムに関連する検索結果情報を得る。
このため、バージョン管理装置のユーザは、表示データを検索情報表示部から参照することにより、検索対象プログラム情報の指示する制御プログラムに所定の関連性を有する検索結果情報(制御プログラム)を短時間で認識することができる効果を奏する。
その結果、所定の修正を行った制御プログラムに関連性のある、バージョン管理データベースに登録された他の制御プログラムを短時間で認識することができる効果を奏する。
<実施の形態1>
図1はこの発明の実施の形態1である制御プログラム用のバージョン管理装置の構成を示すブロック図である。同図に示すように、実施の形態1のバージョン管理装置2Aは、制御プログラム開発装置1A(所定の制御プログラム開発装置)と組合せてバージョン管理システムを構成している。
図1はこの発明の実施の形態1である制御プログラム用のバージョン管理装置の構成を示すブロック図である。同図に示すように、実施の形態1のバージョン管理装置2Aは、制御プログラム開発装置1A(所定の制御プログラム開発装置)と組合せてバージョン管理システムを構成している。
制御プログラム開発装置1Aは、流用情報設定部11、制御プログラムエディタ12及び変更判定部13から構成され、制御プログラムエディタ12により編集中制御プログラム14に対する編集(エディタ)を行いながら、変更判定部13により制御プログラム関連情報15を得る。すなわち、制御プログラム開発装置1Aは、制御プログラムエディタ12による制御プログラムエディタ機能に加え、流用情報設定部11及び変更判定部13を有している。
一方、実施の形態1のバージョン管理装置2Aは、バージョン管理登録部21、流用プログラム検索部23(プログラム情報検索部)及び不具合波及プログラム一覧表示部24から構成され、バージョン管理データベース22を有している。すなわち、バージョン管理装置2Aは、バージョン管理登録部21によるバージョン登録機能に加え、流用プログラム検索部23及び不具合波及プログラム一覧表示部24を有する点を特徴としている。
なお、流用元制御プログラム3は流用元制御プログラム用バージョン情報4が付加されており、必要に応じて制御プログラム開発装置1Aにおける制御プログラム開発時に流用される可能性のある既存の制御プログラムを意味する。また、流用元制御プログラム3及び流用元制御プログラム用バージョン情報4は共にバージョン管理データベース22に登録されている。
図2は実施の形態1のバージョン管理装置2Aのバージョン管理データベース22内に管理される制御プログラムの制御プログラム関連情報の構成を模式的に示す説明図である。
制御プログラム実行時において制御対象となる一般的な製造設備は複数のユニットによって構成される。例えば、製造設備が加工機の場合、主機能である加工ユニットの他、加工物であるワークを搬入、搬出するロード・アンロードユニット、加工のための工具を交換するツール交換ユニット、加工状況を外部の管理サーバに送信する通信ユニットなど、複数のユニットから構成される。通常は、これらの複数のユニット毎に制御プログラムが個別に作成され、製造設備全体では、複数の制御プログラムで構成されていることが多い。
設計者が新規製造設備を制御対象とした少なくとも一つの制御プログラムを開発する場合、通常は、新規製造設備の構成にもっとも近い既存の製造装置を制御対象とした既存の制御プログラムを流用して開発することが多い。これは、既に動作確認がなされた既存の制御プログラムのロジックを流用することにより、開発期間、開発工数を必要最小限に抑えるためである。
ここで、設計者は、既存のプロジェクトデータ(1つの装置を動かすための複数の制御プログラムの固まりである制御プログラム群)から、もっとも近い制御プログラムを見つけ出し、当該制御プログラムをコピーして新規設備用の制御プログラムを開発する。
一般的なバージョン管理装置を用いている場合、ツリー状にプロジェクトデータが管理されているが、上述した既存の制御プログラムの流用に基づく設備開発においては、バージョンツリーの親ノード以外にツリーのあちこちに格納されたプロジェクトデータ内の制御プログラムを流用して新規に制御プログラムが作成される。
以下、図2を参照して、制御プログラム関連情報15を構成するバージョン情報、流用元情報、変更情報の格納内容について説明する。
前述したように、流用元制御プログラム3にはバージョン情報4が付加されている。バージョン情報4は図2で示す制御プログラム関連情報15内のバージョン情報110の部分に相当する。すなわち、バージョン情報110は、プログラムID111、バージョン番号112及び作成者ID113から構成される。
制御プログラム関連情報15は、図2に示すように、バージョン情報110、流用元情報120及び変更情報130から構成される。
バージョン情報110は、前述したように、プログラムID111、バージョン番号112及び作成者ID113から構成され、対応する制御プログラムの識別情報となる。
流用元情報120は、流用元プログラムID121から構成され、対応する流用元制御プログラムの識別情報となる。
変更情報130は、変更要素数131、変更要素情報CE1〜CEn(n≧1)から構成され、対応する制御プログラムにおける流用元制御プログラムからの変更内容を示す。変更要素情報CE1は変更種別133及び変更レベル134から構成され、変更要素情報CE2〜CEnそれぞれについても変更要素情報CE1と同様に変更種別133及び変更レベル134から構成されるが、図2では詳細な図示を省略している。
まず、図1で示した制御プログラム開発装置1Aの動作を説明する。流用情報設定部11は、設備開発者が開発済みの既存の制御プログラムを流用する場合、バージョン管理データベース22からバージョン情報4(制御プログラム関連情報15)が付加された流用元制御プログラム3として読み込む。
すると、流用情報設定部11は、読み込んだ流用元制御プログラム3(バージョン情報4)に基づき、バージョン情報110、流用元情報120及び変更情報130からなる制御プログラム関連情報15が付加された編集中制御プログラム14を生成して、制御プログラムエディタ12に渡す。なお、流用情報設定部11による設定時の制御プログラム関連情報15内の変更情報130は空である。
制御プログラムエディタ12は、設備開発者の操作によって編集中制御プログラム14を編集するが、このとき、流用元制御プログラム3から変更が行われた場合、変更判定部13によって変更情報130の編集処理が行われる。
すなわち、変更判定部13は制御プログラムエディタ12の編集処理において編集中プログラム14に加えられた変更内容を制御プログラム関連情報15内の変更情報130として随時追加する編集処理を行う。
次に、流用情報設定部11の動作と制御プログラム関連情報15におけるバージョン情報、流用元情報について説明する。
流用情報設定部11は、流用元制御プログラム3をコピーして編集中制御プログラム14とする。次に、流用情報設定部11は、編集中制御プログラム14に付加する制御プログラム関連情報15内のバージョン情報110を作成する。
バージョン情報110の作成処理として、まず、バージョン情報110のプログラムID111を新規生成して設定する。ここで、プログラムID111は、制御プログラム開発装置1Aおよびバージョン管理装置2Aで一意に識別できるIDである。プログラムID111として、例えば、UUID(Universally Unique Identifier)やGUID(Globally Unique Identifier)のように同じ識別子が生成される可能性が極めて小さい疑似乱数を用いた128bitの識別子が使用できる。また、プログラムID111として、一意に識別できる十分なサイズを持つ整数値を使用してもよい。また、一意に識別できる十分な長さを持つ文字列を使用してもよい。
次に、流用情報設定部11は、バージョン情報110のバージョン番号112を新規生成して設定する。ここで、通常、バージョン番号112は、整数値であり、流用元制御プログラム3のバージョン情報4のバージョン番号112を取得し、その数値に“1”を加えて、編集中制御プログラム14のバージョン番号112に設定するなどの処理を行う。バージョン番号112は、整数値の他に、整数値を“.”(ドット)で区切った整数値列を用いる、整数値や整数値列にA,B,Cなどの英字の並びを付加したものを使用してもよい。また、文字列でもよい。
次に、流用情報設定部11は、バージョン情報110の作成者ID113を新規生成して設定する。ここで、作成者ID113は、制御プログラム開発装置を使用して制御プログラムを編集しているユーザ(以下、単に「ユーザ」と称する場合あり)を識別するIDであり、前述したプログラムID111と同様に、UUDIや、GUIDや、整数値や、文字列を用いてもよい。
図3はバージョン情報110の格納状態を具体的に示した説明図である。同図に示すように、プログラムID111として、GUIDの128bit値の16進数表記で“2F588827C683”の値を設定している。また、バージョン番号112の例として、整数値をドットで区切った文字列“1.1”を設定している。また、作成者ID113として、GUIDの128bit値の16進数表記で“38F14FA679FE”の値が入っている。なお、上記したプログラムID111及び作成者ID113の例は、同一の実行環境では上位80bitは同一の値となるため、下位48bitのみ具体例を示している。以降で述べる具体例も同様である。
このように、編集中制御プログラム14に付加する制御プログラム関連情報15内にバージョン情報110を設けることにより、制御プログラム開発装置1A及びバージョン管理装置2Aの使用時において、常に制御プログラムを一意に識別でき、かつ、バージョン情報110から、バージョン番号112、作成者ID113を特定することができる。
また、バージョン情報110には、上述したプログラムID111、バージョン番号112及び作成者ID113の情報以外に、コメント、日付、会社名、開発プロジェクト名などの情報を付加することも可能である。これらの情報もプログラム特定時のキーワードとして使用できる。
図4は流用元情報120の格納状態の具体例を示した説明図である。流用元情報120における流用元プログラムID121として、GUIDの128bit値の16進数表記で“F226B81B6F12”の値を設定している。この値は流用元制御プログラム3のバージョン情報4に格納されたプログラムIDの値をそのまま設定する。また、流用元情報120として、流用元プログラムID121以外の情報として、流用時の日付、流用時のコメントなどを付加してもよい。
次に、制御プログラムエディタ12及び変更判定部13の動作と編集中制御プログラム14に付加される制御プログラム関連情報15内の変更情報130について説明する。
ユーザは制御プログラムエディタ12を用いて編集中制御プログラム14を編集する。ここで、編集操作としては、命令の追加、命令の削除、デバイス名の変更、デバイス番号の変更、定数値の変更、などがある。制御プログラムエディタ12は適宜、編集情報を変更判定部13に付与しながら編集中制御プログラム14に対する編集操作を行う。
変更判定部13は、制御プログラムエディタ12による編集操作内容に応じて編集中制御プログラム14の制御プログラム関連情報15における変更情報130の内容を編集する。ここで、変更情報130として設定する情報は、前述した「命令の追加」、「命令の削除」、「デバイス名の変更」、「デバイス番号の変更」、「定数値の変更」などである。ここで、変更判定部13は、同一の変更(変更種別133及び変更レベル134が同一内容の変更)が加えられた場合に、項目(変更要素情報CE)を追加する必要はない。
図2を用いて説明したように、制御プログラム関連情報15内の変更情報130は、変更要素数131及び変更があった場合は少なくとも一つの変更要素情報CE(CE1,・・・CEn)からなる。また、変更要素情報CEは変更種別133及び変更レベル134からなる。
ここで、変更種別133は、例えば制御プログラムがラダープログラムで作成される場合、デバイス番号の変更、接点の追加または削除、出力コイルなどの命令の追加または削除などが該当する。ここで、制御プログラムのロジック変更を伴う、命令の追加または命令の削除に関する変更については、変更内容として追加または削除された回数を保存してもよい。またこれ以外に、日付、変更に関するコメントなどを保存してもよい。また、変更要素情報CEは、変更の種類に応じて複数個保存することができる。
図5は変更情報130の格納状態の具体例を示した説明図である。同図に示すように、変更要素数131には整数“2”が格納され、変更要素数は全部で2個であることが示される。
変更要素情報CE1の変更種別133は、制御プログラム流用時の装置の構成変更に伴うデバイス番号変更であることを示している。変更レベル134は、番号変更だけでロジックの変更が無いことを示している。
また、変更要素情報CE2は、変更種別133が「命令(の)追加」であり、制御プログラムの流用時に装置の構成が変わっているため、変更レベル134が「LD命令追加」とされている。「LD命令追加」は、例えばセンサ追加などにより、LD命令の追加がなされたことを示している。したがって、変更要素情報CE2の変更レベル134は、命令が追加され、ロジックが変更されたことを示す。
図6は実施の形態1の制御プログラム開発装置1A内の変更判定部13の処理内容を示すフローチャートである。変更判定部13は、編集中制御プログラム14において内容変更が行われた際に制御プログラムエディタ12から呼び出され、以下で示す処理を実行する。
まず、ステップS11において、制御プログラムエディタ12の変更内容を判定して、エディタ操作に伴う編集中制御プログラム14の変更内容を取得する。
次に、ステップS12において、変更種別がデバイス番号の変更であった場合(YES)は)はステップS13に移行し、デバイス番号の変更で無かった場合(NO)はステップS14に移行する。
ステップS13において、制御プログラム関連情報15の変更情報130として「デバイス番号変更」を指示する変更要素情報CEを追加して終了する。この際、既に「デバイス番号変更」を指示する変更要素情報CEが存在する場合は、新たに追加する必要はない。すなわち、「デバイス番号変更」については1回のみ変更要素情報CEとして追加する。
一方、ステップS12において、デバイス番号の変更で無かった場合(NO)に実行されるステップS14において、編集中制御プログラム14における「命令の追加」の有無を判定し、命令の追加があった場合(YES)は、ステップS15に移行し、命令の追加が無かった場合(NO)は、ステップS16に移行する。
ステップS15において、変更情報130として「命令の追加」を指示する変更要素情報CEを追加して終了する。この際、同一内容の変更種別133及び変更レベル134を指示する変更要素情報CEが既に存在する場合、当該変更要素情報CEの変更種別133として、「命令の追加」に付随する変更回数を“1”増加させて終了する。なお、同時に同一内容の「命令の追加」が複数回行われた場合、上記変更回数をその個数だけ増加させてもよい。
一方、ステップS14において、命令の追加が無かった場合(NO)に実行されるステップS14において、編集中制御プログラム14における命令の削除の有無を判定し、命令の削除があった場合(YES)は、ステップS17に移行し、命令の削除が無かった場合(NO)は処理を終了する。
ステップS17において、変更情報130として「命令の削除」を指示する変更要素情報CEを追加して処理を終了する。既に、同一内容の変更種別133及び変更レベル134を指示する変更要素情報CEが既に存在する場合、変更要素情報CEの変更種別133として、「命令の削除」に付随する変更回数を“1”増加させて終了する。同時に同一内容の「命令の削除」が複数回行われた場合、変更回数をその個数だけ増加させてもよい。
このように、制御プログラムエディタ12に連動して動作する変更判定部13によって、編集中制御プログラム14に行われた編集操作の記録である変更内容を少ないデータ量からなる制御プログラム関連情報15として保存することができる。この変更判定部13は、プログラムエディタ12とは独立に編集中制御プログラム14の内容を随時監視して変更を検知する方法として実装することも可能である。
このように、制御プログラムエディタ12に連動して動作する変更判定部13の処理によって、バージョン管理装置2Aでプログラム修正の影響範囲を特定するときに必要とされる、制御プログラム関連情報15における変更情報130が、ユーザの特別な入力手段によらず、ユーザが制御プログラムエディタ12を用いて編集中制御プログラム14に対する通常の編集操作中に自動的に設定される。
次に、実施の形態1のバージョン管理装置2Aの動作を説明する。バージョン管理装置2Aは、前述したように、バージョン管理登録部21、バージョン管理データベース22、流用プログラム検索部23、及び不具合波及プログラム一覧表示部24から構成される。
ユーザが制御プログラム開発装置1Aによる編集中制御プログラム14に対する編集を終了して新規に開発した制御プログラムを完成すると、バージョン管理登録部21により、完成した編集中制御プログラム14がバージョン管理装置2A内のバージョン管理データベース22内の登録制御プログラムとして制御プログラム関連情報15と共に格納される。
すなわち、バージョン管理装置2A内のバージョン管理登録部21は、バージョン情報110、流用元情報120及び変更情報130からなる制御プログラム関連情報15が付加された完成後の編集中制御プログラム14を、登録制御プログラムとしてバージョン管理データベース22に保存する。
このとき、登録制御プログラムとして保存される編集中制御プログラム14のコードについては先行技例に見られるように変更差分のみを保存してもよい。通常、バージョン管理データベースは、CVS(Concurrent Versions System)やRCS(Revision Control System)にあるような木構造で編集中制御プログラム14を登録制御プログラムとして保存する。これらの登録制御プログラムは、チェックイン動作(バージョン管理装置2Aへの登録処理)、チェックアウト動作(バージョン管理装置2Aからの読み足処理)で変更、取り出しが可能である。また、前記のような木構造でなくても制御プログラムの各バージョンの保管が可能であれば問題ない。
図7は実施の形態1のバージョン管理装置2Aにおける流用プログラム検索部23の処理内容を示すフローチャートである。以下、同図を参照して、流用プログラム検索部23の処理手順を説明する。
なお、バージョン管理データベース22には、制御プログラム開発装置1Aを用いて開発された登録制御プログラムの内容及びこれに付加される制御プログラム関連情報15が複数組予め格納されている。
まず、ステップS21において、ユーザが検索を所望する制御プログラムのIDを指示する検索対象プログラム情報を取得する。なお、検索対象プログラム情報はユーザが所定の入力手段等を用いて指定することができる。そして、検索結果情報を格納する一覧データをクリアし、まず、ユーザ指定の制御プログラムのIDを一覧データに登録する。
次に、ステップS22において、バージョン管理データベース22内の複数の登録制御プログラムのうち、検索対象となる登録制御プログラムにおける流用元制御プログラムIDを取得する。ステップS21直後においては、検索対象プログラム情報の指示する制御プログラムが現検索対象の制御プログラムとなる。この際、現検索対象となる制御プログラムが一から新規に開発されたプログラムである場合、流用元制御プログラムIDが存在しないことになる。
そして、ステップS23において、現検索対象の制御プログラムの流用元プログラムIDの存在の有無を判定し、流用元プログラムIDが存在しない場合、ステップS31に移行し、流用元プログラムIDが存在する場合に次段のステップS24に移行する。すなわち、ステップS23において、現検索対象の制御プログラムが他の制御プログラムの流用によって作成された制御プログラムでない場合は、流用元情報120内の流用元プログラムID121内に流用元制御プログラムIDが存在しないため、ステップS31に移行することになる。
ステップS23で流用元制御プログラムIDが有るとされた場合に実行されるステップS24において、流用元制御プログラムの制御プログラム関連情報15を参照して、検索対象プログラム情報が指示するユーザ指定の制御プログラムからの「命令の追加」の変更回数が「第1の設定数」以上であるか否かを判定し、「第1の設定数」以上の場合はステップS31に移行し、「第1の設定数」未満の場合は次段のステップS25に移行する。
ステップS24で「命令の追加」の変更回数が「第1の設定数」未満であるされた場合に実行されるステップS25において、現検索対象の制御プログラムの制御プログラム関連情報15等を参照して、「命令の削除」の変更回数が「第2の設定数」以上であるか否かを判定し、「第2の設定数」以上の場合はステップS31に移行し、「第2の設定数」未満の場合は次段のステップS26に移行する。
なお、第1及び第2の設定数はユーザが指定することができ、同一の値でも異なる値でも良い。ここで「命令の追加」の変更回数とは、上述したように、変更種別133が命令の追加となる全ての変更要素情報CEにおける追加回数の合計を意味し、「命令の削除」の変更回数とは、変更種別133が命令の削除となる全ての変更要素情報CEにおける削除回数の合計を意味する。
また、ユーザ指定の制御プログラムから第1の流用元制御プログラム、第2の流用元制御プログラムと検索されている場合、ユーザ指定の制御プログラムから第2の流用元制御プログラムとの間における「命令の追加」の変更回数が第1の設定数との比較対象となる。この場合、「命令の追加」の変更回数は、第1及び第2の流用元制御プログラムの制御プログラム関連情報15それぞれを参照して、計算されることになる。
同様にして、ユーザ指定の制御プログラムから第2の流用元制御プログラムとの間における「命令の削除」の変更回数が第2の設定数との比較対象となる。
ステップS25で「命令の削除」の変更回数が「第2の設定数」未満であるされた場合に実行されるステップS26において、一覧データに検索対象の登録制御プログラムを登録する。
すなわち、ユーザ指定の登録制御プログラムに対し直接あるいは間接の流用元制御プログラムIDが存在し、かつ「命令の追加」の変更回数がユーザが設定した第1の設定数に達せず、かつ「命令の削除」の変更回数がユーザが設定した第2の設定数に達しないという関連性要件(第1の関連性要件)を満足する場合、ステップS26において一覧データに検索対象の制御プログラムIDを追加する。そして、流用元制御プログラムIDが新たに現検索対象の登録制御プログラムのIDとされ、ステップS22に戻る。
以降、ステップS23で流用元制御プログラムIDが無い、ステップS24で「命令の追加」の変更回数が第1の設定数以上、あるいはステップS25で「命令の削除」の変更回数が第2の設定数以上となるまで、ステップS22〜S26が繰り返される。
その結果、ステップS31の実行時には、ユーザ指定の登録制御プログラムに関し、直接あるいは間接の流用元制御プログラムであり、かつ上記第1の関連性の要件を満足する制御プログラム、すなわち、ユーザ指定の登録制御プログラムに関し同一のロジックを持つと判断される一連の制御プログラムIDが一覧データに登録される。
図8は一覧データ及び一時領域への制御プログラム登録例を模式的に示す説明図である。同図において、矢印は「流用」関係を示し、矢印の先端部分に位置する制御プログラムが根元部分に位置する制御プログラムに対する流用元制御プログラムとなる。
検索対象プログラム情報が指示するユーザ指定の登録制御プログラムが制御プログラムCAであり、制御プログラムCB,CC,CDの順で流用元制御プログラムIDが順次検索され、それぞれが「命令の追加」の変更回数、「命令の削除」の変更回数に関する上記第1の関連性要件を満足した場合、図8に示すように、一覧データ51内に制御プログラムCA〜CDが登録される。
次に、ステップS31以降の処理により、バージョン管理データベース22内において一覧データ51に登録された上記一連の制御プログラム群から派生する、複数の同一ロジックを持つ制御プログラムを検索する。
すなわち、バージョン管理装置2Aのバージョン管理データベース22に登録されている全ての登録制御プログラムそれぞれを対象に以下のステップS32〜S38の処理を行う。
まず、ステップS31において、バージョン管理データベース22内の全ての登録制御プログラムのうち、検索対象起点となる一の制御プログラムを設定し、まず、検索対象起点となる制御プログラムのIDを一時領域に格納する。
次に、ステップS32において、バージョン管理データベース22内の複数の登録制御プログラムのうち、検索対象となる登録制御プログラムにおける流用元制御プログラムIDを取得する。ステップS31直後においては、検索対象起点となる制御プログラムが現検索対象の制御プログラムとなる。
そして、ステップS33において、現検索対象の制御プログラムにおける流用元制御プログラムIDの有無を判定し、流用元制御プログラムIDが存在しない場合、ステップS37に移行し、流用元制御プログラムIDが存在する場合に次段のステップS34に移行する。
ステップS33で流用元制御プログラムIDが有るとされた場合に実行されるステップS34において、流用元制御プログラムの制御プログラム関連情報15に基づき、「命令の追加」の変更回数が「第3の設定数」以上であるか否かを判定し、「第3の設定数」以上の場合はステップS37に移行し、「第3の設定数」未満の場合は次段のステップS35に移行する。
ステップS34で「命令の追加」の変更回数が「第3の設定数」未満であるされた場合に実行されるステップS35において、流用元制御プログラムの制御プログラム関連情報15に基づき、「命令の削除」の変更回数が「第4の設定数」以上であるか否かを判定し、「第4の設定数」以上の場合はステップS37に移行し、「第4の設定数」未満の場合は次段のステップS36に移行する。なお、ステップS33〜S35の処理は、第1〜第4の設定数を除き、先に述べたステップS22〜S25と実質的に同内容の処理となる。
ステップS35で「命令の削除」の変更回数が「第4の設定数」未満であるされた場合に実行されるステップS36において、一時領域に流用元制御プログラムIDを追加する。
すなわち、現検索対象の登録制御プログラムにおいて流用元制御プログラムIDが存在し、かつ、命令の追加の変更回数がユーザが設定した第3の設定数に達せず、かつ命令の削除の変更回数がユーザが設定した第4の設定数に達しないという関連性要件(第2の関連性要件)を満足する場合、ステップS36において一時領域に当該流用元制御プログラムのIDを追加する。そして、この流用元制御プログラムIDが新たに現検索対象の制御プログラムIDとされ、ステップS32に戻る。
以降、ステップS33で流用元制御プログラムIDが無い、ステップS34で「命令の追加」の変更回数が第3の設定数以上、あるいはステップS35で「命令の削除」の変更回数が第4の設定数以上となるまで、ステップS32〜S36が繰り返される。
その結果、ステップS37の実行時には、ステップS31で設定されたバージョン管理データベース22内の検索対象起点となる制御プログラムに関し、直接あるいは間接の流用元制御プログラムであり、かつ上記第2の関連性の要件を満足する制御プログラムIDが一時領域に登録される。
すなわち、ステップS31で設定された検索対象起点となる制御プログラムに関し、同一のロジックを持つと判断される一連の制御プログラムIDが一時領域に登録される。
その後、ステップS37において、一時領域に保存した全ての制御プログラムIDと一覧データに登録された全ての制御プログラムIDとを比較し、同一のプログラムIDが少なくとも一つ存在すれば(一致有り)、一時領域と一覧データに登録された制御プログラムは関連性が高いと判断し、ステップS38に移行する。一方、ステップS37において、一時領域と一覧データとの間で一致するプログラムIDが一つも存在しない場合(一致無し)は一覧データに登録された制御プログラムと一時領域に登録された制御プログラムとは関連性が低い判断し、検索対象起点の登録制御プログラムに関する処理は終了し、ステップS31に移行する。
ステップS37で一時領域と一覧データとの間で一致する制御プログラムIDが少なくとも一つ存在するとされた場合に実行されるステップS38において、一時領域に存在する制御プログラムIDをすべて一覧データに追加登録する。このとき、重複したプログラムIDは1つのみ登録される。その後、ステップS31に移行する。
例えば、図8に示すように、ステップS31で決定した検索対象起点の流用元制御プログラムCB1であり、CB2,CB3,CBの順で流用元制御プログラムIDが順次検索され、それぞれが「命令の追加」の変更回数、「命令の削除」の変更回数に関する第2の関連性の要件を満足し、一時領域52に格納されていた場合を考える。この場合、一覧データ51,一時領域52間において、制御プログラムCBが共通するため、一時領域52内の制御プログラムCB1〜CB3も新たに一覧データ51に登録される。
ステップS31において、バージョン管理データベース22内に新たに検索対象起点の登録制御プログラムが存在する場合は、新たな検索対象起点の登録制御プログラムについて、ステップS32〜S38の処理を実行し、バージョン管理データベース22内に新たな検索対象起点の登録制御プログラムが無くなるまで、検索対象起点の登録制御プログラムを代えながらステップS32〜S38を繰り返す。そして、ステップS31において、バージョン管理データベース22内に新たな検索対象起点の登録制御プログラムが無くなると、処理を終了する。
このようにして、バージョン管理データベース22に格納される全ての登録制御プログラムにおいて、ユーザ指定の登録制御プログラムに対し、同一のロジックを持つと判断される一連の制御プログラムが一覧データに登録される。
次に、不具合波及プログラム一覧表示部24(検索情報表示部)の動作を説明する。不具合波及プログラム一覧表示部24は、流用プログラム検索部7で作成した一覧データに基づいて、ユーザが理解容易な制御プログラムの一覧を表示データとして画面に表示する。表示データとして少なくとも制御プログラムが識別可能なバージョン情報110の情報が必要となる。このとき、一覧データに登録された制御プログラムについて、プログラムの名称、バージョン番号の他に、作成者名、プログラムコメント、流用時コメント、変更内容などを表示データとして同時に表示してもよい。
このような構成の実施の形態1の制御プログラム用バージョン管理装置によれば、制御プログラム開発装置1Aにおいて流用元制御プログラムの一部を修正して新たに制御プログラムを開発した時、同様な修正を必要とする同様なロジックを有する制御プログラムを検索する必要性が生じた場合、以下の処理が行える。すなわち、ユーザはバージョン管理装置2Aを用いてユーザ指定の登録制御プログラムに基づき高速に検索して修正すべきプログラムの候補一覧を表示データとして不具合波及プログラム一覧表示部24により表示させることができる。
したがって、ユーザはバージョン管理装置2Aを活用することにより、修正を短時間でミス無く全てのプログラムに反映させることができる利点がある。
このように、実施の形態1の制御プログラム用バージョン管理装置は、プログラム情報検索部である流用プログラム検索部23は、バージョン管理データベース22内で制御プログラム関連情報15内の流用元情報120に基づく検索処理を行い、検索対象プログラム情報が指示するユーザ指定の制御プログラムに対し所定の関連性要件を満足する登録制御プログラムを指示する検索結果情報(一覧データ)を得ている。
検索結果情報は、バージョン管理データベース22に登録された登録制御プログラムのうち、検索対象プログラム情報が指示する制御プログラムを起点として順次検索され、上記第1の関連性要件を満足する所定数の流用元制御プログラム(図8の制御プログラムCB〜CDに相当)及び該所定数の流用元制御プログラムの少なくとも一つ(図8の制御プログラムCBに相当)を、直接あるいは間接の流用元制御プログラムとして有し、かつ上記第2の関連性要件を満足する高関連性登録制御プログラム(図8の制御プログラムCB1〜CB3に相当)を指示する情報を含んでいる。なお、所定の関連性要件は、実施の形態1における図8の例の場合、制御プログラムCB〜CDについてステップS24,S25に関する上記第1の関連性要件、制御プログラムCB2,CB3,CBについては上記ステップS34,S35に関する上記第2の関連性要件が相当する。
このため、実施の形態1の制御プログラム用バージョン管理装置のユーザは、表示データを不具合波及プログラム一覧表示部24から参照することにより、検索対象プログラム情報が指示する制御プログラムに所定の関連性要件を満足する制御プログラムを短時間で認識することができる効果を奏する。
その結果、所定の修正を行った制御プログラムに関連性があり、プログラム上の不具合波及の可能性が高い、バージョン管理データベース22に登録された他の制御プログラムを短時間で認識することができる効果を奏する。
したがって、複数バージョンの制御プログラムの中から同一のロジックを含む関連性の高い他の制御プログラムを高速に特定でき、複数の装置に跨る不具合修正を複数の制御プログラムを修正することより容易に行うことができる。
<実施の形態2>
図9はこの発明の実施の形態2である制御プログラム用のバージョン管理装置の構成を示すブロック図である。同図に示すように、実施の形態2のバージョン管理装置2Bは制御プログラム開発装置1Bと共にバージョン管理システムを構成する。
図9はこの発明の実施の形態2である制御プログラム用のバージョン管理装置の構成を示すブロック図である。同図に示すように、実施の形態2のバージョン管理装置2Bは制御プログラム開発装置1Bと共にバージョン管理システムを構成する。
制御プログラム開発装置1Bは、流用情報設定部31、制御プログラムエディタ12及び変更判定部33から構成され、制御プログラムエディタ12により編集中制御ブロック16を含む編集中制御プログラム14に対する編集を行いながら、流用情報設定部31及び変更判定部33により制御プログラム関連情報15及び制御ブロック関連情報17を得る。
制御プログラム開発装置1Bは、制御プログラムエディタ12による制御プログラムエディタ機能に加え、流用情報設定部31及び変更判定部33を有している。変更判定部33は、制御プログラム全体の変更だけでなく、制御プログラムを構成する制御ブロックの変更をも判定する。
一方、バージョン管理装置2Bは、バージョン管理登録部41、流用ブロック検索部43及び不具合波及ブロック一覧表示部44(検索情報表示部)から構成され、バージョン管理データベース42を有している。
すなわち、バージョン管理装置2Bは、バージョン管理登録部41によるバージョン登録機能に加え、流用ブロック検索部43及び不具合波及ブロック一覧表示部44を有する点を特徴としている。流用ブロック検索部43は流用プログラム検索部23のように制御プログラムの流用元を遡る検索だけでなく、制御プログラムを構成する制御ブロックの流用元を遡る検索も行う。また、不具合波及ブロック一覧表示部44は、制御プログラムによる表示データの一覧表示だけでなく、制御ブロックによる表示データの表示も行う。
なお、流用元制御プログラム3は流用元制御プログラム用バージョン情報4が付加されており、さらに、流用元制御プログラム3内の流用元制御ブロック5は流用元制御ブロック用バージョン情報6が付加されている。流用元制御プログラム3及び流用元制御ブロック5は、必要に応じて制御プログラム開発装置1Bに流用される可能性のある制御プログラム及び制御ブロックを意味する。流用元制御プログラム3及び流用元制御ブロック5は流用元制御ブロック5及び流用元制御ブロック用バージョン情報6と共にバージョン管理データベース42内に格納されている。
また、図10は実施の形態2のバージョン管理装置2Bによって管理される制御ブロック関連情報17の構成を模式的に示す説明図である。
制御ブロック関連情報17は、制御プログラム関連情報15が制御プログラムを対象としているのに対し、制御プログラムに含まれる制御ブロックを対象としている。
以下、図10を参照して、制御ブロック関連情報17に関するブロックバージョン情報、ブロック流用元情報、ブロック変更情報の格納内容について説明する。
前述したように、流用元制御ブロック5には流用元制御ブロック用バージョン情報6が付加されている。流用元制御ブロック用バージョン情報6は図10の制御ブロック関連情報17におけるブロックバージョン情報210部分に相当する。すなわち、ブロックバージョン情報210として、親プログラムID211、ブロックID212、ブロックバージョン番号213、及びブロック作成者ID214を有している。
編集中制御ブロック16に対応付けて設けられる制御ブロック関連情報17は、図10に示すように、ブロックバージョン情報210、ブロック流用元情報220及びブロック変更情報230から構成される。
ブロックバージョン情報210は、親プログラムID211、ブロックID212、ブロックバージョン番号213及びブロック作成者ID214から構成され、対応の制御ブロックの識別情報となる。親プログラムID211は当該制御ブロックを含む親制御プログラムのプログラムIDを示している。ブロックID212は当該制御ブロック自体のID、ブロックバージョン番号213は制御ブロック自体のバージョン、ブロック作成者ID214は制御ブロックの作成者を特定する情報を示している。
ブロック流用元情報220は、流用元制御プログラムID221及び流用元ブロックID222から構成され、対応する流用元制御ブロックの識別情報となる。流用元制御プログラムID221は流用元となる制御ブロックを含む制御プログラムのIDを示し、流用元ブロックID222は流用元なる制御ブロックのIDを示している。
ブロック変更情報230は、ブロック変更要素数231、変更要素情報BCE1〜BCEn(n≧2)から構成される。変更要素情報BCE1は変更種別133及び変更レベル134から構成される。変更要素情報BCE2〜BCEnそれぞれについても変更要素情報BCE1と同様に構成されるが、図10では詳細を省略している。ブロック変更要素数231は流用元制御ブロックからの変更要素数を示し、ブロック変更種別233は流用元制御ブロックからの変更種別を示し、ブロック変更レベル234はそのレベルを示している。
したがって、対象が制御プログラムから制御ブロックに変更された点を除き、ブロックID212、ブロックバージョン番号213、及びブロック作成者ID214は、制御プログラム関連情報15のプログラムID111、バージョン番号112及び作成者ID113と同趣旨の情報となる。
同様にして、流用元ブロックID222は流用元制御プログラムID121と同趣旨の同情報となり、ブロック変更要素数231、ブロック変更種別233及びブロック変更レベル234は、変更要素数131、変更種別133及び変更レベル134と同趣旨の情報となる。
図11はブロック変更情報230の具体例を模式的に示す説明図である。同図に示すように、ブロック変更要素数231には整数“1”が格納され、変更要素数は全部で1個であることが示される。
変更要素情報BCE1のブロック変更種別233は、制御ブロックプログラム流用時から命令の追加があったことを示している。ブロック変更レベル234は「LD命令の追加」であることを示している。
このような構成において、制御プログラム開発装置1Bの流用情報設定部31は、実施の形態1の流用情報設定部11の処理に加え、流用元制御ブロック用バージョン情報6が付加された流用元制御ブロック5を読み込み、制御プログラムエディタ12に、制御ブロック及び流用元バージョン情報6の制御ブロックIDを渡す。
制御プログラムエディタ12は、渡された流用元制御ブロック5を編集中制御ブロック16として作業エリアに保存する。
一方、流用情報設定部31は編集中制御ブロック16の制御ブロック関連情報17を作成する。なお、流用情報設定部21による設定時の制御ブロック関連情報17内の変更情報130は空である。
変更判定部33は、実施の形態1と同様に、制御プログラムエディタ12から呼び出され、実施の形態1の変更判定部13による制御プログラム単位の変更箇所及び内容判定に加え、さらに、制御ブロック単位で変更箇所及び内容の判定を行う。すなわち、変更判定部33は制御プログラム関連情報15の編集処理に加え、制御ブロック関連情報17の編集処理を行う。
すなわち、実施の形態2の制御プログラム開発装置1Bにおける変更判定部33の処理内容は、図6で示す実施の形態1の変更判定部13の処理に加え、ステップS11〜S17の処理を制御ブロック単位の動作として併せて行う。
なお、編集中制御プログラム14において、新たに制御ブロックが作成された場合、変更判定部33は流用元制御ブロックがない制御ブロックとして、当該新しい制御ブロックに対して制御ブロック関連情報17を新たに生成する。
実施の形態2のバージョン管理装置2Bは、前述したように、バージョン管理登録部41と、バージョン管理データベース42と、流用ブロック検索部43と、不具合波及ブロック一覧表示部44からなる。
ユーザが制御プログラム開発装置1Bによる編集中制御プログラム14内の編集中制御ブロック16に対する編集が終了すると、内部に編集中制御ブロック16を有する編集中制御プログラム14がバージョン管理装置2B内のバージョン管理データベース42内の登録制御プログラムとして格納される。この際、編集中制御プログラム14及び編集中制御ブロック16に関連して制御プログラム関連情報15及び制御ブロック関連情報17も併せてバージョン管理データベース42内に格納される。
すなわち、バージョン管理装置2A内のバージョン管理登録部41は、制御プログラム関連情報15及び制御ブロック関連情報17が付加された編集中制御プログラム14及び編集中制御ブロック16を登録制御プログラム及び登録制御ブロックとしてバージョン管理データベース42に保存する。そして、制御プログラム関連情報15は登録制御プログラムに対応して、バージョン情報110、流用元情報120及び変更情報130を有し、制御ブロック関連情報17は登録制御ブロックに対応してブロックバージョン情報210、ブロック流用元情報220及びブロック変更情報230を有している。
流用ブロック検索部43は、検索対象が制御プログラムから制御ブロックに変更されている点を除き、実施の形態1の流用プログラム検索部23と同様に、バージョン管理装置2Bのバージョン管理データベース42に保存された登録制御プログラム内に登録制御ブロックの中から同一ロジックを持つ制御ブロックの一覧を検索する。
不具合波及ブロック一覧表示部44は、流用ブロック検索部43で作成した一覧データに基づいて、ユーザが理解容易な制御ブロックの一覧を表示データとして、画面に表示する。表示データとして一覧データに格納された制御ブロックを識別可能なブロックバージョン情報210が基本的に用いられる。このとき、該当する制御ブロックの名称、バージョン番号の他に、作成者名、制御ブロックのコメント、流用時コメント、変更内容などを同時に表示データとして表示してもよい。
流用ブロック検索部43の処理は、図7で示す実施の形態1の流用プログラム検索部23によるステップS21〜S26及びS31〜S38の処理を制御ブロック単位に行うことにより実現される。
例えば、ステップS21ではユーザが検索を所望する制御ブロックのIDを指示する検索対象ブロック情報を取得し、ステップS22では流用元制御ブロックIDを取得することになり、ステップS26では一覧データに流用元制御ブロックIDを追加することになる。同様に、ステップS31はバージョン管理装置2Bに登録されている全制御プログラムの全制御ブロックを検索対象起点となる制御ブロックとして繰り返す処理となり、ステップS32は現検索対象の制御ブロックにおける流用元制御ブロックIDの取得処理となり、ステップS36〜S38の「制御プログラムID」部分は「制御ブロックID」に置き換わる。
ここで、シーケンサのプログラミング言語として、ラダープログラムの他に、IL(Instruction List)、SFC(Sequential Function Chart)、FBD(Function Block Diagram)、ST(Structured Text)などがある。
ラダーは、制御ブロックの単位として、設定とコイルが線によって接続された固まりであるラングを制御ブロックとして扱うことができる。ILは、制御ブロックの単位として、データの入力である接点入力のコード、例えばLD命令から、データの出力であるコイルのコード、例えばOUT命令までの一連のブロックを制御ブロックとして扱うことができる。SFCはステップ及びステップの中に記載されたサブプログラムを制御ブロックとして扱うことができる。FBDはファンクション及びファンクションの中に記載されたサブプログラムを制御ブロックとして扱うことができる。STは行またはサブプログラムを制御ブロックとして扱うことができる。
このような構成によれば、制御ブロックの一部を修正した時に、他に同様のロジックが存在し、同様の修正が必要になった場合、バージョン管理装置2Bが高速に検索して修正すべき制御ブロックの候補一覧を出力することができる。
このように、制御プログラムが、複数の制御プログラムの一部の制御ブロックをコピー流用して作成されている場合、制御ブロックを単位として検索することで、他の制御ブロックを目視でチェックすることなく、ユーザは修正を短時間でミス無く全てのブロックに反映させることができる利点がある。
このように、実施の形態2のバージョン管理装置2Bにおいて、ブロック情報検索部である流用ブロック検索部43は、バージョン管理データベース42内で制御ブロック関連情報17内のブロック流用元情報220に基づく検索処理を行い、検索対象ブロック情報が指示するユーザ指定の制御ブロックに関連する検索結果情報(一覧データ)を得ている。
このため、バージョン管理装置2Bのユーザは、表示データを不具合波及プログラム一覧表示部24Kら参照することにより、検索対象ブロック情報の指示する制御ブロックに対し所定の関連性を満足する制御ブロックを指示する検索結果情報(一覧データ)を短時間で認識することができる効果を奏する。
その結果、所定の修正を行った制御ブロックに関連性のある、バージョン管理データベースに登録された他の制御ブロックを短時間で認識することができる効果を奏する。
また、検索結果情報(一覧データ)は、バージョン管理データベース42に登録された登録制御プログラム内の制御ブロックのうち、検索対象ブロック情報が指示する制御ブロックを起点として順次検索され、上記第1の関連性要件を満足する所定数の流用元制御ブロック及び該所定数の流用元制御ブロックの少なくとも一つを、直接あるいは間接の流用元制御ブロックとして有し、かつ上記第2の関連性要件を満足する高関連性登録制御ブロックを指示する情報を含んでいる。
このため、実施の形態1の制御プログラム用バージョン管理装置のユーザは、表示データを不具合波及プログラム一覧表示部44から参照することにより、検索対象ブロック情報が指示する制御ブロックに対し所定の関連性要件を満足する制御ブロックを短時間で認識することができる効果を奏する。
その結果、所定の修正を行った制御ブロックに関連性のある、プログラム(ブロック)上の不具合波及の可能性が高い、バージョン管理データベース42に登録された他の制御ブロックを短時間で認識することができる効果を奏する。
<実施の形態3>
図12はこの発明の実施の形態3であるバージョン管理装置の構成を示すブロック図である。同図に示すように、バージョン管理装置2Cは、制御プログラム開発装置1Bと共にバージョン管理システムを構成している。
図12はこの発明の実施の形態3であるバージョン管理装置の構成を示すブロック図である。同図に示すように、バージョン管理装置2Cは、制御プログラム開発装置1Bと共にバージョン管理システムを構成している。
制御プログラム開発装置1Bは、実施の形態2と同様、流用情報設定部31、制御プログラムエディタ12及び変更判定部33から構成される。
一方、実施の形態3のバージョン管理装置2Cは、バージョン管理登録部41、バージョン管理データベース42、流用ブロック検索部43及び不具合波及ブロック一覧表示部44に加え、流用ブロック検索部43及び不具合波及ブロック一覧表示部44間に変更差分抽出部25を追加している。
変更差分抽出部25(差分抽出部)は、変更された箇所の表示だけを行うために、変更箇所を検索する機能を有する。実施の形態3においては、不具合波及ブロック一覧表示部44及び変更差分抽出部25によって検索情報表示部を構成する。
図13はこの発明の実施の形態3のバージョン管理装置2Cにおける変更差分抽出部25の処理内容を示すフローチャートである。変更差分抽出部25は、流用ブロック検索部43が出力した一覧データに基づいて、ユーザが指定した制御ブロックと、同一ロジックを持つブロックの差分データを得るものである。
同図を参照して、まず、ステップS41で、表示データをクリアする。
次に、ステップS42で流用ブロック検索部43が作成した流用元制御ブロックの一覧データを取得する。この一覧データの内容については実施の形態2と同様である。
次に、ステップS43で一覧データ内の全制御ブロックに対して繰り返し表示データの作成を行う。具体的には、一覧データ内の制御ブロック(ユーザ指定の制御ブロックは除く)のうち一の制御ブロックを差分処理対象の制御ブロックとしてステップS44で順次抽出して、以降のステップS44〜S46の処理を行う。以下、ステップS44〜S46の処理について説明する。
ステップS44で一覧データから差分処理対象の制御ブロックIDである流用元制御ブロックIDを取得する。
次に、ステップS45でユーザが指定した制御ブロックのコードと、ステップS44で取得した流用元制御ブロックIDが指示する制御ブロックのコードを読み出し、両コードの差分を取って差分データを得る。なお、ユーザが指定した制御ブロックとは、図7のステップS21において検索対象ブロック情報が指示する制御ブロックを意味する。
ここで、差分を取る処理は、一般に差分を得るためにしようされるツール、例えばUNIX(登録商標)のdiffのような機能を利用することができる。また、シーケンサで使用されるラダープログラムはグラフィカルな表示言語であるため、上記のdiffではなく、左右対称に比較できる表示形式を用いてもよい。
その後、ステップS46において、ステップS45で取得した差分データを表示データに追加する。この際、ユーザが指定した制御ブロック及びステップS44で取得した流用元制御ブロックのIDを併せて表示データとして追加する方が望ましい。
このような構成によれば、同一ロジックを含む制御ブロックに関する差分データのみを表示することになる。したがって、プログラム全体の差分データを表示する場合に比べ、必要な箇所のみ表示できることになる。このように、必要な箇所のみ表示すれば、修正を行う場合、迅速に修正箇所の特定と修正方法の判断ができるという利点がある。
このように、実施の形態3のバージョン管理装置2Cは、変更差分抽出部25及び不具合波及ブロック一覧表示部44によって検索情報表示部を構成している。変更差分抽出部25は、一覧データに格納された高関連性登録制御ブロックそれぞれの内容と検索対象ブロック情報が指示する制御ブロックの内容との差分データを順次取得している。不具合波及ブロック一覧表示部44は、変更差分抽出部25で取得された差分データを表示データとして表示している。
その結果、実施の形態3の制御プログラム用バージョン管理装置のユーザは、表示データを参照することにより、流用する制御ブロック間の変更部分内容を特化して認識することができるため、変更確認作業を効率的に行うことができる効果を奏する。
なお、実施の形態3では図9で示した実施の形態2を基本とした構成を示したが、同様にして図1で示した実施の形態1を基本として構成も同様に実現可能である。この場合、変更差分抽出部25は、ユーザが指定した制御プログラムのコードと流用元制御プログラムのコードの差分を取って差分データを得ることになる。
<その他>
実施の形態1〜実施の形態3では、バージョン管理装置2A〜2Cとして説明したが、バージョン管理装置2A〜2Cの流用プログラム検索部23及び流用ブロック検索部43の処理内容を中心として、バージョン管理データベースを用いて少なくとも一つの制御ブロックを有する制御プログラムを管理するバージョン管理方法として適用することも可能である。
実施の形態1〜実施の形態3では、バージョン管理装置2A〜2Cとして説明したが、バージョン管理装置2A〜2Cの流用プログラム検索部23及び流用ブロック検索部43の処理内容を中心として、バージョン管理データベースを用いて少なくとも一つの制御ブロックを有する制御プログラムを管理するバージョン管理方法として適用することも可能である。
例えば、実施の形態1の流用プログラム検索部23及び不具合波及プログラム一覧表示部24の処理内容を基本として、以下のステップ(a) 〜(c) からなるバージョン管理方法が実現可能である。
ステップ(a)は、バージョン管理データベース22内に登録された登録制御プログラム内の一の登録制御プログラムである制御プログラムを検索対象プログラム情報とする(図7のステップS21に相当)。
ステップ(b)は、 バージョン管理データベース22内で制御プログラム関連情報15に基づく検索処理を行い、上記検索対象プログラム情報の指示する制御プログラムに対し、所定の関連性を有する登録制御プログラムを指示する検索結果情報(一覧データ)を得る(図7のステップS22〜S38に相当)。
ステップ(c) は、上記検索結果情報に基づき表示データを表示する(不具合波及プログラム一覧表示部24による処理)。
上述したバージョン管理方法はステップ(b) において、バージョン管理データベース22内で制御プログラム関連情報に基づく検索処理を行い、検索対象プログラム情報の指示する制御プログラムに関連する検索結果情報を得る。
このため、バージョン管理方法のユーザは、表示データを参照することにより、検索対象プログラム情報の指示する制御プログラムに所定の関連性を有する制御プログラムを短時間で認識することができる効果を奏する。
その結果、所定の修正を行った制御プログラムに関連性のある、バージョン管理データベースに登録された他の制御プログラムを短時間で認識することができる効果を奏する。
また、実施の形態1〜実施の形態3では、制御プログラム(制御ブロック)を検索対象とするバージョン管理装置2A〜2Cを示したが、応用技術として、少なくとも一つのブロックから構成される一般的なプログラムについてのバージョン管理装置に適用することも可能である。
なお、実施の形態1〜実施の形態3で述べたバージョン管理装置は、例えば、主記憶装置、演算装置、入力装置、二次記憶装置及び出力装置等から構成され、これらの装置が共通バスを介して共通に接続されるような構成のコンピュータ装置により実現することができる。
このようなコンピュータ装置において、例えば、実施の形態1の制御プログラム開発装置1A及びバージョン管理装置2Aの場合、流用情報設定部11、制御プログラムエディタ12、変更判定部13、バージョン管理登録部21、及び流用プログラム検索部23は、演算装置がコンピュータを機能させるプログラムに基づき動作することによって実現可能である。上記プログラムは主記憶装置あるいは二次記憶装置に格納可能である。
また、編集中制御プログラム14、制御プログラム関連情報15の保存装置、バージョン管理データベース22は、主記憶装置あるいは二次記憶装置によって実現可能である。
1A,1B 制御プログラム開発装置、2A〜2C バージョン管理装置、3 流用元制御プログラム、4 流用元制御プログラム用バージョン情報、5 流用元制御ブロック、6 流用元制御ブロック用バージョン情報、11,31 流用情報設定部、12 制御プログラムエディタ、13,33 変更判定部、14 編集中制御プログラム、15 制御プログラム関連情報、16 編集中制御ブロック、17 制御ブロック関連情報、21,41 バージョン管理登録部、22,42 バージョン管理データベース、23 流用プログラム検索部、24 不具合波及プログラム一覧表示部、25 変更差分抽出部、43 流用ブロック検索部、44 不具合波及ブロック一覧表示部。
Claims (7)
- 所定の制御対象を制御する制御プログラムを管理するバージョン管理装置であって、
所定の制御プログラム開発装置によって開発された制御プログラムを登録制御プログラムとして制御プログラム関連情報と関連づけて登録するバージョン管理データベースを備え、
前記登録制御プログラムは流用元制御プログラムに基づき前記所定の制御プログラム開発装置によって開発された制御プログラムを含み、
前記制御プログラム関連情報は、前記登録制御プログラム用の識別情報であるバージョン情報、前記登録制御プログラムの前記流用元制御プログラム用の識別情報である流用元情報、及び前記登録制御プログラムにおける前記流用元制御プログラムからの変更内容を示す変更情報を含み、
前記バージョン管理装置は、
前記バージョン管理データベース内に登録された登録制御プログラム内の一の登録制御プログラムを指示する情報を検索対象プログラム情報とし、前記バージョン管理データベース内で前記制御プログラム関連情報に基づく検索処理を行い、前記検索対象プログラム情報の指示する制御プログラムに対し、所定の関連性要件を満足する前記登録制御プログラムを指示する検索結果情報を得るプログラム情報検索部と、
前記検索結果情報に基づき表示データを表示する検索情報表示部とをさらに備える、
バージョン管理装置。 - 請求項1記載のバージョン管理装置であって、
前記検索結果情報は、前記バージョン管理データベースに登録された登録制御プログラムのうち、前記検索対象プログラム情報が指示する制御プログラムを起点として順次検索され、第1の関連性要件を満足する所定数の流用元制御プログラム及び該所定数の流用元制御プログラムの少なくとも一つを、直接あるいは間接の流用元制御プログラムとして有し、かつ第2の関連性要件を満足する高関連性登録制御プログラムを指示する情報を含み、
前記所定の関連性要件は前記第1及び第2の関連性要件を含み、
前記表示データは前記所定数の流用元制御プログラム及び前記高関連性登録制御プログラムそれぞれの前記バージョン情報を含む、
バージョン管理装置。 - 少なくとも一つの制御ブロックから構成され、所定の制御対象を制御する制御プログラムを管理するバージョン管理装置であって、
所定の制御プログラム開発装置によって開発された制御プログラム内の制御ブロックを登録制御ブロックとして制御ブロック関連情報と関連づけて登録するバージョン管理データベースを備え、
前記登録制御ブロックは流用元制御ブロックに基づき前記所定の制御プログラム開発装置によって開発された制御ブロックを含み、
前記制御ブロック関連情報は、前記登録制御ブロック用の識別情報であるバージョン情報、前記登録制御ブロックの前記流用元制御ブロック用の識別情報である流用元情報、及び前記登録制御ブロックにおける前記流用元制御ブロックからの変更内容を示す変更情報を含み、
前記バージョン管理装置は、
前記バージョン管理データベース内に登録された一の登録制御ブロックを指示する情報を検索対象ブロック情報とし、前記バージョン管理データベース内で前記制御ブロック関連情報に基づく検索処理を行い、前記検索対象ブロック情報の指示する制御ブロックに対し、所定の関連性を満足する前記登録制御ブロックを指示する検索結果情報を得るブロック情報検索部と、
前記検索結果情報に基づき表示データを表示する検索情報表示部とをさらに備える、
バージョン管理装置。 - 請求項3記載のバージョン管理装置であって、
前記検索結果情報は、前記バージョン管理データベースに登録された前記登録制御ブロックのうち、前記検索対象ブロック情報が指示する制御ブロックを起点として順次検索され、第1の関連性要件を満足する所定数の流用元制御ブロック、及び該所定数の流用元制御ブロックの少なくとも一つを、直接あるいは間接の流用元制御ブロックと有し、かつ第2の関連性要件を満足する高関連性登録制御ブロックを含み、
前記所定の関連性要件は前記第1及び第2の関連性要件を含む、
バージョン管理装置。 - 請求項4記載のバージョン管理装置であって、
前記表示データは前記所定数の流用元制御ブロック及び前記高関連性登録制御ブロックそれぞれの前記ブロックバージョン情報を含む、
バージョン管理装置。 - 請求項4記載のバージョン管理装置であって、
前記検索情報表示部は、
前記高関連性登録制御ブロックそれぞれの内容と前記検索対象プログラム情報が指示する制御ブロックの内容との差分データを順次取得する差分抽出部と、
前記差分抽出部で取得された差分データを前記表示データとして表示する差分データ表示部とを含む、
バージョン管理装置。 - バージョン管理データベースを用いて制御プログラムを管理するバージョン管理方法であって、
前記バージョン管理データベースは、所定の制御プログラム開発装置によって開発された制御プログラムを登録制御プログラムとして制御プログラム関連情報と関連づけて登録し、
前記登録制御プログラムは流用元制御プログラムに基づき前記所定の制御プログラム開発装置によって開発された制御プログラムを含み、
前記制御プログラム関連情報は、前記登録制御プログラム用の識別情報であるバージョン情報、前記登録制御プログラムの前記流用元制御プログラム用の識別情報である流用元情報、及び前記登録制御プログラムにおける前記流用元制御プログラムからの変更内容を示す変更情報を含み
(a) 前記バージョン管理データベース内に登録された登録制御プログラム内の一の登録制御プログラムを指示する情報を検索対象プログラム情報とするステップと、
(b) 前記バージョン管理データベース内で前記制御プログラム関連情報に基づく検索処理を行い、前記検索対象プログラム情報の指示する制御プログラムに対し、所定の関連性要件を満足する登録制御プログラムを指示する検索結果情報を得るステップと、
(c) 前記検索結果情報に基づき表示データを表示するステップとを備える、
バージョン管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009207950A JP2011059918A (ja) | 2009-09-09 | 2009-09-09 | バージョン管理装置及びバージョン管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009207950A JP2011059918A (ja) | 2009-09-09 | 2009-09-09 | バージョン管理装置及びバージョン管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011059918A true JP2011059918A (ja) | 2011-03-24 |
Family
ID=43947484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009207950A Pending JP2011059918A (ja) | 2009-09-09 | 2009-09-09 | バージョン管理装置及びバージョン管理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011059918A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016001358A (ja) * | 2014-06-11 | 2016-01-07 | アズビル株式会社 | エンジニアリング装置、エンジニアリングシステム、およびダウンロード処理方法 |
JP2016521369A (ja) * | 2013-05-13 | 2016-07-21 | 株式会社ミツトヨ | 動作コンテキストを意識したコピーアンドペースト機能を含むマシンビジョンシステムプログラム編集環境 |
JP2018049397A (ja) * | 2016-09-20 | 2018-03-29 | 株式会社東芝 | 設計情報管理装置およびプログラム |
US11921496B2 (en) | 2019-02-21 | 2024-03-05 | Mitsubishi Electric Corporation | Information processing apparatus, information processing method and computer readable medium |
-
2009
- 2009-09-09 JP JP2009207950A patent/JP2011059918A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016521369A (ja) * | 2013-05-13 | 2016-07-21 | 株式会社ミツトヨ | 動作コンテキストを意識したコピーアンドペースト機能を含むマシンビジョンシステムプログラム編集環境 |
JP2016001358A (ja) * | 2014-06-11 | 2016-01-07 | アズビル株式会社 | エンジニアリング装置、エンジニアリングシステム、およびダウンロード処理方法 |
US10295978B2 (en) | 2014-06-11 | 2019-05-21 | Azbil Corporation | Engineering device, engineering system, and download processing method |
JP2018049397A (ja) * | 2016-09-20 | 2018-03-29 | 株式会社東芝 | 設計情報管理装置およびプログラム |
US11921496B2 (en) | 2019-02-21 | 2024-03-05 | Mitsubishi Electric Corporation | Information processing apparatus, information processing method and computer readable medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3563132B2 (ja) | 部品手配処理方式 | |
KR100967761B1 (ko) | 프로그래머블 컨트롤러의 주변 장치, 치환 방법 및프로그램 | |
US10380085B2 (en) | Method, apparatus and computer program for migrating records in a database from a source database schema to a target database schema | |
JP2011059918A (ja) | バージョン管理装置及びバージョン管理方法 | |
US20190050412A1 (en) | Information management apparatus, information management method, and information management system | |
JP2011150542A (ja) | 製造手順情報作成システムおよび製造手順情報作成プログラム | |
JP2005100078A (ja) | ソフトウェア資産管理システム | |
KR101726120B1 (ko) | 프로그램 편집 장치, 프로그램 편집 방법 및 프로그램 편집 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 | |
US20030220939A1 (en) | Information processing system, information processing method, and information processing program | |
JP6287093B2 (ja) | ソフトウェア開発支援装置、ソフトウェア開発支援方法及びプログラム | |
JP2003288458A (ja) | 統合プロジェクト管理ツール | |
JP4484148B2 (ja) | Si対象ファイルおよびsi関連ファイル管理システム | |
JP6355861B1 (ja) | プログラム開発支援装置、プログラム開発支援方法、プログラム開発支援プログラムおよび記録媒体 | |
WO2023203694A1 (ja) | ロボットシステム、教示操作盤及びプログラム | |
EP4261678A1 (en) | Generation of a technical instruction | |
JP7086873B2 (ja) | 管理装置、方法及びプログラム | |
KR102340453B1 (ko) | 정보 처리 장치, 정보 처리 방법 및 기록 매체에 저장된 정보 처리 프로그램 | |
JP2005316778A (ja) | プラント監視制御装置 | |
JP5481093B2 (ja) | 規程文書管理装置及び規程文書管理プログラム | |
JP2016151973A (ja) | 制御コントロールシステム、その開発支援装置、制御装置 | |
JP2009151727A (ja) | 文書処理システム | |
JP2017091027A (ja) | システム開発支援システム | |
JP2007047971A (ja) | 個別プログラム生成装置及び方法 | |
JP6571426B2 (ja) | 情報資産管理システム、及び情報資産管理方法 | |
JPH0561657A (ja) | プログラム編集方式 |