(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】6557760
(24)【登録日】2019年7月19日
(45)【発行日】2019年8月7日
(54)【発明の名称】機器の制御方法、制御装置及びシステム
(51)【国際特許分類】
G06F 8/65 20180101AFI20190729BHJP
G06F 11/30 20060101ALI20190729BHJP
H04Q 9/00 20060101ALI20190729BHJP
【FI】
G06F8/65
G06F11/30 189
H04Q9/00 311J
【請求項の数】18
【全頁数】17
(21)【出願番号】特願2018-116353(P2018-116353)
(22)【出願日】2018年6月19日
【審査請求日】2018年6月19日
(73)【特許権者】
【識別番号】516386074
【氏名又は名称】JIG−SAW株式会社
(74)【代理人】
【識別番号】100076428
【弁理士】
【氏名又は名称】大塚 康徳
(74)【代理人】
【識別番号】100112508
【弁理士】
【氏名又は名称】高柳 司郎
(74)【代理人】
【識別番号】100115071
【弁理士】
【氏名又は名称】大塚 康弘
(74)【代理人】
【識別番号】100116894
【弁理士】
【氏名又は名称】木村 秀二
(74)【代理人】
【識別番号】100130409
【弁理士】
【氏名又は名称】下山 治
(74)【代理人】
【識別番号】100134175
【弁理士】
【氏名又は名称】永川 行光
(74)【代理人】
【識別番号】100177390
【弁理士】
【氏名又は名称】大出 純哉
(74)【代理人】
【識別番号】100172591
【弁理士】
【氏名又は名称】江嶋 清仁
(72)【発明者】
【氏名】佐藤 太和
(72)【発明者】
【氏名】大槌 一弘
【審査官】
多胡 滋
(56)【参考文献】
【文献】
国際公開第2017/154166(WO,A1)
【文献】
特開2017−111531(JP,A)
【文献】
特開2003−099278(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/65
G06F 11/30
H04Q 9/00
(57)【特許請求の範囲】
【請求項1】
制御装置と通信可能に接続された機器を、前記制御装置によって制御する方法であって、
前記制御する方法は、前記機器のファームウエアの書き換え制御ステップを含み、前記書き換え制御ステップは、
機器のファームウエアの書き換えの指示を受信するステップであって、前記書き換えの指示がファームウエアの書き換えを行うためのスクリプトの取得先を識別する第1の取得先情報を含む、受信するステップと、
前記第1の取得先情報に基づいて、前記ファームウエアの書き換えを行うためのスクリプトを外部装置から取得するステップと、
前記ファームウエアの書き換えを行うためのスクリプトを実行して、ファームウエアを外部装置から取得すること、前記機器をファームウエアの書き換えが可能な状態に制御すること、前記取得したファームウエアを前記機器へ転送すること、前記機器のファームウエアを、前記転送されたファームウエアに書き換えさせることを実行するステップと、を含む方法。
【請求項2】
前記制御する方法は、前記機器からのデータの読出し制御ステップをさらに含み、
前記読出し制御ステップは、データの読出しの指示を受信するステップであって、前記読出しの指示はデータの読出しを行うためのスクリプトの取得先を識別する第2の取得先情報を含む、受信するステップと、
前記第2の取得先情報に基づいて、データの読出しを行うためのスクリプトを外部装置から取得するステップと、
前記データの読出しを行うためのスクリプトを実行することにより前記機器からデータを読出し、前記データを外部装置へ出力するステップと、
を含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記機器からのデータは、前記機器に接続される外部機器のデータを含むことを特徴とする請求項2に記載の方法。
【請求項4】
前記指示はSMS(ショートメッセージ)又はPUSH通知によることを特徴とする請求項1乃至3のいずれか1項に記載の方法。
【請求項5】
前記ファームウエアを前記外部装置から取得することは、前記機器において利用できる複数のファームウエアの内の所定のファームウエアを指定して取得することを含むことを特徴とする請求項1乃至4のいずれか1項に記載の方法。
【請求項6】
前記制御する方法は、前記制御装置と通信可能に接続された通信ユニットを介して外部装置との通信を行うステップさらに含むことを特徴とする請求項1乃至5のいずれか1項に記載の方法。
【請求項7】
処理部と、
メモリと、
機器と通信可能に接続されるインタフェース部と、を備える制御装置であって、
前記処理部は前記機器のファームウエアの書き換えを制御し、
前記書き換えの制御は、
前記処理部がファームウエアの書き換えを行うためのスクリプトの取得先を識別する第1の取得先情報を含む前記機器のファームウエアの書き換えの指示を受信し、
前記処理部が前記第1の取得先情報に基づいて、前記機器のファームウエアの書き換えを行うためのスクリプトを外部装置から取得し、
前記処理部が前記機器のファームウエアの書き換えを行うためのスクリプトを実行することにより、
ファームウエアを外部装置から取得すること、前記機器をファームウエアの書き換えが可能な状態に制御すること、前記取得したファームウエアを前記機器へ転送すること、前記機器のファームウエアを、前記転送されたファームウエアに書き換えさせること、を含むことを特徴とする
制御装置。
【請求項8】
前記処理部は、さらに前記機器からのデータの読出しを制御し、前記データの読出しの制御は、
前記処理部がデータの読出しを行うためのスクリプトの取得先を識別する第2の取得先情報を含むデータの読出しの指示を受信し、
前記処理部が前記第2の取得先情報に基づいてデータの読出しを行うためのスクリプトを外部装置から取得し、前記データの読み出しを行うためのスクリプトを実行することにより、
前記機器からデータを読出し、前記読み出されたデータを、前記インタフェース部を介して外部装置へ出力すること、を含むことを特徴とする請求項7に記載の制御装置。
【請求項9】
前記機器からのデータは、前記機器に接続される外部機器からのデータを含むことを特徴とする請求項8に記載の制御装置。
【請求項10】
前記指示はSMS(ショートメッセージ)又はPUSH通知によることを特徴とする請求項7乃至9のいずれか1項に記載の制御装置。
【請求項11】
前記ファームウエアを外部装置から取得することは、前記機器において利用可能な複数のファームウエアの内の所定のファームウエアを指定して取得することを含むことを特徴とする請求項7乃至10のいずれか1項に記載の制御装置。
【請求項12】
前記処理部は、前記インタフェース部と通信可能に接続された通信ユニットを介して外部装置との通信を行うことを特徴とする請求項7乃至11いずれか1項に記載の制御装置。
【請求項13】
制御装置と、
前記制御装置と通信可能に接続された機器と、を含むシステムであって、
前記制御装置は前記機器のファームウエアの書き換え制御を行うことができ、前記書き換え制御は、
前記制御装置が前記機器のファームウエアの書き換えを行うためのスクリプトの取得先を識別する第1の取得先情報を含む、前記機器のファームウエアの書き換えの指示を受信し、
前記制御装置が前記第1の取得先情報に基づいて前記機器のファームウエアの書き換えを行うためのスクリプトを外部装置から取得し、
前記制御装置が前記ファームウエアの書き換えのためのスクリプトを実行することにより、
ファームウエアを外部装置から取得すること、前記機器をファームウエアの書き換えが可能な状態に制御すること、前記取得したファームウエアを前記機器へ転送すること、前記機器のファームウエアを、前記転送されたファームウエアに書き換えさせること、を含み、
前記機器は、前記機器のファームウエアを前記転送されたファームウエアに書き換えるシステム。
【請求項14】
前記制御装置は、さらに前記機器からデータの読出しを行うことができ、前記データの読出しは、
データの読出しを行うためのスクリプトの取得先を識別する第2の取得先情報を含むデータの読出しの指示を受信し、
前記第2の取得先情報に基づいてデータの読出しを行うためのスクリプトを外部装置から取得し、前記データの読出しを行うためのスクリプトを実行することにより前記機器からデータを読出し、前記読出したデータを外部装置へ出力すること、を含むことを特徴とする請求項13に記載のシステム。
【請求項15】
前記機器からのデータは前記機器に接続される外部機器からのデータを含むことを特徴とする請求項14に記載のシステム。
【請求項16】
前記指示はSMS(ショートメッセージ)又はPUSH通知によることを特徴とする請求項13乃至15のいずれか1項に記載のシステム。
【請求項17】
前記ファームウエアを外部装置から取得することは、前記機器において利用可能な複数のファームウエアの内の指定された所定のファームウエアを外部装置から取得することを含むこと特徴とする請求項13乃至16のいずれか1項に記載のシステム。
【請求項18】
前記制御装置と通信可能に接続された通信ユニットをさらに備え、前記制御装置は前記通信ユニットを介して外部装置との通信を行うことを特徴とする請求項13乃至17のいずれか1項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機器の制御方法、制御装置及びシステムに関する。
【背景技術】
【0002】
工程管理や環境維持のためにセンサや入出力部を搭載した機器を配置してデータを収集することや装置を制御することが行われている。このような機器は処理部としてCPUが搭載されて、センサが検出したデータを処理してサーバなどへ提供し、またコマンドに応じた外部装置との入出力制御を行うものがある。データの処理はCPUがファームウエアに格納された命令を実行することにより行われる。機器の制御の一つにファームウエアの書き換えがある。特許文献1では、制御機器に組み込まれたシステムプログラムの変更を行う方法として、システムプログラム書き換え装置に、指定された制御機器に転送する手順が記述されている機種情報ファイルと書き換え用システムプログラムを記憶しておき、システムプログラムの更新時に制御機器とデータの授受を行う。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2004−178499号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1では、機種ごとのプログラムを記憶し、制御用ネットワークを介して制御機器とのデータ授受を行う。しかし、プログラムの更新の対象となる機器が多種類あるような場合には、それぞれの機器毎のプログラムを記憶しておき配信する必要がある。そのために装置の規模が大きくなる。一方、機器のマイコンのリソースは小さいものもあり、ネットワークを使った機器の制御、例えばファームウエアの更新手順のような高度な機能をもつことができない場合がある。また現場で機器を使用するユーザにとって、機器の制御がしやすいことも望まれる。本発明は、このような機器の制御を行うのに有利な技術を提供することを目的とする。
【課題を解決するための手段】
【0005】
上記目的を達成するために、本発明の機器を制御する方法は、前記機器のファームウエアの書き換え制御ステップを含み、前記書き換え制御ステップは、前記機器のファームウエアの書き換えの指示に応じて、ファームウエアの書き換えを行うためのスクリプトを外部装置から取得するステップと、前記ファームウエアの書き換えを行うためのスクリプトを実行するステップであって、ファームウエアを外部装置から取得すること、前記機器をファームウエアの書き換えが可能な状態に制御すること、前記取得したファームウエアを前記機器へ転送すること、を含むステップと、前記機器のファームウエアを、前記転送されたファームウエアに書き換えさせるステップと、を含むことを特徴とする。
【発明の効果】
【0006】
本発明によれば、機器の制御を行うのに有利な技術を提供することができる。
【図面の簡単な説明】
【0007】
【
図3】制御装置と機器との間のインタフェースの例。
【
図4】ファームウエアアップデートの例を示すタイムチャート。
【
図5】異なる仕様のファームウエアアップデートの例。
【発明を実施するための形態】
【0008】
以下に、本発明の好ましい実施の形態を、添付の図面を用いて説明する。
【0009】
[システム構成]
本実施例のシステム構成の一例について、
図1〜
図3により説明する。システムは、例えば制御装置100と、制御装置100に制御される機器であるセンサボックス200、インタフェースボックス300、IOボックス500及び通信ユニット400等から構成される。制御装置100により制御される機器はホスト機器でもクライアント機器でもよい。
【0010】
制御装置100は例えばリアルタイムOSで動作する処理部(CPU110)を備えている。制御装置100のメモリ120は、例えばフラッシュメモリのような書き換えが可能なメモリである。メモリ120は、CPU110が実行するOS、スクリプト、ファームウエアと呼ばれるシステムプログラムなどを記憶している。ここでスクリプトにはJavaScript(登録商標)等を用いることができる。メモリ120はCPU110に内蔵されてもよいし、CPU110の外部に配置されてもよい。またその両方であってもよい。また制御装置100はCPU110が処理を行うために、一時的な記憶に使用するRAM130も備えている。RAM130はCPU110に内蔵されてもよいし、CPU110の外部に配置されてもよい。またその両方であってもよい。さらに制御装置100は外部機器とのデータやコマンドを入出力するためのインタフェース部140、150、160を備えている。本実施例では、機器と制御装置100とは例えばUARTを使ってコマンドやデータを送受信することができる。制御装置100は例えばNB−IoTやLPWAなどのLTE規格で通信を行うことができる通信モジュール170を内蔵し、直接クラウドとの間で通信を行うことができるように構成されてもよいし、イーサネット(登録商標)などの有線LANに接続できるインタフェース部を備えてもよい。有線LANを使う場合は有線LANをインターネットに接続して、クラウド600のサーバとの間での通信を行うようにしてもよい。制御装置100の電源は内蔵バッテリでもよいし外部から電源を供給されるようにしてもよい。内蔵バッテリで動作する場合には、通信モジュール170にウエイクアップ機能を備えることにより、通常は制御装置100の動作を停止し、SMSによる通知等の通信を検出したときに起動するようにして省電力化を図ってもよい。また、CPUのリアルタイムクロック(RTC)を使って所定の周期でウエイクアップするようにしたり、外部の機器からの信号に応じて起動・停止をして省電力を図ってもよい。
【0011】
センサボックス200はセンサボックス200を制御するために処理部(CPU210)を備えており、制御装置100からのコマンドを実行することができる。CPU210はファームウエア215に格納された命令を実行する。センサボックス200のターミナル250にはセンサモジュールのような外部機器が接続される。センサボックス200とセンサモジュールとの間のデータの送受信にはI
2CやSPI等の通信手段を使うことができる。アナログデータを直接出力するセンサをセンサボックス200に接続する場合は、センサからのアナログデータをA/Dコンバータ220によりデジタルデータに変換し、I
2Cなどのバスを介してCPU210へ入力してもよい。D/Aコンバータ230はセンサ等をアナログ制御する際に使用される。A/Dコンバータ220やD/Aコンバータ230はCPUに内蔵されたものを使用してもよい。ターミナル250に接続されるセンサモジュールは、温度センサ、圧力センサ、光センサ、速度センサ、ロータリセンサ、加速度センサなど任意の種類のセンサモジュールでよい。ターミナル250には、直接センサを接続することもできる。またセンサボックス200の内部にセンサ240を備えてもよい。ターミナル250に複数個のセンサモジュールを接続して、制御装置100からのコマンドにより所望のセンサモジュールからセンサデータを取得したり、複数のセンサからのセンサデータを多重化してCPU210に提供してもよい。
【0012】
IOボックス500はIOボックス500を制御するための処理部(CPU510)を備えており、制御装置100からのコマンドを実行することができる。CPU510はファームウエア515に格納された命令を実行する。IOボックス500のターミナル550には外部機器が接続される。IOボックス500と外部機器との間の信号の入出力制御には処理部(CPU510)のIOを使うことができる。IO入出力にはリレーや光MOSFET(フォトモス)を経由する構成でもよい。ターミナル550に接続される外部機器は、音響出力デバイスやスイッチなど任意の種類の機器でよい。IOボックス500にはターミナル550からアナログ信号が入力された場合にデジタル信号に変換するA/Dコンバータ520や所定のアナログ値を出力するためのD/Aコンバータ530を内蔵してもよい。A/DコンバータやD/AコンバータはCPU510に内蔵されたものを使用してもよい。外部機器のデータやA/Dコンバータ520でデジタル化されたデータは、I
2Cなどを介してCPU510へ入力され、CPU510により処理されて、例えばUARTを介して通信可能に接続された制御装置100へ出力される。制御装置100との間でSPI等を用いてデータやコマンドを転送してもよい。
【0013】
インタフェースボックス300は、例えばRS−485に対応したインタフェースを有し、RS−485によりデータを入出力するPLCを外部機器としてインタフェースボックス300に接続して、制御装置100との間でUARTを介して通信を行うことができる。インタフェースボックス300は制御のための処理部(CPU310)を備えており、制御装置100からのコマンドを実行することができる。インタフェースボックス300を介して制御装置100からのコマンドをPLCに与えて、PLCの制御をすることができる。インタフェースボックス300はRS−485に対応するタイプの他に、RS−232CやRS−422、USB等を使用する場合はその規格にあったタイプのものを用意する。
【0014】
通信ユニット400は、例えばWiFiやブルートゥース(Bluetooth)(登録商標)などに対応したRFモジュール410と送受信のためのアンテナ420を備える。制御装置100との間ではUARTにより通信を行い、WiFiなどを使い外部装置との間で無線によるデータ通信を行うことができる。通信ユニット400はゲートウエイ450を介して又はアクセスポイント等を介して外部のクラウド600のサーバに接続することができる。通信ユニット400は制御のための処理部(CPU)を備えており、制御装置100からのコマンドを実行することができる。
【0015】
センサボックス200、インタフェースボックス300、IOボックス500、通信ユニット400を例に制御装置100に接続されて、制御される機器について説明したが、機器の種類はこれに限られない。
【0016】
制御装置100に各種の機器が接続される例を
図2により説明する。制御装置100、センサボックス200、インタフェースボックス300及び通信ユニット400等の機器は制御装置100に対してコネクタにより直接接続される構造でもよい。制御装置100とそれぞれの機器との間は所定の形状のコネクタにより直接接続されてもよいし、ケーブルを使って接続することもできる。
図2に示される制御装置100やセンサボックス200等は6面体の形状をしているが、形状はこれに限らない。またインタフェースボックス350のように用途に合わせたターミナルを持つ機器を別に用意して接続してもよい。制御装置100は、例えば
図3に示されるIOポートを使って所定の機器を識別したり選択できる。制御装置100はセンサボックス200やインタフェースボックス300、350とを接続することにより、制御装置100と機器間及び機器と接続された外部機器との間で柔軟にデータの入出力を行うことができる。
【0017】
制御装置100と各種のボックスとの間の物理的な接続に用いるコネクタは誤接続を防ぐためにセンサボックス200とインタフェースボックス300、IOボックス500、通信ユニット400等、制御装置100に接続される機器によって異なる形状のコネクタを使うことができる。また、同じ形状のコネクタを使ってもよい。また、制御装置100と機器との間のデータやコマンドのやりとりはフォーマットを共通化してUARTを使って行うとよい。ソフトウエア的にも、制御装置100と機器間のコマンドを共通に定義しておくことにより、機器間のソフトウエア終端をすることで機器を交換することや増設することが容易になる。
【0018】
制御装置100と制御装置100に接続される機器との間での通信に使用されるインタフェースの例を
図3に示す。UARTはデータやコマンドに使用する。SPIやI
2Cは主にセンサモジュールとの通信に用いられるが、データやコマンドの通信に用いることもできる。ADC(A/Dコンバータ)はA/Dコンバータの入力又は出力であって、アナログセンサ入力等に用いられる。DAC(D/Aコンバータ)はD/Aコンバータの入力又は出力であって、アナログセンサ制御等に用いられる。IOポートは機器の識別や外部のスイッチからの入力、機器のCPUの制御などに用いられる汎用IO(GPIO)である。このように機器と制御装置100との間の信号を電気的にも共通化することにより制御装置100と他の機器との間のインタフェースを共通にして取扱いを容易にできる。制御装置100及び機器の回路は直接又は間接にIOポート等と接続される。間接的な接続にはゲートやスイッチ、カプラを介した接続がある。間接的に接続することによりCPUに過大な電圧が印加されることを防ぎ、CPUを保護することができる。
【0019】
[機器の制御例 1.ファームウエアの更新例]
ここでは
図4を用いてセンサボックス200やインタフェースボックス300等の機器のファームウエアの更新について説明する。
【0020】
機器としてセンサボックス200を例として、センサボックス200のファームウエア215を、制御装置100により更新する例を説明する。センサボックス200のファームウエアを更新する必要が発生した場合、クラウド600から、更新に必要なスクリプトのある場所を示すURLを含む指示が制御装置100へ、SMS(ショートメッセージ)又はPUSH通知などを使って通知される(S101)。この指示は例えばユーザがセンサボックス200の内部のデバイスを変更したことによりファームウエアを更新したいときなどにユーザにより行われてもよい。また、センサボックス200のメーカーがファームウエアを更新したいときでもよい。
【0021】
制御装置100は通信モジュール170を介して、URLを格納したSMSメッセージを受信し、メッセージからURLを取り出して、通知されたURLへアクセスする(S102)。以下の説明ではメッセージにURLを格納しているが、メッセージにURLを格納するのに代えて、予め制御装置100にURLを格納しておき、メッセージにはURLの代わりに識別コードを格納して送信し、受信したメッセージの識別コードに基づいて制御装置100内のURLを選択してアクセスするようにしてもよい。制御装置100によりアクセスされたHTTPサーバ(不図示)は、アクセスに応答して制御装置100が更新のために実行するスクリプトを制御装置100へHTTPレスポンスとして送信する(S103)。クラウドによるサービスを利用することにより、クラウドの指定されたURLには予めユーザがファームウエアの書き換えを制御するためのスクリプトを作成して格納しておくことができる。制御装置100は受信したHTTPレスポンスに含まれるスクリプトをメモリ120に格納する。制御装置100のメモリ120には初期状態においてスクリプトが格納されていなくてもよい。また新しいスクリプトは、メモリ120に格納された古いスクリプトに上書きされてもよい。スクリプトを格納するメモリの容量は、制御装置100が実行するスクリプトの分でよく、複数のスクリプトを格納する必要はない。
【0022】
制御装置100はスクリプトを実行することにより、スクリプトに含まれているURLへアクセスし、制御装置100はクラウド600上のサーバ(不図示)に対してセンサボックス200の新しいファームウエアを要求することができる(S104)。この要求を受けて、クラウド600のサーバはファームウエアを制御装置100へ転送する(S105)。制御装置100はサーバから受信したファームウエアをメモリ120又は130に記憶する。さらにCPU110はスクリプトを実行して、センサボックス200のCPU210をローダーモードに設定する。ローダーは、CPUがフラッシュメモリに格納されているファームウエアを書き換えるためのプログラムのことである。ローダーモードはローダーが起動されたモードのことである。CPUのローダーモードへの切り換えはCPUの種類に応じて異なるが、CPUのハードウエアピン制御による切り換えを例に以下に説明する。ローダーモードへの切り換えは例えばCPU210のモードピンをLレベルにした状態で、CPUのリセットピンをLからHレベルに変化してCPU210をリセットすることにより実行できる。ローダーモードにされたCPU210ではローダーが起動されてファームウエア215を書き換えることができる状態にされる(S106)。クラウド600からの制御装置100へのファームウエアの転送と、ローダーを起動してファームウエアを書き込みできる状態にする制御とは順序が逆になってもよい。CPU210のモードピンやリセットの制御は制御装置100のIOポートから行うことができる。
【0023】
後述するが、ローダーを起動する制御は、センサボックス200のCPU210のタイプにより異なる。このためにクラウド600のサーバにCPUの機種に適合したスクリプトを用意しておく。スクリプトは所定のURLに予めユーザが用意しておくことができる。スクリプトはCPUの種類等に応じて異なるものが必要になるので、制御用のスクリプトを仕様に合わせたテンプレートとして用意しておき、ユーザがスクリプトを作成できるようにしておくとよい。
【0024】
ローダーが起動されるとセンサボックス200のIOポートに起動ステータスが表示される。起動ステータスが出力されたことを確認して、つまりローダーが起動されたことを確認してから制御装置100はファームウエアの転送(DL)の開始を示すDLコマンドを送信する(S107)。起動の確認は、制御装置100がセンサボックス200へUARTを介して確認コマンドを送信し、OKのレスポンスが得られることによって行うタイプのCPUもあるが、CPUのタイプによっては、制御装置100はステータスの確認をせずに、リセットからの時間経過をみてDLコマンドを送信することもできる。DLコマンドを受信したセンサボックス200は、準備完了を示すOKレスポンスを制御装置100へ送信する。制御装置100はこのOKレスポンスを受信してからファームウエアの転送を行う(S108)。ファームウエアの転送を受けて書き換えが終了するとセンサボックス200からコマンド応答S109が送信される。コマンド応答S109を受信した制御装置100は、CPU210のモードピンを例えばHレベルにした状態でリセットピンをLからHレベルにすることにより、センサボックスのCPU210をローダーモードからプログラムを実行するメインモードに切り替える(S110)。その後、制御装置100はセンサボックス200のメインモードが起動されたことをIOポートを監視することにより確認する(S111)。メインモードが起動されたことが確認にされたのに応じてファームウエアの書き換えの完了又は失敗の報告が制御装置100からクラウド600のサーバへ通知される(S112)。
【0025】
次に
図5によりローダーの起動の仕方が異なるCPUを有する機器での、ローダーの起動について説明する。ローダーの起動の仕方として仕様AのタイプのCPUと仕様BのタイプのCPUを例に挙げて説明をする。
仕様A:ローダーを起動するためにCPUのハードウエアピン(例はモードピンとリセットピン)を制御することによりローダーモードにするタイプ。このタイプのCPUを使う場合は制御装置100に接続される機器のコネクタの所定のIOポートにCPUのモードピン及びリセットピンなど書き換えに必要なピンを接続しておく。
仕様B:コマンド(ソフトウエア)によりCPUのローダーを起動する設定にできるタイプ。このタイプのCPUを使う場合は、起動に必要なコマンドを入力するためのCPUのピンを機器のコネクタの所定のUART等の通信ポートと接続しておく。ここでCPUのローダーを起動するコマンドは仕様によって異なるが、スクリプトを書き換えることにより任意のコマンドに対応することができる。
【0026】
先に説明したように、ユーザ等の指示により送信されるSMS等のメッセージに格納されたURLの示す場所はHTTPサーバの所定の格納場所が含まれている。制御装置100によりアクセスされたURLからは、所定のスクリプトが制御装置100へ送信される。したがって、メッセージに格納されるURLは、仕様AのときはURL1、仕様BのときはURL2のように書き分けられることができる。制御装置100に接続されているセンサボックス200に内蔵されているCPUが仕様Aの場合は、制御装置100は指示されたURL1へアクセスして仕様Aを更新するためのシステムA FW更新用シーケンスが記述されたスクリプトAを受信し、メモリ120に格納する。制御装置100(のCPU110)は受信したスクリプトAを実行して、CPU210のモードピンとリセットピンを制御してローダーモードに切り替える(S106)。ハードウエアピンを制御することは、センサボックス200のコネクタの所定のピンに接続されているCPU210のモードピンとリセットピンに対して制御装置100の対応するIOポートから所定のレベルを出力することにより行われる。CPUが仕様Bの場合は、制御装置100は指示されたURL2にアクセスしてシステムB FW更新用シーケンスが記述されたスクリプトBを受信する。制御装置100のCPU110は受信したスクリプトを実行し、CPU210にコマンドを送信してセンサボックス200のCPU210のローダーを起動する。
【0027】
制御装置100のメモリ120は、ファームウエアを更新したい機器のCPUのためのFW更新用シーケンスが記述されたスクリプトを格納できればよく、複数の異なるマイコンの仕様に対する制御のためのスクリプトを複数記憶しておく必要はない。また、スクリプトはユーザが書き換え可能なサーバ上に格納できるようしておくとよい。そうすればセンサボックス200等の機器が変更された場合や、CPUが変更された場合でも、ユーザがスクリプトを書き換えてファームウエアの更新に対応することができる。
【0028】
また本実施例はユーザが基本的な機能を持つアプリケーションプログラムを利用して制御したい場合や拡張された機能を持つアプリケーションプログラムを利用したい場合のように、ファームウエアを使い分けたい場合にも対応できる。例えばURL3には基本機能を実行するのに必要なファームウエア更新用シーケンスを用意し、URL4には拡張機能を実行するのに必要なファームウエア更新用シーケンスを用意しておく。制御装置100へのSMSのメッセージ等に含まれるURLを、ユーザが必要なファームウエアに応じたスクリプトのURLとする。これにより制御装置100はスクリプトを入手して実行することにより所望のファームウエアを入手してセンサボックス200のファームウエアを書き換えることができる。
【0029】
センサボックス200を例にファームウエアの書き換えについて説明したが、制御装置100に接続される機器はセンサボックス200に限られず、インタフェースボックス300などいずれの種類の機器でもよい。
【0030】
本発明では、多種類の機器が使用される場所でも、制御装置100は複数種類のファームウエア及び書き換えの手順を記憶しておく必要がない。制御装置に接続される機器の変更に対してはファームウエアを書き換えるためのスクリプトを制御装置100がアクセスできるクラウドの所定の場所に格納しておく。このために、機器の変更などに柔軟に対応することが容易になる。また指示をSMSやPUSH通知により行うことにより、多数の機器のファームウエアの書き換えを一斉に行うことができる。
【0031】
[機器の制御例 2.コマンドによる制御例]
次に
図6により、クラウド600から機器にコマンドを送信し、機器にコマンドを実行させて応答をクラウド600で受信する例について説明をする。
【0032】
機器としてセンサモジュールが接続されたセンサボックス200を例に説明をする。所定のURLにセンサボックス200からデータを入手するための制御を行うスクリプトを格納しておく。センサボックス200からデータを入手したい場合、所定のURLを含む指示メッセージが、制御装置100へSMSまたはPUSH通知などを使って送信される(S201)。指示はセンサデータを入手したいユーザが行ってもよいし、クラウド600にあるデータ収集サーバがおこなってもよい。制御装置100は通信モジュール170を介してURLが格納されたメッセージを受信し、メッセージからURLを取り出して、通知されたURLへアクセスする(S202)。アクセスされたクラウド600のHTTPサーバ(不図示)は、アクセスに応答してセンサボックス200からデータを取得するためのスクリプトを、HTTPレスポンスとして制御装置100へ送信する(S203)。制御装置100は受信したスクリプトをメモリ120に格納する。スクリプトはメモリ120に上書きされてもよい。制御装置100はスクリプトを実行して、センサボックス200へセンサデータを読み出すコマンドを送信する(S204)。センサボックス200のCPU210はコマンドを受信して、指示されたデータをセンサモジュールから取得する処理を行い、センサデータを制御装置100へ送信する(S205)。制御装置100は受信したセンサデータを所定の通信フォーマットに変換する処理を行い、スクリプトによって指示されたURLへデータを処理した結果を送信する(S206)。URLで指定されたクラウド上のサーバはデータを収集し、分析を実行してもよい。
【0033】
センサボックス200からセンサデータを取得することを例に説明したが、インタフェースボックス300を制御することもできる。インタフェースボックス300を制御するスクリプトを入手するために、スクリプトの有るURLを制御装置100へSMS等で送信し、クラウド600からスクリプトを取得させる。制御装置100はスクリプトを実行することにより、制御装置100からインタフェースボックス300へコマンドを送信して、インタフェースボックス300を制御する。また、センサボックス200と通信ユニット400を制御装置100に接続して、センサボックス200から取得したセンサデータを、通信ユニット400へ送信し、通信ユニット400を介して外部装置へ送信することもスクリプトによる制御により行うことができる。
【0034】
ユーザが制御装置100を介してセンサボックス200等の機器を制御するためのスクリプトを作成し、クラウドの所定のURLに格納しておく。URLが格納されたSMS等でスクリプトを受信する指示を制御装置100へ送信することにより機器の制御を行ったりデータ収集を行うことができる。
【0035】
以上のように、本発明では、制御装置100は機器の制御手順を予め記憶しておく必要はなく、利用する機器の種類が変わっても対応することが容易である。またユーザがクラウドに格納するスクリプトを書き換えることにより柔軟に機器の制御を行うことができる。そのため、特定の機器専用のソフトウエアが不要になり、センサの種類やファームウエアバージョンの変更をしたり、アクチュエータ等のハードウエアが交換されたり、ユーザが最初に設定した条件と違う条件でデータを収集したい場合や機器に対する制御をユーザが変更したい場合にも、制御を簡単に変更することができる。また、ユーザが遠隔にいてもSMSやPUSH通知等を使って機器の制御を容易に行うことができる。
【0036】
[機器の制御例 3.データ通信例]
図7により、複数の機器と制御装置100との間の通信と機器の制御について説明をする。
図7は制御装置100にセンサボックス200、インタフェースボックス300、通信ユニット400が接続された例を示す。制御装置100がスクリプトを受信する指示を受信し、指示に含まれるURLへアクセスしてスクリプトを入手する。制御装置100のCPU110がスクリプトを実行することにより、センサボックス200からセンサデータを取得すること、インタフェースボックス300を介して外部機器を制御し、データを取得すること、通信ユニット400を介して外部のクラウド600上のサーバと通信を行うことができる。
【0037】
図8により、制御装置100による機器の利用の例を説明する。
図8(A)は制御装置100にセンサボックス200と通信ユニット400が接続されている例を示す。この例では、センサモジュール260からのセンサデータをセンサボックス200で取得し、制御装置100の通信モジュール170によって外部のクラウド600へ送信することができる。
【0038】
制御装置100の動作を制御するスクリプトはクラウドの所定のURLの場所に格納される。まず制御装置100はこの動作を制御するためのスクリプトを取得する旨の通知を、SMSやPUSH通知等で受信する。制御装置100はメッセージに格納されているURLへアクセスして、URLの場所にあるスクリプトを取得し、メモリ120に格納する。スクリプトはメモリ120に上書きされてもよい。制御装置100はメモリ120に格納されたスクリプトを実行する。センサモジュール260はセンサボックス200のSPI端子又はI
2C端子に接続されてもよい。センサからのアナログデータ等は、ADC(A/Dコンバータ)端子に入力される。また、アナログ信号によるセンサ制御等が必要な場合は、DAC(D/Aコンバータ)端子と接続される。センサボックス200と制御装置100との間はUART及び汎用IOポートとで接続される。UARTはコマンドやデータ通信に用いることができる。汎用IOはセンサボックスの識別や制御に用いることができる。センサボックス200への制御コマンドはセンサ特有のものを定義しておくことができる。例えば、センサデータの読出し、センサの条件設定(サンプリング周期、測定レンジの変更等)、センサのキャリブレーションの実行、センサの選択、センサボックス200内での処理のための各種演算の指令、データの平滑化や積分などのセンサデータに対する処理アルゴリズムの選択や設定などがある。スクリプトの実行により、制御装置100はセンサボックス200を選択し、センサボックス200へ制御コマンドを発行する。センサボックスは制御コマンドに応じてI
2Cを介してセンサモジュール260からセンサデータを取得する。センサからのアナログデータをA/Dコンバータ220によりデジタル化して取得してもよい。センサボックス200はセンサデータに対する処理を行って、例えばUARTにより制御装置100へセンサデータを送信する。制御装置100でセンサデータが受信されると、制御装置100によってセンサデータは外部へ送信されるために定義されたフォーマットに変換されて、制御装置100から直接LANを介して又は通信モジュール170を介してクラウド600へ送信される。
【0039】
図8(B)は制御装置100にRS−485用のインタフェースボックス300と通信ユニット400が接続されている例を示す。インタフェースボックス300にはPLC700がRS−485により接続されている。この例では制御装置100によりPLC700を制御し、得られたデータを、通信ユニット400を介してクラウドへ送信する。
【0040】
制御装置100の動作を制御するスクリプトが所定のURLの場所に格納されている。まず、スクリプトを取得する指示が、制御装置100においてSMSやPUSH通知等により受信される。制御装置100はメッセージに格納されたURLを取り出して、URLへアクセスして、格納されているスクリプトを取得しメモリ120に格納する。スクリプトはメモリ120に上書きされてもよい。制御装置100はメモリ120に格納したスクリプトを実行する。制御装置100とインタフェースボックス300とはコマンドとデータ通信のためのUART及び汎用IOによって接続されてもよい。汎用IOはインタフェースボックス300の制御や識別のために用いることができる。制御装置100と通信ユニット400とはUART、SPI、汎用IOなどで接続できる。インタフェースボックス300はUARTとRS−485との間のデータを相互に変換することができる。スクリプトの実行により、制御装置100から発行されたPLC制御データはインタフェースボックスへ送信され、インタフェースボックス300でRS−485に変換されてPLC700へ転送される。PLC700からのデータはインタフェースボックス300でUARTに変換されて制御装置100へ転送される。データは制御装置100において外部へ送信するために定義されたフォーマットに変換されて通信ユニットへ送信される。制御装置100は通信ユニット400をスクリプトにより制御して、クラウド600へデータを送信させる。スクリプトを実行してPLC700が所定の状態になったときにPLC700が送信するデータを取得して、クラウドへ送信するように制御することもできる。
【0041】
図8(C)はブルートゥースでデータを送受信できるBLEモジュールにセンサが搭載されたBLEセンサ800からのデータを通信ユニット400−1で受信し、制御装置100の制御の下で通信ユニット400−2からクラウドへ送信する例である。通信ユニット400−1と制御装置100とはUARTと汎用IOとで接続される。UARTはコマンド制御とデータ通信に使用される。汎用IOは通信ユニット400−1の識別に使われる。また通信ユニット400−2と制御装置100とは、UART、SPI、汎用IOで接続されてもよい。通信ユニット400−1はBLE通信機能を有し、BLEセンサ800と通信することができる。制御装置100の動作を制御するスクリプトが所定のURLの場所に格納されている。SMS又はPUSH通知の指示により、クラウド600から制御装置100がスクリプトを受信する。スクリプトはメモリ120に格納される。スクリプトは前のスクリプトがあるときは、上書きされてもよい。制御装置100はスクリプトを実行して、通信ユニット400−1へコマンドを送信する。コマンドはBLEセンサ800へ転送され、例えばBLEセンサ800からデータ読出しを指示する。BLEセンサ800からのデータは通信ユニット400−1で受信されて、制御装置100へ転送される。制御装置100は受信したデータを外部へ送信するためのフォーマットに変換して、通信ユニット400−2へ送信し、通信ユニット400−2から外部のクラウド600へ送信される。これらの制御は制御装置100においてスクリプトが実行されることにより実行される。
【0042】
この例でも、制御装置100は機器の制御手順を制御指示より前に予め記憶しておく必要はなく、将来利用する機器の種類が変わっても、利用する機器を制御するスクリプトを取得するだけで制御することができる。また機器を組み合わせることにより収集したデータをいろいろな形式で外部装置へ提供することができる。
【0043】
[機器の制御例 4.入出力の例]
図9により、IOボックス500を使って入出力を行う例について説明する。
図9(A)の例では、制御装置100と、出力手段900が接続されているIOボックス500とが接続されている。出力手段900はブザーのような音響出力でもLEDのような光出力でもよい。IOボックス500と制御装置100との間は汎用IOで接続する。制御装置100が実行するスクリプトはSMSやPUSH通知の指示に応じてクラウド600から取得される。制御装置100はスクリプトを実行して、汎用IOを介してIOボックス500を制御して出力手段900から音響等を出力することができる。
【0044】
図9(B)の例では、制御装置100と入力手段としてスイッチ910が接続されているIOボックス500とが接続されている。IOボックス500と制御装置100との間は汎用IOで接続する。この例ではスイッチ910はIOボックス500の汎用IOと接続されて、IOボックス500の内部をスルーして、制御装置100の汎用IOに入力されているとする。制御装置100が実行するスクリプトはSMSやPUSH通知の指示に応じてクラウド600から取得される。制御装置100はスクリプトを実行して、IOボックス500に接続されているスイッチ910の状態を直接監視することができる。これらの例でも受信されたスクリプトはメモリ120に上書きして格納されてもよい。
【0045】
以上のように、本発明では、制御装置100は機器の制御のためのスクリプトを予め記憶しておく必要はなく、制御のためのスクリプトを取得する指示の都度、クラウド600からスクリプトを取得する。クラウドによるサービスを利用して、ユーザがスクリプトを作成して所定のURLに格納し、スクリプトに基づいて制御を柔軟に行うこともできる。将来利用する機器の種類が変わっても、利用する機器を制御するスクリプトを作成してクラウドに格納しておけば、制御装置100が指示に応じてスクリプトを取得することにより機器の制御をすることができ、機器が多種、多数使用されていてもニーズに応じて制御を実行することができる。
【0046】
本発明は、以上説明した様々な制御を任意に組み合わせて使用することも含む。例えば、センサボックス200からデータを収集し、通信ユニット400からWiFiで外部装置へ送信する組み合わせにおいて、センサボックスや通信ユニットのファームウエアの書き換えを行うことができる。
【符号の説明】
【0047】
100:制御装置、110:CPU、120:メモリ、130:RAM、140、150、160:インタフェース部、170:通信モジュール、200:センサボックス、210:CPU、215:FW(ファームウエア)、220:A/Dコンバータ、230:D/Aコンバータ、240:センサ、250:ターミナル、300:インタフェースボックス、310:CPU、315:FW(ファームウエア)、320:ドライバ/レシーバ、330:インタフェース部、400:通信ユニット、410:RFモジュール、420:アンテナ、450:ゲートウエイ、500:IOボックス、510:CPU、515:FW(ファームウエア)520、:A/Dコンバータ、530:D/Aコンバータ、550:ターミナル、600:クラウド
【要約】
【課題】
機器の制御を行うのに有利な技術を提供する。
【解決手段】
制御装置と通信可能に接続された機器を制御する方法であって、制御方法は機器のファームウエアの書き換え制御ステップを含み、前記書き換え制御ステップは、前記機器のファームウエアの書き換えの指示に応じて、前記機器のファームウエアを外部装置から取得するステップと、前記ファームウエアの書き換えの指示に応じてスクリプトを実行することにより前記機器をファームウエアの書き換えが可能な状態に制御し、前記取得したファームウエアを前記機器へ転送するステップと、前記機器のファームウエアを前記転送されたファームウエアに書き換えさせるステップと、を含み、前記スクリプトは指示により外部装置から取得される。
【選択図】
図1