(57)【特許請求の範囲】
【請求項１】
制御システムを構成する各機器のプログラムを作成するためのプログラム作成ツール群と、プログラム作成のための各機器のオブジェクトに対応した変数名及び属性データ定義を共有するデータ共有手段とを備え、
上記プログラム作成ツール群の各プログラム作成ツールは、上記オブジェクトの属性データを変更したプログラムを作成するとともに、この変更された属性データを上記データ共有手段に転送し、
上記変更された属性データを転送されたデータ共有手段は、他の機器でこの属性データに対応するオブジェクトが参照されているか検索して、参照している機器のプログラムを作成する各プログラム作成ツールにオブジェクトの更新を通知し、
この通知を受けた各プログラム作成ツールは、上記データ共有手段から変更された属性データを取得し、この属性データに基づき各機器のプログラムを修正することを特徴とするプログラミング装置。
【請求項２】
オブジェクトの更新の通知は、参照対象のプログラム作成ツールが起動時に確認を行う格納領域に対して行われることを特徴とする請求項１に記載のプログラミング装置。
【請求項３】
制御システムを構成する各機器のプログラムを作成するためのプログラム作成ツール群と、プログラム作成のための各機器のオブジェクトに対応した変数名及び属性データ定義を共有するデータ共有手段と、データ共有手段でのオブジェクト共有のデータ定義、変更を行うオブジェクトデータ定義手段とを備え、
上記オブジェクトデータ定義手段は、上記データ共有手段における上記オブジェクトの属性データの変更を行い、
上記属性データが変更されたデータ共有手段は、他の機器でこの属性データに対応するオブジェクトが参照されているか検索して、参照している機器のプログラムを作成する各プログラム作成ツールにオブジェクトの更新を通知し、
この通知を受けた各プログラム作成ツールは、上記データ共有手段から変更された属性データを取得し、この属性データに基づき各機器のプログラムを修正することを特徴とするプログラミング装置。
【請求項４】
制御システム内の機器で使用する頻度の高いオブジェクトがいくつか基本型として既に登録されていると共に、上記制御システムで実際に使用するオブジェクトを登録された基本型より選択するシステムコンフィグレーションツールを備えたことを特徴とする請求項３に記載のプログラミング装置。
【請求項５】
制御システムを構成する各機器のプログラムを作成するためのプログラミング方法において、
予め設計した仮想オブジェクトに基づき、各機器のオブジェクトに対応した変数名及び属性データ定義を行うと共に、該オブジェクトを使用する機器の指定を行いデータ共有手段に登録する工程と、
指定を受けた該オブジェクトを使用する機器のプログラム作成ツールに対して上記オブジェクトを通知する工程と、
通知を受けた上記プログラム作成ツールが上記データ共有手段に登録された上記オブジェクトに基づき機器のプログラミングを行う工程と、
を備えたプログラミング方法。
【発明の詳細な説明】
【０００１】
【技術分野】
この発明は、プログラマブルコントローラを含む制御システム全体のプログラミング装置に関わり、特にオブジェクトに対応したデータ定義と、その共有方法、さらにそれによるシステム構築時間の大幅短縮及び共有オブジェクトによるシステム稼動時のプログラム連携動作に関するものである。
【０００２】
【背景技術】
従来、プログラマブルコントローラ、表示手段としての表示装置、監視用コンピュータとしてのシステム監視装置などの各機器で構成される制御システムにおいて、該制御システムで使用する各機器を動作させるために必要なプログラム部のプログラミングは、それぞれ専用の別ツールにより行い、それぞれプログラマブルコントローラ、表示装置、通信ユニット、システム監視装置などの各機器に書きこんでいた。
【０００３】
これらプログラム部の一例としては、プログラマブルコントローラに対する１０ｍｓｅｃ程度の周期で機械の制御を行う制御プログラム、表示装置に対する機械の状態表示や条件設定用のパラメータの値を扱う表示／入力プログラム、通信ユニットに対するイーサネットやフィールドネットワークなど通信ユニットの通信パラメータや通信相手局などを設定し相手局との通信を行う通信プログラム、システム監視装置に対するプログラマブルコントローラの機械の状態を示す変数をモニターし、その値に応じて生産ラインの異常を検知して生産ラインの作業者に知らせるシステム監視アプリケーションがあげられ、それぞれ専用の別ツールにより作成され、別ツールからダウンロードすることにより書き込まれる。
【０００４】
第８図は、プログラマブルコントローラ、表示装置、システム監視装置などで構成される制御システムにおける各プログラム部を作成、書き込みを行う際の動作概要を示した状態図である。
【０００５】
図において、１は機械装置群５を制御するプログラマブルコントローラ、２は機械装置群５の状態を表示する表示装置、３は生産ラインの異常を検知して、生産ラインの作業者に知らせるシステム監視装置、４はプログラマブルコントローラ１、システム監視装置３を接続するためのネットワーク、５はプログラマブルコントローラ１で制御する機械装置群、６は生産ライン全体のシステム設計を行うシステム設計用ＣＡＤ、１７はシステム設計用ＣＡＤ６で作成したシステム設計資料を参照し、プログラマブルコントローラ１、表示装置２、システム監視装置３等のプログラム部を個別に作成するプログラミング手段としての周辺装置である。
【０００６】
ここで、プログラマブルコントローラ１は、所定の制御プログラム部に基づき動作する制御ユニット１１、機械装置群５との入出力を行うＩ／Ｏユニット１２、所定の通信プログラム部に基づきネットワーク４を介して通信を行う通信ユニット１３を有している。
【０００７】
また、システム設計用ＣＡＤ６は、機械装置群５の状態情報の変数／条件設定の変数／エラー情報の変数などを汎用に定義した仮想オブジェクト６１を作成する。
【０００８】
システム設計用ＣＡＤ６では、まずシステムを構築する際に、システムの機能・処理などを設計し、そこで使用される機械装置を制御するための仮想オブジェクト６１として、例えば制御出力や状態入力などの入出力変数や、機械動作の条件を設定するデータ変数、システムエラー発生時に該当するプログラム個所検索を行い、ユーザに表示する動作を記述したアラームオブジェクトなどを、システム全体で共通の変数名及びデータタイプなどの属性で定義する。
【０００９】
さらに、周辺装置１７は、表示装置２において機械装置群５の状態情報などを表示するための表示プログラム部１７１ａを作成する表示プログラム作成ツール１７１、プログラマブルコントローラ１の制御ユニット１１における制御装置群５を制御するための制御プログラム部１７２ａを作成する制御プログラム作成ツール１７２、プログラマブルコントローラ１の通信ユニット１２におけるプログラマブルコントローラ同士やシステム監視装置３などとネットワーク４を介して通信するための通信プログラム部１７３ａを作成する通信プログラム作成ツール１７３、ラインの状態を監視するシステム監視装置３における生産ラインの異常などを検知し操作者に知らせるためのシステム監視プログラム部１７４ａを作成するシステム監視プログラム作成ツール１７４を有し、各プログラム部を個別に作成する。
【００１０】
次に、システム設計用ＣＡＤ６で作成された制御対象の仮想オブジェクト６１に基づき、周辺装置１７により各プログラム部を作成し、プログラマブルコントローラ１、表示装置２、システム監視装置３等に該プログラムをダウンロードする際の動作について説明する。
【００１１】
制御対象の仮想オブジェクト６１は、その入出力変数やそのデータ変数やアラームオブジェクトなどの表として印字され、該印字された表を操作者が参照しながら、表示プログラム作成ツール１７１、制御プログラム作成ツール１７２等で、その変数に対応した「Ｘ１０」「Ｙ２０」「Ｄ１００」「Ｍ５０」などの物理アドレスを実際の機械装置群５との接続を確認しながら手作業で割り振っていき、制御プログラムなどの各プログラム部をそれぞれ個別に作成する。
【００１２】
例えば、制御ユニット１１に接続される表示装置２にて動作する表示プログラム部１７１ａは、その表示装置２の機種に応じて用意された表示プログラム作成ツール１７１により作成された後、表示装置２に書き込まれる。
【００１３】
そして、表示プログラム部１７１ａが表示装置２上で動作することにより、「Ｄ１００」「Ｍ５０」などのデータの物理アドレスを使用して、プログラマブルコントローラ１の通信ポートを経由して指定されたアドレスのデータを取得し、それを対応するデータ変数に表示プログラム部１７１ａが置き換えて、最終的に図表などを併用して機械の稼動状態、システムの動作状況、機械から取得する診断情報などを表示装置２に表示する。
【００１４】
なお、プログラマブルコントローラ１の通信ポートを経由して、指定されたデータを取得するため、先に制御プログラム部１７２ａで「Ｄ１００」とアドレスを割り付けたデータ変数の値を取得するには、表示プログラム部１７１ａで「Ｄ１００」のアドレスを読み出すように、再度アドレス情報を設定する必要がある。
【００１５】
また、機械装置群５に対する制御を行う制御プログラム部１７２ａは、制御ユニット１１の機種に応じて用意された制御プログラム作成ツール１７２により作成され、その中で使用する名前で定義された入出力変数及びデータ変数に応じて、実際にはＩ／Ｏやデータの物理アドレス「Ｘ１０」「Ｙ２０」「Ｄ１００」「Ｍ５０」などを使用し、制御ユニット１１に書き込まれる。
【００１６】
また、制御ユニット１１に接続した通信ユニット１３に対してアクセスするための通信プログラム部１７３ａは、その通信ユニット１３の機種に応じて用意された通信プログラム作成ツール１７３により作成され、交信相手の登録情報や交信手段の選択などのパラメータを、通信プログラム作成ツール１７３により設定して、通信ユニット１３の不揮発性メモリーに書きこみ、通信プログラム部１７３ａを制御ユニット１１に、先の制御プログラム部１７２ａとあわせて書き込まれる。
【００１７】
そして、通信プログラム部１７３ａが制御ユニット１１上で動作することにより、制御対象のオブジェクトである状態変数やエラー情報詳細などのデータを、システム中統括的位置付けのプログラマブルコントローラ１（局番０１とする）がデータ収集するために、読み出し相手局番号（「０２」番、「０３」番など）／読み出しデータ先頭アドレス（「Ｄ２００」、「Ｄ３００」など）／読み出しデータ長などを組み合わせることにより、通信で使用する例えば通信パケットのようなフォーマットに変換して通信ユニット１３に転送し、通信ユニット１３は外部のコンピュータ上の他のアプリケーションや、他のプログラマブルコントローラ１などと交信することができる。
【００１８】
なお、プログラマブルコントローラ１（局番０２）で、接続する機械の状態を格納するデータ変数を、この局対応の制御プログラム部１７２ａで「Ｄ２００」のアドレスに割り付けた場合、表示プログラム部１７１ａで局番０２のプログラマブルコントローラ１に接続した機械の状態を表示するには、「局番０２のＤ２００」のアドレスを割り付ける必要があり、局番０１の通信プログラム部１７３ａでは読み出し相手局番号（「０２」番、「０３」番など）／読み出しデータ先頭アドレス（「Ｄ２００」、「Ｄ３００」など）／読み出しデータ長などを、それに応じて読み出すようにプログラムしておく必要がある。
【００１９】
また、この通信ユニット１３を経由して、制御対象のオブジェクトである入出力変数やデータ変数の値を入手するシステム監視装置３にて動作するシステム監視プログラム部１７４ａは、その機種に応じて用意されたシステム監視プログラム作成ツール１７４により作成された後、システム監視装置３に書き込まれる。
【００２０】
そして、システム監視プログラム部１７４ａがシステム監視装置３上で動作することにより、オブジェクトに対応したデータ変数を使用し、図表などを併用してシステムの稼動状態表示、異常発生個所の特定などを行う。
【００２１】
なお、このために先に制御プログラム部１７２ａ、表示プログラム部１７１ａ、通信プログラム部１７３ａで定義したオブジェクトのデータ変数のアドレス（「Ｄ１００」、「Ｄ２００」、「Ｄ３００」、「Ｄ５００」など）を、システム監視部３で使用し、局番「０１」、局番「０２」、局番「０３」などのプログラマブルコントローラ１の通信ユニット１３を経由して、読み出し相手局番号「０１」／読み出しデータ先頭アドレス「Ｄ１００」／読み出しデータ長３００、読み出し相手局番号「０２」／読み出しデータ先頭アドレス「Ｄ５００」／読み出しデータ長１００、読み出し相手局番号「０３」／読み出しデータ先頭アドレス「Ｄ５００」／読み出しデータ長１００などのように、プログラムしておく必要がある。
【００２２】
システム設計に従ったプログラマブルコントローラ等の各プログラム部の作成は、機械を制御するための入出力変数とデータ変数やその他のオブジェクトを参照し、システム中での名前の定義と、各プログラム部におけるアドレスの割り付けを、全て個別にプログラミングを行う必要がある。
そのため、「機械の状態を示す変数」、「機械の条件設定の変数」、「システムエラー発生時の対応動作を記述するオブジェクト」等は、実際の生産ラインの中では一つのオブジェクトであるが、各機器用の専用の別ツールで、それぞれ個別にプログラムの中に「Ｄ１００」や「M５０」などの変数アドレスのどのアドレスから読み出すか等を繰り返し定義しなければならず、プログラミング作業効率が低い状態であった。
【００２３】
また、プログラマブルコントローラ等の各プログラム部を個々に作成し、システムとして動作させることはできるが、例えば状態変数を一つ割り込んで追加するなどの簡単なシステム変更があった場合に、各プログラム部でのデータ変数のアドレス割付を、例えば「Ｄ１００」から配列形式で５０個と割り付けていたものを、「Ｄ１０１」から配列形式で５０個と割り付けを変える場合は、表示プログラム部１７１ａ、制御プログラム部１７２ａ、通信プログラム部１７３ａの、それぞれのプログラミングツールを起動して、まず各プログラム部を読み出し、割り付けを「Ｄ１０１」から配列形式で５０個と変更して、再度書きこむ必要があり、システム変更に伴う作業時間がかかりすぎ、作業コストがかさむ問題があった。
【００２４】
特に、表示プログラム部１７１ａやシステム監視プログラム部１７４ａの表示・監視系アプリケーションと、制御プログラム部１７２ａの制御系アプリケーションでは、多くのオブジェクトが共有できるにもかかわらず、同一メーカの異なる機種間や、複数のメーカの各機器のプログラミングツール間で、共通するオブジェクトを交換する仕組みが無く、システム規模が大きくなるのにつれ、その共通オブジェクトを人手で管理して反映する作業コストが大きな負担となっていた。
【００２５】
【発明の開示】
この発明は上述のような課題を解決するためになされたもので、第１の目的は、システムで定義されたオブジェクトをプログラム作成ツール間で共有し、システム構築を容易とするプログラミング装置を得ることである。
また、第２の目的は、共有する際に、共有対象の機器を選択することにより、共有対象への自動通知を可能とし、共有対象先のプログラム作成ツールでの作業負荷を低減するプログラミング装置を得ることである。
さらに、第３の目的は、共有すべきオブジェクトの定義、変更作業の負荷を低減するプログラミング装置を得ることである。
さらにまた、第４の目的は、以前から有しているオブジェクトを有効に活用することにより、オブジェクト登録作業を低減し、よりシステム構築を容易とするプログラミング装置を得ることである。
また、第５の目的は、オブジェクト登録作業の信頼性を向上するプログラミング装置を得ることである。
また、第６の目的は、オブジェクトの変更に基づく、プログラムの修正作業を容易に行うことができるプログラミング装置を得ることである。
また、第７の目的は、オブジェクトの共有により、システム稼動時の各種プログラム連携動作を容易とするプログラミング装置を得ることである。
【００２６】
この発明にかかるプログラミング装置は、制御システムを構成する各機器のプログラムを作成するためのプログラム作成ツール群と、プログラム作成のための各機器のオブジェクトに対応した変数名及び属性データ定義を共有するデータ共有手段とを備え、上記プログラム作成ツール群の各プログラム作成ツールは、上記オブジェクトの属性データを変更したプログラムを作成するとともに、この変更された属性データを上記データ共有手段に転送し、上記変更された属性データを転送されたデータ共有手段は、他の機器でこの属性データに対応するオブジェクトが参照されているか検索して、参照している機器のプログラムを作成する各プログラム作成ツールにオブジェクトの更新を通知し、この通知を受けた各プログラム作成ツールは、上記データ共有手段から変更された属性データを取得し、この属性データに基づき各機器のプログラムを修正することを特徴とするものである。
【００２７】
また、データ共有手段でのオブジェクト共有のデータ定義、変更を行うオブジェクトデータ定義手段を備え、上記オブジェクト管理を一括管理するものである。
さらに、制御システム内の機器で使用する頻度の高いオブジェクトがいくつか基本型として既に登録されていると共に、上記制御システムで実際に使用するオブジェクトを登録された基本型より選択するシステムコンフィグレーションツールを備えたものである。
【００２８】
また、この発明にかかるプログラミング方法は、制御システムを構築するための各機器を動作させるためのプログラムを作成するためのプログラミング方法において、予め設計した仮想オブジェクトに基づき、各機器のオブジェクトに対応した変数名及び属性データ定義を行うと共に、該オブジェクトを使用する機器の指定を行いデータ共有手段に登録する工程と、指定を受けた該オブジェクトを使用する機器のプログラム作成ツールに対して上記オブジェクトを通知する工程と、通知を受けた上記プログラム作成ツールが上記データ共有手段に登録された上記オブジェクトに基づき機器のプログラミングを行う工程と、を備えたものである。
【００２９】
【発明を実施するための最良の形態】
次に、本発明について、以下のとおり、実施の形態を説明する。
実施の形態１．
第１図は、プログラマブルコントローラ、表示装置、システム監視装置などで構成される制御システムにおける各プログラム部を作成、書き込みを行う際の動作概要を示した状態図であり、データ共有型プログラミング装置の基本構成を示すものである。
【００３０】
図において、１は制御プログラム部と通信プログラム部を稼動させることにより、例えば機械装置群５を制御したり、ネットワークを介して通信を行うプログラマブルコントローラ、２は表示プログラム部をダウンロードして稼動させることにより、例えば機械装置群５の状態を表示する表示装置、３はシステム監視プログラム部を稼動させることにより、例えば生産ラインの異常を検知して、生産ラインの作業者に知らせるシステム監視装置、４はプログラマブルコントローラ１、システム監視装置３を接続するためのネットワーク、５はプログラマブルコントローラ１で制御する機械装置群、６は生産ライン全体のシステム設計を行い、制御対象３の仮想オブジェクトを定義するためのシステム設計用ＣＡＤ、７はシステム設計用ＣＡＤ６で作成したシステム設計資料を参照し、プログラマブルコントローラ１、表示装置２、システム監視装置３等のプログラム部を個別に作成するデータ共有型プログラミング手段としての周辺装置である。
【００３１】
ここで、プログラマブルコントローラ１は、所定の制御プログラム部に基づき動作する制御ユニット１１、機械装置群５との入出力を行うＩ／Ｏユニット１２、所定の通信プログラム部に基づきネットワーク４を介して通信を行う通信ユニット１３を有している。
【００３２】
また、システム設計用ＣＡＤ６は、機械装置群５の状態情報の変数／条件設定の変数／エラー情報の変数などを汎用に定義した仮想オブジェクト６１を作成する。
システム設計用ＣＡＤ６では、まずシステムを構築する際に、システムの機能・処理などを設計し、そこで使用される機械装置を制御するための仮想オブジェクト６１として、例えば制御出力や状態入力などの入出力変数や、機械動作の条件を設定するデータ変数、システムエラー発生時の対応動作を記述するオブジェクトなどを、システム全体で共通の変数名及びデータタイプなどの属性で定義する。
【００３３】
さらに、周辺装置７は、表示装置２において機械装置群５の状態情報などを表示するための表示プログラム部７１ａを作成する表示プログラム作成ツール７１、プログラマブルコントローラ１の制御ユニット１１における制御装置群５を制御するための制御プログラム部７２ａを作成する制御プログラム作成ツール７２、プログラマブルコントローラ１の通信ユニット１２におけるプログラマブルコントローラ同士やシステム監視装置３などとネットワーク４を介して通信するための通信プログラム部７３ａを作成する通信プログラム作成ツール７３、ラインの状態を監視するシステム監視装置３における生産ラインの異常などを検知し操作者に知らせるためのシステム監視プログラム部７４ａを作成するシステム監視プログラム作成ツール７４を有し、各プログラム部を個別に作成する。
【００３４】
また、周辺装置７は、複数の各プログラム作成ツールで参照するオブジェクトデータを共有するためのデータ共有手段としてのオブジェクト定義データ共有用サーバ７５を備えており、各プログラム作成ツールにはデータ共有用サーバ７５と更新するためのインタフェース部を有している。
【００３５】
なお、本実施の形態では、データ共有用サーバ７５を周辺装置７内部に設けているが、周辺装置７をネットワークで接続された別体として構築してもよく、例えばシステム設計用ＣＡＤ６の一機能として実現することも可能である。
【００３６】
第２図は、オブジェクトデータを共有するためのデータ共有用サーバ７５において、オブジェクトを各機器のプログラム部のどこで参照するかが定義されたオブジェクト管理テーブル、および関連するオブジェクトのシステム構成管理ツリーである。
【００３７】
図において、８１は各プログラム部で使用されるオブジェクト名、８２はデータタイプ、使用する変数の物理アドレス、個数等を示す属性、８３は各オブジェクトがどの機器のプログラム部で参照されるかを示すオブジェクトリンクテーブルであり、対象の機器が本オブジェクトを参照する場合は１、未参照の場合は０が設定される。
【００３８】
８４はオブジェクトの属性８２またはオブジェクトリンクテーブル８３が更新されたか否かを示す更新ステータスであり、更新時は１、更新反映完了または未更新時は０が設定されている。
【００３９】
８５は各オブジェクトを、システム構成上の位置付けを明確にして管理するための、システム構成管理ツリー、８６はそのツリーの第一レベルのクラスである、PC（制御・通信）プロジェクト／SCADA（システム監視）プロジェクト／HMI（表示）プロジェクトなどのプロジェクトの識別子ID、８７はツリーの第二レベルのクラスである、局番／ネットワークタイプ／通信タイプなどを示すノードの識別子IDである。
【００４０】
８８は、ツリーの第三レベルのクラスである、「制御プログラム」、ネットワークを経由して通信するスレーブ機器と交信するために、PCのネットワークマスターユニットに読み込んでパラメータファイル化して格納するための「スレーブパラメータ」、PCプロジェクトで使用される「I/O、データ変数」、SCADAプロジェクトで使用される「I/O、データ変数」、HMIプロジェクトで使用される「I/O、データ変数」などのオブジェクトである。
【００４１】
第２図で示される一例は、オブジェクト「Number Of Parts」で定義する配列形式で１００個の変数を、アドレス「Ｄ１００」の属性として割り付け、プログラマブルコントローラ局番０１（以下、ＰＣ局番と称す）の表示プログラム部７１ａ、制御プログラム部７２ａ、通信プログラム部７３ａ、ＰＣ局番０２の制御プログラム部７２ａ、及びＰＣ局番０３の制御プログラム部７２ａ、並びにシステム監視プログラム部７４ａで参照することを示している。
【００４２】
また、別のオブジェクト「Process Parameter」「Processed Accracy」「Acceptance」なども同様に定義して、アドレスを割り付け、参照する／しないを設定された様子を示している。なお、最初の設定時は、全てのオブジェクトの更新ステータス８４は０とする。
【００４３】
さらに、オブジェクト管理テーブルのオブジェクトを、システム構成上、どの部分に位置するかを管理するため、システム構成管理ツリー８５の形式で格納するが、プロジェクトIDおよびノードIDとの組み合わせにより、システム構成から見たオブジェクトの検索、およびオブジェクトが変更された場合に、どの制御プログラムに関係するかの逆検索も行うためのものである。
【００４４】
次に、システム設計用ＣＡＤ６で定義した制御対象の仮想オブジェクト６１に沿って、周辺装置７により各プログラム部を作成し、プログラマブルコントローラ１、表示装置２、システム監視装置３等に該プログラムをダウンロードする際の動作について第１図を用いて説明する。
【００４５】
制御システムの初期設定時、制御対象の仮想オブジェクト６１の内容は、その入出力変数やそのデータ変数、アラームなどのオブジェクトの表として印字され、該印字された表を操作者が参照しながら、まず表示プログラム作成ツール７１、制御プログラム作成ツール７２等で、その変数に対応した「Ｘ１０」「Ｙ２０」「Ｄ１００」「Ｍ５０」などの物理アドレスを実際の機械装置群５との接続を確認しながら手作業で割り振っていき、制御プログラムなどを作成する。
【００４６】
この際、プログラム作成ツールは、システム中の共通部分で使用する目的で、プログラム作成ツールの通常の変数設定画面に属性データ設定欄を追加することにより、変数名及び割り付けアドレスの形でオブジェクトとその属性データを作成し、そのオブジェクトを格納した時点で、プログラム作成ツールに組み込んだデータ共有用サーバ７５へのインタフェース部を介して、サーバへの回線接続、オブジェクトの追加／変更／消去、変更ステータス処理、サーバとの回線切断を行い、データ共有用サーバ７５のオブジェクト管理テーブルに作成したオブジェクトとその属性データを転送登録する。インタフェース部からデータ共有用サーバに対して使用できる「データベースアクセスコマンド」は、アクセス回線接続のための「Open」、オブジェクトの追加／変更／消去のための「Add／Mod／Del」、変更ステータス処理などオブジェクトが変更された場合に実行される情報であるスクリプトを起動するための「Run：Script」、アクセス回線切断のための「Close」である。この場合に、「Run：Script」で実行されるスクリプトは、「属性データによるアドレス変換、オブジェクトリンクおよびシステム構成管理ツリー設定画面表示」である。
【００４７】
そして、データ共有用サーバ７５は、他のプログラム部で参照するか否か、およびそのシステム構成ツリーを設定する画面をスクリプトに従い表示し、操作者は他のプログラム部で参照するかしないかを選択し、参照する場合には使用されるプロジェクトのID、ノードのIDも設定し、システム構成管理ツリーとして格納する。オブジェクト管理テーブルおよびシステム構成管理ツリーの設定を、操作者が完了／格納した時点で、サーバーはそのオブジェクトの変更を通知するための、「Post  Modify」コマンドを発行する。このコマンドにより、変更されたオブジェクトを使用するプロジェクトをプロジェクトID、ノードIDから逆検索し、そのプログラム作成ツールを起動する。このようにして、そのオブジェクトを参照する各プログラム作成ツールに対し、参照するオブジェクトの内容を転送する。
【００４８】
この際、そのオブジェクトを参照する各プログラム作成ツールから、組み込まれたインタフェース部を介して、データ共有用サーバ７５に回線が接続されている場合には、参照するオブジェクトの追加／変更／消去内容が、その時点で転送され、回線が切断されている場合には、該プログラム作成ツールの立ち上げ時に格納領域のメッセージキューにより、またはプログラムを格納する際に、使用するオブジェクトが変更されていないか、データ共有用サーバ７５に回線接続して、最新の内容を取得する。
【００４９】
例えば、機械装置群５に対する制御を行う制御プログラム部７２ａは、制御ユニット１１の機種に応じて用意された制御プログラム作成ツール７２により作成され、その中で使用する名前で定義された入出力変数及びデータ変数に応じて、制御ユニット１１に書き込まれる。
【００５０】
この際、制御プログラム作成ツール７２は、制御プログラム部７２ａの作成と共に、制御で使用するオブジェクトとその属性データを、システム全体で使用する目的で、制御プログラム作成ツール７２の設定画面により変数名及び割り付けアドレスの形で作成する。
【００５１】
次に、制御プログラム作成ツール７２から、インタフェース部を介してデータ共有サーバ７５のオブジェクト管理テーブルに、さきほど作成された変数名、属性データが、回線接続／オブジェクトの追加／回線切断の手順で、データベースアクセスコマンドの「Open／Add／Close」により転送されて、更新ステータス８４はＯＮ（１）で新たに登録される。
【００５２】
データ共有用サーバー７５は、他のプログラム部で参照するか、およびシステム構成管理ツリーを設定する画面を表示し、操作者が他のプログラム部で参照する／しない、および参照する場合の関連プロジェクトのIDを設定し、その設定完了時点でサーバはそのオブジェクトの追加を通知するため「PostAdd」コマンドを発行し、そのオブジェクトを参照する各プログラム作成ツールに、参照するオブジェクトの内容を転送する。
【００５３】
同様に、表示プログラム作成ツール７１／通信プログラム作成ツール７３／システム監視プログラム作成ツール７４でも、システム全体で使用する目的で、変数名および割り付けアドレスの形でオブジェクトとその属性データを作成する。
【００５４】
その作成内容の変数名や属性データの割り付けアドレスが、それ以前に登録されて参照フラグが１であるため転送されてきた別のオブジェクトと重複する場合には、各プログラム作成ツールにて警告メッセージを表示し、作成内容を重複しないように修正して、順次データ共有用サーバ７５に転送し、更新ステータス８４をＯＮで登録する。
【００５５】
最終的に、全てのプログラム部を一通り作成した時点で、データ共有用サーバー７５のオブジェクト整合性チェックスクリプトを、インタフェース部を通して、「Run：Script」コマンドにより実行して、オブジェクト名・属性の割り付けアドレスに重複がないかチェックし、重複があった場合には、データ共有用サーバーの設定画面により、オブジェクト管理テーブルの内容を修正し、重複を無くした後に、全てのオブジェクトの更新ステータス８４をＯＦＦ（０）にする。（第２図ａ参照）
【００５６】
以上の説明した如く、制御システムの初期設定時における、最初のプログラム部の作成は、その入出力変数やそのデータ変数の表として印字された仮想オブジェクトを参照し、プログラム作成ツールで、その変数に対応した「Ｘ１０」「Ｙ２０」「Ｄ１００」「Ｍ５０」などの物理アドレスを実際の機械装置群５との接続を確認しながら手作業で割り振っていく。
【００５７】
しかし、割り振りが完了したオブジェクトとその属性データは、データ共用サーバ７５に該オブジェクト及びその属性データを参照するプログラム部が設定され、次プログラム部の作成時には、参照対象のオブジェクト及びその属性データがデータ共有用サーバ７５より転送されてくるので、システム中での名前の定義と、各プログラム部におけるアドレスの割り付けを、全て個別にプログラミングを行う必要が無くなり、プログラミング作業効率が向上する。
【００５８】
さらに、システム稼動時の例として、システム状態を監視するセンサーなどの入力変数と、その変数が特定の値の場合にシステムエラーとする条件、およびその入力変数を参照する各プログラム部を関連つけて、アラームオブジェクトとして定義しておき、システムエラーとなった場合に「Run：Script」を実行して、そのアラームオブジェクトを参照するプログラム部のプログラム作成ツールをプロジェクトIDの逆検索により起動して、システムエラーの要因となり得る、プログラム部の関連個所を表示し、システムエラーの原因究明のための情報を操作者に提供する。
【００５９】
次に、オブジェクトの配列個数がシステム調整時点の都合により変更された場合について第３図のフローチャートを用いて説明する。
【００６０】
制御プログラム作成ツール７２で制御プログラム部７２ａを作成中に、システム調整により、オブジェクト名「Number Of Parts」の配列個数を１００個から１０１個に変更する場合は、オブジェクト「Number Of Parts」の属性の個数を「１００」から「１０１」に変更し、それに伴い「Number Of Parts」の割り付けアドレスが「Ｄ２００」まで使用するため、オブジェクト「Process Parameter」の属性の割り付けアドレスを「Ｄ２００」から「Ｄ２０１」に変更する必要が生じる。
【００６１】
オブジェクト「Process Parameter」の属性の割り付けアドレスを、例えば「Ｄ２００」から「Ｄ２０１」に変更する場合には、ステップＳ１にて、制御プログラム作成ツール７２でオブジェクトの変数名に対応した割り付けアドレスを、変数設定画面のアドレス設定欄にて「Ｄ２０１」に書き換えて、制御プログラム作成ツール７２の「サーバーへのデータ転送」機能を画面上で選択した時点、またはアドレス設定欄の値などを変更した変数を含むプログラム部を格納した時点で、制御プログラム作成ツール７２に組み込まれたインタフェース部を介して、データ共有用サーバへの回線接続（データベースアクセスOpenコマンド）、該当オブジェクトの検索（Findコマンド）、該当オブジェクトへの新規データ書きこみ（Modifyコマンド）、回線切断（Closeコマンド）を行い、その変更内容をデータ共有用サーバ７５内のオブジェクト管理テーブルに転送し、「Run：Script」を実行する。（第２図ｂ参照）
【００６２】
続いてステップＳ２にて、データ共有用サーバー７５は、スクリプトに従い、該当するオブジェクトの登録履歴と比較し、新しければ新しい内容に更新し、そのオブジェクトの更新ステータス８４をＯＮにし、ステップＳ３に移行する。
【００６３】
ステップＳ３では、更新ステータスがＯＮとなることにより、データ共有用サーバ７５が他の機器でこのオブジェクトが参照されているか、オブジェクトリンクテーブル８３の参照フラグ（１：参照する、０：参照しない）を検索し、参照している場合には（参照時は１）、該当する機器のプログラムを行うインタフェース部を通して「Post  Modify」コマンドを発行し、各プログラム作成ツールに、プログラム間のメッセージ通信手段またはネットワーク等により、更新されたオブジェクト名８１を通知する。
【００６４】
なお、更新されたオブジェクト名８１の通知は、各プログラム作成ツールの格納領域としてのメッセージキューに受信するように構成すればよく、仮に各プログラム作成ツール自体が起動されていない場合には、次にそのプログラム作成ツールが起動された時点で、メッセージキューから読み出し、通知されたことを認識する。
【００６５】
その後、ステップＳ４にて、通知された各プログラム作成ツールは、プログラムが参照するオブジェクトに関する最新の属性データ８２を「Readコマンド」によりデータ共有用サーバ７５に要求し、データ共有用サーバー７５は、最新の属性データ８２である変更された割り付けの開始アドレス「Ｄ２０１」及び個数３０を応答し、更新ステータスをＯＦＦにし、ステップＳ５に移行する。
【００６６】
ステップＳ５では、変更された割り付け開始アドレス「Ｄ２０１」および個数３０を受信した各プログラム作成ツールは、そのオブジェクトの変更された割り付けアドレスに従い、該当する変数をプログラムソース内部の変数テーブルで検索し、該当する変数のアドレス欄の内容を「Ｄ２０１から３０個（ワード）」に書きかえ、各プログラムを実行可能な状態に生成しなおす。
【００６７】
その後、ステップＳ６にて、最新の属性データである割り付けアドレスを反映したオブジェクトを共有して作成した各プログラム部を、各プログラム作成ツールにより、各H／Wに書きこむことにより、修正作業を終了する。
【００６８】
以上の動作により、オブジェクトの属性が変更されると、オブジェクト管理テーブルを持つデータ共有サーバ７５は、変更されたオブジェクトの変更ステータスを「ＯＦＦ：０」から「ＯＮ：１」書きかえ、さらに、変更ステータスが「ＯＮ：１」に書きかえられたオブジェクトを参照する各プログラム部に対して、変更内容を通知することにより、関連する各プログラム部のアドレス部分を修正するので、いずれかひとつのプログラム作成ツールにより、そのプログラム部におけるオブジェクトの属性データを変更するだけで、そのオブジェクトを参照する他のプログラム部を、さらに個別に各プログラム作成ツールを用いて繰り返し変更することなく、システムの変更を一度に行うことが可能になり、システム構築時間が大幅に短縮できる。
【００６９】
また、上述したデータ共有用サーバ７５及び各プログラム作成ツールは、周辺装置７上で動作するアプリケーションとして構成した場合、それら機能を有するプログラムは、光記録媒体或いは磁気媒体等の電子データを記録する媒体により配布され、該プログラムを周辺装置７上で実行することにより本機能が発揮されるものである。
【００７０】
実施の形態２．
第４図は、実施の形態１で説明した周辺装置７に対して、データ共有用サーバ７５に対するオブジェクトデータを定義、変更するためのオブジェクトデータ定義ツール７６を加えたデータ共有型プログラミング装置の基本構成を示すものである。
【００７１】
実施の形態１におけるオブジェクト管理テーブルの内容は、プログラム作成ツールの設定画面により作成し、組み込まれたインタフェース部を介して、回線接続（Openコマンド）／オブジェクト追加・変更・消去（Add、Mod、Del）／回線切断（Close）を行って転送したが、本実施の形態におけるオブジェクト管理テーブルは、オブジェクトデータ定義ツールに基づき、定義または変更が直接行えるようにし、定義または変更した内容はサーバーを通じてシステム全体に反映できるようにしたものである。
【００７２】
次に専用のオブジェクト定義ツール７６を使用した場合の動作について、第４図を用いて説明する。
システム設計用ＣＡＤ６で定義した制御対象の仮想オブジェクト６１に沿って、オブジェクトデータ定義ツール７６で、システム中の共通部分で使用する目的で、表示・制御・通信・システム監視で使用するオブジェクト名８１とその属性データ８２、及び各機器のどのプログラムで参照するかをオブジェクトリンクテーブル８３に設定し、更新ステータス８４をＯＮにして、オブジェクト管理テーブルに書きこむ。
【００７３】
データ共有用サーバー７５は、更新ステータス８４がＯＮのオブジェクトを、参照する各プログラム作成ツールに対しインタフェース部を介してメッセージ通信またはネットワーク等により通知する。
通知を受けた各プログラム作成ツールは、各プログラム部作成時にデータ共有用サーバ７５に新たに登録されたオブジェクトの変数名及び属性データの取得を要求し、データ共有用サーバ７５はオブジェクトの情報を送信後、該当するオブジェクトの更新ステータスをＯＦＦにする。
【００７４】
そして、各プログラム作成ツールは、データ共有用サーバ７５から応答で送信されたオブジェクトの変数名と割り付けアドレスなどの属性データを使用して、各プログラム部を作成する。
【００７５】
次に、各プログラム部を作成後に、システムの仕様が変更になった場合の動作を第５図のフローチャートを用いて説明する。
オブジェクト「Process Parameter」の割り付けアドレスを、例えば「Ｄ２００」から「Ｄ２０１」に変更する場合には、ステップＳ１１にて、オブジェクトデータ定義ツール７６で、該当するオブジェクトの属性データの割り付けアドレスを「Ｄ２０１」変更する。
【００７６】
続いてステップＳ１２にて、データ共有用サーバ７５は、属性の変更を格納した時点で、属性を変更されたオブジェクトの更新ステータス５５をＯＮにし、ステップＳ１３に移行する。
ステップＳ１３では、更新ステータスがＯＮとなることにより、データ共有用サーバ７５が他の機器でこのオブジェクトが参照されているか、オブジェクトリンクテーブル８３の参照フラグ（１：参照する、０：参照しない）を検索し、参照している場合には（参照時は１）、該当する機器のプログラムを行うインタフェース部を通して、各プログラム作成ツールに、プログラム間のメッセージ通信手段またはネットワーク等により、更新されたオブジェクト名を通知する。
【００７７】
なお、更新されたオブジェクト名８１の通知は、各プログラム作成ツールのメッセージキューに受信するように構成すればよく、仮に各プログラム作成ツール自体が起動されていない場合には、次にそのプログラム作成ツールが起動された時点で、メッセージキューから読み出し、通知されたことを認識する。
【００７８】
その後、ステップＳ１４にて、通知された各プログラム作成ツールは、プログラムが参照するオブジェクトに関する最新の属性データ８２をデータ共有用サーバ７５に要求し、データ共有用サーバー７５は、最新の属性データ８２である変更された割り付けアドレス「Ｄ２０１」を応答し、更新ステータスをＯＦＦにし、ステップＳ１５に移行する。
【００７９】
ステップＳ１５では、変更された割り付けアドレス「Ｄ２０１」を受信した各プログラム作成ツールは、そのオブジェクトの変更された割り付けアドレスに従い、プログラム部のアドレス部分を修正し、各プログラムを実行可能な状態に生成しなおす。
その後、ステップＳ１６にて、最新の属性データである割付アドレスを反映したオブジェクトを共有して作成した各プログラム部を、各プログラム作成ツールにより、各H／Wに書きこむことにより修正作業を終了する。
【００８０】
以上の動作により、上述した実施の形態１の効果に加え、オブジェクト管理テーブルは、オブジェクトデータ定義ツールにより容易に定義、変更が可能となり、システムで共有するオブジェクトの管理コストを低減することができる。
【００８１】
また、プログラマブルコントローラのオブジェクトに対応した属性定義を行うオブジェクトデータ定義ツール、そのデータを管理するデータ共有用サーバを備え、サーバからそのデータを参照するアプリケーションとしてのプログラム作成ツールに自動通知して反映する機能をデータ共有用サーバに設けて、各アプリケーションにより構成されるシステム内で、データ定義／管理を一元化することにより、属性定義および変更は別々のツールで行うことなく一回で済み、それを参照するプログラム作成ツールのアプリケーションに自動通知して反映することで、システムアプリケーションの構築・変更時間を大幅に短縮することができる。
さらに、システム稼動時の例として、アラームオブジェクトの場合などに、実施例１と同様に、システムエラー原因究明のための情報を提供する。
【００８２】
実施の形態３．
第６図は、実施の形態２で説明した周辺装置７に対して、システム設計用ＣＡＤ６と同一構成で、例えば以前のシステム構築時に使用した流用性の高いオブジェクトを、そのシステム構築後に他のシステム構築のために登録しておき、こうした登録済みの制御対象のオブジェクトから実際に使用するオブジェクトを選択し、オブジェクト定義ツール７６により、そのオブジェクトのデータに沿って定義を変更するシステムコンフィギュレーションツール７７を加えたデータ共有型プログラミング装置の基本構成を示すものである。
【００８３】
本実施の形態は、既にシステムの基本型があり、その一部の変更で実際のシステムを構築しようとする場合の動作に関するものであり、システム設計用ＣＡＤ６をベースとした、システムコンフィギュレーションツール７７を使用した場合の動作について第７図のフローチャートを用いて説明する。
【００８４】
まずステップＳ２１にて、システムコンフィギュレーションツール７７において、既に登録されている制御対象の仮想オブジェクトから、実際に使用するオブジェクトを選択し、オブジェクトデータ定義ツール７６により、仮にオブジェクト管理テーブルに定義していたオブジェクト（例えば属性のアドレスは「Ｄ２００」）を、実際に使用する別の属性（例えば「Ｄ２０１」）を持つ同一名のオブジェクトに変更するよう、ユーザが設定画面で指示し、ステップＳ２２に移行する。
【００８５】
ステップＳ２２では、この同一名の新しいオブジェクトが、データ共有用サーバ７５のオブジェクト管理テーブルに、同一名の仮のオブジェクトに上書きして書きこまれる。
そして、データ共有用サーバー７５では、各機器のプログラムで参照するかを示すオブジェクトリンクテーブル８３を、ユーザの設定画面で必要あれば修正し、更新ステータスをＯＮにする。
【００８６】
その後、ステップＳ２３にて、更新ステータスがＯＮとなることにより、データ共有用サーバ７５が他の機器でこのオブジェクトが参照されているか、オブジェクトリンクテーブル８３の参照フラグ（１：参照する、０：参照しない）を検索し、参照している場合には（参照時は１）、該当する機器のプログラムを行うインタフェース部を通して、各プログラム作成ツールに、プログラム間のメッセージ通信手段またはネットワーク等により、更新されたオブジェクト名を通知する。
【００８７】
なお、更新されたオブジェクト名８１の通知は、各プログラム作成ツールのメッセージキューに受信するように構成すればよく、仮に各プログラム作成ツール自体が起動されていない場合には、次にそのプログラム作成ツールが起動された時点で、メッセージキューから読み出し、通知されたことを認識する。
その後、ステップＳ２４にて、通知された各プログラム作成ツールは、プログラムが参照するオブジェクトに関する最新の属性データ８２をデータ共有用サーバ７５に要求し、データ共有用サーバー７５は、最新の属性データ８２である変更された割り付けアドレス「Ｄ２０１」を応答し、更新ステータスをＯＦＦにし、ステップＳ２５に移行する。
【００８８】
ステップＳ２５では、変更された割り付けアドレス「Ｄ２０１」を受信した各プログラム作成ツールは、そのオブジェクトの変更された割り付けアドレスに従い、プログラム部のアドレス部分を修正し、各プログラムを実行可能な状態に生成しなおす。
その後、ステップＳ２６にて、最新の属性データである割付アドレスを反映したオブジェクトを共有して作成した各プログラム部を、各プログラム作成ツールにより、各H／Wに書きこむことにより修正作業を終了する。
【００８９】
以上の動作により、上述した実施の形態１の効果に加え、既にシステムの基本型があり、その一部の変更で実際のシステムを構築しようとする場合には、システムコンフィギュレーションツール７７を使用することにより、既に登録されている制御対象の仮想オブジェクト６１から、実際に使用するオブジェクトを選択することで、手作業によることなく自動的に各プログラム部を生成できる。
【００９０】
また、システムで使用されるユーザ専用のシステム監視装置など他の機器のプログラム作成ツールに組み込むこともでき、システム規模が大きくなるにつれ増大していた人手による共有オブジェクトの管理コストを大幅に削減した。
【００９１】
本発明は以上のように構成されているので、システムで定義されたオブジェクトをプログラム作成ツール間で共有し、システム構築を容易とし、システム構築に要する時間を短縮でき、またシステム稼動時にも共有オブジェクトを介して関連するプログラム間の連携動作を容易に実現でき、作業効率を向上させることができる。
また、共有する際に、共有対象の機器を選択することにより、共有対象への自動通知を可能とし、作業者が意識することなく共有対象先のプログラム作成ツールでの作業が行え、プログラム作成効率が向上する。
【００９２】
さらに、共有すべきオブジェクトの定義、変更作業は一括して行うことができるので、それら作業が容易になると共に、オブジェクト自体の管理も容易になり、人手により行っていた作業を効率化できる。
さらにまた、以前から有しているオブジェクトを有効に活用することにより、オブジェクト登録作業を低減し、よりシステム構築が容易となる。
また、オブジェクトの重複をチェックすることにより、オブジェクト登録作業の信頼性が向上する。
また、オブジェクトの変更に基づく、プログラムの修正作業を容易に行うことができる。
【００９３】
【産業上の利用可能性】
以上のように、本発明にかかるプログラミング装置及びプログラミング方法は、オブジェクトに対応したデータ定義と、その共有方法、さらにそれによるシステム構築を行うプログラミング装置おいて用いられるのに適している。
【図面の簡単な説明】
【図１】  第１図は、実施の形態１における制御システムの動作概要を示した状態図である。
【図２】  第２図は、データ共有型プログラミング装置のオブジェクト管理テーブル、および関連するシステム構成管理ツリーである。
【図３】  第３図は、実施の形態１におけるプログラミング装置の動作を示すフローチャートである。
【図４】  第４図は、実施の形態２における制御システムの動作概要を示した状態図である。
【図５】  第５図は、実施の形態２におけるプログラミング装置の動作を示すフローチャートである。
【図６】  第６図は、実施の形態３における制御システムの動作概要を示した状態図である。
【図７】  第７図は、実施の形態３におけるプログラミング装置の動作を示すフローチャートである。
【図８】  第８図は、従来における制御システムの動作概要を示した状態図である。
【図１】
0003896849.tif 000002
【図２】
0003896849.tif 000003
【図３】
0003896849.tif 000004
【図４】
0003896849.tif 000005
【図５】
0003896849.tif 000006
【図６】
0003896849.tif 000007
【図７】
0003896849.tif 000008
【図８】
0003896849.tif 000009