(58)【調査した分野】(Int.Cl.,DB名)
【背景技術】
【0002】
例えば、特許文献1には、複数のPLC(プログラマブルコントローラ)の共有データを管理する共有データ定義支援装置が、開示されている。共有データの管理とは、例えば、共有メモリへの共通変数とアドレス割り付け等である。よく知られているように、共有メモリには、複数のPLCで共有される変数(共通変数)に係わるデータが格納されるものであり、その格納アドレスが割り当てられる。
【0003】
ここで、複数のPLCのプログラムを開発/編集等する場合は、規模が大きい場合、複数の作業者で分担して作業実施する場合がある。複数の作業者が並行してこの様なプログラミング作業を実施すると共に、それに伴って共有データ定義を更新する場合がある。この為、複数の作業者で並行してプログラミング作業等を実施しても、共有データ定義の整合性を保てるようにする必要がある。これを実現するシステム構成例を、
図9に示す。
【0004】
尚、本説明においてプログラムとは、基本的に、PLCのプログラム、すなわち制御プログラムを意味するものとし、PLCプログラムと記す場合もあれば、単にプログラムと記す場合もあるものとする。
【0005】
尚、共有データ定義とは、共通変数に係わる所定の各種情報であり、例えば、上記共通変数の変数名、割当アドレス、書込みを行うPLC、読出しを行うPLC等である。共有データ定義の更新は、例えば、これら各種情報の修正や、新たな共通変数の追加や、既存の共通変数の削除等である。例えば、プログラムに新たな共通変数が追加されたならば、それに伴って、共有データ定義には、この新たな共通変数に係わる上記各種情報を、追加することになる。
【0006】
図9は、従来のプログラマブルコントローラのプログラム開発システムの具体例である。
図9のPLCプログラム開発システムでは、マスタ装置110と、複数のローカル端末120とが、ネットワーク100に接続している。尚、図では、ローカル端末120は1つのみ示すが、実際には上記の通り複数存在する。
【0007】
複数のローカル端末120は、上記複数の作業者が各々上記プログラミング作業や共有データ定義の更新作業等を行うための情報処理装置である。各作業者は、任意のローカル端末120を用いて、自己が担当するプログラミング作業を実施する。尚、上記のように作業を分担するので、任意の1台のPLCに係わるプログラミング作業を、複数の作業者が分担して行う場合も有り得る。
【0008】
マスタ装置110が、複数のPLCのプログラムや共有データ定義を、一元管理する。
上記各作業者は、自己のローカル端末120からネットワーク100を介してマスタ装置110にアクセスして、任意のプログラムの編集作業やそれに伴う共有データ定義の更新作業を行う。複数のPLCに係わる各共有データ定義が、マスタ装置110が備える図示の共有データDB113に格納されて一元管理されている。
【0009】
任意の共有データ定義情報にアクセスする場合、作業者は、その更新作業を開始する前に、マスタ装置110が有する“共有データDB113を管理する機能”(不図示の構成管理ツール)から、アクセス権を獲得する必要がある。アクセス権を所有した作業者(仮に作業者Aとする)だけが共有データ定義の更新が可能になる。
【0010】
よって、アクセス権を所有した作業者Aが共有データ定義の更新を行っている最中に、他の作業者が共有データ定義の更新を行うことはない。他の作業者は、後に、上記作業者Aによって更新された後の共有データ定義に対して、更に更新を行うことは出来る。逆に言えば、作業者Aによる更新前の共有データ定義に基づいて更新を行うことは出来ない。これは、換言すれば、作業者Aによる更新内容を無視するような形で更新することは出来ないことになる。これは、共有データ定義の整合性を保つことが出来るものと言うことができる。
【0011】
従来では、この様にして、複数の作業者で並行してプログラミング作業を実施しても、共有データ定義の整合性を保つようにしていた。
尚、図示の例では、例えば、マスタ装置110は、プログラミング支援部111、共有データ定義支援部112等の各種処理機能部を有する。プログラミング支援部111は、例えばPLCプログラム編集部111aを有する。PLCプログラム編集部111aは、ユーザによる任意のPLCプログラムに関する任意の編集作業を支援する。このプログラム編集作業に伴う共有データの更新作業は、共有データ定義支援部112内の共有データ定義設定部112aが支援する。また、マスタ装置110は、共有データDB(データベース)113を有している。共有データDB113には、上記の通り、各PLCプログラムに係わる各種共有データ定義情報が格納される。換言すれば、マスタ装置110は、全てのPLCに係わる共有データ定義情報を一元管理している。
【0012】
ここで、図示の例では、各PLCプログラムは、PLC単位で管理されている。例えば、図示のように、PLC1用のプログラムである図示の3つのプログラム(1,2,3)を、グループ化して管理しており、このグループを“プロジェクト”と呼んでいる。他のPLCについても略同様であり、例えば、PLC2用のプログラム群である図示のPLC2プロジェクト、PLCn用のプログラム群である図示のPLCnプロジェクト等が、マスタ装置110で格納・管理されている。
【0013】
各プログラムの編集作業は、上記PLCプログラム編集部111aによって行うことも出来るし、各ローカル端末120で行うことも出来る。各ローカル端末120には、後述するPLCプログラム編集部121aが備えられている。
【0014】
尚、上記編集作業は、このプロジェクト単位で行うものであってよいが、これに限らず、プログラム単位で行っても良い。図示の例では、プロジェクト単位で編集を行う例を示す。尚、これは、PLC単位で編集を行うものと同義と見做してもよい。
【0015】
また、各ローカル端末120は、上記プログラミング支援部111、共有データ定義支援部112と同等の処理機能部である図示のプログラミング支援部121、共有データ定義支援部122を有している。勿論、プログラミング支援部121は、上記PLCプログラム編集部111aに相当するPLCプログラム編集部121aを有している。共有データ定義支援部122も、上記共有データ定義設定部112aに相当する共有データ定義設定部122aを有している。
【0016】
尚、
図9では、任意のローカル端末120において、作業者が、PLCプログラム編集部121aに支援されながらPLC1プロジェクトの編集を任意に行っている状態を、一例として示している。また、作業者は、この編集作業に伴う共有データ定義の設定・更新等を、共有データ定義設定部122aを介して行っている。その際、上述したように、共有データ定義の整合性は保たれるようになっている。これは、ネットワーク100経由でマスタ装置110の上記不図示の構成管理ツールを利用することにより実現される。
【0017】
尚、マスタ装置110は例えばサーバ装置等であり、ローカル端末120は例えばパソコン等である。
上記のように、従来では、例えば、複数の作業者で共有データ定義情報の整合性を保つようにして管理する技術として、構成管理ツールによって一元管理された共有データ定義を、ネットワーク経由でアクセス権を得て編集する仕組みが考えられている。
【発明を実施するための形態】
【0031】
以下、図面を参照して、本発明の実施の形態について説明する。
図1は、本例の共有データ定義支援システムの構成図である。
図示の共有データ定義支援システムは、マスタ装置10と複数のローカル端末20を有する。これらの既存機能を簡単に述べるならば、マスタ装置10は、不図示の各プログラマブルコントローラの各プログラムと該各プログラムに係る共有データ定義情報を記憶・管理する。各ローカル端末20は、各々が任意のときに該マスタ装置10上の任意の該プログラム又は/及び該共有データ定義情報を更新し得る。但し、従来とは異なり、各ローカル端末20は必ずしもネットワークに接続されているとは限らないので、ネットワークは図示していない。但し、マスタ装置10は基本的に常に不図示のネットワークに接続されており、各ローカル端末20は当該ネットワークに接続される場合もある構成であってもよい。
【0032】
尚、マスタ装置10や各ローカル端末20によるプログラムや共有データ定義情報の管理・編集対象は、上記プログラマブルコントローラに限るものではなく、何らかの所定のプログラムに基づいて任意の機器を制御するコンピュータ装置であれば何でもよく、これらを総称して“制御装置”と記すものとする。
【0033】
また、各ローカル端末20は、不図示のネットワークに接続中に、図示の「持ち出し」や「取り込み」のようなマスタ装置10へのアクセス処理等を、行うものであってもよい。尚、ローカル端末20がネットワークに接続することは、マスタ装置10に接続することと同義と見做しても構わない。また、“ローカル環境”とは、ローカル端末20がネットワークに接続出来ない環境、すなわちマスタ装置10に接続出来ない環境を意味するものとする。ローカル環境は、例えば、上記従来で説明した“現場”等である。
【0034】
本例の共有データ定義支援システムは、共有データ定義を格納・管理するマスタ装置10と、該共有データ定義の更新に係わる作業が行われる複数のローカル端末20とを有するシステムを、前提とする。そして、ローカル環境でローカル端末20側での共有データ定義の更新作業が行われる場合であっても、マスタ装置側の共有データ定義の整合性を保つことができるものである。
【0035】
尚、図示の「持ち出し」や「取り込み」の処理は、概略的には、マスタ装置10が格納・管理するプログラムや共有データ定義情報のコピーを、ローカル端末20に取得させることが「持ち出し」である。「取り込み」は、その後に、ローカル端末20側で編集後のプログラムや更新後の共有データ定義情報によって、マスタ装置10で格納・管理するプログラム/データを更新する処理である。つまり、ローカル端末20側での編集・更新内容を、マスタ装置10側で管理するプログラムや共有データ定義情報に反映させる処理である。詳しくは後述する。
【0036】
何れにしても、本手法では、任意のローカル端末20が、図示の「持ち出し」を行った後、例えば上記“現地”のようにネットワーク経由でマスタ装置の構成管理ツールを利用しつつプログラム編集作業等を行うことが出来ない環境下で、プログラムの編集や共有データの更新が行われるケースを、主に想定しているものである。それ以外
の状況に関しては、本手法を適用してもよいし、上記従来手法を用いても構わない。
【0037】
尚、マスタ装置10は例えばサーバ装置等であり、ローカル端末20は例えばパソコン等であり、何れもコンピュータ装置である。特に図示しないが、マスタ装置10、ローカル端末20は、一般的なコンピュータ装置の構成を有している。すなわち、不図示のCPU等の演算プロセッサ、メモリ等の記憶部、通信部、操作部、表示部等を有している。操作部はキーボード、マウス等である。記憶部には、予め所定のアプリケーションプログラムが記憶されている。演算プロセッサが、このアプリケーションプログラムを実行することにより、
図1や
図8に示す各種機能部や後述するフローチャート図の処理が実現される。
【0038】
すなわち、マスタ装置10では、下記のプログラミング支援部11、共有データ定義支援部12等や後述する第1記憶部31、許可判定部32、更新実施部33等の各種処理機能部や、後述する
図2、
図5の処理等が実現される。また、記憶部には下記の共有データDB(データベース)13が構成される。また、ローカル端末20では、下記のプログラミング支援部21、共有データ定義支援部22等や後述する持出部41、定義・キー更新部42
、指定部43、編集許可部44等の各種処理機能部や、後述する
図3の処理等が実現される。また、記憶部には後述する共有データDB(データベース)(コピー)23が構成される。
【0039】
以下、
図1に示す各構成について説明する。
図示の例では、マスタ装置10は、プログラミング支援部11、共有データ定義支援部12等の各種処理機能部を有し、更に共有データDB(データベース)13を有する。また、特に図示しないが、図示の各プロジェクトのプログラム群等を記憶する記憶部も存在する。
【0040】
特に図示していないが、既に述べたように、各プロジェクトは、各PLC用のプログラム群であり、1以上の制御プログラム等より成る。例えば、PLC1用のプログラム群である図示のPLC1プロジェクト、PLC2用のプログラム群である図示のPLC2プロジェクト等が、作成されて記憶されている。また、これら各プロジェクトは、任意のときに、プログラミング支援部11または後述するプログラミング支援部21によって編集されて更新される。これに伴って、対応する共有データ定義情報も、共有データ定義支援部12によって更新される。
【0041】
例えば、上記PLC1プロジェクトに対応する共有データ定義は、後述するPLC1用定義13aである。つまり、PLC1プロジェクトとPLC1用定義13aは、PLC1に係わるものである。従って、PLC1プロジェクトの編集が行われる際には、基本的に、PLC1用定義13aの更新も行われるものと見做しても構わない。
【0042】
また、プログラミング支援部11は、例えばPLCプログラム編集部11aを有する。PLCプログラム編集部11aは、ユーザによる任意のPLCプログラムに対する任意の編集作業を支援する。このプログラム編集作業に伴う共有データ定義の設定・更新作業は、共有データ定義支援部12内の共有データ定義設定部12aが支援する。尚、PLCプログラム編集部11aによる上記支援の機能自体は、従来のPLCプログラム編集部111aと略同様と見做して構わない。
【0043】
共有データDB13には、各PLCプログラムに係わる各種共有データ定義が格納される。換言すれば、マスタ装置10は、全てのPLCに係わる共有データ定義を一元管理している。そして、図示のように、共有データDB13には、共有データ定義がPLC毎に分類されて格納されている。すなわち、各PLC毎に応じた共有データ定義である図示のPLC1用定義13a、PLC2用定義13b、・・・、PLCn用定義13n等に分類されて記憶されている。
【0044】
また、各ローカル端末20は、上記プログラミング支援部11、共有データ定義支援部12と略同様の機能であるプログラミング支援部21、共有データ定義支援部22を備えている。これらは、各々、上記PLCプログラム編集部11a、共有データ定義設定部12aに相当するPLCプログラム編集部21a、共有データ定義設定部22aを有する。
【0045】
ここで、本例では、上記各プロジェクト、各共有データ定義には、図示の“Key1”、“Key2”、“Keyn”等のようなキー情報が付与される。これは、同じPLCに係わるプロジェクトと共有データ定義には、同じキー情報が付与される。例えば、上記PLC1に係わるPLC1プロジェクトとPLC1用定義13aとには、図示のように同じキー情報“Key1”が付与される。
【0046】
ここで、本手法では、ローカル端末20において任意のPLCに係わるプログラム編集や共有データ定義更新を行う際には、ローカル端末20は、編集対象のプログラム/プロジェクトのコピーを、マスタ装置10から取得する。つまり、図示の「持ち出し」を行う。図示の例では“PLC1プロジェクト”の“PLC1プログラム”の「持ち出し」を行っている。この様に、プログラムに関しては、プロジェクト単位で「持ち出し」を行ってもよいし、プログラム単位で「持ち出し」を行なっても良いが、何れの場合でも、そのプロジェクトに付与されているキー情報も一緒に持ち出す。
【0047】
また、ローカル端末20は、共有データ定義に関しては、共有データDB13全体のコピーを、マスタ装置10から取得する。これより、図示のように、共有データDB13全体のコピーである共有データDB(コピー)23が、ローカル端末20に格納された状態となる。但し、共有データDB(コピー)23の全ての共有データ定義に対して、更新等が行えるわけではない。図示の例では、PLC1用定義23aに対しては設定・更新が許可されるが、他の共有データ定義に対しては例えば参照のみが行なえるように管理される。詳しくは後述する。
【0048】
尚、上記「持ち出し」は、不図示のネットワークを介して行ってよいが、この例に限らず、USBメモリ等の不図示の可搬型記録媒体を介して行っても良い。
尚、上記「持ち出し」の際にアクセス権は取得しない。従って、その後に、他のローカル端末20がマスタ装置10から共有データ定義等を持ち出すこともできる。
【0049】
何れにしても、上記プログラム等や共有データの「持ち出し」を行った後、作業者は、このローカル端末20を例えば上記「現場」に持っていく等して、そこで、持ち出したプログラムの編集や、このプログラムに係わる共有データ定義の設定・更新などを行うことになる。尚、「現場」は、何処でも良いが、上記の通り、マスタ装置10にアクセスすることはできない環境(ローカル環境)であるものとする。
【0050】
図示の例では、上記PLC1プログラムを持ち出したローカル端末20においては、例えば上記「現場」等で、作業者が、このPLC1プログラムの編集等を行うと共に、このPLC1プログラムに係わる共有データ定義であるPLC1用定義23aの更新等を行うことになる。
【0051】
ここで、本手法では、上記のように、共有データDB13全体のコピーを持ち出すが、更新等のデータの内容の変更を伴うアクセスが許可されるのは、持ち出したプログラム(プロジェクト)に係わる共有データ定義のみである。つまり、図示の例では、PLC1用定義23aのみが更新等を許可され、それ以外の共有データ定義は参照だけが許される。
【0052】
この様な許可制御を行う為に、上記キー情報を用いる。つまり、持ち出したプログラムに付与されるキー情報と同一のキー情報が付与されている共有データ定義のみが、更新等を許可される。図示の例では、PLC1用プログラムには“Key1”が付与されているので、“Key1”が付与されている共有データ定義である図示の「PLC1用定義」23aのみが、更新等を許可されることになる。
【0053】
尚、上記キー情報の利用方法は、他にもあり、それについては後述するが、「取り込み」の際に利用するものである。
尚、ローカル端末20における作業者によるプログラムの編集作業は、上記プログラミング支援部21(そのPLCプログラム編集部21a)が支援する。同様に、共有データの更新作業は、上記共有データ定義支援部22(その共有データ定義設定部22a)が支援する。
【0054】
上記マスタ装置10において、共有データDB13は、各PLCに応じた記憶領域から構成され、各PLCに係わる共有データ定義は、それぞれの該当領域に格納される。
共有データ定義支援部12は、複数のPLCそれぞれのプログラム(プロジェクト)を管理し、各PLCに応じた共有データ定義情報を、共有データDB13に格納・管理する。その際、各プログラム(プロジェクト)に上記固有のキー情報を付与する。尚、ここでは上記の通り、各PLC用のプログラム群をまとめてプロジェクトと呼称する。さらに、共有データ定義支援部12は、各共有データ定義情報に対して、該当するキー情報を付与する。
【0055】
該当するキー情報とは、その共有データ定義が係わるPLCと同じPLCに係わるプロジェクト(プログラム)に付与されているキー情報である。このキー情報を元に、その共有データ定義の設定・更新や「取り込み(反映)」の許可判断を行う。以下、
図2以降の各図を参照して更に具体的に説明する。
【0056】
図2は、マスタ装置10における新規プログラム登録の際の処理フローチャート図である。
図2において、マスタ装置10(支援ツール)は、新たに管理対象とする任意のPLC用のプログラム(プロジェクト)の登録を行うと共に(ステップS11)、このPLC用の共有データ定義の記憶領域を共有データDB13内に確保する(ステップS12)。
【0057】
尚、以下、上記プログラム(プロジェクト)をプログラムと記すものとする。つまり、以下の説明では、プログラムは、プロジェクト(プログラム群)を意味するものであってもよい。
【0058】
尚、この時点では記憶領域が確保されただけであり、共有データ定義情報自体は未だ格納されていないものであっても構わない。勿論、この時点で共有データ定義情報が作成済みであれば、これを上記確保された記憶領域に格納しても構わない。また、この時点では未だ共有データ定義情報が作成されていなくても、後に任意のときに作成された時点で、当該作成された共有データ定義情報を上記確保された記憶領域に格納すればよい。
【0059】
また、この例は、共有データ定義自体にキー情報を付与するのではなくその記憶領域に対してキー情報を付与する例を用いるが、勿論、この例に限らない。共有データ定義自体にキー情報を付与するものであっても構わない。
【0060】
マスタ装置10は、続いて、任意の固有の識別情報を生成して(ステップS13)
、この識別情報を含むキー情報を、上記新たなプログラムと共有データ定義記憶領域に対して付与する(ステップS14)。これは、上述したように、同じPLCに係わるプログラムと共有データ定義(その記憶領域)とには同じキー情報を付与する。
【0061】
尚、上記識別情報とキー情報との関係は、後に
図4に示す一例を参照して説明するが、基本的にはキー情報は1以上の識別情報から成るものである。
図2の処理の際には、新たなキー情報が生成されることになるので、このキー情報は上記ステップS13で生成された1つの識別情報のみから構成されることになる。その後、キー情報の更新が行われる毎に、キー情報を構成する識別情報の数が、増えていくことになる、詳しくは
図4等を用いて後述する。
【0062】
上記ステップS11で新規登録したプログラムが複数ある場合には、全ての新規プログラムについてステップS13、S14の処理を実行したか否か判定する(ステップS15)。未処理の新規登録プログラムが残っている場合には(ステップS15、NO)、ステップS13に戻り、未処理の新規登録プログラムについてステップS13、S14の処理を実行する。全ての新規登録プログラムについて処理実行したら(ステップS15,YES)、本処理は終了する。
【0063】
例えば
図2の処理が実行されていることで、
図1で説明したように、同じPLCに係わるプログラムと共有データ定義記憶領域とには、同じキー情報が付与された状態となっている。
図1の例では、例えば、PLC1に係わるプログラムと共有データ定義記憶領域とには同じキー情報が付与されている。すなわち、PLC1プロジェクトとPLC1用共有データ定義記憶領域13aには、どちらにもキー情報“Key1”が付与されている。
【0064】
次に、以下、各ローカル端末20側の処理例について説明する。
任意のPLCのプログラミング作業をローカル環境で行う為に、各ローカル端末20には、マスタ装置10と同じ支援機能である上記共有データ定義支援部22およびプログラミング支援部21を、予めインストールしておく。
【0065】
そして、任意のときに、編集対象のPLCのプログラムと、共有データDB13とを、マスタ装置10からコピーして持ち出す。尚、編集対象のPLCは、1つとは限らず、複数のPLCを編集対象としてもよく、これら各PLCに係わる各プログラムを持ち出すものであっても構わない。
【0066】
その後、例えば上記「現場」等のローカル環境において、作業者等が上記ローカル端末20上で任意の編集作業等を行う際に、ローカル端末20は
図3の処理を実行する。
尚、以下の説明においても、プログラムとは、1つの制御プログラムまたはプログラム群(プロジェクト)を意味するものとする。
【0067】
図3において、まず、作業者等が、編集対象とするプログラムと共有データ定義とを指定する(ステップS21、S22)。勿論、編集対象とするプログラムは、上記持ち出したプログラムのなかから選択・指定することになる。一方、共有データ定義に関しては、本手法では上記の通り共有データDB13を持ち出してくるので、基本的には全ての共有データ定義を指定可能である。例えば、
図1の例では、PLC1のプログラムを持ち出しているが、例えばPLCnに係わる共有データ定義であっても指定可能である。
【0068】
これより、まず、ステップS22で指定された共有データ定義が、ステップS21で指定されたプログラムに対応するものであるか否かをチェックする。換言すれば、同じPLCに係わるものであるか否かをチェックする。その為に、本例では上記キー情報を用いる。すなわち、ステップS21で指定されたプログラムのキー情報と、ステップS22で指定された共有データ定義のキー情報とが、一致するか否かを判定する(ステップS23)。
【0069】
これら2つのキー情報が不一致の場合には(ステップS23,NO)、これらプログラムと共有データ定義の組み合わせは、編集不可の組み合わせである旨の警告メッセージ等を表示して(ステップS25)、本処理を終了する。尚、この場合には、ユーザに再度上記ステップS21、S22の指定を行わせるようにしてもよい。尚、2つのキー情報が不一致の場合とは、基本的には、2つのキー情報が異なる場合であるが、それ以外にも、どちらか一方または両方のキー情報が存在しない場合等も含まれる。
【0070】
一方、上記2つのキー情報が一致する場合には(ステップS23,YES)、共有データ定義の編集(設定・更新)を許可する(ステップS24)。これは、例えば、上記ステップS22で指定された共有データ定義を格納する、共有データDB(コピー)23内の記憶領域を特定し、当該特定した記憶領域に対しては編集可能とし、それ以外の領域は参照のみとする。これによって、作業者は、上記ステップS22で指定した共有データ定義の編集を、任意に行うことができると共に、それ以外の共有データ定義については参照のみしか行えない。
【0071】
作業者は、共有データ定義支援部22の支援機能により、上記編集許可された共有データ定義の更新作業等を行う。そして、任意のとき、例えば作業者が更新作業完了を入力操作した場合に、共有データ定義支援部22は、ステップS26〜S28の処理を実行する。
【0072】
すなわち、まず、共有データ定義に変更があるか否かを判定する(ステップS26)。これは、例えば、マスタ装置10からコピーしたときの共有データ定義情報を、バックアップ情報として残しておき、このバックアップ情報が現在の共有データ定義と不一致の場合には変更ありと判定する(ステップS26,YES)。一方、一致の場合には変更なしと判定し(ステップS26,NO)、何もすることなく本処理を終了する。
【0073】
共有データ定義に変更がある場合には(ステップS26,YES)、新たな固有の識別情報を生成する(ステップS27)。ここで“固有の”とは、自端末においてユニークであることは勿論のこと、他のローカル端末20が同じ識別情報を生成することは無いことを意味する。その為に、例えば、識別情報には当該ローカル端末20のMACアドレスや製造ナンバー等のようなユニークなIDが、含まれるようにする。勿論、この例に限らない。
【0074】
そして、上記ステップS27で生成した識別情報を、上記変更があった共有データ定義のキー情報と、ステップS21で指定されたプログラムのキー情報とに、追加することで、キー情報を更新する(ステップS28)。つまり、キー情報とは、1以上の識別情報から成るものである。
【0075】
ここで、キー情報の具体例を
図4に示す。
図示の例のキー情報は、3つの識別情報から成る。各識別情報には世代が対応付けられている。この世代は、新たな識別情報が追加される毎に、1,2,3,4、・・・等のように増加する。よって、図示の例では、世代‘1’の識別情報が最も古く、世代‘3’の識別情報が最新である。尚、世代‘1’の識別情報は、上記ステップS13で生成された識別情報であり、換言すれば新規キー情報生成時の識別情報である。
【0076】
尚、上記のように、共有データ定義の更新毎にキー情報に識別情報が追加されるので、最新の世代は、そのキー情報の版数を示すものと見做してもよい。
図4に示すキー情報は、第3版のキー情報と言える。また、仮に、世代‘1’の識別情報のみから成るキー情報があった場合には、それは初版のキー情報と言える。
【0077】
キー情報を例えば
図4のような構成とする理由は、後述する
図5の処理の際に利用する為である。
ここで、上記ステップS26の判定がYESになる場合、共有データ定義が更新されたことになるが、それはローカル環境における話であり、未だ共有データ定義の更新が確定したわけではない。この更新内容が、マスタ装置10側で管理している共有データDB13に反映されることで、当該共有データ定義の更新が確定することになる。しかしながら、上述したように、共有データ定義の更新を確定させてはならない場合がある。すなわち、同じ共有データ定義に関して、他のローカル端末20でも更新が行われていると共に、既にその更新内容が、マスタ装置10側に反映されている場合である。この様な場合には更新内容がマスタ装置10側に反映されないようにするのが、
図5の処理であり、その為に上記キー情報を用いる。
【0078】
以下、
図5の処理について説明する。
図5の処理は、マスタ装置10の処理であり、例えば任意のローカル端末20からアクセスがあり、例えば“取り込み”要求があった場合等に、開始される。尚、開始前に、要求元のローカル端末20にアクセス権を与えるようにしてよい。また、他のローカル端末20にアクセス権を与えている状態で上記要求があった場合には、要求を拒否する。
【0079】
尚、上記のことから、
図5の処理開始時点では、上記ローカル端末20側で更新された共有データ定義等を、取得済みまたは取得可能な状態となっている。取得可能な状態とは、例えば上記ローカル端末20とネットワークを介して通信可能な状態などである。
【0080】
尚、以下の説明においても、プログラムとは、1つの制御プログラムまたは制御プログラム群(プロジェクト)を意味するものとする。
尚、
図5の処理は、例えば共有データ定義支援部12が実行するが、この例に限らない。
【0081】
図5の処理例では、まず、更新対象とするPLCに係わるプログラムと共有データ定義とを、作業者等に指定させて(ステップS31、S32)、これらをコピーして取り込む。尚、
図2の例では、編集対象としてローカル端末20側に持ち出されたのはPLC1プログラムのみであるので、ステップS31で指定し得るのはPLC1プログラムのみとなるが、複数のプログラムが持ち出されていた場合には、ステップS31ではその中から作業者が所望のプログラムを選択・指定することになる。
【0082】
また、ステップS32では、作業者は、ステップS31で指定したプログラムと同じPLCに係わる共有データ定義を指定することになるが、正しく指定できるとは限らない。この為、本例では、ステップS31で指定されたプログラムのキー情報と、ステップS32で指定された共有データ定義のキー情報とが、一致するか否かを判定する(ステップS33)。そして、これらキー情報が不一致の場合には(ステップS33,NO)、更新不可の組み合わせである旨の警告メッセージを表示して(ステップS38)、本処理を終了する。あるいは、再びステップS31、32の指定作業を行わせる。
【0083】
尚、ステップS33の一致/不一致判定は、キー情報全体を比較して一致/不一致を判定するものであってもよいが、上記
図4で説明した“最新の世代”同士を比較して一致/不一致を判定するものであっても構わない。
【0084】
上記キー情報が一致する場合には(ステップS33,YES)、上記ステップS31、S32で指定されたプログラムと共有データ情報とが正しい組合せであると見做して、ステップS34以降の処理へ移行する。
【0085】
ステップS34では、マスタ側のキー情報が、更新側のキー情報に存在するか否かを判定する。これは、マスタ側のキー情報の識別情報全てが、更新側のキー情報内に存在するか否かを判定する。これは、例えば、まず、上記更新対象に係わるPLCに関してマスタ装置10側で保持しているプログラムまたは共有データ定義のキー情報を取得する。そして、取得したキー情報の識別情報全てが、上記ステップS33の判定に用いたキー情報に含まれているか否かを判定する。換言すれば、処理対象のPLCに係わるマスタ装置10側のキー情報の識別情報全てが、ローカル端末20側のキー情報に含まれているか否かを判定する。
【0086】
尚、上記更新側のキー情報は、ステップS32で指定された共有データ定義情報に付与されているキー情報である。
また、尚、ステップS34の処理では、最初に例えば、ステップS32で指定された共有データ定義情報に対応する、共有データDB13上の記憶領域を特定して、この記憶領域の共有データ定義情報に付与されているキー情報を、上記マスタ側のキー情報とする処理等が行われるものであってもよい。尚、この処理は、例えば、共有データDB(コピー)23は、共有データDB13のコピーであることから、ステップS32で指定された共有データ定義情報の格納アドレスを認識することで、共有データDB13において同じ格納アドレスの共有データ定義情報に付与されているキー情報を、上記マスタ側のキー情報とすればよい。
【0087】
上記ステップS34の処理について、
図6に示す具体例を参照して更に説明する。
図6に示す例では、2台のローカル端末20(ローカル端末Aとローカル端末B)で、ほぼ同時期に、同じPLCに係わるプログラムや共有データ定義の編集・更新が行われた場合を例にする。
【0088】
また、更新対象は、持ち出したプログラムに対応する共有データ定義であり、この共有データ定義のキー情報は、このプログラムのキー情報と同一であるものとする。尚、上記フローチャートではこれらが同一か否かをチェックする処理もあるが、基本的には同一となるので、ここでは同一であることを前提として説明する。
【0089】
尚、上記のように本例では、共有データ定義に関しては常に共有データDB13全体のコピーを持ち出すことになるが、これは更新対象以外の他の共有データ定義も参照等が行なわれる可能性があるからである。しかし、ここでは、説明の都合上、共有データDB13全体の持ち出しには言及せず、任意のPLCに係わるプログラムと共有データ定義とをセットで扱って説明するものとする。つまり、例えば、
図6(a)の図上左側に示すように、任意のPLCに係わる「プログラム&共有データ定義」を例えばプログラム等α等と記すものとする。また、これより、プログラム等αのコピーである後述するプログラム等(コピー)α’は、「プログラムのコピー&共有データ定義のコピー」を意味するものとする。
【0090】
既に述べたように、任意のPLCに係わるプログラムと共有データ定義とには同じキー情報が付与されるものであり、更に基本的には、プログラムの変更がある場合には共有データ定義も更新されるので、上記のようにセットで扱って説明しても特に問題はない。
【0091】
これより、まず、
図6(a)に示すように、マスタ端末10からローカル端末Aに任意のPLCに係わるプログラム等αのコピーα’を持ち出す。このとき、このプログラム等αのキー情報は、図示のように世代‘1’の識別情報(xxxx-0001)のみである。従って、このときにはローカル端末A側のおける上記プログラム等(コピー)α’のキー情報は、世代‘1’の識別情報(xxxx-0001)のみとなっている。
【0092】
また、これと同時期に、ローカル端末Bに関しても、上記ローカル端末Aの場合と略同様の処理が行われたものとする。すなわち、マスタ端末10からローカル端末Bへ、上記ローカル端末Aの場合と同じPLCに係わるプログラム等αのコピーα’を持ち出す。このとき、このプログラム等αのキー情報は、図示のように世代‘1’の識別情報(xxxx-0001)のみである。従って、このときにはローカル端末B側における上記プログラム等(コピー)α’のキー情報は、世代‘1’の識別情報(xxxx-0001)のみとなっている。
【0093】
その後、ローカル端末A、ローカル端末Bは、どちらも、その作業員と共に上記「現場」等に移動して、そこでプログラム等(コピー)α’の編集、更新作業等が行われ、これに伴ってキー情報も更新されたものとする。
【0094】
例えば、
図6(b)に示すように、ローカル端末Aにおいては、プログラム等(コピー)α’を編集/更新した結果である図示の“プログラム等α更新版A”が存在している。そして、“プログラム等α更新版A”に対応するキー情報は、世代‘2’の識別情報(xxxx-0002)が追加された状態となっている。
【0095】
同様に、ローカル端末Bにおいては、プログラム等(コピー)α’を編集/更新した結果である図示の“プログラム等α更新版B”が存在している。そして、“プログラム等α更新版B”に対応するキー情報は、世代‘2’の識別情報(xxxx-0003)が追加された状態となっている。
【0096】
尚、上記のように、ローカル端末Aとローカル端末Bとが同じ識別情報を生成することはないので、例えばこの例においてローカル端末Bにおいて識別情報(xxxx-0002)が生成されることはない。
【0097】
その後、まずローカル端末Aがネットワークに接続する等してマスタ装置10にアクセス可能な状態となり、上記
図5の処理が実行されたとする。この処理開始時には、ローカル端末A側のキー情報は上記のように識別情報(xxxx-0001)と識別情報(xxxx-0002)とから成り、マスタ装置10側のキー情報は、
図6(a)の状態のままであり識別情報(xxxx-0001)のみから成る。従って、この状態では、マスタ側の識別情報全て(xxxx-0001)が、ローカル端末A側のキー情報に存在していることになるので、上記ステップS34の判定はYESとなる。
【0098】
但し、ローカル側で更新が行われず、ローカル端末Aのキー情報が識別情報(xxxx-0001)のみから成る状態のままであっても、ステップS34の判定はYESとなる。この為、ステップS34の判定がYESとなったら、キー情報が更新されているか否かをチェックし(ステップS35)、更新されていない場合には(ステップS35,NO)、何等処理を行う必要はないので、更新不要である旨のメッセージを表示する等して、本処理を終了する。
【0099】
尚、上記ステップS35の判定は、例えば、マスタ装置10側のキー情報と、ローカル端末A側のキー情報とが一致するか否かを判定するものであり、一致する場合には更新されていない(ステップS35,NO)と判定される。
【0100】
ステップS34、S35の判定がYESの場合には、ローカル側の更新内容をマスタ側に反映させる処理を行う(ステップS36)。これは、上記の例では、例えば、マスタ装置10は、まず、ローカル端末A側の上記“プログラム等α更新版A”を取得する。換言すれば、編集/更新後の上記プログラム等α(プログラム&共有データ定義)を取得する。そして、取得した更新後の共有データ定義を、共有データDB13における該当領域に上書き格納することで、マスタ装置10が管理する共有データ定義を更新する。また、取得した編集後のプログラムを、既存のプログラムに置き換えることで、マスタ装置10が管理するプログラムを更新する。また、これら取得したプログラムや共有データ定義に付与されるキー情報は、例えば上記識別情報(xxxx-0001)と識別情報(xxxx-0002)とから成るものであるので、マスタ側のキー情報は
図6(c)に示す状態となる。
【0101】
この状態で、その後、ローカル端末Bがネットワークに接続する等して、上記
図5の処理が実行されたとする。この処理開始時には、上記の通り、マスタ装置10のキー情報は
図6(c)に示す状態となっている。よって、この場合、上記ステップS34の処理では、マスタ側のキー情報である識別情報(xxxx-0001)と識別情報(xxxx-0002)のなかで識別情報(xxxx-0002)は、ローカル端末B側のキー情報に存在していないことになる。すなわち、ローカル端末B側のキー情報は識別情報(xxxx-0001)と識別情報(xxxx-0003)とから成るので、識別情報(xxxx-0002)は、ローカル端末B側のキー情報に存在していない。従って、ステップS34の判定はNOとなる。
【0102】
このため、ローカル端末Bにおけるプログラムや共有データ定義の更新内容は、マスタ側に反映されることはない。もし、この反映が行われた場合、ローカル端末Aにおける更新内容が無くなる可能性があったが、その可能性は無くなることになる。
【0103】
上記例のようにローカル端末Bに関してはステップS34の判定がNOとなった場合には、改めて、マスタ装置10のプログラムや共有データDB13をローカル端末Bに持ち出して、これに基づいてローカル端末B側で編集・更新等を行えばよい。この場合には、マスタ装置10から持ち出した共有データ定義は、既にローカル端末Aによる更新内容が反映済みである。よって、これをベースにしてローカル端末Bで任意の更新を行っても問題は生じない。また、この場合には、
図5の処理を行うと、ローカル端末B側のキー情報は、既存の識別情報(xxxx-0001)及び識別情報(xxxx-0002)と、新たに生成された例えば識別情報(xxxx-0004)とから成るので、マスタ側のキー情報の識別情報(xxxx-0001)と識別情報(xxxx-0002)は全て存在しているので、ステップS34の判定はYESとなる。
【0104】
尚、上記ローカル端末A,Bが“更新する側”、マスタ装置10が“更新される側”と見做すこともできる。この場合、上記ステップS34は、“更新する側”が保持するキー情報に、“更新される側”が保持するキー情報が含まれているか否かを判定するものと言える。そして、ステップS34がYESとなる場合には、“更新する側”の共有データ定義は、“更新される側”の共有データ定義を元に編集されたものであると見做して、更新の実施を許可するものと言える。
【0105】
次に、共有データDBのデータ構造と共有データ定義の設定について説明する。
図7(a)に共有データDB13(23)のデータ構造を示す。
図7(b)には共有データ定義の設定入力画面例を示す。
【0106】
例えば
図7(a)に示すように、共有データDB13(23)におけるデータ構造は、まず、PLC一覧があり、マスタ装置10による管理対象となる複数の(例えばM台の)PLCのPLC名一覧等が登録されている。各PLC名毎に対応付けて、該当するプロジェクト名が登録されている。これは、上述したように、各PLC毎に、そのPLCに係わるプログラム群をまとめてプロジェクトとして扱っているので、1つのPLCに対して1つのプロジェクトが対応付けられることになる。また、上述したように、1つのプロジェクトに対して1つのキー情報が割り当てられるので、図示のように、任意のPLC名に関連付けて、そのPLCのプロジェクトに係わるキー情報が登録される。尚、キー情報の詳細は、
図4に示しており、ここでは説明しない。
【0107】
そして、各PLC名に対応して、そのPLCのプロジェクト(プログラム群)で使用される各種変数の変数名が登録されている。そして、各変数名に関連付けて、その変数に関する所定の付随情報が登録されている。所定の付随情報とは、例えば図示のデータ型、コメント等であるが、更に詳しくは
図7(b)に示す各種データ項目のデータである。尚、変数は、ここでは特に共有変数である。
【0108】
図7(b)は、上記各変数に関する所定の付随情報を、ユーザに任意に入力させる為の画面例である。尚、この画面の表示や画面上でのユーザ入力に係わる処理は、例えば、共有データ定義支援部12が行うが、この例に限らない。
【0109】
ここで、
図7(b)の画面で入力する情報が、上記共有データ定義の一例に相当すると見做してよい。ユーザは、この画面上で、共有データに係わる変数(共通変数)に関して、その変数名、データ型、コメント、その変数のデータを共有メモリからリードするPLC、ライトするPLC等などを入力する。すなわち、図示の共通変数名、データ型、コメント、各PLC名毎のR/W区別等の各データ項目に対して、ユーザは任意のデータを入力する。
【0110】
上述したように、本例の共有データ定義支援システムは、基本的に、1台のマスタ装置10で、複数のPLCのプロジェクトを記憶・管理すると共に、共有データ定義情報を記憶管理する。更に、複数台のローカル端末20それぞれにおいて、任意のPLCに係わるプロジェクト(プログラム群)の編集や、それに関連する共有データ定義情報の更新等を、作業者が任意に行うものである。
【0111】
尚、以下の説明では、再び、プログラムは、制御プログラムまたはプロジェクト(制御プログラム群)を意味するものとする。
本手法では、上記システムにおいて、特に、ローカル端末20が、任意のPLCのプログラムおよび共有データ定義情報を、マスタ装置10からコピーして持ち出し、オフライン環境下等において上記編集/更新等の作業を行う場合において、顕著な効果を奏するものである。
【0112】
すなわち、まず、編集可能なプログラムと共有データ定義情報との組合せを特定することができる。これは、例えば上記ステップS23の判定処理のように、指定された組合せが“編集可能な組合せ”であるか否かを判定し、編集不可の組合せの場合には編集を許可しないものである。これによって、誤った組合せで編集が行われてしまうことを防止できる。
【0113】
尚、ステップS21〜S23やステップS31〜S33の代わりに、任意のプログラムを指定させたら、当該指定されたプログラムに対応する共有データ定義情報を判別して、両者の組み合わせに対して編集・更新を許可するようにしてもよい。このように、ユーザがプログラムと共有データ定義情報の両方を指定しなくても済み、且つ、正しい組合せで編集・更新作業が行われるようにすることもできる。
【0114】
また、尚、ステップS21〜S23やステップS31〜S33の処理、あるいは上記編集・更新対象のプログラムと共有データ定義情報の組合せを自動的に決定する処理等は、必須ではない。また、これに伴って、プログラムにもキー情報を付与することも必須ではなく、キー情報は共有データ定義情報のみに付与するようにしても構わない。勿論、この場合でも上記ステップS34、S35の処理は行われる。
【0115】
また、
図1に示す例に限らず、例えば、共有データDB13全体に対して1つのキー情報のみを付与するようにしても構わない。つまり、この場合、基本的に、「持ち出し」を行ったローカル端末20側では、共有データDB(コピー)23の全ての共有データ定義情報の更新を行えることになる。但し、この場合、同時期に自己とは異なるPLCのプログラムを編集した他のローカル端末20が、先に「取り込み」を成功させた場合には、自己は「取り込み」失敗となることになる。尚、これに伴って、共有データDB13のデータ構造も、
図1に示すような各PLCに応じた各記憶領域とする例に限らず、
図9に示す従来例と同様であっても構わない。
【0116】
更に、任意のPLCのプログラムに関して、同時期に複数のローカル端末20で上記「持ち出し」が行われた場合、そのうちの1台のローカル端末20によるオフラインでの編集・更新内容が、マスタ装置10側に反映された場合には、その後、他のローカル端末20によるオフラインでの編集・更新内容は、マスタ装置10側に反映されないように制御できる。これにより、マスタ装置10側で管理する共有データ定義情報が、誤った内容となってしまうことを防止可能となる。つまり、ローカル環境で複数のローカル端末20側で同時期に共有データ定義の更新作業が行われる場合であっても、マスタ装置10側の共有データ定義の整合性を保つことができる。
【0117】
更に、上記効果が得られることで、例えば、各PLCに応じて別々のローカル作業環境でプログラミング作業等を同時並行で進めることができ、プログラミング作業の効率化を図れるという効果を有する。
【0118】
PLCに関するプログラミング作業を実施する場合、変数とプログラムの情報は、PLC単位で1つのプロジェクトとして管理されている。そこで、複数のPLCで共有する変数(共通変数)に関する情報を管理する共有データ定義支援部12を、マスタ装置10
に設けている。尚、プログラミング支援部11は、単に、マスタ装置10においてもプログラムの編集が可能というものであり、ここでは特に説明しない。
【0119】
共有データ定義支援部12(22)は、上述した本手法に係わる各種処理を実行するものであり、換言するならば、
図1や
図8に示す各種機能部の全部又は一部の処理機能を有するものと見做してもよいが、この例に限らない。
【0120】
図8は、マスタ装置10とローカル端末20の機能ブロック図である。尚、上記のことから、これは、共有データ定義支援部12と共有データ定義支援部22の機能が含まれているものと見做しても構わない。
【0121】
図示の例では、まず、マスタ装置10は、各PLCに対応して、そのPLCに係わるプログラムと“所定のキー情報が付与された共有データ定義情報”とを記憶する第1記憶部31を有する。
【0122】
また、ローカル端末20は、持出部41、定義・キー更新部42等を有する。
持出部41は、任意のPLCに係わるプログラムと共有データ定義情報のコピー等を、マスタ装置10から取得する。定義・キー更新部42は、持出部41で取得した共有データ定義情報に対して任意の更新を行わせると共に、該更新に伴って当該共有データ定義情報に付与されている上記キー情報を更新する。
【0123】
そして、マスタ装置10は、更に、許可判定部32を有する。
許可判定部32は、上記定義・キー更新部42によって更新された後の共有データ定義情報によって、第1記憶部31に記憶される共有データ定義情報を更新することを許可するか否かを、キー情報に基づいて判定する。つまり、マスタ装置10側のキー情報と、ローカル端末20側で上記のように更新されたキー情報とに基づいて、許可/不許可を判定する。
【0124】
尚、図示していないが、マスタ装置10も上記定義・キー更新部42と同様の処理機能を有していても構わない。尚、以下の説明において、定義・キー更新部42と、マスタ装置10における同様の処理機能とを、特に区別することなく説明する場合には「定義・キー更新部42等」と記すものとする。
【0125】
ここで、既に述べたように、キー情報は、例えば
図4で説明したように1以上の固有の識別情報から成るものである。
そして、上記定義・キー更新部42は、新たな識別情報を生成して該識別情報をキー情報に追加することで、上記キー情報の更新を行うものである。
【0126】
そして、上記許可判定部32は、マスタ装置10側で保持するキー情報の全ての識別情報が、ローカル端末20側のキー情報に存在する場合には、許可すると判定する。
ここで、本手法では、任意のローカル端末20の上記定義・キー更新部42による上記共有データ定義情報とキー情報の更新処理は、そのローカル端末20がマスタ装置10と接続できない環境下で行われることを、主に想定している。つまり、上記「現場」等のローカル環境で行われることを、主に想定している。
【0127】
また、上述した
図1等に示す一例のように、上述した各PLCに対応する各共有データ定義情報に付与されるキー情報を、該当するプログラムにも付与するようにしてもよい。つまり、任意のPLCに係わるプログラムと共有データ定義情報とには、同一のキー情報が付与されるようにしてもよい。尚、ここでも、プログラムとは、制御プログラムまたは制御プログラム群(プロジェクト)を意味するものとする。
【0128】
そして、例えば、上記定義・キー更新部42は、共有データ定義情報のキー情報の更新の際に、同じPLCに係わるプログラムのキー情報も同様に更新するようにしてもよい。つまり、例えば、上記生成した新たな識別情報を、共有データ定義情報のキー情報だけでなくプログラムのキー情報にも追加するようにしてもよい。
【0129】
また、ローカル端末20は、更に、指定部43、編集許可部44等を有するものであってもよい。
指定部43は、編集対象とするプログラムと共有データ定義情報を、作業者等に任意に指定させる。
【0130】
編集許可部44は、指定部43により指定されたプログラムのキー情報と、指定部43により指定された共有データ定義情報のキー情報とが、同一ではない場合には、編集を許可しない。つまり、プログラムの編集や共有データ定義情報の更新を許可しない。この様に、指定されたプログラムと共有データ定義情報とが正しい組合せである場合、つまり同一のPLCに係わるものである場合、これらの編集/更新が許可される。
【0131】
また、例えば、上記第1記憶部31は、全てのPLCに係わる共有データ定義情報を格納する共有データDB13を有するものであってもよい。そして、持出部41は、該共有データDB13のコピーを取得するものであってもよい。この例の場合、ローカル端末20は、編集対象とするプログラムを任意に指定させる不図示の指定部と、共有データDB13のコピーにおける各共有データ定義情報のなかで、該不図示の指定部で指定されたプログラムのキー情報と同一のキー情報が付与された共有データ定義情報のみ、その更新を許可する不図示の許可部とを、有するものであってもよい。
【0132】
尚、上記「定義・キー更新部42等」は、例えば、自装置において任意のPLCに係わる共有データ定義情報が生成/更新される毎に、これに付与される一意の情報(上記キー情報等)を新規生成/更新するものである。新規生成は、主にマスタ装置10において行われる。つまり、マスタ装置10は、自装置において任意のPLCに係わる共有データ定義情報が新たに生成される毎に、それに対応する新規キー情報を新規生成する。一方、更新は、主に、各ローカル端末20の定義・キー更新部42が実行する。つまり、定義・キー更新部42は、自装置において任意のPLCに係わる共有データ定義情報が更新される毎に、それに対応するキー情報を更新する。キー情報の更新方法は、既に述べたように、任意に生成した固有の識別情報を、キー情報に追加するものである。
【0133】
また、上記許可判定部32は、任意のローカル端末20から例えば「ローカル環境で更新された、任意のPLCに係わる共有データ定義情報を、マスタ装置10側に反映させる」旨の要求があった場合、この要求に対して上記のように許可/不許可を判定する。
【0134】
この判定方法は、既に述べたように、例えば、マスタ側の共有データ定義情報のキー情報の全ての識別情報が、ローカル側の共有データ定義情報のキー情報に存在する場合には、許可するものと判定する。換言すれば、この様な場合には、ローカル側の共有データ定義情報は、現在のマスタ側の共有データ定義情報を元に編集されたものである
と見做して、更新を許可する。これによって、マスタ側で記憶・管理する共有データ定義情報に対して、誤った上書きが行われる事態を防止することができる。
【0135】
また、マスタ装置10は、更に、更新実施部33を有するものであってもよい。
更新実施部33は、上記許可判定部32で許可すると判定された場合には、更新する側(ローカル側)の共有データ定義情報によって、更新される側(マスタ側)の共有データ定義情報を更新する。これは、例えば、既存のマスタ側の共有データ定義情報は消去して、ローカル側の共有データ定義情報を、新たなマスタ側の共有データ定義情報とする。尚、これに伴って、マスタ側のキー情報が、ローカル側の共有データ定義情報のキー情報に置き換えられる。また、尚、上記マスタ側の共有データ定義情報の更新は、例えば、指定されたPLCに係わる共有データ定義情報を更新するが、この例に限らない。例えば、DB13全体を、DB23の内容へと更新するようにしてもよい。
【0136】
また、上記のようにプログラムにもキー情報を付与して、プログラムと共有データとの正当な組合せをキー情報に基づいて管理することで、誤った組み合わせで更新等が行われる事態を回避できる。また、例えば、管理していない別ツールでプロジェクト変更が行われた場合や、古い共有データ定義情報を元に編集した場合、キーの組み合わせが異なるので、共有データの更新を防止することが可能になる。つまり、作業者が誤って、異なる組み合わせによって、共有データ定義情報を更新するような事態を防止することができる。
【0137】
尚、特に図示していないが、マスタ装置10は、更に、複数のプログラマブルコントローラの各プログラムを管理する機能部(プログラミング支援部11に相当)を有していても良い。あるいは、複数のプログラマブルコントローラで共有する変数(共通変数)に関する定義情報を、任意に設定させる機能部を有していてもよい。これは、例えば
図7(b)に示す画面により、作業者等に任意に設定させるものである。上記定義情報は、例えば、変数名、変数に係わるプログラマブルコントローラ、変数の割当アドレス等などである。変数に係わるプログラマブルコントローラは、変数の割当アドレスにアクセスするPLCであり、リードまたはライトするものである。
【0138】
上述したように、本例の共有データ定義支援システム等によれば、共有データ定義を管理するマスタ装置10と、該共有データ定義の更新に係わる作業が行われる複数のローカル端末20とを有するシステムにおいて、ローカル環境で複数のローカル端末20で各々共有データ定義の更新作業が行われる場合であっても、マスタ装置10側の共有データ定義の整合性を保つことができる。