(57)【要約】【課題】ノイズ等によって単発もしくは数回の通信異常が発生した場合でも、制御装置を停止させることなく運転し、稼動効率を向上させること。【解決手段】上位装置１の多重指令発行部１２は、制御装置３に現制御サイクルで実行させるべき現コマンドおよび複数の後続コマンドを含む指令フレームを制御装置３に順次送信する。制御装置３の指令記憶部３２には、通信異常検出部３１によって通信異常が検出されなかった場合に、受信した指令フレームを格納する。駆動制御部４０は、通信異常検出部３１によって通信異常が検出されない場合には受信した指令フレーム中の現コマンドに基づき駆動装置５を駆動制御し、通信異常検出部３１によって検出された通信異常の連続回数が所定の閾値を越えた場合には駆動装置５を停止し、通信異常の連続回数が閾値以下の場合には指令記憶部３２に格納されている指令フレーム中の後続コマンドに基づいて駆動装置５を駆動制御する。【選択図】        図１
2005124083.tif 000002
【特許請求の範囲】
【請求項１】
上位装置が伝送路を介して１〜複数の制御装置にコマンドを所定の制御サイクル毎に順次送信し、この送信されたコマンドに基づいて前記制御装置が駆動装置を制御する制御システムにおいて、
前記上位装置は、
前記制御装置に現制御サイクルで実行させるべき現コマンドおよび該現コマンドに続く複数の後続コマンドを含む指令フレームを現コマンドの制御サイクル毎に前記制御装置に順次送信する指令発行部を備え、
前記制御装置は、
受信した上位装置からの指令フレームの通信異常を検出する通信異常検出部と、
受信した上位装置からの指令フレームを格納する指令記憶部と、
前記通信異常検出部によって通信異常が検出されない制御サイクルでは、受信した指令フレーム中の現コマンドに基づき前記駆動装置を駆動制御し、前記通信異常検出部によって通信異常が検出された制御サイクルでは、前記通信異常検出部によって検出された通信異常の連続回数に応じて、前記駆動装置を停止させるかあるいは前記指令記憶部に格納されている指令フレーム中の後続コマンドに基づいて前記駆動装置を駆動制御するかの何れかを実行する駆動制御部と、
を備えることを特徴とする制御システム。
【請求項２】
前記駆動制御部は、前記通信異常検出部によって検出された通信異常の連続回数が所定の閾値を越えた制御サイクルでは前記駆動装置を停止し、前記通信異常の連続回数が前記閾値以下の制御サイクルでは前記指令記憶部に格納されている指令フレーム中の後続コマンドに基づいて前記駆動装置を駆動制御することを特徴とする請求項１に記載の制御システム。
【請求項３】
前記指令記憶部は、前記通信異常検出部によって通信異常が検出されなかった場合に、受信した指令フレームを格納することを特徴とする請求項１または２に記載の制御システム。
【請求項４】
前記指令発行部から送信される前記指令フレーム中の後続コマンドの個数は、前記閾値に一致していることを特徴とする請求項２または３に記載の制御システム。
【請求項５】
前記指令記憶部は、指令フレーム中に含まれる複数のコマンドを記憶可能な記憶容量を有し、正常受信の指令フレームを受信する毎に、記憶内容を更新することを特徴とする請求項１〜４の何れか一つに記載の制御システム。
【請求項６】
前記駆動制御部は、前記通信異常の連続回数が前記閾値以下の場合には、通信異常警告警報を発生し、前記通信異常の連続回数が前記通信異常判定値を超えた場合には、通信異常警報を発生することを特徴とする請求項２〜５の何れか一つに記載の制御システム。
【請求項７】
前記上位装置は、前記閾値に対応する値である通信異常判定値が設定され、設定された通信異常判定値を前記制御装置に送信する通信異常判定値設定部をさらに備え、
前記制御装置の駆動制御部は、受信した上位装置からの通信異常判定値によって前記閾値が設定記憶される通信異常判定値記憶部を有することを特徴とする請求項２〜６の何れか一つに記載の制御システム。
【請求項８】
現制御サイクルで実行させるべき現コマンドおよび該現コマンドに続く複数の後続コマンドを含む指令フレームを順次上位装置から受信し、受信した指令フレーム中のコマンドに基づいて駆動装置を制御する制御装置であって、
受信した上位装置からの指令フレームの通信異常を検出する通信異常検出部と、
受信した上位装置からの指令フレームを格納する指令記憶部と、
受信した上位装置からの指令フレームの通信異常を検出する通信異常検出部と、
受信した上位装置からの指令フレームを格納する指令記憶部と、
前記通信異常検出部によって通信異常が検出されない制御サイクルでは、受信した指令フレーム中の現コマンドに基づき前記駆動装置を駆動制御し、前記通信異常検出部によって通信異常が検出された制御サイクルでは、前記通信異常検出部によって検出された通信異常の連続回数に応じて、前記駆動装置を停止させるかあるいは前記指令記憶部に格納されている指令フレーム中の後続コマンドに基づいて前記駆動装置を駆動制御するかの何れかを実行する駆動制御部と、
を備えることを特徴とする制御装置。
【請求項９】
受信した上位装置からの指令フレームの通信異常を検出する通信異常検出部と、受信した上位装置からの指令フレームを格納する指令記憶部と、前記通信異常検出部によって通信異常が検出されない制御サイクルでは、受信した指令フレーム中の現コマンドに基づき前記駆動装置を駆動制御し、前記通信異常検出部によって通信異常が検出された制御サイクルでは、前記通信異常検出部によって検出された通信異常の連続回数に応じて、前記駆動装置を停止させるかあるいは前記指令記憶部に格納されている指令フレーム中の後続コマンドに基づいて前記駆動装置を駆動制御するかの何れかを実行する駆動制御部とを備える制御装置に対して前記指令フレームを送信する上位装置であって、
前記制御装置に現制御サイクルで実行させるべき現コマンドおよび該現コマンドに続く複数の後続コマンドを含む指令フレームを現コマンドの制御サイクル毎に前記制御装置に順次送信する指令発行部を備えることを特徴とする上位装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、上位装置が伝送路を介して制御装置にコマンドを送信し、この送信されたコマンドに基づいて制御装置が駆動装置を制御する制御システムに関するものであり、特に上位装置から制御装置へ送るコマンドに通信異常が発生した場合の異常処理に関するものである。
【背景技術】
【０００２】
工場内のライン制御、多軸ロボットの制御、自動車等に搭載されている電装品の制御などにおいては、上位装置が伝送路を介して複数の制御装置にコマンドを送信し、複数の制御装置は送信されたコマンドに基づいてモータなどの駆動装置を夫々制御するようにシステムを構築することが多い。
【０００３】
特許文献１は、自動車のパワーウインドウやドアロックなど各種車載電装品を駆動する制御システムに関するものであり、この特許文献１では、送信側の多重ユニットは、受信側の多重ユニットに対し各種電装品のモータを制御するためのデータを伝送路を介して送信し、受信側の多重スイッチは、受信したデータに基づいて各種電装品のモータを制御する多重伝送装置において、受信側の多重ユニットは、伝送路の断線等により所定の時間内にスタートビットが検出できなかった場合、通信エラー（通信異常）が発生したものとみなして接続されている各モータを直ちに停止するようにしている。
【０００４】
【特許文献１】特開平０７−１２３４７１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、この従来技術においては、受信側の多重ユニットは通信異常を検出した場合、駆動対象であるモータを直ちに停止するようにしているので、ノイズ等により通信異常が発生するたびに制御システムの運転が停止してしまい、稼動効率が低下するという問題があった。
【０００６】
通信異常のための対策として、複数の伝送路を用いて冗長化構成をとる技術もある。しかしながら、冗長化構成とする場合には、複数の伝送路と、各伝送路に対応した送受信機能が必要となり、制御システムのコストが高くなり、またその制御が複雑になるという問題があった。
【０００７】
本発明は、上記に鑑みてなされたものであって、ノイズ等による通信異常が発生しやすい動作環境下においても、駆動対象を停止させる頻度が少なくなるようにして、システムの稼動効率を向上させることができる制御システム、制御装置および上位装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、請求項１にかかる発明は、上位装置が伝送路を介して１〜複数の制御装置にコマンドを所定の制御サイクル毎に順次送信し、この送信されたコマンドに基づいて前記制御装置が駆動装置を制御する制御システムにおいて、前記上位装置は、前記制御装置に現制御サイクルで実行させるべき現コマンドおよび該現コマンドに続く複数の後続コマンドを含む指令フレームを現コマンドの制御サイクル毎に前記制御装置に順次送信する指令発行部を備え、前記制御装置は、受信した上位装置からの指令フレームの通信異常を検出する通信異常検出部と、受信した上位装置からの指令フレームを格納する指令記憶部と、前記通信異常検出部によって通信異常が検出されない制御サイクルでは、受信した指令フレーム中の現コマンドに基づき前記駆動装置を駆動制御し、前記通信異常検出部によって通信異常が検出された制御サイクルでは、前記通信異常検出部によって検出された通信異常の連続回数に応じて、前記駆動装置を停止させるかあるいは前記指令記憶部に格納されている指令フレーム中の後続コマンドに基づいて前記駆動装置を駆動制御するかの何れかを実行する駆動制御部とを備えることを特徴とするものである。
【０００９】
請求項２にかかる発明は、請求項１の発明において、前記駆動制御部は、前記通信異常検出部によって検出された通信異常の連続回数が所定の閾値を越えた制御サイクルでは前記駆動装置を停止し、前記通信異常の連続回数が前記閾値以下の制御サイクルでは前記指令記憶部に格納されている指令フレーム中の後続コマンドに基づいて前記駆動装置を駆動制御することを特徴とするものである。
【００１０】
請求項３にかかる発明は、請求項１または２の発明において、前記指令記憶部は、前記通信異常検出部によって通信異常が検出されなかった場合に、受信した指令フレームを格納することを特徴とするものである。
【００１１】
請求項４にかかる発明は、請求項２または３の発明において、前記指令発行部から送信される前記指令フレーム中の後続コマンドの個数は、前記閾値に一致していることを特徴とするものである。
【００１２】
請求項５にかかる発明は、請求項１〜４の発明において、前記指令記憶部は、指令フレーム中に含まれる複数のコマンドを記憶可能な記憶容量を有し、正常受信の指令フレームを受信する毎に、記憶内容を更新することを特徴とするものである。
【００１３】
請求項６にかかる発明は、請求項２〜５の発明において、前記駆動制御部は、前記通信異常の連続回数が前記閾値以下の場合には、通信異常警告警報を発生し、前記通信異常の連続回数が前記通信異常判定値を超えた場合には、通信異常警報を発生することを特徴とするものである。
【００１４】
請求項７にかかる発明は、請求項２〜６の発明において、前記上位装置は、前記閾値に対応する値である通信異常判定値が設定され、設定された通信異常判定値を前記制御装置に送信する通信異常判定値設定部をさらに備え、前記制御装置の駆動制御部は、受信した上位装置からの通信異常判定値によって前記閾値が設定記憶される通信異常判定値記憶部を有することを特徴とするものである。
【００１５】
請求項８にかかる発明は、現制御サイクルで実行させるべき現コマンドおよび該現コマンドに続く複数の後続コマンドを含む指令フレームを順次上位装置から受信し、受信した指令フレーム中のコマンドに基づいて駆動装置を制御する制御装置であって、受信した上位装置からの指令フレームの通信異常を検出する通信異常検出部と、受信した上位装置からの指令フレームを格納する指令記憶部と、受信した上位装置からの指令フレームの通信異常を検出する通信異常検出部と、受信した上位装置からの指令フレームを格納する指令記憶部と、前記通信異常検出部によって通信異常が検出されない制御サイクルでは、受信した指令フレーム中の現コマンドに基づき前記駆動装置を駆動制御し、前記通信異常検出部によって通信異常が検出された制御サイクルでは、前記通信異常検出部によって検出された通信異常の連続回数に応じて、前記駆動装置を停止させるかあるいは前記指令記憶部に格納されている指令フレーム中の後続コマンドに基づいて前記駆動装置を駆動制御するかの何れかを実行する駆動制御部とを備えることを特徴とするものである。
【００１６】
請求項９にかかる発明は、受信した上位装置からの指令フレームの通信異常を検出する通信異常検出部と、受信した上位装置からの指令フレームを格納する指令記憶部と、前記通信異常検出部によって通信異常が検出されない制御サイクルでは、受信した指令フレーム中の現コマンドに基づき前記駆動装置を駆動制御し、前記通信異常検出部によって通信異常が検出された制御サイクルでは、前記通信異常検出部によって検出された通信異常の連続回数に応じて、前記駆動装置を停止させるかあるいは前記指令記憶部に格納されている指令フレーム中の後続コマンドに基づいて前記駆動装置を駆動制御するかの何れかを実行する駆動制御部とを備える制御装置に対して前記指令フレームを送信する上位装置であって、前記制御装置に現制御サイクルで実行させるべき現コマンドおよび該現コマンドに続く複数の後続コマンドを含む指令フレームを現コマンドの制御サイクル毎に前記制御装置に順次送信する指令発行部を備えることを特徴とするものである。
【発明の効果】
【００１７】
請求項１にかかる発明の制御システムによれば、上位装置が現コマンドおよび複数の後続コマンドから成る複数のコマンドを含む指令フレームを制御装置に送信し、制御装置は通信異常が検出されない場合には、受信した指令フレーム中の現コマンドに基づき駆動装置を駆動制御し、通信異常が検出された場合には、検出された通信異常の連続回数に応じて駆動装置を停止させるかあるいは記憶されている指令フレーム中の後続コマンドに基づいて駆動装置を駆動制御するかの何れかを実行するようにしているので、ノイズなどによって単発または複数回の連続通信異常が発生した場合でも、駆動装置を運転することができるようになり、これによりノイズ等による通信異常が発生しやすい動作環境下においても、駆動装置を停止させる頻度が少なくなり、システムの稼動効率を低コストで向上させることができる。
【００１８】
請求項８にかかる発明の制御装置によれば、現コマンドおよび複数の後続コマンドから成る複数のコマンドを含む指令フレーム中に通信異常が検出されない場合には、受信した指令フレーム中の現コマンドに基づき駆動装置を駆動制御し、通信異常が検出された場合には、検出された通信異常の連続回数に応じて駆動装置を停止させるかあるいは記憶されている指令フレーム中の後続コマンドに基づいて駆動装置を駆動制御するかの何れかを実行するようにしているので、ノイズなどによって単発または複数回の連続通信異常が発生した場合でも、駆動装置を運転することができるようになり、これによりシステムの稼動効率を低コストで向上させることができる。
【００１９】
請求項９にかかる発明の上位装置によれば、現コマンドおよび複数の後続コマンドから成る複数のコマンドを含む指令フレームを制御装置に送信するようにしているので、通信異常が検出されない場合には、受信した指令フレーム中の現コマンドに基づき駆動装置を駆動制御し、通信異常が検出された場合には、検出された通信異常の連続回数に応じて駆動装置を停止させるかあるいは記憶されている指令フレーム中の後続コマンドに基づいて駆動装置を駆動制御するように制御装置を運転制御すれば、ノイズなどによって単発または複数回の連続通信異常が発生した場合でも、駆動装置を運転することができるようになり、これによりシステムの稼動効率を低コストで向上させることができる。
【発明を実施するための最良の形態】
【００２０】
以下に、本発明にかかる制御システム、制御装置および上位装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００２１】
図１〜図３を用いてこの発明の実施例を説明する。図１は、この発明の実施例にかかる制御システムの構成を示すブロック図である。この発明の実施例にかかる制御システムは、工場内のライン制御、多軸ロボットの制御、自動車等に搭載されている電装品の制御などに適用されるものであり、上位装置１と、制御装置３と、制御装置３の制御対象であるモータなどの駆動装置５とを備えている。
【００２２】
上位装置１は、伝送路７を介して制御装置３に指令（指令フレーム）を順次送信する。制御装置３は上位装置１からの指令を受信し、受信した指令に基づいて駆動装置５を駆動する。なお、伝送路７は有線でも無線でもかまわない。また、図１では、上位装置１と通信する制御装置３および駆動装置５を１台としているが、通常は制御装置３は複数台備えられることが多く、各制御装置３に対し１〜複数台の駆動装置５が接続されている。すなわち、この制御システムにおいては、上位装置１が１〜複数台の制御装置３と通信を行い、各制御装置３が１〜複数の駆動装置５を駆動制御する分散制御システムが構築されている。
【００２３】
上位装置１は、通信異常判定値設定部１１と、指令発行部としての多重指令発行部１２と、通信処理部１３と、表示部１４とを備えている。
【００２４】
通信異常判定値設定部１１には、制御装置３で通信異常を検出した際に、２つの異なる処理のうちのどちらを実行させるかを制御装置３が判定するための閾値となる通信異常判定値Ｃが設定される。２つの処理とは、駆動装置５を停止させることなく通信異常の警告のみを実行する通信異常警告処理と、駆動装置５を実際に停止させる通信異常処理とである。通信異常判定値設定部１１に設定された通信異常判定値は、通信処理部１３を介して
制御装置３に予め通知される。
【００２５】
すなわち、制御装置３においては、後述するように、上位装置１から送信される指令フレームについての通信異常が所定の回数（閾値）Ｃより多く連続して発生した場合にのみ、駆動装置５を実際に停止させる通信異常処理を実行し、上記通信異常の連続回数が所定の回数Ｃ以下のときには、通信異常を警告するのみの通信異常警告処理を実行するようにしているが、制御装置３においては、前述の比較用の閾値Ｃを上位装置から送られた通信異常判定値Ｃを用いて設定する。
【００２６】
多重指令発行部１２は、制御装置３に送信すべき指令フレームを所定の制御サイクル毎に順次発行する。制御サイクル（指令フレームの送信サイクル）は、定期的であってもよいし不定期であってもよい。１つの指令フレームは、制御装置３で順次実行させるべき複数の連続したコマンドを含んで構成されている。別言すれば、１つの指令フレームは、制御装置３において現制御サイクルで実行させるべき現コマンドおよび該現コマンドに続いて順次後続の制御サイクルで実行させるべき複数の後続コマンドを含んでいる。この場合、１つの指令フレームに含まれる後続コマンドの個数は、通信異常判定値設定部１１に設定される通信異常判定値Ｃに一致するようにしている。以下、制御サイクルを単にサイクルということもある。
【００２７】
図２は、第Ｍサイクル、第Ｍ＋１サイクルおよび第Ｍ＋２サイクルにおける指令フレームを示すものであり、この場合、各指令フレームはｎ＋１個のコマンドを含んでいる。第Ｍサイクルの指令フレームにおいては、コマンドＭが現サイクル（第Ｍサイクル）で実行させるべき現コマンドであり、コマンドＭ＋１〜コマンドＭ＋ｎが後続のサイクル（第Ｍ＋１サイクル、第Ｍ＋２サイクル、…、第Ｍ＋ｎサイクル）で実行させるべき後続コマンドである。同様に、第Ｍ＋１サイクルの指令フレームにおいては、コマンドＭ＋１が現サイクル（第Ｍ＋１サイクル）で実行させるべき現コマンドであり、コマンドＭ＋２〜コマンドＭ＋ｎ＋１が後続のサイクル（第Ｍ＋２サイクル、第Ｍ＋３サイクル、…、第Ｍ＋ｎ＋１サイクル）で実行させるべき後続コマンドである。同様に、第Ｍ＋２サイクルの指令フレームにおいては、コマンドＭ＋２が現サイクル（第Ｍ＋２サイクル）で実行させるべき現コマンドであり、コマンドＭ＋３〜コマンドＭ＋ｎ＋２が後続のサイクル（第Ｍ＋３サイクル、第Ｍ＋４サイクル、…、第Ｍ＋ｎ＋２サイクル）で実行させるべき後続コマンドである。多重指令発行部１２は、発行した指令フレームを通信処理部１３に出力する。
【００２８】
通信処理部１３は、伝送路７を介して制御装置３と通信を行うインタフェース機能を備え、予め定められた通信プロトコルに基づいて、制御装置３の通信部３０と指令フレームや各種データの送受信を実行する。具体的には、通信処理部１３は、通信異常判定値設定部１１に設定される通信異常判定値や、多重指令発行部１２が発行した指令フレームなどを制御装置３に送信する。また、制御装置３から送信された通信異常警告警報や通信異常警報などを受信して、受信した通信異常警告警報または通信異常警報を表示部１４に出力する。表示部１４は、通信異常警告通知または通信異常警告などを表示する。
【００２９】
一方、制御装置３は、通信部３０と、通信異常検出部３１と、指令記憶部３２と、駆動制御部４０とを備えている。駆動制御部４０は、駆動装置制御部３３、通信異常判定部３４、通信異常カウンタ３５、通信異常判定値記憶部３６、通信異常警告処理部３７、通信異常処理部３９および表示部３８を含んでいる。
【００３０】
通信部３０は、伝送路７を介して上位装置１と通信を行うインタフェース機能を備え、予め定められた通信プロトコルに基づいて、上位装置１の通信処理部１３と指令フレームや各種データの送受信を実行する。すなわち、通信部３０は、通信異常警告処理部３７からの通信異常警告警報や、通信異常処理部３９からの通信異常警報などを上位装置１に送信するとともに、上位装置１からの指令フレームや通信異常判定値Ｃなどを受信する。
【００３１】
通信異常検出部３１は、上位装置１から送信される指令フレームの通信異常を検出する。通信異常検出部３１は、たとえば、受信タイムアウト（制御サイクルを超過しても指令フレームを受信できない）、受信した指令のＢＣＣ（Block Check Character）、チェックサムなどで指令フレームの通信異常を検出する。指令フレームの通信異常を検出した場合、通信異常検出部３１は、通信異常カウンタ３５をカウントアップする。通信異常を検出しなかった場合（正常に通信が行われた場合）、通信異常検出部３１は、通信異常カウンタ３５をクリアするとともに、受信した指令フレーム中の現コマンドを駆動装置制御部３３に出力し、受信した指令フレームを指令記憶部３２に格納する。また、通信異常検出部３１は、上位装置１から通信異常判定値Ｃを含む情報（後述の通信異常判定値設定コマンド）を受信した場合には、通信異常判定値Ｃを通信異常判定値記憶部３６に格納する。
【００３２】
指令記憶部３２は、通信異常検出部３１から入力された指令フレームを格納する。すなわち、指令記憶部３２は、通信が正常に行われた場合に、受信した指令フレームを記憶する。たとえば、指令記憶部３２は、指令フレーム中に含まれる複数（図２ではｎ＋１個）のコマンドを少なくとも記憶可能な記憶容量を有し、図２に示したように、各制御サイクルにおいて、ｎ＋１個のコマンドを含む指令フレームを受信する場合は、正常受信が行われる度に、受信したｎ＋１個のコマンドを含む指令フレームで記憶内容を更新（上書き）する。
【００３３】
通信異常カウンタ３５は、通信異常検出部３１によってそのカウント動作が制御され、連続して発生した通信異常の回数をカウントする。通信異常カウンタ３５は、通信異常検出部３１によってカウントアップ、またはクリアされる。通信異常判定値記憶部３６は、通信異常検出部３１から入力された通信異常判定値Ｃを格納する。
【００３４】
通信異常判定部３４は、通信異常検出部３１によって通信異常が検出された場合、通信異常判定値記憶部３６に格納されている通信異常判定値Ｃと通信異常の連続発生回数を示す通信異常カウンタ３５のカウント値とを比較し、その比較結果に基づいて通信異常警告処理を実行するのか、通信異常処理を実行するのかを決定する。
【００３５】
通信異常警告処理部３７は、通信異常判定部３４が通信異常警告処理を行うことを決定した場合に通信異常警告処理を実行する。通信異常警告処理部３７は、通信異常カウンタ３５のカウント値に基づいて指令記憶部３２に格納されている指令フレーム内の所要のコマンド（後続コマンド）を選択指定し、選択指定したコマンドを読み出して駆動装置制御部３３に出力させる。また、通信異常警告処理を実行したことを通知する通信異常警告警報を通信部３０と表示部３８とに通知する。
【００３６】
通信異常処理部３９は、通信異常判定部３４が通信異常処理を行うことを決定した場合に通信異常処理を実行する。通信異常処理部３９は、駆動装置５の運転を停止する運転停止コマンドを駆動装置制御部３３に出力するとともに、通信異常処理を実行したことを通知する通信異常警報を通信部３０と表示部３８とに通知する。
【００３７】
表示部３８は、通信異常警告警報または通信異常警報などを表示する。駆動装置制御部３３は、通信異常検出部３１、指令記憶部３２、または通信異常処理部３９から入力されるコマンドに基づいて駆動装置５を制御する。
【００３８】
つぎに、図１に示した制御システムにおける通信異常判定値Ｃの設定処理について説明する。制御システムの立ち上げ時または所定のタイミングで、上位装置１の通信異常判定値設定部１１は、事前に設定されている通信異常判定値Ｃを制御装置３に送るための通信異常判定値設定コマンドを生成し、生成した通信異常判定値Ｃを含む通信異常判定値設定コマンドを通信処理部１３に出力する。通信処理部１３は、通信異常判定値設定コマンドを伝送路７を介して制御装置３に送信する。
【００３９】
制御装置３の通信部３０は、伝送路７を介して上位装置１から送信された通信異常判定値コマンドを受信する。通信異常検出部３１は、たとえば、受信データのＢＣＣやチェックサムなどによって通信異常判定値コマンドにエラーがないことを確認した後、コマンド内の通信異常判定値Ｃを通信異常判定値記憶部３６に出力する。通信異常判定値記憶部３６は、通信異常判定値Ｃを格納する。
【００４０】
この後、駆動装置５の運転を開始させる場合、上位装置１の多重指令発行部１２は、図２に示したような、現コマンドおよび該現コマンドに続く複数の後続コマンドから成るｎ＋１個のコマンドを含む制御フレームを、所定の制御サイクル毎に順次発行する。これらの制御フレームは、上位装置１の通信処理部１３から制御装置３に順次送信される。なお、この場合、上記のようにして制御装置３の通信異常判定値記憶部３６に記憶された通信異常判定値Ｃは、１つの制御フレーム中に含まれる後続コマンドの個数ｎに一致するものとする。
【００４１】
以下、制御装置３の動作を、図３のフローチャートを参照して説明する。通信部３０は、上位装置１の通信処理部１３から送信された指令フレームを順次受信する。指令フレームを受信した場合、通信部３０は、受信した指令フレームを通信異常検出部３１に出力する。通信異常検出部３１は、指令フレームに通信異常が発生したか否かを検出する（ステップＳ１００）。具体的には、通信異常検出部３１は、たとえば、予め定められた通信プロトコルに基づいて受信タイムアウトを監視したり、通信部３０から入力された指令のＢＣＣやチェックサムなどによってデータエラーが発生しているかを判断することによって通信異常が発生したか否かを検出する。
【００４２】
通信異常が検出されなかった制御サイクルでは（ステップＳ１００，Ｎｏ）、通信異常検出部３１は、通信異常カウンタ３５をクリアする（ステップＳ１１０）。また、通信異常検出部３１は、受信した指令フレーム中の最初のコマンドである現コマンドを駆動装置制御部３３に出力するとともに、受信した指令フレームを指令記憶部３２に格納する（ステップＳ１２０）。ここで、受信した指令が、図２に示した第Ｍサイクルの指令フレームであるとすると、コマンドＭが現コマンドとして駆動装置制御部３３に出力されるとともに、コマンドＭ〜コマンドＭ＋ｎのｎ＋１個のコマンドが指令記憶部３２に格納される。
【００４３】
駆動装置制御部３３は、通信異常検出部３１から入力された現コマンド（第Ｍサイクルの指令フレームの場合はコマンドＭ）に基づいて駆動装置５を制御する（ステップＳ１３０）。
【００４４】
通信異常が検出された制御サイクルでは（ステップＳ１００，Ｙｅｓ）、通信異常検出部３１は、通信異常を検出したことを通信異常判定部３４に通知する。通信異常判定部３４は、通信異常判定値記憶部３６に格納されている通信異常判定値Ｃ（＝ｎ）と通信異常カウンタ３５のカウント値とを比較する（ステップＳ１４０）。なお、図３に示すフローチャートでは、通信異常が検出された場合、ステップＳ１４０の時点では、通信異常カウンタ３５のカウンタ値は未だカウントアップされておらず、前回制御サイクル終了時のカウント値が通信異常判定値Ｃと比較される。
【００４５】
上記比較の結果、通信異常カウンタ３５のカウント値が通信異常判定値記憶部３６に格納されている通信異常判定値Ｃよりも小さい場合、すなわち通信異常の連続回数（ここで言う連続回数は今回の制御サイクルで発生した通信異常も１つの通信異常として通信異常の連続回数に含めている）が通信異常判定値Ｃ以下の場合には（ステップＳ１４０，Ｎｏ）、通信異常判定部３４は、通信異常警告処理を実行することを通信異常検出部３１と通信異常警告処理部３７とに通知する。この通知によって、通信異常検出部３１は、通信異常カウンタ３５を＋１する（ステップＳ１５０）。
【００４６】
一方、通信異常警告処理部３７は、通信異常判定部３４から通信異常警告処理を実行することを通知されると、以下の通信異常警告処理を実行する（ステップＳ１６０）。すなわち、通信異常警告処理部３７は、＋１された通信異常カウンタ３５のカウント値に基づいて指令記憶部３２に格納されている後続コマンドの中から、今回の制御サイクル（現制御サイクル）で実行すべきコマンドを選択指定する。
【００４７】
ここで、指令記憶部３２に図２に示した第Ｍサイクルの指令フレームであるコマンドＭ〜コマンドＭ＋Ｎが格納されているとする。コマンドＭは、この指令を指令記憶部３２に記憶した第Ｍサイクルで既に実行されている。例えば、通信異常カウンタ３５のカウント値が「１」であるとすると、現制御サイクルで実行すべきコマンドは「コマンドＭ＋１」であり、この「コマンドＭ＋１」が通信異常警告処理部３７によって選択指定される。また、通信異常カウンタ３５のカウント値が「ｎ」であるとすると、現制御サイクルで実行すべきコマンドは「コマンドＭ＋ｎ」であり、この「コマンドＭ＋ｎ」が通信異常警告処理部３７によって選択指定される。
【００４８】
指令記憶部３２は、通信異常警告処理部３７から選択指定された１つの後続コマンドを読み出し、読み出した１つの後続コマンドを駆動装置制御部３３に出力する。駆動装置制御部３３は、指令記憶部３２から入力される後続コマンドに基づいて駆動装置５を制御する（ステップＳ１７０）。
【００４９】
また、通信異常警告処理部３７は、通信異常警告処理を実行したことを示す通信異常警告警報を表示部３８と通信部３０とに通知する。表示部３８は、通信異常警告警報を表示する。通信部３０は、通信異常警告警報を上位装置１に送信する。
【００５０】
一方、ステップＳ１４０での比較の結果、通信異常カウンタ３５のカウント値が通信異常判定値記憶部３６に記憶されている通信異常判定値Ｃ以上である場合、すなわち上記通信異常の連続回数が通信異常判定値Ｃを越える場合には（ステップＳ１４０，Ｙｅｓ）、通信異常判定部３４は、通信異常処理を実行することを通信異常処理部３９に通知する。
【００５１】
通信異常処理部３９は通信異常処理を実行する（ステップＳ１８０）。具体的には、通信異常処理部３９は、駆動装置５の動作を停止するコマンドを駆動装置制御部３３に出力して、駆動装置５の動作を停止する。また、通信異常処理を実行したことを示す通信異常警報を表示部３８と通信部３０とに通知する。表示部３８は、通信異常警報を表示する。通信部３０は、通信異常警報を上位装置１に送信する。
【００５２】
上位装置１は、通信処理部１３を介して制御装置３からの通信異常警告警報または通信異常警報を受信すると、この受信した通信異常警告警報または通信異常警報を表示部１４に表示する。
【００５３】
このようにこの実施例では、上位装置１は現コマンドおよび複数の後続コマンドから成る複数のコマンドを含む指令フレームを制御装置３に送信し、制御装置３では、通信が正常に行われた場合には受信した指令フレームを格納しておきかつ受信した指令フレーム中の現コマンドに基づき駆動装置を駆動制御し、通信異常の連続回数が所定の閾値を越えた場合には駆動装置を停止し、通信異常の連続回数が閾値以下の場合には記憶されている指令フレーム中の後続コマンドに基づいて駆動装置を駆動制御するようにしているので、ノイズなどによって単発または複数回の連続通信異常が発生した場合でも、駆動装置を運転することができるようになり、これによりノイズ等による通信異常が発生しやすい動作環境下においても、駆動装置を停止させる頻度が少なくなり、システムの稼動効率を低コストで向上させることができるようになる。
【００５４】
また、この実施例では、上位装置１が異常通信判定値を制御装置３に設定するようにしているため、ノイズの発生状態によって上位装置１が通信異常判定値を変更するようにすれば、通信異常時の処理を柔軟に行うことができる。さらに、制御装置３は、通信異常の連続回数が通信異常判定値Ｃ以下の場合には通信異常警告警報を、通信異常の連続回数が通信異常判定値Ｃを超えた場合には通信異常警報を上位装置１に通知するようにしているため、ユーザーは上位装置を監視するだけで制御システムの運転状態を把握することができるようになり、システムに対する適切な対応ができる。
【００５５】
なお、図３のフローチャートでは、通信異常が検出された場合、ステップ１４０での比較処理を経た後、ステップ１５０で通信異常カウンタ３５をカウントアップするようにしたが、ステップＳ１００において通信異常が検出された場合、その直後すなわちステップ１４０での比較処理の前に、通信異常カウンタ３５をカウントアップするようにしてもよい。そのようにした場合、ステップ１４０での比較処理は、通信異常カウンタ３５のカウンタ値＞通信異常判定値Ｃのときに、ステップＳ１８０の通信異常処理を実行し、通信異常カウンタ３５のカウンタ値≦通信異常判定値Ｃのときに、ステップＳ１６０の通信異常警告処理を実行することとなる。
【００５６】
また、上記実施例では、多重指令発行部１２から送信される指令フレーム中の後続コマンドの個数ｎを、通信異常判定値Ｃに一致させるようにしているが、後続コマンドの個数ｎは、通信異常判定値Ｃ以上の値であれば、任意の数値に設定するようにしてもよい。また、上記実施例では、指令記憶部３２は指令フレーム中に含まれる複数のコマンドを記憶可能な記憶容量を有し、正常受信の指令フレームを受信する毎に、記憶内容を更新するようにしたが、指令記憶部３２に複数の制御サイクル分の制御フレームを記憶させるようにしてもよい。また、上記実施例では、指令記憶部３２には、通信異常検出部３１によって通信異常が検出されなかった場合に、受信した指令フレームを格納するようにしたが、指令記憶部３２に複数の制御サイクル分の制御フレームを記憶するようにした場合は、指令記憶部３２に、正常受信時の制御フレームのみならず、異常受信時の制御フレームを記憶させることも可能である。
【００５７】
また、上記実施例では、制御装置３での比較処理に用いる通信異常判定値Ｃを上位装置１から設定するようにしたが、制御装置３側に通信異常判定値Ｃを設定するための設定部を設け、制御装置３側で通信異常判定値Ｃを設定するようにしてもよい。また、上記実施例では、通信異常が発生していない場合、通信異常検出部３１は、受信した指令フレーム中の現コマンドを駆動装置制御部３３に直接出力するようにしているが、指令記憶部３２に記憶される現コマンドを駆動装置制御部３３に出力するようにしてもよい。
【００５８】
また、上記実施例では、通信異常警告警報または通信異常警報を上位装置１の表示部１４および制御装置３の表示部３８に表示するようにしたが、さらに異なるアラーム音を持つ通信異常警告警報および通信異常警報を発生させて、ユーザーに注意を促すようにしてもよい。
【００５９】
また、通信異常判定部３４が、通信異常カウンタ３５のカウント値の変化によって通信異常の発生状態を監視して、この監視結果に基づいて通信異常判定値の変更を上位装置１に要求するようにしてもよい。具体的には、たとえば、通信異常判定値記憶部３６に記憶されている通信異常判定値Ｃよりも小さい所定の値Ｄと通信異常カウンタ３５のカウント値とを比較して、比較の結果、通信異常カウンタ３５のカウント値が所定の値Ｄより超えた場合、あるいは通信異常カウンタ３５のカウント値が所定の値Ｄより超える回数が所定の設定値を越えた場合に、通信異常判定値Ｃの変更（例えば増加）を要求するコマンドを上位装置１に送信する。これにより、ユーザーは、通信異常警告警報を常に監視することなく、通信異常判定値の変更を要求された場合にのみ通信異常判定値Ｃおよび指令フレーム中の後続フレームの個数を変更するか否かを判断して、通信状態に適した通信異常判定値Ｃおよび後続フレームの個数を設定することができる。
【００６０】
さらに、ユーザーの指示によって上位装置１が制御装置３との通信状態を測定するための測定コマンドを複数回制御装置３に送信するようにしてもよい。測定コマンドは、たとえば、特定パターンのデータを有しており、測定コマンドを受信した場合、制御装置３の通信異常検出部３１は、特定パターンのデータに誤りがあるかを判定して通信異常が発生したか否かを検出する。測定コマンド受信した場合、通信異常検出部３１は、通信異常カウンタ３５のクリア、またはカウントアップを行わずに、通信異常が発生したか否かの検出結果を測定コマンドを受信する度に上位装置１に送信する。上位装置１は、制御装置３からの複数の検出結果によって通信状態を判断する。これにより、ユーザーは上位装置１と制御装置３との通信状態を確認した後に通信異常判定値を設定することができる。
【産業上の利用可能性】
【００６１】
以上のように、本発明にかかる制御システムは、工場内のライン制御、多軸ロボットの制御、自動車等に搭載されている電装品の制御などに適用されるものであり、ノイズなどによる通信異常が発生しやすい環境化での制御システムに適している。
【図面の簡単な説明】
【００６２】
【図１】この発明の実施例にかかる制御システムの構成を示すブロック図である。
【図２】多重指令発行部が生成する指令を説明するための図である。
【図３】図１に示した制御装置の動作を説明するためのフローチャートである。
【符号の説明】
【００６３】
１  上位装置
３  制御装置
５  駆動装置
７  伝送路
１１  通信異常判定値設定部
１２  多重指令発行部
１３  通信処理部
１４  表示部
３０  通信部
３１  通信異常検出部
３２  指令記憶部
３３  駆動装置制御部
３４  通信異常判定部
３５  通信異常カウンタ
３６  通信異常判定値記憶部
３７  通信異常警告処理部
３８  表示部
３９  通信異常処理部
４０  駆動制御部
【図１】
2005124083.tif 000003
【図２】
2005124083.tif 000004
【図３】
2005124083.tif 000005