(57)【要約】【課題】同期型サイクリック通信を行う制御装置間において、ホットライン通知（割り込み通知）を、連続的かつ順次的に発行および処理可能とする制御システム、送信側制御装置、受信側制御装置、制御方法およびプログラムを得る。【解決手段】第１の制御装置が、自制御装置においてホットライン通知送信要求が生じた場合にホットライン通知の新旧を判別するためのホットライン通知毎に固有の識別情報を生成する識別情報生成手段と、識別情報を割り込み処理で利用する割り込み処理用データとともに第２の制御装置に送信する制御を行う送信制御手段と、を備え、第２の制御装置が、第１の制御装置から送信された識別情報および割り込み処理用データを受信して管理する受信制御手段と、識別情報が前回受信した識別情報から更新されている場合のみ、受信した識別情報および割り込み処理用データに基づいて割り込み処理を実行する割り込み処理実行手段と、を備える。【選択図】        図１
2009049793.tif 000002
【特許請求の範囲】
【請求項１】
シリアルバスを介して接続された複数の制御装置間において第１の制御装置から第２の制御装置に対して同期型サイクリック通信のホットラインにより割り込み通知を行い、前記第２の制御装置において前記割り込み通知に基づいて割り込み処理を行う制御システムであって、
前記第１の制御装置が、
自制御装置においてホットラインによる割り込み通知の送信要求が生じた場合に前記割り込み通知の新旧を判別するための前記割り込み通知毎に固有の識別情報を生成する識別情報生成手段と、
前記識別情報を前記割り込み処理で利用する割り込み処理用データとともに前記第２の制御装置に送信する制御を行う送信制御手段と、
を備え、
前記第２の制御装置が、
前記第１の制御装置から送信された前記識別情報および前記割り込み処理用データを受信して管理する受信制御手段と、
前記識別情報が前回受信した識別情報から更新されている場合のみ、受信した前記識別情報および前記割り込み処理用データに基づいて割り込み処理を実行する割り込み処理実行手段と、
を備えることを特徴とする制御システム。
【請求項２】
前記識別情報が、シーケンス番号であること、
を特徴とする請求項１に記載の制御システム。
【請求項３】
前記同期型サイクリック通信による送信データの全てが前記第２の制御装置に到達した際に割り込み通知処理を実行すること、
を特徴とする請求項１に記載の制御システム。
【請求項４】
前記送信制御手段は、前記割り込み処理用データの送信中も新たなホットラインによる割り込み通知の送信要求を受け付けるための前記識別情報のラッチ機能を有すること、
を特徴とする請求項１に記載の制御システム。
【請求項５】
前記受信制御手段は、前記割り込み処理実行手段における前記割り込み処理中に新たな割り込み通知を受信可能とする識別情報ラッチ機能を有すること、
を特徴とする請求項１に記載の制御システム。
【請求項６】
シリアルバスを介して接続された複数の制御装置間において第１の制御装置から第２の制御装置に対して同期型サイクリック通信のホットラインにより割り込み通知を行い、前記第２の制御装置において前記割り込み通知に基づいて割り込み処理を行う制御システムの前記第１の制御装置を構成する送信側制御装置であって、
自制御装置においてホットラインによる割り込み通知の送信要求が生じた場合に前記割り込み通知の新旧を判別するための前記割り込み通知毎に固有の識別情報を生成する識別情報生成手段と、
前記識別情報を前記割り込み処理で利用する割り込み処理用データとともに前記第２の制御装置に送信する制御を行う送信制御手段と、
を備えることを特徴とする送信側制御装置。
【請求項７】
シリアルバスを介して接続された複数の制御装置間において第１の制御装置から第２の制御装置に対して同期型サイクリック通信のホットラインにより割り込み通知を行い、前記第２の制御装置において前記割り込み通知に基づいて割り込み処理を行う制御システムの前記第２の制御装置を構成する受信側制御装置であって、
前記第１の制御装置から送信された、前記第１の制御装置においてホットラインによる割り込み通知の送信要求が生じた場合に前記割り込み通知の新旧を判別するための前記割り込み通知毎に固有の識別情報と、前記割り込み処理で利用する割り込み処理用データと、を受信して管理する受信制御手段と、
前記識別情報が前回受信した識別情報から更新されている場合のみ、受信した前記識別情報および前記割り込み処理用データに基づいて割り込み処理を実行する割り込み処理実行手段と、
を備えることを特徴とする受信側制御装置。
【請求項８】
シリアルバスを介して接続された複数の制御装置間において第１の制御装置から第２の制御装置に対して同期型サイクリック通信のホットラインにより割り込み通知を行い、前記第２の制御装置において前記割り込み通知に基づいて割り込み処理を行う制御システムにおける制御方法であって、
前記第１の制御装置が、自制御装置においてホットラインによる割り込み通知の送信要求が生じた場合に前記割り込み通知の新旧を判別するための前記割り込み通知毎に固有の識別情報を生成する識別情報生成工程と、
前記第１の制御装置が、前記識別情報を前記割り込み処理で利用する割り込み処理用データとともに前記第２の制御装置に送信する制御を行う送信制御工程と、
前記第２の制御装置が、前記第１の制御装置から送信された前記識別情報および前記割り込み処理用データを受信して管理する受信制御工程と、
前記第２の制御装置が、前記識別情報が前回受信した識別情報から更新されている場合のみ、受信した前記識別情報および前記割り込み処理用データに基づいて割り込み処理を実行する割り込み処理実行工程と、
を含むことを特徴とする制御方法。
【請求項９】
前記識別情報が、シーケンス番号であること、
を特徴とする請求項８に記載の制御方法。
【請求項１０】
請求項８に記載の制御方法をコンピュータ装置に実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御システム、送信側制御装置、受信側制御装置、制御方法およびプログラムに関し、特に、シリアルバスを用いた同期型サイクリック通信によりデータを共有する複数の制御装置間においてホットライン（高優先度イベントを他に通知するための専用の伝送経路・伝送の仕組み）による割り込み通知（以下ホットライン通知と呼ぶ）を発行元から発行先へ連続的かつ順次的に実施するための制御システム、送信側制御装置、受信側制御装置、制御方法およびプログラムに関するものである。
【背景技術】
【０００２】
従来、通信回線を介して複数の制御機器を接続した制御システムにおいてサイクリック通信により各々の制御機器が情報を他の制御機器に通信回線を介して通知する技術がある（たとえば、特許文献１参照）。このような技術の中で、シリアルバスを用いた同期型サイクリック通信によりデータを共有する複数の制御装置間において、ある制御装置内で発生した処理優先度の高い重要なイベントを他の制御装置に通知する際に用いるのがホットライン通知である。この通知はサイクリック通信における各制御装置の交信データの一部に埋め込まれて相手装置に伝送され、受信側制御装置はこのイベント（処理優先度が高い）を、割り込み処理により処理する。
【０００３】
このようなシステムの一例として、たとえば同期型サイクリック通信を行うシリアルバスに制御装置Ａおよび同構成の制御装置Ｂが接続されたものについて説明する。制御装置の台数は２台以上で任意であり、バス上に接続可能な最大制御装置台数をＵmax、実際に接続されている制御装置台数Ｕ（２≦Ｕ≦Ｕmax）とする。各制御装置はマイクロプロセッサ（以下ＭＰＵと呼ぶ）と、制御プログラム等を格納するメモリと、同期型サイクリック通信を行う通信装置を内蔵している。また、通信装置は同期型サイクリック通信による交信データ格納用のメモリ、送信制御部、受信制御部、通信制御部、通信インタフェース部から構成される。
【０００４】
このように構成されたシステムにおける具体的なホットライン通知手順を、制御装置Ａから制御装置Ｂへホットライン通知する場合を想定して説明する。まず制御装置Ａは、受信側（送信先）制御装置Ｂに対してホットライン通知することを自装置の送信制御部に設定し、続いてホットライン送信開始を設定する。制御装置Ａの送信制御部は、サイクリック通信の自装置送信タイミングにおいて、シリアルバス上に、ホットライン通知を含むデータを送信する。この場合のホットライン通知情報としては「制御装置Ｂ宛ホットライン通知有り」となる。
【０００５】
制御装置Ｂでは、制御装置Ａからデータを受信したときに、受信制御部において受信データ中の自装置宛ホットライン通知の有無を調べる。そして、自装置宛ホットライン通知が有る場合には、制御装置Ｂの受信制御部は、制御装置Ｂ内のＭＰＵに割り込みを通知する。制御装置ＢのＭＰＵは、ホットライン通知の内容に応じた処理を実施する。この処理の際に、必要に応じて制御装置Ｂ内の交信データ格納用のメモリの受信エリアに格納されている制御データを利用する。
【０００６】
また、制御装置ＢのＭＰＵは、ホットライン通知を正常に受信したことを制御装置Ａに通知するための返信データを交信データ格納用のメモリの送信エリアにセットする。この処理の間、制御装置Ｂは、新たなホットライン通知による割り込み処理は実施できないので、割り込みマスクを実施し、処理終了時に割り込みマスク解除を実施する。制御装置Ｂの送信制御部は、サイクリック通信の自装置送信タイミングにおいて、設定した制御装置Ａ向け返信データをシリアルバス上に送信する。
【０００７】
制御装置Ａは、制御装置Ｂが送信した返信データを受信する。制御装置Ａは、この返信データを受信するまで待ち状態となっており、返信データを確認した上で、制御装置Ｂ宛のホットライン通知送信を停止し、または次の新たな制御装置Ｂ宛ホットライン通知を送信する。
【０００８】
このホットライン通知方法において制御装置Ａは制御装置Ｂからの返信データを受け取るまで、制御装置Ｂ宛のホットライン通知を送信し続ける必要がある。すなわち制御装置Ａが送信したホットライン通知を含むデータの一部または全体が、伝送誤り等で制御装置Ｂに到達しなかった場合や、制御装置Ｂが送信した返信データの一部または全体が伝送誤り等で制御装置Ａに到達しなかった場合、あるいは制御装置Ｂの割り込み処理が何らかの要因で遅延した場合、制御装置Ａはサイクリック通信の自装置送信タイミングにて制御装置Ｂ宛のホットライン通知（内容は同一）を毎回送信することになる。
【０００９】
【特許文献１】特開平９−１４９０５９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上記従来の技術によれば、ホットライン通知送信側の制御装置は、送信先制御装置がホットライン通知を正常に受信したかどうかを確認してから、その送信を停止する必要がある。たとえば、制御装置Ａでは、１つ目のホットライン通知要求１を有効にすると、次のサイクリック通信送信時に制御装置Ｂにホットライン通知を伝送する。制御装置Ｂは、１つ目のホットライン通知要求１を受信すると、フレーム受信正常完了後に、該ホットライン通知要求１の内容に応じた割り込み処理Ｉ１を実施する。また、制御装置Ｂは、制御装置Ａへホットライン通知を受信したことを返信し、制御装置Ａはこれを受けてホットライン通知要求１を完了する。
【００１１】
ここで、上記従来の技術においては、制御装置Ａがホットライン通知要求１に対する送信を停止する前に次の新たなホットライン通知の送信を実施すると、新たなホットライン通知と既存のホットライン通知との区別がつかなくなるため、連続してホットライン通知の送信ができないという問題があった。具体的には、ホットライン通知の送信から返信データ受信まで最低でも通信周期１回分（ないし送信側・受信側制御装置の処理タイミングによっては、それ以上）の時間を要する。このため、その間は新たなホットライン通知を発行できない、という問題があった。
【００１２】
特に、同期型サイクリック通信周期に同期していない制御周期で処理を行う制御装置間でホットライン通知を行う場合や、伝送誤りなどでホットライン通知データが受信できずにリトライが発生した場合など、ホットライン通知受信側の制御装置の割り込み処理が遅延した場合に、ホットライン通知送信元の制御装置がその影響を受け、処理が遅延する。また、該処理をＭＰＵ上のソフトウェア（以下Ｓ／Ｗと呼ぶ）で実施した場合、ホットライン通知送信後も、これを停止するための処理時間が必要となる。
【００１３】
また、ホットライン通知受信側の制御装置においては、ホットライン通知を正常に受信したことを送信元の制御装置に返信する必要があり、かつ返信した後でないと新たなホットライン通知を受信できないという問題があった。
【００１４】
本発明は、上記に鑑みてなされたものであって、同期型サイクリック通信を行う制御装置間において、ホットラインによる割り込み通知を、連続的かつ順次的に発行および処理可能とする制御システム、送信側制御装置、受信側制御装置、制御方法およびプログラムを得ることを目的とする。
【課題を解決するための手段】
【００１５】
上述した課題を解決し、目的を達成するために、本発明にかかる制御システムは、シリアルバスを介して接続された複数の制御装置間において第１の制御装置から第２の制御装置に対して同期型サイクリック通信のホットラインにより割り込み通知を行い、前記第２の制御装置において前記割り込み通知に基づいて割り込み処理を行う制御システムであって、前記第１の制御装置が、自制御装置においてホットラインによる割り込み通知の送信要求が生じた場合に前記割り込み通知の新旧を判別するための前記割り込み通知毎に固有の識別情報を生成する識別情報生成手段と、前記識別情報を前記割り込み処理で利用する割り込み処理用データとともに前記第２の制御装置に送信する制御を行う送信制御手段と、を備え、前記第２の制御装置が、前記第１の制御装置から送信された前記識別情報および前記割り込み処理用データを受信して管理する受信制御手段と、前記識別情報が前回受信した識別情報から更新されている場合のみ、受信した前記識別情報および前記割り込み処理用データに基づいて割り込み処理を実行する割り込み処理実行手段と、を備えることを特徴とする。
【発明の効果】
【００１６】
この発明によれば、ホットライン通知の有無は、単一の有り無しの情報ではなく識別情報（たとえばシーケンス番号）の差分で判断するため、ホットライン通知送信側の制御装置におけるホットライン通知送信後の送信停止処理は不要となる。このため、ホットライン通知送信側の制御装置は送信先（受信側）の制御装置がホットライン通知を受信したかどうかを判別することなく、送信先（受信側）の制御装置からの返信待ちを省略して次の新たなホットライン通知を連続して送信でき、処理速度と処理効率が向上する、という効果を奏する。
【００１７】
また、ホットライン通知受信側の制御装置では、識別情報（たとえばシーケンス番号）により、新規に通知されたホットライン通知の順番および数量の認識が可能となり、ホットライン通知を受信した順に全ての割り込み処理を実行することができる、という効果を奏する。また、同一制御装置から複数のホットライン通知を受信した際もホットライン受信数を認識可能であり、正確に割り込み処理を実行することができる、という効果を奏する。そして、ホットライン通知受信側の制御装置では、ホットライン通知受信時の返信処理が不要であるため、処理速度と処理効率が向上する。
【００１８】
また、同期型サイクリック通信周期に同期していない制御周期で処理を行う制御装置においては、ホットライン通知の応答処理にかかる処理時間を削減できる、という効果を奏する。
【発明を実施するための最良の形態】
【００１９】
以下に、本発明にかかる制御システム、送信側制御装置、受信側制御装置、制御方法およびプログラムの実施の形態を図面に基づいて詳細に説明する。なお、本発明は以下の記述に限定されるものではなく、本発明の要旨を逸脱しない範囲において適宜変更可能である。
【００２０】
まず、本発明の概要について説明する。本発明は、シリアルバスを用いた同期型サイクリック通信によりデータを共有する複数の制御装置間において、ある制御装置内で発生した処理優先度の高い重要なイベントを他の制御装置に通知する際に用いるホットライン通知に関する。本発明では、ホットライン通知データとして、シリアルバス上の各制御装置へのホットライン通知の「有」「無」の情報ではなく、ホットライン通知の「新」「旧」の判別を可能とするホットライン通知の識別情報を送信する。
【００２１】
ホットライン通知の識別情報としては、たとえばホットライン通知用シーケンス番号（以下、シーケンス番号と呼ぶ）を送信する。シーケンス番号は、ホットライン通知の新旧を判別するためのデータであり、ホットライン通知の送信側の制御装置は、制御装置毎にそれぞれ独立したシーケンス番号を送信する。受信側の制御装置は、このシーケンス番号により、受信したホットライン通知の新旧（さらに新しいホットライン通知を受信した場合は、何個の新規通知があるか）を判別することができる。
【００２２】
なお、本発明における「シーケンス番号」とは一定の法則で増減する番号列のことであり、必ずしも連番である必要は無く、受信側の制御装置の未処理ホットライン通知数を任意の二つのシーケンス番号値から計算できるようなものであれば、その表現方法は問わない。
【００２３】
図１は本発明におけるホットライン通知識別情報であるシーケンス番号を利用したホットライン通知処理を説明するためのフローチャートである。ホットライン通知送信側の制御装置は、ホットライン通知を行う送信先制御装置を選択し（ステップＳ１００）、ホットライン通知送信設定を行う（ステップＳ１０１）。このとき、ホットライン通知送信側の制御装置は、送信用のシーケンス番号を変更する（ステップＳ１０２）。
【００２４】
このシーケンス番号は、サイクリック通信の自装置送信時に、相手の制御装置に伝送される（ステップＳ１０３）。シーケンス番号はホットライン通知送信側の制御装置が送信対象となる制御装置宛に新しいホットライン通知を発行するときにのみ変更し、新しいホットライン通知が発行されないときは前回と同じシーケンス番号を通信周期毎に送信し続ける。また、ホットライン通知送信側の制御装置は、ホットライン通知の送信停止処理は実施しない。
【００２５】
また、次回の自装置送信タイミングまでに複数回のホットライン通知発行要求があった場合、ホットライン通知送信側の制御装置はその都度、送信用のシーケンス番号を更新しておく。そして送信タイミングとなった時点での送信用のシーケンス番号をホットライン通知データとして送信する。
【００２６】
ホットライン通知受信側の制御装置では、バス上の各制御装置から最後に受信して割り込み処理を実施したシーケンス番号（最終処理シーケンス番号）を制御装置毎に保持しておく。そして、ホットライン通知受信側の制御装置では、ある制御装置からデータを新たに受信した際に、ホットライン通知送信側の制御装置がそのときの通信周期で送信したデータの全てを正常に受信した場合に限り、受信したデータ中のホットライン通知情報に含まれる自制御装置宛のシーケンス番号と、自装置が保持している最終処理シーケンス番号と、を比較する。そして、ホットライン通知受信側の制御装置では、自制御装置宛のシーケンス番号と、自装置が保持している最終処理シーケンス番号と、が同一であるか否かを判断する（ステップＳ１０４）。
【００２７】
そして、ホットライン通知受信側の制御装置では、両者が異なっている場合（受信したホットライン通知が新たな通知であると認識した場合）にホットライン通知受信側の制御装置の制御部（たとえば、ＭＰＵ）へ割り込み通知し、ホットライン通知に対応する割り込み処理を実施するとともに最終処理シーケンス番号を直前に受信したシーケンス番号に更新する（ステップＳ１０５）。また、ホットライン通知受信側の制御装置では、ホットライン通知受信側の制御装置が処理すべきホットライン通知の数は、最終処理シーケンス番号と直前に受信したシーケンス番号の差分により知ることができる。
【００２８】
なお、ホットライン通知受信側の制御装置では、そのときの通信周期で送信されたデータの全てを正常に受信できなかった場合には、ＭＰＵへの割り込みは通知せず、最終処理シーケンス番号も更新しない。これは受信フレーム中のシーケンス番号部あるいは制御データ（交信データ）が欠落またはデータ化けを起こしている可能性があるためである。制御データ（交信データ）が不完全でも割り込み通知できない理由は、ホットライン通知による割り込み処理では通常、それに伴う制御データ（交信データ）も併せて利用するためで、制御データを正常に受信しない限り、それに伴う制御を実施できない。以下、図面に基づいて本発明の実施の形態を具体的に説明する。
【００２９】
実施の形態
図２は、本発明の実施の形態にかかる制御システムの構成を示すブロック図である。本実施の形態にかかる制御システムは、シリアルバス（以下、単にバスと呼ぶ）を用いた同期型サイクリック通信によりデータを共有する制御装置を複数備えた制御システムである。本実施の形態においては、図２に示すようにバス１１上に制御装置１および制御装置２が接続されており、バス１１上の制御装置の接続可能最大台数Ｕmax＝４、バス１１上の制御装置接続台数Ｕ＝２とする。
【００３０】
各制御装置１、２は、各々の装置全体の制御を行う制御部であるマイクロプロセッサ（以下、ＭＰＵと呼ぶ）９と、制御プログラム等を格納するメモリ１０と、バス１１を介して他の制御装置と同期型サイクリック通信を行う通信装置３と、を備える。また、通信装置３は、同期型サイクリック通信による交信データ格納用の交信データ用メモリ４と、同期型サイクリック通信の送信制御を行う送信制御部５と、同期型サイクリック通信の受信制御を行う受信制御部６、同期型サイクリック通信の通信全体を制御する通信制御部７、通信インタフェース部８と、を備える。なお、送信制御部５は、請求項における識別情報生成手段および送信制御手段としての機能を有する。受信制御部６は、請求項における受信制御手段としての機能を有する。ＭＰＵ９は、請求項における割り込み処理実行手段としての機能を有する。
【００３１】
また各制御装置１、２は、シーケンス番号を保持するために、送信シーケンス番号格納メモリ１２と、送信シーケンス番号格納メモリ１２のラッチ用のメモリである送信シーケンス番号ラッチメモリ１３と、を送信制御部５に有する。また各制御装置１、２は、受信制御部６には、受信シーケンス番号を一時的に格納する受信シーケンス番号一時格納メモリ１４と、受信したシーケンス番号を記憶する受信シーケンス番号格納メモリ１５と、受信シーケンス番号格納メモリ１５のラッチ用メモリのメモリである受信シーケンス番号ラッチメモリ１６と、最終処理シーケンス番号を記憶する最終処理シーケンス番号格納メモリ１７と、最終処理シーケンス番号格納メモリ１７のラッチ用のメモリである最終処理シーケンス番号格納ラッチメモリ１８と、を有する。
【００３２】
送信シーケンス番号格納メモリ１２、送信シーケンス番号ラッチメモリ１３、受信シーケンス番号格納メモリ１５、受信シーケンス番号ラッチメモリ１６、最終処理シーケンス番号格納メモリ１７、および最終処理シーケンス番号格納ラッチメモリ１８は、それぞれ接続可能最大制御装置台数Ｕmaxから自装置を除いた（Ｕmax−１）個のシーケンス番号を少なくとも保持できる。送信シーケンス番号格納メモリ１２と、ラッチ用メモリ１６と、最終処理シーケンス番号格納ラッチメモリ１８と、はＭＰＵ９から参照可能なレジスタとし、ＭＰＵ９が制御するソフトウエア（以下、Ｓ／Ｗと呼ぶ）から利用可能とする。
【００３３】
図３−１は、送信シーケンス番号格納メモリ１２の構成を示す図である。送信シーケンス番号格納メモリ１２は、制御装置ｘから制御装置ｙ（ｘ、ｙは制御装置の番号を表し、本実施の形態では１≦ｘ≦４、１≦ｙ≦４である）へのホットライン通知の送信に用いる送信シーケンス番号Ｈｘｙを各制御装置別に格納する。図３−１に示す例においては、送信シーケンス番号格納メモリ１２は、制御装置１へのホットライン通知の送信に用いる送信シーケンス番号Ｓ１と、制御装置２へのホットライン通知の送信に用いる送信シーケンス番号Ｓ２と、制御装置３へのホットライン通知の送信に用いる送信シーケンス番号Ｓ３と、制御装置４へのホットライン通知の送信に用いる送信シーケンス番号Ｓ４と、を備える。
【００３４】
図３−２は、送信シーケンス番号ラッチメモリ１３の構成を示す図である。送信シーケンス番号ラッチメモリ１３は、送信シーケンス番号格納メモリ１２に格納した送信シーケンス番号を各制御装置別にラッチする。図３−２に示す例においては、送信シーケンス番号ラッチメモリ１３は、送信シーケンス番号格納メモリ１２に格納された送信シーケンス番号Ｓ１をラッチした送信シーケンス番号Ｓ’１（Ｓ’１＝Ｓ１）と、送信シーケンス番号格納メモリ１２に格納された送信シーケンス番号Ｓ２をラッチした送信シーケンス番号Ｓ’２（Ｓ’２＝Ｓ２）と、送信シーケンス番号格納メモリ１２に格納された送信シーケンス番号Ｓ３をラッチした送信シーケンス番号Ｓ’３（Ｓ’３＝Ｓ３）と、送信シーケンス番号格納メモリ１２に格納された送信シーケンス番号Ｓ４をラッチした送信シーケンス番号Ｓ’４（Ｓ’４＝Ｓ４）と、を備える。
【００３５】
図４−１は、受信シーケンス番号一時格納メモリ１４の構成を示す図である。図４−２は、受信シーケンス番号格納メモリ１５の構成を示す図である。受信シーケンス番号格納メモリ１５は、受信したホットライン通知に格納された受信シーケンス番号を各制御装置別に格納する。図４−２に示す例においては、受信シーケンス番号格納メモリ１５は、制御装置１からのホットライン通知に格納された受信シーケンス番号Ｎ１（Ｎ１＝Ｓ１）と、制御装置２からのホットライン通知に格納された受信シーケンス番号Ｎ２（Ｎ２＝Ｓ２）と、制御装置３からのホットライン通知に格納された受信シーケンス番号Ｎ３（Ｎ３＝Ｓ３）と、制御装置４からのホットライン通知に格納された受信シーケンス番号Ｎ４（Ｎ４＝Ｓ４）と、を備える。
【００３６】
図４−３は、受信シーケンス番号ラッチメモリ１６の構成を示す図である。受信シーケンス番号ラッチメモリ１６は、受信シーケンス番号格納メモリ１５に格納した送信シーケンス番号を各制御装置別にラッチする。図４−３に示す例においては、受信シーケンス番号ラッチメモリ１６は、受信シーケンス番号格納メモリ１５に格納された受信シーケンス番号Ｎ１をラッチした受信シーケンス番号Ｎ’１（Ｎ’１＝Ｎ１）と、受信シーケンス番号格納メモリ１５に格納された受信シーケンス番号Ｎ２をラッチした受信シーケンス番号Ｎ’２（Ｎ’２＝Ｎ２）と、受信シーケンス番号格納メモリ１５に格納された受信シーケンス番号Ｎ３をラッチした受信シーケンス番号Ｎ’３（Ｎ’３＝Ｎ３）と、受信シーケンス番号格納メモリ１５に格納された受信シーケンス番号Ｎ４をラッチした受信シーケンス番号Ｎ’４（Ｎ’４＝Ｎ４）と、を備える。
【００３７】
図４−４は、最終処理シーケンス番号格納メモリ１７の構成を示す図である。最終処理シーケンス番号格納メモリ１７は、バス１１上の制御装置から最後に受信して割り込み処理を実施したシーケンス番号（最終処理シーケンス番号）を各制御装置別に格納する。図４−４に示す例においては、最終処理シーケンス番号格納メモリ１７は、制御装置１から受信して最後に割り込み処理を実施した最終処理シーケンス番号Ｌ１と、制御装置２から受信して最後に割り込み処理を実施した最終処理シーケンス番号Ｌ２と、制御装置３から受信して最後に割り込み処理を実施した最終処理シーケンス番号Ｌ３と、制御装置４から受信して最後に割り込み処理を実施した最終処理シーケンス番号Ｌ４と、を備える。
【００３８】
図４−５は、最終処理シーケンス番号格納ラッチメモリ１８の構成を示す図である。最終処理シーケンス番号格納ラッチメモリ１８は、最終処理シーケンス番号格納メモリ１７に格納した送信シーケンス番号を各制御装置別にラッチする。図４−５に示す例においては、最終処理シーケンス番号格納ラッチメモリ１８は、最終処理シーケンス番号格納メモリ１７に格納した最終処理シーケンス番号Ｌ１をラッチした最終処理シーケンス番号Ｌ’１（Ｌ’１＝Ｌ１）と、最終処理シーケンス番号格納メモリ１７に格納した最終処理シーケンス番号Ｌ２をラッチした最終処理シーケンス番号Ｌ’２（Ｌ’２＝Ｌ２）と、最終処理シーケンス番号格納メモリ１７に格納した最終処理シーケンス番号Ｌ３をラッチした最終処理シーケンス番号Ｌ’３（Ｌ’３＝Ｌ３）と、最終処理シーケンス番号格納メモリ１７に格納した最終処理シーケンス番号Ｌ４をラッチした最終処理シーケンス番号Ｌ’４（Ｌ’４＝Ｌ４）と、を備える。
【００３９】
シーケンス番号は初期値０から始まり、ホットライン通知要求毎に１ずつインクリメントするアップカウント値とする。なお、本実施の形態ではシーケンス番号をアップカウントとしているが、必ずしもその必要は無い。また、１つのホットライン通知における送信シーケンス番号と受信シーケンス番号とは同一であり、ここでは送信する際のシーケンス番号を送信シーケンス番号と呼び、受信した際のシーケンス番号を受信シーケンス番号と呼ぶ。
【００４０】
この場合、制御装置ｘ（ｘは制御装置の番号を表し、本実施の形態では１≦ｘ≦４である）からのホットライン通知の有無は、受信側の制御装置の制御装置ｘ用最終処理シーケンス番号Ｌｘと受信シーケンス番号Ｎｘとの差分Ｄｘ＝Ｎｘ−Ｌｘで判断できる。差分Ｄｘが０ならば新規のホットライン通知無し、それ以外ならば新規のホットライン通知有り（Ｄｘが新規ホットライン通知数）、となる。
【００４１】
なお、シーケンス番号のビット長は、サイクリック通信の通信周期内に発行し得るホットライン通知要求数と受信側の制御装置の割り込み処理能力とを考慮し、オーバフローしない値に設定する必要がある。例えば、ホットライン通知受信側の制御装置での未処理のホットライン通知数が最大１００個まで蓄積し得るならば、シーケンス番号のビット長は少なくとも７ビット（２７＝１２８）必要である。本実施の形態においては、シーケンス番号のビット長を８ビット値とする。受信側の制御装置が何らかの理由、例えばＭＰＵの停止等で、全く割り込みを処理できないような場合に発生するカウンタオーバフローの検出は、アプリケーションＳ／Ｗで行う。
【００４２】
ホットライン通知による割り込み処理で利用するアプリケーションＳ／Ｗ依存の制御データ（割り込み処理用データ）は、先入れ先出し（ＦＩＦＯ：First-In First-Out）のデータ構造が適しており、これを図２の交信データ用メモリ４上に実装しておく。ＦＩＦＯキューの長さは上記で設定したホットライン通知の最大数と等しくしておく。
【００４３】
図５は、サイクリック通信で送受信するデータフレームの構成例を示す図である。ＳＦＬＧ（スタートフラグ）フィールド８０とＥＦＬＧ（エンドフラグ）フィールド８５とは、それぞれフレームの開始・終了を示すビット列である。コントロールデータフィールド８１は、送信データ種別や送信先アドレス等を含む固定長のフィールドである。制御装置ｘから制御装置ｙへのホットライン通知に用いるシーケンス番号Ｈｘｙは、ホットライン情報フィールド８２に、各制御装置別に格納する。
【００４４】
本実施の形態では、ホットライン情報フィールド８２に、制御装置ｘから制御装置１へのホットライン通知に用いるシーケンス番号Ｈｘ１と、制御装置ｘから制御装置２へのホットライン通知に用いるシーケンス番号Ｈｘ２と、制御装置ｘから制御装置３へのホットライン通知に用いるシーケンス番号Ｈｘ３と、制御装置ｘから制御装置４へのホットライン通知に用いるシーケンス番号Ｈｘ４と、を格納する。なお、自制御装置の該箇所は常に０（初期値と等しい）固定としてデータフレームを生成する。制御装置２の場合、Ｈ２２が常に０である。
【００４５】
データフレームを受信した制御装置は、このホットライン情報フィールド８２の受信を完了した時点で、自制御装置宛シーケンス番号を、受信シーケンス番号一時格納メモリ１４に格納する。ユーザデータフィールド８３は、ユーザデータを格納する。ユーザデータはアプリケーションで利用する交信データ本体であり、長さは可変長（コントロールデータ８１内で設定）で、制御装置内の交信データ用メモリ４の内容が対応する。
【００４６】
チェックコードフィールド８４は、チェックコードを格納する。チェックコードは、コントロールデータ８１からユーザデータ８３までのデータ正当性を確認するためのＦＣＳ（フレームチェックシーケンス）である。このデータにより受信したデータフレームが正当であることを確認したら、先に格納した受信シーケンス番号一時格納メモリ１４の値を受信シーケンス番号格納メモリＮｘ１５に反映し、新規ホットライン通知の有無判定を行う。
【００４７】
つぎに、実施の形態にかかる制御システムにおけるホットライン通知の動作について図６−１および図６−２を参照して説明する。図６−１および図６−２は、実施の形態にかかる制御システムにおけるホットライン通知の処理フローを説明するためのフローチャートである。図６−１および図６−２中の「Ｓ／Ｗ処理」はＭＰＵ９による処理を示し、「Ｈ／Ｗ処理」は通信装置による処理を示す。
【００４８】
ホットライン通知送信側の制御装置ｘ（たとえば、ｘ＝１）において制御装置ｙ（たとえば、ｙ＝２）に対するホットライン通知送信要求があった場合、制御装置ｘ上のＳ／Ｗ（ＭＰＵ９）が、通信制御部７にホットライン通知送信先の制御装置として「制御装置ｙ」を設定し（ステップＳ２００）、ホットライン通知送信起動指示をする（ステップＳ２０１）。
【００４９】
通信装置３はホットライン通知送信起動指示の有無を判断し（ステップＳ２０２）、ホットライン通知送信起動指示があると判断した場合には（ステップＳ２０２肯定）、送信制御部５の送信用シーケンス番号Ｓｙを１だけインクリメントして生成し、送信シーケンス番号格納メモリ１２に格納する（ステップＳ２０３）。シーケンス番号はビット長を８ビットに設定したので、Ｓｙはホットライン通知送信起動がある度に００ｈ→０１ｈ→０２ｈ→…→ＦＥｈ→ＦＦｈ→００ｈ→…と変化する。一方、ホットライン通知送信起動指示がないと判断した場合には（ステップＳ２０２否定）、ステップＳ２０４に進む。
【００５０】
次に、送信制御部５はサイクリック通信の自制御装置送信タイミングが回ってきた否かを判断する（ステップＳ２０４）。サイクリック通信の自制御装置送信タイミングが回ってきたと判断した場合には（ステップＳ２０４肯定）、その送信タイミングにおいて送信用シーケンス番号Ｓｙの値を送信シーケンス番号ラッチメモリ１３にラッチし（ステップＳ２０５）、送信データのホットライン情報フィールド８２のシーケンス番号ＨｘｙをＳ’ｙに設定して（ステップＳ２０６）、データフレームを送信する（ステップＳ２０７）。送信用シーケンス番号を一旦ラッチするのは、データ送信中も新規ホットライン通知送信要求を受け付けるためである。
【００５１】
一方、受信側の制御装置ｙ内の受信制御部６は、データフレームの受信の有無を監視し、データフレームのスタートフラグフィールド８０によりデータフレームの受信開始を検出する（ステップＳ２０８）。データフレームの受信を検出しない場合は（ステップＳ２０８否定）、データフレームの受信の有無の監視を継続する。
【００５２】
また、データフレームの受信を検出した場合は（ステップＳ２０８肯定）、受信制御部６は自装置宛シーケンス番号Ｈｘｙを受信したか否かを確認する（ステップＳ２０９）。
ここで、自装置宛シーケンス番号Ｈｘｙとは、データフレームに含まれたシーケンス番号Ｈｘｙにおいて宛先が自装置宛に設定されているシーケンス番号Ｈｘｙである。自装置宛シーケンス番号Ｈｘｙを受信していない場合は（ステップＳ２０９否定）、受信制御部６はデータフレームの受信の有無の監視を継続する。
【００５３】
自装置宛シーケンス番号Ｈｘｙを受信した場合は（ステップＳ２０９肯定）、その値を受信シーケンス番号として受信シーケンス番号一時格納メモリ１４に格納する（ステップＳ２１０）。その後、受信制御部６は、データフレームのエンドフラグを監視して、データフレームのエンドフラグフィールド８５によりデータフレームの受信終了を検出する（ステップＳ２１１）。データフレームのエンドフラグフィールド８５によりデータフレーム受信の終了を検出しない場合は（ステップＳ２１１否定）、ステップＳ２０９に戻る。
【００５４】
また、データフレームのエンドフラグフィールド８５によりデータフレーム受信の終了を検出した場合は（ステップＳ２１１肯定）、受信制御部６は受信したデータフレームのチェックコードフィールド８４の内容を検査して、受信エラーがないことを確認する（ステップＳ２１２）。ここで、受信エラーがある場合は（ステップＳ２１２否定）、受信制御部６は、一連のホットライン通知受信処理を終了する。
【００５５】
一方、受信エラーがない場合は（ステップＳ２１２肯定）、受信制御部６は受信シーケンス番号格納メモリ１５の受信シーケンス番号Ｎｘを更新する（ステップＳ２１３）。すなわち、受信制御部６は、受信シーケンス番号一時格納メモリ１４に格納した受信シーケンス番号ｔｍｐを受信シーケンス番号Ｎｘに設定する。
【００５６】
そして、受信制御部６は、更新した受信シーケンス番号Ｎｘと最終処理シーケンス番号格納メモリ１７に格納している最終処理シーケンス番号Ｌｘとを比較して同一（Ｎｘ−Ｌｘ＝０）であるか否かを判断する（ステップＳ２１４）。ここで、これらが同一である（変化していない）場合は（ステップＳ２１４肯定）、受信制御部６は、一連のホットライン通知受信処理を終了する。
【００５７】
また、これらが同一でない（変化している）場合は（ステップＳ２１４否定）、受信制御部６は、現在の状態が割り込み信号出力中または割り込み出力マスク中であるか否かを確認する（ステップＳ２１５）。
【００５８】
現在の状態が割り込み信号出力中または割り込み出力マスク中である場合は（ステップＳ２１５肯定）、受信制御部６は、一連のホットライン通知受信処理を終了する。一方、現在の状態が割り込み信号出力中または割り込み出力マスク中でない場合は（ステップＳ２１５否定）、受信制御部６は、このときの受信シーケンス番号Ｎｘを受信シーケンス番号Ｎ’ｘに、最終処理シーケンス番号Ｌｘを最終処理シーケンス番号Ｌ’ｘに、それぞれラッチし（ステップＳ２１６、Ｓ２１７）する。受信制御部６は、さらに最終処理シーケンス番号ＬｘをＮｘに更新した後（ステップＳ２１８）、ＭＰＵ９へ割り込み信号を出力する（ステップＳ２１９）。
【００５９】
ここでシーケンス番号Ｌ、Ｎをラッチするのは、割り込み処理において割り込み信号出力時点でのシーケンス番号Ｌ、Ｎを参照するためである。ラッチすることにより、割り込み処理中に新たなホットライン通知が受信可能となる。
【００６０】
ＭＰＵ９は受信制御部６から伝達された割り込み信号を認識して割り込みを受け付けると、前回の割り込み処理時から後に新規に受信したホットライン通知に対する割り込み処理を実施するために、Ｓ／Ｗ上のカウンタｉの値を１に初期化し（ステップＳ２２０）、ホットライン（シーケンス番号＝Ｌ’ｘ＋ｉ）に対する処理を制御し（ステップＳ２２１）、カウンタｉの値をインクリメントする（ステップＳ２２２）。
【００６１】
そして、ＭＰＵ９は、ｉ＝Ｎ’ｘ−Ｌ’ｘであるかを確認して全ホットライン通知を処理したか否かを判断する（ステップＳ２２３）。全ホットライン通知を処理していないと判断した場合は（ステップＳ２２３否定）、ステップＳ２２１に戻って、残りのホットライン通知に対する処理を実施する。また、全ホットライン通知を処理したと判断した場合は（ステップＳ２２３肯定）、ＭＰＵ９は、受信制御部６に対し、割り込み出力停止を指示する（ステップＳ２２４）。受信制御部６は、ＭＰＵ９への割り込み信号出力を停止する（ステップＳ２２４）。
【００６２】
次に、本実施の形態におけるホットライン通知の制御装置間の処理タイミングについて図７を参照して説明する。図７は本実施の形態におけるホットライン通知の制御装置間の処理タイミングを説明するための図である。制御装置１が制御装置２に対するホットライン通知要求１（ステップＳ３００）、ホットライン通知要求２（ステップＳ３０１）を同一通信周期内に連続して発行する。このとき制御装置２宛の送信シーケンス番号Ｓ２が２回インクリメントされ「０」から「２」となる。この制御装置２宛の送信シーケンス番号Ｓ２（２）は、次通信周期においてデータＤ１２により制御装置２に伝送される（ステップＳ３０２）。
【００６３】
制御装置２は、制御装置１が送信したデータＤ１２全体を正常に受信した場合、制御装置１用の受信シーケンス番号格納メモリ１５のメモリ領域Ｎ１に、受信したシーケンス番号「２」を格納する。この時点で制御装置１用の最終処理シーケンス番号Ｌ１は「０」であるから、制御装置２の受信制御部３は新しいホットライン通知を２個（２−０＝２）受信したと判断して（ステップＳ３０３）、ＭＰＵ９への割り込み通知Ｉ１を実施する。ＭＰＵ９は、シーケンス番号「１」、「２」に対する割り込み処理を行う。また制御装置２の受信制御部３は、最終処理シーケンス番号格納メモリＬにおける制御装置１用のメモリ領域Ｌ１に格納される最終処理シーケンス番号Ｌ１を、「０」から受信シーケンス番号Ｎ１の値「２」に更新する。
【００６４】
次に、制御装置１で制御装置２に対する新たなホットライン通知要求３が発行されたとする（ステップＳ３０４）。この場合の送信シーケンス番号Ｓ２は「３」となる。このホットライン通知はデータＤ１３により制御装置１から制御装置２へ伝送される。ここで、制御装置１から制御装置２への伝送途中で伝送誤りが生じたとする（ステップＳ３０５）。この場合、制御装置２では制御装置１用の受信シーケンス番号Ｎ１は更新されずに前回値の「２」を継続し、ＭＰＵ９への割り込みは出力しない。
【００６５】
また、制御装置１がデータＤ１３を送信中に新たなホットライン通知要求４があった場合には（ステップＳ３０６）、送信シーケンス番号Ｓ２は「４」にインクリメントされる。しかし、データは既に送信中のため、送信シーケンス番号Ｓ２は次の通信周期でデータＤ１４として制御装置２に伝送される（ステップＳ３０７）。
【００６６】
制御装置２ではデータＤ１４全体を正常に受信した場合に、受信シーケンス番号Ｎ１の値を、新たに受信した受信シーケンス番号Ｓ２である「４」に更新する。この時点で最終処理シーケンス番号Ｌ１は「２」であるから、新しいホットライン通知を２個（４−２＝２）受信したと判断して（ステップＳ３０７）、ＭＰＵ９への割り込み通知Ｉ２を実施する。ＭＰＵ９は、シーケンス番号「３」「４」に対する割り込み処理を行う。また制御装置２の受信制御部３は、最終処理シーケンス番号Ｌ１を、「２」から受信シーケンス番号Ｎ１の値「４」に更新する。
【００６７】
上述したように、本実施の形態にかかる制御システムにおいては、ホットライン通知の有無は、単一の有り無しの情報ではなくシーケンス番号の差分で判断する。これにより、ホットライン通知送信側の制御装置は、ホットライン通知受信側の制御装置がホットライン通知を受信・処理したかを確認することなく、送信先（受信側）の制御装置からの返信待ちを省略して、連続的に順次、新たなホットライン通知を発行することができる。また、従来のようなホットライン通信送信後のホットライン通知送信停止処理が不要となる。これらのことより、ホットライン通知送信側の制御装置においては、処理速度と処理効率が向上する。
【００６８】
一方、ホットライン通知受信側の制御装置では、新たに受信したホットライン通知の順番および数量をシーケンス番号によって正確に認識し、交信用データメモリ上にＦＩＦＯ形式で格納された制御データを用いて、ホットライン通知発行順に連続的に順次、制御を行って割り込み処理を実行することができる。また、ホットライン通知受信側の制御装置においては、ホットライン通知を正常に受信したことを送信元の制御装置に返信する必要がなく、処理速度と処理効率が向上する。
【００６９】
また、同期型サイクリック通信周期に同期していない制御周期で処理を行う制御装置においては、ホットライン通知の応答処理にかかる処理時間を削減できる、という効果を奏する。
【００７０】
なお、上記においては、制御装置においてＳ／Ｗ処理とＨ／Ｗ処理との両方を行う場合について説明したが、制御装置を上記の機能の全てをＨ／Ｗ処理により実行するように構成しても良い。また、制御装置を上記の機能の全てをＳ／Ｗ処理により実行するように構成しても良い。この場合には、上述した制御装置における制御方法をこれらの方法の処理手順が格納されたプログラムとして構成し、たとえばＣＰＵ、記憶装置等を有するコンピュータで実行することによって実現することができる。
【００７１】
このコンピュータ装置は、入力装置、表示装置、ＣＰＵ（Central Processing Unit：中央処理ユニット）、メモリ、記憶装置、媒体駆動装置、ネットワークインターフェース及びバスを備えて構成されている。
【００７２】
ここで、入力装置はキーボード、マウス、タッチパネル、スキャナ等により構成され、情報の入力に使用される。表示装置は、種々の出力情報や入力装置からの入力された情報などを表示出力させる。ＣＰＵは、種々のプログラムを動作させる。メモリは、ＣＰＵによって実行されるプログラムが展開され、またそのプログラムがＣＰＵによって実行されるときに一時的に作成される情報等が記憶される。記憶装置は、プログラムやプログラム実行時の一時的な情報等を保持する。媒体駆動装置は、プログラムやデータ等を記憶した記録媒体を装着してそれらを読み込み、メモリまたは記憶装置へ格納するのに用いられる。ネットワークインターフェースは、コンピュータ装置とネットワークとを接続するためのものである。バスは、上記各部を接続する。
【産業上の利用可能性】
【００７３】
以上のように、本発明にかかる制御システムは、シリアルバスを用いた同期型サイクリック通信によりデータを共有する複数の制御装置間において、ホットライン通知を発行元から発行先へ連続的かつ順次的に実施するシステムに有用である。
【図面の簡単な説明】
【００７４】
【図１】本発明におけるホットライン通知処理を説明するためのフローチャートである。
【図２】本発明の実施の形態にかかる制御システムの構成を示すブロック図である。
【図３−１】本発明の実施の形態における送信シーケンス番号格納メモリＳの構成を示す図である。
【図３−２】本発明の実施の形態における送信シーケンス番号格納メモリＳ’の構成を示す図である。
【図４−１】本発明の実施の形態における受信シーケンス番号一時格納用メモリｔｍｐの構成を示す図である。
【図４−２】本発明の実施の形態における受信シーケンス番号格納メモリの構成を示す図である。
【図４−３】本発明の実施の形態における受信シーケンス番号ラッチメモリの構成を示す図である。
【図４−４】本発明の実施の形態における最終処理シーケンス番号格納メモリの構成を示す図である。
【図４−５】本発明の実施の形態における最終処理シーケンス番号格納ラッチメモリの構成を示す図である。
【図５】本発明の実施の形態におけるサイクリック通信で送受信するデータフレームの構成例を示す図である。
【図６−１】本発明の実施の形態におけるホットライン通知の処理フローを説明するためのフローチャートである。
【図６−２】本発明の実施の形態におけるホットライン通知の処理フローを説明するためのフローチャートである。
【図７】本発明の実施の形態におけるホットライン通知の制御装置間の処理タイミングを説明するための図である。
【符号の説明】
【００７５】
１  制御装置
２  制御装置
３  通信装置
４  交信データ用メモリ
５  送信制御部
６  受信制御部
７  通信制御部
８  通信インタフェース部
９  ＭＰＵ（マイクロプロセッサ）
１０  制御プログラム等の格納メモリ
１１  バス
１２  送信シーケンス番号格納メモリ
１３  送信シーケンス番号ラッチメモリ
１４  受信シーケンス番号一時格納メモリ
１５  受信シーケンス番号格納メモリ
１６  受信シーケンス番号ラッチメモリ
１７  最終処理シーケンス番号格納メモリ
１８  最終処理シーケンス番号ラッチメモリ
８０  ＳＦＬＧ（スタートフラグ）フィールド
８１  コントロールデータフィールド
８２  ホットライン情報フィールド
８３  ユーザデータフィールド
８４  チェックコードフィールド
８５  ＥＦＬＧ（エンドフラグ）フィールド
【図１】
2009049793.tif 000003
【図２】
2009049793.tif 000004
【図３−１】
2009049793.tif 000005
【図３−２】
2009049793.tif 000006
【図４−１】
2009049793.tif 000007
【図４−２】
2009049793.tif 000008
【図４−３】
2009049793.tif 000009
【図４−４】
2009049793.tif 000010
【図４−５】
2009049793.tif 000011
【図５】
2009049793.tif 000012
【図６−１】
2009049793.tif 000013
【図６−２】
2009049793.tif 000014
【図７】
2009049793.tif 000015