JPH1165623A - プログラマブルコントローラ - Google Patents
プログラマブルコントローラInfo
- Publication number
- JPH1165623A JPH1165623A JP22352597A JP22352597A JPH1165623A JP H1165623 A JPH1165623 A JP H1165623A JP 22352597 A JP22352597 A JP 22352597A JP 22352597 A JP22352597 A JP 22352597A JP H1165623 A JPH1165623 A JP H1165623A
- Authority
- JP
- Japan
- Prior art keywords
- transmission
- request
- reception
- task
- 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
Links
Landscapes
- Programmable Controllers (AREA)
Abstract
(57)【要約】
【課題】 データリンク要求を確実に処理すると共に、
各割込み処理要求をもバランス良く処理することが可能
なプログラマブルコントローラを提供する。 【解決手段】 プログラマブルコントローラ(PC)に
よるスキャンサイクルの実行中に外部のPCからのデー
タリンク要求が発生すると、受信ハンドラは、当該受信
要求を受信キューに順次セットし、また、外部のPCに
対するデータリンク要求がPCから発生すると、送信ハ
ンドラは、当該送信要求を送信キューに順次セットす
る。そして、OSのタスク制御部は、スキャンサイクル
の実行後に、受信キューにセットされている受信要求を
処理する応答タスクを起動すると共に、送信キューにセ
ットされている送信要求を処理する送信タスクを起動す
るデータリンクサイクルを実行させる。
各割込み処理要求をもバランス良く処理することが可能
なプログラマブルコントローラを提供する。 【解決手段】 プログラマブルコントローラ(PC)に
よるスキャンサイクルの実行中に外部のPCからのデー
タリンク要求が発生すると、受信ハンドラは、当該受信
要求を受信キューに順次セットし、また、外部のPCに
対するデータリンク要求がPCから発生すると、送信ハ
ンドラは、当該送信要求を送信キューに順次セットす
る。そして、OSのタスク制御部は、スキャンサイクル
の実行後に、受信キューにセットされている受信要求を
処理する応答タスクを起動すると共に、送信キューにセ
ットされている送信要求を処理する送信タスクを起動す
るデータリンクサイクルを実行させる。
Description
【0001】
【発明の属する技術分野】本発明は、入力スキャン,プ
ログラムスキャン及び出力スキャンからなるスキャンサ
イクルをプロセッサに繰返し実行させることによって、
外部に接続された制御対象を制御するプログラマブルコ
ントローラに関する。
ログラムスキャン及び出力スキャンからなるスキャンサ
イクルをプロセッサに繰返し実行させることによって、
外部に接続された制御対象を制御するプログラマブルコ
ントローラに関する。
【0002】
【発明が解決しようとする課題】プログラマブルコント
ローラ(以下、PCと称す)のプロセッサは、上記のス
キャンサイクルを繰返し実行している間に、一定時間毎
に発生する割込みプログラムの処理要求や、I/O割込
み要求、他のPCからのデータリンク要求、などの各種
割込み処理要求を受け付けるようになっている。
ローラ(以下、PCと称す)のプロセッサは、上記のス
キャンサイクルを繰返し実行している間に、一定時間毎
に発生する割込みプログラムの処理要求や、I/O割込
み要求、他のPCからのデータリンク要求、などの各種
割込み処理要求を受け付けるようになっている。
【0003】これら各種の割込み処理要求には、割込み
が競合した場合に対処できるように予め優先順位が設定
されている。そして、プロセッサは、割込み処理要求を
受け付けると、当該割込み処理要求の優先順位と現在行
っている処理タスクの優先順位とを比較して、前者の優
先順位が高ければ後者の処理タスクを中断し、前者の処
理タスクを優先的に実行するようになっている。
が競合した場合に対処できるように予め優先順位が設定
されている。そして、プロセッサは、割込み処理要求を
受け付けると、当該割込み処理要求の優先順位と現在行
っている処理タスクの優先順位とを比較して、前者の優
先順位が高ければ後者の処理タスクを中断し、前者の処
理タスクを優先的に実行するようになっている。
【0004】しかし、この様な割込み処理方式では、優
先順位の高い割込み処理要求が連続的に多数発生した時
には、優先順位の低い割込み処理要求の処理が著しく遅
延することがある。そして、その処理要求が何らかの機
能を同時に作動させる目的を有するものである場合は、
当該目的の達成が保証されなくなるという問題があっ
た。
先順位の高い割込み処理要求が連続的に多数発生した時
には、優先順位の低い割込み処理要求の処理が著しく遅
延することがある。そして、その処理要求が何らかの機
能を同時に作動させる目的を有するものである場合は、
当該目的の達成が保証されなくなるという問題があっ
た。
【0005】斯様な問題を解決するため、例えば、特開
平3−282903号公報に開示されているように、デ
ータリンク要求を処理するタスクを優先して実行させ、
その実行中に発生した他の割込み処理要求を実行待ち状
態にして、データリンクタスクの実行後に、実行待ち状
態になっている割込み処理タスクを、割込みの種類毎に
各1個ずつ処理するようにしたものがある。
平3−282903号公報に開示されているように、デ
ータリンク要求を処理するタスクを優先して実行させ、
その実行中に発生した他の割込み処理要求を実行待ち状
態にして、データリンクタスクの実行後に、実行待ち状
態になっている割込み処理タスクを、割込みの種類毎に
各1個ずつ処理するようにしたものがある。
【0006】しかしながら、上記の割込み処理方式にお
いては、データリンク要求が所定時間内に大量に発生し
た場合は、発生したデータリンク要求を全部処理しない
限り、その他の割込み処理要求は処理が開始されないこ
とになる。即ち、この方式では、データリンク要求が発
生する頻度よりもその他の処理要求が発生する頻度が高
いということを前提としており、その前提が維持されな
ければ、一部の処理要求は滞りを生じることになるとい
う問題がある。
いては、データリンク要求が所定時間内に大量に発生し
た場合は、発生したデータリンク要求を全部処理しない
限り、その他の割込み処理要求は処理が開始されないこ
とになる。即ち、この方式では、データリンク要求が発
生する頻度よりもその他の処理要求が発生する頻度が高
いということを前提としており、その前提が維持されな
ければ、一部の処理要求は滞りを生じることになるとい
う問題がある。
【0007】本発明は上記事情に鑑みてなされたもので
あり、その目的は、データリンク要求を確実に処理する
と共に、各割込み処理要求をもバランス良く処理するこ
とが可能なプログラマブルコントローラを提供すること
にある。
あり、その目的は、データリンク要求を確実に処理する
と共に、各割込み処理要求をもバランス良く処理するこ
とが可能なプログラマブルコントローラを提供すること
にある。
【0008】
【課題を解決するための手段】請求項1記載のプログラ
マブルコントローラによれば、プロセッサによるスキャ
ンサイクルの実行中に外部装置からのデータリンク要求
が発生すると、受信キューセット手段は、当該受信要求
を受信キューに順次セットし、また、外部装置に対する
データリンク要求が発生すると、送信キューセット手段
は、当該送信要求を送信キューに順次セットする。そし
て、リンクサイクル実行手段は、プロセッサによるスキ
ャンサイクルの実行後に、受信キューにセットされてい
る受信要求を処理する応答タスクを起動すると共に、前
記送信キューにセットされている送信要求を処理する送
信タスクを起動するデータリンクサイクルをプロセッサ
に実行させる。
マブルコントローラによれば、プロセッサによるスキャ
ンサイクルの実行中に外部装置からのデータリンク要求
が発生すると、受信キューセット手段は、当該受信要求
を受信キューに順次セットし、また、外部装置に対する
データリンク要求が発生すると、送信キューセット手段
は、当該送信要求を送信キューに順次セットする。そし
て、リンクサイクル実行手段は、プロセッサによるスキ
ャンサイクルの実行後に、受信キューにセットされてい
る受信要求を処理する応答タスクを起動すると共に、前
記送信キューにセットされている送信要求を処理する送
信タスクを起動するデータリンクサイクルをプロセッサ
に実行させる。
【0009】従って、スキャンサイクルの実行中に発生
したデータリンク要求は、当該スキャンサイクルの実行
後に確実に処理されるので、従来とは異なり、データリ
ンク性能が大きく劣化することがなく、一定の応答性能
を維持することができる。逆に、スキャンサイクルの実
行中に発生する他の割込み処理も、データリンク要求の
処理によって妨げられることがないので、リアルタイム
で処理することが望ましい割込み処理に対する応答性を
も良好にし得て、各割込み処理要求をバランス良く処理
することができる。
したデータリンク要求は、当該スキャンサイクルの実行
後に確実に処理されるので、従来とは異なり、データリ
ンク性能が大きく劣化することがなく、一定の応答性能
を維持することができる。逆に、スキャンサイクルの実
行中に発生する他の割込み処理も、データリンク要求の
処理によって妨げられることがないので、リアルタイム
で処理することが望ましい割込み処理に対する応答性を
も良好にし得て、各割込み処理要求をバランス良く処理
することができる。
【0010】請求項2記載のプログラマブルコントロー
ラによれば、リンクサイクル実行手段によって起動され
る応答タスク及び送信タスクは、1回の起動時にプロセ
ッサに処理させる受信要求及び送信要求の数に制限を設
けるので、データリンクサイクルの実行時間を制限する
ことによって、各割込み処理要求を一層バランス良く処
理することができる。
ラによれば、リンクサイクル実行手段によって起動され
る応答タスク及び送信タスクは、1回の起動時にプロセ
ッサに処理させる受信要求及び送信要求の数に制限を設
けるので、データリンクサイクルの実行時間を制限する
ことによって、各割込み処理要求を一層バランス良く処
理することができる。
【0011】
【発明の実施の形態】以下、本発明の一実施例について
図面を参照して説明する。図6は、ラックの各スロット
にセットされたプログラマブルコントローラ(以下、P
Cと称す)及びその他のユニットのI/O構成例を示す
ものである。ラック1の左端には、各ユニットに電源を
供給する電源ユニット2が配置されている。そして、そ
の隣のスロット0にはPC3が配置され、以降のスロッ
ト1,2及び3には、夫々入力ユニット4,出力ユニッ
ト5及び通信ユニット6が配置されている。
図面を参照して説明する。図6は、ラックの各スロット
にセットされたプログラマブルコントローラ(以下、P
Cと称す)及びその他のユニットのI/O構成例を示す
ものである。ラック1の左端には、各ユニットに電源を
供給する電源ユニット2が配置されている。そして、そ
の隣のスロット0にはPC3が配置され、以降のスロッ
ト1,2及び3には、夫々入力ユニット4,出力ユニッ
ト5及び通信ユニット6が配置されている。
【0012】入力ユニット4は、図示しないリレーから
PC3に対してデータを入力するためのユニットであ
り、出力ユニット5は、逆に、PC3からリレーに対し
てデータを出力するユニットである。また、通信ユニッ
ト6は、PC3とその他のPCとの通信を行うためのユ
ニットである。
PC3に対してデータを入力するためのユニットであ
り、出力ユニット5は、逆に、PC3からリレーに対し
てデータを出力するユニットである。また、通信ユニッ
ト6は、PC3とその他のPCとの通信を行うためのユ
ニットである。
【0013】図7は、PC3の電気的構成を示す機能ブ
ロック図である。この図5において、汎用CPU(プロ
セッサ,以下、単にCPUと称す)7及びビット演算プ
ロセッサ(プロセッサ,以下、単に演算プロセッサと称
す)8は、ROM9,RAM10及びI/Oインターフ
ェイス11に、アドレス及びデータバス並びに制御信号
線などからなるバス12を介して接続されている。
ロック図である。この図5において、汎用CPU(プロ
セッサ,以下、単にCPUと称す)7及びビット演算プ
ロセッサ(プロセッサ,以下、単に演算プロセッサと称
す)8は、ROM9,RAM10及びI/Oインターフ
ェイス11に、アドレス及びデータバス並びに制御信号
線などからなるバス12を介して接続されている。
【0014】ROM9には、後述する受信ハンドラ(受
信キューセット手段)9a,送信ハンドラ(送信キュー
セット手段)9b,応答タスク9c,送信タスク9d及
びタイムオーバ監視タスク(以下、監視タスクと称す)
9eなどの各タスクのプログラムや、それら各タスクを
制御するタスク制御部(スキャンサイクル実行手段,リ
ンクサイクル実行手段)9fのプログラムなどがオペレ
ーティングシステム(以下、OSと称す)として格納さ
れている(図8(b)参照)。
信キューセット手段)9a,送信ハンドラ(送信キュー
セット手段)9b,応答タスク9c,送信タスク9d及
びタイムオーバ監視タスク(以下、監視タスクと称す)
9eなどの各タスクのプログラムや、それら各タスクを
制御するタスク制御部(スキャンサイクル実行手段,リ
ンクサイクル実行手段)9fのプログラムなどがオペレ
ーティングシステム(以下、OSと称す)として格納さ
れている(図8(b)参照)。
【0015】RAM10には、ユーザが作成したシーケ
ンスプログラム(ユーザプログラム)が格納されると共
に、後述する受信キュー10a及び送信キュー10bの
領域が確保されている(図8(a)参照)。また、I/
Oインターフェイス11は、ラック1の図示しないバッ
クプレーンに設けられているシステムバス13を介し
て、PC3と各ユニット4〜6とを接続するものであ
る。
ンスプログラム(ユーザプログラム)が格納されると共
に、後述する受信キュー10a及び送信キュー10bの
領域が確保されている(図8(a)参照)。また、I/
Oインターフェイス11は、ラック1の図示しないバッ
クプレーンに設けられているシステムバス13を介し
て、PC3と各ユニット4〜6とを接続するものであ
る。
【0016】演算プロセッサ8は、シーケンスプログラ
ム中の基本命令(ビット演算,ワード加減算,ワード論
理演算など)のみを実行するようになっている。CPU
7は、プログラムの実行前に後述するように前処理を行
うと共に、プログラム中の応用命令(ワード乗除算,分
岐,ロングワード四則演算及び論理演算などの、演算プ
ロセッサ8では実行できない命令)を実行するようにな
っている。また、CPU7は、入力,出力及び通信ユニ
ット4,5及び6からの割込みを受け付けて処理すると
共に、シーケンスプログラムの実行によって発生するソ
フトウエア割込みをも処理するようになっている。
ム中の基本命令(ビット演算,ワード加減算,ワード論
理演算など)のみを実行するようになっている。CPU
7は、プログラムの実行前に後述するように前処理を行
うと共に、プログラム中の応用命令(ワード乗除算,分
岐,ロングワード四則演算及び論理演算などの、演算プ
ロセッサ8では実行できない命令)を実行するようにな
っている。また、CPU7は、入力,出力及び通信ユニ
ット4,5及び6からの割込みを受け付けて処理すると
共に、シーケンスプログラムの実行によって発生するソ
フトウエア割込みをも処理するようになっている。
【0017】次に、本実施例の作用について図1乃至図
5をも参照して説明する。図1は、PC3のOSによっ
て制御されるソフトウエア処理の流れを概略的に示すも
のである。
5をも参照して説明する。図1は、PC3のOSによっ
て制御されるソフトウエア処理の流れを概略的に示すも
のである。
【0018】この図1に示すように、PC3のCPU7
及び演算プロセッサ8は、入力ユニット4からの入力情
報を得る入力スキャン,シーケンスプログラムのルーチ
ンを実行するプログラムスキャン及びそのシーケンスプ
ログラムの実行結果に応じた出力情報を出力ユニット5
に対して出力する出力スキャンからなるスキャンサイク
ルを、繰返し実行するようになっている。
及び演算プロセッサ8は、入力ユニット4からの入力情
報を得る入力スキャン,シーケンスプログラムのルーチ
ンを実行するプログラムスキャン及びそのシーケンスプ
ログラムの実行結果に応じた出力情報を出力ユニット5
に対して出力する出力スキャンからなるスキャンサイク
ルを、繰返し実行するようになっている。
【0019】スキャンサイクルの実行中において発生す
る、データリンク要求以外の割込みは、その割込みが発
生した時点で処理されるようになっている。そのような
割込みには、以下のようなものがある。 時限割込み1:一定時間毎に、シーケンスプログラム
の割込みプログラムを実行する。 時限割込み2:一定時間毎に、PC3の各部が正常状
態にあるか否かを検査する。 タイマリフレッシュ:シーケンスプログラム中で使用
されるタイマの値を更新する。 I/O割込み:入力,出力ユニット4,5からの割込
み。シーケンスプログラムの割込み処理プログラムを起
動する。 尚、これらの割込みを処理する時間についても、スキャ
ンサイクルの時間が著しく長くなることがないように、
処理数等に一定の制限が設けてある。
る、データリンク要求以外の割込みは、その割込みが発
生した時点で処理されるようになっている。そのような
割込みには、以下のようなものがある。 時限割込み1:一定時間毎に、シーケンスプログラム
の割込みプログラムを実行する。 時限割込み2:一定時間毎に、PC3の各部が正常状
態にあるか否かを検査する。 タイマリフレッシュ:シーケンスプログラム中で使用
されるタイマの値を更新する。 I/O割込み:入力,出力ユニット4,5からの割込
み。シーケンスプログラムの割込み処理プログラムを起
動する。 尚、これらの割込みを処理する時間についても、スキャ
ンサイクルの時間が著しく長くなることがないように、
処理数等に一定の制限が設けてある。
【0020】また、タスク制御部9fは、時限割込み2
のように、比較的緊急性が低い割込みの処理タスクにつ
いては、1回の割込みによる処理タスクの実行時間に制
限を設ける。例えば、処理タスクのルーチンを一通り実
行するのに100msの時間を要する場合、1回の割込
みによる実行時間を20msなどに制限する。従って、
1回の割込みでは、PC3の各部の検査項目の内、制限
時間内で検査できる範囲のみが検査され、5回の割込み
によって全項目の検査が完了することになる。
のように、比較的緊急性が低い割込みの処理タスクにつ
いては、1回の割込みによる処理タスクの実行時間に制
限を設ける。例えば、処理タスクのルーチンを一通り実
行するのに100msの時間を要する場合、1回の割込
みによる実行時間を20msなどに制限する。従って、
1回の割込みでは、PC3の各部の検査項目の内、制限
時間内で検査できる範囲のみが検査され、5回の割込み
によって全項目の検査が完了することになる。
【0021】図2及び図3に示すように、スキャンサイ
クルの実行中に、通信ユニット6を介したデータリンク
要求(受信1,2)、或いはPC3から通信ユニット6
へのデータリンク要求(リンク命令実行1,2)が発生
した場合は、夫々受信ハンドラ9a、或いは送信ハンド
ラ9bが起動される。
クルの実行中に、通信ユニット6を介したデータリンク
要求(受信1,2)、或いはPC3から通信ユニット6
へのデータリンク要求(リンク命令実行1,2)が発生
した場合は、夫々受信ハンドラ9a、或いは送信ハンド
ラ9bが起動される。
【0022】受信及び送信ハンドラ9a及び9bは、O
Sの割込み処理プログラムであり、データリンク要求が
発生すると同時に与えられる受信メッセージ(受信1,
2)や命令(命令1,2)をRAM10上の受信キュー
10a及び送信キュー10bに書込むと共に、受信フラ
グ及び送信フラグをRAM10上の所定領域にセットす
るようになっている。
Sの割込み処理プログラムであり、データリンク要求が
発生すると同時に与えられる受信メッセージ(受信1,
2)や命令(命令1,2)をRAM10上の受信キュー
10a及び送信キュー10bに書込むと共に、受信フラ
グ及び送信フラグをRAM10上の所定領域にセットす
るようになっている。
【0023】そして、受信フラグ及び送信フラグがセッ
トされた場合は、スキャンサイクルの終了後に、OSの
応答タスク9c及び送信タスク9dが起動されて、受信
キュー10a及び送信キュー10bにセットされた受信
及び送信要求に応じた処理を実行するようになってい
る。この期間がデータリンクサイクル(以下、リンクサ
イクルと称す)に相当する。
トされた場合は、スキャンサイクルの終了後に、OSの
応答タスク9c及び送信タスク9dが起動されて、受信
キュー10a及び送信キュー10bにセットされた受信
及び送信要求に応じた処理を実行するようになってい
る。この期間がデータリンクサイクル(以下、リンクサ
イクルと称す)に相当する。
【0024】図4は、応答タスク9cの制御内容を示す
フローチャートである。この図2においては、先ず、
「受信数が規定以上?」の判断ステップR1において、
受信キュー10aにセットされている受信メッセージの
数が規定数以上か否かを判断する。ここで、規定数と
は、リンクサイクルの処理時間が長くなり過ぎないよう
に設定された制限であり、例えば“5”などに設定され
る。
フローチャートである。この図2においては、先ず、
「受信数が規定以上?」の判断ステップR1において、
受信キュー10aにセットされている受信メッセージの
数が規定数以上か否かを判断する。ここで、規定数と
は、リンクサイクルの処理時間が長くなり過ぎないよう
に設定された制限であり、例えば“5”などに設定され
る。
【0025】判断ステップR1において、受信メッセー
ジ数が規定数未満であり「NO」と判断すると、「応答
処理実行」の処理ステップR2に移行する。処理ステッ
プR2においては、受信キュー10aにセットされた受
信メッセージに応じた処理をPC3側において実行し、
応答を割込みの発生元に対して返すようにする。そし
て、応答タスク9cの処理を終了する。
ジ数が規定数未満であり「NO」と判断すると、「応答
処理実行」の処理ステップR2に移行する。処理ステッ
プR2においては、受信キュー10aにセットされた受
信メッセージに応じた処理をPC3側において実行し、
応答を割込みの発生元に対して返すようにする。そし
て、応答タスク9cの処理を終了する。
【0026】一方、判断ステップR1において、受信メ
ッセージ数が規定数以上であり「YES」と判断する
と、「規定数分だけ応答処理実行」の処理ステップR3
に移行する。処理ステップR3においては、受信キュー
10aにセットされた受信メッセージの内、先頭から規
定数分“5”だけの受信メッセージに応じた処理をPC
3側において実行し、割込みの発生元に対して応答を返
すようにする。そして、「受信フラグセット」の処理ス
テップR4に移行する。
ッセージ数が規定数以上であり「YES」と判断する
と、「規定数分だけ応答処理実行」の処理ステップR3
に移行する。処理ステップR3においては、受信キュー
10aにセットされた受信メッセージの内、先頭から規
定数分“5”だけの受信メッセージに応じた処理をPC
3側において実行し、割込みの発生元に対して応答を返
すようにする。そして、「受信フラグセット」の処理ス
テップR4に移行する。
【0027】応答タスク9cが起動されると、受信フラ
グは自動的にクリアされるが、この場合は、受信フラグ
に未処理の受信メッセージが残っているので、次回のリ
ンクサイクルにおいて応答タスク9cを起動するため、
処理ステップR4において、受信フラグをセットする。
そして、処理を終了する。尚、リンクサイクルとスキャ
ンサイクルとでは、スキャンサイクルの処理時間の方が
短いため、残った処理を次回のリンクサイクルに回して
も処理が遅延する影響は少ない。
グは自動的にクリアされるが、この場合は、受信フラグ
に未処理の受信メッセージが残っているので、次回のリ
ンクサイクルにおいて応答タスク9cを起動するため、
処理ステップR4において、受信フラグをセットする。
そして、処理を終了する。尚、リンクサイクルとスキャ
ンサイクルとでは、スキャンサイクルの処理時間の方が
短いため、残った処理を次回のリンクサイクルに回して
も処理が遅延する影響は少ない。
【0028】また、図5は、送信タスク9dの制御内容
を示すフローチャートである。この図5においては、先
ず、「応答待ちパケット有り?」の判断ステップS1に
おいて、応答待ちパケットがリストアップされているか
否かを判断する。
を示すフローチャートである。この図5においては、先
ず、「応答待ちパケット有り?」の判断ステップS1に
おいて、応答待ちパケットがリストアップされているか
否かを判断する。
【0029】ここで、応答待ちパケットとは、送信タス
ク9dにおいてPC3から他のPCなどに対して送信を
行った結果作成され、その送信先から応答が帰って来る
のを待っている間に、RAM10の所定領域にリストア
ップされているものである。応答待ちパケットの内容
は、通番や送信先を示すコード,送信を行った時間など
からなっている。
ク9dにおいてPC3から他のPCなどに対して送信を
行った結果作成され、その送信先から応答が帰って来る
のを待っている間に、RAM10の所定領域にリストア
ップされているものである。応答待ちパケットの内容
は、通番や送信先を示すコード,送信を行った時間など
からなっている。
【0030】判断ステップS1において、応答待ちパケ
ットがリストアップされておらず「NO」と判断する
と、「送信要求規定数以下?」の判断ステップS2に移
行する。判断ステップS2においては、送信キュー10
bにセットされている送信要求(命令1,2,…)の数
が規定数以上か否かを判断する。ここでの規定数は、応
答タスク9cについて前述したものと同様の理由で設定
されている。
ットがリストアップされておらず「NO」と判断する
と、「送信要求規定数以下?」の判断ステップS2に移
行する。判断ステップS2においては、送信キュー10
bにセットされている送信要求(命令1,2,…)の数
が規定数以上か否かを判断する。ここでの規定数は、応
答タスク9cについて前述したものと同様の理由で設定
されている。
【0031】判断ステップS2において、送信要求数が
規定数以下であり「YES」と判断すると、次の「キュ
ーから1個取出し送信パケットを作成」の処理ステップ
S3に移行する。処理ステップS3において、送信キュ
ー10bにセットされている送信要求を先頭から1個取
出して、送信を行うための送信パケットを作成する。送
信パケットとは、送信メッセージ(命令)に、送信を行
うのに必要なデータ等を付加して所定のデータフォーマ
ットに構成したものである。
規定数以下であり「YES」と判断すると、次の「キュ
ーから1個取出し送信パケットを作成」の処理ステップ
S3に移行する。処理ステップS3において、送信キュ
ー10bにセットされている送信要求を先頭から1個取
出して、送信を行うための送信パケットを作成する。送
信パケットとは、送信メッセージ(命令)に、送信を行
うのに必要なデータ等を付加して所定のデータフォーマ
ットに構成したものである。
【0032】送信パケットを1個作成すると、次の「送
信キューが空?」の判断ステップS4に移行する。判断
ステップS4においては、送信キュー10bにセットさ
れた送信要求を全て取出したか否かを判断する。送信要
求がまだ残っており「NO」と判断すると、ステップS
2に移行する。
信キューが空?」の判断ステップS4に移行する。判断
ステップS4においては、送信キュー10bにセットさ
れた送信要求を全て取出したか否かを判断する。送信要
求がまだ残っており「NO」と判断すると、ステップS
2に移行する。
【0033】即ち、送信キュー10bにある送信要求数
が規定数以下の場合は、ステップS2〜S4のループを
回ることによって、その送信要求を送信キュー10bか
ら全て取出して判断ステップS4において「YES」と
判断するまで、1個ずつ送信要求が取出されて送信パケ
ットが作成される。
が規定数以下の場合は、ステップS2〜S4のループを
回ることによって、その送信要求を送信キュー10bか
ら全て取出して判断ステップS4において「YES」と
判断するまで、1個ずつ送信要求が取出されて送信パケ
ットが作成される。
【0034】そして、判断ステップS4において「YE
S」と判断すると、「送信」の処理ステップS6に移行
して、作成した送信パケットを全て送信する。送信と同
時に、応答待ちパケットが作成されてリストアップされ
る。また、この時監視タスク9eが起動され(処理ステ
ップW3)、この時点で新規に送信されたものに対応す
る応答待ちパケットに、送信時刻を書込んで記憶する。
その後、送信タスク処理を終了する。
S」と判断すると、「送信」の処理ステップS6に移行
して、作成した送信パケットを全て送信する。送信と同
時に、応答待ちパケットが作成されてリストアップされ
る。また、この時監視タスク9eが起動され(処理ステ
ップW3)、この時点で新規に送信されたものに対応す
る応答待ちパケットに、送信時刻を書込んで記憶する。
その後、送信タスク処理を終了する。
【0035】一方、判断ステップS2において、送信キ
ュー10bにある送信要求数が規定数を超えており「N
O」と判断すると、「規定数の送信パケットを作成」の
処理ステップS5に移行する。処理ステップS5におい
ては、送信キュー10bにある送信要求の内、先頭から
規定数分だけを取出して送信パケットを作成する。
ュー10bにある送信要求数が規定数を超えており「N
O」と判断すると、「規定数の送信パケットを作成」の
処理ステップS5に移行する。処理ステップS5におい
ては、送信キュー10bにある送信要求の内、先頭から
規定数分だけを取出して送信パケットを作成する。
【0036】そして、次の「送信フラグセット」の処理
ステップS5aに移行して、次回のリンクサイクルにお
いて送信タスク9dが起動されるように送信フラグをセ
ットする。すると、ステップS6に移行して、規定数分
の送信パケットを送信する。
ステップS5aに移行して、次回のリンクサイクルにお
いて送信タスク9dが起動されるように送信フラグをセ
ットする。すると、ステップS6に移行して、規定数分
の送信パケットを送信する。
【0037】また、ステップS1において、既に応答待
ちパケットがリストアップされており「YES」と判断
すると、監視タスク9eが起動される(判断ステップW
1)。その「タイムオーバー?」の判断ステップW1に
おいて、監視タスク9eは、応答待ちパケットに書込ま
れている送信時間を参照して、規定されている応答待ち
時間をオーバーしたか否かを判断する。待ち時間をオー
バーした応答待ちパケットがなければ「NO」と判断し
てステップS2に移行する。
ちパケットがリストアップされており「YES」と判断
すると、監視タスク9eが起動される(判断ステップW
1)。その「タイムオーバー?」の判断ステップW1に
おいて、監視タスク9eは、応答待ちパケットに書込ま
れている送信時間を参照して、規定されている応答待ち
時間をオーバーしたか否かを判断する。待ち時間をオー
バーした応答待ちパケットがなければ「NO」と判断し
てステップS2に移行する。
【0038】判断ステップW1において、待ち時間をオ
ーバーした応答待ちパケットがある場合は、監視タスク
9eは「YES」と判断して、「エラーフラグをセット
し、該当パケットを削除」の処理ステップW2に移行す
る。処理ステップW2においては、送信先から規定時間
内に応答がなかったことを示すエラーフラグをRAM1
0の所定領域にセットすると、リストからタイムオーバ
ーとなった応答待ちパケットを削除する。そして、ステ
ップS2に移行する。
ーバーした応答待ちパケットがある場合は、監視タスク
9eは「YES」と判断して、「エラーフラグをセット
し、該当パケットを削除」の処理ステップW2に移行す
る。処理ステップW2においては、送信先から規定時間
内に応答がなかったことを示すエラーフラグをRAM1
0の所定領域にセットすると、リストからタイムオーバ
ーとなった応答待ちパケットを削除する。そして、ステ
ップS2に移行する。
【0039】以上のように本実施例によれば、PC3の
CPU7及び演算プロセッサ8によるスキャンサイクル
の実行中に外部のPCからのデータリンク要求が発生す
ると、受信ハンドラ9aは、当該受信要求を受信キュー
10aに順次セットし、また、外部のPCに対するデー
タリンク要求がPC3側から発生すると、送信ハンドラ
9bは、当該送信要求を送信キュー10bに順次セット
する。そして、OSのタスク制御部9fは、スキャンサ
イクルの実行後に、受信キュー10aにセットされてい
る受信要求を処理する応答タスク9cを起動すると共
に、送信キュー10bにセットされている送信要求を処
理する送信タスク9dを起動するデータリンクサイクル
をCPU7または演算プロセッサ8に実行させるように
した。
CPU7及び演算プロセッサ8によるスキャンサイクル
の実行中に外部のPCからのデータリンク要求が発生す
ると、受信ハンドラ9aは、当該受信要求を受信キュー
10aに順次セットし、また、外部のPCに対するデー
タリンク要求がPC3側から発生すると、送信ハンドラ
9bは、当該送信要求を送信キュー10bに順次セット
する。そして、OSのタスク制御部9fは、スキャンサ
イクルの実行後に、受信キュー10aにセットされてい
る受信要求を処理する応答タスク9cを起動すると共
に、送信キュー10bにセットされている送信要求を処
理する送信タスク9dを起動するデータリンクサイクル
をCPU7または演算プロセッサ8に実行させるように
した。
【0040】従って、スキャンサイクルの実行中に発生
したデータリンク要求は、当該スキャンサイクルの実行
後に確実に処理されるので、従来とは異なり、データリ
ンク性能が大きく劣化することがなく、一定の応答性能
を維持することができる。逆に、スキャンサイクルの実
行中に発生する他の割込み処理も、データリンク要求の
処理によって妨げられることがないので、リアルタイム
で処理することが望ましいI/O割込みなどの処理に対
する応答性をも良好にし得て、各割込み処理要求をバラ
ンス良く処理することができる。
したデータリンク要求は、当該スキャンサイクルの実行
後に確実に処理されるので、従来とは異なり、データリ
ンク性能が大きく劣化することがなく、一定の応答性能
を維持することができる。逆に、スキャンサイクルの実
行中に発生する他の割込み処理も、データリンク要求の
処理によって妨げられることがないので、リアルタイム
で処理することが望ましいI/O割込みなどの処理に対
する応答性をも良好にし得て、各割込み処理要求をバラ
ンス良く処理することができる。
【0041】また、本実施例によれば、タスク制御部9
fによって起動される応答タスク及び送信タスクに、1
回の起動時にCPU7または演算プロセッサ8に処理さ
せる受信要求及び送信要求の数に制限を設けたので、デ
ータリンクサイクルの実行時間を制限することによっ
て、各割込み処理要求を一層バランス良く処理すること
ができる。
fによって起動される応答タスク及び送信タスクに、1
回の起動時にCPU7または演算プロセッサ8に処理さ
せる受信要求及び送信要求の数に制限を設けたので、デ
ータリンクサイクルの実行時間を制限することによっ
て、各割込み処理要求を一層バランス良く処理すること
ができる。
【0042】本発明は上記し且つ図面に記載した実施例
にのみ限定されるものではなく、次のような変形または
拡張が可能である。システムの仕様によって、データリ
ンク要求が一定時間内において大量に発生する可能性が
低い場合には、1回の起動時に処理される受信要求及び
送信要求の数に、特に制限を設ける必要はない。また、
システムの仕様に応じてユーザが制限数を設定できるよ
うにしても良い。
にのみ限定されるものではなく、次のような変形または
拡張が可能である。システムの仕様によって、データリ
ンク要求が一定時間内において大量に発生する可能性が
低い場合には、1回の起動時に処理される受信要求及び
送信要求の数に、特に制限を設ける必要はない。また、
システムの仕様に応じてユーザが制限数を設定できるよ
うにしても良い。
【0043】プロセッサは、必ずしもCPU7及び演算
プロセッサ8の両方を用いる必要はなく、1個のCPU
で基本命令及び応用命令を処理するものであっても良
い。図1では、受信要求と送信要求とが異なるスキャン
サイクルにおいて発生した例を示したが、両者が同じス
キャンサイクルにおいて同時に発生した場合であって
も、その次のリンクサイクルにおいて応答タスク9c,
送信タスク9dをシリアルに起動して処理すれば良い。
受信及び送信タスク9c及び9dを起動するのに受信及
び送信フラグをセットするのに代えて、タスク制御部9
fが受信及び送信キュー10a及び10bを直接参照す
ることにより、受信及び送信要求がセットされていれば
各タスクを起動するようにしても良い。
プロセッサ8の両方を用いる必要はなく、1個のCPU
で基本命令及び応用命令を処理するものであっても良
い。図1では、受信要求と送信要求とが異なるスキャン
サイクルにおいて発生した例を示したが、両者が同じス
キャンサイクルにおいて同時に発生した場合であって
も、その次のリンクサイクルにおいて応答タスク9c,
送信タスク9dをシリアルに起動して処理すれば良い。
受信及び送信タスク9c及び9dを起動するのに受信及
び送信フラグをセットするのに代えて、タスク制御部9
fが受信及び送信キュー10a及び10bを直接参照す
ることにより、受信及び送信要求がセットされていれば
各タスクを起動するようにしても良い。
【図1】本発明の一実施例におけるスキャンサイクル及
びリンクサイクルの処理の流れを概念的に示す図
びリンクサイクルの処理の流れを概念的に示す図
【図2】図1において、発生した受信要求に対応する部
分を詳細に示す図
分を詳細に示す図
【図3】図1において、発生した送信要求に対応する部
分を詳細に示す図
分を詳細に示す図
【図4】応答タスクの処理内容を示すフローチャート
【図5】送信タスクの処理内容を示すフローチャート
【図6】プログラマブルコントローラを含むラック全体
のI/O構成を示す図
のI/O構成を示す図
【図7】プログラマブルコントローラの要部の電気的構
成を示す図
成を示す図
【図8】(a)はプログラマブルコントローラのRAM
の内容を概念的に示す図、(b)は同プログラマブルコ
ントローラのROMの内容を概念的に示す図
の内容を概念的に示す図、(b)は同プログラマブルコ
ントローラのROMの内容を概念的に示す図
3はプログラマブルコントローラ、4は入力ユニット、
5は出力ユニット、7は汎用CPU(プロセッサ)、8
はビット演算プロセッサ(プロセッサ)、9aは受信ハ
ンドラ(受信キューセット手段)、9bは送信ハンドラ
(送信キューセット手段)、9cは応答タスク、9dは
送信タスク、9fはタスク制御部(スキャンサイクル実
行手段,リンクサイクル実行手段)、10aは受信キュ
ー、10bは送信キューを示す。
5は出力ユニット、7は汎用CPU(プロセッサ)、8
はビット演算プロセッサ(プロセッサ)、9aは受信ハ
ンドラ(受信キューセット手段)、9bは送信ハンドラ
(送信キューセット手段)、9cは応答タスク、9dは
送信タスク、9fはタスク制御部(スキャンサイクル実
行手段,リンクサイクル実行手段)、10aは受信キュ
ー、10bは送信キューを示す。
Claims (2)
- 【請求項1】 入力ユニットからの入力情報を得る入力
スキャン,ユーザプログラムのルーチンを実行するプロ
グラムスキャン及び前記ユーザプログラムの実行結果に
応じた出力情報を出力ユニットに対して出力する出力ス
キャンからなるスキャンサイクルをプロセッサに繰返し
実行させるスキャンサイクル実行手段と、 前記プロセッサによる前記スキャンサイクルの実行中に
おいて、外部装置からのデータリンク要求が発生すると
当該受信要求を受信キューに順次セットする受信キュー
セット手段と、 前記プロセッサによる前記スキャンサイクルの実行中に
おいて、外部装置に対するデータリンク要求が発生する
と当該送信要求を送信キューに順次セットする送信キュ
ーセット手段と、 前記プロセッサによる前記スキャンサイクルの実行後
に、前記受信キューにセットされている受信要求を処理
する応答タスクを起動すると共に、前記送信キューにセ
ットされている送信要求を処理する送信タスクを起動す
るデータリンクサイクルを前記プロセッサに実行させる
リンクサイクル実行手段とを具備したことを特徴とする
プログラマブルコントローラ。 - 【請求項2】 前記リンクサイクル実行手段によって起
動される前記応答タスク及び送信タスクは、1回の起動
時に前記プロセッサに処理させる受信要求及び送信要求
の数に制限を設けていることを特徴とする請求項1記載
のプログラマブルコントローラ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22352597A JPH1165623A (ja) | 1997-08-20 | 1997-08-20 | プログラマブルコントローラ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22352597A JPH1165623A (ja) | 1997-08-20 | 1997-08-20 | プログラマブルコントローラ |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH1165623A true JPH1165623A (ja) | 1999-03-09 |
Family
ID=16799520
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP22352597A Pending JPH1165623A (ja) | 1997-08-20 | 1997-08-20 | プログラマブルコントローラ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH1165623A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007233847A (ja) * | 2006-03-02 | 2007-09-13 | Hitachi Ltd | ストレージシステム及びスケジューリング方法 |
US7461380B2 (en) | 2003-02-18 | 2008-12-02 | Denso Corporation | Inter-task communications method, program, recording medium, and electronic device |
JP2011039643A (ja) * | 2009-08-07 | 2011-02-24 | Keyence Corp | プログラマブルコントローラ |
US8170694B2 (en) | 2005-11-14 | 2012-05-01 | Mitsubishi Electric Corporation | Network unit and programmable controller using the same |
JP5866082B1 (ja) * | 2015-06-22 | 2016-02-17 | 三菱電機株式会社 | プログラマブルコントローラおよびプログラマブルコントローラの制御方法 |
-
1997
- 1997-08-20 JP JP22352597A patent/JPH1165623A/ja active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7461380B2 (en) | 2003-02-18 | 2008-12-02 | Denso Corporation | Inter-task communications method, program, recording medium, and electronic device |
US8170694B2 (en) | 2005-11-14 | 2012-05-01 | Mitsubishi Electric Corporation | Network unit and programmable controller using the same |
DE112006002841B4 (de) * | 2005-11-14 | 2016-12-22 | Mitsubishi Electric Corp. | Netzeinheit und programmierbare Steuervorrichtung, die selbige verwendet |
JP2007233847A (ja) * | 2006-03-02 | 2007-09-13 | Hitachi Ltd | ストレージシステム及びスケジューリング方法 |
US7950013B2 (en) | 2006-03-02 | 2011-05-24 | Hitachi, Ltd. | System for monitoring time proportion for interrupt or task processing with restriction placed in subsequent monitoring time period when allowable time proportion is exceed |
JP2011039643A (ja) * | 2009-08-07 | 2011-02-24 | Keyence Corp | プログラマブルコントローラ |
JP5866082B1 (ja) * | 2015-06-22 | 2016-02-17 | 三菱電機株式会社 | プログラマブルコントローラおよびプログラマブルコントローラの制御方法 |
WO2016207937A1 (ja) * | 2015-06-22 | 2016-12-29 | 三菱電機株式会社 | プログラマブルコントローラおよびプログラマブルコントローラの制御方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2664662B2 (ja) | コンピュータシステムにおける同時プロセスの動作方法及びマイクロコンピュータ | |
EP1503292B1 (en) | DMA controller with bus occupation time limitation and sets of DMA parameters for a plurality of logical processors | |
KR970016979A (ko) | 다중 처리 시스템에서 타스크의 큐잉 시스템 및 방법 | |
US20100299472A1 (en) | Multiprocessor system and computer program product | |
US7310803B2 (en) | Method and system for executing multiple tasks in a task set | |
JPH1165623A (ja) | プログラマブルコントローラ | |
JPH1069470A (ja) | マルチプロセッサシステム | |
EP0578496B1 (en) | Job execution method in multi-CPU system | |
JPH08202566A (ja) | プロセス間通信システム | |
JP3576437B2 (ja) | マルチプロセッサタスク制御方法及びタスク制御装置 | |
JP2001092676A (ja) | 組み込みプログラムにおけるタスク管理システム | |
JP3611166B2 (ja) | データ処理方法および装置 | |
JP3350699B2 (ja) | プログラマブルコントローラ | |
JPH1196108A (ja) | 計算機システム及びバス制御装置 | |
JP2718690B2 (ja) | 通信制御システム | |
JP2508038B2 (ja) | プログラマブル・コントロ−ラ | |
JP2001265610A (ja) | デバイス制御方法 | |
JP2000047881A (ja) | リアルタイムシステム | |
JPH11249909A (ja) | マルチタスクos上でのプロセス再起動方法 | |
JP2000029719A (ja) | 割込制御装置 | |
JPH05233525A (ja) | I/o処理装置 | |
JP6138482B2 (ja) | 組み込みシステム | |
JPH0240723A (ja) | メッセージ送受信管理方式 | |
KR960006472B1 (ko) | TICOM IOP 환경에서 FDDI펌웨어(firmware) 구동방법 | |
JPS62190544A (ja) | プログラマブル・コントロ−ラの上位リンクユニツト |