(57)【要約】【課題】ローカル環境でローカル端末側での共有データ定義の更新作業が行われる場合であっても、マスタ装置側の共有データ定義の整合性を保つことができる。【解決手段】マスタ装置１０の許可判定部３２は、定義・キー更新部４２によってローカル端末２０側で更新された後の共有データ定義情報によって第１記憶部３１に記憶される共有データ定義情報を更新することを、許可するか否かを、キー情報に基づいて判定する。つまり、マスタ装置１０側のキー情報と、ローカル端末２０側で更新されたキー情報とに基づいて、マスタ装置１０側で管理する共有データ定義情報を、ローカル端末２０側で更新後の共有データ定義情報に置き換えることを、許可するか否かを判定する。【選択図】図８
2015018349.tif 000002
【特許請求の範囲】
【請求項１】
各制御装置の各プログラムと該各プログラムに係る共有データ定義情報を記憶・管理するマスタ装置と、各々が任意のときに該マスタ装置上の任意の該プログラム又は／及び該共有データ定義情報を更新し得る複数のローカル端末とを有するシステムであって、
前記マスタ装置は、
前記各制御装置に対応して、その制御装置に係わる前記プログラムと所定のキー情報が付与された前記共有データ定義情報とを記憶する第１記憶手段を有し、
前記ローカル端末は、
任意の前記制御装置に係わる前記プログラムと前記共有データ定義情報を、前記マスタ装置から取得する持出手段と、
該持出手段で取得した共有データ定義情報に対して任意の更新を行わせると共に、該更新に伴って前記付与されているキー情報を更新する定義・キー更新手段とを有し、
前記マスタ装置は、
前記定義・キー更新手段によって更新された後の共有データ定義情報によって前記第１記憶手段に記憶される共有データ定義情報を更新することを、許可するか否かを、前記キー情報に基づいて判定する許可判定手段を、更に有することを特徴とする共有データ定義支援システム。
【請求項２】
前記キー情報は、１以上の固有の識別情報から成り、
前記定義・キー更新手段は、新たな前記識別情報を生成して該識別情報をキー情報に追加することで前記キー情報の更新を行い、
前記許可判定手段は、前記マスタ装置側のキー情報の全ての識別情報が、前記ローカル端末側のキー情報に存在する場合には、許可すると判定することを特徴とする請求項１記載の共有データ定義支援システム。
【請求項３】
前記定義・キー更新手段による前記共有データ定義情報とキー情報の更新処理は、前記マスタ装置と接続できない環境下で行われることを特徴とする請求項１または２記載の共有データ定義支援システム。
【請求項４】
任意の前記制御装置に係わる前記プログラムと前記共有データ定義情報とには同一の前記キー情報が付与され、
前記定義・キー更新手段は、前記共有データ定義情報のキー情報の更新の際に、同じ制御装置に係わるプログラムのキー情報も更新することを特徴とする請求項１〜３の何れかに記載の共有データ定義支援システム。
【請求項５】
前記ローカル端末は、
編集対象とするプログラムと共有データ定義情報を任意に指定させる指定手段と、
該指定されたプログラムの前記キー情報と、該指定された共有データ定義情報の前記キー情報とが、同一ではない場合には、編集を許可しない編集許可手段と、
を更に有することを特徴とする請求項１〜４の何れかに記載の共有データ定義支援システム。
【請求項６】
前記第１記憶手段は、全ての前記制御装置に係わる共有データ定義情報を格納する共有データ定義データベースを有し、
前記持出手段は、該共有データ定義データベースのコピーを取得するものであり、
前記ローカル端末は、
編集対象とするプログラムを任意に指定させる指定手段と、
前記共有データ定義データベースの各共有データ定義情報のなかで、該指定手段で指定されたプログラムのキー情報と同一のキー情報が付与された共有データ定義情報のみ、その更新を許可する許可手段と、
を更に有することを特徴とする請求項１〜４の何れかに記載の共有データ定義支援システム。
【請求項７】
各制御装置の各プログラムと該各プログラムに係る共有データ定義情報を記憶・管理するマスタ装置と、各々が任意のときに該マスタ装置上の任意の該プログラム又は／及び該共有データ定義情報を更新し得る複数のローカル端末とを有するシステムにおける該マスタ装置であって、
前記各制御装置に対応して、その制御装置に係わる前記プログラムと所定のキー情報が付与された前記共有データ定義情報とを記憶する第１記憶手段と、
前記ローカル端末で更新された後の共有データ定義情報によって前記第１記憶手段に記憶される共有データ定義情報を更新することを、許可するか否かを、前記キー情報に基づいて判定する許可判定手段と、
を有することを特徴とするマスタ装置。
【請求項８】
各制御装置の各プログラムと該各プログラムに係る共有データ定義情報を記憶・管理するマスタ装置と、各々が任意のときに該マスタ装置上の任意の該プログラム又は／及び該共有データ定義情報を更新し得る複数のローカル端末とを有するシステムにおける該ローカル端末であって、
任意の前記制御装置に係わる前記プログラムとキー情報が付与された前記共有データ定義情報とを、前記マスタ装置から取得する持出手段と、
該持出手段で取得した共有データ定義情報に対して任意の更新を行わせると共に、該更新に伴って前記付与されているキー情報を更新する定義・キー更新手段と、
を有することを特徴とするローカル端末。
【請求項９】
各制御装置の各プログラムと該各プログラムに係る共有データ定義情報を記憶・管理するマスタ装置と、各々が任意のときに該マスタ装置上の任意の該プログラム又は／及び該共有データ定義情報を更新し得る複数のローカル端末とを有するシステムにおける該マスタ装置のコンピュータを、
前記各制御装置に対応して、その制御装置に係わる前記プログラムと所定のキー情報が付与された前記共有データ定義情報とを記憶する第１記憶手段と、
前記ローカル端末で更新された後の共有データ定義情報によって前記第１記憶手段に記憶される共有データ定義情報を更新することを、許可するか否かを、前記キー情報に基づいて判定する許可判定手段、
として機能させるためのプログラム。
【請求項１０】
各制御装置の各プログラムと該各プログラムに係る共有データ定義情報を記憶・管理するマスタ装置と、各々が任意のときに該マスタ装置上の任意の該プログラム又は／及び該共有データ定義情報を更新し得る複数のローカル端末とを有するシステムにおける該ローカル端末のコンピュータを、
任意の前記制御装置に係わる前記プログラムとキー情報が付与された前記共有データ定義情報とを、前記マスタ装置から取得する持出手段と、
該持出手段で取得した共有データ定義情報に対して任意の更新を行わせると共に、該更新に伴って前記付与されているキー情報を更新する定義・キー更新手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプログラマブルコントローラの共有データの定義情報の更新方法などに関する。
【背景技術】
【０００２】
例えば、特許文献１には、複数のＰＬＣ（プログラマブルコントローラ）の共有データを管理する共有データ定義支援装置が、開示されている。共有データの管理とは、例えば、共有メモリへの共通変数とアドレス割り付け等である。よく知られているように、共有メモリには、複数のＰＬＣで共有される変数（共通変数）に係わるデータが格納されるものであり、その格納アドレスが割り当てられる。
【０００３】
ここで、複数のＰＬＣのプログラムを開発／編集等する場合は、規模が大きい場合、複数の作業者で分担して作業実施する場合がある。複数の作業者が並行してこの様なプログラミング作業を実施すると共に、それに伴って共有データ定義を更新する場合がある。この為、複数の作業者で並行してプログラミング作業等を実施しても、共有データ定義の整合性を保てるようにする必要がある。これを実現するシステム構成例を、図９に示す。
【０００４】
尚、本説明においてプログラムとは、基本的に、ＰＬＣのプログラム、すなわち制御プログラムを意味するものとし、ＰＬＣプログラムと記す場合もあれば、単にプログラムと記す場合もあるものとする。
【０００５】
尚、共有データ定義とは、共通変数に係わる所定の各種情報であり、例えば、上記共通変数の変数名、割当アドレス、書込みを行うＰＬＣ、読出しを行うＰＬＣ等である。共有データ定義の更新は、例えば、これら各種情報の修正や、新たな共通変数の追加や、既存の共通変数の削除等である。例えば、プログラムに新たな共通変数が追加されたならば、それに伴って、共有データ定義には、この新たな共通変数に係わる上記各種情報を、追加することになる。
【０００６】
図９は、従来のプログラマブルコントローラのプログラム開発システムの具体例である。
図９のＰＬＣプログラム開発システムでは、マスタ装置１１０と、複数のローカル端末１２０とが、ネットワーク１００に接続している。尚、図では、ローカル端末１２０は１つのみ示すが、実際には上記の通り複数存在する。
【０００７】
複数のローカル端末１２０は、上記複数の作業者が各々上記プログラミング作業や共有データ定義の更新作業等を行うための情報処理装置である。各作業者は、任意のローカル端末１２０を用いて、自己が担当するプログラミング作業を実施する。尚、上記のように作業を分担するので、任意の１台のＰＬＣに係わるプログラミング作業を、複数の作業者が分担して行う場合も有り得る。
【０００８】
マスタ装置１１０が、複数のＰＬＣのプログラムや共有データ定義を、一元管理する。
上記各作業者は、自己のローカル端末１２０からネットワーク１００を介してマスタ装置１１０にアクセスして、任意のプログラムの編集作業やそれに伴う共有データ定義の更新作業を行う。複数のＰＬＣに係わる各共有データ定義が、マスタ装置１１０が備える図示の共有データＤＢ１１３に格納されて一元管理されている。
【０００９】
任意の共有データ定義情報にアクセスする場合、作業者は、その更新作業を開始する前に、マスタ装置１１０が有する“共有データＤＢ１１３を管理する機能”（不図示の構成管理ツール）から、アクセス権を獲得する必要がある。アクセス権を所有した作業者（仮に作業者Ａとする）だけが共有データ定義の更新が可能になる。
【００１０】
よって、アクセス権を所有した作業者Ａが共有データ定義の更新を行っている最中に、他の作業者が共有データ定義の更新を行うことはない。他の作業者は、後に、上記作業者Ａによって更新された後の共有データ定義に対して、更に更新を行うことは出来る。逆に言えば、作業者Ａによる更新前の共有データ定義に基づいて更新を行うことは出来ない。これは、換言すれば、作業者Ａによる更新内容を無視するような形で更新することは出来ないことになる。これは、共有データ定義の整合性を保つことが出来るものと言うことができる。
【００１１】
従来では、この様にして、複数の作業者で並行してプログラミング作業を実施しても、共有データ定義の整合性を保つようにしていた。
尚、図示の例では、例えば、マスタ装置１１０は、プログラミング支援部１１１、共有データ定義支援部１１２等の各種処理機能部を有する。プログラミング支援部１１１は、例えばＰＬＣプログラム編集部１１１ａを有する。ＰＬＣプログラム編集部１１１ａは、ユーザによる任意のＰＬＣプログラムに関する任意の編集作業を支援する。このプログラム編集作業に伴う共有データの更新作業は、共有データ定義支援部１１２内の共有データ定義設定部１１２ａが支援する。また、マスタ装置１１０は、共有データＤＢ（データベース）１１３を有している。共有データＤＢ１１３には、上記の通り、各ＰＬＣプログラムに係わる各種共有データ定義情報が格納される。換言すれば、マスタ装置１１０は、全てのＰＬＣに係わる共有データ定義情報を一元管理している。
【００１２】
ここで、図示の例では、各ＰＬＣプログラムは、ＰＬＣ単位で管理されている。例えば、図示のように、ＰＬＣ１用のプログラムである図示の３つのプログラム（１，２，３）を、グループ化して管理しており、このグループを“プロジェクト”と呼んでいる。他のＰＬＣについても略同様であり、例えば、ＰＬＣ２用のプログラム群である図示のＰＬＣ２プロジェクト、ＰＬＣｎ用のプログラム群である図示のＰＬＣｎプロジェクト等が、マスタ装置１１０で格納・管理されている。
【００１３】
各プログラムの編集作業は、上記ＰＬＣプログラム編集部１１１ａによって行うことも出来るし、各ローカル端末１２０で行うことも出来る。各ローカル端末１２０には、後述するＰＬＣプログラム編集部１２１ａが備えられている。
【００１４】
尚、上記編集作業は、このプロジェクト単位で行うものであってよいが、これに限らず、プログラム単位で行っても良い。図示の例では、プロジェクト単位で編集を行う例を示す。尚、これは、ＰＬＣ単位で編集を行うものと同義と見做してもよい。
【００１５】
また、各ローカル端末１２０は、上記プログラミング支援部１１１、共有データ定義支援部１１２と同等の処理機能部である図示のプログラミング支援部１２１、共有データ定義支援部１２２を有している。勿論、プログラミング支援部１２１は、上記ＰＬＣプログラム編集部１１１ａに相当するＰＬＣプログラム編集部１２１ａを有している。共有データ定義支援部１２２も、上記共有データ定義設定部１１２ａに相当する共有データ定義設定部１２２ａを有している。
【００１６】
尚、図９では、任意のローカル端末１２０において、作業者が、ＰＬＣプログラム編集部１２１ａに支援されながらＰＬＣ１プロジェクトの編集を任意に行っている状態を、一例として示している。また、作業者は、この編集作業に伴う共有データ定義の設定・更新等を、共有データ定義設定部１２２ａを介して行っている。その際、上述したように、共有データ定義の整合性は保たれるようになっている。これは、ネットワーク１００経由でマスタ装置１１０の上記不図示の構成管理ツールを利用することにより実現される。
【００１７】
尚、マスタ装置１１０は例えばサーバ装置等であり、ローカル端末１２０は例えばパソコン等である。
上記のように、従来では、例えば、複数の作業者で共有データ定義情報の整合性を保つようにして管理する技術として、構成管理ツールによって一元管理された共有データ定義を、ネットワーク経由でアクセス権を得て編集する仕組みが考えられている。
【先行技術文献】
【特許文献】
【００１８】
【特許文献１】特許４５４１４３７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１９】
上述したように、従来の例えば図９に示すシステム構成では、各ローカル端末１２０が、ネットワーク経由でマスタ装置１１０の上記不図示の構成管理ツールを利用してプログラム編集作業や共有データ定義の設定・更新等を行うことで、複数の作業者で並行してプログラミング作業を実施しても、共有データ定義の整合性を保つようにしていた。
【００２０】
しかしながら、現実には、ローカル端末１２０におけるプログラミング作業を、ネットワーク経由で構成管理ツールを利用しながら行うことが、出来ない場合がある。換言すれば、上記アクセス権を保持してプログラムの編集や共有データ定義の更新等を行うことが、出来ない状況があり得る。例えば任意の作業者が、自己のローカル端末１２０を現地に持っていき、そこでプログラムの編集作業やそれに伴う共有データの更新作業を行う必要がある場合がある。この様な場合、現地でネットワーク１００に接続出来ない場合がある。尚、“現地”とは、例えばプログラミング作業対象のＰＬＣの設置場所等である。
【００２１】
この様な状況において、共有データ定義情報の整合性を保つ方法として、例えば現地に行く前にアクセス権を取得しておき、現地から戻ってきたら編集・更新内容をマスタ装置１１０に反映させて、アクセス権を放すようにすることが考えられる。しかしながら、この方法では、現地に行ってから戻ってくる間の長時間、他の作業者はアクセス権を取得できないことになり、他の作業者は長時間、共有データ定義の設定・更新等を行えないことになる。よって、この方法は、現実的ではない。
【００２２】
この為、例えば、現地に行く前にアクセス権を取得するようなことは、行わないようにする方法も考えられる。すなわち、この方法では、作業者は、現地に行く前に、自己のローカル端末１２０をマスタ装置１１０に接続して、共有データ定義のコピーを取得する（アクセス権は取得しない）。そして、現地で共有データ定義（コピー）の変更作業等を実施する。その後、構成管理ツールが利用できる環境に移動したら、すなわちマスタ装置１１０に接続可能な環境に移動したら、マスタ装置１１０に接続して、アクセス権を取得し、現地で実施した変更内容を反映させる。これは、例えば、共有データＤＢ１１３に格納される既存の共有データ定義を、変更後の共有データ定義に置き換える（上書きする）。
【００２３】
しかしながら、この方法では、コピーした時点からアクセス権を取得するまでの間に、他の作業者が共有データＤＢ１１３の共有データ定義の変更を実施している可能性がある。この様なケースでは、本来は、他の作業者によって変更後の共有データ定義に基づいて、変更等を行うべきものである。この為、他の作業者が変更を行っている状況にも係わらず上記上書きを行った場合には、他の作業者による変更内容が削除されてしまう可能性がある。
【００２４】
この為、従来では、例えば、ローカル端末１２０は、上記構成管理ツールを利用して、上記アクセス権を取得する際に最新の共有データ定義を獲得する。これより、作業者は、最新の共有データ定義の内容を把握して、他の作業者による変更内容が削除されないようにしつつ現地で変更した内容を手動で反映させる作業を行っていた。この為、作業者の手間が掛かると共に、共有データ定義の変更内容に何らかのミスが生じる可能性がある。
【００２５】
本発明の課題は、共有データ定義を管理するマスタ装置と、該共有データ定義の更新に係わる作業が行われる複数のローカル端末とを有するシステムにおいて、ローカル環境でローカル端末側での共有データ定義の更新作業が行われる場合であっても、マスタ装置側の共有データ定義の整合性を保つことができる共有データ定義支援システム等を提供することである。
【課題を解決するための手段】
【００２６】
本発明の共有データ定義支援システムは、各制御装置の各プログラムと該各プログラムに係る共有データ定義情報を記憶・管理するマスタ装置と、各々が任意のときに該マスタ装置上の任意の該プログラム又は／及び該共有データ定義情報を更新し得る複数のローカル端末とを有するシステムであって、下記の構成要素を有する。
【００２７】
前記マスタ装置は、各制御装置に対応して、その制御装置に係わるプログラムと所定のキー情報が付与された共有データ定義情報とを記憶する第１記憶手段を有する。
前記ローカル端末は、任意の制御装置に係わる前記プログラムと前記共有データ定義情報を、前記マスタ装置から取得する持出手段と、該持出手段で取得した共有データ定義情報に対して任意の更新を行わせると共に、該更新に伴って前記付与されているキー情報を更新する定義・キー更新手段とを有する。
【００２８】
前記マスタ装置は、更に、前記定義・キー更新手段によって更新された後の共有データ定義情報によって前記第１記憶手段に記憶される共有データ定義情報を更新することを、許可するか否かを、前記キー情報に基づいて判定する許可判定手段を有する。
【発明の効果】
【００２９】
本発明の共有データ定義支援システム等によれば、共有データ定義を管理するマスタ装置と、該共有データ定義の更新に係わる作業が行われる複数のローカル端末とを有するシステムにおいて、ローカル環境でローカル端末側での共有データ定義の更新作業が行われる場合であっても、マスタ装置側の共有データ定義の整合性を保つことができる。
【図面の簡単な説明】
【００３０】
【図１】本例の共有データ定義支援システムの構成図である。
【図２】マスタ装置における新規プログラム作成の際の処理フローチャート図である。
【図３】ローカル端末側の編集作業等の際の処理フローチャート図である。
【図４】キー情報の具体例である。
【図５】マスタ装置における共有データ定義情報の更新に係わる処理フローチャート図である。
【図６】（ａ）〜（ｃ）は、キー情報更新の具体例である。
【図７】共有データ定義情報に関して、（ａ）はデータ構造例、（ｂ）は設定画面例である。
【図８】共有データ定義支援部の機能ブロック図である。
【図９】従来のプログラマブルコントローラのプログラム開発システムの具体例である。
【発明を実施するための形態】
【００３１】
以下、図面を参照して、本発明の実施の形態について説明する。
図１は、本例の共有データ定義支援システムの構成図である。
図示の共有データ定義支援システムは、マスタ装置１０と複数のローカル端末２０を有する。これらの既存機能を簡単に述べるならば、マスタ装置１０は、不図示の各プログラマブルコントローラの各プログラムと該各プログラムに係る共有データ定義情報を記憶・管理する。各ローカル端末２０は、各々が任意のときに該マスタ装置１０上の任意の該プログラム又は／及び該共有データ定義情報を更新し得る。但し、従来とは異なり、各ローカル端末２０は必ずしもネットワークに接続されているとは限らないので、ネットワークは図示していない。但し、マスタ装置１０は基本的に常に不図示のネットワークに接続されており、各ローカル端末２０は当該ネットワークに接続される場合もある構成であってもよい。
【００３２】
尚、マスタ装置１０や各ローカル端末２０によるプログラムや共有データ定義情報の管理・編集対象は、上記プログラマブルコントローラに限るものではなく、何らかの所定のプログラムに基づいて任意の機器を制御するコンピュータ装置であれば何でもよく、これらを総称して“制御装置”と記すものとする。
【００３３】
また、各ローカル端末２０は、不図示のネットワークに接続中に、図示の「持ち出し」や「取り込み」のようなマスタ装置１０へのアクセス処理等を、行うものであってもよい。尚、ローカル端末２０がネットワークに接続することは、マスタ装置１０に接続することと同義と見做しても構わない。また、“ローカル環境”とは、ローカル端末２０がネットワークに接続出来ない環境、すなわちマスタ装置１０に接続出来ない環境を意味するものとする。ローカル環境は、例えば、上記従来で説明した“現場”等である。
【００３４】
本例の共有データ定義支援システムは、共有データ定義を格納・管理するマスタ装置１０と、該共有データ定義の更新に係わる作業が行われる複数のローカル端末２０とを有するシステムを、前提とする。そして、ローカル環境でローカル端末２０側での共有データ定義の更新作業が行われる場合であっても、マスタ装置側の共有データ定義の整合性を保つことができるものである。
【００３５】
尚、図示の「持ち出し」や「取り込み」の処理は、概略的には、マスタ装置１０が格納・管理するプログラムや共有データ定義情報のコピーを、ローカル端末２０に取得させることが「持ち出し」である。「取り込み」は、その後に、ローカル端末２０側で編集後のプログラムや更新後の共有データ定義情報によって、マスタ装置１０で格納・管理するプログラム／データを更新する処理である。つまり、ローカル端末２０側での編集・更新内容を、マスタ装置１０側で管理するプログラムや共有データ定義情報に反映させる処理である。詳しくは後述する。
【００３６】
何れにしても、本手法では、任意のローカル端末２０が、図示の「持ち出し」を行った後、例えば上記“現地”のようにネットワーク経由でマスタ装置の構成管理ツールを利用しつつプログラム編集作業等を行うことが出来ない環境下で、プログラムの編集や共有データの更新が行われるケースを、主に想定しているものである。それ以外に状況に関しては、本手法を適用してもよいし、上記従来手法を用いても構わない。
【００３７】
尚、マスタ装置１０は例えばサーバ装置等であり、ローカル端末２０は例えばパソコン等であり、何れもコンピュータ装置である。特に図示しないが、マスタ装置１０、ローカル端末２０は、一般的なコンピュータ装置の構成を有している。すなわち、不図示のＣＰＵ等の演算プロセッサ、メモリ等の記憶部、通信部、操作部、表示部等を有している。操作部はキーボード、マウス等である。記憶部には、予め所定のアプリケーションプログラムが記憶されている。演算プロセッサが、このアプリケーションプログラムを実行することにより、図１や図８に示す各種機能部や後述するフローチャート図の処理が実現される。
【００３８】
すなわち、マスタ装置１０では、下記のプログラミング支援部１１、共有データ定義支援部１２等や後述する第１記憶部３１、許可判定部３２、更新実施部３３等の各種処理機能部や、後述する図２、図５の処理等が実現される。また、記憶部には下記の共有データＤＢ（データベース）１３が構成される。また、ローカル端末２０では、下記のプログラミング支援部２１、共有データ定義支援部２２等や後述する持出部４１、定義・キー更新部４２．指定部４３、編集許可部４４等の各種処理機能部や、後述する図３の処理等が実現される。また、記憶部には後述する共有データＤＢ（データベース）（コピー）２３が構成される。
【００３９】
以下、図１に示す各構成について説明する。
図示の例では、マスタ装置１０は、プログラミング支援部１１、共有データ定義支援部１２等の各種処理機能部を有し、更に共有データＤＢ（データベース）１３を有する。また、特に図示しないが、図示の各プロジェクトのプログラム群等を記憶する記憶部も存在する。
【００４０】
特に図示していないが、既に述べたように、各プロジェクトは、各ＰＬＣ用のプログラム群であり、１以上の制御プログラム等より成る。例えば、ＰＬＣ１用のプログラム群である図示のＰＬＣ１プロジェクト、ＰＬＣ２用のプログラム群である図示のＰＬＣ２プロジェクト等が、作成されて記憶されている。また、これら各プロジェクトは、任意のときに、プログラミング支援部１１または後述するプログラミング支援部２１によって編集されて更新される。これに伴って、対応する共有データ定義情報も、共有データ定義支援部１２によって更新される。
【００４１】
例えば、上記ＰＬＣ１プロジェクトに対応する共有データ定義は、後述するＰＬＣ１用定義１３ａである。つまり、ＰＬＣ１プロジェクトとＰＬＣ１用定義１３ａは、ＰＬＣ１に係わるものである。従って、ＰＬＣ１プロジェクトの編集が行われる際には、基本的に、ＰＬＣ１用定義１３ａの更新も行われるものと見做しても構わない。
【００４２】
また、プログラミング支援部１１は、例えばＰＬＣプログラム編集部１１ａを有する。ＰＬＣプログラム編集部１１ａは、ユーザによる任意のＰＬＣプログラムに対する任意の編集作業を支援する。このプログラム編集作業に伴う共有データ定義の設定・更新作業は、共有データ定義支援部１２内の共有データ定義設定部１２ａが支援する。尚、ＰＬＣプログラム編集部１１ａによる上記支援の機能自体は、従来のＰＬＣプログラム編集部１１１ａと略同様と見做して構わない。
【００４３】
共有データＤＢ１３には、各ＰＬＣプログラムに係わる各種共有データ定義が格納される。換言すれば、マスタ装置１０は、全てのＰＬＣに係わる共有データ定義を一元管理している。そして、図示のように、共有データＤＢ１３には、共有データ定義がＰＬＣ毎に分類されて格納されている。すなわち、各ＰＬＣ毎に応じた共有データ定義である図示のＰＬＣ１用定義１３ａ、ＰＬＣ２用定義１３ｂ、・・・、ＰＬＣｎ用定義１３ｎ等に分類されて記憶されている。
【００４４】
また、各ローカル端末２０は、上記プログラミング支援部１１、共有データ定義支援部１２と略同様の機能であるプログラミング支援部２１、共有データ定義支援部２２を備えている。これらは、各々、上記ＰＬＣプログラム編集部１１ａ、共有データ定義設定部１２ａに相当するＰＬＣプログラム編集部２１ａ、共有データ定義設定部２２ａを有する。
【００４５】
ここで、本例では、上記各プロジェクト、各共有データ定義には、図示の“Key１”、“Key２”、“Keyｎ”等のようなキー情報が付与される。これは、同じＰＬＣに係わるプロジェクトと共有データ定義には、同じキー情報が付与される。例えば、上記ＰＬＣ１に係わるＰＬＣ１プロジェクトとＰＬＣ１用定義１３ａとには、図示のように同じキー情報“Key１”が付与される。
【００４６】
ここで、本手法では、ローカル端末２０において任意のＰＬＣに係わるプログラム編集や共有データ定義更新を行う際には、ローカル端末２０は、編集対象のプログラム／プロジェクトのコピーを、マスタ装置１０から取得する。つまり、図示の「持ち出し」を行う。図示の例では“ＰＬＣ１プロジェクト”の“ＰＬＣ１プログラム”の「持ち出し」を行っている。この様に、プログラムに関しては、プロジェクト単位で「持ち出し」を行ってもよいし、プログラム単位で「持ち出し」を行なっても良いが、何れの場合でも、そのプロジェクトに付与されているキー情報も一緒に持ち出す。
【００４７】
また、ローカル端末２０は、共有データ定義に関しては、共有データＤＢ１３全体のコピーを、マスタ装置１０から取得する。これより、図示のように、共有データＤＢ１３全体のコピーである共有データＤＢ（コピー）２３が、ローカル端末２０に格納された状態となる。但し、共有データＤＢ（コピー）２３の全ての共有データ定義に対して、更新等が行えるわけではない。図示の例では、ＰＬＣ１用定義２３ａに対しては設定・更新が許可されるが、他の共有データ定義に対しては例えば参照のみが行なえるように管理される。詳しくは後述する。
【００４８】
尚、上記「持ち出し」は、不図示のネットワークを介して行ってよいが、この例に限らず、ＵＳＢメモリ等の不図示の可搬型記録媒体を介して行っても良い。
尚、上記「持ち出し」の際にアクセス権は取得しない。従って、その後に、他のローカル端末２０がマスタ装置１０から共有データ定義等を持ち出すこともできる。
【００４９】
何れにしても、上記プログラム等や共有データの「持ち出し」を行った後、作業者は、このローカル端末２０を例えば上記「現場」に持っていく等して、そこで、持ち出したプログラムの編集や、このプログラムに係わる共有データ定義の設定・更新などを行うことになる。尚、「現場」は、何処でも良いが、上記の通り、マスタ装置１０にアクセスすることはできない環境（ローカル環境）であるものとする。
【００５０】
図示の例では、上記ＰＬＣ１プログラムを持ち出したローカル端末２０においては、例えば上記「現場」等で、作業者が、このＰＬＣ１プログラムの編集等を行うと共に、このＰＬＣ１プログラムに係わる共有データ定義であるＰＬＣ１用定義２３ａの更新等を行うことになる。
【００５１】
ここで、本手法では、上記のように、共有データＤＢ１３全体のコピーを持ち出すが、更新等のデータの内容の変更を伴うアクセスが許可されるのは、持ち出したプログラム（プロジェクト）に係わる共有データ定義のみである。つまり、図示の例では、ＰＬＣ１用定義２３ａのみが更新等を許可され、それ以外の共有データ定義は参照だけが許される。
【００５２】
この様な許可制御を行う為に、上記キー情報を用いる。つまり、持ち出したプログラムに付与されるキー情報と同一のキー情報が付与されている共有データ定義のみが、更新等を許可される。図示の例では、ＰＬＣ１用プログラムには“Ｋｅｙ１”が付与されているので、“Ｋｅｙ１”が付与されている共有データ定義である図示の「ＰＬＣ１用定義」２３ａのみが、更新等を許可されることになる。
【００５３】
尚、上記キー情報の利用方法は、他にもあり、それについては後述するが、「取り込み」の際に利用するものである。
尚、ローカル端末２０における作業者によるプログラムの編集作業は、上記プログラミング支援部２１（そのＰＬＣプログラム編集部２１ａ）が支援する。同様に、共有データの更新作業は、上記共有データ定義支援部２２（その共有データ定義設定部２２ａ）が支援する。
【００５４】
上記マスタ装置１０において、共有データＤＢ１３は、各ＰＬＣに応じた記憶領域から構成され、各ＰＬＣに係わる共有データ定義は、それぞれの該当領域に格納される。
共有データ定義支援部１２は、複数のＰＬＣそれぞれのプログラム（プロジェクト）を管理し、各ＰＬＣに応じた共有データ定義情報を、共有データＤＢ１３に格納・管理する。その際、各プログラム（プロジェクト）に上記固有のキー情報を付与する。尚、ここでは上記の通り、各ＰＬＣ用のプログラム群をまとめてプロジェクトと呼称する。さらに、共有データ定義支援部１２は、各共有データ定義情報に対して、該当するキー情報を付与する。
【００５５】
該当するキー情報とは、その共有データ定義が係わるＰＬＣと同じＰＬＣに係わるプロジェクト（プログラム）に付与されているキー情報である。このキー情報を元に、その共有データ定義の設定・更新や「取り込み（反映）」の許可判断を行う。以下、図２以降の各図を参照して更に具体的に説明する。
【００５６】
図２は、マスタ装置１０における新規プログラム登録の際の処理フローチャート図である。
図２において、マスタ装置１０（支援ツール）は、新たに管理対象とする任意のＰＬＣ用のプログラム（プロジェクト）の登録を行うと共に（ステップＳ１１）、このＰＬＣ用の共有データ定義の記憶領域を共有データＤＢ１３内に確保する（ステップＳ１２）。
【００５７】
尚、以下、上記プログラム（プロジェクト）をプログラムと記すものとする。つまり、以下の説明では、プログラムは、プロジェクト（プログラム群）を意味するものであってもよい。
【００５８】
尚、この時点では記憶領域が確保されただけであり、共有データ定義情報自体は未だ格納されていないものであっても構わない。勿論、この時点で共有データ定義情報が作成済みであれば、これを上記確保された記憶領域に格納しても構わない。また、この時点では未だ共有データ定義情報が作成されていなくても、後に任意のときに作成された時点で、当該作成された共有データ定義情報を上記確保された記憶領域に格納すればよい。
【００５９】
また、この例は、共有データ定義自体にキー情報を付与するのではなくその記憶領域に対してキー情報を付与する例を用いるが、勿論、この例に限らない。共有データ定義自体にキー情報を付与するものであっても構わない。
【００６０】
マスタ装置１０は、続いて、任意の固有の識別情報を生成して（ステップＳ１３）。この識別情報を含むキー情報を、上記新たなプログラムと共有データ定義記憶領域に対して付与する（ステップＳ１４）。これは、上述したように、同じＰＬＣに係わるプログラムと共有データ定義（その記憶領域）とには同じキー情報を付与する。
【００６１】
尚、上記識別情報とキー情報との関係は、後に図４に示す一例を参照して説明するが、基本的にはキー情報は１以上の識別情報から成るものである。図２の処理の際には、新たなキー情報が生成されることになるので、このキー情報は上記ステップＳ１３で生成された１つの識別情報のみから構成されることになる。その後、キー情報の更新が行われる毎に、キー情報を構成する識別情報の数が、増えていくことになる、詳しくは図４等を用いて後述する。
【００６２】
上記ステップＳ１１で新規登録したプログラムが複数ある場合には、全ての新規プログラムについてステップＳ１３、Ｓ１４の処理を実行したか否か判定する（ステップＳ１５）。未処理の新規登録プログラムが残っている場合には（ステップＳ１５、ＮＯ）、ステップＳ１３に戻り、未処理の新規登録プログラムについてステップＳ１３、Ｓ１４の処理を実行する。全ての新規登録プログラムについて処理実行したら（ステップＳ１５，ＹＥＳ）、本処理は終了する。
【００６３】
例えば図２の処理が実行されていることで、図１で説明したように、同じＰＬＣに係わるプログラムと共有データ定義記憶領域とには、同じキー情報が付与された状態となっている。図１の例では、例えば、ＰＬＣ１に係わるプログラムと共有データ定義記憶領域とには同じキー情報が付与されている。すなわち、ＰＬＣ１プロジェクトとＰＬＣ１用共有データ定義記憶領域１３ａには、どちらにもキー情報“Ｋｅｙ１”が付与されている。
【００６４】
次に、以下、各ローカル端末２０側の処理例について説明する。
任意のＰＬＣのプログラミング作業をローカル環境で行う為に、各ローカル端末２０には、マスタ装置１０と同じ支援機能である上記共有データ定義支援部２２およびプログラミング支援部２１を、予めインストールしておく。
【００６５】
そして、任意のときに、編集対象のＰＬＣのプログラムと、共有データＤＢ１３とを、マスタ装置１０からコピーして持ち出す。尚、編集対象のＰＬＣは、１つとは限らず、複数のＰＬＣを編集対象としてもよく、これら各ＰＬＣに係わる各プログラムを持ち出すものであっても構わない。
【００６６】
その後、例えば上記「現場」等のローカル環境において、作業者等が上記ローカル端末２０上で任意の編集作業等を行う際に、ローカル端末２０は図３の処理を実行する。
尚、以下の説明においても、プログラムとは、１つの制御プログラムまたはプログラム群（プロジェクト）を意味するものとする。
【００６７】
図３において、まず、作業者等が、編集対象とするプログラムと共有データ定義とを指定する（ステップＳ２１、Ｓ２２）。勿論、編集対象とするプログラムは、上記持ち出したプログラムのなかから選択・指定することになる。一方、共有データ定義に関しては、本手法では上記の通り共有データＤＢ１３を持ち出してくるので、基本的には全ての共有データ定義を指定可能である。例えば、図１の例では、ＰＬＣ１のプログラムを持ち出しているが、例えばＰＬＣｎに係わる共有データ定義であっても指定可能である。
【００６８】
これより、まず、ステップＳ２２で指定された共有データ定義が、ステップＳ２１で指定されたプログラムに対応するものであるか否かをチェックする。換言すれば、同じＰＬＣに係わるものであるか否かをチェックする。その為に、本例では上記キー情報を用いる。すなわち、ステップＳ２１で指定されたプログラムのキー情報と、ステップＳ２２で指定された共有データ定義のキー情報とが、一致するか否かを判定する（ステップＳ２３）。
【００６９】
これら２つのキー情報が不一致の場合には（ステップＳ２３，ＮＯ）、これらプログラムと共有データ定義の組み合わせは、編集不可の組み合わせである旨の警告メッセージ等を表示して（ステップＳ２５）、本処理を終了する。尚、この場合には、ユーザに再度上記ステップＳ２１、Ｓ２２の指定を行わせるようにしてもよい。尚、２つのキー情報が不一致の場合とは、基本的には、２つのキー情報が異なる場合であるが、それ以外にも、どちらか一方または両方のキー情報が存在しない場合等も含まれる。
【００７０】
一方、上記２つのキー情報が一致する場合には（ステップＳ２３，ＹＥＳ）、共有データ定義の編集（設定・更新）を許可する（ステップＳ２４）。これは、例えば、上記ステップＳ２２で指定された共有データ定義を格納する、共有データＤＢ（コピー）２３内の記憶領域を特定し、当該特定した記憶領域に対しては編集可能とし、それ以外の領域は参照のみとする。これによって、作業者は、上記ステップＳ２２で指定した共有データ定義の編集を、任意に行うことができると共に、それ以外の共有データ定義については参照のみしか行えない。
【００７１】
作業者は、共有データ定義支援部２２の支援機能により、上記編集許可された共有データ定義の更新作業等を行う。そして、任意のとき、例えば作業者が更新作業完了を入力操作した場合に、共有データ定義支援部２２は、ステップＳ２６〜Ｓ２８の処理を実行する。
【００７２】
すなわち、まず、共有データ定義に変更があるか否かを判定する（ステップＳ２６）。これは、例えば、マスタ装置１０からコピーしたときの共有データ定義情報を、バックアップ情報として残しておき、このバックアップ情報が現在の共有データ定義と不一致の場合には変更ありと判定する（ステップＳ２６，ＹＥＳ）。一方、一致の場合には変更なしと判定し（ステップＳ２６，ＮＯ）、何もすることなく本処理を終了する。
【００７３】
共有データ定義に変更がある場合には（ステップＳ２６，ＹＥＳ）、新たな固有の識別情報を生成する（ステップＳ２７）。ここで“固有の”とは、自端末においてユニークであることは勿論のこと、他のローカル端末２０が同じ識別情報を生成することは無いことを意味する。その為に、例えば、識別情報には当該ローカル端末２０のＭＡＣアドレスや製造ナンバー等のようなユニークなＩＤが、含まれるようにする。勿論、この例に限らない。
【００７４】
そして、上記ステップＳ２７で生成した識別情報を、上記変更があった共有データ定義のキー情報と、ステップＳ２１で指定されたプログラムのキー情報とに、追加することで、キー情報を更新する（ステップＳ２８）。つまり、キー情報とは、１以上の識別情報から成るものである。
【００７５】
ここで、キー情報の具体例を図４に示す。
図示の例のキー情報は、３つの識別情報から成る。各識別情報には世代が対応付けられている。この世代は、新たな識別情報が追加される毎に、１，２，３，４、・・・等のように増加する。よって、図示の例では、世代‘１’の識別情報が最も古く、世代‘３’の識別情報が最新である。尚、世代‘１’の識別情報は、上記ステップＳ１３で生成された識別情報であり、換言すれば新規キー情報生成時の識別情報である。
【００７６】
尚、上記のように、共有データ定義の更新毎にキー情報に識別情報が追加されるので、最新の世代は、そのキー情報の版数を示すものと見做してもよい。図４に示すキー情報は、第３版のキー情報と言える。また、仮に、世代‘１’の識別情報のみから成るキー情報があった場合には、それは初版のキー情報と言える。
【００７７】
キー情報を例えば図４のような構成とする理由は、後述する図５の処理の際に利用する為である。
ここで、上記ステップＳ２６の判定がＹＥＳになる場合、共有データ定義が更新されたことになるが、それはローカル環境における話であり、未だ共有データ定義の更新が確定したわけではない。この更新内容が、マスタ装置１０側で管理している共有データＤＢ１３に反映されることで、当該共有データ定義の更新が確定することになる。しかしながら、上述したように、共有データ定義の更新を確定させてはならない場合がある。すなわち、同じ共有データ定義に関して、他のローカル端末２０でも更新が行われていると共に、既にその更新内容が、マスタ装置１０側に反映されている場合である。この様な場合には更新内容がマスタ装置１０側に反映されないようにするのが、図５の処理であり、その為に上記キー情報を用いる。
【００７８】
以下、図５の処理について説明する。
図５の処理は、マスタ装置１０の処理であり、例えば任意のローカル端末２０からアクセスがあり、例えば“取り込み”要求があった場合等に、開始される。尚、開始前に、要求元のローカル端末２０にアクセス権を与えるようにしてよい。また、他のローカル端末２０にアクセス権を与えている状態で上記要求があった場合には、要求を拒否する。
【００７９】
尚、上記のことから、図５の処理開始時点では、上記ローカル端末２０側で更新された共有データ定義等を、取得済みまたは取得可能な状態となっている。取得可能な状態とは、例えば上記ローカル端末２０とネットワークを介して通信可能な状態などである。
【００８０】
尚、以下の説明においても、プログラムとは、１つの制御プログラムまたは制御プログラム群（プロジェクト）を意味するものとする。
尚、図５の処理は、例えば共有データ定義支援部１２が実行するが、この例に限らない。
【００８１】
図５の処理例では、まず、更新対象とするＰＬＣに係わるプログラムと共有データ定義とを、作業者等に指定させて（ステップＳ３１、Ｓ３２）、これらをコピーして取り込む。尚、図２の例では、編集対象としてローカル端末２０側に持ち出されたのはＰＬＣ１プログラムのみであるので、ステップＳ３１で指定し得るのはＰＬＣ１プログラムのみとなるが、複数のプログラムが持ち出されていた場合には、ステップＳ３１ではその中から作業者が所望のプログラムを選択・指定することになる。
【００８２】
また、ステップＳ３２では、作業者は、ステップＳ３１で指定したプログラムと同じＰＬＣに係わる共有データ定義を指定することになるが、正しく指定できるとは限らない。この為、本例では、ステップＳ３１で指定されたプログラムのキー情報と、ステップＳ３２で指定された共有データ定義のキー情報とが、一致するか否かを判定する（ステップＳ３３）。そして、これらキー情報が不一致の場合には（ステップＳ３３，ＮＯ）、更新不可の組み合わせである旨の警告メッセージを表示して（ステップＳ３８）、本処理を終了する。あるいは、再びステップＳ３１、３２の指定作業を行わせる。
【００８３】
尚、ステップＳ３３の一致／不一致判定は、キー情報全体を比較して一致／不一致を判定するものであってもよいが、上記図４で説明した“最新の世代”同士を比較して一致／不一致を判定するものであっても構わない。
【００８４】
上記キー情報が一致する場合には（ステップＳ３３，ＹＥＳ）、上記ステップＳ３１、Ｓ３２で指定されたプログラムと共有データ情報とが正しい組合せであると見做して、ステップＳ３４以降の処理へ移行する。
【００８５】
ステップＳ３４では、マスタ側のキー情報が、更新側のキー情報に存在するか否かを判定する。これは、マスタ側のキー情報の識別情報全てが、更新側のキー情報内に存在するか否かを判定する。これは、例えば、まず、上記更新対象に係わるＰＬＣに関してマスタ装置１０側で保持しているプログラムまたは共有データ定義のキー情報を取得する。そして、取得したキー情報の識別情報全てが、上記ステップＳ３３の判定に用いたキー情報に含まれているか否かを判定する。換言すれば、処理対象のＰＬＣに係わるマスタ装置１０側のキー情報の識別情報全てが、ローカル端末２０側のキー情報に含まれているか否かを判定する。
【００８６】
尚、上記更新側のキー情報は、ステップＳ３２で指定された共有データ定義情報に付与されているキー情報である。
また、尚、ステップＳ３４の処理では、最初に例えば、ステップＳ３２で指定された共有データ定義情報に対応する、共有データＤＢ１３上の記憶領域を特定して、この記憶領域の共有データ定義情報に付与されているキー情報を、上記マスタ側のキー情報とする処理等が行われるものであってもよい。尚、この処理は、例えば、共有データＤＢ（コピー）２３は、共有データＤＢ１３のコピーであることから、ステップＳ３２で指定された共有データ定義情報の格納アドレスを認識することで、共有データＤＢ１３において同じ格納アドレスの共有データ定義情報に付与されているキー情報を、上記マスタ側のキー情報とすればよい。
【００８７】
上記ステップＳ３４の処理について、図６に示す具体例を参照して更に説明する。
図６に示す例では、２台のローカル端末２０（ローカル端末Ａとローカル端末Ｂ）で、ほぼ同時期に、同じＰＬＣに係わるプログラムや共有データ定義の編集・更新が行われた場合を例にする。
【００８８】
また、更新対象は、持ち出したプログラムに対応する共有データ定義であり、この共有データ定義のキー情報は、このプログラムのキー情報と同一であるものとする。尚、上記フローチャートではこれらが同一か否かをチェックする処理もあるが、基本的には同一となるので、ここでは同一であることを前提として説明する。
【００８９】
尚、上記のように本例では、共有データ定義に関しては常に共有データＤＢ１３全体のコピーを持ち出すことになるが、これは更新対象以外の他の共有データ定義も参照等が行なわれる可能性があるからである。しかし、ここでは、説明の都合上、共有データＤＢ１３全体の持ち出しには言及せず、任意のＰＬＣに係わるプログラムと共有データ定義とをセットで扱って説明するものとする。つまり、例えば、図６（ａ）の図上左側に示すように、任意のＰＬＣに係わる「プログラム＆共有データ定義」を例えばプログラム等α等と記すものとする。また、これより、プログラム等αのコピーである後述するプログラム等（コピー）α’は、「プログラムのコピー＆共有データ定義のコピー」を意味するものとする。
【００９０】
既に述べたように、任意のＰＬＣに係わるプログラムと共有データ定義とには同じキー情報が付与されるものであり、更に基本的には、プログラムの変更がある場合には共有データ定義も更新されるので、上記のようにセットで扱って説明しても特に問題はない。
【００９１】
これより、まず、図６（ａ）に示すように、マスタ端末１０からローカル端末Ａに任意のＰＬＣに係わるプログラム等αのコピーα’を持ち出す。このとき、このプログラム等αのキー情報は、図示のように世代‘１’の識別情報（xxxx-0001）のみである。従って、このときにはローカル端末Ａ側のおける上記プログラム等（コピー）α’のキー情報は、世代‘１’の識別情報（xxxx-0001）のみとなっている。
【００９２】
また、これと同時期に、ローカル端末Ｂに関しても、上記ローカル端末Ａの場合と略同様の処理が行われたものとする。すなわち、マスタ端末１０からローカル端末Ｂへ、上記ローカル端末Ａの場合と同じＰＬＣに係わるプログラム等αのコピーα’を持ち出す。このとき、このプログラム等αのキー情報は、図示のように世代‘１’の識別情報（xxxx-0001）のみである。従って、このときにはローカル端末Ｂ側における上記プログラム等（コピー）α’のキー情報は、世代‘１’の識別情報（xxxx-0001）のみとなっている。
【００９３】
その後、ローカル端末Ａ、ローカル端末Ｂは、どちらも、その作業員と共に上記「現場」等に移動して、そこでプログラム等（コピー）α’の編集、更新作業等が行われ、これに伴ってキー情報も更新されたものとする。
【００９４】
例えば、図６（ｂ）に示すように、ローカル端末Ａにおいては、プログラム等（コピー）α’を編集／更新した結果である図示の“プログラム等α更新版Ａ”が存在している。そして、“プログラム等α更新版Ａ”に対応するキー情報は、世代‘２’の識別情報（xxxx-0002）が追加された状態となっている。
【００９５】
同様に、ローカル端末Ｂにおいては、プログラム等（コピー）α’を編集／更新した結果である図示の“プログラム等α更新版Ｂ”が存在している。そして、“プログラム等α更新版Ｂ”に対応するキー情報は、世代‘２’の識別情報（xxxx-0003）が追加された状態となっている。
【００９６】
尚、上記のように、ローカル端末Ａとローカル端末Ｂとが同じ識別情報を生成することはないので、例えばこの例においてローカル端末Ｂにおいて識別情報（xxxx-0002）が生成されることはない。
【００９７】
その後、まずローカル端末Ａがネットワークに接続する等してマスタ装置１０にアクセス可能な状態となり、上記図５の処理が実行されたとする。この処理開始時には、ローカル端末Ａ側のキー情報は上記のように識別情報（xxxx-0001）と識別情報（xxxx-0002）とから成り、マスタ装置１０側のキー情報は、図６（ａ）の状態のままであり識別情報（xxxx-0001）のみから成る。従って、この状態では、マスタ側の識別情報全て（xxxx-0001）が、ローカル端末Ａ側のキー情報に存在していることになるので、上記ステップＳ３４の判定はＹＥＳとなる。
【００９８】
但し、ローカル側で更新が行われず、ローカル端末Ａのキー情報が識別情報（xxxx-0001）のみから成る状態のままであっても、ステップＳ３４の判定はＹＥＳとなる。この為、ステップＳ３４の判定がＹＥＳとなったら、キー情報が更新されているか否かをチェックし（ステップＳ３５）、更新されていない場合には（ステップＳ３５，ＮＯ）、何等処理を行う必要はないので、更新不要である旨のメッセージを表示する等して、本処理を終了する。
【００９９】
尚、上記ステップＳ３５の判定は、例えば、マスタ装置１０側のキー情報と、ローカル端末Ａ側のキー情報とが一致するか否かを判定するものであり、一致する場合には更新されていない（ステップＳ３５，ＮＯ）と判定される。
【０１００】
ステップＳ３４、Ｓ３５の判定がＹＥＳの場合には、ローカル側の更新内容をマスタ側に反映させる処理を行う（ステップＳ３６）。これは、上記の例では、例えば、マスタ装置１０は、まず、ローカル端末Ａ側の上記“プログラム等α更新版Ａ”を取得する。換言すれば、編集／更新後の上記プログラム等α（プログラム＆共有データ定義）を取得する。そして、取得した更新後の共有データ定義を、共有データＤＢ１３における該当領域に上書き格納することで、マスタ装置１０が管理する共有データ定義を更新する。また、取得した編集後のプログラムを、既存のプログラムに置き換えることで、マスタ装置１０が管理するプログラムを更新する。また、これら取得したプログラムや共有データ定義に付与されるキー情報は、例えば上記識別情報（xxxx-0001）と識別情報（xxxx-0002）とから成るものであるので、マスタ側のキー情報は図６（ｃ）に示す状態となる。
【０１０１】
この状態で、その後、ローカル端末Ｂがネットワークに接続する等して、上記図５の処理が実行されたとする。この処理開始時には、上記の通り、マスタ装置１０のキー情報は図６（ｃ）に示す状態となっている。よって、この場合、上記ステップＳ３４の処理では、マスタ側のキー情報である識別情報（xxxx-0001）と識別情報（xxxx-0002）のなかで識別情報（xxxx-0002）は、ローカル端末Ｂ側のキー情報に存在していないことになる。すなわち、ローカル端末Ｂ側のキー情報は識別情報（xxxx-0001）と識別情報（xxxx-0003）とから成るので、識別情報（xxxx-0002）は、ローカル端末Ｂ側のキー情報に存在していない。従って、ステップＳ３４の判定はＮＯとなる。
【０１０２】
このため、ローカル端末Ｂにおけるプログラムや共有データ定義の更新内容は、マスタ側に反映されることはない。もし、この反映が行われた場合、ローカル端末Ａにおける更新内容が無くなる可能性があったが、その可能性は無くなることになる。
【０１０３】
上記例のようにローカル端末Ｂに関してはステップＳ３４の判定がＮＯとなった場合には、改めて、マスタ装置１０のプログラムや共有データＤＢ１３をローカル端末Ｂに持ち出して、これに基づいてローカル端末Ｂ側で編集・更新等を行えばよい。この場合には、マスタ装置１０から持ち出した共有データ定義は、既にローカル端末Ａによる更新内容が反映済みである。よって、これをベースにしてローカル端末Ｂで任意の更新を行っても問題は生じない。また、この場合には、図５の処理を行うと、ローカル端末Ｂ側のキー情報は、既存の識別情報（xxxx-0001）及び識別情報（xxxx-0002）と、新たに生成された例えば識別情報（xxxx-0004）とから成るので、マスタ側のキー情報の識別情報（xxxx-0001）と識別情報（xxxx-0002）は全て存在しているので、ステップＳ３４の判定はＹＥＳとなる。
【０１０４】
尚、上記ローカル端末Ａ，Ｂが“更新する側”、マスタ装置１０が“更新される側”と見做すこともできる。この場合、上記ステップＳ３４は、“更新する側”が保持するキー情報に、“更新される側”が保持するキー情報が含まれているか否かを判定するものと言える。そして、ステップＳ３４がＹＥＳとなる場合には、“更新する側”の共有データ定義は、“更新される側”の共有データ定義を元に編集されたものであると見做して、更新の実施を許可するものと言える。
【０１０５】
次に、共有データＤＢのデータ構造と共有データ定義の設定について説明する。
図７（ａ）に共有データＤＢ１３（２３）のデータ構造を示す。図７（ｂ）には共有データ定義の設定入力画面例を示す。
【０１０６】
例えば図７（ａ）に示すように、共有データＤＢ１３（２３）におけるデータ構造は、まず、ＰＬＣ一覧があり、マスタ装置１０による管理対象となる複数の（例えばＭ台の）ＰＬＣのＰＬＣ名一覧等が登録されている。各ＰＬＣ名毎に対応付けて、該当するプロジェクト名が登録されている。これは、上述したように、各ＰＬＣ毎に、そのＰＬＣに係わるプログラム群をまとめてプロジェクトとして扱っているので、１つのＰＬＣに対して１つのプロジェクトが対応付けられることになる。また、上述したように、１つのプロジェクトに対して１つのキー情報が割り当てられるので、図示のように、任意のＰＬＣ名に関連付けて、そのＰＬＣのプロジェクトに係わるキー情報が登録される。尚、キー情報の詳細は、図４に示しており、ここでは説明しない。
【０１０７】
そして、各ＰＬＣ名に対応して、そのＰＬＣのプロジェクト（プログラム群）で使用される各種変数の変数名が登録されている。そして、各変数名に関連付けて、その変数に関する所定の付随情報が登録されている。所定の付随情報とは、例えば図示のデータ型、コメント等であるが、更に詳しくは図７（ｂ）に示す各種データ項目のデータである。尚、変数は、ここでは特に共有変数である。
【０１０８】
図７（ｂ）は、上記各変数に関する所定の付随情報を、ユーザに任意に入力させる為の画面例である。尚、この画面の表示や画面上でのユーザ入力に係わる処理は、例えば、共有データ定義支援部１２が行うが、この例に限らない。
【０１０９】
ここで、図７（ｂ）の画面で入力する情報が、上記共有データ定義の一例に相当すると見做してよい。ユーザは、この画面上で、共有データに係わる変数（共通変数）に関して、その変数名、データ型、コメント、その変数のデータを共有メモリからリードするＰＬＣ、ライトするＰＬＣ等などを入力する。すなわち、図示の共通変数名、データ型、コメント、各ＰＬＣ名毎のＲ／Ｗ区別等の各データ項目に対して、ユーザは任意のデータを入力する。
【０１１０】
上述したように、本例の共有データ定義支援システムは、基本的に、１台のマスタ装置１０で、複数のＰＬＣのプロジェクトを記憶・管理すると共に、共有データ定義情報を記憶管理する。更に、複数台のローカル端末２０それぞれにおいて、任意のＰＬＣに係わるプロジェクト（プログラム群）の編集や、それに関連する共有データ定義情報の更新等を、作業者が任意に行うものである。
【０１１１】
尚、以下の説明では、再び、プログラムは、制御プログラムまたはプロジェクト（制御プログラム群）を意味するものとする。
本手法では、上記システムにおいて、特に、ローカル端末２０が、任意のＰＬＣのプログラムおよび共有データ定義情報を、マスタ装置１０からコピーして持ち出し、オフライン環境下等において上記編集／更新等の作業を行う場合において、顕著な効果を奏するものである。
【０１１２】
すなわち、まず、編集可能なプログラムと共有データ定義情報との組合せを特定することができる。これは、例えば上記ステップＳ２３の判定処理のように、指定された組合せが“編集可能な組合せ”であるか否かを判定し、編集不可の組合せの場合には編集を許可しないものである。これによって、誤った組合せで編集が行われてしまうことを防止できる。
【０１１３】
尚、ステップＳ２１〜Ｓ２３やステップＳ３１〜Ｓ３３の代わりに、任意のプログラムを指定させたら、当該指定されたプログラムに対応する共有データ定義情報を判別して、両者の組み合わせに対して編集・更新を許可するようにしてもよい。このように、ユーザがプログラムと共有データ定義情報の両方を指定しなくても済み、且つ、正しい組合せで編集・更新作業が行われるようにすることもできる。
【０１１４】
また、尚、ステップＳ２１〜Ｓ２３やステップＳ３１〜Ｓ３３の処理、あるいは上記編集・更新対象のプログラムと共有データ定義情報の組合せを自動的に決定する処理等は、必須ではない。また、これに伴って、プログラムにもキー情報を付与することも必須ではなく、キー情報は共有データ定義情報のみに付与するようにしても構わない。勿論、この場合でも上記ステップＳ３４、Ｓ３５の処理は行われる。
【０１１５】
また、図１に示す例に限らず、例えば、共有データＤＢ１３全体に対して１つのキー情報のみを付与するようにしても構わない。つまり、この場合、基本的に、「持ち出し」を行ったローカル端末２０側では、共有データＤＢ（コピー）２３の全ての共有データ定義情報の更新を行えることになる。但し、この場合、同時期に自己とは異なるＰＬＣのプログラムを編集した他のローカル端末２０が、先に「取り込み」を成功させた場合には、自己は「取り込み」失敗となることになる。尚、これに伴って、共有データＤＢ１３のデータ構造も、図１に示すような各ＰＬＣに応じた各記憶領域とする例に限らず、図９に示す従来例と同様であっても構わない。
【０１１６】
更に、任意のＰＬＣのプログラムに関して、同時期に複数のローカル端末２０で上記「持ち出し」が行われた場合、そのうちの１台のローカル端末２０によるオフラインでの編集・更新内容が、マスタ装置１０側に反映された場合には、その後、他のローカル端末２０によるオフラインでの編集・更新内容は、マスタ装置１０側に反映されないように制御できる。これにより、マスタ装置１０側で管理する共有データ定義情報が、誤った内容となってしまうことを防止可能となる。つまり、ローカル環境で複数のローカル端末２０側で同時期に共有データ定義の更新作業が行われる場合であっても、マスタ装置１０側の共有データ定義の整合性を保つことができる。
【０１１７】
更に、上記効果が得られることで、例えば、各ＰＬＣに応じて別々のローカル作業環境でプログラミング作業等を同時並行で進めることができ、プログラミング作業の効率化を図れるという効果を有する。
【０１１８】
ＰＬＣに関するプログラミング作業を実施する場合、変数とプログラムの情報は、ＰＬＣ単位で１つのプロジェクトとして管理されている。そこで、複数のＰＬＣで共有する変数（共通変数）に関する情報を管理する共有データ定義支援部１２を、マスタ装置１０を設けている。尚、プログラミング支援部１１は、単に、マスタ装置１０においてもプログラムの編集が可能というものであり、ここでは特に説明しない。
【０１１９】
共有データ定義支援部１２（２２）は、上述した本手法に係わる各種処理を実行するものであり、換言するならば、図１や図８に示す各種機能部の全部又は一部の処理機能を有するものと見做してもよいが、この例に限らない。
【０１２０】
図８は、マスタ装置１０とローカル端末２０の機能ブロック図である。尚、上記のことから、これは、共有データ定義支援部１２と共有データ定義支援部２２の機能が含まれているものと見做しても構わない。
【０１２１】
図示の例では、まず、マスタ装置１０は、各ＰＬＣに対応して、そのＰＬＣに係わるプログラムと“所定のキー情報が付与された共有データ定義情報”とを記憶する第１記憶部３１を有する。
【０１２２】
また、ローカル端末２０は、持出部４１、定義・キー更新部４２等を有する。
持出部４１は、任意のＰＬＣに係わるプログラムと共有データ定義情報のコピー等を、マスタ装置１０から取得する。定義・キー更新部４２は、持出部４１で取得した共有データ定義情報に対して任意の更新を行わせると共に、該更新に伴って当該共有データ定義情報に付与されている上記キー情報を更新する。
【０１２３】
そして、マスタ装置１０は、更に、許可判定部３２を有する。
許可判定部３２は、上記定義・キー更新部４２によって更新された後の共有データ定義情報によって、第１記憶部３１に記憶される共有データ定義情報を更新することを許可するか否かを、キー情報に基づいて判定する。つまり、マスタ装置１０側のキー情報と、ローカル端末２０側で上記のように更新されたキー情報とに基づいて、許可／不許可を判定する。
【０１２４】
尚、図示していないが、マスタ装置１０も上記定義・キー更新部４２と同様の処理機能を有していても構わない。尚、以下の説明において、定義・キー更新部４２と、マスタ装置１０における同様の処理機能とを、特に区別することなく説明する場合には「定義・キー更新部４２等」と記すものとする。
【０１２５】
ここで、既に述べたように、キー情報は、例えば図４で説明したように１以上の固有の識別情報から成るものである。
そして、上記定義・キー更新部４２は、新たな識別情報を生成して該識別情報をキー情報に追加することで、上記キー情報の更新を行うものである。
【０１２６】
そして、上記許可判定部３２は、マスタ装置１０側で保持するキー情報の全ての識別情報が、ローカル端末２０側のキー情報に存在する場合には、許可すると判定する。
ここで、本手法では、任意のローカル端末２０の上記定義・キー更新部４２による上記共有データ定義情報とキー情報の更新処理は、そのローカル端末２０がマスタ装置１０と接続できない環境下で行われることを、主に想定している。つまり、上記「現場」等のローカル環境で行われることを、主に想定している。
【０１２７】
また、上述した図１等に示す一例のように、上述した各ＰＬＣに対応する各共有データ定義情報に付与されるキー情報を、該当するプログラムにも付与するようにしてもよい。つまり、任意のＰＬＣに係わるプログラムと共有データ定義情報とには、同一のキー情報が付与されるようにしてもよい。尚、ここでも、プログラムとは、制御プログラムまたは制御プログラム群（プロジェクト）を意味するものとする。
【０１２８】
そして、例えば、上記定義・キー更新部４２は、共有データ定義情報のキー情報の更新の際に、同じＰＬＣに係わるプログラムのキー情報も同様に更新するようにしてもよい。つまり、例えば、上記生成した新たな識別情報を、共有データ定義情報のキー情報だけでなくプログラムのキー情報にも追加するようにしてもよい。
【０１２９】
また、ローカル端末２０は、更に、指定部４３、編集許可部４４等を有するものであってもよい。
指定部４３は、編集対象とするプログラムと共有データ定義情報を、作業者等に任意に指定させる。
【０１３０】
編集許可部４４は、指定部４３により指定されたプログラムのキー情報と、指定部４３により指定された共有データ定義情報のキー情報とが、同一ではない場合には、編集を許可しない。つまり、プログラムの編集や共有データ定義情報の更新を許可しない。この様に、指定されたプログラムと共有データ定義情報とが正しい組合せである場合、つまり同一のＰＬＣに係わるものである場合、これらの編集／更新が許可される。
【０１３１】
また、例えば、上記第１記憶部３１は、全てのＰＬＣに係わる共有データ定義情報を格納する共有データＤＢ１３を有するものであってもよい。そして、持出部４１は、該共有データＤＢ１３のコピーを取得するものであってもよい。この例の場合、ローカル端末２０は、編集対象とするプログラムを任意に指定させる不図示の指定部と、共有データＤＢ１３のコピーにおける各共有データ定義情報のなかで、該不図示の指定部で指定されたプログラムのキー情報と同一のキー情報が付与された共有データ定義情報のみ、その更新を許可する不図示の許可部とを、有するものであってもよい。
【０１３２】
尚、上記「定義・キー更新部４２等」は、例えば、自装置において任意のＰＬＣに係わる共有データ定義情報が生成／更新される毎に、これに付与される一意の情報（上記キー情報等）を新規生成／更新するものである。新規生成は、主にマスタ装置１０において行われる。つまり、マスタ装置１０は、自装置において任意のＰＬＣに係わる共有データ定義情報が新たに生成される毎に、それに対応する新規キー情報を新規生成する。一方、更新は、主に、各ローカル端末２０の定義・キー更新部４２が実行する。つまり、定義・キー更新部４２は、自装置において任意のＰＬＣに係わる共有データ定義情報が更新される毎に、それに対応するキー情報を更新する。キー情報の更新方法は、既に述べたように、任意に生成した固有の識別情報を、キー情報に追加するものである。
【０１３３】
また、上記許可判定部３２は、任意のローカル端末２０から例えば「ローカル環境で更新された、任意のＰＬＣに係わる共有データ定義情報を、マスタ装置１０側に反映させる」旨の要求があった場合、この要求に対して上記のように許可／不許可を判定する。
【０１３４】
この判定方法は、既に述べたように、例えば、マスタ側の共有データ定義情報のキー情報の全ての識別情報が、ローカル側の共有データ定義情報のキー情報に存在する場合には、許可するものと判定する。換言すれば、この様な場合には、ローカル側の共有データ定義情報は、現在のマスタ側の共有データ定義情報を元に編集されたものであるとし見做して、更新を許可する。これによって、マスタ側で記憶・管理する共有データ定義情報に対して、誤った上書きが行われる事態を防止することができる。
【０１３５】
また、マスタ装置１０は、更に、更新実施部３３を有するものであってもよい。
更新実施部３３は、上記許可判定部３２で許可すると判定された場合には、更新する側（ローカル側）の共有データ定義情報によって、更新される側（マスタ側）の共有データ定義情報を更新する。これは、例えば、既存のマスタ側の共有データ定義情報は消去して、ローカル側の共有データ定義情報を、新たなマスタ側の共有データ定義情報とする。尚、これに伴って、マスタ側のキー情報が、ローカル側の共有データ定義情報のキー情報に置き換えられる。また、尚、上記マスタ側の共有データ定義情報の更新は、例えば、指定されたＰＬＣに係わる共有データ定義情報を更新するが、この例に限らない。例えば、ＤＢ１３全体を、ＤＢ２３の内容へと更新するようにしてもよい。
【０１３６】
また、上記のようにプログラムにもキー情報を付与して、プログラムと共有データとの正当な組合せをキー情報に基づいて管理することで、誤った組み合わせで更新等が行われる事態を回避できる。また、例えば、管理していない別ツールでプロジェクト変更が行われた場合や、古い共有データ定義情報を元に編集した場合、キーの組み合わせが異なるので、共有データの更新を防止することが可能になる。つまり、作業者が誤って、異なる組み合わせによって、共有データ定義情報を更新するような事態を防止することができる。
【０１３７】
尚、特に図示していないが、マスタ装置１０は、更に、複数のプログラマブルコントローラの各プログラムを管理する機能部（プログラミング支援部１１に相当）を有していても良い。あるいは、複数のプログラマブルコントローラで共有する変数（共通変数）に関する定義情報を、任意に設定させる機能部を有していてもよい。これは、例えば図７（ｂ）に示す画面により、作業者等に任意に設定させるものである。上記定義情報は、例えば、変数名、変数に係わるプログラマブルコントローラ、変数の割当アドレス等などである。変数に係わるプログラマブルコントローラは、変数の割当アドレスにアクセスするＰＬＣであり、リードまたはライトするものである。
【０１３８】
上述したように、本例の共有データ定義支援システム等によれば、共有データ定義を管理するマスタ装置１０と、該共有データ定義の更新に係わる作業が行われる複数のローカル端末２０とを有するシステムにおいて、ローカル環境で複数のローカル端末２０で各々共有データ定義の更新作業が行われる場合であっても、マスタ装置１０側の共有データ定義の整合性を保つことができる。
【符号の説明】
【０１３９】
１０  マスタ装置
１１  プログラミング支援部
１２  共有データ定義支援部
１３  共有データＤＢ（データベース）
２０  ローカル端末
２１  プログラミング支援部
２２  共有データ定義支援部
２３  共有データＤＢ（データベース）
３１  第１記憶部
３２  許可判定部
３３  更新実施部
４１  持出部
４２  定義・キー更新部
４３  指定部
４４  編集許可部
【図２】
2015018349.tif 000003
【図３】
2015018349.tif 000004
【図４】
2015018349.tif 000005
【図５】
2015018349.tif 000006
【図６】
2015018349.tif 000007
【図７】
2015018349.tif 000008
【図８】
2015018349.tif 000009
【図１】
2015018349.tif 000010
【図９】
2015018349.tif 000011