(57)【特許請求の範囲】
【請求項１】
ユーザプログラムメモリと、
システムプログラムメモリと、
所定のユーザプログラム言語にて記述されたプログラムを実行するプログラム実行機能が組み込まれた専用ＩＣと、
マイクロプロセッサとを含み、
ユーザプログラムメモリには、
１若しくは２以上のサイクル実行タスクとして実行されるユーザプログラム、１若しくは２以上の割込実行タスクとして実行されるユーザプログラムとが、前記ユーザプログラム言語で記述され専用ＩＣで実行可能な状態で格納されており、
システムプログラムメモリには、
プログラマブル・コントローラとしての機能を実現するために必要な各種のシステムプログラムが所定のマイクロプロセッサ言語で記述された状態で格納されており、
１若しくは２以上の割込実行タスクとして実行されるユーザプログラムはいずれも専用ＩＣにて実行されるように仕組まれており、
専用ＩＣによる割込用のユーザプログラムの実行前には、割込プログラム実行前処理を含む前段処理が実行され、また専用ＩＣによる割込用のユーザプログラムの実行後には、割込プログラム実行後処理を含む後段処理が実行され、かつ
専用ＩＣには、ユーザプログラム言語にて記述された所定のユーザプログラムを実行して、前段処理及び後段処理を実現する機能が仕組まれている、ことを特徴とする割込機能を備えたプログラマブル・コントローラ。
【請求項２】
マイクロプロセッサには、マイクロプロセッサ言語で記述された所定のシステムプログラムを実行して、前段処理及び後段処理を実現する機能が仕組まれており、さらに
割込要因が発生したときに、専用ＩＣとマイクロプロセッサとのいずれによって、前段処理及び後段処理を実現するかを予め設定するための設定手段と、
割込要因が発生したときに、設定手段が専用ＩＣ側に設定されているときには、前段処理及び後段処理の実現を専用ＩＣに委ねる一方、設定手段がマイクロプロセッサ側に設定されているときには、前段処理及び後段処理の実現をマイクロプロセッサに委ねる切替手段とを有する、ことを特徴とする請求項１に記載の割込機能を備えたプログラマブル・コントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えば、Ｉ／Ｏ割込、電断割込、定時割込等の割込機能を有するプログラマブル・コントローラ（以下、「ＰＬＣ」と言う）に関する。
【背景技術】
【０００２】
ＰＬＣには、電源供給部、入出力処理部、演算処理部、各種の特殊演算処理部等々と言った様々な装置構成要素を１つのハウジングに全て収容してなるオールインワン型のものと、それらの処理部のそれぞれを別々のハウジングに収容してなるビルディングブロック型のものとが存在する。
【０００３】
演算処理部の一例として、ビルディングブロック型ＰＬＣのＣＰＵユニットのハードウェア構成図が図６に示されている。このＣＰＵユニット１は、所謂バックプレーン上に敷設された内部バス１０を介して、図示しない、電源ユニット、入出力ユニット、その他の特殊演算ユニット等々と接続されるものである。
【０００４】
図に示されるように、ＣＰＵユニット１内には、ユーザプログラムメモリ（ＵＭ）１１、入出力メモリ（ＩＯＭ）１２、データ格納用不揮発性メモリ１３、専用ＩＣ１４、マイクロプロセッサ（ＭＰＵ）１５、システムプログラムメモリ（ＲＯＭ）１６、及びワークメモリ（ワークＲＡＭ）１７が含まれている。
【０００５】
ユーザプログラムメモリ１１には、所望の制御仕様に対応する１若しくは２以上のサイクル実行タスクとして実行されるユーザプログラムと、１若しくは２以上の割込実行タスクとして実行されるユーザプログラムとが、所定のユーザプログラム言語で記述され専用ＩＣ１４で実行可能な状態で格納されている。
【０００６】
入出力メモリ１２には、入力データ領域と出力データ領域とが設けられており、入力データ領域には図示しない外部入力端子列の入力信号に対応する入力データが格納され、出力データ領域には図示しない外部出力端子列の出力信号に対応する出力データが格納される。
【０００７】
データ格納用不揮発性メモリ１３には、演算処理等に必要な各種の設定データのほか、異常通知の設定、異常ステータス等々が格納されている。
【０００８】
専用ＩＣ１４は、所定のユーザプログラム言語にて記述されたユーザプログラムを実行するプログラム実行機能が組み込まれたものである。
【０００９】
マイクロプロセッサ１５は、マイクロプロセッサ言語で記述された各種のシステムプログラムを実行することにより、ＰＬＣとしての各種の機能を実現するものである。それらの機能の代表的なものとしては、図示しない入出力ユニットの外部入力端子列から入力回路を介して入力データを読み込んで、入出力メモリ１２の入力データ領域に書き込む入力更新処理と、入出力メモリ１２の出力データ領域に格納された出力データを図示しない入出力ユニットの出力回路を介して外部出力端子列から外部へと送出する出力更新処理と、ユーザプログラムメモリ１１からユーザプログラムを構成する各命令語を順次に読み出して実行する命令実行処理と、他のＰＬＣ、リモート入出力ターミナル、又はプログラム開発支援装置（ツール装置）等との間で通信を介してデータのやり取りを行う周辺サービス処理等を挙げることができる。
【００１０】
システムプログラムメモリ１６には、マイクロプロセッサ１５が上記の各機能を実現するのに必要なシステムプログラムが、所定のマイクロプロセッサ言語にて記述されマイクロプロセッサ１５で実行可能な状態で格納されている。
【００１１】
ワークメモリ１７は、マイクロプロセッサ１５がシステムプログラムメモリ１６からシステムプログラムを読み出して実行する際のワークエリアとして使用される。
【００１２】
上述のＰＬＣ（ＣＰＵユニット１）は、Ｉ／Ｏ割込、電断割込、定時割込等々のように、様々な割込要因を受け付け可能とされており、それらの割込処理が受け付けられたときには、所定の動作手順にしたがって割込処理が実行される。
【００１３】
従来のＣＰＵユニットにおける割込処理の動作手順を示すフローチャートが図７示されている。同図に示されるように、割込処理の全体は、ＭＰＵ処理（ＭＰＵによって実行される処理という意味）に委ねられる前段処理（ステップ２０１〜２０３）と、専用ＩＣ処理（専用ＩＣによって実行される処理という意味）に委ねられる本体処理（ステップ２０４）と、ＭＰＵ処理に委ねられる後段処理（ステップ２０５〜２０７）とから構成されている。
【００１４】
なお、この例にあっては、前段処理には、割込禁止処理（ステップ２０１）、レジスタ退避処理（ステップ２０３）、及び割込みプログラム実行前処理（ステップ２０３）が含まれている。また、後段処理には、割込みプログラム実行後処理（ステップ２０５）、レジスタ復元処理（ステップ２０６）、及び割込み解除処理（ステップ２０７）が含まれている。
【００１５】
より具体的には、図６に示されるように、Ｉ／Ｏ割込信号や電断割込信号は内部バスに含まれる割込ラインを介して専用ＩＣ１４により受け付けられる。すると、専用ＩＣ１４では、前段処理（ステップ２０１〜２０３）の実行をマイクロプロセッサ１５に委ねるために、それらの割込信号をマイクロプロセッサ１５の割込入力端子へと受け流す。前段処理（ステップ２０１〜２０３）の実行が完了すると、マイクロプロセッサ１５は、本体処理（ステップ２０４）の実行を専用ＩＣ１４に委ねるべく、プログラム実行権を専用ＩＣ１４に渡す。専用ＩＣ１４は、本体処理（ステップ２０４）の実行が完了すると、後段処理（ステップ２０５〜２０７）の実行を再びマイクロプロセッサに１５に委ねるべく、プログラム実行権をマイクロプロセッサ１５に渡す。
【００１６】
このようにして、図７のフローチャートに示される一連の処理が実行される結果、図８に示されるように、常時は、ユーザプログラムＵＰ１−１，ＵＰ１−２をそれぞれサイクル実行タスクとして実行しつつも、Ｉ／Ｏ割込、定時割込、電断割込が発生したときには、そのときサイクル実行タスクとして実行中のユーザプログラムＵＰ１−２を実行中断し、その代わりに、ユーザプログラムＵＰ２を割込実行タスクとして実行すると共に、ユーザプログラムＵＰ２の実行が完了するのを待って、割込前にサイクル実行タスクとして実行されていたユーザプログラムＵＰ１−２に復帰すると言った一連の動作が自動的に実行されるのである（例えば、特許文献１参照）。
【特許文献１】特開２００１−００５５０５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
上述のように、従来のＰＬＣ（ＣＰＵユニット１）にあっては、図７のフローチャートに示されるように、割込実行タスクの本体処理たる割込みプログラム処理（ステップ２０４）については専用ＩＣ処理とされるものの、それに先立って実行される前段処理（ステップ２０１〜２０３）についてはマイクロプロセッサ（ＭＰＵ）処理とされている。また、後段処理（ステップ２０５〜２０７）についてもマイクロプロセッサ（ＭＰＵ）処理とされている。これら前段処理と後段処理は、実行中断した処理（図８の例ではサイクル実行タスクの実行）を割込実行タスクを実行後に当該中断した時点から継続実行するために必要な処理である。
【００１８】
一方、前述のように、ＣＰＵユニット１を構成するマイクロプロセッサ（ＭＰＵ）１５は、入力更新処理と、出力更新処理と、命令実行処理と、周辺サービス処理等からなる一連の処理を、常時、サイクリックに実行している。
【００１９】
そのため、例えばＩ／Ｏ割込や電断割込等の割込要因が発生した場合、そのことを専用ＩＣ経由で通知されたマイクロプロセッサ（ＭＰＵ）１５は、その時点で実行中の処理を中断してからでなければ、上述の前段処理（ステップ２０１〜２０３）に取りかかることができない。
【００２０】
しかしながら、マイクロプロセッサ（ＭＰＵ）１５がその時点で実行中の処理を中断するには比較的に長時間を要することに加えて、その中断に要する時間は、その時点で実行中の処理の内容によっても区々である。
【００２１】
そのため、従来のＰＬＣ（ＣＰＵユニット１）にあっては、マイクロプロセッサ（ＭＰＵ）１５がその時点で実行中の処理を中断するに要する時間が、前段処理（ステップ２０１〜２０３）にとってオーバーヘッドとなることに起因して、割込要因の発生から割込処理の完了に至る所要時間が比較的に長大化すると共に、その所要時間も比較的に大きくばらつくこととなり、制御設計上における使い勝手が悪いと言う問題点がある。
【００２２】
この発明は、このような従来の問題点に着目してなされたものであり、その目的とするところは、割込要因の発生から割込処理の完了に至る所要時間を短縮すると共に、その所要時間を一定化することにより、制御設計上における使い勝手を向上させた割込機能を備えたＰＬＣを提供することにある。
【００２３】
この発明のさらに他の目的並びに作用効果については、明細書の以下の記述を参照することにより、当業者であれば容易に理解されるであろう。
【課題を解決するための手段】
【００２４】
上述の技術的課題は、以下の構成を有する割込機能を有するＰＬＣにより解決することができると考えられる。
【００２５】
すなわち、この割込機能を有するＰＬＣは、ユーザプログラムメモリと、システムプログラムメモリと、所定のユーザプログラム言語にて記述されたユーザプログラムを実行するプログラム実行機能が組み込まれた専用ＩＣと、マイクロプロセッサとを含んでいる。
【００２６】
ユーザプログラムメモリには、１若しくは２以上のサイクル実行タスク用のユーザプログラムと、１若しくは２以上の割込実行タスク用のユーザプログラムとが、前記ユーザプログラム言語で記述された状態で格納されている。
【００２７】
システムプログラムメモリには、プログラマブル・コントローラとしての機能を実現するために必要な各種のシステムプログラムが所定のマイクロプロセッサ言語で記述された状態で格納されている。
【００２８】
１若しくは２以上の割込実行タスク用のユーザプログラムはいずれも専用ＩＣにて実行されるように仕組まれている。
【００２９】
専用ＩＣによる割込実行タスク用のユーザプログラムの実行前には、割込プログラム実行前処理を少なくとも含む前段処理が実行され、また専用ＩＣによる割込用のユーザプログラムの実行後には、割込プログラム実行後処理を含む後段処理が実行されている。
【００３０】
加えて、専用ＩＣには、ユーザプログラム言語にて記述された所定のユーザプログラムを実行して、前段処理及び後段処理を実現する機能が仕組まれている。
【００３１】
このような構成によれば、割込タスクの本体処理たる割込用のユーザプログラムのみならず、その前後に位置する前段処理及び後段処理についても専用ＩＣにより実行されることとなるため、前段処理及び後段処理をマイクロプロセッサ処理に委ねていた従来例とは異なり、マイクロプロセッサが実行中の処理を中断する所要時間に起因するオーバーヘッドがなくなり、その分だけ割込要因の発生から割込処理の完了に至る所要時間を短縮すると共に、その所要時間を一定化することにより、制御設計上における使い勝手を向上させることができる。
【００３２】
本発明の好ましい実施の形態においては、マイクロプロセッサには、マイクロプロセッサ言語で記述された所定のシステムプログラムを実行して、前段処理及び後段処理を実現する機能が仕組まれており、さらに割込要因が発生したときに、専用ＩＣとマイクロプロセッサとのいずれによって、前段処理及び後段処理を実現するかを予め設定するための設定手段と、割込要因が発生したときに、設定手段が専用ＩＣ側に設定されているときには、前段処理及び後段処理の実現を専用ＩＣに委ねる一方、設定手段がマイクロプロセッサ側に設定されているときには、前段処理及び後段処理の実現をマイクロプロセッサに委ねる切替手段が設けられる。
【００３３】
このような構成によれば、割込実行タスクの本体処理たる割込実行タスク用のユーザプログラムのみならず、その前後に位置する前段処理及び後段処理についても専用ＩＣにより実行すると言う新規な構成と、割込実行タスクの本体処理たる割込用のユーザプログラムについては専用ＩＣにて実行しつつも、その前後に位置する前段処理及び後段処理についてはマイクプロセッサの処理に委ねると言う従来の構成との双方を有すると共に、それらの１つを択一的に採用できることから、これからＰＬＣを購入して制御用プログラム（ユーザプログラム）を組もうとする新規ユーザについては、最初から上記新規構成を採用して、割込要因発生から割込処理の完了に至る所要時間をできるかぎり短縮させることができる一方、ＰＬＣ機種を交換しようとする既存ユーザについては、既存の制御用プログラム（ユーザプログラム）との相性を見ながら、最適な割込処理速度となるように、新規構成と従来構成との１つを選択することができる。
【００３４】
すなわち、実行される割込用のユーザプロクラムが同一であったとしても、新規構成と従来構成とでは実行所要時間が異なるため、旧機種で稼働していたユーザプログラムを新機種で稼働すると、外部とのインタフェースとの関係等が原因で動作不良を起こすことも考えられるが、そのような場合には、旧機種で採用されていた従来構成に切り替えることで、そのような問題を解決することが可能となる。
【００３５】
このとき、設定手段は、割込要因が発生したときに、専用ＩＣとマイクロプロセッサとのいずれによって、前段処理及び後段処理を実現するかを、割込要因毎に設定可能とすれば、上述の新規構成又は従来構成のいずれを採用するかの選択を割込要因別にきめ細かく行うことができる。
【発明の効果】
【００３６】
本発明によれば、割込実行タスクの本体処理たる割込用のユーザプログラムのみならず、その前後に位置する前段処理及び後段処理についても専用ＩＣにより実行されることとなるため、前段処理及び後段処理をマイクロプロセッサ処理に委ねていた従来例とは異なり、マイクロプロセッサが実行中の処理を中断する所要時間に起因するオーバーヘッドがなくなり、その分だけ割込要因の発生から割込処理の完了に至る所要時間を短縮すると共に、その所要時間を一定化することにより、制御設計上における使い勝手を向上させることができる。
【発明を実施するための最良の形態】
【００３７】
以下に、この発明に係る割込機能を備えたＰＬＣの好適な実施の一形態を添付図面を参照しながら詳細に説明する。
【００３８】
本発明に係るＰＬＣのＣＰＵユニットのハードウェア構成図が図１に示されている。同図に示されるように、このＣＰＵユニット１には、ユーザプログラムメモリ（ＵＭ）１１、入出力メモリ（ＩＯＭ）１２、データ格納用不揮発性メモリ１３、専用ＩＣ１４、マイクロプロセッサ（ＭＰＵ）１５、システムプログラムメモリ（ＲＯＭ）１６、及びワークメモリ（ワークＲＡＭ）１７が含まれている。
【００３９】
ユーザプログラムメモリ１１には、所望の制御仕様に対応する１若しくは２以上のサイクル実行タスク用のユーザプログラムと、１若しくは２以上の割込実行タスク用のユーザプログラムとが、それぞれ所定のユーザプログラム言語で記述された状態で格納されている。なお、後に詳述するが、このユーザプログラムメモリ１１には、割込実行タスク用のユーザプログラムの前後に実施されるべき、前段処理Ａ及び後段処理Ｃ（図６参照）を実現するための様々なプログラムについてもユーザプログラム言語で記述された状態で格納されている。
【００４０】
入出力メモリ１２には、入力データ領域と出力データ領域とが設けられており、入力データ領域には図示しない外部入力端子列の入力信号に対応する入力データが格納され、出力データ領域には図示しない外部出力端子列の出力信号に対応する出力データが格納される。なお、後に詳述するように、この入出力メモリ１２には、割込処理に際して、データ退避処理とデータ復元処理とに関与するスタック領域が設けられている。
【００４１】
データ格納用不揮発性メモリ１３には、演算処理などに必要な各種の設定データの他、異常通知の設定、異常ステータス等々が格納されている。なお、このデータ格納用不揮発性メモリ１３には、本発明に関連して、図４に示される各種の設定レジスタ（１）〜（３）などについても格納されている。
【００４２】
専用ＩＣ１４は、所定のユーザプログラム言語にて記述されたユーザプログラムを実行するプログラム実行機能が組み込まれたものである。割込実行タスク用の１若しくは２以上のユーザプログラムは、この専用ＩＣ１４によって実行される。加えて、後に詳述するように、本発明にあっては、本体処理Ｂである割込実行タスク用のユーザプログラムのみならず、前段処理Ａ及び後段処理Ｃのそれぞれに相当するユーザプログラムについても、この専用ＩＣ１４によって実行が可能とされている。
【００４３】
マイクロプロセッサ１５は、マイクロプロセッサ言語で記述された各種のシステムプログラムを実行することにより、ＰＬＣとしての各種の機能を実現するものである。それらの機能の代表的なものとしては、図示しない入出力ユニットの外部入力端子列から入力回路を介して入力データを読み込んで、入出力メモリ１２の入力データ領域に書き込む入力更新処理と、入出力メモリ１２の出力データ領域に格納された出力データを図示しない入出力ユニットの出力回路を介して外部出力端子列から外部へと送出する出力更新処理と、プログラム実行権を専用ＩＣ１４に委ねて、ユーザプログラムメモリ１１に格納されたユーザプログラムを構成する各命令を順次に読み出して実行させる命令実行処理と、他のＰＬＣ、リモート入出力ターミナル、又はプログラム開発支援装置（ツール装置）などとの間で通信を介してデータのやり取りを行う周辺サービス処理などを挙げることができる。
【００４４】
システムプログラムメモリ１６には、マイクロプロセッサが上記の各機能を実現するために必要なシステムプログラムが、所定のマイクロプロセッサ言語にて記述された状態で格納されている。なお、このシステムプログラムメモリ１６には、先に説明した前段処理Ａ及び後段処理Ｃをマイクロプロセッサ１５自身が実行するのに必要なシステムプログラムについても格納されている。つまり、このＣＰＵユニット１にあっては、必要に応じ、専用ＩＣ１４とマイクロプロセッサ１５とで択一的に前段処理Ａ及び後段処理Ｃを実行可能となされている。
【００４５】
ワークメモリ（ワークＲＡＭ）１７は、マイクロプロセッサ１５がシステムプログラムメモリ１６からシステムプログラムを読み出して実行する際のワークエリアとして使用される。
【００４６】
上述のＰＬＣ（ＣＰＵユニット１）は、Ｉ／Ｏ割込、電断割込、定時割込等々のように、様々な割込要因を受け付け可能となされており、それらの割込処理を受け付けられた時には、所定の動作手順に従って割込処理が実行される。この割込処理は、従来と同様に、前段処理Ａと、本体処理Ｂと、後断処理Ｃとから構成されている。
【００４７】
そして、この実施形態においては、本体処理Ｂについては専用ＩＣ処理とするものの、前段処理Ａ及び後段処理Ｃについてはマイクロプロセッサ処理とする第１の動作モードと、本体処理Ｂのみならず、前段処理Ａ及び後段処理Ｃについても専用ＩＣ処理とする第２の動作モードとを、択一的に選択することが可能となされている。
【００４８】
この動作モードの選択を可能とするために、図１に示されるように、専用ＩＣ１４内には、割込実行主体切替回路１４ａ（図３参照）と、各種の設定レジスタ（１）〜（３）（図４参照）とが内蔵されている。
【００４９】
そして、図２のフローチャートに示されるように、何らかの割込要因が発生した場合、割込実行主体切替回路１４ａが作動することにより、割込タスクの実行主体が「ＭＰＵ」と判定されれば（ステップ１１「ＭＰＵ」）、その割込要因に対応する割込信号が、マイクロプロセッサ（ＭＰＵ）１５へと転送出力される（ステップ１４）。すると、マイクロプロセッサ（ＭＰＵ）１５では、従前と同様にして、図７のフローチャートに示されるように、本体処理Ｂである割込プログラム実行処理（ステップ２０４）については専用ＩＣ処理とするものの、前段処理Ａである一連の処理（ステップ２０１〜２０３）及び後段処理Ｃである一連の処理（ステップ２０５〜２０７）についてはＭＰＵ処理として実行される。
【００５０】
これに対して、割込実行タスクの実行主体が「専用ＩＣ」に設定されていれば（ステップ１１「専用ＩＣ」）、割込自動実行プログラムの先頭アドレスがプログラムカウンタ（ＮＰＣ）にセットされた後（ステップ１２）、専用ＩＣ１４による命令実行が開始される（ステップ１３）。すると、後に図５のフローチャートを参照して詳述するように、本体処理Ｂである割込プログラム実行処理（ステップ１０４）のみならず、前段処理Ａである一連の処理（ステップ１０１〜１０３）及び後段処理Ｃである一連の処理（ステップ１０５〜１０７）についても、全て専用ＩＣ処理として実行される。
【００５１】
このような動作モードの切替えを可能とする割込実行主体切替回路の構成図が図３に、各種レジスタの説明図が図４にそれぞれ示されている。
【００５２】
図３に示される割込実行主体切替回路１４ａは、３種類の割込要因（１）〜（３）を受け付け可能となされている。この割込実行主体切替回路１４ａの初段には、３種類の割込要因（１）〜（３）に対応させて、３個の割込要因振分回路２１〜２３が設けられている。それらの割込要因振分回路２１〜２３のそれぞれは、受け付けられた割込要因（１）〜（３）を、それぞれ専用ＩＣ側とＭＰＵ側とに択一的に振り分け可能とされている。この割込要因の振り分けは、出力先切替信号（１）〜（３）の論理値によって制御される。
【００５３】
出力先切替信号（１）〜（３）の論理値は、図４（ａ）に示される設定レジスタ（１）の第１〜第３ビットに“１”を記憶するか“０”を記憶するかによって決定される。すなわち、設定レジスタ（１）の第１〜第３ビットは、出力先切替信号（１）〜（３）に対応している。そして、“１”が記憶されたビットに対応する出力先切替信号の内容は、「専用ＩＣ処理」を意味するものとなり、“０”が記憶されたビットに対応する出力先切替信号の内容は、「ＭＰＵ処理」を意味するものとなる。
【００５４】
従って、この設定レジスタ（１）の第１〜第３ビットに“１”又は“０”のいずれを記憶させておくかによって、各割込要因（１）〜（３）のそれぞれに対応する割込処理を、専用ＩＣ処理とするかＭＰＵ処理とするかを予め決定することができる。この設定レジスタ（１）の内容を書き替えるについては、公知の様々な手法を採用できる。例えば、ＰＬＣにプログラム開発支援装置（ツール装置）を接続して、設定レジスタ（１）の第１〜第３ビットの内容を“１”又は“０”に書き替えればよい。
【００５５】
図３に戻って、割込要因振分回路２１〜２３によって専用ＩＣ側に割り振られた割込要因信号（１）〜（３）は、それぞれその後段に設けられたマスクゲート３１〜３３へと供給される。これらのマスクゲート３１〜３３の開閉は、専用ＩＣ割込要因（１）マスク信号〜専用ＩＣ割込要因（３）マスク信号の論理値により制御される。
【００５６】
これらの専用ＩＣ割込要因（１）〜（３）マスク信号の論理値は、図４（ｂ）に示される設定レジスタ（２）の第１〜第３ビットに“１”を記憶するか“０”を記憶するかによって決定される。すなわち、設定レジスタ（２）の第１〜第３ビットは、専用ＩＣ割込要因（１）〜（３）マスクにそれぞれ対応している。そして、“１”が記憶されたビットに対応するマスク信号の値は「ゲート閉」に対応するものとなり、“０”が記憶されたビットに対応するマスク信号の値は「ゲート開」に対応するものとなる。
【００５７】
従って、設定レジスタ（２）の第１ビット〜第３ビットのそれぞれに、“１”を記憶するか“０”を記憶するかによって、マスクゲート３１〜３３の開閉状態（マスクをかけるかどうか）を予め設定することができる。
【００５８】
同様にして、割込要因振分回路２１〜２３でＭＰＵ側に振り分けられた割込要因信号（１）〜（３）は、その後段に設けられたマスクゲート４１〜４３へと供給される。マスクゲート４１〜４３の開閉は、ＭＰＵ割込要因（１）〜（３）マスク信号の論理値によって決定される。
【００５９】
ＭＰＵ割込要因（１）〜（３）マスク信号の論理値は、図４（ｃ）に示される設定レジスタ（３）の第１〜第３ビットに“１”を記憶するか“０”を記憶するかによって決定される。
【００６０】
設定レジスタ（３）の第１〜第３ビットは、ＭＰＵ割込要因（１）〜（３）マスク信号に対応している。そして、“１”が記憶されたビットに対応するマスク信号は「ゲート閉」を意味する内容となり、“０”が記憶されたビットに対応するマスク信号の内容は「ゲート開」を意味するものとなる。
【００６１】
そのため、設定レジスタ（３）の第１〜第３ビットに、“１”又は“０”のいずれを記憶するかによって、マスクゲート４１〜４３の開閉状態（マスクをかけるかどうか）を予め設定することができる。
【００６２】
専用ＩＣ側のマスクゲート３１〜３３を通過した割込要因信号は、２系統に分岐された後、その一方は専用ＩＣ処理割込のための出力ゲート３４を介して専用ＩＣ処理割込信号に変換され、専用ＩＣ１４に受け付けられる。一方、分岐された他方の信号は、それぞれ独立に、専用ＩＣ処理割込要因（１）〜（３）として専用ＩＣ１４に受け付けられる。
【００６３】
すると、専用ＩＣ１４は、専用ＩＣ処理割込信号により割込みがあったことを検知すると共に、割込要因（１）〜（３）を参照することによって、割込種別を認識し、以後、前述した前段処理Ａ、本体処理Ｂ、及び後段処理Ｃを実行するのである。
【００６４】
一方、ＭＰＵ側のマスクゲート４１〜４３を通過した割込要因信号（１）〜（３）は、同様にして２系統に分岐された後、一方はＭＰＵ処理割込のための出力ゲート４４を経由してＭＰＵ処理割込信号に変換され、従前と同様にしてＭＰＵ１５へと送られる。同時に、分岐された他方についても、ＭＰＵ処理割込要因（１）〜（３）として、ＭＰＵ１６へと送られる。
【００６５】
すると、ＭＰＵ１６では、先に図７のフローチャートを参照しながら説明したように、本体処理Ｂである割込プログラム実行処理（ステップ２０４）については専用ＩＣ処理とするものの、前段処理Ａである一連の処理（ステップ２０１〜２０３）及び後段処理Ｃである一連の処理（ステップ２０５〜２０７）についてはＭＰＵ処理として実行することとなる。
【００６６】
図２に戻って、割込実行主体切替回路１４ａの作用によって、割込タスクの実行主体が「専用ＩＣ」に設定されていると（ステップ１１「専用ＩＣ」）、先に述べたように、割込自動実行プログラムの先頭アドレスが読み出され、これが専用ＩＣ１４に内蔵されたプログラムカウンタ（ＭＰＣ）にセットされ（ステップ１２）、専用ＩＣによる命令実行が開始（起動）される（ステップ１３）。これに対して、割込タスクの実行主体が「ＭＰＵ」側に設定されていれば（ステップ１１「ＭＰＵ」）、先に述べたように、ＭＰＵ１５に対して、割込信号及びＭＰＵ処理割込要因（１）〜（３）が送られる（ステップ１４）。
【００６７】
次に、本発明のＣＰＵユニットにおける割込処理の動作手順を示すフローチャート（ラダープログラムで実行）が図５に示されている。
【００６８】
同図に示されるように、本発明にあっては、主として割込実行主体切替回路１４ａの作用などによって、割込実行主体が「専用ＩＣ」と判定されると、本体処理Ｂである割込プログラム実行処理（ステップ１０４）のみならず、前段処理Ａを構成する一連の処理（ステップ１０１〜１０３）のみならず、後段処理Ｃを構成する一連の処理（ステップ１０５〜１０７）についても、その実行は専用ＩＣ処理に委ねられる。
【００６９】
そのため、この実施形態において、図４（ａ）に示される設定レジスタ（１）の各ビットの内容を予めすべて“１”に設定しておけば、いずれの割込要因（１）〜（３）が受け付けられたとしても、ＭＰＵ１５には一切関与させることなく、専用ＩＣ１４だけで前段処理Ａ及び後段処理Ｃを実行させることができるから、前段処理Ａ及び後段処理Ｃをマイクロプロセッサ処理に委ねていた従来例とは異なり、マイクロプロセッサ１５が実行中の処理を中断する所要時間に起因するオーバヘッドがなくなり、その分だけ割込要因の発生から割込処理の完了に至る所要時間を短縮すると共に、その所要時間を一定化することにより、制御設計上における使い勝手を向上させることができる。
【００７０】
また、この実施形態においては、割込タスクの本体処理Ｂたる割込用のユーザプログラム（ステップ１０４）のみならず、その前後に位置する前段処理Ａ及び後段処理Ｃについても専用ＩＣ１４により実行するという新規な構成と、割込タスクの本体処理Ｂたる割込用のユーザプログラム（ステップ２０４）については専用ＩＣ１４にて実行しつつも、その前後に位置する前段処理Ａ及び後段処理Ｃについてはマイクロプロセッサ１５の処理に委ねるという従来の構成との双方を有すると共に、それらの１つを択一的に採用できることから、これからＰＬＣを購入して制御用プログラム（ユーザプログラム）を新たに組もうとする新規ユーザについては、最初から上記新規構成を採用して、割込要因発生から割込処理の完了に至る所要時間をできる限り短縮させることができる一方、ＰＬＣ機種を交換しようとする既存ユーザについては、既存の制御用プログラム（ユーザプログラム）との相性を見ながら、最適な割込処理速度となるように、新規構成と従来構成との１つを選択させることができる。
【００７１】
すなわち、実行される割込用のユーザプログラムが同一であったとしても、新規構成と従来構成とでは実行所要時間が異なるため、旧機種で稼働していたユーザプログラムを新機種で稼働すると、外部とのインタフェースとの関係などが原因で動作不良を起こすことも考えられるが、そのような場合には、旧機種で採用させていた従来構成に切り替えることで、そのような問題を解決することが可能となる。
【００７２】
このとき、図４（ａ）に示される設定レジスタ（１）にあっては、割込要因が発生したときに、専用ＩＣ１４とマイクロプロセッサ１５との何れによって、前段処理Ａ及び後段処理Ｃを実現するかを、割込要因（１）〜（３）ごとに設定可能となっているため、上述の新機種構成または従来構成の何れを採用するかの選択を割込要因（１）〜（３）の別にきめ細かく行うことができる。
【００７３】
なお、図５のフローチャートに示されるように、本発明で採用された新規構成によれば、前段処理Ａを構成する一連の処理（ステップ１０１〜１０３）及び後段処理Ｃを構成する一連の処理（ステップ１０５〜１０７）は、その機能それ自体は従前のものと変わらないものの、実行対象となるプログラムは、システムプログラムメモリ（ＲＯＭ）１６に格納されたマイクロプロセッサ言語で記述されたシステムプログラムではなく、ユーザプログラム言語で記述されたユーザプログラムメモリ（ＵＭ）１１に格納されたユーザプログラムとなる。
【００７４】
以上説明したように、この実施形態に係る割込機能を備えたＰＬＣによれば、割込実行タスクの本体処理たる割込プログラム実行処理（ステップ１０４）のみならず、その前後に位置する前段処理Ａ（ステップ１０１〜１０６）及び後段処理Ｃ（ステップ１０５〜１０７）についても専用ＩＣ１４により実行されることとなるため、前段処理Ａ及び後段処理Ｃをマイクロプロセッサ処理に委ねていた従来例とは異なり、マイクロプロセッサ１５が実行中の処理を中断する所要時間に起因するオーバヘッドがなくなり、その分だけ割込要因の発生から割込処理の完了に至る所要時間を短縮すると共に、その所要時間を一定化することにより、制御設計上における使い勝手を向上させることができる。
【００７５】
また、この実施形態によれば、割込実行タスクの本体処理Ｂたる割込プログラム実行処理のみならず、その前後に位置する前段処理Ａ及び後段処理Ｃについても専用ＩＣ１４により実行するという新規な構成と、割込タスクの本体処理Ｂたる割込用のユーザプログラムについては専用ＩＣ１４にて実行しつつも、その前後に位置する前段処理Ａ及び後段処理Ｃについてはマイクロプロセッサ１５の処理に委ねるという従来の構成との双方を有すると共に、それらの１つを択一的に採用できることから、これからＰＬＣを購入して制御用プログラム（ユーザプログラム）を組もうとする新規ユーザについては、最初から上記機種構成を採用して、割込要因発生から割込処理の完了に至る所要時間をできる限り短縮させることができる一方、ＰＬＣ機種を交換しようとする既存のユーザについては、既存の制御用プログラム（ユーザプログラム）との相性を見ながら、最適な割込処理速度となるように、新規構成と従来構成との１つを任意に選択させることができる。
【００７６】
すなわち、実行される割込用のユーザプログラムが同一であったとしても、新規構成と従来構成とでは実行所要時間が異なるため、旧機種で稼働していたユーザプログラムを新機種で稼働すると、外部とのインターフェイスとの関係などが原因で動作不良を起こすことも考えられるので、そのような場合には、旧機種で採用されていた従来構成に切り替えることで、そのような問題を解決することが可能となる。
【００７７】
しかも、この実施形態によれば、設定手段を構成する設定レジスタ（１）（図４参照）は、割込要因が発生したときに、専用ＩＣ１４とマイクロプロセッサ１５との何れによって、前段処理Ａ及び後段処理Ｃを実現するかを、割込要因毎に設定可能としているため、上述の新機種構成または従来構成の何れを採用するかの選択を割込要因別にきめ細かく行うことが可能となる。
【産業上の利用可能性】
【００７８】
本発明によれば、割込要因の発生から割込処理の完了に至る所要時間を短縮すると共に、その所要時間を一定化することにより、制御設計上における使い勝手を向上させた割込機能を備えたＰＬＣを提供することができる。
【図面の簡単な説明】
【００７９】
【図１】本発明に係るＰＬＣのＣＰＵユニットのハードウェア構成図である。
【図２】割込要因発生から割込処理プロクラム起動に至る専用ＩＣの動作を示すフローチャートである。
【図３】割込実行主体切替回路の構成図である。
【図４】専用ＩＣに含まれる設定レジスタの説明図である。スタの説明図である。
【図５】本発明のＣＰＵユニットにおける割込処理の動作手順を示すフローチャートである。
【図６】従来のＰＬＣのＣＰＵユニットのハードウェア構成図である。
【図７】従来のＣＰＵユニットにおける割込処理の動作手順を示すフローチャートである。
【図８】ＰＬＣのＣＰＵユニットにおけるサイクル実行タスク動作と割込実行タスク動作との関係を示す説明図である。
【符号の説明】
【００８０】
１        ＣＰＵユニット
１０      内部バス
１１      ユーザプログラムメモリ（ＵＭ）
１２      入出力メモリ（ＩＯＭ）
１３      データ格納用不揮発性メモリ
１４      専用ＩＣ
１４ａ    割込実行主体切替回路
１５      マイクロプロセッサ（ＭＰＵ）
１６      システムプログラムメモリ（ＲＯＭ）
１７      ワークメモリ（ワークＲＡＭ）
ＩＴ１    Ｉ／Ｏ及び電断・割込信号
ＩＴ２    定時割込信号
２１，２２，２３    割込要因振分け回路
３２，３２，３３    専用ＩＣ処理割込マスクゲート（割込要因別）
３４                専用ＩＣ処理割込出力ゲート
４１，４２，４３    ＭＰＵ処理割込マスクゲート（割込要因別）
４４                ＭＰＵ処理割込出力ゲート
ＵＰ１−１，ＵＰ１−２    サイクル実行タスクであるユーザプロクラム
ＵＰ２                    割込実行タスクであるユーザプログラム
【図１】
0005024546.tif 000002
【図２】
0005024546.tif 000003
【図３】
0005024546.tif 000004
【図４】
0005024546.tif 000005
【図５】
0005024546.tif 000006
【図６】
0005024546.tif 000007
【図７】
0005024546.tif 000008
【図８】
0005024546.tif 000009