(57)【要約】【課題】割り込みを必要とする高速周期の通信において、効率的な割り込みを実現することを目的とする。【解決手段】制御対象へ送受信されるパケットを基に、アクセラレータ２からＣＰＵ３への割込制御を行う割込制御部１であって、割込制御の状態を切り替える条件を記述した割込制御タイミングテーブル１５２を格納している記憶部１５０と、記憶部１５０の割込制御タイミングテーブル１５２とを基に、ＣＰＵ３への割込制御の状態を、許可モードおよびマスクモードのいずれかに切り替える割込制御モード切替部１０１と、を有することを特徴とする。【選択図】図４
2010072915.tif 000002
【特許請求の範囲】
【請求項１】
外部と送受信する信号を基に、通信処理用アクセラレータからＣＰＵへの割込制御を行う割込制御装置であって、
前記割込制御の状態を切り替える条件を記述した切替条件情報を格納している記憶部と、
前記信号を送受信する送受信部と、
前記送受信した信号と、前記記憶部の切替条件情報とを基に、前記ＣＰＵへの割込制御の状態を切り替える割込制御モード切替部と、
を有することを特徴とする割込制御装置。
【請求項２】
前記割込制御の状態は、前記ＣＰＵへの前記割込制御を行う許可モードと、前記ＣＰＵへの前記割込制御を行わないマスクモードと、を有することを特徴とする請求項１に記載の割込制御装置。
【請求項３】
前記外部と送受信する信号のうち、前記割込制御の状態を切り替えるのは、前記外部から受信する信号であり、
前記切替条件情報は、前記信号に含まれる値が、所定の時間に所定の値となっているか否かであることを特徴とする請求項１に記載の割込制御装置。
【請求項４】
前記外部と送受信する信号のうち、前記割込制御の状態を切り替えるのは、前記外部から受信する信号であり、
前記切替条件情報は、前記信号に含まれる値の差分値または微分値が、所定の条件を満たすか否かであることを特徴とする請求項１に記載の割込制御装置。
【請求項５】
前記外部と送受信する信号のうち、前記割込制御の状態を切り替えるのは、前記外部から受信する信号であり、
前記切替条件情報は、前記信号に含まれる値において、同一の値が所定回数連続して出現するか否かであることを特徴とする請求項１に記載の割込制御装置。
【請求項６】
前記外部と送受信する信号のうち、前記割込制御の状態を切り替えるのは、前記外部から受信する信号であり、
前記切替条件情報は、前記信号に含まれる値と、過去の前記信号に含まれる値に含まれる値との差分が所定の値以上または所定の値以下を示すとき、割り込みを許可し、それ以外は前記割り込みを行わないことを指示する情報であることを特徴とする請求項１に記載の割込制御装置。
【請求項７】
前記外部と送受信する信号のうち、割込制御の状態を切り替えるのは、前記外部から受信する信号であり、
前記切替条件情報は、前記信号を受信する周期が、通常時における周期より所定の長さだけ長いか、または短いとき、割り込みを許可し、それ以外は前記割り込みを行わないことを指示する情報であることを特徴とする請求項１に記載の割込制御装置。
【請求項８】
前記外部と送受信する信号のうち、割込制御の状態を切り替えるのは、前記外部から受信する信号であり、
前記切替条件情報は、前記信号のサイズが、所定の値を超えたとき、割り込みを許可し、それ以外は前記割り込みを行わないことを指示する情報であることを特徴とする請求項１に記載の割込制御装置。
【請求項９】
前記外部と送受信する信号のうち、割込制御の状態を切り替えるのは、前記外部から受信する信号であり、
前記切替条件情報は、前記信号が所定のプロトコルに従っていないとき、割り込みを許可し、それ以外は前記割り込みを行わないことを指示する情報であることを特徴とする請求項１に記載の割込制御装置。
【請求項１０】
前記外部と送受信する信号のうち、割込制御の状態を切り替えるのは、前記外部へ送信する信号であり、
前記切替条件情報は、前記分割された信号のすべてが送信されていないときは、割り込みを行わず、前記分割された信号のすべてが送信されたときは、前記割り込みを許可することを指示する情報であることを特徴とする請求項１に記載の割込制御装置。
【請求項１１】
前記切替条件情報は、外部から受信した前記信号に含まれる値の差分値または微分値が、所定の条件を満たすか否かで前記割込制御の状態を切り替え、
前記信号を受信する周期が、通常時における周期より所定の長さだけ長いか、または短いとき、前記信号のサイズが、所定の値を超えているか否か、前記信号が所定のプロトコルに従っていないとき、および外部へ送信する分割された信号のすべてが送信されたときのいずれか１つが満たされるとき、割り込みを許可すること
を指示する情報であることを特徴とする請求項１に記載の割込制御装置。
【請求項１２】
前記切替条件情報は、外部から受信した前記信号に含まれる値が、所定の時間に所定の値となっているか否か、および前記信号に含まれる値の差分値または微分値が、所定の条件を満たすか否かのうちいずれか１つが満たされるときに前記割込制御の状態を切り替え、
前記信号を受信する周期が、通常時における周期より所定の長さだけ長いか、または短いとき、前記信号のサイズが、所定の値を超えているとき、前記信号が所定のプロトコルに従っていないとき、および外部へ送信する分割された信号のすべてが送信されたときのいずれか１つが満たされるとき、割り込みを許可すること
を指示する情報であることを特徴とする請求項１に記載の割込制御装置。
【請求項１３】
前記信号は、サーボアンプまたはサーボモータとの間で送受信される制御信号であることを特徴とする請求項１に記載の割込制御装置。
【請求項１４】
前記割込制御装置は、前記通信処理用アクセラレータに備えられることを特徴とする請求項１に記載の割込制御装置。
【請求項１５】
前記割込制御装置は、情報処理装置に備えられることを特徴とする請求項１に記載の割込制御装置。
【請求項１６】
制御対象と、前記制御対象へ送受信する信号を基に、通信処理用アクセラレータからＣＰＵへの割込制御を行う割込制御装置とを有する割込制御システムであって、
前記割込制御装置は、
前記割込制御の状態を切り替える条件を記述した切替条件情報を格納している記憶部と、
前記信号を送受信する送受信部と、
前記送受信した信号と、前記記憶部の切替条件情報とを基に、前記ＣＰＵへの割込制御の状態を切り替える割込制御モード切替部と、
を有することを特徴とする割込制御システム。
【請求項１７】
外部と送受信する信号を基に、通信処理用アクセラレータからＣＰＵへの割込制御を行う割込制御装置による割込制御方法であって、
前記割込制御装置が、
記憶部に前記割込制御の状態を切り替える条件を記述した切替条件情報を格納しており、
前記外部と送受信した信号と、前記記憶部の切替条件情報とを基に、前記ＣＰＵへの割込制御の状態を切り替える
ことを特徴とする割込制御方法。
【請求項１８】
請求項１７に記載の割込制御方法をコンピュータに実行させることを特徴とする割込制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、割込制御装置、割込制御システム、割込制御方法および割込制御プログラムの技術に関する。
【背景技術】
【０００２】
計算機システムにおいて、特定機能の処理能力を向上するために補助的なハードウェアを用いる場合がある。これらのハードウェアは、特定機能に向けたＣＰＵ（Central Processing Unit）の処理を代替する機能を有する。このようなハードウェアを用いることによって、ＣＰＵは、その他の機能に計算機資源を集中することができ、また、該ハードウェアにおいても、特定機能を効率よく実現するための最適化がなされているため、計算機システム全体の性能を向上させることができる。つまり、ＣＰＵによって実行されているＯＳ（Operating System）上で実行されているアプリケーションの負荷を軽くすることができる。一般に、このようなハードウェアをアクセラレータと呼ぶ。
【０００３】
アクセラレータの中には、通信処理を中心に行うものがある。これらの通信処理用アクセラレータ（以下、適宜アクセラレータと記載）では、特定のプロトコル処理をアクセラレータのハードウェア内で実行する。さらに、制御用途を目的とした通信処理用アクセラレータでは、ある一定周期で通信パケットを送信したり、受信したりする機能を有する。
【０００４】
通信処理用アクセラレータは、ＣＰＵと処理を連携するため、ある所定の事象が起きた場合に、ＣＰＵに対して割り込みを通知する機能を有する。割り込みの要因となる事象には、プロトコル処理の完了、パケットの送信完了、パケットの受信完了、異常状態の発生（異常パケットの受信）等がある。
割り込みを通知されたＣＰＵは、通信処理用アクセラレータから必要な情報を取得して、所定の処理を実行する。ＣＰＵが、通信処理用アクセラレータに対して所定の情報を設定することもある。これらの処理には、受信パケットの取得、送信パケットの設定、指令値の設定、通信処理結果の取得等が挙げられる。これらのような処理は、ＯＳにおける割込ハンドラとして実行される。割込ハンドラが特定のアプリケーションを起動する場合もあれば、最低限必要な処理が割込ハンドラ内において処理され、そして、この割込ハンドラが、別の割込ハンドラを遅延起動させる場合もある。
【０００５】
通信処理用アクセラレータを具備した計算機が複数の制御対象を同時に制御する場合の周期は、最も制御周期の短い制御対象の周期か、あるいは、各制御対象の制御周期の最大公約数で周期が決定される。つまり、複数の制御対象を有するシステムにおける通信の周期は短くなり、通信の送受信が高速になる傾向がある。
【０００６】
ここで問題となるのが、通信処理用のアクセラレータを用いて、モーションコントロールやサーボモータ制御といった高速周期での制御パケットを送受信する場合である。ＯＳが動作するＣＰＵの性能に比較して、通信パケットの通信周期が、より高速である場合、ＯＳにおける割込処理が頻発し、ＯＳ上での制御処理以外の処理を実行することができない。
【０００７】
特許文献１には、前回の割り込みが処理されてから、所定の期間が経過したか、あるいは所定数のパケットが送受信された場合にのみ、通信デバイスからホストプロセッサへの、パケットの送受信に応答する割り込みが生成されるネットワークインタフェースにおいて割り込みを示す方法および装置が記載されている。特許文献１に記載の技術によれば、スループットが重視される汎用の通信処理においては、割込ハンドラの発生を抑止し、通信にかかるオーバーヘッドを軽減することができる。
【０００８】
また、特許文献２には、所定周期内で割込処理時間が、所定の処理時間を経過した場合に、割込処理を保留する割込制御方法およびそれを用いたコントローラが記載されている。特許文献２に記載の技術によれば、アプリケーションの実行時間を保証することができる。
【特許文献１】特表２００３−５２４３１２号公報
【特許文献２】特開２００６−１６３７３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１に記載の技術では制御等で発生する高速周期の通信への適用を考慮していない。このため、特許文献１に記載の技術では、時間的制約を有する制御演算にかかわるパケットの割込生成を抑止する場合がある。所定期間あるいは所定数のパケットを送受信後に制御演算を実行した場合には、時間的制約を守ることができずに制御性能が低下する。つまり、特許文献１に記載の技術では、前回の割り込みが発生してから、所定時間もしくは所定数のパケットの送受信が終了するまで、割り込みを抑止するため、処理に時間的制約がある場合、前記した割り込みの抑止期間が終了する前に処理に必要な時間が経過してしまう場合がある。
また、特許文献２に記載の技術では、時間的制約を有する制御演算にかかわるパケット処理が遅延され、制御性能が低下する。つまり、短時間に通信制御を行う必要があるときに、前記した保留が生じてしまうと、この保留によって処理全体が遅延してしまう可能性がある。
【００１０】
このような背景に鑑みて本発明がなされたのであり、本発明は、割り込みを必要とする高速周期の通信において、効率的な割り込みを実現することを目的とする。
【課題を解決するための手段】
【００１１】
前記課題を解決するため、本発明は、外部と送受信する信号を基に、通信処理用アクセラレータからＣＰＵへの割込制御を行う割込制御装置であって、前記割込制御の状態を切り替える条件を記述した切替条件情報を格納している記憶部と、前記信号を送受信する送受信部と、前記送受信した信号と、前記記憶部の切替条件情報とを基に、前記ＣＰＵへの割込制御の状態を切り替える割込制御モード切替部と、を有することを特徴とする。
その他の手段については、明細書中に記載する。
【発明の効果】
【００１２】
本発明によれば、割り込みを必要とする高速周期の通信において、効率的な割り込みを実現することができる。
【発明を実施するための最良の形態】
【００１３】
次に、本発明を実施するための最良の形態（「実施形態」という）について、適宜図面を参照しながら詳細に説明する。なお、本実施形態において、アクセラレータとは、通信処理用アクセラレータを指すものとする。
【００１４】
《第１実施形態》
まず、図１から図８を参照して、本発明に係る第１実施形態を説明する。
【００１５】
（ハードウェア構成）
図１は、第１実施形態に係る制御用計算機のハードウェア構成例を示す図である。
制御用計算機９（情報処理装置）は、それぞれバス７によって接続されているＣＰＵ３、アクセラレータ２、メモリ４、ＬＡＮ（Local Area Network）コントローラ６、メモリ４、不揮発性記憶媒体５等を有してなる。
アクセラレータ２は、図４で後記する制御アプリケーション４２等で設定された周期や通信内容に従い、制御用ネットワーク９２（図２および図３）に対して周期的に通信する。アクセラレータ２は、割込制御部１（割込制御装置）を有している。割込制御部１は、アクセラレータ２において発行された割り込みをＣＰＵ３へ通知するか、あるいはマスクすることによって、割り込みを制御する機能を有する。本実施形態において、アクセラレータ２は、制御パケット（信号、適宜パケットと記載）の送信完了、受信完了等の割り込みを割込制御部１に対して通知する機能も有する。
【００１６】
ＣＰＵ３は、不揮発性記憶媒体５からプログラムをメモリ４に展開して実行する機能を有する。実行されるプログラムとしては、割込ハンドラを含むＯＳやＯＳ上で動作するアプリケーションプログラム等がある。
【００１７】
ＬＡＮコントローラ６は、図２および図３で後記する制御用ネットワーク９２との通信機能を実装した送受信機ＩＣ（Integrated Circuit）である。制御用ネットワーク９２としては、Ｅｔｈｅｒｎｅｔ（登録商標）や、国際規格ＩＥＣ（International Electrotechnical Commission）６１７８４−２で審議、編集される各種産業用Ｅｔｈｅｒｎｅｔ（登録商標）等を用いたＬＡＮが考えられる。
【００１８】
メモリ４は、一時的な記憶領域であり、不揮発性記憶媒体５から転送されたＯＳや、アプリケーションプログラム等が格納される。
不揮発性記憶媒体５は、フラッシュメモリやＨＤ（Hard Disk）等により実現される情報の記憶媒体で、ＣＰＵ３によって実行されるプログラムの保存や、プログラムの実行結果の保存等に利用される。
バス７に用いられる規格は、ＰＣＩ（Peripheral Component Interconnect）バス、ＩＳＡ（Industry Standard Architecture）バス、ＰＣＩ  Ｅｘｐｒｅｓｓバス、システムバス、メモリバス等が考えられる。
ＣＰＵ３、メモリ４、不揮発性記憶媒体５、アクセラレータ２およびＬＡＮコントローラ６の接続形態はさまざまであるが、割り込みを通知する関係が、割込制御部１、ＣＰＵ３、アクセラレータ２の関係と同様であれば、本実施形態の効果が失われるものではない。
【００１９】
図２および図３は、本実施形態に係る制御用計算機を用いて構成する制御システムの例を示す図である。
制御システム９０ａ，９０ｂにおいて、制御用計算機９は、制御用ネットワーク９２を介して制御対象９１と接続し、制御対象９１との間でパケットの送受信を行うことによって制御対象９１を制御する。制御対象９１として、サーボアンプとサーボモータによる構成が考えられる。なお、図２の制御システム９０ａでは、１つの制御対象９１に接続しており、図３の制御システム９０ｂでは、複数の制御対象９１がリングトポロジ型に接続されているが、論理的なリングトポロジやスタートポロジ等のトポロジであっても本実施形態の効果が失われるものではない。
【００２０】
図４は、第１実施形態に係る制御用計算機の詳細な構成を示すブロック図である。なお、図４において、図１と同様の構成要素については、同一の符号を付して説明を省略する。
アクセラレータ２に含まれる割込制御部１は、割込マスク部１０２、割込制御モード切替部１０１、制御情報解析部１０３、タイマ１０４および記憶部１５０を有する。なお、図４において、ＬＡＮコントローラ６（図１）は省略してある。なお、本実施形態および後記する各実施形態における割込制御部１は、ＬＡＮコントローラ６およびＣＰＵ３との情報の送受信を行う図示しない送受信部を有する。なお、この送受信部は、アクセラレータ２の通信機能を用いてもよい。
割込マスク部１０２は、割込制御モード切替部１０１からの指示に従って、アクセラレータ２からＣＰＵ３への割り込みを通知あるいはマスクする機能を有する。ここで、マスクとは、アクセラレータ２からＣＰＵ３への割り込みの通知（適宜、割り込みと記載する）を遮断することである。
【００２１】
割込制御モード切替部１０１は、所定の判断基準にしたがい、割込マスク部１０２にアクセラレータ２からＣＰＵ３への割り込みへの対応を切り換える機能を有する。所定の判断基準とは、図７を参照して後記する割込制御タイミングテーブル１５２（切替条件情報）に記載されている条件である。
制御情報解析部１０３は、後記する制御アプリケーション４２から、制御情報を受け取り、この制御情報を基に、制御アプリケーション４２の実行開始後に、アクセラレータ２からの割り込みをＣＰＵ３に通知する条件を記述した割込制御タイミングテーブル１５２を生成する機能を有する。
タイマ１０４は、計時手段を有し、割込制御部１内の割込制御モード切替部１０１に時間情報を提供する機能を有する。時間情報は、制御アプリケーション４２実行後の経過時間の計時や、各種イベントの発生時刻の記録に用いられる。なお、タイマ１０４は、割込制御部１内に備えられる必要はなく、割込制御部１外部に置かれたタイマ１０４等のデバイスによって代替されてもよい。
【００２２】
記憶部１５０には割込制御モードを切り替える条件が記述されている割込制御タイミングテーブル１５２が格納されている。制御テーブル１５１は、図６を参照して後記し、割込制御タイミングテーブル１５２は、前記したように図７を参照して後記する。
【００２３】
メモリ４には、制御アプリケーション４２や、パケットバッファ４１等が格納されている。
制御アプリケーション４２は、通信制御処理を行うためのアプリケーションである。
パケットバッファ４１は、ＬＡＮコントローラ６経由で制御ネットワーク９２ａ，９２ｂ（図２および図３）に送信されたり、受信されたりする通信パケットの内容、あるいはそれに相当する内容を保持するメモリ４領域である。なお、パケットバッファ４１は、割込制御部１内、あるいはアクセラレータ２内に含まれていてもよい。
【００２４】
不揮発性記憶媒体５は、制御対象９１（図２および図３）に対して制御信号を送るタイミングと、送り先とを記述した制御テーブル１５１が格納している。制御テーブル１５１は、図６を参照して後記する。
【００２５】
（状態遷移モデル）
図５は、本実施形態に係る状態遷移を示す図である。
本実施形態において、アクセラレータ２からＣＰＵ３への割り込みの制御モード（割込制御モード）は、マスクモードと、許可モードとを有する。
許可モードでは、割込制御部１がＣＰＵ３への割り込みを通知するように設定し、マスクモードでは、割込制御部１がＣＰＵ３への割り込みの通知をマスクするように設定する。許可モードと、マスクモードとの間の状態遷移は、図７に示す割込制御タイミングテーブル１５２に従って、割込制御モード切替部１０１が行う。
【００２６】
（制御テーブル）
図６は、本実施形態に係る制御テーブルの例である。
制御テーブル１５１は、制御アプリケーション４２が制御対象９１（図２および図３）に対して制御パケット（以下、パケットと記載）を送信するタイミングや、送信先等を記述した情報である。
図６に示す例では、制御順番を示すＮｏ．と、制御アプリケーション４２を開始してからの経過時間と、送信先の識別子と、パケットに含まれる通信内容とを含んでいる。
通信内容は、制御対象９１（図２および図３）に対する指令値等が含まれており、図６の例では位置指令と速度指令と加速度指令の指令値のうちの一つまたは複数が格納される。例えば、図６のＮｏ．１の指令では、制御アプリケーション４２（図４）の実行開始後、１０００μｓ経過したら、ノード１に向けて、ノード１の位置を１．２ｍとするよう指示する内容が含まれている。
また、Ｎｏ．３は、制御アプリケーション４２の実行開始後、３０００μｓ後にＮｏ．１の処理が完了する予定時刻であることを示している。つまり、Ｎｏ．３は、制御アプリケーション４２の実行開始後、３０００μｓ後にノード１からＮｏ．１の処理が完了した旨の応答パケットを受信することを示している。
【００２７】
（割込制御タイミングテーブル）
図７は、第１実施形態に係る割込制御タイミングテーブルの例を示す図である。なお、図７は、図６に示す制御テーブル１５１を基に生成された割込制御タイミングテーブル１５２の例である。
図７に示すように、割込制御タイミングテーブル１５２は、割込制御モードの切り替えの順番であるＮｏ．や、制御情報解析部１０３（図４）によって計画された割込制御モードの切り替えのタイミングや、そのときの割込制御モードや、割込制御モード切替の条件等が記述されている。
例えば、図７のＮｏ．１では、経過時間２３００μｓ（Second）（速度指令の送信時刻：図６のＮｏ．２）に割込制御モードを許可モードに設定することが示されている。
また、図７のＮｏ．３では、経過時間が２８００μｓの時点で、計測値が目標指令値の９５％に到達していれば、割込制御モードを許可モードにすることが示されている。このように、制御テーブル１５１（図６）に記述されている目標値に対して、所定の閾値まで近づいたら、割込制御モードを切り替えるようにしてもよい。閾値の設定例として、現在の値と、目標値との差分が目標値の所定の割合以内になる場合等がある。
【００２８】
このように、経過時間と切替条件の両方が記載されている場合、両者が満たされている場合に割込制御モードを切り替えてもよいし、どちらか一方が成立した場合に割込制御モードを切り替えてもよい。
また、割込制御モード切替部１０１（図４）は、割込制御タイミングテーブル１５２を参照して、目標値に到達する予定の時刻より、所定の期間が過ぎても目標値に到達しない場合、異常と判断し、ＣＰＵ３へ割り込みを通知するように（すなわち、許可モードに）割込制御モードを切り替えてるよう設定してもよい。
【００２９】
図７のＮｏ．５は、目標値到達予定時刻より、目標値到達予定時刻の５％（６３００μｓ）を経過しても図６のＮｏ．４の目標値（つまり、加速度指令の値αが１．１）に到達しない場合、割込制御モードを許可モードに切り替えることを示している。つまり、現在の加速度と、加速度の目標値（α＝１．１）との差分が目標値に到達後、あるいは到達後に所定の時間が経過すると、マスクモードとなり、アクセラレータ２からＣＰＵ３への割り込みはマスクされる。
また、割込制御モード切替部１０１は、この割り込みが、システムが異常な状態なために発生したことを、レジスタ等の手段を用いて、ＣＰＵ３によって実行されている制御アプリケーション４２へと通知してもよい。このような割り込みを受信した制御アプリケーション４２は、制御対象９１に対して停止指令を送信したり、上位サーバへの異常通知、制御用計算機９（図１および図４）に接続されたモニタあるいは、その他の外部表示装置で異常発生を表示させたりする。
なお、割込制御タイミングテーブル１５２は、不揮発性記憶媒体５から送信された制御テーブル１５１の情報を加工せずに、そのまま用いても構わない。
【００３０】
（フローチャート）
次に、図１から図７を参照しつつ、図８に沿って第１実施形態に係る割込制御処理の流れを説明する。
図８は、第１実施形態に係る割込制御処理の流れを示すフローチャートである。
まず、ＣＰＵ３が実行するＯＳ上の制御アプリケーション４２は、実行前に制御テーブル１５１の情報である制御情報を所定のフォーマットに従って、割込制御部１に送信する（Ｓ１０１）。
次に、制御情報解析部１０３が、受信した制御情報の内容を解析し、解析内容に応じて割込制御タイミングテーブル１５２を生成し（Ｓ１０２）、制御アプリケーション４２の開始後、どのタイミングでアクセラレータ２からの割り込みを制御すべきかを計画する。
【００３１】
前記したように、割込制御タイミングテーブル１５２における割込制御モードの切替タイミングの決定には、送信された制御テーブル１５１を加工せずに、そのまま用いても構わない。あるいは、制御情報解析部１０３が、制御テーブル１５１に記されている目標値に対して、所定の閾値まで近づいたら、許可モードに切り替えるように設定してもよい。このような閾値の設定例として、受信したパケットに含まれる現在の値と、目標値との差分が目標値の所定の割合以内になる場合等が考えられる。また、目標値に到達する予定の時刻より、所定の期間が過ぎても、目標値に到達しない場合は、異常と判断し、ＣＰＵ３へ割り込みを通知するように割込制御モードを切り替えるように設定する。つまり、許可モードとなるよう設定する。また、割込制御部１は、この割り込みが異常であることを、レジスタ等の手段を用いて、制御アプリケーション４２へと通知できるように設定してもよい。ＣＰＵ３の制御アプリケーション４２が、この割り込みを受信すると、制御対象９１に対して停止指令を送信することや、上位サーバへの通知、制御用計算機９に接続されたモニタあるいは、その他の外部表示装置で異常発生を表示させること等が考えられる。
これらの計画された割込制御切替条件は、制御情報解析部１０３によって割込制御タイミングテーブル１５２に記録される（Ｓ１０３）。
ステップＳ１０３における割込制御タイミングテーブル１５２への記録が終了すると、制御情報解析部１０３は、制御アプリケーション４２に割込制御タイミングテーブル１５２生成の完了を通知する（Ｓ１０４）。通知手段としては、割り込みや、バス７上のメッセージの送信等がある。
【００３２】
割込制御タイミングテーブル１５２生成完了の通知を受信した制御アプリケーション４２は、制御対象９１に対し、制御テーブル１５１に従ってパケットの送受信を開始して、制御対象９１の制御を開始する（Ｓ１０５）。そして、制御アプリケーション４２は、割込制御部１に対して、制御対象９１に対する制御を開始したことを通知し、アクセラレータ２に対してパケットの通信処理を指示する。
【００３３】
アクセラレータ２は、制御アプリケーション４２の実行期間の中で、必要とされる最も短い通信周期で動作し続ける。同時に、アクセラレータ２は、この通信周期で割込制御部１に対する割り込みを発生する。制御情報解析部１０３は、この通信周期でアクセラレータ２から割り込みを通知されながら、割込制御タイミングテーブル１５２を参照し、アクセラレータ２が受信したパケットの通信内容が割込制御モードのモード切替条件にあてはまるか否かを判定し（Ｓ１０６）、判定結果を割込制御モード切替部１０１へ通知する。
ステップＳ１０６の結果、モード切替条件にあてはまらない場合（Ｓ１０６→Ｎｏ）、割込制御部１は、ステップＳ１０６へ処理を戻す。
ステップＳ１０６の結果、モード切替条件にあてはまる場合（Ｓ１０６→Ｙｅｓ）、割込制御モード切替部１０１は、割込制御タイミングテーブル１５２に従って、該当するモードに割込制御モードを切り替える（Ｓ１０７）。割込マスク部１０２は、切り替えられた割込制御モードに従って、アクセラレータ２からＣＰＵ３への割り込みを制御する。
なお、該当する割込制御モードが、これまでのモードと同じであれば、割込制御モード切替部１０１は、ステップＳ１０７で割込制御モードの切り替えを指示しなくてもよいことは当然である。
【００３４】
そして、割込制御部１は、制御アプリケーション４２が終了したか否かを判定する（Ｓ１０８）。
ステップＳ１０８の結果、制御アプリケーション４２が終了していない場合（Ｓ１０８→Ｎｏ）、割込制御部１は、ステップＳ１０６へ処理を戻す。
ステップＳ１０８の結果、制御アプリケーション４２が終了している場合（Ｓ１０８→Ｙｅｓ）、割込制御部１は、処理を終了する。
【００３５】
なお、ステップＳ１０８における制御アプリケーション４２終了の判定は、割込制御部１が、制御アプリケーション４２から終了通知を受信したか否かを判定することによって行われてもいい。
【００３６】
また、ステップＳ１０８の判定は、割込制御部１が、割込制御タイミングテーブル１５２の最後のレコードが終了したか否かによって、ステップＳ１０８の判定を行ってもよい。このとき、割込制御部１が、制御アプリケーション４２に対して割り込み等を用いて処理終了の通知をしてもよい。このように、割込制御部１が、割込制御タイミングテーブル１５２の最後のタイミング（レコード）であることを通知することによって、制御アプリケーション４２は、自身の制御実行期間と、割込制御部１の割込制御タイミング表１１２の実行期間との間にずれがないか否かを確認することができる。例えば、何らかの異常により、制御アプリケーション４２が実行を継続しているにも関わらず、割込制御タイミングテーブル１５２の最後のレコードに記載してある通信内容が制御アプリケーション４２に通知された場合、制御アプリケーション４２は再度割込制御タイミング表を生成するよう、制御情報を割込制御部１に送り、制御情報解析部１０３が、送られた制御情報を基にして再度割込制御タイミングテーブル１５２を生成する等の対応をとることができる。
【００３７】
もし、制御テーブル１５１から取得した情報量が多く、割込制御タイミングテーブル１５２の容量よりも多い場合、ステップＳ１０１において、制御情報解析部１０３は、割込制御タイミングテーブル１５２で蓄積可能な情報だけを制御アプリケーション４２から取得し、格納しておく。この時、制御情報解析部１０３は、割込制御タイミングテーブル１５２の一つ分のエントリ（レコード）を空けておく。そして、制御アプリケーション４２実行後、制御情報解析部１０３は、事前に割込制御タイミングテーブル１５２で蓄積された最後のレコードから、制御情報解析部１０３による計画に必要な時間だけ早いタイミングのエントリを割込制御タイミングテーブル１５２に記載する。つまり、制御情報解析部１０３は、割込制御タイミングテーブル１５２をトコロテン式に更新する。また、割込制御部１は、割込制御タイミングテーブル１５２の更新をＣＰＵ３（制御アプリケーション４２）に通知する。この提示方法としては、所定のレジスタの所定のパラメータが割込制御タイミングテーブル１５２の更新が必要であることを示すように定義し、割込制御部１からの割り込みを受けた（通知された）ＣＰＵ３（制御アプリケーション４２）が、このレジスタを調べることによって、割込制御タイミングテーブル１５２の更新が必要か否かを判定する方法等がある。割込制御タイミング表１１２の更新が必要であると判定したＣＰＵ３（制御アプリケーション４２）は、制御テーブル１５１の続きを割込制御部１に対して送信する。
【００３８】
（第１実施形態の効果）
第１実施形態によれば、アクセラレータ２から高速周期でパケットを送受信しながら、割込制御部１は、パケットの内容によって、ＣＰＵ３への不要な割り込みの通知をマスクすることができる。すなわち、割込制御部１は、制御アプリケーション４２上で必要なタイミングでのみ、ＣＰＵ３（ＯＳ）への割り込みを通知することができる。これにより、ＣＰＵ３が実行しているＯＳは、不要な割込処理を実行することがないので、他のアプリケーションの実行に専念することができる。他のアプリケーションの実行例として、制御対象９１の監視や診断、また運用情報の上位の管理サーバへの通信等が挙げられる。
【００３９】
《第２実施形態》
次に、図９から図１５を参照して、本発明に係る第２実施形態について説明する。第１実施形態に係る割込制御（図１）が、予め設定されたタイミング（割込制御タイミングテーブ）に従って割込制御モードを切り替えていたのに対し、第２実施形態では、割込制御部１ａが、過去のパケットの内容と比較した上で、割込制御モードを切り替えることを特徴としている。
【００４０】
（システム構成）
図９は、第２実施形態に係る制御用計算機の構成例を示す図である。図９において、図４と同様の構成要素に対しては、同一の符号を付して説明を省略する。
制御用計算機９ａにおける割込制御部１ａは、割込制御モード切替部１０１ａと、割込マスク部１０２と、受信内容解析部１０６と、受信内容履歴記録部１０７と、パケットフィルタ部１０５と、タイマ１０４とを有してなる。
パケットフィルタ部１０５（送受信部）は、受信したパケットから解析および内容を記録する箇所を抽出する機能を有する。パケットにおける抽出箇所の指定方法は、図１０から図１２を参照して後記する。
受信内容履歴記録部１０７は、パケットフィルタ部１０５が抽出したパケットの受信内容を時系列で、記憶部１５０ａの受信内容履歴１５４に保存する。受信内容履歴記録部１０７で記録可能な受信情報の数をこえて、パケットが受信された場合、最も古いパケットの情報から順に削除し、新しいパケットの情報を追加していくことが考えられる。その場合、受信内容履歴１５４のデータ構造として、Ｆｉｒｓｔ−ｉｎ  Ｆｉｒｓｔ−ｏｕｔ、キュー、リングバッファ等が考えられる。
【００４１】
受信内容解析部１０６は、パケットフィルタ部１０５が抽出したパケットの受信内容および受信内容履歴１５４に記録された時系列の情報を基に、後記する物性値の差分値や、微分値等の算出等、パケットの受信内容を解析する機能を有する。また、図示しない入力部を介して入力された情報を基に、各種設定を行う機能も有している。
割込制御モード切替部１０１ａは、受信内容解析部１０６の出力に従って、割込マスク部１０２に、アクセラレータ２ａからＣＰＵ３（制御アプリケーション４２）への割り込みの対応を切り換える機能を有する。
【００４２】
また、記憶部１５０ａには、割込制御モード切替基準テーブル１５３（切替条件情報）および受信内容履歴１５４が格納されている。
割込制御モード切替基準テーブル１５３は、割込制御モード切替部１０１ａが割込制御モードを切り替える判定基準と、どのように割込制御モードを変更するかを記録したテーブルである。割込制御モード切替の判定基準（切替基準）は、受信したパケットの内容の物性値から前回の受信内容との差分が所定の値以上である場合や、過去所定の回数で評価した変化の度合いが予め設定してある所定の値以上であれば、割り込みをＣＰＵ３（制御アプリケーション４２）に通知する（許可モード）こと等が考えられる。
なお、図９において、不揮発性記憶媒体５に格納されている制御テーブルは省略してある。
【００４３】
受信内容履歴１５４は、受信したパケットの内容を時系列に格納している情報である。本実施形態において、受信内容履歴１５４は、記憶部１５０ａに格納されているが、不揮発性記憶媒体５に格納されてもよい。
【００４４】
（パケットの抽出方法）
次に、図１０から図１２を参照して、パケットから抽出箇所を指定する方法を説明する。
図１０は、パケットの各ビットに対してマスク列による論理積で抽出箇所を指定する方法を示す模式図であり、（ａ）は、制御対象から受信したパケットであり、（ｂ）は、パケット中のマスク部を示す図であり、（ｃ）は、パケットからマスク部を除いた抽出箇所を示す図である。
パケットフィルタ部１０５は、図１０（ａ）に示すような受信パケットを取得する。このパケットには、図１０（ｂ）に示すようなマスク部が設定されている。ここで、マスク部は、パケットの解析には関係のない情報が格納されている箇所である。。パケットフィルタ部１０５は、このマスク部を除外することによって、図１０（ｃ）に示すような抽出箇所を取得する。
【００４５】
図１１は、プロトコルにおける所定の項目におけるビット列を指定することによって、抽出箇所を指定する方法を示す表である。
パケットフィルタ部１０５は、予め設定されている図１１の指定例に示すような抽出規定に従って、目的のパケットやパケット内の位置を選択取得する。図１１に示す方法の具体例として、ＵＮＩＸ（登録商標）系ＯＳの一般的なネットワーク調査ツールのｔｃｐｄｕｍｐにおけるフィルタ条件の設定方法を使用することが考えられる。なお、指定例の意味は、内容のフィールドで説明されている通りである。
【００４６】
図１２は、複数のテレグラムで構成されているパケットの例を示す図である。
図１２に示すように、パケットが複数のテレグラムで構成されている場合、パケットフィルタ部１０５は、特定のテレグラムを指定することによって、パケット中の抽出箇所（テレグラム）を取得する。さらに、パケットフィルタ部１０５は、取得したテレグラムに対し図１０や図１１に示した方法を適用することによって、さらにテレグラムから抽出箇所を絞り込んでもよい。図１２におけるテレグラムの指定方法には、テレグラムでのＩＤ番号、命令の種類等の他のテレグラムと識別可能な識別子を用いる方法等が考えられる。
【００４７】
（受信内容履歴）
図１３は、第２実施形態に係る受信内容履歴の例を示す図である。
図１３に示す例では、受信時刻１００μｓで受信した値（物性値）は「０」であり、２００μｓで受信した値は「８」である。以下、同様に、受信時刻３００μｓでは「１４」であり、４００μｓでは「１８」であり、５００μｓでは「２０」である。物性値の例として、制御対象９１における位置情報、温度、照度、湿度、速度、加速度、電流値、電圧値、電力値、気圧、音量等があげられる。
このように、受信内容履歴１５４には、受信したパケットの内容が時系列に格納されている。
なお、図１３において、不揮発性記憶媒体５に格納されている制御テーブルは省略してある。
【００４８】
（割込制御モード切替基準テーブル）
図１４は、第２実施形態に係る割込制御モード切替規準テーブルの例を示す図である。
割込制御モード切替規準テーブル１５３は、判定基準と、モードとからなっている。モードは、割込制御モードのことである。
図１４の例では、判定基準として「差分値が８以上」であれば、許可モードにし、「微分値が−２以下」であれば、マスクモードにすることを示している。また、「値（物性値）１０が５回以上連続」で現れた場合、モード（割込制御モード）を反転させることを意味している。ここで、差分値とは、図１３における物性値の差である。例えば、図１３における受信時刻１００μｓと２００μｓとの間の差分値は８である。同様に、受信時刻２００μｓと３００μｓとの間の差分値は６であり、３００μｓと４００μｓとの間の差分値は４であり、４００μｓと５００μｓとの間の差分値は２である。
【００４９】
また、微分値とは、差分値同士からさらに差分をとった値である。例えば、１００μｓから３００μｓの間の微分値は６−８＝−２／１００μｓである。同様に、２００μｓから４００μｓの間の微分値は４−６＝−２／１００μｓである。
【００５０】
（フローチャート）
次に、図９、図１３および図１４を参照しつつ、図１５に沿って第２実施形態に係る割込制御処理の流れを説明する。
図１５は、第２実施形態に係る割込制御処理の流れを示すフローチャートである。
はじめに、受信内容解析部１０６は、割込制御モード切替の判定に用いる差分値の閾値や、微分値の閾値等の判定基準と、パケットのどの部分を解析、記録するかを示すパケットの解析対象箇所を設定する（Ｓ２０１）。受信内容解析部１０６は、設定した判定基準と、この判定基準を満たしたときの割込制御モードとを対の情報として割込制御モード切替規準テーブル１５３に書き込む。また、受信内容解析部１０６は、設定したパケットの解析対象箇所をパケットフィルタ部１０５に設定する。なお、ステップＳ２０１の設定内容は、図示しない入力部を介してユーザが各設定内容を入力することによって行ってもよいし、ＣＰＵ３上で動作するプログラムから、バス７を介して、メッセージを送信して設定してもよい。
【００５１】
ステップＳ２０１の設定が終了すると、受信内容解析部１０６は、判定基準およびパケットの解析対象箇所の設定完了を制御アプリケーション４２へ通知し、制御アプリケーション４２が、制御テーブル１５１（図４）に従って制御対象９１の制御を開始する（Ｓ２０２）。
そして、制御アプリケーション４２による制御の実行開始後、アクセラレータ２ａがパケットを受信したか否かを判定する（Ｓ２０３）。
ステップＳ２０３の結果、パケットを受信していない場合（Ｓ２０３→Ｎｏ）、アクセラレータ２ａはステップＳ２０３に処理を戻す。
【００５２】
ステップＳ２０３の結果、パケットを受信している場合（Ｓ２０３→Ｙｅｓ）、アクセラレータ２ａは、パケットバッファ４１に受信したパケットを格納し、割込制御部１ａに対してパケット受信を示す割り込みを通知する（Ｓ２０４）。
割り込みを受けた割込制御部１ａのパケットフィルタ部１０５は、パケットバッファ４１に格納されている受信パケット（パケット）から、ステップＳ２０１で設定された解析対象箇所に従って指定箇所を抽出する（Ｓ２０５）。
抽出された箇所に記述されている内容（物性値）は、受信内容履歴記録部１０７によって受信内容履歴１５４に記録される（Ｓ２０６）。
【００５３】
次に、受信内容解析部１０６は、受信内容履歴１５４を参照してパケットの抽出箇所を解析し（Ｓ２０７）、解析結果を割込制御モード切替部１０１ａへ通知する。具体的には、受信内容解析部１０６が、受信内容履歴１５４を参照して物性値の差分値や、微分値等を算出したり、連続して生じている特定の値をカウントしたりする。
そして、割込制御モード切替部１０１ａが、受信内容解析部１０６が行った解析結果と、割込制御モード切替規準テーブル１５３とを比較して、解析結果が割込制御モード切替規準テーブル１５３の判定基準にあてはまるか否かを判定する（Ｓ２０８）。例えば、図１４の割込制御モード切替規準テーブル１５３を例として説明すると、物性値の差分値が８以上であるか、微分値が−２以下であるか、物性値１０が５回以上連続で生じているか、等を判定する。
【００５４】
ステップＳ２０８の結果、判定基準にあてはまらない場合（Ｓ２０８→Ｎｏ）、割込制御部１ａは、ステップＳ２１０へ処理を進める。
ステップＳ２０８の結果、判定基準にあてはまる場合（Ｓ２０８→Ｙｅｓ）、割込制御モード切替部１０１ａは、割込制御モード切替規準テーブル１５３に従って、割込マスク部１０２の割込制御モードを切り替える（Ｓ２０９）。
そして、割込制御部１ａは、制御アプリケーション４２が終了したか否かを判定する（Ｓ２１０）。
ステップＳ２１０の結果、制御アプリケーション４２が終了していない場合（Ｓ２１０→Ｎｏ）、アクセラレータ２ａは、ステップＳ２０３へ処理を戻す。
ステップＳ２１０の結果、制御アプリケーション４２が終了している場合（Ｓ２１０→Ｙｅｓ）、割込制御部１ａは、処理を終了する。ステップＳ２１０は、前記した実施形態と同様であるため、説明を省略する。
【００５５】
（第２実施形態の効果）
第２実施形態によれば、アクセラレータ２ａから高速周期でパケットを送受信しながら、制御対象９１の状態によってＣＰＵ３への割り込みを制御することができる。例えば、あるセンサで読み取った値が前回のセンサ値（物性値）と比較して、変化が大きくなく、制御対象９１からの指令値を変更する必要がない場合、割込制御部１ａは、ＣＰＵ３への割り込みをマスクする。一方、変化が所定の値よりも大きい場合は、割込制御部１ａは、ＣＰＵ３（制御アプリケーション４２）へと割り込みを許可し、ＣＰＵ３による新たな指令値を設定可能とする。
このように制御対象９１の状態に応じて適切に割り込みをＣＰＵ３へ通知することで、ＣＰＵ３上で動作するＯＳは、不要な割込処理を実行することなく、他のアプリケーションの実行に専念することができる。また、ＣＰＵ３側から割込制御部１ａへ事前に制御情報を設定する必要がなく、動的に割り込みを制御するため、制御用計算機９の利用者は、少ない手間で効果を得ることができる。
【００５６】
《第３実施形態》
次に、図１６および図１７を参照して、本発明に係る第３実施形態を説明する。第３実施形態では、パケット内容や、パケットの受信状況等に関して異常を検知したときに、ＣＰＵ３への割り込みを許可することを特徴とする。
【００５７】
（システム構成）
図１６は、第３実施形態に係る制御用計算機の構成例を示す図である。図１６において、図９と同様の構成要素に対しては、同一の符号を付して説明を省略する。
割込制御部１ｂにおける異常判定部１０８は、パケット内容、あるいはパケットの受信にかかわる事象に関して異常を検知した場合に、割込制御モード切替部１０１ｂに通知し、割込制御モード切替部１０１ｂは割込マスク部１０２の割込制御モードを許可モードに設定させ、アクセラレータ２ｂからＣＰＵ３への割り込みを通知させる。
なお、図１６において、不揮発性記憶媒体５に格納されている制御テーブルは省略してある。
【００５８】
異常判定部１０８における異常か否かの判定には、受信したパケットの指定の内容（物性値）が、予め設定されている所定の値であることや、所定の値よりも大きい、あるいは小さい場合等がある。パケットの対象箇所を指定する方法は図１０から図１２で説明した方法等がある。異常を判定する別の方法として、受信内容履歴記録部１０７で保存した過去の受信内容から所定の傾向が見られる場合に異常と判定する。つまり、過去のパケットにおける物性値が、一定の周期で変動しているのに対し、異なる周期の変動に変化したり、非周期の変動に変化した場合に、異常判定部１０８は異常と判定する。
【００５９】
異常判定部１０８における異常か否かの判定には、パケット受信そのものに関する判定基準も適用してよい。一例として、パケットが所定のプロトコルフォーマットにしたがっていない場合や、仕様で決められたパケットサイズの最大値よりも大きい場合、あるいは最小値よりも小さい場合等が挙げられる。また、所定の周期で通信している場合、この周期間隔よりも所定の長い時間が経過してもパケットを受信していない場合や、所定の時間よりも短い周期でパケットを受信した場合に異常と判定してもよい。
【００６０】
記憶部１５０ｂにおける過去履歴情報１５５に格納される情報は、図１３における受信内容履歴１５４と同様でもよいし、受信内容履歴１５４の内容に加えてパケットのサイズや、プロトコルフォーマットの値等を格納してもよい。
また、記憶部１５０ｂにおける異常情報リスト１５６（切替条件情報）は、前記したような異常と判定される基準が、リスト形式で列挙されている。例えば、パケットの許容できる物性値の最大値や、最小値や、許容できるパケットの最大サイズや、最小サイズや、許容できる受信周期や、プロトコルフォーマット等がリスト形式で列挙されている。
【００６１】
（フローチャート）
次に、図１６を参照しつつ、図１７に沿って第３実施形態に係る割込制御処理の流れを説明する。
図１７は、第３実施形態に係る割込制御処理の流れを示すフローチャートである。なお、図１７において、図１５と同様の処理については、同一のステップ番号を付して説明を省略する。
まず、受信内容解析部１０６は、割込制御モード切替の判定に用いる異常値の判定基準と、パケットのどの部分を解析、記録するかを示すパケットの解析対象箇所を設定する（Ｓ３０１）。受信内容解析部１０６は、設定した判定基準をリスト形式で異常情報リスト１５６に書き込む。また、受信内容解析部１０６は、設定したパケットの解析対象箇所をパケットフィルタ部１０５に設定する。なお、ステップＳ２０１の設定内容は、図示しない入力部を介してユーザが各設定内容を入力することによって行ってもよいし、ＣＰＵ３上で動作するプログラムから、バス７を介して、メッセージを送信して設定してもよい。
【００６２】
次に、ステップＳ２０５の処理後、抽出された箇所に記述されている内容（物性値）は、受信内容履歴記録部１０７によって過去履歴情報１５５に記録される（Ｓ３０２）。ここで、受信内容履歴記録部１０７は、物性値の他にもパケットのパケットサイズや、プロトコルフォーマット等を過去履歴情報１５５に記録してもよい。
そして、受信内容解析部１０６は、過去履歴情報１５５を参照してパケットの抽出箇所を解析し（Ｓ３０３）、異常判定部１０８が、受信内容解析部１０６が行った解析結果を基に受信したパケットの内容が異常値であるか否かを判定し（Ｓ３０４）、判定結果を割込制御モード切替部１０１ｂへ通知する。具体的には、受信内容解析部１０６が、過去履歴情報１５５を参照して物性値等が、異常情報リスト１５６に格納されている判定基準を超えているか否か等を解析し、この解析結果を基に、異常判定部１０８が、ステップＳ３０４の判定を行う。
【００６３】
ステップＳ３０４の結果、異常値である場合（Ｓ３０４→Ｙｅｓ）、割込制御モード切替部１０１ｂは、割込マスク部１０２に、割込制御モードを許可モードに切り替えるよう指示し、指示された割込マスク部１０２は、割込制御モードを許可モードに切り替える（Ｓ３０５）。これは、パケットが異常を示しているときは、ＣＰＵ３（制御アプリケーション４２）が対応処理を行う必要があるため、パケットが異常を示している旨をＣＰＵ３に通知する必要があるためである。
ステップＳ３０４の結果、異常値ではない場合（Ｓ３０４→Ｎｏ）、ＣＰＵ３に対して割込を通知する必要はないので、割込制御モード切替部１０１ｂは、割込マスク部１０２に、割込制御モードをマスクモードに切り替えるよう指示し、指示された割込マスク部１０２は、割込制御モードをマスクモードに切り替える（Ｓ３０６）。
ステップＳ３０５およびステップＳ３０６の処理の後、割込制御部１ｂは、図１５で前記したステップＳ２１０の処理を行う。
【００６４】
（第３実施形態の効果）
第３実施形態によれば、アクセラレータ２ｂから高速周期でパケットを送信しながら、パケット内容（物性値）および制御対象９１のいずれかが異常である内容を受信した場合や通信に関する異常を検知した場合に、割込制御部１ｂは、アクセラレータ２ｂからＣＰＵ３への割り込みを許可する。割り込みが許可されることによって、ＣＰＵ３が実行している制御アプリケーション４２は、該異常に対して適切に異常対応処理をすることができる。異常対応処理の例として、制御対象９１に対して、停止指令を送信することや、上位サーバへの通知、制御用計算機９ｂに接続されたモニタあるいは、その他の外部表示装置で異常発生を表示させる等が考えられる。
【００６５】
《第４実施形態》
次に、図１８および図１９を参照して、本発明に係る第４実施形態の説明を行う。第４実施形態では、パケットが複数のテレグラムに分割されて送信されるとき、すべてのテレグラムの送信が完了するまで、割込制御モードをマスクモードにしておき、すべてのテレグラムの送信が完了すると、割込制御モードを許可モードにすることを特徴とする。
【００６６】
（システム構成）
図１８は、第４実施形態に係る制御用計算機の構成例を示す図である。図１８において、図４と同様の構成要素に対しては、同一の符号を付して説明を省略する。
割込制御部１ｃのテレグラム分割解析部１０９は、ＣＰＵ３が実行するＯＳから送信されるパケットを複数のテレグラムに分割し、その分割数を求め、求めたテレグラム分割数１５７を記憶部１５０ｃに格納する機能を有する。
割込制御モード切替部１０１ｃは、送信したテレグラムをカウントし、記憶部１５０ｃのテレグラム分割数１５７と比較することですべてのテレグラムを送信したか否かを判定し、判定に応じて割込マスク部１０２に割込制御モードを切り替えさせる機能を有する。
【００６７】
記憶部１５０ｃには、テレグラム分割数１５７（切替条件情報）が、例えば制御パケットのＩＤ等と対の情報として格納されている。
なお、図１８において、不揮発性記憶媒体５に格納されている制御テーブルは省略してある。
【００６８】
制御用ネットワーク９２（図２および図３）に送信されるパケットが複数のテレグラムで構成されるプロトコルにおいて、制御用計算機９ｃからＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）等の時間的制約のない非リアルタイムパケットを送信したい場合がある。これらの非リアルタイムパケットは、制御対象９１（図２および図３）の診断、監視、運用状況の確認等を目的とする。このような診断、監視、運用状況を目的とするパケットは、パケットサイズが大きくなる傾向がある。このような場合、送信する非リアルタイムパケットをテレグラム内に内包可能なサイズに分割し、複数回の周期通信にわけて、特定の送信相手に送信することが行われる。
このとき、テレグラム分割解析部１０９は、そのテレグラムの分割数を求め、それぞれのテレグラムを送信中において、割込制御モード切替部１０１ｃは、アクセラレータ２ｃからＣＰＵ３への割り込みをマスクさせる。
【００６９】
（フローチャート）
次に、図１８を参照しつつ、図１９に沿って第４実施形態に係る割込制御処理の流れを説明する。
図１９は、第４実施形態に係る割込制御処理の流れを示すフローチャートである。なお、図１９において、図１５と同様の処理については、同一のステップ番号を付して説明を省略する。
ステップＳ２０２の後、テレグラム分割解析部１０９は、テレグラム分割数１５７を求め、求めたテレグラム分割数１５７を記憶部１５０ｃに格納することでテレグラム分割数１５７を設定する（Ｓ４０１）。
その後、アクセラレータ２ｃは、テレグラムを送信するか否かを判定する（Ｓ４０２）。
ステップＳ４０２の結果、テレグラムを送信しない場合（Ｓ４０２→Ｎｏ）、アクセラレータ２ｃは、ステップＳ４０２へ処理を戻す。
ステップＳ４０２の結果、テレグラムを送信する場合（Ｓ４０２→Ｙｅｓ）、アクセラレータ２ｃは、テレグラム送信を示す割込を割込制御部１ｃに通知する（Ｓ４０３）。
次に、テレグラム分割解析部１０９は、送信するパケットにおける所定の箇所を解析し（Ｓ４０３）、このパケットが非リアルタイムパケットであるか否かを判定し（Ｓ４０４）、判定結果を割込制御モード切替部１０１ｃへ通知する。。
ステップＳ４０４の結果、非リアルタイムパケットでない場合（Ｓ４０４→Ｎｏ）、割込制御部１ｃは、ステップＳ２１０へ処理を進める。
【００７０】
ステップＳ４０４の結果、非リアルタイムパケットである場合（Ｓ４０４→Ｙｅｓ）、テレグラム分割解析部１０９は、送信したテレグラム数をカウントしており、このカウントした送信テレグラム数と、記憶部１５０ｃのテレグラム分割数１５７を比較することによって、送信したテレグラムが最後のテレグラムであるか否かを判定し（Ｓ４０５）、判定結果を割込制御モード切替部１０１ｃへ通知する。
ステップＳ４０５における判定の結果、最後のテレグラムではない場合（Ｓ４０５→Ｎｏ）、割込制御モード切替部１０１ｃは、マスクモードに切り替えるよう割込マスク部１０２に指示し、指示された割込マスク部１０２は割込制御モードをマスクモードに切り替える（Ｓ４０６）。このとき、既に割込制御モードが、既にマスクモードである場合、割込制御モード切替部１０１ｃは、何も実行しない。
ステップＳ４０５における判定の結果、最後のテレグラムである場合（Ｓ４０５→Ｙｅｓ）、送信先からの着信応答等をＣＰＵ３が受け付けられるように、割込制御モード切替部１０１ｃは、許可モードに切り替えるよう割込マスク部１０２に指示し、指示された割込マスク部１０２は割込制御モードを許可モードに切り替える（Ｓ４０６）。このとき、割込制御モードが、既に許可モードである場合、割込制御モード切替部１０１ｃは、何も実行しない。ステップＳ４０６の後、割込制御部１ｃまたはＣＰＵ３が送信先からのパケットの着信応答の受信を検知したら、割込制御モード切替部１０１ｃは、割込マスク部１０２にマスクモードに切り替えさせてもよい。
【００７１】
ステップＳ４０６およびステップＳ４０７の後、割込制御部１ｃは、ステップＳ２１０の処理を行う。
【００７２】
（第４実施形態の効果）
第４実施形態によれば、制御対象９１（図２および図３）の診断、監視、運用状況の確認等を目的とする非リアルタイムパケットを送信するとき、以下のような処理が可能となる。つまり、割込制御部１ｃは、アクセラレータ２ｃから高速周期でパケットを送受信しながら、非リアルタイムパケットをいくつかのテレグラムに分割し、この非リアルタイムパケット全体（すべてのテレグラム）の送受信が終わるまでは、アクセラレータ２ｃからＣＰＵ３への割り込みの通知をマスクすることができる。したがって、非リアルタイムパケットをパケット内の複数のテレグラムに分割して送受信している間、割込制御部１ｃは、ＣＰＵ３に対して不要な割り込みを通知しないので、ＣＰＵ３が実行しているＯＳは、他のアプリケーションの実行に専念することができる。
【００７３】
《第５実施形態》
【００７４】
（システム構成）
図２０は、第５実施形態に係る制御用計算機の構成例を示す図である。図２０において、前記した実施形態と同様の構成要素に対しては、同一の符号を付して説明を省略する。
制御用計算機９ｄのアクセラレータ２ｄの割込制御部１ｄにおける割込制御判定選択部１１０は、受信内容解析部１０６による図１５のステップＳ２０８、異常判定部１０８による図１７のステップＳ３０４、およびテレグラム分割解析部１０９による図１９のステップＳ４０５の各判定結果の論理和をとって、その結果を割込制御モード切替部１０１ｄへ通知する機能を有する。また、割込制御判定選択部１１０は、これら３つの判定結果に加えて、図２０に図示していない制御情報解析部による図８のステップＳ１０６の判定結果の論理をとって、の結果を割込制御モード切替部１０１ｄへ通知する機能を有してもよい。
記憶部１５０ｄは、前記した実施形態における記憶部１５０，１５０ａ〜１５０ｃの各情報が格納されている。
【００７５】
図２０に示す制御用計算機９ｄが行う処理は、前記した実施形態の処理を、それぞれ順に行うため図および詳細な説明を省略する。
例えば、割込制御部１ｄは、図１５のステップＳ２０１〜ステップＳ２０８を行った後、図１７のステップＳ３０４を行い、そして図１９のステップＳ４０１〜ステップＳ４０５の処理を行う。そして、割込制御判定選択部１１０は、ステップＳ１０６、ステップＳ２０８、ステップＳ３０４、ステップＳ４０４およびステップＳ４０５の判定結果の論理和をとり、その結果を割込制御モード切替部１０１ｄへ通知する。
また、割込制御部１ｄは、図１５のステップＳ２０５〜ステップＳ２０９、図１７のステップＳ３０４〜Ｓ３０６、図１９のステップＳ４０１〜ステップＳ４０７の処理を直列的に行ってもよい。
また、割込制御部１ｄは、図１５のステップＳ２０１〜ステップＳ２０９、図１７のステップＳ２０４〜Ｓ３０６、図１９のステップＳ２０２〜ステップＳ４０７の処理を並列的に行ってもよい。並列に処理する場合は、ＦＰＧＡ（Field Programmable Gate Array）や、ＣＰＬＤ（Complex Programmable Logic Device）や、ＡＳＩＣ（Application Specific Integrated Circuit）等を用いて、それぞれの独立した処理ステップをハードウェア内の機能モジュールとして並列に処理し、それぞれの判定結果の論理和をとる実装が例示される。
【００７６】
さらに、例えば、割込制御部１ｄは、図８におけるステップＳ１０１〜ステップＳ１０６を行った後、図１５のステップＳ２０５〜ステップＳ２０８を行い、そして図１７のステップＳ３０４を行った後、図１９のステップＳ４０１〜ステップＳ４０５の処理を行う。そして、割込制御判定選択部１１０は、ステップＳ１０６、ステップＳ２０８、ステップＳ３０４、ステップＳ４０４およびステップＳ４０５の判定結果の論理和をとり、その結果を割込制御モード切替部１０１ｄへ通知してもよい。
また、割込制御部１ｄは、図８におけるステップＳ１０１〜ステップＳ１０７、図１５のステップＳ２０５〜ステップＳ２０９、図１７のステップＳ３０４〜Ｓ３０６、図１９のステップＳ４０１〜ステップＳ４０７の処理を直列的に行ってもよい。
また、割込制御部１ｄは、図８におけるステップＳ１０１〜ステップＳ１０７、図１５のステップＳ２０１〜ステップＳ２０９、図１７のステップＳ２０４〜Ｓ３０６、図１９のステップＳ２０２〜ステップＳ４０７の処理を並列的に行ってもよい。並列に処理する場合は、ＦＰＧＡや、ＣＰＬＤや、ＡＳＩＣ等を用いて、それぞれの独立した処理ステップをハードウェア内の機能モジュールとして並列に処理し、それぞれの判定結果の論理和をとる実装が例示される。
【００７７】
なお、受信内容解析部１０６、異常判定部１０８、テレグラム分割解析部１０９は、そのすべてが必要というわけではなく、また、閾値等の設定が異なる複数の判定部が接続されていても構わない。
【００７８】
図４、図９、図１６、図１８および図２０における割込制御部１，１ａ〜１ｄを構成する各部１０１〜１１０は、例えば、アクセラレータ２，２ａ〜２ｄを構成するＦＰＧＡやＣＰＬＤ、ＡＳＩＣ等のハードウェア内の機能モジュールとして具現化する。または割込制御部１，１ａ〜１ｄそのものをＦＰＧＡやＣＰＬＤ、ＡＳＩＣ等のハードウェアやＩＰコアとして具現化してもよい。またはアクセラレータ２，２ａ〜２ｄのＲＯＭ等に格納されている割込制御プログラムが、アクセラレータ２，２ａ〜２ｄのプロセッシングユニットによって実行されることによって具現化してもよい。
また、本実施形態では、割込制御部１，１ａ〜１ｄがアクセラレータ２，２ａ〜２ｄに含まれる形態としたが、これに限らず、割込制御部１，１ａ〜１ｄを構成するＦＰＧＡや、ＣＰＬＤや、ＡＳＩＣ等のハードウェアがＣＰＵ３内に含まれて、実行されることによって具現化してもよい。
さらに、割込制御部１，１ａ〜１ｄは、アクセラレータ２，２ａ〜２ｄおよびＣＰＵ３から物理的に独立した装置であってもよい。
【図面の簡単な説明】
【００７９】
【図１】第１実施形態に係る制御用計算機のハードウェア構成例を示す図である。
【図２】本実施形態に係る制御用計算機を用いて構成する制御システムの例を示す図である（その１）。
【図３】本実施形態に係る制御用計算機を用いて構成する制御システムの例を示す図である（その２）。
【図４】第１実施形態に係る制御用計算機の詳細な構成を示すブロック図である。
【図５】本実施形態に係る状態遷移を示す図である。
【図６】本実施形態に係る制御テーブルの例である。
【図７】第１実施形態に係る割込制御タイミングテーブルの例を示す図である。
【図８】第１実施形態に係る割込制御処理の流れを示すフローチャートである。
【図９】第２実施形態に係る制御用計算機の構成例を示す図である。
【図１０】パケットの各ビットに対してマスク列による論理積で抽出箇所を指定する方法を示す模式図であり、（ａ）は、制御対象から受信したパケットであり、（ｂ）は、パケット中のマスク部を示す図であり、（ｃ）は、パケットからマスク部を除いた抽出箇所を示す図である。
【図１１】プロトコルにおける所定の項目におけるビット列を指定することによって、抽出箇所を指定する方法を示す表である。
【図１２】複数のテレグラムで構成されているパケットの例を示す図である。
【図１３】第２実施形態に係る受信内容履歴の例を示す図である。
【図１４】第２実施形態に係る割込制御モード切替規準テーブルの例を示す図である。
【図１５】第２実施形態に係る割込制御処理の流れを示すフローチャートである。
【図１６】第３実施形態に係る制御用計算機の構成例を示す図である。
【図１７】第３実施形態に係る割込制御処理の流れを示すフローチャートである。
【図１８】第４実施形態に係る制御用計算機の構成例を示す図である。
【図１９】第４実施形態に係る割込制御処理の流れを示すフローチャートである。
【図２０】第５実施形態に係る制御用計算機の構成例を示す図である。
【符号の説明】
【００８０】
１，１ａ〜１ｄ  割込制御部（割込制御装置）
２，２ａ〜２ｄ  アクセラレータ
３      ＣＰＵ
４      メモリ
５      不揮発性記憶媒体
６      ＬＡＮコントローラ（送受信部）
７      バス
９，９ａ〜９ｄ  制御用計算機（情報処理装置）
４１    パケットバッファ
４２    制御アプリケーション
９０ａ，９０ｂ  制御システム（割込制御システム）
９１    制御対象
９２，９２ａ  制御用ネットワーク
１０１，１０１ａ〜１０１ｄ  割込制御モード切替部
１０２  割込マスク部
１０３  制御情報解析部
１０４  タイマ
１０５  パケットフィルタ部（送受信部）
１０６  受信内容解析部
１０７  受信内容履歴記録部
１０８  異常判定部
１０９  テレグラム分割解析部
１１０  割込制御判定選択部
１５０，１５０ａ〜１５０ｄ  記憶部
１５１  制御テーブル
１５２  割込制御タイミングテーブル（切替条件）
１５３  割込制御モード切替基準テーブル（切替条件）
１５４  受信内容履歴
１５５  過去履歴情報
１５６  異常情報リスト（切替条件）
１５７  テレグラム分割数（切替条件）
【図１】
2010072915.tif 000003
【図２】
2010072915.tif 000004
【図３】
2010072915.tif 000005
【図４】
2010072915.tif 000006
【図５】
2010072915.tif 000007
【図６】
2010072915.tif 000008
【図７】
2010072915.tif 000009
【図８】
2010072915.tif 000010
【図９】
2010072915.tif 000011
【図１０】
2010072915.tif 000012
【図１１】
2010072915.tif 000013
【図１２】
2010072915.tif 000014
【図１３】
2010072915.tif 000015
【図１４】
2010072915.tif 000016
【図１５】
2010072915.tif 000017
【図１６】
2010072915.tif 000018
【図１７】
2010072915.tif 000019
【図１８】
2010072915.tif 000020
【図１９】
2010072915.tif 000021
【図２０】
2010072915.tif 000022