(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-18
(45)【発行日】2024-04-26
(54)【発明の名称】機器制御方法、機器制御プログラムおよび機器制御システム
(51)【国際特許分類】
H04L 69/08 20220101AFI20240419BHJP
H04L 67/125 20220101ALI20240419BHJP
【FI】
H04L69/08
H04L67/125
(21)【出願番号】P 2022529160
(86)(22)【出願日】2020-06-01
(86)【国際出願番号】 JP2020021674
(87)【国際公開番号】W WO2021245764
(87)【国際公開日】2021-12-09
【審査請求日】2022-11-29
(73)【特許権者】
【識別番号】594081294
【氏名又は名称】株式会社アイ・エル・シー
(74)【代理人】
【識別番号】100104190
【氏名又は名称】酒井 昭徳
(72)【発明者】
【氏名】大西 英作
【審査官】安藤 一道
(56)【参考文献】
【文献】特開2019-186802(JP,A)
【文献】特開2019-125068(JP,A)
【文献】国際公開第2015/063959(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 69/08
H04L 67/125
(57)【特許請求の範囲】
【請求項1】
ネットワークに接続され
た機器制御装置が、
機器を制御する機器制御方法であって、
一つの前記機器制御装置のコンピュータは、
前記機器制御装置に直接接続された機器および前記ネットワークを介して接続された他の前記機器制御装置に直接接続された機器の制御と、
複数の他の前記機器制御装置と連携して、複数の他の前記機器制御装置にそれぞれ直接接続された
複数の前記機器を所定の手順で連携制御
する制御と、をそれぞれ実行可能であり、
前記機器をそれぞれ制御する際、他の前記機器制御装置に接続された前記機器を制御するためのオブジェクトを生成し、
前記ネットワークの情報に含まれる前記機器の通信パラメータを参照して、前記オブジェクトにアクセスする情報を得て、
前記オブジェクトを所定のパケットに変換し、通信方式に対応するポートを選択して前記パケットを出力し、
前記パケットを該当する前記機器が接続された他の前記機器制御装置に送信する、処理を実行
し、
前記連携制御として、
一つの前記機器制御装置が複数の他の前記機器制御装置を制御し、複数の他の前記機器制御装置が、それぞれ直接接続された前記機器を連携制御した情報を一つの前記機器制御装置に通知する第1の連携制御と、
一つの前記機器制御装置が複数の他の前記機器制御装置を制御し、一つの前記機器制御装置は、複数の他の前記機器制御装置に直接接続された前記機器を直接制御する第2の連携制御と、のいずれかの制御を実行可能なことを特徴とする機器制御方法。
【請求項2】
前記機器を制御するための名前と、関数名と引数情報からなるオブジェクトを生成し、
予め設定された前記ネットワークのネットワーク情報に含まれる前記機器の通信方式、および通信パラメータを参照して、前記オブジェクトにアクセスする情報を得て、
前記
オブジェクトのオブジェクト名、
前記関数名、および
前記引数情報を所定のパケットに変換し、前記通信方式に対応するポートを選択し、
前記パケットを該当する前記機器の他の前記機器制御装置に送信する、
ことを特徴とする請求項1に記載の機器制御方法。
【請求項3】
前記ネットワーク上のクラウドが一つの前記機器制御装置による前記制御を実行する、
ことを特徴とする請求項1または2に記載の機器制御方法。
【請求項4】
一つの前記機器制御装置と他の前記機器制御装置は、同一装置内のCPU間接続であることを特徴とする請求項1に記載の機器制御方法。
【請求項5】
ネットワークに接続された機器制御装置に、機器を制御させる機器制御プログラムであって、
一つの前記機器制御装置のコンピュータに、
前記機器制御装置に直接接続された機器および前記ネットワークを介して接続された他の前記機器制御装置に直接接続された機器の制御と、
複数の他の前記機器制御装置と連携して、複数の他の前記機器制御装置にそれぞれ直接接続された複数の前記機器を所定の手順で連携制御する制御と、をそれぞれ実行可能にさせ、
前記機器をそれぞれ制御する際、他の前記機器制御装置に接続された前記機器を制御するためのオブジェクトを生成し、
前記ネットワークの情報に含まれる前記機器の通信パラメータを参照して、前記オブジェクトにアクセスする情報を得て、
前記オブジェクトを所定のパケットに変換し、通信方式に対応するポートを選択して前記パケットを出力し、
前記パケットを該当する前記機器が接続された他の前記機器制御装置に送信する、処理を実行させ、
前記連携制御として、
一つの前記機器制御装置が複数の他の前記機器制御装置を制御し、複数の他の前記機器制御装置が、それぞれ直接接続された前記機器を連携制御した情報を一つの前記機器制御装置に通知する第1の連携制御と、
一つの前記機器制御装置が複数の他の前記機器制御装置を制御し、一つの前記機器制御装置は、複数の他の前記機器制御装置に直接接続された前記機器を直接制御する第2の連携制御と、のいずれかの制御を実行可能なことを特徴とする機器制御プログラム。
【請求項6】
ネットワークに接続された機器制御装置が、機器を制御する機器制御システムであって、
一つの前記機器制御装置は、
前記機器制御装置に直接接続された機器および前記ネットワークを介して接続された他の前記機器制御装置に直接接続された機器の制御と、
複数の他の前記機器制御装置と連携して、複数の他の前記機器制御装置にそれぞれ直接接続された複数の前記機器を所定の手順で連携制御する制御と、をそれぞれ実行可能であり、
前記機器をそれぞれ制御する際、他の前記機器制御装置に接続された前記機器を制御するためのオブジェクトを生成し、
前記ネットワークの情報に含まれる前記機器の通信パラメータを参照して、前記オブジェクトにアクセスする情報を得て、
前記オブジェクトを所定のパケットに変換し、通信方式に対応するポートを選択して前記パケットを出力し、
前記パケットを該当する前記機器が接続された他の前記機器制御装置に送信する、制御部を備え、
前記制御部は、前記連携制御として、
一つの前記機器制御装置が複数の他の前記機器制御装置を制御し、複数の他の前記機器制御装置が、それぞれ直接接続された前記機器を連携制御した情報を一つの前記機器制御装置に通知する第1の連携制御と、
一つの前記機器制御装置が複数の他の前記機器制御装置を制御し、一つの前記機器制御装置は、複数の他の前記機器制御装置に直接接続された前記機器を直接制御する第2の連携制御と、のいずれかの制御を実行可能なことを特徴とする機器制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、ネットワーク接続された複数の機器を集中制御する機器制御方法、機器制御プログラムおよび機器制御システムに関する。
【背景技術】
【0002】
例えば、工場等の複数の機器は、搭載されたPLC(Programmable Logic Controller)の制御プログラムの実行により動作する。
【0003】
従来、ネットワーク等を介して接続された機器が相互に機器制御可能な技術が提案されている(例えば、下記特許文献1,2等参照。)。特許文献1は、ECHONET(Energy Conservation and HOmecare NETwork)規格にしたがい、家電機器等を外部の通信網から家電機器制御プロトコルを用いて機器制御する技術である。特許文献2は、車載用の組み込みシステム向けに標準化されたAUTOSAR(AUTomotive Open System ARchitecture)に準拠した機器制御プログラムにより、要求される機能を完全に停止させることなく、プログラムの一部を動的に書き換えることができる技術である。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2008-152343号公報
【文献】特開2012-155682号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来、工場等に設けられる複数の機器は、相互の制御シーケンスを考慮しながら動作するため、各機器のPLCはそれぞれ異なる制御プログラムを実装する必要があった。このため、あるPLCが制御する機器を他のPLCで制御することができず、例えば、複数の機器を一つのPLCで集中制御することができなかった。
【0006】
また、仮に、複数の機器がネットワークを介して中央のコントローラに接続されたシステム構成とした場合であっても、各機器は、コントローラが機器制御可能な仕様のものを用いなければならない制約があった。
【0007】
特許文献1の技術は専用プロトコルを用いるため、ネットワーク間通信に専用のI/Fが必要となる。また、特許文献2の技術においても、車載の各機器間の通信には、専用のI/Fおよび専用の通信プロトコルが必要となる。
【0008】
本発明は、上記課題に鑑み、ネットワーク接続された複数の機器を通信方式等の制約を受けず、簡単に制御できることを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するため、本発明の機器制御方法は、ネットワークに接続された機器制御装置が、機器を制御する機器制御方法であって、一つの前記機器制御装置のコンピュータは、前記機器制御装置に直接接続された機器および前記ネットワークを介して接続された他の前記機器制御装置に直接接続された機器の制御と、複数の他の前記機器制御装置と連携して、複数の他の前記機器制御装置にそれぞれ直接接続された複数の前記機器を所定の手順で連携制御する制御と、をそれぞれ実行可能であり、前記機器をそれぞれ制御する際、他の前記機器制御装置に接続された前記機器を制御するためのオブジェクトを生成し、前記ネットワークの情報に含まれる前記機器の通信パラメータを参照して、前記オブジェクトにアクセスする情報を得て、前記オブジェクトを所定のパケットに変換し、通信方式に対応するポートを選択して前記パケットを出力し、前記パケットを該当する前記機器が接続された他の前記機器制御装置に送信する、処理を実行し、前記連携制御として、一つの前記機器制御装置が複数の他の前記機器制御装置を制御し、複数の他の前記機器制御装置が、それぞれ直接接続された前記機器を連携制御した情報を一つの前記機器制御装置に通知する第1の連携制御と、一つの前記機器制御装置が複数の他の前記機器制御装置を制御し、一つの前記機器制御装置は、複数の他の前記機器制御装置に直接接続された前記機器を直接制御する第2の連携制御と、のいずれかの制御を実行可能なことを特徴とする。
【0010】
また、前記機器を制御するための名前と、関数名と引数情報からなるオブジェクトを生成し、予め設定された前記ネットワークのネットワーク情報に含まれる前記機器の通信方式、および通信パラメータを参照して、前記オブジェクトにアクセスする情報を得て、前記オブジェクト名、関数名、および引数情報を所定のパケットに変換し、前記通信方式に対応するポートを選択し、前記パケットを該当する前記機器の他の前記機器制御装置に送信する、ことを特徴とする。
【0013】
また、前記ネットワーク上のクラウドが一つの前記機器制御装置による前記制御を実行する、ことを特徴とする。
【0014】
また、一つの前記機器制御装置と他の前記機器制御装置は、同一装置内のCPU間接続であることを特徴とする。
【0015】
また、本発明の機器制御プログラムは、ネットワークに接続された機器制御装置に、機器を制御させる機器制御プログラムであって、一つの前記機器制御装置のコンピュータに、前記機器制御装置に直接接続された機器および前記ネットワークを介して接続された他の前記機器制御装置に直接接続された機器の制御と、複数の他の前記機器制御装置と連携して、複数の他の前記機器制御装置にそれぞれ直接接続された複数の前記機器を所定の手順で連携制御する制御と、をそれぞれ実行可能にさせ、前記機器をそれぞれ制御する際、他の前記機器制御装置に接続された前記機器を制御するためのオブジェクトを生成し、前記ネットワークの情報に含まれる前記機器の通信パラメータを参照して、前記オブジェクトにアクセスする情報を得て、前記オブジェクトを所定のパケットに変換し、通信方式に対応するポートを選択して前記パケットを出力し、前記パケットを該当する前記機器が接続された他の前記機器制御装置に送信する、処理を実行させ、前記連携制御として、一つの前記機器制御装置が複数の他の前記機器制御装置を制御し、複数の他の前記機器制御装置が、それぞれ直接接続された前記機器を連携制御した情報を一つの前記機器制御装置に通知する第1の連携制御と、一つの前記機器制御装置が複数の他の前記機器制御装置を制御し、一つの前記機器制御装置は、複数の他の前記機器制御装置に直接接続された前記機器を直接制御する第2の連携制御と、のいずれかの制御を実行可能なことを特徴とする。
【0016】
また、本発明の機器制御システムは、ネットワークに接続された機器制御装置が、機器を制御する機器制御システムであって、一つの前記機器制御装置は、前記機器制御装置に直接接続された機器および前記ネットワークを介して接続された他の前記機器制御装置に直接接続された機器の制御と、複数の他の前記機器制御装置と連携して、複数の他の前記機器制御装置にそれぞれ直接接続された複数の前記機器を所定の手順で連携制御する制御と、をそれぞれ実行可能であり、前記機器をそれぞれ制御する際、他の前記機器制御装置に接続された前記機器を制御するためのオブジェクトを生成し、前記ネットワークの情報に含まれる前記機器の通信パラメータを参照して、前記オブジェクトにアクセスする情報を得て、前記オブジェクトを所定のパケットに変換し、通信方式に対応するポートを選択して前記パケットを出力し、前記パケットを該当する前記機器が接続された他の前記機器制御装置に送信する、制御部を備え、前記制御部は、前記連携制御として、一つの前記機器制御装置が複数の他の前記機器制御装置を制御し、複数の他の前記機器制御装置が、それぞれ直接接続された前記機器を連携制御した情報を一つの前記機器制御装置に通知する第1の連携制御と、一つの前記機器制御装置が複数の他の前記機器制御装置を制御し、一つの前記機器制御装置は、複数の他の前記機器制御装置に直接接続された前記機器を直接制御する第2の連携制御と、のいずれかの制御を実行可能なことを特徴とする。
【0017】
上記構成によれば、機器制御装置は、ネットワーク接続された他の機器制御装置に接続された通信方式等が異なる機器であっても、この機器を直接制御することができ、複数の機器を連携して制御できるようになる。
【発明の効果】
【0018】
本発明によれば、ネットワーク接続された複数の機器を通信方式等の制約を受けず、簡単に制御できるという効果を奏する。
【図面の簡単な説明】
【0019】
【
図1】
図1は、実施の形態1にかかる機器制御システムの構成例を示す図である。
【
図2】
図2は、実施の形態1にかかるPLCの機能ブロック図である。
【
図3】
図3は、実施の形態1にかかるPLCのハードウェア構成例を示すブロック図である。
【
図4】
図4は、実施の形態1にかかるPLCが他のPLCに接続された機器へのアクセス例を示す図である。
【
図5】
図5は、実施の形態1にかかるPLCから機器へのアクセスの概要を説明する図である。
【
図6】
図6は、実施の形態1にかかる機器制御プログラム例を示す図である。
【
図7】
図7は、実施の形態1にかかるPLCが他のPLCに接続された機器へのアクセスを説明する図である。
【
図8】
図8は、実施の形態1にかかるPLC連携による機器制御例を示すシーケンス図である。
【
図9】
図9は、実施の形態2にかかるPLCによる機器の集中制御例を示すシーケンス図である。
【
図10】
図10は、実施の形態3にかかる機器制御システムの構成例を示す図である。
【発明を実施するための形態】
【0020】
以下に添付図面を参照して、この発明にかかる機器制御方法、機器制御プログラムおよび機器制御システムの好適な各実施の形態を詳細に説明する。
(実施の形態1)
【0021】
図1は、実施の形態1にかかる機器制御システムの構成例を示す図である。機器制御システム100は、機器制御装置であるPLC1~3(110)は、複数配置され、これらPLC1~3(110)は、それぞれ直接接続された機器A~C(120)の制御を行う。以下の説明では、直接接続とは、PLC1(110)に機器A(120)がI/O接続されたことを意味する。
【0022】
PLC1~3(110)は、ネットワーク130を介して通信接続される。
図1の例では、リング型のネットワーク接続構成であるが、これに限らず、ツリー型等、他のネットワーク接続構成であってもよい。ネットワーク130は、有線/無線のいずれであってもよい。
【0023】
PLC1(110)は、自機に接続された機器A(120)のほかにPLC2,3(110)に接続された機器B,C(120)をネットワーク130を介して制御する。PLC2,3(110)についても、それぞれ自機に接続された機器B,C(120)のほかに他のPLC1~3(110)に接続された機器A~C(120)をネットワーク130を介して制御することができる。
【0024】
実施の形態1では、説明の便宜上、主にPLC1(110)は、他の2つのPLC2,3(110)と連携してPLC2,3(110)に接続された機器B,C(120)を制御する例について説明する。実施の形態1では、PLC1(110)が制御系統の最上位層に位置し、他のPLC2,3(110)はPLC1(110)の下位層に位置する。PLC2,3(110)は、同じ階層に配置される。ここで、例えば、機器Bは所定エリアでの人の存在の有無を検出する人感センサであり、機器Cは所定エリアの出入口の自動ドアを開閉駆動するモータであるとする。
【0025】
PLC1~3(110)は、CPU、およびネットワーク130に接続可能な汎用の通信インタフェース(I/F)を有し、CPUは、機器制御および通信用のプログラムを実行処理する(詳細は後述する)。
【0026】
PLC1(110)は、他のPLC2,3(110)と、それぞれの機器B,C(120)を固有のIDにより識別する。PLC1(110)は、PLC2,3(120)と、人感センサの機器B(120)と、モータの機器C(120)と、を固有のIDによりそれぞれ機器制御できる。
【0027】
ここで、PLC1(110)は、直接接続された機器A(120)に対する機器制御と同様に、機器B,C(120)に対する機器制御を可能にする。
【0028】
図2は、実施の形態1にかかるPLCの機能ブロック図である。機器A~C(120)を集中制御するPLC1(110)は、オブジェクト生成部210、通信制御部211、パケット処理部212、通信部213を含む。PLC2,3(110)についてもPLC1(110)と同様の機能を有する。
【0029】
オブジェクト生成部210は、PLC1(110)に直接接続された機器A(120)、およびネットワーク130を介してPLC2,3(110)に接続された機器B,C(120)を機器制御するためのオブジェクトを生成する。例えば、オブジェクト生成部210は、機器B,C(120)を機器制御するための名前と、関数名と引数情報からなるオブジェクトを生成する。
【0030】
通信制御部211は、ネットワーク130の情報に含まれる機器B,C(120)の通信パラメータを参照して、生成されたオブジェクトにアクセスする情報を得る。例えば、通信制御部211は、予め設定したネットワーク130の情報に含まれる機器B,C(120)の通信方式、および通信パラメータを参照して、オブジェクトにアクセスする情報を取得する。
【0031】
パケット処理部212は、生成されたオブジェクトを所定のパケットに変換し、通信方式に対応するポートを選択してパケットを出力する。例えば、パケット処理部212は、オブジェクト名、関数名、および引数情報を所定のパケットに変換し、通信方式に対応するポートを選択して、パケットを通信部213に出力する。
【0032】
通信部213は、パケットを制御する機器B,C(120)のPLC2,3(110)に送信する。また、通信部213は、自身のPLC1(110)がネットワーク130に参加時、自身のオブジェクト名をネットワーク130に配信する。また、通信部213は、自身のPLC1(110)が所望するオブジェクトが生じたとき、オブジェクト名をネットワーク130に問合せ、オブジェクト名を有する他のPLC2,3(110)からネットワーク130の情報を取得する。また、通信部213は、自身のPLC1(110)が新たなオブジェクトを追加したとき、当該オブジェクト名をネットワーク130に配信する。
【0033】
図3は、実施の形態1にかかるPLCのハードウェア構成例を示すブロック図である。
図3において、PLC1~3(110)は、それぞれ機器制御部(CPU)301と、Read-Only Memory(ROM)302と、Random Access Memory(RAM)303と、半導体メモリやディスクドライブ等の記憶部304と、通信インタフェース(I/F)305と、を含む。これらCPU301~通信インタフェース305は、バス306によってそれぞれ接続されている。
【0034】
図3の例では、PLC1(110)には、機器A(120)がバス306を介して接続される。機器A(120)は、通信インタフェース(I/F)305等を介して接続される構成としてもよい。さらに、このPLC1(110)は、ディスプレイ308、キーボード310、マウス311、スキャナ312、プリンタ313がバス306等を介して接続された構成とすることができる。なお、ディスプレイ308、キーボード310、マウス311の機能を集約したタッチパネルを用いることもできる。
【0035】
CPU301は、PLC1(110)の全体の機器制御を司る演算処理装置である。ROM302は、PLC1(110)のプログラム等を記憶する不揮発性メモリである。RAM303は、CPU301によるプログラムの演算処理実行時のワークエリアとして使用される揮発性メモリである。
【0036】
通信インタフェース305は、ネットワーク130と内部のインタフェースを司り、他のPLC2,3(110)との間のデータの入出力を機器制御する。具体的に、通信インタフェース305は、通信回線を通じてネットワーク130となる宅内のLocal Area Network(LAN)などに接続され、ネットワーク130を介してPLC2,3(110)に接続される。
【0037】
また、ネットワーク130は、上記の他に、WiFi(登録商標)、Bluetooth(登録商標)、赤外線通信(IrDA)等により他のPLC2,3(110)と通信接続することもできる。
【0038】
ディスプレイ308は、CPU301のプログラム実行による機器A~C(120)の機器制御情報を表示する装置である。ディスプレイ308には、例えば、Thin Film Transistor(TFT)液晶ディスプレイ、プラズマディスプレイ、有機ELディスプレイなどを採用することができる。
【0039】
機器A~C(120)についても、PLC1(110)同様に
図3に記載のハードウェアにより構成することができる。
【0040】
(物理的位置に依存しないシームレスな機器アクセスの例)
図4は、実施の形態1にかかるPLCが他のPLCに接続された機器へのアクセス例を示す図である。一対のPLC1,2(110)を例にPLC1(110)がPLC2(110)の機器B(120)へのアクセス例を説明する。PLC1,2(110)は、それぞれ、アプリケーションプログラム401と、ファンクションボックス402と、コア層403と、外部と通信を行う通信装置や、装置内のボードとのアクセス処理の実装部405と、プラットフォーム(ハードウェア、OS、ドライバ)406と、を有する。
【0041】
PLC1(110)の通信層1(405a)は、PLC1(110)に直接接続される機器A(120)にアクセスする他、ネットワーク130を介してPLC2(110)の機器B(120)にアクセス可能である。通信層2(405b)は、PLC1(110)内のポートx等にアクセス可能である。同様に、PLC2(110)の通信層1(405a)は、PLC2(110)に接続されている機器B(120)にアクセスする他、ネットワーク130を介してPLC1(110)に接続されている機器A(120)にアクセス可能である。通信層2(405b)は、PLC2(110)内のポートy等にアクセス可能である。
【0042】
ファンクションボックス402は、機器A~C(120)の制御プログラムをユーザが容易に開発および実行するためのエディタと機能パッケージ(INTA connectionと称す)からなる。ファンクションボックス402は、IoT化を目的とした機器A~C(120)の制御プログラム開発のための開発ツールであり、この開発ツールで作成した制御プログラムは、ランタイム環境(コア層403のSoft PLC431、処理部432)にて実行される。
【0043】
コア層403は、Soft PLC(Basic Class Library)431と、処理部432と、通信方式抽象化層1(433)と、通信方式抽象化層2(434)と、プラットフォーム抽象化層1(435)と、プラットフォーム抽象化層2(436)とを有する。Soft PLC431は、複数のオブジェクト、例えばI/O処理、リアルタイムモニタ、イベント監視、異常監視、データ収集、一括設定等の各種オブジェクトを管理する。
【0044】
処理部432は、Soft PLC431からコールされるオブジェクト関連の処理に対応して、下記のタイプ1~3の処理を行う。
【0045】
1.処理部432は、アプリケーションプログラム401が、オブジェクトに対して要求する処理について、オブジェクトがアプリ内部に存在するのか、LAN上に存在するのか、さらにWAN上に存在するのかを確認する。
【0046】
2.処理部432は、アプリケーションプログラム401からSoft PLC431経由で呼び出される各処理要求の中で指定されたName(名前)の実態を取り出す処理を行う。この名前の実態は、ネットワーク設定で予め設定されている。
【0047】
3.処理部432は、オブジェクトがLAN/WAN上に存在する場合には、そのオブジェクトに対する通信経路を確保し、リクエストを送受信する。
【0048】
通信方式抽象化層1(433)は、処理部432からコールされる通信処理を抽象化するためのI/Fである。通信方式抽象化層1(433)の各関数は、各アクセス対象への個別の通信処理を実装した通信層1(405a)の関数をコールする。
【0049】
プラットフォーム抽象化層1(435)は、Soft PLC431からコールされるプラットフォーム依存処理を抽象化するためのI/Fである。プラットフォーム抽象化層1(435)の各関数の中からは、各アクセス対象への個別のアクセス処理やOSが提供する機能を適合させて実現するRTOS処理等を実装した通信層2(405b)の関数をコールする。
【0050】
通信層1(405a)は、通信方式抽象化層2(434)からコールされる各アクセス対象への個別の通信処理の実装部である。通信層1(405a)は、処理部432→通信方式抽象化層1(433)→通信方式抽象化層2(434)経由で渡される引数(handle)によってアクセス対象を特定して、対応する実装処理を行う。
【0051】
通信層2(405b)は、プラットフォーム抽象化層2(436)からコールされる各アクセス対象への個別のアクセス処理やOSが提供する機能を適合させて実現するRTOS処理などを作成する実装部である。通信層2(405b)は、処理部432→プラットフォーム抽象化層1(435)→プラットフォーム抽象化層2(436)経由で渡される引数(handle)によってアクセス対象を特定して、対応する実装処理を行う。
【0052】
図5は、実施の形態1にかかるPLCから機器へのアクセスの概要を説明する図である。PLC1(110)は、CPU301が通信制御のプログラム501(Soft PLC431に相当)を実行する。プログラム501は、機器B(120)の機器制御情報の取得にかかる処理(図示の例ではRead関数をcall)を行い(ステップS501)、Readコマンドを発行する(ステップS502)。
【0053】
次に、プログラム501の下位層(コア層403)は、機器B(120)に対するコマンドを解釈し、機器B(120)の機器制御情報が示された処理テーブル502を参照し、機器B(120)の機器制御情報を取得するコマンドを発行する(ステップS503)。処理テーブル502は、機器B(120)を制御するPLC2(110)に予め用意されるものであり、
図3に示したRAM303上に作成され、記憶部304に保持できる。
【0054】
ステップS503では、PLC1(110)は、PLC2(110)から取得した処理テーブル502を参照する。また、PLC1(110)は、ステップS503により発行されたコマンドを、汎用の通信I/Fを介して処理テーブル502に該当するPLC2(110)に送信する。ここで、PLC1(110)は、機器B(120)を機器制御するコマンドそのものを送信するのではなく、処理テーブル502の参照により、コマンドを解釈してこのコマンドに対応する機器制御の要求を送信する。PLC2(110)は、処理テーブル502を有しており、処理テーブル502の参照により、PLC1(110)から送信された要求に対応する機器制御を行うことができる。
【0055】
機器B(120)は、PLC2(110)からのReadコマンドを受け取り、Readコマンドに対応する検出情報を出力し(ステップS504)、PLC2(110)は、PLC1(110)に対して機器制御情報を送付する(ステップS505)。
【0056】
図6は、実施の形態1にかかる機器制御プログラム例を示す図である。
図6を用いてPLC1(110)に直接接続された機器Aに対するクローズド機器制御、およびネットワーク接続された外部の機器Bを機器制御するプログラム例を説明する。
図6(a)は、PLC1(110)に直接接続されている機器A(120)の機器制御プログラム例である。また、
図6(b)は、PLC2(110)に接続されている機器B(120)の機器制御プログラム例である。
【0057】
図6の(a),(b)のプログラムが示す機器制御内容は同じものとなる。このように、被機器制御対象である機器A,B(120)が自身のPLC1(110)に接続されている/いないにかかわらず、プログラム内容は同じとなる。したがって、プログラマは、PLC1(110)のプログラムを作成する際に、機器A,B(120)について、PLC1(110)とPLC2(110)間の通信にかかる処理を意識することなく、プログラムを作成することができるようになる。
【0058】
また、PLC1(110)と、PLC2(110)の機器A,B(120)の故障や機能変更等によるハードウェアの変更が生じても、処理テーブル502を変更するだけで、
図5に示したプログラム(アプリケーション層のソフトウェア)の変更は発生しない。
【0059】
図7は、実施の形態1にかかるPLCが他のPLCに接続された機器へのアクセスを説明する図である。この例では、機器B(120)が接続されたPLC2(110)は、起動時にプログラム701が上記の処理テーブル502として関数呼び出しテーブル702を作成する。なお、関数呼び出しテーブル702は、プログラム701の起動時に限らず、任意のタイミングで作成してもよく、手作業で作成したものを外部から入力する構成としてもよい。
【0060】
このプログラム701には、起動時に関数呼び出しテーブル702を作成する処理と、機器B(120)の機器制御情報を取得する処理(readPort)と、読み出した機器制御情報に対して所定の関数演算等の処理と、が記述(設定)されている。
【0061】
関数呼び出しテーブル702は、機器B(120)のID(ID1)と、この機器B(120)が接続されたPLC2(110)のポートのアドレスからなる。この例では、ID1には、機器B(120)から機器制御情報を読み出すためのreadPortのアドレスが設定されている。このほか、
図5に示したように、ID別に書き込み(Write)、起動(Start)、停止(Stop)等の機器制御機能をそれぞれ設定しておくことができる。
【0062】
関数呼び出しテーブル702の設定は、
図7に示したように「readPort」のような文字列に限らず、ポートを読む旨を示す「1001」のような数値列としてもよい。
【0063】
通信処理タスク703は、ネットワーク130を介してPLC1(110)との間の通信処理(受信および送信)を実行し、PLC1(110)から機器B(120)に対する要求時には、該当するIDを用いた関数呼び出しテーブル702を検索し、要求に対応したプログラム701の関数演算を実行する。
【0064】
以下、実施の形態のPLC1(110)から機器B(120)へのアクセスを行うための手順を説明する。はじめに、PLC2(110)のプログラム701が起動すると、関数呼び出しテーブル702を作成する(ステップS701)。
【0065】
この際、プログラム701は、PLC2(110)に接続されている機器B(120)の接続ポートを検出し、機器制御情報を読み出す機能のIDにreadPortのアドレスを関連付けた設定を関数呼び出しテーブル702に作成する。同様に、PLC2(110)が実行可能な機器制御(関数演算等)の機能について、所定のID(図示の例ではID2)を関数呼び出しテーブル702に設定する。
【0066】
そして、PLC1(110)は、PLC2(110)が作成した関数呼び出しテーブル702を任意のタイミングで取得する。関数呼び出しテーブル702の取得タイミングは、機器B(120)の機能、およびこの機器B(120)が接続されているPLC2(110)の所在等を把握している場合には、PLC1(110)が直接、PLC2(110)にアクセスして取得する。
【0067】
これに限らず、PLC2(110)がネットワーク130上に関数呼び出しテーブル702を公開している場合には、この公開された関数呼び出しテーブル702を参照したPLC1(110)のうち、機器B(120)の機器制御を所望する(機器制御情報を取得要求する)PLC1(110)がPLC2(110)にアクセスして取得する構成とすることもできる。
【0068】
この後、PLC1(110)がPLC2(110)に対して、機器B(120)の機器制御情報を取得する機器制御を行ったとする(ステップS702)。例えば、PLC1(110)のプログラム701が機器B(120)の機器制御情報の取得にかかる処理(ObjY.readData())を実行する。
【0069】
この場合、PLC1(110)のプログラム701は、機器B(120)に対するreadコマンド(readData())を発行する(ステップS703)。そして、プログラム701の下位層は、機器B(120)に対するコマンドを解釈し、PLC2(110)から取得しておいた関数呼び出しテーブル702を参照し、機器B(120)の機器制御情報の取得に該当する識別子ID1を指定して、機器B(120)の機器制御情報を取得するコマンド(readPort(他))に対応する要求ID1をPLC2(110)に送信する(ステップS704)。
【0070】
ここで、PLC1(110)は、PLC2(110)に対して機器B(120)の機器制御のコマンドそのものを送信するのではなく、関数呼び出しテーブル702の参照により、機器制御内容を含む識別子IDだけを送信すればよいため、送信するデータ量を削減できる。
【0071】
実施の形態1の機器110は、例えば、上記の人感センサや侵入検知器、リモコンやデジカメ、ICレコーダ、車載装置、医療機器等、特定用途の機器として機能する。
【0072】
そして、PLC2(110)の通信処理タスク703は、PLC1(110)からの要求ID1の受信により(ステップS705)、関数呼び出しテーブル702を参照し(ステップS706)、プログラム701に識別子ID1に対応する関数(readPort)を実行させる(ステップS707)。
【0073】
この後、PLC2(110)は、プログラム701がID1に対応して、I/Oポート読出処理を行い、該当する機器B(120)の情報を読み出し(readPort)、通信処理タスク703に返す(ステップS708)。
【0074】
そして、PLC2(110)は、通信処理タスク703がreadPortの結果、読み出した機器B(120)の情報をPLC1(110)に送信する(ステップS709)。
【0075】
PLC1(110)は、プログラム701が発行したreadPort(他)の返答として機器B(120)から送信された情報をreadData()に変換し(ステップS710)、機器B(120)の情報の取得にかかる処理(ObjY.readData())の結果として、対応する機器B(120)の情報を取得する(ステップS711)。
【0076】
上記処理によれば、PLC1(110)は、自装置に直接接続された機器Aの処理であるか、ネットワーク130を介した外部のPLC2(110)の処理であるかを、プログラム701が指定する引数(アクセス対象の機器の名前)によって切り分ける。この際、PLC1(110)は、外部のPLC2(110)へのアクセスについては、予め取得した関数呼び出しテーブル702を参照し、該当するPLC2(110)にアクセスする。
【0077】
また、PLC2(110)の通信処理タスク703と関数呼び出しテーブル702は、ソフトウェア実行に限らず、ハードウェアチップを用いて構成することもできる。
【0078】
また、上記の関数呼び出しテーブル702は、上述したように、PLC1(110)が取得するに限らず、機器A,B(120)がネットワーク130上に公開する構成とすることもできる。そして、関数呼び出しテーブル702が示す、機器B(120)の機能(Read,Write,Start,Stop)は、ネットワーク130上の任意の機器制御装置(例えばPLC110)によって取得し、機器制御(使用)できるようになる。
【0079】
すなわち、PLC1(110)は、関数呼び出しテーブル702を取得することにより、PLC2(110)に接続された機器B(120)の機能を知ることができ、PLC1(110)は、ネットワーク130の通信方式(手順)を隠蔽してPLC2(110)に接続された機器B(120)を機器制御できるようになる。
【0080】
これにより、PLC1(110)に対して、複数のPLC2(110)およびPLC1,2(110)が有する機器A,B(120)が同一の部屋内や異なる場所に設置された場合においても、この設置場所に限定されず、複数の機器A,B(120)を機器制御できるようになる。
【0081】
一方、PLC1(110)で処理できない演算をPLC1(110)の機器制御によって遠隔地のPLC2(110)や機器B(120)により演算処理することもできるようになる。
【0082】
さらに、関数呼び出しテーブル702は、ネットワーク130上のサーバに保持しておくこともでき、複数のPLC1,2(110)毎の関数呼び出しテーブル702として保持できる。これにより、PLC1(110)は、サーバへのアクセスによって所望する機能の機器A,Bを容易に検索することができ、また、機器B(120)が接続されたPLC2(110)へのアクセスを容易に行えるようになる。
【0083】
上記実施の形態1によれば、PLC1(110)は、PLC2(110)や機器A,B(120)のCPUやOSに依存せず、互いに自装置あるいは他装置に接続されている機器A,Bをネットワーク接続形態に違いがあっても簡単に機器制御できるようになる。
【0084】
これにより、PLC1(110)は、自機に接続された機器A(120)に対するクローズド機器制御に限らず、ネットワーク130を介して外部のPLC2(110)に内蔵された機器B(120)についても、通信(プロトコル)を意識せずに機器制御でき、プログラム作成についても通信を意識せずに作成できるため、プログラム作成を容易に行えるようになる。すなわち、PLC1(110)は、間に介在するネットワークの通信プログラムや専用I/Fを追加せずとも機器が有するセンサ類を機器制御できるようになる。
【0085】
関数呼び出しテーブル702は、PLC110に接続された機器120の故障や仕様変更などでの交換や、追加の場合に更新される。これにより、PLC110が有する機器120の機能が変更された場合であっても、PLC110は、関数呼び出しテーブル702を参照するだけで、所望する機能の機器120に対する機器制御を行える。加えて、機器120が交換等されてもプログラム変更を不要にできる。
【0086】
そして、特定用途の機能を有する組み込み機器においても、他の機器に対する機器制御を行って機能拡張が行えるようになる。また、汎用の情報処理装置においても所望する機能の機器に対する機器制御を容易に行えるようになる。例えば、ECHONETやAUTOSAR等の規格に縛られず、専用I/Fや専用の通信プログラムを設けなくても、任意の機器120に対する機器制御が可能となる。
【0087】
(PLC連携による機器制御例)
図8は、実施の形態1にかかるPLC連携による機器制御例を示すシーケンス図である。ここで、
図1に示したように、PLC1(110)は、PLC2,3(110)と連携してPLC2,3(110)に接続された機器B,C(120)を連携制御する。
図8では、PLC110の連携による機器120の制御について、簡素化した制御例を説明する。すなわち、所定のエリアに人体が検出された期間中はドアを開放駆動し、エリアでの人体が未検出となることでドアを閉鎖する例を説明する。
【0088】
機器B(120)は、センサ類であり、所定のエリアにおける人体の有無を検出する人感センサであるとする。機器C(120)は、所定エリアの出入口に設けられたドアを開放あるいは閉鎖方向に駆動するモータであるとする。
【0089】
PLC2(110)は、PLC2(110)に接続された機器B(120)である人感センサの検出状態に基づき、PLC3(110)に接続された機器C(120)であるドアの開放あるいは閉鎖を制御する。PLC1~3(110)は、それぞれアプリケーションプログラム401が連携制御において自機が実行すべき所定のシーケンス(手順)に沿った制御を実行し、Soft PLC431がPLC1~3(110)間のシームレスな通信制御を行う。そして、PLC1~3(110)の連携制御により、所定エリアに対する人の出入りに応じたドアの開閉を制御することができる。
【0090】
PLC1~3(110)間のネットワーク構成は、
図1のようなリング型でもよいし、他にツリー型であってもよい。どのネットワーク構成においても、PLC1~3(110)は、他のPLC110に上記のパケットを送信することで、受信したPLC110がパケットを選択して取得できる。
【0091】
はじめに、PLC1(110)は、定期的にPLC2(110)に接続された機器B(120)の人感センサに対し、所定のエリアでの人体の有無の問合せを行う(ステップS801)。ここで、機器B(人感センサ)120がエリア内での人体を検知すると(ステップS802)、エリア内で人体を検知した旨をPLC1(110)に通知する(ステップS803)。
【0092】
これにより、PLC1(110)は、PLC3(110)に接続された機器C(120)のドア開閉用のモータに対し、ドア開放の指示を行う(ステップS804)。機器C(120)は、ドア開放の指示に基づき、ドアを開放する方向にモータを駆動する(ステップS805)。
【0093】
PLC2(110)は、機器C(120)であるモータ、あるいは位置センサ等が検出出力するドア位置に基づき、ドア開放の状態を判断する(ステップS806)。そして、PLC2(110)は、ドア開放と判断すると、ドア開放完了の通知をPLC3(110)に通知する(ステップS807)。PLC3(110)は、ドア開放完了の通知に基づき、機器B(120)のモータに対しドア開放方向の駆動を停止させる(ステップS808)。
【0094】
この後、PLC2(110)は、定期的に機器B(120)の人感センサによる所定のエリアでの人体の有無を監視する(ステップS809)。ここで、機器B(人感センサ)120は、エリア内での人体が未検知となると、エリア内で人体が未検知となった旨をPLC1(110)に通知する(ステップS810)。
【0095】
これにより、PLC1(110)は、PLC3(110)に接続された機器C(120)のドア開閉用のモータに対し、ドア閉鎖の指示を行う(ステップS811)。機器C(120)であるモータは、ドア閉鎖の指示に基づき、ドアを閉鎖方向に駆動する(ステップS812)。
【0096】
PLC2(110)は、機器C(120)であるモータ、あるいは位置センサ等が検出出力するドア位置に基づき、ドア閉鎖の状態を検出する(ステップS813)。そして、PLC2(110)は、ドア閉鎖と判断すると、ドア閉鎖完了の通知をPLC3(110)に通知する(ステップS814)。PLC3(110)は、ドア閉鎖完了の通知に基づき、機器C(120)のモータに対しドアの閉鎖方向への駆動を停止させる(ステップS815)。
【0097】
以上のように、PLC1(110)は、PLC2,3(110)と連携してPLC2,3(110)に接続された機器B,C(120)を連携制御できる。
【0098】
(実施の形態2:PLCによる機器の集中制御例)
図9は、実施の形態2にかかるPLCによる機器の集中制御例を示すシーケンス図である。実施の形態2では、
図1に示したPLC1(110)は、PLC2,3(110)を介してPLC2,3(110)に接続された機器B,C(120)を集中制御する。このため、PLC1(110)は、機器B,C(120)を集中制御するためのプログラムを実装する。
【0099】
図9においても、実施の形態1(
図8)同様に、所定のエリアに人体が検出された期間中はドアを開放駆動し、エリアでの人体が未検出となることでドアを閉鎖する例を説明する。
【0100】
PLC1(110)は、PLC2,3(110)を集中制御する。PLC1(110)は、PLC2(110)に接続された機器B(120)である人感センサの検出状態と、PLC3(110)に接続された機器C(120)であるドアの開放あるいは閉鎖状態と、に基づき、これら機器B,C(120)を集中制御する。PLC1(110)は、アプリケーションプログラム401が自機が実行すべき所定のシーケンス(手順)に沿った制御を実行することで、所定エリアに対する人の出入りに応じたドアの開閉を制御する。
【0101】
はじめに、PLC1(110)は、定期的にPLC2(110)に接続された機器B(120)の人感センサに対し、所定のエリアでの人体の有無の問合せを行う(ステップS901)。ここで、機器B(人感センサ)120がエリア内での人体を検知すると(ステップS902)、エリア内で人体を検知した旨をPLC1(110)に通知する(ステップS903)。
【0102】
これにより、PLC1(110)は、PLC3(110)に接続された機器C(120)のドア開閉用のモータに対し、ドア開放の指示を行う(ステップS904)。機器C(120)は、ドア開放の指示に基づき、ドアを開放する方向にモータを駆動する(ステップS905)。
【0103】
PLC1(110)は、機器C(120)であるモータ、あるいは位置センサ等が検出出力するドア位置に基づき、ドア開放の状態を判断する(ステップS906)。そして、PLC1(110)は、ドア開放と判断すると、ドア開放完了の通知をPLC3(110)に通知する(ステップS907)。PLC3(110)は、ドア開放完了の通知に基づき、機器C(120)のモータに対しドア開放方向の駆動を停止させる(ステップS908)。
【0104】
この後、PLC1(110)は、定期的に機器B(120)の人感センサによる所定のエリアでの人体の有無を監視する(ステップS909)。ここで、機器B(人感センサ)120は、エリア内での人体が未検知となると、エリア内で人体が未検知となった旨をPLC1(110)に通知する(ステップS910)。
【0105】
これにより、PLC1(110)は、PLC3(110)に接続された機器C(120)のドア開閉用のモータに対し、ドア閉鎖の指示を行う(ステップS911)。機器C(120)であるモータは、ドア閉鎖の指示に基づき、ドアを閉鎖方向に駆動する(ステップS912)。
【0106】
PLC1(110)は、機器C(120)であるモータ、あるいは位置センサ等が検出出力するドア位置に基づき、ドア閉鎖の状態を検出する(ステップS913)。そして、PLC1(110)は、ドア閉鎖と判断すると、ドア閉鎖完了の通知をPLC3(110)に通知する(ステップS914)。PLC3(110)は、ドア閉鎖完了の通知に基づき、機器C(120)のモータに対しドアの閉鎖方向への駆動を停止させる(ステップS915)。
【0107】
以上のように、PLC1(110)は、PLC2,3(110)に接続された機器B,C(120)を中央で集中制御できる。
【0108】
(実施の形態3:クラウドによる集中制御)
図10は、実施の形態3にかかる機器制御システムの構成例を示す図である。機器制御システム100は、中央のクラウド1000が複数のPLC110を集中制御する構成とすることもできる。
図10は、PLC2,3(110)に接続された機器B,C(120)を集中制御する構成例を示す。
【0109】
クラウド1000は、例えばインターネット等のネットワーク130上のサーバ群等で構成される。クラウド1000は、ネットワーク130を介してPLC2,3(110)に通信接続される。
図10の例では、ツリー型のネットワーク接続構成であるが、これに限らず、リング型等、他のネットワーク接続構成であってもよい。
【0110】
図10の構成例によれば、クラウド1000が実施の形態2で説明したPLC1(110)の機能に相当する集中制御を行う。この集中制御は、例えば、
図9のシーケンス図と同等である。このように、中央のクラウド1000が複数のPLC2,3(110)に接続された機器B,C(120)を集中制御することができる。
【0111】
(プログラム更新)
上記各実施の形態で説明したPLC110が実行する制御プログラムについて、中央で集中制御する構成(実施の形態2,3)の場合、中央に配置されたPLC1(110)、あるいはクラウド1000の制御プログラムのみを更新すればよい。
【0112】
ここで、工場等に配置された上記の機器B,C(120)である人感センサやモータ等の構成を変更した場合、従来は、工場全体の機器120を停止してPLC110毎に制御プログラムを更新する必要があった。そして、更新した制御プログラムのPLC110を新たに起動させる必要があり、手間およびコストがかかった。
【0113】
これに対し、中央で集中制御する構成(実施の形態2,3)の場合、中央に配置されたPLC1(110)、あるいはクラウド1000の制御プログラムのみを更新すればよく、更新作業を簡単に行える。また、この際、中央1か所のみでの更新であるため、工場全体の機器120を停止させることなく、工場の機器120を稼働させたまま更新することも可能となる。
【0114】
(CPUA,B間の通信の制御例)
上記説明では、異なるPLC1,2(110)に接続された機器A~C(120)の制御例を説明したが、これに限らず、異なるCPUA,B間の通信の制御にも同様に適用することができる。
【0115】
例えば、異なるCPUが共有メモリによってデータを送受信する構成例に適用でき、共有メモリを介した同一装置内のCPUA,B間での機能呼び出しも可能になる。具体的には、CPUAのアプリケーションプログラム401が他のCPUBに接続された機器B(120)にアクセスし印字処理させる場合には、共有メモリを介して上記の処理を順次実行する。CPUAの処理部432では、名前の実態をNetwork Configuration Dataにより、CPUBへの接続方法(外部通信、CPUB、の情報)に基づき接続先を解決する。
【0116】
この場合、CPUA,CPUBの通信方式抽象化層1(433)と、通信方式抽象化層2(434)を、共有メモリを介して実装するポーティング層に差し替えるだけで対応可能になる。制御装置Aのアプリケーションプログラム401は、上述したネットワークを介する場合の例と全く変わらずシームレスに処理を実行できる。
【0117】
以上説明した実施の形態によれば、ネットワーク接続された複数の機器制御装置が、それぞれ複数の前記機器制御装置に直接接続された機器を制御する構成において、一つの前記機器制御装置は、複数の他の機器制御装置と連携して、複数の他の機器制御装置にそれぞれ直接接続された機器を所定の手順で連携制御し、前記連携制御に対応して複数の前記機器をそれぞれ制御する際、他の前記機器制御装置に接続された機器を制御するためのオブジェクトを生成し、ネットワークの情報に含まれる機器の通信パラメータを参照して、オブジェクトにアクセスする情報を得て、オブジェクトを所定のパケットに変換し、通信方式に対応するポートを選択してパケットを出力し、パケットを該当する機器が接続された他の機器制御装置に送信する。これにより、機器制御装置は、ネットワークに接続された他の機器制御装置に接続された機器にアクセスでき、機器制御装置固有の通信方式の制限を受けずこの機器制御装置に接続された機器を直接制御できるようになる。そして、機器制御装置は、複数の機器を連携制御できるようになる。
【0118】
また、機器制御装置は、機器を制御するための名前と、関数名と引数情報からなるオブジェクトを生成し、予め設定されたネットワーク情報に含まれる機器の通信方式、および通信パラメータを参照して、オブジェクトにアクセスする情報を得て、オブジェクト名、関数名、および引数情報を所定のパケットに変換し、通信方式に対応するポートを選択し、パケットを該当する機器の他の制御装置に送信する。これにより、機器制御装置は、ネットワークを介して他の機器制御装置との間で情報を送受信でき、機器制御装置固有の通信方式の制限を受けず機器制御装置に接続された機器を直接制御できるようになる。
【0119】
また、一つの機器制御装置が複数の他の機器制御装置を制御し、複数の他の機器制御装置が、それぞれ直接接続された機器を連携制御した情報を一つの機器制御装置に通知してもよい。このように、機器制御装置に階層を設け、最上位の機器制御装置が機器全体の制御を統括し、下位の機器制御装置間で機器を相互に制御した情報を最上位の機器制御装置に通知することで、機器の制御にかかる処理負荷を分散できるようになる。
【0120】
また、一つの機器制御装置が複数の他の機器制御装置を制御し、一つの機器制御装置は、複数の他の機器制御装置に直接接続された機器を直接制御することとしてもよい。また、ネットワーク上のクラウドが一つの機器制御装置による制御を実行することとしてもよい。これにより、最上位に位置する機器制御装置あるいはクラウドが機器全体を統括制御することができる。そして、最上位に位置する機器制御装置あるいはクラウドが実行するプログラムを変更するだけでシステム全体の機器制御内容を簡単に更新できるようになる。
【0121】
これらのことから、実施の形態によれば、ネットワークを介して分散配置され、かつ通信方式が異なる複数の機器であっても外部から直接アクセスすることができ、複数の機器を連携制御できるようになる。
【0122】
そして、実施の形態の機器制御装置は、例えば、Ethernet(登録商標)やUSB、シリアル通信等のネットワークで接続された複数の機器を機器制御できる。また、機器制御装置は、このようなネットワーク接続に限らず、CPUコア間や共有メモリ、バスI/F経由で接続されたソフト間や機器をP2P(Peer to Peer)接続した構成においても同様に機器制御できる。
【産業上の利用可能性】
【0123】
以上のように、本発明は、ネットワークを介して接続された機器を制御する機器制御装置に用いることができ、特に、互いにネットワークを介して通信接続された複数のPLCに接続された機器の制御に有用である。
【符号の説明】
【0124】
100 機器制御システム
110 PLC
120 機器
130 ネットワーク
301 機器制御部(CPU)
302 ROM
303 RAM
304 記憶部
305 通信インタフェース
306 バス
401 アプリケーションプログラム
501,701 (通信制御)プログラム
502 処理テーブル
702 関数呼び出しテーブル
703 通信処理タスク
1000 クラウド