(57)【要約】【課題】割込みプログラムに対する応答速度を向上することができるプログラマブルコントローラを提供する。【解決手段】ＰＬＣ１は、外部からの割込み入力に応じて、通常プログラムを中断して割込みプログラムを実行する割込み処理を行う機能を有している。ここで、割込み入力発生時に割込みプログラムの実行に必要な特定処理（前処理、割込み入力に応じた割込みプログラム用の命令コードが格納されている命令用メモリ４のアドレスの判別、後処理）は、ＣＰＵ２でなく専用プロセッサ３にて実行する。そのために、前記特定処理に対応する専用プロセッサ３で実行可能な命令コードを、予め命令用メモリ４に格納している。命令用メモリ４においては、通常プログラム用の命令コードを格納する格納領域とは別に、前記特定処理に必要な命令コードを格納する格納領域が設けられる。【選択図】図１
2011060211.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを格納するメモリ部と、内部バスを介してメモリ部にアクセスしてメモリ部内のプログラムを実行し演算処理を行う汎用プロセッサと、汎用プロセッサにて行う演算処理のうち特定の演算処理を代行する専用プロセッサと、専用プロセッサで実行する命令コードを格納する命令用メモリと、専用プロセッサが命令コードを実行する際の作業領域として使用されるデータ用メモリとを備え、ＰＬＣバスから割込み入力があると通常プログラムを中断して割込み入力に応じた割込みプログラムを実行するプログラマブルコントローラであって、命令用メモリには、通常プログラムの実行に必要な命令コードを格納する第１の格納領域と別に、割込みプログラムの実行に必要な特定処理用の命令コードを格納する第２の格納領域が設けられ、専用プロセッサは、ＰＬＣバスに接続され割込み入力の発生を検知する割込検知手段と、割込み入力の発生時に命令用メモリ内の第２の格納領域にアクセスして前記特定処理を実行する割込実行手段とを有することを特徴とするプログラマブルコントローラ。
【請求項２】
前記特定処理は、前記割込みプログラムを開始するために必要な前処理と、前記割込み入力に応じた割込みプログラム用の命令コードが格納されている領域の前記命令用メモリ内での位置を示すアドレスの判別と、割込みプログラムから前記通常プログラムに復帰する際に必要な後処理とを含むことを特徴とする請求項１記載のプログラマブルコントローラ。
【請求項３】
前記専用プロセッサは、前記通常プログラムの実行時に使用される第１の内蔵レジスタと、前記割込みプログラムの実行時に使用される第２の内蔵レジスタとを個別に有し、前記割込み入力の検出時に内蔵レジスタを自動的に切り替える切替手段が設けられていることを特徴とする請求項１または請求項２に記載のプログラマブルコントローラ。
【請求項４】
前記専用プロセッサは、前記命令用メモリ内での位置を示すアドレスを任意に設定可能な内蔵レジスタを有し、内蔵レジスタに設定される前記第２の格納領域のアドレスを用いて第２の格納領域にアクセスすることを特徴とする請求項１ないし請求項３のいずれか１項に記載のプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、命令コードに従ってシーケンス制御を行うプログラマブルコントローラに関するものである。
【背景技術】
【０００２】
従来から、複数のデバイス（接点等）を含む命令コードを実行するプロセッサと、命令コードを格納する命令用メモリと、デバイスの状態（接点の開閉等）を表すデバイスデータを格納しプロセッサが命令コードを実行する際の作業領域として使用されるデータ用メモリとを備えたプログラマブルコントローラ（以下、ＰＬＣという）が提供されている。このＰＬＣは、プログラムによって制御内容を任意に設定できるという利便性の良さから様々な機器の制御に用いられている。
【０００３】
さらに、近年では、ＰＬＣの制御対象となる機器は構成が複雑化し、また高速な動作が要求されるようになっていることから、ＰＬＣにおいても演算処理の高速化が要望されている。
【０００４】
そこで、この種のＰＬＣとして、プログラムを実行して外部装置との通信（通信処理）や周辺機器とのデータ交換（周辺処理）などを制御する汎用プロセッサとは別に、専用プロセッサを用いることで高速化を実現したものがある。専用プロセッサは、ビット演算を主とするシーケンス命令である基本命令を実行する基本命令処理、および複数ビット演算のシーケンス命令である応用命令を実行する応用命令処理を行う。このＰＬＣでは、汎用プロセッサと専用プロセッサとで並列処理を行うことで高速化が可能となる（たとえば特許文献１参照）。
【０００５】
ところで、ＰＬＣとしては、外部からの割込み入力に応じて割込み処理を実行可能なものが知られている。割込み処理は、一般にシステムの起動や停止、現在実行中の通常プログラムとは別のプログラムを実行するときに用いられる。このＰＬＣは、割込み入力の検出時、通常プログラムの実行を中断し、汎用のプロセッサ（ＣＰＵ）で割込みプログラムを実行することにより割込み処理を実行する（たとえば特許文献２参照）。
【０００６】
したがって、上述のように汎用プロセッサとは別に専用プロセッサを設けたＰＬＣにおいては、外部からの割込み入力に応じた割込みプログラムの実行は、特定の演算処理（基本命令、応用命令）用に特化された専用プロセッサではなく、汎用プロセッサが担当する。
【０００７】
すなわち、割込み入力の検出時、専用プロセッサは現在実行中の命令コードの終了後に動作を停止する。それから、汎用プロセッサは、割込みプログラムの実行に必要な前処理を実行する。さらに、汎用プロセッサは、割込み入力に応じた割込みプログラム用の命令コードが格納されている命令用メモリのアドレスを判別して、当該アドレスを専用プロセッサの内蔵レジスタに設定し、専用プロセッサに対して命令コードの実行指示を行う。専用プロセッサは、前記実行指示を受け付けると命令コードを実行する。
【０００８】
その後、命令コードの実行を完了した専用プロセッサは、動作を停止するとともに命令コードの実行完了を汎用プロセッサに報知する。専用プロセッサから実行完了の報知を受けた汎用プロセッサは、割込みプログラムから通常プログラムへの移行に必要な後処理を行い、次に実行する通常プログラム用の命令コードが格納された命令用メモリのアドレスを専用プロセッサの内蔵レジスタに設定し、専用プロセッサに対して命令コードの実行指示を行う。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特許第３０００８５７号公報
【特許文献２】特開平５−２４１８５３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかし、上述した構成のＰＬＣでは、割込み入力発生時に、専用プロセッサ・汎用プロセッサの切替制御が頻繁に行われることとなり、専用プロセッサ・汎用プロセッサの切り替えによるオーバヘッドが増大し、割込みプログラムに対する応答速度が遅くなるという問題がある。
【００１１】
本発明は上記事由に鑑みて為されたものであって、割込みプログラムに対する応答速度を向上することができるプログラマブルコントローラを提供することを目的とする。
【課題を解決するための手段】
【００１２】
請求項１の発明は、プログラムを格納するメモリ部と、内部バスを介してメモリ部にアクセスしてメモリ部内のプログラムを実行し演算処理を行う汎用プロセッサと、汎用プロセッサにて行う演算処理のうち特定の演算処理を代行する専用プロセッサと、専用プロセッサで実行する命令コードを格納する命令用メモリと、専用プロセッサが命令コードを実行する際の作業領域として使用されるデータ用メモリとを備え、ＰＬＣバスから割込み入力があると通常プログラムを中断して割込み入力に応じた割込みプログラムを実行するプログラマブルコントローラであって、命令用メモリには、通常プログラムの実行に必要な命令コードを格納する第１の格納領域と別に、割込みプログラムの実行に必要な特定処理用の命令コードを格納する第２の格納領域が設けられ、専用プロセッサが、ＰＬＣバスに接続され割込み入力の発生を検知する割込検知手段と、割込み入力の発生時に命令用メモリ内の第２の格納領域にアクセスして前記特定処理を実行する割込実行手段とを有することを特徴とする。
【００１３】
この構成によれば、命令用メモリにおいて、割込みプログラムの実行に必要な特定処理用の命令コードを格納する第２の格納領域が、通常プログラムの実行に必要な命令コードを格納する第１の格納領域とは別に設けられており、専用プロセッサが、ＰＬＣバスからの割込み入力の検出時に、命令用メモリ内の第２の格納領域にアクセスして特定処理を実行するので、割込み入力発生時に、専用プロセッサと汎用プロセッサとの切替制御を伴うことなく、割込みプログラムを実行することができる。すなわち、従来は割込み入力発生時に必要であった専用プロセッサ・汎用プロセッサの切替制御を省略することができ、割込みプログラムに対する応答速度を向上できるという利点がある。
【００１４】
請求項２の発明は、請求項１の発明において、前記特定処理が、前記割込みプログラムを開始するために必要な前処理と、前記割込み入力に応じた割込みプログラム用の命令コードが格納されている領域の前記命令用メモリ内での位置を示すアドレスの判別と、割込みプログラムから前記通常プログラムに復帰する際に必要な後処理とを含むことを特徴とする。
【００１５】
この構成によれば、割込みプログラムの開始から通常プログラムへの復帰まで、汎用プロセッサを介することなく専用プロセッサにて実行できるという利点がある。
【００１６】
請求項３の発明は、請求項１または請求項２の発明において、前記専用プロセッサが、前記通常プログラムの実行時に使用される第１の内蔵レジスタと、前記割込みプログラムの実行時に使用される第２の内蔵レジスタとを個別に有し、前記割込み入力の検出時に内蔵レジスタを自動的に切り替える切替手段が設けられていることを特徴とする。
【００１７】
この構成によれば、通常プログラムと割込みプログラムとで共通の内蔵レジスタが使用される構成に比較して、通常プログラムに使用されている内蔵レジスタ内のデータを割込みプログラムの実行時に一旦退避させ、割込みプログラム終了後に復帰させるという処理が不要になる利点がある。すなわち、内蔵レジスタからのデータの出し入れを省略することができ、割込みプログラムに対する応答速度の更なる高速化を図ることができる。
【００１８】
請求項４の発明は、請求項１ないし請求項３のいずれかの発明において、前記専用プロセッサが、前記命令用メモリ内での位置を示すアドレスを任意に設定可能な内蔵レジスタを有し、内蔵レジスタに設定される前記第２の格納領域のアドレスを用いて第２の格納領域にアクセスすることを特徴とする。
【００１９】
この構成によれば、内蔵レジスタに設定される第２の格納領域のアドレスを任意に設定可能とすることで、命令用メモリの任意の領域を第２の格納領域とすることができ、第２の格納領域のアドレスが固定されている場合に比べて、命令用メモリの使用効率の向上を図ることができる。
【発明の効果】
【００２０】
本発明は、専用プロセッサが、ＰＬＣバスからの割込み入力の検出時に、命令用メモリ内の第２の格納領域にアクセスして割込みプログラムの実行に必要な特定処理を実行するので、割込み入力発生時の専用プロセッサ・汎用プロセッサの切替制御を省略することができ、割込みプログラムに対する応答速度を向上することができるという利点がある。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施形態１の構成を示す概略ブロック図である。
【図２】同上の命令用メモリの構造の概略説明図である。
【図３】同上の専用プロセッサの動作を示すフローチャートである。
【図４】本発明の実施形態２における内蔵レジスタの構造の概略説明図である。
【図５】本発明の実施形態３における命令用メモリの構造の概略説明図である。
【発明を実施するための形態】
【００２２】
（実施形態１）
本実施形態のプログラマブルコントローラ（以下、「ＰＬＣ」という）１は、図１に示すように、プログラムを実行して外部装置との通信（通信処理）や周辺機器とのデータ交換（周辺処理）などを制御する汎用プロセッサとしてのＣＰＵ（中央処理装置）２と、当該ＣＰＵ２とは別に命令コードを実行する専用プロセッサ３を備えている。専用プロセッサ３は、ビット演算を主とするシーケンス命令である基本命令を実行する基本命令処理、および複数ビット演算のシーケンス命令である応用命令を実行する応用命令処理を行うものである。
【００２３】
さらに、ＰＬＣ１は、命令コードを格納する命令用メモリ４と、専用プロセッサ３が命令コードを実行する際の作業領域として使用されるデータ用メモリ５とを有している。命令コードは、複数のデバイス（接点等）を含んでおり、各デバイスの状態（接点の開閉等）を読み込んだり書き込んだりするための命令を構成するものである。各デバイスの状態を表すデバイスデータはデータ用メモリ５に格納され、専用プロセッサ３が命令コードを実行する際に使用される。
【００２４】
専用プロセッサ３は、ＣＰＵ２が接続されるＣＰＵインタフェース部３１と、命令用メモリ４およびデータ用メモリ５がそれぞれ接続されるメモリインタフェース部３２と、演算を実行する演算部（コア部）３３とを有している。
【００２５】
また、専用プロセッサ３は、命令コードを設定するプログラミングツールや制御対象等が接続されているＰＬＣバス６に対して接続されるＰＬＣバスインタフェース部３４も有している。ここでは図示を省略するが、ＰＬＣバス６にはスイッチや各種センサが接続されるとともに、ＰＬＣバス６には制御対象となるモータや各種アクチュエータ等の機器が接続され、ＰＬＣ１は前記スイッチや各種センサからの入力に応じて制御対象の機器を制御する。
【００２６】
さらに、専用プロセッサ３には内蔵レジスタ３０が設けられている。内蔵レジスタ３０は、メモリのアドレスを記憶したりするのに使用され、専用プロセッサ３と別に設けられた命令用メモリ４やデータ用メモリ５に比べて、専用プロセッサ３からのアクセスが高速である。
【００２７】
一方、ＣＰＵ２は、ＰＬＣ１内に設けた内部バス７に対して接続されている。内部バス７には、プログラムを格納するメモリ部８が接続されており、ＣＰＵ２は、内部バス７を介してメモリ部８にアクセスすることで当該メモリ部８内のプログラムを実行する。ここで、ＣＰＵ２は専用プロセッサ３と接続されており、プログラムに従って行う演算処理のうち、特定の演算処理（基本命令、応用命令）に関して専用プロセッサ３に代行させる。すなわち、専用プロセッサ３の演算部３３はＣＰＵ２からの指示により演算処理を実行する。
【００２８】
このＣＰＵ２は、専用プロセッサ３のＣＰＵインタフェース部３１およびＰＬＣバスインタフェース部３４を介してＰＬＣバス６にアクセスする。また、ＣＰＵ２は、専用プロセッサ３のＣＰＵインタフェース部３１およびメモリインタフェース部３２を介して、専用プロセッサ３に接続されている命令用メモリ４やデータ用メモリ５にアクセスする。
【００２９】
上記構成のＰＬＣ１は、たとえばＰＬＣバス６に接続された割込みユニット（図示せず）からの割込み入力に応じて、通常プログラムを中断して割込み入力に応じたラダープログラム（割込みプログラム）を実行する割込み処理を行う機能を有している。割込み処理は、システムの起動や停止や、現在実行中の通常プログラムとは別のプログラム（割込みプログラム）を実行させたいときに用いられる。
【００３０】
ここにおいて、本実施形態では、割込み入力発生時に、従来はＣＰＵ２に実施させていた割込みプログラムの実行に必要な特定処理（前処理、割込み入力に応じた割込みプログラム用の命令コードが格納されている命令用メモリ４のアドレスの判別、後処理）を専用プロセッサ３にて実行する。つまり、専用プロセッサ３は特定の演算処理（基本命令、応用命令）用に特化されるのでなく、割込み入力の発生時に必要な処理をも実行可能に構成されている。そのために、専用プロセッサ３は、前記特定処理に対応する専用プロセッサ３で実行可能な命令コードを、予め命令用メモリ４に格納している。さらに、専用プロセッサ３は、割込み入力の発生を検知する割込み検知手段（図示せず）と、割込み入力発生時に命令用メモリ４にアクセスして前記特定処理を実行する割込実行手段（図示せず）とを有している。
【００３１】
前処理は、割込みプログラムを開始する前に必要な処理であって、専用プロセッサ３の内蔵レジスタ３０内のデータの退避や、割込み入力信号の読出しを含む。後処理は、割込みプログラムから通常プログラムに復帰する際に必要な処理であって、残りの割込みプログラムの実行要求の判別や、専用プロセッサ３の内蔵レジスタ３０から退避させていたデータの復帰を含む。つまり、通常プログラム・割込みプログラムで共通の内蔵レジスタ３０が使用されるため、割込みプログラムを実行するに当たっては、通常プログラムで使用していたデータを、内蔵レジスタ３０から一旦退避させ、割込みプログラム完了後に内蔵レジスタ３０に復帰させる必要がある。
【００３２】
ここで、命令用メモリ４における格納領域は図２に示すようにアドレスによって区分されており、通常プログラム用の命令コードを格納する第１の格納領域Ｍａ１とは別に、割込みプログラム用の命令コード（前記特定処理に必要な命令コード）を格納する第２の格納領域Ｍａ２を設けてある。各格納領域Ｍａ１，Ｍａ２は予め固定的に設定されており、専用プロセッサ３の内蔵レジスタ３０には、格納領域Ｍａ１，Ｍａ２のアドレスが予め固定的に設定されている。図２の例では、アドレス「ｘｘＮｈ」〜「ｘｘ（Ｎ＋Ｍ）ｈ」の範囲を通常プログラム用の命令コードの格納領域Ｍａ１とし、アドレス「ｘｘ（Ｎ＋Ｍ）ｈ」〜「ｘｘ（Ｎ＋Ｍ＋Ｐ）ｈ」の範囲を割込みプログラム用の命令コードの格納領域Ｍａ２としている。
【００３３】
以下に、外部から割込み入力があった場合の専用プロセッサ３の動作について、図３のフローチャートを参照して説明する。
【００３４】
専用プロセッサ３は、通常プログラムの実行中（Ｓ１）、ＰＬＣバス６を介して割込み入力（図１に破線矢印で示す）を検出すると（Ｓ２：Ｙｅｓ）、現在実行中の命令コードの完了後、予め決められている命令メモリ４のアドレス（格納領域Ｍａ２のアドレス）より、割込みプログラムの実行に必要な前処理を読み出して実行する（Ｓ３）。専用プロセッサ３は、前処理の実行後、割込み入力に応じた割込みプログラム用の命令コードが格納された命令用メモリ４のアドレスの判別等を行い、当該アドレスを内蔵レジスタ３０に設定して割込みプログラムを実行する（Ｓ４）。
【００３５】
割込みプログラムの実行完了後、専用プロセッサ３は、予め決められている命令メモリ４のアドレス（格納領域Ｍａ２のアドレス）より、割込みプログラムの後処理を読み出して実行する（Ｓ５）。それから、専用プロセッサ３は、次に実行する通常プログラム用の命令コードが格納されている命令用メモリ４のアドレスを内蔵レジスタ３０に設定し、ステップＳ１に戻って通常プログラムの実行を再開する。
【００３６】
以上説明したように、本実施形態の構成によれば、割込み入力発生時に、専用プロセッサ３がＣＰＵ２の介在を一切必要としないため、専用プロセッサ３・ＣＰＵ２の切替制御が生じず、専用プロセッサ３・ＣＰＵ２間の切替制御が頻繁に行われる従来構成に比べて、割込みプログラムに対する応答が高速になる。すなわち、割込みプログラムに対する応答性が向上するという利点がある。
【００３７】
なお、本実施形態では、図１に破線矢印で示すように、ＰＬＣバス６から専用プロセッサ３に入力される割込み入力は、専用プロセッサ３のＰＬＣバスインタフェース部３４およびＣＰＵインタフェース部３１を経由してＣＰＵ２にも入力される。これにより、ＣＰＵ２においても割込み入力を受けることができ、専用プロセッサ３における割込み入力に対する処理とは別に、ＣＰＵ２においても割込み入力に対する処理を実行させることができる。
【００３８】
（実施形態２）
本実施形態のＰＬＣ１は、専用プロセッサ３の内蔵レジスタ３０が通常プログラム用と割込みプログラム用とで各々個別に設けられている点が実施形態１のＰＬＣ１と相違する。
【００３９】
すなわち、専用プロセッサ３は、図４に示すように、通常プログラムを実行する際に使用する第１の内蔵レジスタ（内蔵レジスタ０〜ｎ）３０と、割込みプログラムを実行する際に使用する第２の内蔵レジスタ３０’とを別に有している。専用プロセッサ３には、これらの内蔵レジスタ３０，３０’のうち使用する内蔵レジスタを、通常プログラム実行時と割込みプログラム実行時とでスイッチ等のハードウェアで自動的に切り替える切替手段（図示せず）が設けられている。
【００４０】
以上説明した構成により、割込み入力発生時には、通常プログラム用の内蔵レジスタ３０から割込みプログラム用の内蔵レジスタ３０’に自動的に切り替わるため、割込みプログラムの前処理において内蔵レジスタ３０内のデータを退避する処理が不要になる。また、割込みプログラムの完了後には、割込みプログラム用の内蔵レジスタ３０’から通常プログラム用の内蔵レジスタ３０に自動的に切り替わるため、割込みプログラムの後処理において内蔵レジスタ３０内のデータの復帰処理が不要になる。このように、内蔵レジスタ３０に対するデータの出し入れ（退避、復帰）の回数を減らすことができ、通常プログラム−割込みプログラムの切替時間を短縮することができるので、割込みプログラムに対する応答をさらに高速化できるという利点がある。
【００４１】
その他の構成および機能は実施形態１と同様である。
【００４２】
（実施形態３）
本実施形態のＰＬＣ１は、割込み入力発生時に割込みプログラムの実行に必要な特定処理（前処理、割込み入力に応じた割込みプログラム用の命令コードが格納されている命令用メモリ４のアドレスの判別、後処理）に必要なプログラム（命令コード）が格納される格納領域Ｍａ２を、命令用メモリ４内で固定的に設定された領域とするのではなく、任意に変更可能とした点が実施形態１のＰＬＣ１と相違する。
【００４３】
すなわち、前記特定処理に係るプログラムの格納領域Ｍａ２が固定的（つまり、当該格納領域Ｍａ２のアドレスが固定的）であると仮定すると、通常プログラムを変更する必要が生じた場合、以下のような課題がある。つまり、この場合、ユーザは、通常プログラムの変更後に、通常プログラム用の命令コードを格納する命令用メモリ４内の格納領域Ｍａ１が、前記特定処理用の格納領域Ｍａ２と重ならないように留意する必要がある。万一、両格納領域Ｍａ１，Ｍａ２が重なるようであれば、重なる領域を分割して設定する必要が生じ、命令用メモリ４を効率よく使用することが難しくなる。
【００４４】
そこで、本実施形態では、上記課題を解決するため、前記特定処理に必要なプログラムが格納される格納領域Ｍａ２を、図５に示すように命令用メモリ４内に任意に設定可能としている。つまり、たとえば図２のようにアドレス「ｘｘ（Ｎ＋Ｍ）ｈ」〜「ｘｘ（Ｎ＋Ｍ＋Ｐ）ｈ」で指定される範囲にあった格納領域Ｍａ２を、図５のようにアドレス「ｘｘ（Ｎ＋Ｑ）ｈ」〜「ｘｘ（Ｎ＋Ｑ＋Ｐ）ｈ」の範囲の格納領域Ｍａ２’に変更することができる。ここで、命令用メモリ４内の特定処理用の格納領域Ｍａ２’を表すアドレス（図５の例では、アドレス「ｘｘ（Ｎ＋Ｑ）ｈ」〜「ｘｘ（Ｎ＋Ｑ＋Ｐ）ｈ」）についても、命令用メモリ４内の格納領域Ｍａ２’に合わせて、専用プロセッサ３の内蔵レジスタ３０に任意に設定可能とする。
【００４５】
以上説明した本実施形態の構成により、通常プログラム用の命令コードを変更する場合には、変更後の通常プログラム用の命令コードの格納領域Ｍａ１に合わせて、前記特定処理に必要なプログラムが格納される格納領域Ｍａ２を変更することにより、命令用メモリ４を効率よく使用できるという利点がある。
【００４６】
その他の構成および機能は実施形態１と同様である。
【符号の説明】
【００４７】
１  ＰＬＣ（プログラマブルコントローラ）
２  ＣＰＵ（汎用プロセッサ）
３  専用プロセッサ
４  命令用メモリ
５  データ用メモリ
６  ＰＬＣバス
７  内部バス
８  メモリ部
３０  内蔵レジスタ
Ｍａ１，Ｍａ２  格納領域
【図１】
2011060211.tif 000003
【図２】
2011060211.tif 000004
【図３】
2011060211.tif 000005
【図４】
2011060211.tif 000006
【図５】
2011060211.tif 000007