(57)【要約】【課題】マスタと複数のスレーブとがリング形式で接続された通信システムにおいて、すべてのスレーブの再起動を確実に制御できる通信データブロックの伝送方法を提供する。【解決手段】接続されたすべてのスレーブに対してマスタが再起動の準備命令を送信するステップ１と、前記スレーブが指令コードにより自身のメモリ上の再起動準備フラグをオンし、指令コードに応答コードを付加して送信するステップ２と、すべての前記スレーブからの応答コードによって再起動の準備が完了したことをマスタが判断するステップ３と、すべてのスレーブに再起動を実行させる命令をマスタが送信するステップ４とを備え、再起動準備フラグと応答コードによりスレーブの再起動を確実に制御できる。【選択図】図３
2006074316.tif 000002
【特許請求の範囲】
【請求項１】
マスタと複数のスレーブ間をリング形式で接続し、複数の指令コードを連結した通信データブロックが一定間隔で通信され、マスタからの指令をスレーブが受信すると自身の指令コードに受信状況を表わす応答コードを付加してマスタに送信するシリアル通信システムであって、接続されたすべてのスレーブに対してマスタが再起動の準備命令を送信するステップ１と、前記スレーブが指令コードにより自身のメモリ上の再起動準備フラグをオンし、指令コードに応答コードを付加して送信するステップ２と、すべての前記スレーブからの応答コードによって再起動の準備が完了したことをマスタが判断するステップ３と、すべてのスレーブに再起動を実行させる命令をマスタが送信するステップ４とを備え、再起動準備フラグと応答コードによりスレーブの再起動を確実に制御することを特徴とした通信データブロックの伝送方法。
【請求項２】
ステップ２において、マスタが送信した指令を正常に受信できなかったとき、応答コードに異常発生を意味するコードを付加する請求項１に記載の通信データブロックの伝送方法。
【請求項３】
再起動の準備完了を判断するステップ３まで、マスタが再起動の準備命令を送信し続ける請求項１または請求項２に記載の通信データブロックの伝送方法。
【請求項４】
ステップ４において、すべてのスレーブに再起動を実行させる条件が通常命令であり、スレーブが通常命令を受信することで再起動を実行する請求項１に記載の通信データブロックの伝送方法。
【請求項５】
ステップ４の後、２番目以降のスレーブがマスタからの命令を一定期間受信できていないことを検出すると、２番目以降のスレーブすべてが再起動を実行する請求項１または請求項４に記載の通信データブロックの伝送方法。
【請求項６】
ステップ３の後、ステップ４に変えて再起動を中断する命令をマスタからスレーブに送信することで再起動準備フラグをオフに変更し、再起動処理をキャンセルする請求項１に記載の通信データブロックの伝送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シリアル通信におけるすべてのスレーブを再起動するためのソフトウエアに関する。
【背景技術】
【０００２】
従来、産業用システムにおいて、モータ制御装置やＩ／Ｏユニットなどの各種スレーブと上位マスタとなるコントローラ間の接続方法が、パルス列指令やパラレル信号から通信指令に変化しつつある。
【０００３】
シリアル通信の採用によって複数のスレーブとの配線が省配線となり、また、単なる信号だけではなく、さまざまな情報のやり取りにも、このシリアル通信が利用されている。また、データの確実な伝送を行うため、スレーブとマスタ間の通信手段がリング形式で接続することが、一般的になっている。
【０００４】
このシリアル通信により、スレーブの再起動を行うための方法として、スレーブ内部の処理において、データを受信したにもかかわらず、送信処理が行われない状況になった場合、スレーブ自ら再起動し、通信を再開させることが知られている（例えば、特許文献１参照）。
【特許文献１】特開平５−１４５９７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
解決しようとする問題点は、マスタと複数のスレーブ間をリング形式で接続したシリアル通信システムにおける複数スレーブの再起動方法であり、従来システムでは、例えば、再起動命令の伝送経路において、ノイズなどの影響により接続されたスレーブに正しく再起動命令が伝わらず、すべてのスレーブを再起動することができなかった。
【０００６】
一方、すべてのスレーブが再起動できていないとマスタが判断し、再度、再起動命令を送信する場合、すでに再起動命令を受信したスレーブが再起動処理を実行中であれば、その間は通信が停止してしまうため、マスタは新たな通信命令を伝送することができず、接続されたすべてのスレーブに再起動命令を送信することができなかった。
【０００７】
本発明は従来の課題を解決するものであり、マスタと複数のスレーブとがリング形式で接続された通信システムにおいて、すべてのスレーブの再起動を確実に制御できる通信データブロックの伝送方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために本発明は、マスタと複数のスレーブ間をリング形式で接続し、複数の指令コードを連結した通信データブロックが一定間隔で通信され、マスタからの指令をスレーブが受信すると自身の指令コードに受信状況を表わす応答コードを付加してマスタに送信するシリアル通信システムであって、接続されたすべてのスレーブに対してマスタが再起動の準備命令を送信するステップ１と、前記スレーブが指令コードにより自身のメモリ上の再起動準備フラグをオンし、指令コードに応答コードを付加して送信するステップ２と、すべての前記スレーブからの応答コードによって再起動の準備が完了したことをマスタが判断するステップ３と、すべてのスレーブに再起動を実行させる命令をマスタが送信するステップ４とを備え、再起動準備フラグと応答コードによりスレーブの再起動を確実に制御することを特徴とした通信データブロックの伝送方法である。
【０００９】
また、ステップ２において、マスタが送信した指令を正常に受信できなかったとき、応答コードに異常発生を意味するコードを付加し、再起動の準備完了を判断するステップ３まで、マスタが再起動の準備命令を送信し続ける。
【００１０】
また、ステップ４において、すべてのスレーブに再起動を実行させる条件が通常命令であり、スレーブが通常命令を受信することで再起動を実行する。さらに、ステップ４の後、２番目以降のスレーブがマスタからの命令を一定期間受信できていないことを検出すると、２番目以降のスレーブすべてが再起動を実行する。
【００１１】
また、ステップ３の後、ステップ４に変えて再起動を中断する命令をマスタからスレーブに送信することで再起動準備フラグをオフに変更し、再起動処理をキャンセルする。
【００１２】
このように、各スレーブの再起動準備フラグがオンで、かつすべてのスレーブから正常受信の応答コードをマスタが受信するまで、再起動処理の実行がされないため、すべてのスレーブを確実に再起動させることができる。また、システムの都合により再起動処理をキャンセルしたい場合、ステップ３の後に再起動を無効化する命令により可能となる。
【発明の効果】
【００１３】
本発明の通信データブロックの伝送方式によれば、マスタは送信した命令の受信状態を応答コードにより確認するとともに、再起動準備フラグがオンになっているのを確認した後、再起動処理を実行する。このため、従来のように一部のスレーブのみが先行して再起動するのを防止できる。
【００１４】
また、外来ノイズなどの影響で再起動の準備命令が正常に伝送できなかった場合でも、マスタはすべてのスレーブが準備命令の正常受信を応答コードによって判断できるまで準備命令を送信し続けるため、確実な再起動処理が可能となる。
【００１５】
また、各スレーブの再起動処理の条件は再起動命令ではなく、マスタがスレーブの準備命令を受信後、スレーブが通常命令を受信したときとすることで、誤ってスレーブが再起動するのを防止できる。
【００１６】
また、２番目以降のスレーブに対して再起動処理の条件に通信タイムアウトを加えることで、リング接続された残りのスレーブに通信指令が伝送されなくても、すべてのスレーブを最短で確実に再起動処理することが可能になる。
【００１７】
さらに、再起動の準備完了後であってもステップ４の前であれば、必要に応じて再起動処理をキャンセルすることができる。
【発明を実施するための最良の形態】
【００１８】
接続されたすべてのスレーブに対してマスタが再起動の準備命令を送信するステップ１と、前記スレーブが指令コードに応答コードを付加するステップ２と、すべての前記スレーブからの応答コードによって再起動の準備が完了したことをマスタが判断するステップ３と、すべてのスレーブに再起動を実行させる命令をマスタが送信するステップ４とを備えたものである。
【００１９】
また、ステップ３の後、ステップ４に変えて再起動を中断する命令をマスタからスレーブに送信することで再起動準備フラグをオフに変更し、再起動処理をキャンセルすることができる。
【実施例１】
【００２０】
図１において、１はマスタであるコントローラ、２から４はスレーブである制御装置で、シリアル通信システムを構成するマスタと複数のスレーブは、それぞれ前段の通信出力が後段の通信入力に接続され、シリアル通信の終端はマスタの通信入力部に接続されたリング形式である。
【００２１】
コントローラ１と制御装置２から制御装置４間では、一定間隔の周期でシリアル通信が実行され、通信データブロックには各種指令がセットされ、各制御装置はその命令に従って動作を実行する。
【００２２】
ここで、通信データブロックの構成およびスレーブにおけるデータ処理について説明する。図２（ａ）において、マスタがスレーブに命令内容を伝達するために送信する通信データブロックは、各スレーブに命令する指令コードを連結したものである。
【００２３】
指令コードは、スレーブを特定するヘッダ情報、命令コード、引数などを連結して構成したもので、各スレーブは、自身のヘッダ情報によりマスタからの命令を受信する。
【００２４】
図２（ｂ）において、スレーブ２が命令コードの命令内容を実行し（例えば、読み出したデータなどを自身のメモリ内に記憶するとともに）、受信状態が正常か異常かを示す応答コードを命令コードに付加してマスタに返信する。スレーブ３、スレーブ４においても同様に命令内容を実行し、命令コードに応答コードを付加する。
【００２５】
すなわち、マスタからの各種指令を各スレーブが受信すると各スレーブは命令内容を実行するとともに、それぞれの命令コードに受信状況を表わす応答コードを付加してマスタに送信する。
【００２６】
応答コードの付加について少し説明する。例えば、命令コードを００から４９で命令内容を指令し、受信状態が正常であれば、命令コードに５０を加えた５０から９９を出力し、受信状態が異常のときには、そのままの命令コードを出力することで応答コードの付加とみなせば、スレーブのメモリ容量を増やす必要がない。
【００２７】
また、メモリに余裕があれば、受信状態によって命令コードの後に０（正常）または１（異常）の応答コードを付加して受信状態を表わしてもよい。
【００２８】
このように、各スレーブは自身のヘッダ情報、命令コードを受信すると受信状態に応じた応答コードを命令コードに付加してマスタに送信するため、マスタはすべてのスレーブの受信状態を判断できる。
【００２９】
次に、スレーブの再起動処理動作について、図１および図３のフローチャートを併用して説明する。まず、コントローラ１は、接続された制御装置２から制御装置４を再起動する際、制御装置２から制御装置４に対する各指令コード内の命令コードに再起動の準備を意味する命令コードを設定して送信する（ステップ１）。
【００３０】
各制御装置（制御装置２から制御装置４）は、再起動準備の命令コードの受信を確認すると、自身のメモリ上で再起動準備フラグをオンにする。同時に上述したように命令コードに受信状態を意味する応答コードを付加する（ステップ２）。
【００３１】
コントローラ１は、制御装置２から制御装置４のすべてから再起動の準備命令の正常受信を意味する応答コードが返信されるまで、再起動準備の命令コードを送信し続ける。マスタはすべてのスレーブの応答コードがきめられたコードになったとき、再起動の準備が
完了したと判断する（ステップ３）。
【００３２】
ステップ３後にコントローラ１は、制御装置２から制御装置４に対して、通常動作を命令する指令コードを連結した通信データブロックを送信する。制御装置２から制御装置４は、自身のヘッダ情報から指令コード内の通常命令を受信すると、スレーブは自身のメモリ上の再起動準備フラグがオンかどうかを判定する。ここではステップ２において再起動準備フラグがオンしているので、再起動処理を実行する。
【００３３】
次に、各スレーブの命令処理について、図４のフローチャートを用いて説明する。
【００３４】
各スレーブは、マスタから送信された通信データブロック内から自身のヘッダ情報を確認すると、再起動の準備命令を受信したかどうか判定する。ＹＥＳであれば、自身のメモリ上に再起動準備フラグをオンにして、命令コードに正常受信を意味する応答コードを付加してマスタに送信する。ＮＯであれば、自身のメモリ上の再起動準備フラグがオンかどうか判定する。ＮＯであれば受信した命令コードの処理を実行する。ＹＥＳ（再起動以外の通常動作命令）であれば、再起動処理を実行する。
【００３５】
このように、各スレーブが自身の再起動の準備命令を受信すると受信状態を付加した応答コードをマスタに送信するため、マスタはすべてのスレーブの受信状態を応答コードにより確認することができる。また、この時点でのマスタからの命令は、再起動の準備命令であり、一部のスレーブで正常受信してもすべてのスレーブが正常受信されるまで再起動しないため、一部のスレーブだけが再起動するのを防止できる。
【００３６】
なお、実施例では３つのスレーブをリング接続したもので説明したが、このスレーブ数は通信手段にて制限される最大台数まで接続可能である。
【実施例２】
【００３７】
実施例２は、最初のスレーブの再起動処理が実行されたとき、２番目以降のスレーブの再起動処理を最短かつ確実に実行するため、実施例１に加えてすべてのスレーブ（各制御装置）は、通信タイムアウトを検出するソフトウエアを備えている。
【００３８】
ステップ４までは実施例１と同じであり説明を省略する。ステップ４の後、最初にリング接続された最上流の制御装置２が再起動処理を実行してしまうと、下流に通信命令を送信しなくなり、制御装置３と制御装置４はマスタからの通常動作命令を受信できないため、再起動処理が実行されない。しかし、制御装置２が再起動処理をしている間、通信が停止してしまうため下流の制御装置３と制御装置４は、マスタからのシリアル通信が一定期間行われないことを通信タイムアウトによって検出する。
【００３９】
したがって、制御装置３と制御装置４は、通信タイムアウトの検出の判定はＹＥＳである。ＹＥＳであれば、次に再起動準備フラグのオン・オフを判定する。ここでＹＥＳ（再起動準備フラグがオン）であれば、制御装置３（および制御装置４）は再起動処理を実行する。ＮＯ（再起動準備フラグがオフ）であれば、通常処理中における通信停止あるいは通信ケーブル断線と判断してトリップする。
【００４０】
これにより、すべてのスレーブの再起動処理を最短かつ確実に実行できる。また、再起動準備フラグがオフの場合には、通常処理中の通信タイムアウトを検出できる。
【実施例３】
【００４１】
実施例３は、すべてのスレーブで再起動の準備が完了（ステップ３）後、再起動処理のキャンセルを可能にするもので、ステップ３までは実施例１と同じであり説明を省略する
。
【００４２】
図６において、ステップ３の後、何らかの事情により再起動処理をキャンセルしたい場合、コントローラ１は、通常動作命令を送信する前に再起動キャンセル命令を制御装置２から制御装置４に送信する。
【００４３】
制御装置２から制御装置４は、再起動キャンセル命令を受信すると、一旦オンした、再起動準備フラグをオフにする。その後、コントローラ１が通常動作命令を送信しても、再起動準備フラグはオフなので再起動処理は実行されずに、通常動作が継続可能となる。
【産業上の利用可能性】
【００４４】
本発明の通信データブロックの伝送方法は、モータ駆動用制御装置など再起動後有効となるパラメータを有していたり、再起動しなければ解除できない保護機能を有するなど、リセットする必要があるスレーブに有用である。
【図面の簡単な説明】
【００４５】
【図１】実施例１における通信システムのブロック構成図
【図２】（ａ）通信データブロックのイメージ構成図、（ｂ）スレーブ２における命令処理後の通信データブロックのイメージ構成図
【図３】実施例１における通信システムのフローチャート
【図４】実施例１のスレーブにおけるフローチャート
【図５】実施例２のスレーブにおけるフローチャート
【図６】実施例３のスレーブにおけるフローチャート
【符号の説明】
【００４６】
１  マスタ（コントローラ）
２，３，４  スレーブ（制御装置）
【図１】
2006074316.tif 000003
【図２】
2006074316.tif 000004
【図３】
2006074316.tif 000005
【図４】
2006074316.tif 000006
【図５】
2006074316.tif 000007
【図６】
2006074316.tif 000008