JP2006163730A - 割り込み制御方法およびそれを用いたコントローラ - Google Patents

割り込み制御方法およびそれを用いたコントローラ Download PDF

Info

Publication number
JP2006163730A
JP2006163730A JP2004353156A JP2004353156A JP2006163730A JP 2006163730 A JP2006163730 A JP 2006163730A JP 2004353156 A JP2004353156 A JP 2004353156A JP 2004353156 A JP2004353156 A JP 2004353156A JP 2006163730 A JP2006163730 A JP 2006163730A
Authority
JP
Japan
Prior art keywords
interrupt
time
communication
interrupt processing
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004353156A
Other languages
English (en)
Inventor
Toshio Hatano
俊雄 波多野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yokogawa Electric Corp
Original Assignee
Yokogawa Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yokogawa Electric Corp filed Critical Yokogawa Electric Corp
Priority to JP2004353156A priority Critical patent/JP2006163730A/ja
Publication of JP2006163730A publication Critical patent/JP2006163730A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

【課題】 制御バスへの送受信が頻繁に発生すると通信割り込み処理の負荷が増大し、アプリケーションを実行する時間が少なくなる。そのため、時間に制約のあるアプリケーションを規定時間内に実行することが出来ない場合が発生するという課題を解決する。
【解決手段】 スキャン周期内で通信割り込み処理を実行する時間の割合を決めておき、通信割り込み処理時間がこの割合を越えると通信割り込みをマスクし、スキャン周期の最初で割り込みマスクを解除するようにした。通信処理が頻繁に発生してもアプリケーションを実行する時間を確保することができる。
【選択図】 図1

Description

本発明は、割り込み処理時間を制限してアプリケーションの動作時間を確保することができる割り込み制御方法およびそれを用いたコントローラに関し、特に確実な動作が要求される安全コントローラに用いて好適な割り込み制御方法およびそれを用いたコントローラに関するものである。
図5にコントローラの構成を示す。図5において、6はコントローラのソフトウエアであり、アプリケーション61,OS(Operating System)62および通信ドライバ63で構成される。7はハードウエアであり、制御部71と制御バス72で構成される。
アプリケーション61が制御バス72にデータを送信するときは、アプリケーション61はOS62を介して通信ドライバ63に送信データを送る。通信ドライバ63は制御部71との共有メモリである送信バッファ(図示せず)にこのデータを書き込んだ後、送信コマンドを発行する。制御部71はこの送信データを制御バス72に出力し、割り込みによってOS62に送信完了を通知する。
データを受信するときは、制御部71が制御バス72から受信データを読み出し、通信ドライバ63との共有バッファである受信バッファ(図示せず)に書き込んだ後、割り込みを用いてOS62に通知する。OS62は受信データを通信ドライバ63経由でアプリケーション61に渡す。
特許文献1には、プロセッサは割込処理の実行回数が所定回数に達したときに通常処理に移行する信号処理装置が記載されている。
特開平5−346859号公報
しかし、このようなコントローラには、次のような課題があった。送受信完了通知は割り込みを用いてOS62に伝達されるが、割り込みはカーネルモードで動作するため、割り込み中はアプリケーション61は動作することができない。そのため、制御バス72からの送受信データが増加するに従って割り込み処理時間が増加し、アプリケーション61の動作時間が少なくなるという課題があった。アプリケーション61に時間制約がある場合は、規定時間内に実行することが出来なってしまうという課題もあった。
ポーリング方式を用いるとこの問題は解決するが、通信のパフォーマンスが低下してしまうという課題もあった。
従って本発明が解決しようとする課題は、ユーザモードで動作するアプリケーションの動作時間を保証することができる割り込み制御方法及びそれを用いたコントローラを提供することにある。
このような課題を達成するために、本発明のうち請求項1記載の発明は、
割り込み処理とそれ以外の処理が混在して実行されるコントローラに用いる割り込み制御方法であって、
所定のスキャン周期の間、割り込み処理を実行する割り込み処理時間を計測し、この割り込み処理時間が前記スキャン周期に関連する所定の値以上になったときに、前記割り込みを禁止する工程と、
前記スキャン周期の最初に、割り込みが禁止されているとこの割り込みを許可する工程と、
を具備したものである。割り込み処理以外の処理を実行する時間を確保できる。
請求項2記載の発明は、請求項1記載の発明において、
前記割り込みは、通信割り込みであることを特徴としたものである。割り込み頻度が高い通信割り込みに用いて効果が大きい。
請求項3記載の発明は、請求項1若しくは請求項2記載の発明において、
割り込み処理以外のアプリケーションを複数個有し、前記割り込み処理が終了する毎に異なった前記アプリケーションを実行するようにしたものである。複数のアプリケーションを平均的に実行できる。
請求項4記載の発明は、請求項1若しくは請求項3いずれかに記載の発明において、
前記スキャン周期を変更出来るようにしたものである。割り込みの応答時間を制御できる。
請求項5記載の発明は、
割り込み処理とそれ以外の処理が混在して実行されるコントローラにおいて、
割り込み処理に要した時間を計測し、この時間が所定のスキャン周期に関連する所定の値に達したときに、前記割り込み処理を禁止する割り込み処理時間計測部と、
経過時間を計測し、この経過時間が前記スキャン周期に達すると割り込み処理を許可すると共に、この経過時間および前記割り込み処理に要した時間をクリアする経過時間計測部と、
を具備したものである。割り込み処理以外の処理を実行する時間を確保できる。
請求項6記載の発明は、請求項5記載の発明において、
前記割り込みは、通信割り込みであることを特徴としたものである。割り込み頻度が高い通信割り込みに用いて効果が大きい。
請求項7記載の発明は、請求項5若しくは請求項6記載の発明において、
割り込み処理以外のアプリケーションを複数個有し、前記割り込み処理が終了する毎に異なった前記アプリケーションを実行するようにしたものである。複数のアプリケーションを平均的に実行できる。
請求項8記載の発明は、請求項5若しくは請求項7いずれかに記載の発明において、
前記スキャン周期を設定するスキャン周期設定部を具備したものである。割り込みの応答時間を制御できる。
以上説明したことから明らかなように、本発明によれば次のような効果がある。
請求項1,2,3,4,5,6、7および請求項8の発明によれば、所定のスキャン周期の間割り込み処理に要した時間を計測し、この割り込み処理に要した時間が前記スキャン周期に関連する時間に達したときに、割り込みを禁止するようにした。
割り込み処理時間を一定の値以下に制限することができるので、割り込み処理の負荷が大きくなっても、割り込み処理以外のアプリケーションを実行する時間を確保することができるという効果がある。特に、一時的に負荷が集中する通信割り込みに用いて効果が大きい。
禁止された割り込み処理は保留され、次のスキャン周期に実行されるので、スキャン周期を設定・変更できるようにすることにより、割り込み処理の応答時間を調整することができる。割り込み処理に対する応答を早くしたいときはスキャン周期を短く、そうでないときは長く設定すればよい。
以下本発明を図面を用いて詳細に説明する。図1に本発明に係る割り込み制御方法を用いた制御機器の構成を示す。図1において、1は制御機器のソフトウエアの構成を表したものであり、アプリケーション11,OS(Operating System)12および通信ドライバ13で構成される。OS12には、経過時間計測部121,通信割込処理時間計測部122およびスキャン周期設定部123が内蔵されている。
2はハードウエアの構成を表したものであり、制御部21および制御バス22で構成される。アプリケーション11が制御バス22にデータを送信するときは、アプリケーション11はOS12を介して通信ドライバ13に送信データを送る。通信ドライバ13は制御部21との共有メモリである送信バッファ(図示せず)にこのデータを書き込む。制御部21はこの送信データを制御バス22に出力し、割り込みによってOS12に送信完了を通知する。
データを受信するときは、制御部21が制御バス22から受信データを読み出し、通信ドライバ13との共有バッファである受信バッファ(図示せず)に書き込んだ後、割り込みを用いてOS12に通知する。OS12は受信データを通信ドライバ13経由でアプリケーション11に渡す。送信および受信に用いる構成および手順は、図5従来例と同じである。
この実施例では、OS12内に経過時間計測部121,通信割込処理時間計測部122およびスキャン周期設定部123が配置されている。スキャン周期設定部123はスキャン周期を設定し、経過時間計測部121に通知する。経過時間計測部121は経過時間計測カウンタを内蔵し、経過時間すなわちソフトウエアが実行されている時間を計測する。そして、この時間がスキャン周期に達すると、経過時間計測カウンタと通信割込処理時間計測部122に内蔵されている通信割込処理時間カウンタをクリアし、制御部21の割り込みマスクが設定されているとそれを解除する動作を繰り返す。
通信割込処理時間計測部122は通信割込処理時間カウンタを内蔵し、このカウンタを用いて通信割込処理に要した時間を計測する。そして、この通信処理に要した時間が、スキャン周期の一定割合に達すると、制御部21の割り込みマスクを設定する。これによって、制御部21からOS12への割り込み通知が出力されなくなるので、通信割り込みの頻度が高くなっても、アプリケーション11を実行する時間を確保することができる。
次に、図2フローチャートに基づいて、経過時間計測部121,通信割込処理時間計測部122およびスキャン周期設定部123の動作を説明する。なお、工程(A−1)〜(A−7)は経過時間計測部121の動作、工程(A−8)〜(A−11)は通信割込処理時間計測部122の動作、工程(A−12)〜(A−14)はスキャン周期設定部123の動作である。
図2において、工程(A−1)でスキャン周期が設定されているかをチェックし、スキャン周期が設定されていると、工程(A−2)でタイマ割り込みがあるかをチェックする。このタイマ割り込みは一定周期で発生する。
タイマ割り込みがあると、工程(A−3)で経過時間計測カウンタにタイマ割り込み周期を加算する。そして、工程(A−4)でこの経過時間計測時間カウンタの値である経過時間時間が設定されているスキャン周期より大きいかを判定し、大きいと工程(A−5)で経過時間計測カウンタと通信割り込み時間カウンタをクリアする。そして、工程(A−6)で制御部21の割り込みマスクが設定されているかどうかをチェックし、設定されていると工程(A−7)でこの割り込みマスクを解除して工程(A−1)に戻る。工程(A−4)で経過時間がスキャン周期より小さいと、工程(A−1)に戻る。
工程(A−2)でタイマ割り込みがないと、工程(A−8)で通信割り込みがあるかどうかをチェックする。通信割り込みがあると、工程(A−9)で通信割り込みに要した時間を通信割り込み処理時間カウンタに加算する。そして、工程(A−10)でこの通信割り込み処理時間カウンタの値である通信割り込み処理時間がスキャン時間より大きいかを判定し、大きいと工程(A−11)で制御部21の割り込みマスクを設定し、工程(A−1)に戻る。スキャン時間には、スキャン周期のうち通信割り込み処理に振り当てることができる時間を設定しておく。
工程(A−8)で通信割り込みがないと、工程(A−12)でスキャン周期が通知されたかどうかを判定する。スキャン周期が通知されていると、工程(A−13)でスキャン周期を設定し、工程(A−14)で経過時間計測時間カウンタと通信割り込み処理時間カウンタをクリアする。スキャン周期を通知することにより、スキャン周期を変更することができる。
すなわち、スキャン周期毎に経過時間計測カウンタと通信割り込み処理時間カウンタおよび通信割り込みマスクをクリアし、通信割り込みに要した時間がスキャン周期の一定割合以上になると、通信割り込みをマスクして、OS12が通信割り込み処理を実行しないようにする。そのため、送受信が頻繁に発生してもアプリケーション11を実行する時間を確保することができる。
なお、割り込みがマスクされた通信割り込み処理は、次のスキャン周期で実行される。また、工程(A−12)〜(A−14)で説明したように、スキャン周期設定部123にスキャン周期を通知することにより、スキャン周期を変更することができる。そのため、スキャン周期を短くすることにより、通信割り込み処理の応答時間を短くすることができる。
次に、図3によって通信割り込み処理と通信割り込み処理以外の処理(アプリケーション11の処理)の関係を説明する。図3(A)の黒いバーは通信割り込み処理を実行している時間、(B)の白抜きのバーは通信割り込み処理以外の処理を実行している時間である。
スキャン1では、時刻t1から通信割り込み処理が実行され、時刻t2で通信割り込み処理時間がスキャン時間より大きくなる。そのため、通信割り込みがマスク(禁止)され、t2以降は通信割り込み処理以外の処理が実行される。
時刻t3で新しいスキャン周期(スキャン2)に入るので、通信割り込みマスクはクリアされ、通信割り込みが許可される。スキャン1で発生した通信割り込み処理が残っているので、最初から通信割り込み処理を実行する。時刻t4で通信割り込み処理時間がスキャン時間を超えるので、再び通信割り込みが禁止され、それ以外の処理が実行される。以降、同様にして処理が行われる。
図4を用いて、アプリケーションおよび通信割り込み処理が複数ある場合の処理を説明する。図4(A)は構成図であり、OS3はアプリケーション41〜43および割り込み処理51〜53の実行を調停する。この図では示していないが、OS3は図1のOS12と同じ構成である。
図4(B)はプロセッサの処理時間の配分を示した図である。割り込み処理51が実行され、この処理が終了するかスキャン時間を経過すると割り込み処理が禁止され、アプリケーション41が実行される。次のスキャン周期で割り込み処理52,53が続けて実行され、アプリケーション42,43およびその他の処理が続けて実行される。この図のように、割り込み処理とアプリケーションの実行が切り替わる毎に異なったアプリケーションを実行するようにすると、複数のアプリケーションを平均して実行することができる。
なお、割り込み処理は通信割り込みに限らず、他の割り込み処理にも適用することができる。また、図2と同じように、スキャン周期内で1つのアプリケーションの実行時間を制限するようにすることにより、複数のアプリケーションを平均して実行することも出来る。
さらに、これらの実施例では制御部21の割り込みマスクを設定し、割り込み通知がOSに出力されないようにしたが、OSが割り込みを受け付けないようにしてもよい。
本発明の一実施例を示す構成図である。 割り込み制御部の動作を示すフローチャートである。 割り込み処理時間とアプリケーション実行時間の関係を説明するためのタイムチャートである。 本発明の他の実施例を示す構成図である。 従来の制御機器の構成図である。
符号の説明
1 ソフトウエア
11,41〜43 アプリケーション
12、3 OS
121 経過時間計測部
122 割込処理時間計測部
123 スキャン周期設定部
13 通信ドライバ
2 ハードウエア
21 制御部
22 制御バス
51〜53 割り込み処理

Claims (8)

  1. 割り込み処理とそれ以外の処理が混在して実行されるコントローラに用いる割り込み制御方法であって、
    所定のスキャン周期の間、割り込み処理を実行する割り込み処理時間を計測し、この割り込み処理時間が前記スキャン周期に関連する所定の値以上になったときに、前記割り込みを禁止する工程と、
    前記スキャン周期の最初に、割り込みが禁止されているとこの割り込みを許可する工程と、
    を具備したことを特徴とする割り込み制御方法。
  2. 前記割り込みは、通信割り込みであることを特徴とする請求項1記載の割り込み制御方法。
  3. 割り込み処理以外のアプリケーションを複数個有し、前記割り込み処理が終了する毎に異なった前記アプリケーションを実行するようにしたことを特徴とする請求項1若しくは請求項2記載の割り込み制御方法。
  4. 前記スキャン周期が変更出来るようにされていることを特徴とする請求項1若しくは請求項3いずれかに記載の割り込み制御方法。
  5. 割り込み処理とそれ以外の処理が混在して実行されるコントローラにおいて、
    割り込み処理に要した時間を計測し、この時間が所定のスキャン周期に関連する所定の値に達したときに、前記割り込み処理を禁止する割り込み処理時間計測部と、
    経過時間を計測し、この経過時間が前記スキャン周期に達すると割り込み処理を許可すると共に、この経過時間および前記割り込み処理に要した時間をクリアする経過時間計測部と、
    を具備したことを特徴とするコントローラ。
  6. 前記割り込みは、通信割り込みであることを特徴とする請求項5記載のコントローラ。
  7. 割り込み処理以外のアプリケーションを複数個有し、前記割り込み処理が終了する毎に異なった前記アプリケーションを実行するようにしたことを特徴とする請求項5若しくは請求項6記載のコントローラ。
  8. 前記スキャン周期を設定するスキャン周期設定部を有することを特徴とする請求項5若しくは請求項7いずれかに記載のコントローラ。
JP2004353156A 2004-12-06 2004-12-06 割り込み制御方法およびそれを用いたコントローラ Pending JP2006163730A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004353156A JP2006163730A (ja) 2004-12-06 2004-12-06 割り込み制御方法およびそれを用いたコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004353156A JP2006163730A (ja) 2004-12-06 2004-12-06 割り込み制御方法およびそれを用いたコントローラ

Publications (1)

Publication Number Publication Date
JP2006163730A true JP2006163730A (ja) 2006-06-22

Family

ID=36665690

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004353156A Pending JP2006163730A (ja) 2004-12-06 2004-12-06 割り込み制御方法およびそれを用いたコントローラ

Country Status (1)

Country Link
JP (1) JP2006163730A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080065804A1 (en) * 2006-09-08 2008-03-13 Gautham Chinya Event handling for architectural events at high privilege levels
EP2207070A1 (en) 2009-01-09 2010-07-14 Yokogawa Electric Corporation Field control device and field control method
US8788735B2 (en) 2008-09-18 2014-07-22 Hitachi Industrial Equipment Systems Co., Ltd. Interrupt control apparatus, interrupt control system, interrupt control method, and interrupt control program

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080065804A1 (en) * 2006-09-08 2008-03-13 Gautham Chinya Event handling for architectural events at high privilege levels
US8214574B2 (en) * 2006-09-08 2012-07-03 Intel Corporation Event handling for architectural events at high privilege levels
US8788735B2 (en) 2008-09-18 2014-07-22 Hitachi Industrial Equipment Systems Co., Ltd. Interrupt control apparatus, interrupt control system, interrupt control method, and interrupt control program
EP2207070A1 (en) 2009-01-09 2010-07-14 Yokogawa Electric Corporation Field control device and field control method

Similar Documents

Publication Publication Date Title
JP5397739B2 (ja) 画像処理装置、画像処理方法および画像処理プログラム
JP2010182101A (ja) フィールド制御システム
JP2009193492A (ja) コンピュータシステム、情報処理方法及びプログラム
JP4523910B2 (ja) 並列処理装置及び並列処理方法及び並列処理プログラム
JP2006163730A (ja) 割り込み制御方法およびそれを用いたコントローラ
JP2008225807A (ja) 制御装置およびそのプログラム暴走監視方法
CN101593047B (zh) 一种滚球的实现方法
CN101593046B (zh) 一种滚球的实现方法
KR0154840B1 (ko) 피씨아이-피씨아이 브리지의 버퍼 플러쉬 제어 장치
CN101593048B (zh) 一种滚球的实现方法
JP2010160713A (ja) フィールド制御装置およびフィールド制御方法
JP2007193744A (ja) 情報処理装置、プログラム、およびスケジューリング方法
CN106569879B (zh) 唤醒外设的方法及移动终端
CN101593049B (zh) 一种滚球的实现方法
JPH10254721A (ja) 印刷装置、その割込要求処理方法、及び記憶媒体
JP4798445B2 (ja) 省電力制御方法、画像形成装置およびプログラム
JP2012242875A (ja) Dma制御装置、画像形成装置、および、dma制御方法
JP3898332B2 (ja) タイマ自動制御装置および記録媒体
WO2024024102A1 (ja) 計算機システム、タスクスケジューラ装置、待ちプロセス起床方法およびプログラム
JPH03167633A (ja) 割り込みプログラム管理方法
JPH01183744A (ja) プロセッサストール監視装置
JP6771823B2 (ja) 移動端末
JP2004038555A (ja) プログラマブルコントローラ
KR20000027903A (ko) 무선가입자망 단말에서의 와치독 타이머 리셋 처리 장치 및 방법
JP5906807B2 (ja) 演算処理装置及びストール監視方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Effective date: 20070712

Free format text: JAPANESE INTERMEDIATE CODE: A621

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090528

A131 Notification of reasons for refusal

Effective date: 20090610

Free format text: JAPANESE INTERMEDIATE CODE: A131

A521 Written amendment

Effective date: 20090708

Free format text: JAPANESE INTERMEDIATE CODE: A523

A02 Decision of refusal

Effective date: 20091020

Free format text: JAPANESE INTERMEDIATE CODE: A02