(57)【要約】【課題】複数の割り込み処理のすべてにおいて処理が実行されない状態の発生を抑制することができる通信制御装置および割り込み実行方法を提供する。【解決手段】通信制御装置は、複数種類の割り込み処理に優先度を設定する優先度設定部と、１つの割り込み処理の実行中に少なくとも１つの他の割り込み処理が要求され保留された場合に、保留されている他の割り込み処理の優先度に基づき、次に実行する割り込み処理を選択する優先度判定部とを備え、優先度設定部は、実行中の割り込み処理の優先度を現在よりも低くするとともに、実行中の割り込み処理と異なる種類の割り込み処理の優先度を現在よりも高くし、優先度判定部は、実行中の割り込み処理が終了した際に、保留されている他の割り込み処理の優先度に基づき、優先度が最も高い割り込み処理を次に実行する割り込み処理として選択する。【選択図】図１
2020091693.tif 000002
【特許請求の範囲】
【請求項１】
複数種類の割り込み処理に対して設定された優先度に基づき、実行する前記割り込み処理の順序を決定する通信制御装置であって、
複数種類の前記割り込み処理に対して前記優先度を設定する優先度設定部と、
１つの前記割り込み処理の実行中に少なくとも１つの他の前記割り込み処理が要求され保留された場合に、保留されている他の前記割り込み処理に対応する前記優先度に基づき、次に実行する前記割り込み処理を選択する優先度判定部と
を備え、
前記優先度設定部は、
実行中の前記割り込み処理に対応する前記優先度を現在よりも低くするとともに、実行中の前記割り込み処理と異なる種類の前記割り込み処理に対応する前記優先度を現在よりも高くし、
前記優先度判定部は、
実行中の前記割り込み処理が終了した際に、保留されている他の前記割り込み処理に対応する前記優先度に基づき、前記優先度が最も高い前記割り込み処理を次に実行する前記割り込み処理として選択する通信制御装置。
【請求項２】
前記優先度設定部は、
実行中の前記割り込み処理に対応する前記優先度よりも高くなるように、保留されている他の前記割り込み処理に対応する前記優先度を変更する請求項１に記載の通信制御装置。
【請求項３】
前記優先度設定部は、
複数種類の前記割り込み処理に対してそれぞれ異なる前記優先度を設定する請求項１または２に記載の通信制御装置。
【請求項４】
前記優先度設定部によって設定されたそれぞれの前記割り込み処理に対応する前記優先度を示す優先度情報を格納する優先度格納部をさらに備え、
前記優先度格納部は、
前記優先度が変更される毎に、前記優先度情報を更新して格納する請求項１〜３のいずれか一項に記載の通信制御装置。
【請求項５】
複数種類の割り込み処理に対して設定された優先度に基づき、実行する前記割り込み処理の順序を決定する通信制御装置であって、
複数種類の前記割り込み処理に対して、処理が実行済みであるか、または未実行であるかを示す実行状態を設定する実行状態設定部と、
１つの前記割り込み処理の実行中に少なくとも１つの他の前記割り込み処理が要求され保留された場合に、保留されている他の前記割り込み処理に対応する前記優先度を判定する優先度判定部と、
保留されている他の前記割り込み処理の前記実行状態が実行済みであるか、または未実行であるかを判定し、前記優先度の判定結果と、前記実行状態の判定結果とに基づき、次に実行する前記割り込み処理を選択する実行状態判定部と
を備え、
前記実行状態設定部は、
最初に前記割り込み処理が開始される際に、複数種類のすべての前記割り込み処理の前記実行状態を未実行に設定するとともに、前記割り込み処理が実行される毎に、実行された前記割り込み処理の前記実行状態を実行済みに変更し、
前記実行状態判定部は、
実行中の前記割り込み処理が終了した際に、保留されている他の前記割り込み処理のうち、前記実行状態が未実行であり、かつ、前記優先度が最も高い前記割り込み処理を次に実行する前記割り込み処理として選択する通信制御装置。
【請求項６】
前記実行状態設定部は、
保留されているすべての他の前記割り込み処理に対する前記実行状態が実行済みである場合に、複数種類のすべての前記割り込み処理に対する前記実行状態を未実行に設定する請求項５に記載の通信制御装置。
【請求項７】
複数種類の割り込み処理に対して設定された優先度に基づき、実行する前記割り込み処理の順序を決定する割り込み実行方法であって、
複数種類の前記割り込み処理に対して前記優先度を設定する優先度設定ステップと、
１つの前記割り込み処理の実行中に少なくとも１つの他の前記割り込み処理が要求され保留された場合に、保留されている他の前記割り込み処理に対応する前記優先度に基づき、次に実行する前記割り込み処理を選択する優先度判定ステップと
を有し、
前記優先度設定ステップは、
実行中の前記割り込み処理に対応する前記優先度を現在よりも低くするとともに、実行中の前記割り込み処理と異なる種類の前記割り込み処理に対応する前記優先度を現在よりも高くし、
前記優先度判定ステップは、
実行中の前記割り込み処理が終了した際に、保留されている他の前記割り込み処理に対応する前記優先度に基づき、前記優先度が最も高い前記割り込み処理を次に実行する前記割り込み処理として選択する割り込み実行方法。
【請求項８】
複数種類の割り込み処理に対して設定された優先度に基づき、実行する前記割り込み処理の順序を決定する割り込み実行方法であって、
複数種類の前記割り込み処理に対して、処理が実行済みであるか、または未実行であるかを示す実行状態を設定する実行状態設定ステップと、
１つの前記割り込み処理の実行中に少なくとも１つの他の前記割り込み処理が要求され保留された場合に、保留されている他の前記割り込み処理に対応する前記優先度を判定する優先度判定ステップと、
保留されている他の前記割り込み処理の前記実行状態が実行済みであるか、または未実行であるかを判定し、前記優先度の判定結果と、前記実行状態の判定結果とに基づき、次に実行する前記割り込み処理を選択する実行状態判定ステップと
を有し、
前記実行状態設定ステップは、
最初に前記割り込み処理が開始される際に、複数種類のすべての前記割り込み処理の前記実行状態を未実行に設定するとともに、前記割り込み処理が実行される毎に、実行された前記割り込み処理の前記実行状態を実行済みに変更し、
前記実行状態判定ステップは、
実行中の前記割り込み処理が終了した際に、保留されている他の前記割り込み処理のうち、前記実行状態が未実行であり、かつ、前記優先度が最も高い前記割り込み処理を次に実行する前記割り込み処理として選択する割り込み実行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、割り込み処理を実行する通信制御装置および割り込み実行方法に関する。
【背景技術】
【０００２】
従来、マイクロコンピュータのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）で複数の処理を実行する際に、処理を効率的に実行するために割り込み処理が行われている。割り込み処理は、複数の処理に対して優先度が予め設定され、優先度が相対的に低い処理の実行中に優先度が相対的に高い処理が要求された場合に、優先度が高い処理を優先的に実行する処理である。割り込み処理を実行する装置として、例えば特許文献１には、入力された信号に割り込みの要求が含まれているか否かを検出し、割り込みの要求が含まれている場合に、信号の割り込みを受け付けるシリアル通信コントローラが開示されている。
【０００３】
このような割り込み処理において、ある割り込み処理の実行中に複数の他の割り込み処理が要求された場合、これらの他の割り込み処理は、実行中の割り込み処理が終了するまで保留となる。そして、実行中の割り込み処理が終了した場合に、保留中の複数の割り込み処理のうち、優先度の高い割り込み処理が次に実行される。そのため、優先度の低い割り込み処理は、優先度の高い割り込み処理が終了するまで、再度保留となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５３３２３２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、上述したようにして優先度に基づいて実行する割り込み処理が決定される場合に、優先度の高い割り込み処理が発生し続けると、優先度の低い割り込み処理は、常に保留状態となる。それぞれの割り込み処理には、タイムアウト時間が予め設定されており、タイムアウト時間が経過するまでに処理が実行されない場合には、タイムアウト異常となり、処理が実行されない状態が発生してしまう。
【０００６】
本発明は、上記の課題に鑑みてなされたものであって、複数の割り込み処理のすべてにおいて処理が実行されない状態の発生を抑制することができる通信制御装置および割り込み実行方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の通信制御装置は、複数種類の割り込み処理に対して設定された優先度に基づき、実行する前記割り込み処理の順序を決定する通信制御装置であって、複数種類の前記割り込み処理に対して前記優先度を設定する優先度設定部と、１つの前記割り込み処理の実行中に少なくとも１つの他の前記割り込み処理が要求され保留された場合に、保留されている他の前記割り込み処理に対応する前記優先度に基づき、次に実行する前記割り込み処理を選択する優先度判定部とを備え、前記優先度設定部は、実行中の前記割り込み処理に対応する前記優先度を現在よりも低くするとともに、実行中の前記割り込み処理と異なる種類の前記割り込み処理に対応する前記優先度を現在よりも高くし、前記優先度判定部は、実行中の前記割り込み処理が終了した際に、保留されている他の前記割り込み処理に対応する前記優先度に基づき、前記優先度が最も高い前記割り込み処理を次に実行する前記割り込み処理として選択するものである。
【０００８】
また、本発明の通信制御装置は、複数種類の割り込み処理に対して設定された優先度に基づき、実行する前記割り込み処理の順序を決定する通信制御装置であって、複数種類の前記割り込み処理に対して、処理が実行済みであるか、または未実行であるかを示す実行状態を設定する実行状態設定部と、１つの前記割り込み処理の実行中に少なくとも１つの他の前記割り込み処理が要求され保留された場合に、保留されている他の前記割り込み処理に対応する前記優先度を判定する優先度判定部と、保留されている他の前記割り込み処理の前記実行状態が実行済みであるか、または未実行であるかを判定し、前記優先度の判定結果と、前記実行状態の判定結果とに基づき、次に実行する前記割り込み処理を選択する実行状態判定部とを備え、前記実行状態設定部は、最初に前記割り込み処理が開始される際に、複数種類のすべての前記割り込み処理の前記実行状態を未実行に設定するとともに、前記割り込み処理が実行される毎に、実行された前記割り込み処理の前記実行状態を実行済みに変更し、前記実行状態判定部は、実行中の前記割り込み処理が終了した際に、保留されている他の前記割り込み処理のうち、前記実行状態が未実行であり、かつ、前記優先度が最も高い前記割り込み処理を次に実行する前記割り込み処理として選択するものである。
【０００９】
本発明の割り込み実行方法は、複数種類の割り込み処理に対して設定された優先度に基づき、実行する前記割り込み処理の順序を決定する割り込み実行方法であって、複数種類の前記割り込み処理に対して前記優先度を設定する優先度設定ステップと、１つの前記割り込み処理の実行中に少なくとも１つの他の前記割り込み処理が要求され保留された場合に、保留されている他の前記割り込み処理に対応する前記優先度に基づき、次に実行する前記割り込み処理を選択する優先度判定ステップとを有し、前記優先度設定ステップは、実行中の前記割り込み処理に対応する前記優先度を現在よりも低くするとともに、実行中の前記割り込み処理と異なる種類の前記割り込み処理に対応する前記優先度を現在よりも高くし、前記優先度判定ステップは、実行中の前記割り込み処理が終了した際に、保留されている他の前記割り込み処理に対応する前記優先度に基づき、前記優先度が最も高い前記割り込み処理を次に実行する前記割り込み処理として選択するものである。
【００１０】
また、本発明の割り込み実行方法は、複数種類の割り込み処理に対して設定された優先度に基づき、実行する前記割り込み処理の順序を決定する割り込み実行方法であって、複数種類の前記割り込み処理に対して、処理が実行済みであるか、または未実行であるかを示す実行状態を設定する実行状態設定ステップと、１つの前記割り込み処理の実行中に少なくとも１つの他の前記割り込み処理が要求され保留された場合に、保留されている他の前記割り込み処理に対応する前記優先度を判定する優先度判定ステップと、保留されている他の前記割り込み処理の前記実行状態が実行済みであるか、または未実行であるかを判定し、前記優先度の判定結果と、前記実行状態の判定結果とに基づき、次に実行する前記割り込み処理を選択する実行状態判定ステップとを有し、前記実行状態設定ステップは、最初に前記割り込み処理が開始される際に、複数種類のすべての前記割り込み処理の前記実行状態を未実行に設定するとともに、前記割り込み処理が実行される毎に、実行された前記割り込み処理の前記実行状態を実行済みに変更し、前記実行状態判定ステップは、実行中の前記割り込み処理が終了した際に、保留されている他の前記割り込み処理のうち、前記実行状態が未実行であり、かつ、前記優先度が最も高い前記割り込み処理を次に実行する前記割り込み処理として選択するものである。
【発明の効果】
【００１１】
本発明によれば、実行中の割り込み処理の優先度が低く設定されるとともに、保留されている割り込み処理の優先度が高く設定される。これにより、優先度が低い割り込み処理であっても、処理が実行されるため、複数の割り込み処理のすべてにおいて処理が実行されない状態の発生を抑制することができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１に係る通信制御装置を適用したプロセス制御システムの構成の一例を示すブロック図である。
【図２】図１の通信制御装置の構成の一例を示すブロック図である。
【図３】従来の割り込み実行処理の流れの一例について説明するための概略図である。
【図４】実施の形態１による優先度設定処理を行った場合の割り込み実行処理の流れの一例について説明するための概略図である。
【図５】実施の形態１に係る通信制御装置による割り込み実行処理の流れの一例を示すフローチャートである。
【図６】実施の形態２に係る通信制御装置の構成の一例を示すブロック図である。
【図７】実施の形態２に係る通信制御装置による割り込み実行処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
実施の形態１．
以下、本発明の実施の形態１に係る通信制御装置について説明する。本実施の形態１に係る通信制御装置は、例えば、プラント等の施設で予め決められた製品を製造する際の制御および監視を行うプロセス制御システムに用いられる。
【００１４】
［プロセス制御システム１００の構成］
図１は、本実施の形態１に係る通信制御装置１０を適用したプロセス制御システム１００の構成の一例を示すブロック図である。図１に示すように、プロセス制御システム１００は、プロセスコントローラ１、上位装置２、ならびに、複数のシーケンサ３Ａおよび３Ｂで構成されている。プロセス制御システム１００において、プロセスコントローラ１および上位装置２は、制御ネットワーク４で接続されている。
【００１５】
上位装置２は、制御ネットワーク４を介してプロセスコントローラ１に接続され、プロセス制御システム１００全体の動作を監視および管理するスーパーバイザリステーション等の装置である。シーケンサ３Ａおよび３Ｂは、予め決められた手順に従って動作するＰＬＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ）である。
【００１６】
プロセスコントローラ１は、複数のシーケンサ３Ａおよび３Ｂと、プラント等の設備に設置された流量計および圧力計等の計測機器を含む各種の設備機器であるフィールド機器等（図示せず）が接続され、これらの機器に対する監視および管理を行う。また、プロセスコントローラ１は、シーケンサ３Ａおよび３Ｂから要求される割り込み処理を実行する。
【００１７】
プロセスコントローラ１は、通信制御装置１０およびＣＰＵ２０を備えている。通信制御装置１０は、プロセスコントローラ１に接続されたシーケンサ３Ａおよび３Ｂとの間で通信を行う。また、本実施の形態１において、通信制御装置１０は、シーケンサ３Ａおよび３Ｂからの割り込み要求に応じて、ＣＰＵ２０による割り込み処理の実行中に保留されている他の割り込み処理の順序を決定する。
【００１８】
ＣＰＵ２０は、通信制御装置１０から供給される信号に基づき、各種の処理を実行する。特に、本実施の形態１において、ＣＰＵ２０は、通信制御装置１０から供給される信号に対する割り込み処理を実行する。
【００１９】
（通信制御装置１０）
図２は、図１の通信制御装置１０の構成の一例を示すブロック図である。図２に示すように、通信制御装置１０は、要求受信部１１、優先度設定部１２、優先度判定部１３および優先度格納部１４を備えている。
【００２０】
要求受信部１１は、シーケンサ３Ａおよび３Ｂから割り込み処理の要求を受信する。優先度設定部１２は、受信したそれぞれの割り込み処理に対して優先度を設定する。優先度の設定方法については、後述する。
【００２１】
優先度判定部１３は、優先度格納部１４に格納された優先度情報に基づき、それぞれの割り込み処理に対する優先度を判定する。また、優先度判定部１３は、判定結果に基づき、次に実行する割り込み処理を選択する。優先度情報は、割り込み処理と優先度とが互いに関連付けられたものであり、この通信制御装置１０で実行される複数種類の割り込み処理の優先度を示す。優先度格納部１４は、優先度設定部１２によって設定されたそれぞれの割り込み処理に対応する優先度を示す優先度情報を格納する。
【００２２】
［割り込み実行処理］
次に、本実施の形態１に係る通信制御装置１０による割り込み実行処理について説明する。ここでは、通信制御装置１０に対してシーケンサ３Ａから割り込み処理Ａが発生し、シーケンサ３Ｂから割り込み処理Ｂが発生する場合について考える。
【００２３】
一般に、発生する複数種類の割り込み処理には、優先度が予め設定されている。この場合、割り込み処理Ａには、優先度として割り込み処理Ｂよりも優先度が高い「優先」が設定され、割り込み処理Ｂには、優先度として「非優先」に設定されているものとする。なお、割り込み処理に対する優先度は、複数種類の異なる処理に対して同一の優先度が設定されることはないものとする。また、割り込み処理が実行されている間に、割り込み処理がさらに実行される「多重割り込み処理」は行われないものとする。すなわち、割り込み処理中に発生した割り込み処理は、実行中の割り込み処理が終了した後に実行されるものとする。
【００２４】
図３は、従来の割り込み実行処理の流れの一例について説明するための概略図である。図３に示す例において、実線は実行されている割り込み処理を示し、破線は保留されている割り込み処理を示す。このことは、後述する図４においても同様である。
【００２５】
図３に示すように、従来の割り込み実行処理では、例えば、割り込み処理Ａの実行中に、時点ｔ１において割り込み処理Ｂが発生した場合、割り込み処理Ａが実行中であるため、割り込み処理Ｂは保留となる。また、時点ｔ１より時間が経過した時点ｔ２において割り込み処理Ａが発生した場合には、前の割り込み処理Ａが実行中であるため、割り込み処理Ｂと同様に、割り込み処理Ａは保留となる。
【００２６】
そして、時点ｔ２から時間が経過した時点ｔ３において割り込み処理Ａが終了すると、処理が終了して時点で保留となっている割り込み処理ＡおよびＢのいずれかが、優先度に基づき決定されて実行される。図３に示す例の場合、割り込み処理Ｂおよび割り込み処理Ａが保留となっているが、保留中の割り込み処理Ａが割り込み処理Ｂよりも優先度が高く設定されている。そのため、割り込み処理Ａが終了した場合には、再度割り込み処理Ａが実行され、割り込み処理Ｂは保留となる。
【００２７】
このとき、２度目の割り込み処理Ａが実行中に、次の割り込み処理Ａが発生した場合、２度目の割り込み処理Ａが終了した場合に、次の処理も割り込み処理Ａとなる。このように、優先度の高い割り込み処理Ａが繰り返し発生すると、優先度の低い割り込み処理Ｂは、割り込み処理Ａの発生がなくなるまで常に保留状態となり、処理が実行されることがない。それぞれの割り込み処理ＡおよびＢには、タイムアウト時間が予め設定されており、処理が実行されない場合には、タイムアウトとなり、割り込み処理が実行されない状態が発生してしまう。
【００２８】
そこで、本実施の形態１では、それぞれの割り込み処理がタイムアウトとなることがなく、複数の割り込み処理のすべてにおいて処理が実行されない状態の発生が抑制されるように、割り込み処理に対する優先度を変更する優先度設定処理を行う。
【００２９】
図４は、本実施の形態１による優先度設定処理を行った場合の割り込み実行処理の流れの一例について説明するための概略図である。本実施の形態１では、割り込み処理が実行される際に、優先度設定処理によって当該割り込み処理の優先度が少なくとも現在よりも低くなるように設定され、異なる種類の割り込み処理の優先度が少なくとも現在よりも高くなるように設定される。すなわち、図４に示す例では、実行中の割り込み処理Ａが実行される際に、優先度が「優先」から「非優先」に設定され、異なる種類の割り込み処理Ｂの優先度が「非優先」から「優先」に設定される。これにより、割り込み処理Ｂの優先度が割り込み処理Ａの優先度よりも高く設定される。
【００３０】
このように優先度が設定された状態で、時点ｔ１において割り込み処理Ｂが発生した場合、割り込み処理Ａが実行中であるため、割り込み処理Ｂは保留となる。また、時点ｔ２において割り込み処理Ａが発生した場合には、前の割り込み処理Ａが実行中であるため、割り込み処理Ｂと同様に、割り込み処理Ａは保留となる。
【００３１】
そして、時点ｔ３において割り込み処理Ａが終了すると、処理が終了して時点で保留となっている割り込み処理が、優先度に基づき決定されて実行される。図４に示す例の場合、割り込み処理Ｂおよび割り込み処理Ａが保留となっているが、保留中の割り込み処理Ｂの方が割り込み処理Ａよりも優先度が高く設定されている。したがって、割り込み処理Ａが終了した場合には、割り込み処理Ｂが実行され、割り込み処理Ａは保留となる。
【００３２】
（優先度の設定）
次に、割り込み処理に対する優先度の設定について説明する。それぞれの割り込み処理に対する優先度は、優先度を示す優先度フラグの設定によって決定される。割り込み処理の種類が２種類の場合、優先度の高い割り込み処理に対しては値「１」の優先度フラグが設定され、優先度の低い割り込み処理に対しては値「０」の優先度フラグが設定される。このようにして設定された優先度フラグは、それぞれの割り込み処理と関連付けられ、優先度情報として優先度格納部１４に格納される。
【００３３】
割り込み処理が実行された場合、実行中の割り込み処理に対応する優先度フラグは、優先度が下がるように値「０」に設定される。一方、他の種類の割り込み処理に対応する優先度フラグは、優先度が上がるように値「１」に設定される。このようにしてそれぞれの割り込み処理に対応する優先度フラグの値が変更されると、優先度格納部１４に格納された優先度情報が更新される。
【００３４】
図５は、本実施の形態１に係る通信制御装置１０による割り込み実行処理の流れの一例を示すフローチャートである。ここでは、２種類の割り込み処理ＡおよびＢが実行される場合で、最初に割り込み処理Ａに対して優先度「優先」が設定され、割り込み処理Ｂに対して優先度「非優先」が設定されているときを例にとって説明する。すなわち、この場合には、割り込み処理Ａに対応する優先度フラグが値「１」に設定され、割り込み処理Ｂに対応する優先度フラグが値「０」に設定されている。そして、このときの優先度フラグ設定を示す優先度情報が優先度格納部１４に格納されている。
【００３５】
まず、ステップＳ１において、ＣＰＵ２０により割り込み処理Ａが実行されている。このとき、優先度設定部１２は、ステップＳ２において、優先度変更処理を行う。具体的には、優先度設定部１２は、実行中の割り込み処理Ａの優先度フラグを、優先度を下げるように値「１」から値「０」に変更する。また、割り込み処理Ｂの優先度フラグを、優先度を上げるように値「０」から値「１」に設定する。
【００３６】
ステップＳ３において、割り込み処理Ａが終了すると、優先度判定部１３は、ステップＳ４において、保留中の割り込み処理が存在するか否かを判定する。判定の結果、保留中の割り込み処理が存在する場合（ステップＳ４；Ｙｅｓ）、優先度判定部１３は、ステップＳ５において、優先度格納部１４に格納された優先度情報を読み出し、割り込み処理ＡおよびＢの優先度を確認する。
【００３７】
次に、ステップＳ６において、優先度判定部１３は、保留中の割り込み処理の中から最も高い優先度が設定されている割り込み処理を選択する。例えば、割り込み処理ＡおよびＢが保留中である場合、優先度判定部１３は、ステップＳ２で優先度フラグが値「１」に設定された割り込み処理Ｂを選択する。そして、ステップＳ７において、選択された割り込み処理ＢがＣＰＵ２０により実行される。
【００３８】
一方、ステップＳ４において、保留中の割り込み処理が存在しない場合（ステップＳ４；Ｎｏ）、優先度設定部１２は、それぞれの割り込み処理ＡおよびＢの優先度を初期設定に戻す。
【００３９】
このように、本実施の形態１では、優先度設定処理によってそれぞれの割り込み処理ＡおよびＢの優先度が変更され、複数の割り込み処理が制御される。これにより、一方の割り込み処理が実行され終了された場合に、終了した割り込み処理と異なる他方の割り込み処理が実行される。そのため、同一の割り込み処理が連続して実行されなくなり、複数の割り込み処理のすべてにおいて処理が実行されない状態の発生を抑制することができる。
【００４０】
なお、本実施の形態１では、２種類の割り込み処理ＡおよびＢを実行する場合を例にとって説明したが、割り込み処理の数は、２種類に限られず、３種類以上であってもよい。例えば、割り込み処理の数が３種類以上である場合には、優先度が「高」、「中」および「低」などのように段階的に設定される。
【００４１】
この場合、実行中の割り込み処理の優先度は、「低」などの最も低い優先度に変更される。また、保留中の割り込み処理の優先度は、現在の優先度から１段階高い優先度に変更される。こうすることにより、初期設定での優先度が低い割り込み処理であっても、現在よりも高い優先度に変更され、割り込み処理が実行されるため、処理が実行されない状態の発生を抑制することができる。
【００４２】
以上のように、本実施の形態１に係る通信制御装置１０では、実行中の割り込み処理の優先度が低く設定されるとともに、保留されている割り込み処理の優先度が高く設、複数の割り込み処理のすべてにおいて処理が実行されない状態の発生を抑制することができる。
【００４３】
また、保留されている割り込み処理に対応する優先度が、実行中の割り込み処理に対応する優先度よりも高くなるように変更される。これにより、例えば実行中の割り込み処理と同一の割り込み処理が保留されている割り込み処理に含まれている場合でも、実行中の割り込み処理が連続して実行されることがない。そのため、複数の割り込み処理のすべてにおいて処理が実行されない状態の発生をより確実に抑制することができる。
【００４４】
実施の形態２．
本発明の実施の形態２について説明する。上述した実施の形態１では、実行される割り込み処理の種類数が増加するに従って、優先度の変更処理が複雑になる。そこで、本実施の形態２では、割り込み処理の種類数が増加しても、それぞれの割り込み処理の未実行が抑制されるようにする。なお、以下の説明において、実施の形態１と共通する部分には同一の符号を付し、詳細な説明を省略する。
【００４５】
［通信制御装置１０Ａ］
図６は、本実施の形態２に係る通信制御装置１０Ａの構成の一例を示すブロック図である。本実施の形態２に係るプロセスコントローラ１は、実施の形態１における通信制御装置１０に代えて、通信制御装置１０Ａを備えている。図６に示すように、通信制御装置１０Ａは、要求受信部１１、優先度判定部１３、優先度格納部１４、実行状態設定部２１、実行状態判定部２２および実行状態格納部２３を備えている。
【００４６】
実行状態設定部２１は、受信したそれぞれの割り込み処理に対して実行状態を示す実行フラグを設定する。実行状態の設定方法については、後述する。実行状態判定部２２は、実行状態格納部２３に格納された実行状態情報に基づき、それぞれの割り込み処理に対する実行状態を判定する。また、実行状態判定部２２は、この判定結果と、優先度判定部１３による判定結果とに基づき、次に実行する割り込み処理を選択する。実行状態情報は、割り込み処理と実行状態とが互いに関連付けられたものであり、この通信制御装置１０で実行される複数種類の割り込み処理の実行状態を示す。実行状態格納部２３は、実行状態設定部２１によって設定されたそれぞれの割り込み処理に対応する実行状態を示す実行状態情報を格納する。
【００４７】
［割り込み実行処理］
次に、本実施の形態２に係る通信制御装置１０Ａによる割り込み実行処理について説明する。ここでは、通信制御装置１０Ａに対して複数種類の割り込み処理Ａ〜Ｎが発生する場合について考える。本実施の形態２では、割り込み処理Ａ〜Ｎに対して、優先度が段階的に設定されているものとし、複数種類の異なる処理に対して同一の優先度が設定されることはないものとする。また、実施の形態１と同様に、「多重割り込み処理」は行われないものとする。
【００４８】
（実行状態の設定）
本実施の形態２では、複数種類の割り込み処理Ａ〜Ｎに対して、処理の実行状態を示す実行フラグが設定される。実行フラグは、それぞれの割り込み処理が実行済みであるか、あるいは未実行であるかを判定するために設定される。具体的には、割り込み処理が未実行である場合に値「１」の実行フラグが設定され、実行済みである場合に値「０」の実行フラグが設定される。このようにして設定された実行フラグは、それぞれの割り込み処理と関連付けられ、実行状態情報として実行状態格納部２３に格納される。
【００４９】
割り込み処理が実行された場合、この割り込み処理に対応する実行フラグは、値「０」に変更される。実行中の割り込み処理が終了すると、保留中の割り込み処理のうち、実行フラグが未実行を示す値「１」であり、かつ優先度が最も高い割り込み処理が選択され、実行される。
【００５０】
このようにして、未実行の割り込み処理を優先度に従って順次実行させ、保留となっているすべての割り込み処理に対応する実行フラグが実行済みを示す値「０」となると、すべての割り込み処理に対応する実行フラグの値が「１」に変更される。実行状態格納部２３に格納された実行状態情報は、実行フラグが変更されるたびに更新される。
【００５１】
図７は、本実施の形態２に係る通信制御装置１０Ａによる割り込み実行処理の流れの一例を示すフローチャートである。ここでは、すべての割り込み処理のそれぞれに対応する実行フラグが値「１」（未実行）に設定されているものとする。このときの実行フラグ設定を示す実行状態情報が実行状態格納部２３に格納されている。
【００５２】
まず、ステップＳ１１において、ＣＰＵ２０により最初の割り込み処理が実行されている。このとき、実行状態設定部２１は、ステップＳ１２において、実行中の割り込み処理の実行フラグを、値「０」（実行済み）に変更する。
【００５３】
ステップＳ１３において、最初の割り込み処理が終了すると、優先度判定部１３は、ステップＳ１４において、保留中の割り込み処理が存在するか否かを判定する。判定の結果、保留中の割り込み処理が存在する場合（ステップＳ１４；Ｙｅｓ）、優先度判定部１３は、ステップＳ１５において、優先度格納部１４に格納された優先度情報を読み出し、保留中の割り込み処理の優先度を確認する。また、実行状態判定部２２は、実行状態格納部２３に格納された実行状態情報を読み出し、保留中の割り込み処理の実行状態を確認する。
【００５４】
次に、ステップＳ１６において、実行状態判定部２２は、保留中の割り込み処理の中から実行フラグの値が「１」であり、かつ、最も高い優先度が設定されている割り込み処理を選択する。そして、ステップＳ１７において、選択された割り込み処理ＢがＣＰＵ２０により実行される。
【００５５】
一方、ステップＳ１４において、保留中の割り込み処理が存在しない場合（ステップＳ１４；Ｎｏ）、実行状態設定部２１は、すべての割り込み処理に対応する実行フラグを値「１」に設定し、実行状態を未実行状態に戻す。
【００５６】
このように、本実施の形態２では、それぞれの割り込み処理が実行された場合に、当該割り込み処理に対応する実行状態が実行済みに変更される。そして、保留中の割り込み処理がすべて実行された場合に、すべての割り込み処理に対応する実行状態が未実行状態に戻される。これにより、すべての割り込み処理が必ず実行されるため、複数の割り込み処理のすべてにおいて処理が実行されない状態の発生を抑制することができる。
【００５７】
以上のように、本実施の形態２に係る通信制御装置１０Ａでは、複数種類の割り込み処理に対して実行状態を示す実行フラグが設定される。そして、最初に割り込み処理が開始される際に、複数種類のすべての割り込み処理の実行状態が未実行に設定され、割り込み処理が実行される毎に、実行された割り込み処理の実行状態が実行済みに変更される。
そのため、割り込み処理の種類が多い場合でも、すべての割り込み処理を確実に実行することができる。
【符号の説明】
【００５８】
１  プロセスコントローラ、２  上位装置、３Ａ、３Ｂ  シーケンサ、４  制御ネットワーク、１０、１０Ａ  通信制御装置、１１  要求受信部、１２  優先度設定部、１３  優先度判定部、１４  優先度格納部、２０  ＣＰＵ、２１  実行状態設定部、２２  実行状態判定部、２３  実行状態格納部、１００  プロセス制御システム。
【図１】
2020091693.tif 000003
【図２】
2020091693.tif 000004
【図３】
2020091693.tif 000005
【図４】
2020091693.tif 000006
【図５】
2020091693.tif 000007
【図６】
2020091693.tif 000008
【図７】
2020091693.tif 000009