JP2008165683A - 制御機器、そのコントローラおよび制御方法 - Google Patents
制御機器、そのコントローラおよび制御方法 Download PDFInfo
- Publication number
- JP2008165683A JP2008165683A JP2007000220A JP2007000220A JP2008165683A JP 2008165683 A JP2008165683 A JP 2008165683A JP 2007000220 A JP2007000220 A JP 2007000220A JP 2007000220 A JP2007000220 A JP 2007000220A JP 2008165683 A JP2008165683 A JP 2008165683A
- Authority
- JP
- Japan
- Prior art keywords
- control device
- controller
- protocol data
- control
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 76
- 230000005856 abnormality Effects 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 6
- 239000004065 semiconductor Substances 0.000 description 2
- 230000007257 malfunction Effects 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】コントローラにおいて、プログラムの書き直しを行わなくても制御機器を制御できるようにする。
【解決手段】コントローラ1は、予め制御機器2に類似する機種に共通なドライバを備え、この制御機器2は、自身に類似する機種同士の差異を吸収するためのプロトコルデータ(232〜234)を備える。そして、コントローラ1は、接続された制御機器2からこのプロトコルデータを受信する。プロトコルデータは、この制御機器2のBUSY値、TIMEOUT値、STROBE値を含むものである。そして、コントローラ1は、このプロトコルデータと、前記した各機種に共通なドライバとを用いて制御機器2との通信を行う。
【選択図】図1
【解決手段】コントローラ1は、予め制御機器2に類似する機種に共通なドライバを備え、この制御機器2は、自身に類似する機種同士の差異を吸収するためのプロトコルデータ(232〜234)を備える。そして、コントローラ1は、接続された制御機器2からこのプロトコルデータを受信する。プロトコルデータは、この制御機器2のBUSY値、TIMEOUT値、STROBE値を含むものである。そして、コントローラ1は、このプロトコルデータと、前記した各機種に共通なドライバとを用いて制御機器2との通信を行う。
【選択図】図1
Description
本発明は、制御機器、そのコントローラおよび制御方法に関する。
汎用のPC(Personal Computer)等に接続機器を接続する場合、PC等にこの接続機器のドライバをインストールしておき、PC等が、この接続機器が接続されたことを検知すると、この接続機器のドライバを選択し、起動していた(特許文献1参照)。
特開2006−85542号公報
しかし、産業機器や家電製品等に用いられる組み込みシステムにおいて、コントローラの備える記憶媒体の記憶容量も限られているため、コントローラ側でいくつかのドライバや通信プロトコルをインストールしておき、その中から制御機器(接続機器)のドライバや通信プロトコルを選択することは困難であった。このため、コントローラに制御機器を接続するときには、コントローラがこの制御機器と通信できるように、作業者がこのコントローラのプログラムを書き直し、コンパイルする必要があった。つまり、接続される制御機器が異なれば、その制御機器の仕様にあわせてコントローラのプログラムを変更する必要があった。
そこで、本発明は、前記した課題を解決し、コントローラにおいて、前記したようなプログラムの書き直しを行わなくても制御機器との通信を実現する手段を提供することを目的とする。
前記した課題を解決するため、本発明のコントローラは、予め制御機器に類似する機種に共通なドライバを備え、制御機器は、自身に類似する機種同士の差異を吸収するためのプロトコルデータを備える構成とした。ここで、機種同士の差異を吸収するために必要な情報として、プロトコルデータに、この制御機器において実行する処理のコマンド番号を示した定義情報に加えて、この制御機器の(1)BUSY値、(2)TIMEOUT値、(3)STOROBE値を含めるようにした。そして、コントローラは、このプロトコルデータに基づき、BUSY値に示されるインターバルで、制御機器へ制御信号を送信する。また、このコントローラが制御機器へ制御信号を送信した後、プロトコルデータのTIMEOUT値に示される時間以上経過しても、この制御機器から、制御信号の応答を受信しなかったとき、この制御機器の異常を検知する。さらに、コントローラは、このプロトコルデータに基づき、STROBE値に示される制御信号を連続で制御機器へ送信する。これにより、コントローラは、自身のプログラムの書き直しを行わなくても制御機器を制御することができる。
本発明によれば、コントローラにおいて、前記したようなプログラムの書き直しを行わなくても制御機器を制御することができる。
以下、本発明を実施するための最良の形態(以下、実施の形態という)を、図面を参照しながら説明する。図1は、本実施の形態のコントローラと、このコントローラに接続される制御機器(制御対象機器)の構成を例示した図である。
コントローラ1は、接続媒体3経由で、制御機器2との間で信号のやりとりを行い、制御機器2に所定の処理を実行させる。この制御機器2は、例えば、ICカードリーダ等であり、コントローラ1はこのICカードリーダのコントローラである。この制御機器2は、コントローラ1からの制御信号に基づき、自身が読み取ったICカードの情報(ICタグの情報)をコントローラ1へ送信したり、LED(Light Emitting Diode)ランプを点灯させたり、ブザーを鳴動させたりする。なお、制御機器2は、コントローラ1からの制御を受けて動作する機器であれば、インターホンや宅配ロッカー等であってもよい。また、接続媒体3は、コントローラ1と制御機器2との間で送受信される信号を伝送する媒体であり、RS485等のケーブルが用いられる。なお、コントローラ1には複数の制御機器2が接続されていてもよい。
ここで、コントローラ1および制御機器2の概要に説明する。
コントローラ1は、予め制御機器2に類似する機種に共通なドライバ(機器制御ドライバ部122参照)を保持する。また、制御機器2は、この類似する機種同士の差異を吸収するためのプロトコルデータ(プロトコルスタック231参照)を備える。ここで、コントローラ1は、この制御機器2に接続されると、この制御機器2から、この制御機器2のプロトコルデータを受信する。そして、コントローラ1は、この受信したプロトコルデータと、自身が備えるドライバとを用いて、制御機器2へ制御信号を送信する。つまり、コントローラ1は、制御機器2を制御する。
<コントローラ>
次に、コントローラ1を詳細に説明する。コントローラ1は、図1に示すように、入出力部11と、制御処理部12と、記憶部13とを備える。
次に、コントローラ1を詳細に説明する。コントローラ1は、図1に示すように、入出力部11と、制御処理部12と、記憶部13とを備える。
入出力部11は、接続媒体3経由で制御機器2との間で信号の送受信を行うためのインタフェースである。
制御処理部12は、この入出力部11経由で、制御機器2へ制御信号を送信し、制御機器2に所定の処理を実行させる。この制御処理部12は、制御機器2からプロトコルデータを受信するプロトコルデータ交換部121と、制御機器2を制御する機器制御ドライバ部122とを含んで構成される。なお、この制御処理部12は、CPU(Central Processing Unit)によるプログラム実行処理、あるいは前記処理を実行する専用回路により実現される。つまり、制御処理部12は、ソフトウェア的に実現してもよいし、ハードウェア的に実現してもよい。
プロトコルデータ交換部121は、制御機器2からプロトコルデータ(実際には、後記する通信用データ)を受信すると、このデータをプロトコルスタック131(後記)として記憶部13に格納する。つまり、プロトコルデータ交換部121は、制御機器2からプロトコルデータのもととなる通信用データを受信すると、このデータをプロトコル記述方式にデコードし、プロトコルスタック131として記憶部13に格納する。ここで、制御機器2から、コントローラ1へ送信される通信用データの詳細は、図2を用いて後記する。
この機器制御ドライバ部122は、記憶部13に記憶された各制御機器2に共通な汎用ドライバ(図示省略)をロードし、プロトコルスタック131(類似する機種同士の差異を吸収するためのプロトコルデータ)を用いて、この機器制御ドライバ部122が生成した制御信号を制御機器2へ送信する。つまり、機器制御ドライバ部122は、汎用ドライバとプロトコルスタック131とを用いて制御機器2を制御する。
記憶部13は、半導体メモリ等により構成され、所定領域にプロトコルスタック131を格納する。このプロトコルスタック131は、前記したとおり、プロトコルデータ交換部121が、制御機器2からプロトコルデータのもととなる通信用データを受信し、このデータをプロトコル記述方式にデコードしたものである。つまり、プロトコルスタック131は、制御機器2のプロトコルスタック231と同じものである。このプロトコルスタック131は、前記したとおり、機器制御ドライバ部122が制御機器2を制御するときに用いられる。ここでのプロトコルスタック131に含まれるプロトコルデータは、様々なものが考えられるが、本実施の形態では、制御機器IO処理プロトコルデータ132と、ICタグ処理プロトコルデータ133と、制御機器初期化処理プロトコルデータ134とを含む場合を例に説明する。つまり、制御機器IO処理プロトコルデータ132は、制御機器2の制御機器IO処理プロトコルデータ232と同じデータであり、ICタグ処理プロトコルデータ133は、制御機器2のICタグ処理プロトコルデータ233と同じデータであり、制御機器初期化処理プロトコルデータ134は、制御機器2の制御機器初期化処理プロトコルデータ234と同じデータである。プロトコルスタック131に含まれるプロコトルデータの詳細は、プロトコルスタック231の説明の項で後記する。なお、図示を省略したが、この記憶部13には、前記した各制御機器2に共通な汎用ドライバ、プロトコル交換部121の機能を実現するためのプログラム等が格納されている。
<制御機器>
次に、制御機器2を説明する。制御機器2は、図1に示すように、入出力部21と、制御処理部22と、記憶部23とを備える。なお、この制御機器2は、図示を省略しているが、ICカード等のICタグ情報を読み取るICタグ読み取り部や、LEDランプや、ブザー等を備える。このLEDランプやブザーは、ICタグの認証結果(認証OK/認証NG)を表示するためのものである。このサービス処理部222は、このコントローラ1からの制御信号を受信すると、これに基づき、読み取ったICタグ情報を送信したり、LEDランプを点灯(ON)したり、ブザーを鳴動(ON)したりする。
次に、制御機器2を説明する。制御機器2は、図1に示すように、入出力部21と、制御処理部22と、記憶部23とを備える。なお、この制御機器2は、図示を省略しているが、ICカード等のICタグ情報を読み取るICタグ読み取り部や、LEDランプや、ブザー等を備える。このLEDランプやブザーは、ICタグの認証結果(認証OK/認証NG)を表示するためのものである。このサービス処理部222は、このコントローラ1からの制御信号を受信すると、これに基づき、読み取ったICタグ情報を送信したり、LEDランプを点灯(ON)したり、ブザーを鳴動(ON)したりする。
入出力部21は、接続媒体3経由でコントローラ1との間で信号の送受信を行うためのインタフェースである。
制御処理部22は、この入出力部21経由で、コントローラ1へプロトコルデータを送信したり、コントローラ1からの制御信号に基づく処理を行ったりする。このような制御処理部22は、コントローラ1へプロトコルデータを送信するプロトコルデータ交換部221と、コントローラ1からの制御信号に基づき各種処理を実行するサービス処理部222とを含んで構成される。なお、ここでサービス処理部222が行う処理は、例えば、制御機器2の初期化や、読み取ったICタグのタグIDの送信、LEDのON/OFF、ブザーのON/OFF等である。また、この制御処理部22も、CPUによるプログラム実行処理、あるいは前記処理を実行する専用回路により実現される。
プロトコルデータ交換部221は、プロトコルスタック231における各プロトコルデータを、通信用データに変換してコントローラ1へ送信する。そして、このような通信用データを受信したコントローラ1は、前記したとおり、このデータをプロトコル記述方式にデコードし、このデコードしたプロトコルデータに基づき制御機器2を制御する。
ここで、プロトコルデータ交換部221が送信する通信用データを、図2を用いて説明する。図2は、図1の制御機器のプロトコルデータ交換部が送信する通信用データを例示した図である。
図2に例示するように、通信用データは、この通信用データのヘッダ情報である通信HEAD41と、この通信用データの長さ(具体的には、機器状態記述内容43から通信TAIL45までの長さ)を示したLEN42と、コントローラ1が制御機器2との間で信号のやりとりをするときの処理手順に関する情報である機器状態記述内容43と、サービス処理の定義情報(詳細は後記)等、実際に制御機器2をドライブするためのデータである通信内容44と、データ終了コード等を含む通信TAIL45とを含んで構成される。この機器状態記述内容43および通信内容44の詳細は、各プロトコルデータの説明の項で後記する。
図1の説明に戻る。記憶部23は、半導体メモリ等により構成され、所定領域にプロトコルスタック231を格納する。このプロトコルスタック231は、前記したとおり、この制御機器2に類似する機種同士の差異を吸収するためのプロトコルデータであり、ここでは例えば、制御機器IO処理プロトコルデータ232と、ICタグ処理プロトコルデータ(サービス処理プロトコルデータ)233と、制御機器初期化処理プロトコルデータ234と含む。
この制御機器IO処理プロトコルデータ232は、コントローラ1がこの制御機器2におけるIO処理を制御するためのプロトコルデータである。ここでのIO処理は、例えば、LEDのON/OFFやブザーのON/OFF等である。
また、ICタグ処理プロトコルデータ233は、コントローラ1が制御機器2において読み取ったICタグ情報を要求するためのプロトコルデータである。
さらに、制御機器初期化処理プロトコルデータ234は、コントローラ1が制御機器2へこの制御機器2の初期化を要求するためのプロトコルデータである。
なお、このプロトコルデータはそれぞれ、コントローラ1が制御機器2との間で信号のやりとりをするとき処理手順に関する情報(機器状態記述内容)と、サービス処理の定義情報とを備える。
<機器状態記述内容>
ここで、図2を参照しながら、機器状態記述内容を説明する。この機器状態記述内容43は、例えば、図2の符号201に示すような機器状態情報と、それぞれの状態における値(符号56に示すBUSY値、符号57に示すTIMEOUT値、符号58に示すSTROBE値)とを含む。
ここで、図2を参照しながら、機器状態記述内容を説明する。この機器状態記述内容43は、例えば、図2の符号201に示すような機器状態情報と、それぞれの状態における値(符号56に示すBUSY値、符号57に示すTIMEOUT値、符号58に示すSTROBE値)とを含む。
まず、図2の符号201に示す機器状態情報の示す内容を説明する。図2の符号201に示す機器状態情報において、コントローラ1は、BUSY値56に示されるインターバルを満たしているか否かを判断し、満たしていれば通信用データ(制御信号)を送信する状態になる(S51)。つまり、コントローラ1は、制御機器2へ制御信号を送信する。このような通信用データ送信後、コントローラ1は、制御機器2からの応答を受信するまで、TIMEOUT値57に示される時間が経過するのを待つ(S52:WAIT)。次に、TIMEOUT値57で規定した時間経過しても制御機器2からの応答データが無い場合、TIMEOUT状態と判断する(S53:TIMEOUT)。一方、TIMEOUT値57で規定した時間以内に制御機器2から応答データを受信した場合、そのデータを受け取る(S54:RECV)。そして、コントローラ1は、制御機器2からの応答データを受け取ると、シーケンシャル処理において、STROBE値58に示される次の制御信号を送信する状態になる(S55:STROBE)。
なお、前記したBUSY値56は、この制御機器2がコントローラ1から制御信号(処理要求)を受信するときに最低限空けなければならないインターバルを示したものである。また、TIMEOUT値57は、コントローラ1へ制御信号の応答を出力するとき、コントローラ1側でタイムアウトを判断するときの時間を示したものである。さらに、STROBE値58は、この制御機器2においてシーケンシャル処理を行うときにコントローラ1から受信する必要がある制御信号の並びを示したものである。
例えば、各プロトコルデータは、機器状態記述内容として、表1に示すようなBUSY(値)、TIMEOUT(値)、STROBE(値)の定義情報を備える。
表1に示す定義情報において、BUSY値は「200ms」であり、STROBE値は「0(シーケンシャルなし)」であり、TIMEOUT値は「200ms」であることを示す。
<サービス処理の定義情報>
また、サービス処理の定義情報は、制御機器2が実行するサービス処理ごとのコマンド番号(サービス番号)を示した情報等である。例えば、「LED」に関するコマンド番号は「0x30」というような情報である。
また、サービス処理の定義情報は、制御機器2が実行するサービス処理ごとのコマンド番号(サービス番号)を示した情報等である。例えば、「LED」に関するコマンド番号は「0x30」というような情報である。
このサービス処理の定義情報を、表2および表3を用いて説明する。
表2は、制御機器IO処理プロトコルデータ232が備えるサービス要求の定義情報を例示したものであり、表3は、制御機器IO処理プロトコルデータ232が備えるサービス応答の定義情報を例示したものである。
表2は、制御機器IO処理プロトコルデータ232が備えるサービス要求の定義情報を例示したものであり、表3は、制御機器IO処理プロトコルデータ232が備えるサービス応答の定義情報を例示したものである。
例えば、表2に示す定義情報おいて、サービス処理のサービス番号はカラム(Char)1桁を用い、この情報の長さ(LEN)に関する情報はカラム2桁を用い、要求するサービスの種類に関する情報はカラム1桁を用い、その付加コードは2桁を用いることを示す(以下、表4および表6に例示する定義情報において同じ)。
また、表2に例示する定義情報において、このIO処理サービス要求を示す番号(サービス番号)は「0x40」であり、LENは「0x30,0x33」であり、「LED」を示すコマンド番号は「0x30」であり、「ブザー」を示すコマンド番号は「0x31」であることを示す。また、「ON」を示すコマンド番号は「0x30,0x30」であり、「OFF」を示すコマンド番号は「0x30,0x31」であることを示す。例えば、コントローラ1が制御機器2の「LEDをONにする」というIO処理の制御信号を送信したいときは、サービス番号「0x40」、サービスの種類としてコマンド番号「0x30」、付加コードとしてコマンド番号「0x30,0x30」をセットした制御信号を送信すればよいことを示す。
また、表3に例示する定義情報において、サービス処理のサービス番号はカラム1桁を用い、この情報の長さ(LEN)に関する情報はカラム2桁を用い、応答コードはカラム1桁を用いることを示す(以下、表5および表7に例示する定義情報において同じ)。このIO処理サービス応答を示す番号(サービス番号)は「0x41」であり、LENは「0x30,0x31」であり、「処理成功」を示すコマンド番号は「0x30」であり、「処理エラー」を示すコマンド番号は「0x31」であることを示す。例えば、コントローラ1が制御機器2から、サービス番号「0x41」、応答コードとしてコマンド番号「0x31」がセットされた信号を受信したとき、この制御機器2において「IO処理のエラー」が発生したと判断できる。
また、ICタグ処理プロトコルデータ233および制御機器初期化処理プロトコルデータ234も同様に、サービス処理の定義情報を保持する。
表4は、ICタグ処理プロトコルデータ233が備えるサービス要求の定義情報を例示したものであり、表5は、ICタグ処理プロトコルデータ233が備えるサービス応答の定義情報を例示したものである。
例えば、表4に例示する定義情報において、このICタグ処理のサービス要求を示す番号(サービス番号)は「0x50」であり、LENは「0x30,0x33」であり、「ICタグ処理」を示すコマンド番号は「0x30」であり、その付加コードは「0x30」であることを示す。例えば、コントローラ1が制御機器2にICタグの読み取り結果を送信させたいときは、サービス番号「0x50」、サービスの種類としてコマンド番号「0x30」、付加コードとしてコマンド番号「0x30」をセットした制御信号を送信すればよいことを示す。
また、表5に例示する定義情報において、このICタグ処理のサービス応答を示す番号(サービス番号)は「0x51」であり、LENは「0x30,0x33」であり、「処理成功」を示すコマンド番号は「0x30」であり、「処理エラー」を示すコマンド番号は「0x31」であることを示す。さらに、ICタグ情報はカラム16桁を用い、そのカラムに記載された値がそのままICタグ情報(タグID)を表すことを示す。例えば、コントローラ1が制御機器2からサービス番号「0x51」、応答コードとしてコマンド番号「0x30」、ICタグとして16桁の記号がセットされた信号を受信したとき、この制御機器2においてタグIDの読み取りに成功し、そのタグIDは当該カラム16桁の記号で示されるIDであることを知ることができる。
表6は、制御機器初期化処理プロトコルデータ234におけるサービス要求の定義情報を例示したものであり、表7は、制御機器初期化処理プロトコルデータ234におけるサービス応答の定義情報を例示したものである。
例えば、表6に例示する定義情報において、この制御機器初期化処理のサービス要求を示す番号(サービス番号)は「0x60」であり、LENは「0x30,0x33」であり、「ソフトリセット」を示すコマンド番号は「0x30」であり、「機器リセット」を示すコマンド番号は「0x31」であることを示す。また、その付加コードは「0x30」であることを示す。例えば、コントローラ1が制御機器2のソフトリセットを指示したいときは、サービス番号「0x60」、サービスの種類としてコマンド番号「0x30」、付加コードとしてコマンド番号「0x30」をセットした制御信号を送信すればよいことを示す。
また、表7に例示する定義情報において、この制御機器初期化処理のサービス応答を示す番号(サービス番号)は「0x61」であり、「処理成功」を示すコマンド番号は「0x30」であり、「処理エラー」を示すコマンド番号は「0x31」であることを示す。例えば、コントローラ1が制御機器2からサービス番号「0x61」、応答コードとしてコマンド番号「0x30」、付加コードとしてコマンド番号「0x30」がセットされた信号を受信したとき、この制御機器2におけるソフトリセットが成功したと判断できる。
前記したプロトコルデータ交換部221は、このような各プロトコルデータの情報をもとに通信用データ(図2参照)を作成し、コントローラ1へ送信する。このような通信用データを受信したコントローラ1は、この通信用データをプロトコルデータとしてデコードし、このデコードしたプロトコルデータにより、制御機器2との信号の送受信や、この制御機器2に対する制御を実行できるようになる。
<動作説明>
次に、図1および図2を参照しつつ、図3を用いて、図1のコントローラ1および制御機器2の動作を説明する。図3(a)は、図1のコントローラが制御機器から各プロトコルデータを受信する手順を示したフローチャートであり、(b)は、図1の制御機器がコントローラへプロトコルデータを送信する手順を示したフローチャートである。
次に、図1および図2を参照しつつ、図3を用いて、図1のコントローラ1および制御機器2の動作を説明する。図3(a)は、図1のコントローラが制御機器から各プロトコルデータを受信する手順を示したフローチャートであり、(b)は、図1の制御機器がコントローラへプロトコルデータを送信する手順を示したフローチャートである。
まず、コントローラ1は、制御機器2からの接続イベントの受信を待ち(S301)、接続イベントを受信すると(S301のYes)、プロトコルデータ交換部121は記憶部13に、この制御機器2のプロトコルスタック131があるか否かを判断する(S302)。ここで、既に記憶部13にプロトコルスタック131がある場合(S302のYes)、処理を終了する。
一方、記憶部13にプロトコルスタック131がない場合(S302のNo)、プロトコルデータ交換部121は、制御機器2へプロトコルスタックがない旨を通知する(S303)。そして、プロトコルデータ交換部121は、制御機器2からのプロトコルデータの受信を待ち(S304)、制御機器2からプロトコルデータ(つまり、プロトコルデータの元となる通信用データ)を受信すると(S304のYes)、このプロトコルデータを記憶部13に記憶する。そして、機器制御ドライバ部122は、このプロトコルデータに基づき、制御機器2へ制御信号を送信する(S305)。
つまり、各機種に共通なドライバと、制御機器2から受信したプロトコルデータとに基づいて、この制御機器2への制御信号を送信する。例えば、受信したプロトコルデータが制御機器IO処理プロトコルデータ132であれば、機器制御ドライバ部122は、制御機器2へLEDをONにさせる制御信号や、ブザーをONにさせる制御信号を送信する。そして、機器制御ドライバ部122において、この制御機器2における処理成功の信号(処理成功メッセージ)を受信したとき(S306のYes)、この制御機器2からの次のプロトコルデータの受信を待つ(S307)。そして、S304へ戻る。
つまり、コントローラ1は、制御機器2からプロトコルデータを受信すると、このプロトコルデータをもとに制御機器2を正常に制御できるか確認する。そして、制御機器2から処理成功の信号を受信したとき、この制御機器2から次のプロトコルデータが送信されるのを待つ。このようにして、コントローラ1は制御機器2から、制御機器IO処理プロトコルデータ132に続いて、ICタグ処理プロトコルデータ133および制御機器初期化処理プロトコルデータ134を受信し、プロトコルスタック131を形成する。
なお、S304において、プロトコルデータ交換部121が所定時間経過しても制御機器2からプロトコルデータを受信できなかったとき(S304のNo)、および、S306において制御機器2から処理成功の信号を受信できなかったとき(S306のNo)、処理を終了する。
このようにすることで、コントローラ1は、制御機器2から受け取った各プロトコルデータの検証を行いながら、プロトコルデータを受信できる。
次に、図3(b)を用いて、制御機器2がコントローラ1へ各プロトコルデータを送信する手順を説明する。
まず、制御機器2がコントローラ1に接続されるのを待ち(S308)、制御機器2がコントローラ1に接続すると(S308のYes)、プロトコルデータ交換部221は、コントローラ1へ接続イベントを送信する(S309)。ここで送信する接続イベントは、例えば、この制御機器2の識別情報等を含むものである。
そして、制御機器2は、コントローラ1からこの制御機器2のプロトコルスタック131がない旨の通知の受信を待ち(S310)、制御機器2がコントローラ1からこの制御機器2のプロトコルスタック131がない旨の通知を受信すると(S310のYes)、記憶部23のプロトコルスタック231から、プロトコルデータを選択して読み出し、この読み出したプロトコルデータをコントローラ1へ送信する(S311)。
次に、サービス処理部222は、S311で送信したプロトコルデータの制御信号の受信を待ち(S312)、S311で送信したプロトコルデータの制御信号を受信すると(S312のYes)、この制御信号に基づく処理を行う。そして、サービス処理部222は、この制御信号に基づく処理結果である応答信号を送信する(S313)。
例えば、サービス処理部222がコントローラ1へ制御機器IO処理プロトコルデータ232を送信した後、コントローラ1から、制御機器2のLEDをONにさせる制御信号や、ブザーをONにさせる制御信号を受信したとき、サービス処理部222において、LEDをONにしたり、ブザーをONにしたりする。そして、サービス処理部222は、その処理結果である応答信号をコントローラ1へ送信する。例えば、LEDや、ブザーをONにした場合、制御機器IO処理プロトコルデータ232に基づき応答信号を送信する。
そして、プロトコルデータ交換部221は、プロトコルスタック231のすべてのプロトコルデータを送信したか否かを判断し(S314)、すべてのプロトコルデータを送信したとき(S314のYes)、処理を終了する。一方、まだ送信していないプロトコルデータがあるときには(S314のNo)、S311へ戻り、残りのプロトコルデータを送信する。
このようにすることで、コントローラ1は、制御機器2のプロトコルスタック231のすべてのプロトコルデータを受信し、この制御機器2のプロトコルスタック131を作成することができる。
なお、制御機器2がコントローラ1へプロトコルデータを送信する手順は、例えば、まず、制御機器初期化処理プロトコルデータ234を送信し、その後、ICタグ処理プロトコルデータ233または制御機器IO処理プロトコルデータ232を送信するのが好ましい。このようにするのは、まず、制御機器2の初期化に成功しないと、その他の処理の検証を行うことができないからである。
次に、適宜図1ないし図3を参照しつつ、図4ないし図6を用いて、前記した手順によりプロトコルスタック131を作成したコントローラ1が、このプロトコルスタック131により制御機器2を制御する手順を説明する。図4ないし図6は、図1のコントローラが制御機器を制御する手順を示したシーケンス図である。
なお、以下の説明において、コントローラ1は、制御機器2の初期化後、この制御機器2から所定時間ごとにこの制御機器2で読み取ったタグIDの取得要求を行うものとする。つまり、制御機器2がICカード等からタグIDを読み取った後、コントローラ1からタグIDの取得要求を受信すると、制御機器2はこれに対する応答として、読み取ったタグIDをセットした信号を送信する。なお、制御機器2がコントローラ1からの取得要求を受信したとき、この制御機器2において読み取ったタグIDが無い場合(つまり、制御機器2へ未送信のタグIDが無い場合)、制御機器2はタグIDについて空の状態で信号を送信するものとする。
制御機器2の初期化がまだ終了していない場合(S401のNo)、コントローラ1の機器制御ドライバ部122は、制御機器初期化処理プロトコルデータ134を参照して、以下の処理を行う。
すなわち、機器制御ドライバ部122は、前回の初期化要求送信から所定時間(制御機器初期化処理プロトコルデータ134に示されるBUSY値)経過しているか否かを判断する(S402)。ここで、所定時間経過した場合(S402のYes)、この制御機器の初期化要求(初期化を要求する制御信号)を制御機器へ送信する(S403)。一方、まだ前回の初期化要求送信から所定時間経過していなければ(S402のNo)、所定時間経過するのを待つ。なお、機器制御ドライバ部122が送信する初期化要求は、例えば、制御機器2のソフトリセットや機器リセットを指示するサービス番号およびコマンド番号(表6等参照)を含む制御信号である。
一方、既に制御機器2の初期化が終了していれば(S401のYes)、図5のS501へ進む。S501については後記する。
S403においてコントローラ1から送信された初期化要求を受信した制御機器2は、サービス処理部222において初期化処理を行う(S404)。そして、その初期化処理が成功したとき(S405のYes)、サービス処理部222は、この初期化処理の処理成功メッセージをコントローラ1へ送信する(S407)。一方、サービス処理部222は初期化処理に失敗したとき(S405のNo)、処理エラーメッセージをコントローラ1へ送信する(S406)。ここで送信するメッセージは、例えば、表7に例示したようなサービス番号やコマンド番号(応答コード)を含む信号である。
コントローラ1の機器制御ドライバ部122は、S403の初期化要求送信後、タイムアウト時間(制御機器初期化処理プロトコルデータ134に示されるTIMEOUT値)内に、この初期化処理の処理成功メッセージを受信したとき(S408のYes)、S501へ進む。なお、ここで受信したメッセージ(信号)が、この初期化処理の処理成功メッセージであるか否かは、制御機器初期化処理プロトコルデータ134におけるサービス番号や応答コードの定義情報(表7参照)を参照して判断する。
一方、機器制御ドライバ部122においてタイムアウト時間内に処理成功メッセージを受信できなかったとき(S408のNo)、制御処理部12は、この制御機器2の初期化に失敗し、故障している可能性が高いことを示すフラグを立て(S409:故障判断処理)、処理を終了する。
図5の説明に移る。次に、コントローラ1の機器制御ドライバ部122は、ICタグ処理プロトコルデータ133を参照して、以下の処理を行う。すなわち、機器制御ドライバ部122は、前回のICタグ処理要求送信から所定時間(ICタグ処理プロトコルデータ133に示されるBUSY値)経過しているか否かを判断する(S501)。ここで、所定時間経過していれば(S501のYes)、この制御機器のICタグ処理要求(制御機器2で読み取ったICタグのタグIDを要求する制御信号)を制御機器へ送信する(S502)。一方、まだ前回のICタグ処理要求送信から所定時間経過していなければ(S501のNo)、所定時間経過するのを待つ。ここで、機器制御ドライバ部122が送信するICタグ処理要求は、制御機器2のICタグ処理を指示するサービス番号およびコマンド番号(表4等参照)を含む制御信号である。
このようなICタグ処理要求を受信した制御機器2は、サービス処理部222においてICタグ処理を行う(S503)。例えば、読み取ったICタグのタグIDをコントローラ1へ送信する処理を行う。そして、そのICタグ処理が成功したとき(S504のYes)、サービス処理部222は、このICタグ処理の処理成功メッセージと、処理結果データ(読み取ったタグIDがあれば、そのタグID)をコントローラ1へ送信する(S506)。一方、サービス処理部222はICタグ処理に失敗したとき(S504のNo)、処理エラーメッセージをコントローラ1へ送信する(S505)。ここで送信するメッセージは、例えば、表5に例示したようなサービス番号やコマンド番号(応答コード)、タグID等を含む信号である。
コントローラ1の機器制御ドライバ部122は、前記した初期化処理の場合と同様、S502におけるICタグ処理要求送信後、タイムアウト時間内にこのICタグ処理の処理成功メッセージを受信したか否かを判断する(S507)。つまり、機器制御ドライバ部122は、ICタグ処理プロトコルデータ133に示されるTIMEOUT値の時間内に、処理成功メッセージを受信したか否かを判断し、処理成功メッセージを受信できたとき(S507のYes)、図6のS601へ進む。なお、ここで受信したメッセージ(信号)が、このICタグ処理の処理成功メッセージであるか否かは、前記した初期化処理の場合と同様、ICタグ処理プロトコルデータ133におけるサービス番号や応答コードの定義情報(表5参照)を参照して判断する。また、ここで処理結果データとしてタグIDを受信したときは、このタグIDを記憶部13のRAM等に記憶しておく。一方、制御機器2は、読み取ったタグIDが特になければ、タグIDのカラムには特に情報をセットせずにコントローラ1へ信号を送信する。
一方、S507において、機器制御ドライバ部122は、タイムアウト時間内に、処理成功メッセージを受信できなかったとき(S507のNo)、制御処理部12は、前記したS407と同様、この制御機器2においてICタグの読み取り処理ができない状態であり、故障している可能性が高いことを示すフラグを立てる(S508:故障判断処理)。そして、処理を終了する。
S507のYesの後、コントローラ1の機器制御ドライバ部122は、制御機器IO処理プロトコルデータ132を参照して、以下の処理を行う。
なお、以下の説明において、コントローラ1がS507で受信した処理結果データには、タグIDが含まれているものとする。そして、コントローラ1はそのタグIDをもとに認証処理を行い、認証OKであれば制御機器2のLEDをON、ブザーはOFFとし、認証NGであれば制御機器2のLEDをOFF、ブザーはOFFとする制御信号を送信する場合を例に説明する。
図6のS601において、コントローラ1の制御処理部12は、受信した処理結果データ(タグID)をもとに認証処理を実行する(S601)。ここで、認証OKだった場合(S602のYes)、機器制御ドライバ部122は、前回のIO処理要求送信から所定時間(制御機器IO処理プロトコルデータ132に示されるBUSY値)経過しているか否かを判断する(S605)。ここで、所定時間経過していれば(S605のYes)、機器制御ドライバ部122は、この制御機器のIO処理要求(IO処理を要求する制御信号)を制御機器へ送信する(S606)。一方、まだ所定時間経過していなければ(S605のNo)、機器制御ドライバ部122はIO処理要求を送信しない。なお、ここで機器制御ドライバ部122が送信するIO処理要求は、例えば、制御機器2のLEDのONやブザーのOFFを指示するサービス番号およびコマンド番号(表2等参照)を含む制御信号である。
一方、S602において認証エラーが発生した場合(S602のNo)も、機器制御ドライバ部122は、前回のIO処理要求送信から所定時間(制御機器IO処理プロトコルデータ132に示されるBUSY値)経過していれば(S603のYes)、この制御機器のIO処理要求(IO処理を要求する制御信号)を制御機器へ送信する(S604)。一方、まだ所定時間経過していなければ(S603のNo)、機器制御ドライバ部122はIO処理要求を送信せず、前回のIO処理要求送信から所定時間経過するのを待つ。
ここで、機器制御ドライバ部122が送信するIO処理要求は、制御機器2のLEDのOFFやブザーのONを指示するサービス番号およびコマンド番号(表2参照)を含む制御信号である。
このようなIO処理要求を受信した制御機器2は、サービス処理部222においてIO処理を行う(S607)。そして、そのIO処理が成功したとき(S608のYes)、サービス処理部222は、このIO処理の処理成功メッセージをコントローラ1へ送信する(S610)。一方、サービス処理部222はIO処理に失敗したとき(S608のNo)、処理エラーメッセージをコントローラ1へ送信する(S609)。ここで送信するメッセージは、例えば、表3に例示したようなサービス番号やコマンド番号(応答コード)を含む信号である。
コントローラ1の機器制御ドライバ部122は、S604またはS606におけるIO処理要求送信後、タイムアウト時間(制御機器IO処理プロトコルデータ132に示されるTIMEOUT値)内に、このIO処理成功メッセージを受信したとき(S611のYes)、図5のS501へ戻る。なお、ここで受信したメッセージ(信号)が、このIO処理の処理成功メッセージであるか否かは、前記した初期化やICタグ処理の場合と同様、制御機器IO処理プロトコルデータ132におけるサービス番号や応答コードの定義情報(表2参照)を参照して判断する。
一方、機器制御ドライバ部122においてタイムアウト時間内に処理成功メッセージを受信できなかったとき(S611のNo)、制御処理部12は、この制御機器2は故障している可能性が高いことを示すフラグを立て(S612:故障判断処理)、処理を終了する。
このように、コントローラ1は制御機器2から送信されたプロトコルスタック231(つまり、プロトコルスタック131)に基づき、制御機器2との間で信号送受信ができるようになる。特に、コントローラ1は、制御機器2のプロトコルデータとして、この制御機器2に固有のBUSY値やTIMEOUT値等を送信するので、コントローラ1はこの制御機器2へサービス要求(制御信号)を送信するとき、この制御機器2をBUSY状態させない送信間隔で送信することができる。また、コントローラ1において、この制御機器2が正常に動作していることの確認(ヘルスチェック)をすることができ、大変便利である。
なお、S409、S508およびS612において、コントローラ1がこの制御機器2は故障している可能性が高いことを示す判断をしたとき、例えば、コントローラ1は、この制御機器2に故障が発生していることを示す信号を入出力部11経由で出力する。つまり、コントローラ1による制御機器2のヘルスチェック結果を表示部等に出力する。このようにすることで、コントローラ1へこの制御機器2を接続する作業を行う作業者は、この制御機器2において故障が発生しているか否かをすぐに確認でき、大変便利である。
なお、図4ないし図6において、説明を省略したが、コントローラ1が制御機器2から受信するプロトコルデータにSTROBE値が設定されていれば、コントローラ1はこのSTORBE値にしたがって制御信号を送信し、制御機器2にシーケンシャル処理を行わせる。
本実施の形態に係るコントローラ1および制御機器2は前記したような処理を実行させるプログラムによって実現することができ、そのプログラムをコンピュータによる読み取り可能な記憶媒体(CD−ROM等)に記憶して提供することが可能である。また、そのプログラムを、インターネット等のネットワークを通して提供することも可能である。
1 コントローラ
2 制御機器
3 接続媒体
11,21 入出力部
12,22 制御処理部
13,23 記憶部
121,221 プロトコルデータ交換部
122 機器制御ドライバ部
131,231 プロトコルスタック
132,232 制御機器IO処理プロトコルデータ
133,333 ICタグ処理プロトコルデータ
134,234 制御機器初期化処理プロトコルデータ
222 サービス処理部
2 制御機器
3 接続媒体
11,21 入出力部
12,22 制御処理部
13,23 記憶部
121,221 プロトコルデータ交換部
122 機器制御ドライバ部
131,231 プロトコルスタック
132,232 制御機器IO処理プロトコルデータ
133,333 ICタグ処理プロトコルデータ
134,234 制御機器初期化処理プロトコルデータ
222 サービス処理部
Claims (11)
- 自身の制御機器に類似する機種との差異となるプロトコルデータとして、(1)コントローラからの制御信号を受信するときのインターバルを示したBUSY値および(2)前記自身の制御機器において実行する処理のコマンド番号を示した定義情報を記憶する記憶部と、前記コントローラから、前記定義情報に示されるコマンド番号を含む制御信号を受信し、この制御信号に応じて処理を実行し、その処理の実行結果を前記制御信号の応答として送信するサービス処理部とを備える制御機器。
- 前記プロトコルデータは、
前記コントローラが、前記制御機器からの制御信号の応答のタイムアウトを検知するための時間を示したTIMEOUT値をさらに含むことを特徴とする請求項1に記載の制御機器。 - 前記プロトコルデータは、
前記制御機器がシーケンシャル処理を行うために、前記コントローラから受信する必要がある前記制御信号のコマンド番号の並びを示したSTOROBE値をさらに含むことを特徴とする請求項1または請求項2に記載の制御機器。 - 自身の制御機器に類似する機種との差異となるプロトコルデータとして、(1)コントローラからの制御信号を受信するときのインターバルを示したBUSY値および(2)前記自身の制御機器において実行する処理のコマンド番号を示した定義情報を記憶する記憶部と、前記コントローラから、前記コマンド番号を含む制御信号を受信し、この制御信号に応じて処理を実行し、その処理の実行結果を前記制御信号の応答として送信するサービス処理部とを備える制御機器から、前記プロトコルデータを受信するプロトコルデータ交換部と、
前記制御機器に類似する機種に共通なドライバと、前記受信したプロトコルデータとを記憶する記憶部と、
前記ドライバと前記プロトコルデータとを用いて、前記制御機器へ前記コマンド番号を含む前記制御信号を送信し、この制御機器に所定の処理を実行させ、前記処理の実行結果を前記制御信号の応答として受信する機器制御ドライバ部とを備え、
前記機器制御ドライバ部は、
前記プロトコルデータのBUSY値に示されるインターバルで、前記制御機器へ前記制御信号を送信することを特徴とするコントローラ。 - 前記プロトコルデータは、
前記コントローラが、前記制御機器からの制御信号の応答のタイムアウトを検知するための時間を示したTIMEOUT値をさらに含み、
前記機器制御ドライバ部は、
前記制御機器へ前記制御信号を送信した後、前記プロトコルデータのTIMEOUT値に示される時間以上経過しても、当該制御機器から、前記制御信号の応答を受信しなかったとき、前記制御機器の異常を検知することを特徴とする請求項4に記載のコントローラ。 - 前記プロトコルデータは、
前記制御機器がシーケンシャル処理を行うために、前記コントローラから受信する必要がある前記制御信号のコマンド番号の並びを示したSTOROBE値をさらに含み、
前記機器制御ドライバ部は、
前記プロトコルデータに示されるSTOROBE値を参照して、前記シーケンシャルのために必要な前記制御信号を前記制御機器へ送信することを特徴とする請求項4または請求項5に記載のコントローラ。 - 前記制御信号は、
前記制御機器における初期化処理、IO処理およびサービス処理の少なくともいずれか1つの処理に関する制御信号であり、
前記プロトコルデータは、
前記制御機器における初期化処理、IO処理およびサービス処理それぞれに関するBUSY値、TIMEOUT値およびSTROBE値のうち少なくともいずれか1つの値を含むものであることを特徴とする請求項6に記載のコントローラ。 - 制御対象となる各制御機器に共通なドライバを備えるコントローラが、
自身の制御機器に類似する機種との差異となるプロトコルデータとして、(1)前記コントローラからの制御信号を受信するときのインターバルを示したBUSY値および(2)前記自身の制御機器において実行する処理のコマンド番号を示した定義情報を含むプロトコルデータを受信するステップと、
前記受信したプロトコルデータを前記コントローラの記憶部に記憶するステップと、
前記ドライバと前記記憶されたプロトコルデータとを参照して、このプロトコルデータのBUSY値に示されるインターバルで、前記制御機器へ前記定義情報に示されるコマンド番号を含む前記制御信号を送信するステップと、
前記制御機器における処理の実行結果を前記制御信号の応答として受信するステップとを実行することを特徴とする制御方法。 - 前記プロトコルデータは、
前記コントローラが、前記制御機器からの制御信号の応答のタイムアウトを検知するための時間を示したTIMEOUT値をさらに含み、
前記コントローラが、
前記制御機器へ前記制御信号を送信した後、前記プロトコルデータのTIMEOUT値に示される時間以上経過しても、当該制御機器から、前記制御信号の応答を受信しなかったとき、前記制御機器の異常を検知することを特徴とする請求項8に記載の制御方法。 - 前記プロトコルデータは、
前記制御機器がシーケンシャル処理を行うために、前記コントローラから受信する必要がある前記制御信号のコマンド番号の並びを示したSTOROBE値をさらに含み、
前記コントローラが、
前記プロトコルデータに示されるSTOROBE値を参照して、前記シーケンシャルのために必要な前記制御信号を前記制御機器へ送信することを特徴とする請求項8または請求項9に記載の制御方法。 - 前記制御信号は、
前記制御機器における初期化処理、IO処理およびサービス処理の少なくともいずれか1つの処理に関する制御信号であり、
前記プロトコルデータは、
前記制御機器における初期化処理、IO処理およびサービス処理それぞれに関するBUSY値、TIMEOUT値およびSTROBE値のうち少なくともいずれか1つの値を含むものであることを特徴とする請求項10に記載の制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007000220A JP2008165683A (ja) | 2007-01-04 | 2007-01-04 | 制御機器、そのコントローラおよび制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007000220A JP2008165683A (ja) | 2007-01-04 | 2007-01-04 | 制御機器、そのコントローラおよび制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008165683A true JP2008165683A (ja) | 2008-07-17 |
Family
ID=39695051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007000220A Pending JP2008165683A (ja) | 2007-01-04 | 2007-01-04 | 制御機器、そのコントローラおよび制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008165683A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9032365B2 (en) | 2009-05-22 | 2015-05-12 | Nec Corporation | Script description separation reconstructing device, script description separation reconstructing method, and non-transitory computer readable medium storing script description separation reconstructing program |
-
2007
- 2007-01-04 JP JP2007000220A patent/JP2008165683A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9032365B2 (en) | 2009-05-22 | 2015-05-12 | Nec Corporation | Script description separation reconstructing device, script description separation reconstructing method, and non-transitory computer readable medium storing script description separation reconstructing program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2605852A1 (en) | Reader control system | |
EP1710642A2 (en) | Distributed control apparatus | |
JP2007188521A5 (ja) | ||
WO2015028446A1 (en) | System and method for pairing devices | |
JP2012520471A5 (ja) | ||
CN107526681B (zh) | 一种机器人的测试系统及测试方法 | |
CN101647028A (zh) | 在自动化组件和移动操作终端之间建立无线通信连接的方法 | |
JPH09198119A (ja) | 操作ボード、リモートi/o通信制御方式 | |
US11464111B2 (en) | Stacked structure of circuit boards | |
KR20140015281A (ko) | 복수의 디스플레이 통합 제어 시스템과 디스플레이 통합 입력 장치 | |
JP2008165683A (ja) | 制御機器、そのコントローラおよび制御方法 | |
JP2020074204A (ja) | 作業管理システム | |
JP2006277733A (ja) | プログラマブル・コントローラ・システム | |
JP4782063B2 (ja) | 複数の機器の操作システム及び製造システムの制御方法 | |
JP2009104351A (ja) | 接続状態判断システム | |
CN114980056B (zh) | 一种多蓝牙连接数据传输方法和系统 | |
KR20070076747A (ko) | 데이터 처리 장치 및 이의 프로그램 데이터 셋팅 방법 | |
WO2014181679A1 (ja) | アダプタ装置、そのデータ処理方法、及び医療システム | |
JPH11110333A (ja) | 中央監視システム | |
JP4811030B2 (ja) | 読み取り結果視認が可能な無線タグ送受信装置及びプログラム | |
KR100917542B1 (ko) | 슬레이브 기기의 통신 프로토콜 설정방법 | |
JPH03500587A (ja) | ネットワークインタフェースボードシステム | |
JP2005073075A (ja) | 遠隔監視制御システム | |
KR20120121681A (ko) | 서보의 아이디 확인 장치 및 방법 | |
JP2006106999A (ja) | プログラマブルコントローラ |