(57)【要約】【課題】各入力端子に対してシリアルに処理される通常の巡回診断の診断周期よりも大幅に短い診断周期で、短絡故障などの不具合を検出する手段を提供すること。【解決手段】マイコン１００Ａが自己診断Ａの処理を実行している間、Ｂ系のマイコン１００Ｂの第２診断パルス出力手段１１０Ｂは一切使用されない。また、Ｂ系のマイコン１００Ｂは、この時、少なくとも自己診断Ａの処理に係わる処理を一切実行しない。この様に診断パルスの出力のタイミングをＡ系とＢ系とでずらすことにより、各診断処理（自己診断Ａ／Ｂ）の独立性が確保される。このため、自己診断ＡによりＡ系とＢ系の独立性をＡ系側から簡潔に検証することができる。また、第１診断パルス出力手段１１０Ａによって第１診断パルス群がパラレルに同時に出力される。このため、各外部入力機器に対する巡回制御が必要ないので、Ａ系とＢ系との独立性を短時間に検証することができる。【選択図】図２
2006040195.tif 000002
【特許請求の範囲】
【請求項１】
複数の外部入力機器とそれらの外部入力機器から入力される入力信号群を処理する処理装置が複数の系統に多重化され、全ての系統の入力信号群が一致した時に真正な入力信号が入力されたと判定し、不一致の場合には異常停止処理を行うようにしたプログラマブルコントローラにおいて、
一の系統の処理装置は、
他の系統の処理装置に対して、一の系統に固有のタイミングで診断パルス群をパラレル出力する診断パルス出力手段と、
他の系統の処理装置の診断パルス出力手段から出力される診断パルス群を入力して、それらのパルス期間だけ入力信号群の伝搬を遮断するチェック手段と、
自己の系統の前記診断パルス出力手段からの診断パルスの出力に対応して前記入力信号群の信号が変化した場合には、異常停止処理を行う異常判定手段と
を有する
ことを特徴とするプログラマブルコントローラ。
【請求項２】
それぞれが二重に構成された外部入力機器群から出力される第１入力信号群を入力する第１入力端子群と、その第１入力端子に入力される第１入力信号群を処理する第１信号処理装置と、前記外部入力機器群から出力される第２入力信号群を入力する第２入力端子群と、その第２入力端子群に入力される前記第２入力信号群を処理する第２信号処理装置とで、二重に構成され、入力信号群の一要素である第１入力信号と、その信号と一対を成す第２入力信号とが一致した時に真正な入力信号が入力されたと判定し、不一の場合には異常停止処理を行うようにしたプログラマブルコントローラにおいて、
前記第１信号処理装置は、
前記第２信号処理装置に対して第１診断パルス群をパラレル出力する第１診断パルス出力手段と、
前記第２信号処理装置から出力される第２診断パルス群をパラレル入力してそれらのパルス期間だけ前記第１入力信号群の伝搬を遮断する第１チェック手段と、
前記第１診断パルス出力手段からの第１診断パルス群の出力に対応して前記第１入力信号群が変化した場合には、異常と判定して異常停止処理をする第１異常判定手段とを有し、
前記第２信号処理装置は、
前記第１診断パルス群の出力とは異なるタイミングで、前記第１チェック手段に、第２診断パルス群をパラレル出力する第２診断パルス出力手段と、
前記第１診断パルス出力手段から出力される第１診断パルス群をパラレル入力して、それらのパルス期間だけ前記第２入力信号群の伝搬を遮断する第２チェック手段と、
前記第２診断パルス出力手段からの第２診断パルス群の出力に対応して前記第２入力信号群が変化した場合には、異常と判定して異常停止処理をする第２異常判定手段とを有する
ことを特徴とするプログラマブルコントローラ。
【請求項３】
前記異常判定手段は、
所定回数連続して前記入力信号群の同一入力端子からの信号が変化した場合に異常と判定して異常停止をする
ことを特徴とする請求項１に記載のプログラマブルコントローラ。
【請求項４】
前記第１異常判定手段は、
所定回数連続して前記第１入力信号群の同一入力端子からの信号が変化した場合に異常と判定して異常停止をする手段であり、
前記第２異常判定手段は、
所定回数連続して前記第２入力信号群の同一入力端子からの信号が変化した場合に異常と判定して異常停止をする手段である
ことを特徴とする請求項２に記載のプログラマブルコントローラ。
【請求項５】
前記一の系統の信号処理装置は、
他の系統の処理装置に対して、入力端子毎にシリアルにシリアル診断パルスを出力するシリアル診断パルス出力手段と、
他の系統の処理装置のシリアルパルス出力手段から入力端子毎にシリアルに出力されるシリアル診断パルスを入力して、そのパルス期間に対応して入力信号が変化しない場合に異常と判定して、異常停止処理をするパルスチェック手段と
を有する
ことを特徴とする請求項１又は請求項３に記載のプログラマブルコントローラ。
【請求項６】
前記第１信号処理装置は、
入力端子毎の前記第２チエック手段に第１シリアル診断パルスをシリアルに出力する第１シリアル診断パルス出力手段と、
前記第２信号処理装置から入力端子毎の前記第１チェック手段にシリアルに出力された第２シリアル診断パルスを入力して、そのパルス期間に対応して第１入力信号が変化しない場合に異常と判定して、異常停止処理をする第１パルスチェック手段と
を有し、
前記第２信号処理装置は、
入力端子毎の前記第１チエック手段に第２シリアル診断パルスをシリアルに出力する第２シリアル診断パルス出力手段と、
前記第１シリアル診断パルス出力手段から入力端子毎の前記第２チェック手段にシリアルに出力された第１シリアル診断パルスを入力して、そのパルス期間に対応して第２入力信号が変化しない場合に異常と判定して、異常停止処理をする第２パルスチェック手段と
を有する
ことを特徴とする請求項２又は請求項４に記載のプログラマブルコントローラ。
【請求項７】
前記チェック手段は、
前記入力信号を入力するフォトカプラと、そのフォトカプラの発光ダイオードに直列に接続されたフォトトランジスタと診断パルスを入力しフォトトランジスタに光信号を発する発光ダイオードとから成るフォトカプラとから成る
ことを特徴とする請求項１、請求項３または請求項５の何れか１項に記載のプログラマブルコントローラ。
【請求項８】
前記第１チェック手段は、
前記第１入力信号を入力するフォトカプラと、そのフォトカプラの発光ダイオードに直列に接続されたフォトトランジスタと第２診断パルスを入力しフォトトランジスタに光信号を発する発光ダイオードとから成るフォトカプラとから成り、
前記第２チェック手段は、
前記第２入力信号を入力するフォトカプラと、そのフォトカプラの発光ダイオードに直列に接続されたフォトトランジスタと第１診断パルスを入力しフォトトランジスタに光信号を発する発光ダイオードとから成るフォトカプラとから成る
ことを特徴とする請求項２、請求項４、または請求項６の何れか１項に記載のプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットや工作機械やそれらの周辺機器の動作に対するシーケンス制御に関わり、特に、プログラマブルコントローラ（ＰＬＣ）に入力された入力信号に対する処理の確実性や安全性を高度に確保するために大いに有用なものである。
【背景技術】
【０００２】
上記の様なシーケンス制御をプログラマブルコントローラで実行するシステムがある。近年では、システムの異常や緊急状態を正確に検出したり、システムを自動的に緊急安全停止させたりするためのシステムの安全管理に特化した独立構成のＰＬＣ（いわゆる安全ＰＬＣ）が普及しつつある。下記の特許文献１、２には、この様ないわゆる安全ＰＬＣに関連した技術が例示されている。
【０００３】
他の技術として、図１４に、従来のプログラマブルコントローラに利用されている公知の入力回路２０１の回路図（平常時）を例示する。この入力回路２０１は、実際に使用される入力回路を部分的に簡潔に示したものである。本回路では、非常停止スイッチであるスイッチＳＷ１、ＳＷ０は二重化されており常閉接点であり、フォトカプラ１０、２０、３０、４０は常に電流が流れている動作状態で用いられている。スイッチＳＷ１、ＳＷ０が開状態となると、フォトカプラ１０、２０を流れる電流、及び、フォトカプラ３０、４０を流れる電流が、それぞれ何れも遮断される。このように、スイッチＳＷ１からの入力信号を入力して処理する回路系統（図示する入力回路２０１の上半分の系を以下、Ａ系と言うことがある。）と、スイッチＳＷ０からの入力信号を入力して処理する回路系統（図示する入力回路２０１の下半分の系を以下、Ｂ系と言うことがある。）とが二重に構成されている。
【０００４】
そして、この二重構成により、Ａ系から検出されたスイッチＳＷ１の開閉状態を示す入力信号と、Ｂ系から検出されたスイッチＳＷ０の開閉状態を示す入力信号とが、一致した場合には、正常な入力信号として取扱い、その後の論理処理が実行されて出力機器が制御される。たとえば、非常停止スイッチが押下されて、接点が開状態になれば、そのスイッチから出力される２つの入力信号は共に開状態を示す信号となり一致するので、真正な入力信号として、全ての出力機器の動作を停止する非常停止処理が実行される。
これに対して、２つの系のスイッチＳＷ１とスイッチＳＷ０からの入力信号が一致しない場合には、異常が発生したとして、非常停止、すなわち、全ての出力機器の動作を瞬時に緊急停止させるようにしている。
【０００５】
一方、入力回路やその制御装置は、常に、自己診断されている。その方法を以下に示す。
図１４において、符号ａ，ｂ，ｃ，ｄはそれぞれインバータ（論理反転器）を示している。図示する安全管理を司る図略のＡ系制御用のマイコンから、インバータｂに対して診断パルスＯＡ（図中の信号Ｌ）が出力されると、インバータｂの反転作用により、フォトカプラ４０の診断パルス入力端子４０ａの電位は上がる。これにより、フォトカプラ４０が内蔵するＬＥＤの発光は、パルス（信号Ｌ）の期間だけ一時的に中断されるので、フォトカプラ３０を通っていた平常電流ｉn は一旦遮断される。したがって、インバータｃを介してもう片方の図略のＢ系制御用のマイコンに入力される診断結果（診断パルスＯＡに対する応答信号ＩＢ）は、一時的に１から０に変位する。
【０００６】
この関係を図１５−Ａに示す。即ち、本図１５−Ａは、端子Ｐ，Ｑ間が短絡しておらず、かつ、スイッチＳＷ１，ＳＷ０が何れも閉じている時に、上記の診断パルスＯＡ（図中の信号Ｌ）が出力された際の、診断パルスＯＡと応答信号ＩＢとの関係を示している。逆にＢ系制御用のマイコンから診断パルスＯＢを同様に発信した際にも、同様の対称的な関係が成り立つ。この診断パルスＯＢと前述の図１４の応答信号ＩＡとの関係を図１５−Ｂに示す。これらの関係は、回路の対称性からも容易に理解することができる。
【０００７】
例えばこの様な、診断パルスの発信側とその診断パルスに対する応答信号の受信側とが相異なるコンピュータで構成された例えば上記の様な診断を、以下、クロス診断と言う。ただし、この様なクロス診断において、受信側で受信された上記の応答信号を即座に診断パルス発信側から参照可能とする様な通信手段や診断結果共有手段をマイコン間に設けても良い。
この様なクロス診断を行うことにより、各端子（Ｏ，Ｐ，Ｑ，Ｒ）間の導通状態や回路の動作状態を常時相補的に協調しながら監視することができ、入力回路の二重化とその定常的な監視が行われる。また、診断パルスを異系統間で互いにクロスさせることにより、相手方系統の制御用マイコンの正常動作を常時監視する効果も同時に得られる。
【０００８】
従来装置においては、以上の様にして、スイッチ開閉信号の伝達線路やスイッチ自身等を図１４の様に二重化することによって入力回路２０１が二重化され、これによってシステムの安全性が確保されている。
【特許文献１】特開２００４−４６３４８
【特許文献２】特開２００２−３５８１０６
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、図１６に示す様に入力回路２０１の二重化された同一入力機器に対する入力端子Ｐ，Ｑ間が短絡すると、Ａ系とＢ系のフォトカプラが直列接続されることになり、図中の短絡電流ｉs が生じる。このため、各フォトカプラ１０，２０，３０，４０には、スイッチＳＷ１，ＳＷ０の開閉状態に係わらず、電流が常時流れ続けることになる。したがって、非常停止スイッチＳＷ１，ＳＷ０が開状態にされても、上記のスイッチ開閉信号（ＩＡ，ＩＢ）は何れも閉状態を示したまま変化しない。即ち、双方共に、常時１のままに据え置かれてしまう。したがって、この様な短絡による異常は、上述した二重化された応答信号ＩＡ，ＩＢ間の不一致を監視する周知の不一致検出手段を用いても、検出されることはない。
なお、異なる入力機器に対する端子間で短絡が生じた場合には、二重化されたスイッチが開状態となると、短絡していない端子の系の入力信号は、開状態となり、他方の系は閉状態を持続するが、二重化信号が不一致と判断されて、直ちに、非常停止処理が動作することになり、問題は生じない。
【００１０】
一方、上記の短絡が発生した後に、非常停止スイッチＳＷ１，ＳＷ０が開状態となり、その後に、上記したクロス診断が実行される場合について説明する。実際には、図１４の様な入力回路２０１が管理対象とすべき装置や周辺機器の数だけ必要となるので、図１４の様な入力回路２０１は多数並列に配置される。この時、上記のＡ系制御用のマイコンとＢ系制御用のマイコンを中心として構成される従来の安全ＰＬＣでは、この様にして多数並列に配置された入力回路の各部の各入力端子の状態をそれぞれ周期的に診断パルスを各端子毎に出力して、入力信号を読むという処理を巡回して実行することで、システムの安全性を常時監視する。
この場合には、回路が短絡しているので、短絡している他の系の回路の電流も診断パルスにより遮断されることになり、この現象を入力信号のレベル変化で検出することができる。したがって、不一致検出手段が有効に作用しない場合であっても、この様な巡回診断を常時実施していれば、この巡回診断に基づいて前述の短絡故障を検出することは可能ではある。
【００１１】
しかしながら、この巡回診断は各端子に対してシーケンシャルに実行されるので、この巡回診断を実行する際の診断周期は、その診断対象の数に比例する。このため、後から図６などを用いて例示的に説明する様に、非常に長くなりがちであり、よって、上記の様な短絡などの異常を検出するまでに必要とされる所要時間は、十分に短くできるとは必ずしも言えないのが現状である。
また、巡回診断の診断周期は入力回路の入力端子数に比例するため、この様な問題は、システム規模が大きくなるに従って、今後ますます表面化又は顕在化していくものと思われる。
【００１２】
本発明は、上記の課題を解決するために成されたものであり、その目的は、故障発見をより確実に行い、非常停止をより確実かつ迅速に行えるようにすることである。
【課題を解決するための手段】
【００１３】
上記の課題を解決するためには、以下の手段が有効である。
即ち、本発明の第１の手段は、複数の外部入力機器とそれらの外部入力機器から入力される入力信号群を処理する処理装置が複数の系統に多重化され、全ての系統の入力信号群が一致した時に真正な入力信号とし、不一致の場合には異常停止処理を行うようにしたプログラマブルコントローラにおいて、一の系統の処理装置に、他の系統の処理装置に対して一の系統に固有のタイミングで診断パルス群をパラレル出力する診断パルス出力手段と、他の系統の処理装置の診断パルス出力手段から出力される診断パルス群を入力してそれらのパルス期間だけ入力信号群の伝搬を遮断するチェック手段と、自己の系統の診断パルス出力手段からの診断パルスの出力に対応する入力信号群（応答パターン）の信号（応答信号）が変化した場合には、異常停止処理を行う異常判定手段とを備えることである。
【００１４】
本発明における多重化の数は任意である。一の系統から他の系統に対して、診断パルスをパラレルで出力して、その他の系統の入力信号群の伝搬をパルス期間だけ遮断して、診断パルスを出力した自己の系統の入力信号群の状態を判定するのが、本件発明の特徴である。故障がなければ、系統は独立しているので、診断パルスを入力していない自己の系統の入力信号群は、診断パルスの影響を受けない。しかし、端子間にある種の短絡が発生していると、回路が形成され、他の系統に入力された診断パルスの影響を受けて、自己の系統の入力信号群の信号が変化する。このことにより、瞬時に、故障を発見して、非常停止処理を実行することができる。
【００１５】
なお、入力機器は特に限定されないが、一般的には、スイッチやリレーなどの接点を想定している。また、通常は、これらの接点は、常閉接点として用いられることが多い。この時、入力回路は常に電流が供給された状態で用いられ、スイッチが開状態となると回路の電流が遮断され、この変化が意味ある入力信号とされる。
【００１６】
また、本発明の第２の手段は、それぞれが二重に構成された外部入力機器群から出力される第１入力信号群を入力する第１入力端子群と、その第１入力端子に入力される第１入力信号群を処理する第１信号処理装置と、外部入力機器群から出力される第２入力信号群を入力する第２入力端子群と、その第２入力端子群に入力される第２入力信号群を処理する第２信号処理装置とで、二重に構成され、入力信号群の一要素である第１入力信号と、その信号と一対を成す第２入力信号とが一致した時に真正な入力信号とし、不一の場合には異常停止処理を行うようにしたプログラマブルコントローラにおいて、第１信号処理装置に、第２信号処理装置に対して第１診断パルス群をパラレル出力する第１診断パルス出力手段と、第２信号処理装置から出力される第２診断パルス群をパラレル入力してそれらのパルス期間だけ第１入力信号群の伝搬を遮断する第１チェック手段と、第１診断パルス出力手段からの第１診断パルス群の出力に対応して第１入力信号群が変化した場合には、異常と判定して異常停止処理をする第１異常判定手段とを備え、かつ、第２信号処理装置には、第１診断パルス群の出力とは異なるタイミングで、第１チェック手段に第２診断パルス群をパラレル出力する第２診断パルス出力手段と、第１診断パルス出力手段から出力される第１診断パルス群をパラレル入力してそれらのパルス期間だけ第２入力信号群の伝搬を遮断する第２チェック手段と、第２診断パルス出力手段からの第２診断パルス群の出力に対応して第２入力信号群が変化した場合には、異常と判定して異常停止処理をする第２異常判定手段とを備えることである。
【００１７】
この発明は、多重化数を２として構成したものである。各系統は対称的な回路構成をしており、請求項１の発明と同様に、診断パルスは他の系統に対して出力するのであるが、診断パルスをパラレルで出力した系統における入力信号群の状態を検出することで、異常判定が実施される。上記のような短絡故障が発生している状態で、入力機器であるスイッチが開状態となると、診断パルスを入力して、回路電流がパルス期間だけ遮断されると、他の回路の電流も遮断されることになる。診断パルスを入力していない他の回路からの入力信号群の状態を判定することで、異常状態を検出することができる。この検出は、診断パルスを入力端子群に対してパラレルで出力していることから、この出力タイミングから入力信号群の処理時間の遅延の後に、異常診断を完了することが可能となる。よって、非常停止スイッチが閉状態から開状態に変化してから遅延なく、非常停止を実施することが可能となる。ただし、厳密には、この時の遅延時間は、診断パルスの出力のサイクルタイムだけの時間、即ち、例えば、１８ｍｓｅｃ程度となる。
【００１８】
また、本発明の第３の手段は、上記の第１の手段において、上記の異常判定手段によって、所定回数連続して入力信号群の同一入力端子からの信号が変化した場合に異常と判定して異常停止をすることである。
【００１９】
所定回数連続して判定するのは、雑音対策であり、所定回数連続して同一信号レベルが得られれば真正な値とし、得られなければ雑音と判断して真正な値としないものである。したがって、この回数は多いと耐雑音性が向上するが、非常停止に至るまでの時間は長くなる。この観点から、所定回数は適切に設定される。例えば、１０回程度である。
【００２０】
また、本発明の第４の手段は、上記の第２の手段において、上記の第１異常判定手段を、所定回数連続して第１入力信号群の同一入力端子からの信号が変化した場合に異常と判定して異常停止をする手段とし、上記の第２異常判定手段を、所定回数連続して第２入力信号群の同一入力端子からの信号が変化した場合に異常と判定して異常停止をする手段とすることである。
なお、上記の所定回数については、上記の本発明の第３の手段と同じことが言える。
【００２１】
また、本発明の第５の手段は、上記の第１または第３の手段において、一の系統の信号処理装置に、他の系統の処理装置に対して入力端子毎にシリアルにシリアル診断パルスを出力するシリアル診断パルス出力手段と、他の系統の処理装置のシリアルパルス出力手段から入力端子毎にシリアルに出力されるシリアル診断パルスを入力して、そのパルス期間に対応して入力信号が変化しない場合に異常と判定して異常停止処理をするパルスチェック手段を備えることである。
【００２２】
また、本発明の第６の手段は、上記の第２または第４の何れか１つの手段において、上記の第１信号処理装置に、シリアルに第１シリアル診断パルスを入力端子毎の第２チエック手段に出力する第１シリアル診断パルス出力手段と、第２信号処理装置から入力端子毎の第１チェック手段にシリアルに出力された第２シリアル診断パルスを入力してそのパルス期間に対応して第１入力信号が変化しない場合に異常と判定して異常停止処理をする第１パルスチェック手段とを設け、かつ、上記の第２信号処理装置には、シリアルに第２シリアル診断パルスを入力端子毎の第１チエック手段に出力する第２シリアル診断パルス出力手段と、第１シリアル診断パルス出力手段から入力端子毎の第２チェック手段にシリアルに出力された第１シリアル診断パルスを入力してそのパルス期間に対応して第２入力信号が変化しない場合に異常と判定して異常停止処理をする第２パルスチェック手段とを設けることである。
【００２３】
また、本発明の第７の手段は、上記の第１、第３、または第５の何れか１つの手段において、入力信号を入力するフォトカプラと、そのフォトカプラの発光ダイオードに直列に接続されたフォトトランジスタと診断パルスを入力しフォトトランジスタに光信号を発する発光ダイオードとから成るフォトカプラとから上記のチェック手段を構成することである。
なお、信号を処理するフォトカプラ等の回路は、常に電流が供給された状態で用いられ、スイッチが開状態となると、回路の電流が遮断され、この変化が意味ある入力信号とされる。
【００２４】
また、本発明の第８の手段は、上記の第２、第４、または第６の何れか１つの手段において、上記の第１入力信号を入力するフォトカプラと、そのフォトカプラの発光ダイオードに直列に接続されたフォトトランジスタと第２診断パルスを入力しフォトトランジスタに光信号を発する発光ダイオードとから成るフォトカプラとから上記の第１チェック手段を構成し、かつ、上記の第２入力信号を入力するフォトカプラと、そのフォトカプラの発光ダイオードに直列に接続されたフォトトランジスタと第１診断パルスを入力しフォトトランジスタに光信号を発する発光ダイオードとから成るフォトカプラとから上記の第２チェック手段を構成することである。
以上の本発明の手段により、前記の課題を効果的、或いは合理的に解決することができる。
【発明の効果】
【００２５】
以上の本発明の手段によって得られる効果は以下の通りである。
即ち、本発明の第１の手段によれば、各系統間で相互に相異なる固有のタイミングで診断パルス群がパラレル出力されるので、この時、並列に多重化された各系統毎に保証されるべき個々の系統の独立性が短絡などによって破られていれば、本来何ら変化すべきでない自系統の入力信号群の中の少なくとも１信号が変化し、かつ、その変化が自系統において検出される。このため、本発明の第１の手段によれば、少なくとも自系統の独立性が破れていることを検出することができ、よって、多重化された各系統毎に保証されるべき個々の系統の独立性が短絡などによって破られた際には、上記の異常停止処理が実施されて、その結果、短絡などによる事故を未然に防止することができる。
【００２６】
以下、上記の本発明の第２の手段における第１信号処理装置が安全管理を司る系統をＡ系と言い、また、もう一方の第２信号処理装置が安全管理を司る系統をＢ系と言うことがある。
本発明の第２の手段によれば、Ａ系とＢ系との間で相互に相異なる固有のタイミングで第１及び第２の各診断パルス群がパラレル出力されるので、この時、並列に二重化された各系統（即ち、Ａ系とＢ系）毎に保証されるべき個々の系統の独立性が短絡などによって破られていれば、入力条件によっては、本来何ら変化すべきでない自系統の入力信号群の中の少なくとも１信号が変化することがあり、この時、その変化は自系統において検出される。このため、本発明の第２の手段によれば、第１又は第２の各異常判定手段に基づいて、自系統の独立性が破れていることを検出することができ、この場合、二重化された各系統毎に保証されるべき個々の系統の独立性が短絡などによって破られた際には、上記の異常停止処理が実施されて、その結果、短絡などによる事故を未然に防止することができる。
【００２７】
系統の独立性が破れている場合としては、例えば前述の図１６に例示した短絡の例を上げることができる。この場合、端子ＰＱ間に短絡があり、その短絡電流ｉs は、Ａ系の回路（フォトカプラ１０，２０）とＢ系の回路（フォトカプラ３０，４０）とを直列に通るので、この点で、系Ａと系Ｂとの間の独立性は破られている。
そして、この時、スイッチＳＷ１，ＳＷ０が共に開いている条件下では、その異常または緊急な状態は、図１−Ａ又は図１−Ｂに示す診断パルス発信時の応答パターンによって検出することができる。即ち、図１−Ａ又は図１−Ｂに例示される短絡故障の検出作用は、上記の本発明の作用を利用した事例であると言うことができる。
【００２８】
また、本発明の第３或いは第４の手段によれば、上記の入力信号群の中の同一入力端子からの信号か所定回数連続して変化した場合に、それが異常であると判定されるので、現場に入力信号に影響を与え得るノイズが多い場合にも、それらのノイズに影響されない安定した安全管理を実現することができる。この様な制御の安定化に関する対策は、ノイズを発生する動力機器を多用する現場において特に有効となる。
【００２９】
上記の本発明の第１乃至第４の何れか１つの手段によれば、個々の系統間の独立性を検証することができる。しかし、これらの検証（診断）は、個々の系統内で起る個々の回路間での不正な干渉や短絡などの故障までをも検証（診断）できるものではない。
しかしながら、本発明の第５又は第６の手段によれば、各入力端子毎にシリアルに上記のシリアル診断パルスが出力されるので、これにより、個々の系統内で起る個々の回路間での不正な干渉や短絡などの故障までをも検証（診断）することができる。
【００３０】
また、本発明の第７又は第８の手段によれば、診断を実施する際の回路のスイッチング動作や回路遮断検出動作が、フォトカプラによって実行される。これらの信号は所定の波長の光によって伝播されるので、以下の利点を得ることができる。
（１）現場環境におけるノイズが直接的に拾われ難い形態で、上記の回路のスイッチング動作や回路遮断検出動作を安定的に実現することができる。
（２）診断を実行する側の回路群と、診断される側の回路群との間のインターフェイスを光インターフェイスのみに限定することができる。これにより、双方の回路群の独立性が高まるので、例えば電源回路などの回路設計を個別に独立させて実施することが容易となる。
【発明を実施するための最良の形態】
【００３１】
以下、本発明を具体的な実施例に基づいて説明する。
ただし、本発明の実施形態は、以下に示す個々の実施例に限定されるものではない。
【実施例１】
【００３２】
図２は、本実施例１のプログラマブルコントローラの入力回路２００の回路図である。入力端子Ｏ，Ｐはこの２端子で第１入力端子を構成している。また、同様に入力端子Ｑ，Ｒは、第２入力端子を構成している。スイッチＳＷ１，ＳＷ０は、手動の緊急停止ボタンを二重化構成にしたものであり、その緊急停止ボタンが押されると、スイッチＳＷ１，ＳＷ０は双方ともに同時に開く。即ち、緊急停止ボタンが押されると、入力端子Ｏ，Ｑ間、及び入力端子Ｐ，Ｒ間は何れも電気的な接続が絶たれる。この緊急停止ボタンは、外部入力機器を代表するものであって、実際には、その他にも図略の多数の外部入力機器が、この緊急停止ボタンに対して並列に、この緊急停止ボタンと同様に配置、接続されている。外部入力機器は、任意で良く、例えばスイッチ、リミットスイッチ、リレー、センサーなどの各種の接点を接続することができる。
ただし、装置の誤動作などによって現場環境下における安全性などが損なわれる恐れの少ない装置や、その恐れがない外部入力機器については、必ずしも入力回路を二重化する必要はない。
以下、各外部入力機器に対応する各入力回路がそれぞれ何れも二重化されている場合について説明する。
【００３３】
図２の入力端子Ｏは＋２４Ｖの直流電源端子になっている。また、入力端子Ｒはグランドレベル（±０Ｖ）に維持されている。そして、図２のスイッチＳＷ１は平常時には常に閉じているので、平常時には入力端子Ｏ，Ｐ間には常時安定した２４Ｖの直流電圧が印加されている。同様に、スイッチＳＷ０も平常時には常に閉じているので、平常時には入力端子Ｑ，Ｒ間にも常時安定した２４Ｖの直流電圧が印加されている。
一方、各フォトカプラにおける光インターフェイスを境として、その境の右側（マイコン１００Ａ、マイコン１００Ｂ側）は、何れの回路も５Ｖ電源系に構成されている。即ち、本図２中の電圧ＶB ，ＶA は何れも＋５Ｖに設定されている。
【００３４】
図２のフォトカプラ１０が備えるＬＥＤからフォトカプラ２０が備える光トランジスタに向って流れる電流は、平常時には常に流れている。これは、フォトカプラ２０が備えるＬＥＤに、平常時には常に電流を流しているためである。同様に、図２のフォトカプラ３０が備えるＬＥＤからフォトカプラ４０が備える光トランジスタに向って流れる電流は、平常時には常に流れている。これは、フォトカプラ４０が備えるＬＥＤに、平常時には常に電流を流しているためである。
【００３５】
上記の図略の多数の外部入力機器は、上記の緊急停止ボタンと同様に上記の緊急停止ボタンと並列に接続されるので、上記の第１入力端子は群を成す。以下、その群を第１入力端子群と言う。また、上記の第２入力端子を含む第２入力端子群についても同様に定義する。各外部入力機器から出力され、上記の第１入力端子群に入力される入力信号を以下第１入力信号群と言う。また、各外部入力機器から出力され、上記の第２入力端子群に入力される入力信号を以下第２入力信号群と言う。
【００３６】
図２の入力回路２００は、第１入力端子（Ｏ，Ｐ）と第１信号処理装置１０００Ａとを有し、これらによって、上半分の系統を構成している。以下、この系統をＡ系と言う。また、第２入力端子（Ｑ，Ｒ）と第２信号処理装置１０００Ｂとを有し、これらによって、下半分の系統を構成している。以下、この系統をＢ系と言う。
Ａ系の安全管理を司るＡ系制御用のマイコン１００Ａの入力部には論理反転器（インバータａ）が配設されている。したがって、フォトカプラ１０から出力され，インバータａを介してマイコン１００Ａに入力される信号は、インバータａの前後でＨ／Ｌ（即ち、１／０）が反転する。その他のインバータｂ，ｃ，ｄについても、同様の反転作用を奏する。
【００３７】
マイコン１００Ａの出力部には、第１診断パルス出力手段１１０Ａが配置されている。この第１診断パルス出力手段１１０Ａは、フォトカプラ４０に対するのと同様に、並列接続されている他の外部入力機器の図略のフォトカプラに対しても、同時に診断パルスをパラレル出力することができる。勿論、従来装置と同様に、個々の外部入力機器に対して順次シリアルに個別に診断パルスを出力することもできる。
一方、マイコン１００Ｂは、Ｂ系の安全管理を司るＢ系制御用のマイコンであり、フォトカプラ５０を中心として構成された直流電源診断用の診断回路が付加されている点以外は、上記のマイコン１００Ａと同様に、上記のマイコン１００Ａと対称的に構成、配置されている。
【００３８】
例えば、マイコン１００Ｂの出力部には、第２診断パルス出力手段１１０Ｂが配設されており、この第２診断パルス出力手段１１０Ｂは、フォトカプラ２０に対するのと同様に、並列接続されている他の外部入力機器に接続された図略のフォトカプラに対しても、同時に診断パルスをパラレル出力することができる。勿論、従来装置と同様に、それらの個々の外部入力機器に対応するフォトカプラ（チェック手段）に対して順次個別に診断パルスをシリアル出力することもできる。
【００３９】
フォトカプラ１０とフォトカプラ２０は、本発明の第１チェック手段に相当する部分を構成している。この様なフォトカプラの対は、各外部入力機器に対応するＡ系の個々の入力回路中にそれぞれ配置されるので、これにより、上記の第１入力信号群の伝播を一時的に遮断することができる。また、同様にフォトカプラ３０とフォトカプラ４０は、本発明の第２チェック手段に相当する部分を構成している。即ち、これにより、上記の第２入力信号群の伝播を一時的に遮断することができる。
即ち、この遮断を制御するのが上記の診断パルスであり、上記の様にパラレルに（同時に）発信すれば、第１診断パルス出力手段１１０Ａにより第１入力信号を、また、第２診断パルス出力手段１１０Ｂによれば第２入力信号を、何れの場合もそれぞれ同時に遮断することができる。
【００４０】
図３−Ａに、上記の各マイコン（１００Ａ，１００Ｂ）の動作に係わるタイムチャートを例示する。このマイコン１００Ａ，１００Ｂの基本とする制御周期ΔＴは、１８ｍｓｅｃに設定されている。図示する時間は、この制御周期の開始時刻を基準とした制御周期内の時刻ｔを表している。例えば、図示するクロス診断は、制御周期内の時刻ｔが１３．５ｍｓｅｃから１５．５ｍｓｅｃの間の一部の時間帯で実行される。このクロス診断では、両方のマイコン１００Ａ，１００Ｂが用いられる。
【００４１】
また、制御周期内の時刻が１５．５ｍｓｅｃから１６．５ｍｓｅｃの間の一部の時間帯で実行される自己診断Ａでは、マイコン１００Ａだけが用いられる。また、制御周期内の時刻ｔが１６．５ｍｓｅｃから１７．５ｍｓｅｃの間の一部の時間帯で実行される自己診断Ｂでは、マイコン１００Ｂだけが用いられる。
【００４２】
〔クロス診断〕
図３−Ｂに、診断パルスに対応する応答パターン（各応答信号ＩＡ（ｍ），ＩＢ（ｍ）の入力パターン）を例示する。ただし、ここで、自然数ｍは各外部入力機器に連番で付けた通し番号であり、以下、本実施例１では、ｍの最大値は２４であるものと仮定する。
自己診断Ｂでは、Ｂ系のマイコン１００Ｂが有する第２診断パルス出力手段１１０Ｂから、上記の第１チェック手段に対してパラレルに出力される診断パルスＯＢ（ｍ）（１≦ｍ≦２４）に基づいて、Ａ系のマイコン１００Ａに入力される応答信号ＩＡ（ｍ）（１≦ｍ≦２４）は変化するはずであるが、この時、入力回路２００におけるＡ系とＢ系との独立性が確保、維持されていれば、先に図１４、図１５−Ｂを用いて既に考察した様に、Ｂ系のマイコン１００Ｂに入力される応答信号ＩＢ（ｍ）（１≦ｍ≦２４）は何ら変化しないはずである。
【００４３】
したがって、図３−Ｂに例示される例外信号が検出された場合には、先に図１−Ｂを使って言及した様な、異常な事態が発生しているものと考えられる。
以下、この様な異常を検出するために、マイコン１００Ａ，１００Ｂにて実行すべき制御手順について、詳細に例示する。
【００４４】
図４に、マイコン１００Ａが実行するクロス診断（Ａ系）のフローチャートを例示する。このクロス診断は、本発明の第６の手段を具現するもので、これにより、図３−Ａのクロス診断が実現される。即ち、本図中の診断パルスＯＡ（ｍ）は、上記の通り、ｍ番目の外部入力機器のＡ系の入力回路を診断するための診断パルスであり、上記の第２チェック手段に対して出力される。この出力は、本図４のクロス診断（Ａ系）では、各外部入力機器に対してシリアルに実施される。プログラム７００は、次の図５のクロス診断（Ｂ系）を実行するプログラム８００と相似で、対称的かつ相補的に構成されており、このプログラム７００とプログラム８００によって、図３−Ａのクロス診断が実現される。
【００４５】
このプログラム７００では、まず最初に、ステップ７１０で、制御変数の初期化を行う。制御変数ｍは、診断すべき外部入力機器の通し番号を常時指している。また、制御変数ｎは、同一の外部入力機器の入力回路（Ａ系）に対して繰り返される同一の診断操作の回数を指している。この様な繰り返しを行う理由は、前述の本発明の第４の手段を実現するためである。
【００４６】
次のステップ７２０では、タイマー割り込み待ちをする。このタイミングは、図３−Ａに示した様に、ｔ＝１３．５［ｍｓｅｃ］のタイミングで良い。即ち、このタイミングでステップ７３０のサブルーチンコールが実行されて、これにより、図９の入力信号のサンプリング処理が開始される。この入力信号のサンプリング処理は、入力回路２００に入力される信号（第１入力信号群及び第２入力信号群）を所定の統計操作により確定するためのものである。この統計操作については、後からその処理手順を具体的に詳しく説明するが、この統計操作はノイズ等の主に外乱に対する対策のために行うものである。しかし、その効果は必ずしも外乱対策だけには限定されない。
【００４７】
マイコン１００Ｂ側に保持される応答信号ＩＢ（ｉ）は、マイコン１００Ａ側から両マイコン間のバスまたは共有メモリなどを介して随時参照することが可能である。そこで、ステップ７４０では、マイコン１００Ａに入力された応答信号ＩＡ（ｉ）（１≦ｉ≦２４）をそれぞれ全件（２４ビット）所定の退避領域に保存し、更に、マイコン１００Ｂに入力された応答信号ＩＢ（ｉ）（１≦ｉ≦２４）についても、それぞれ全件（２４ビット）所定の退避領域に保存する。
このタイミングでは、先に診断パルスＯＡ（ｉ），診断パルスＯＢ（ｉ）（１≦ｉ≦２４）が発行されていないので、後のステップ７８０では、応答信号ＩＡ（ｉ）（１≦ｉ≦２４）が全ビット１であることが確認できれば、これらの入力ビット（第１入力信号群）については正常であると判定することができる。また、第２入力信号群（応答信号ＩＢ（ｉ））についても同様である。
【００４８】
ステップ７５０では、ｍ番目の外部入力機器のＢ系のチェック手段に対して、診断パルスＯＡ（ｍ）を出力する。本プログラム７００と相似かつ対称的に構成された図５のプログラム８００においては、本ステップ７５０に対応するステップ８５０において、ｍ番目の外部入力機器のＡ系のチェック手段に対して診断パルスＯＢ（ｍ）が、略同時に出力されるので、この診断パルスの交差関係に基づいて前述のクロス診断が実現される。ただし、厳密には後述の通り相互に排他的なタイミングで、各診断パルスＯＡ（ｍ），ＯＢ（ｍ）が出力される。
【００４９】
ステップ７６０では、上記のステップ７４０と同様の処理を実行する。ただし、勿論、入力データの退避領域は、別に設ける。これらの退避領域にそれぞれ蓄積された１００回分の診断データに基づいて、ステップ７８０の異常判定を実施することができる。
なお、ステップ７４０からステップ７６０までの３つのステップで構成される一連の処理αは、後述の図５のステップ８４０からステップ８６０までの３つのステップで構成される一連の処理βとは、タイミングをずらして相互に排他的に実行する。この排他制御を実行するための同期は、マイコン１００Ａとマイコン１００Ｂとの間で、順次相互に割り込みを入れあって実現しても良い。
【００５０】
また、ステップ７７０〜ステップ７７４は、上記の入力データの保存処理を１００回繰り返し行うための制御を実現するためのステップである。即ち、この繰り返し制御は、本発明の第４の手段を具現するものである。
【００５１】
ステップ７８０では、ｍ番目の外部入力機器のＡ系の入力回路に異常がないかを判定する。ここで、上記の診断データに基づいて、異常が検出された場合には、ステップ７８５にて緊急安全停止指令発行のサブルーチンをコールして本プログラム７００の全処理を終了し、呼出元に制御を戻す。
ステップ７９０〜ステップ７９４は、合計２４台接続されている外部入力機器に対する巡回処理を実現するための繰り返し制御を実行するものである。
【００５２】
図５のプログラム８００においても、上記のプログラム７００と同様に、Ｂ系に関する同等の処理を並列に実行する。そして、この様にして、診断パルスを異系統間で相互にクロスさせること（即ち、前述の処理α，βを相互に排他制御しながら交互に実行すること）により、相手方系統の制御用マイコンの正常動作を常時監視する効果も同時に得ることができる。
【００５３】
図３−Ａからも判る様に、図４、図５のステップ７２０やステップ８２０の割り込み待ちが解除される基本的な制御周期は、ΔＴ＝１８ｍｓｅｃである。したがって、図４、図５にそれぞれ図示する各巡回点（ａ）をその巡回制御が通過する周期も、同様に１８ｍｓｅｃとなる。また、１台の外部入力機器に関するクロス診断は、上記の通り連続１００回実行されるので、図４、図５にそれぞれ図示する各巡回点（ｂ）をその巡回制御が通過する周期は、１００ΔＴ＝１８００ｍｓｅｃとなる。また、本実施例では外部入力機器が合計２４台接続されるので、図４、図５にそれぞれ図示する各巡回点（ｃ）をその巡回制御が通過する周期は、２４×１００ΔＴ＝４３．２秒となる。
【００５４】
これらの関係をまとめたものが図６である。即ち、図６は、測定回数Ｎや端子数Ｍ（外部入力機器の総計台数）に依存する、上記のクロス診断に必要となる診断周期τを算定したものである。プログラム７００とプログラム８００によって実行される上記のクロス診断は、個々の入力端子の状態に関する綿密性には優れているものの、診断周期τが長くなってしまう傾向にある。このため、短絡故障や緊急事態の発生などに関する検出が必ずしも十分に短い時間内に実施できるとは限らない。
【００５５】
しかしながら、本実施例１では、図３−Ａに示した様に、各系統（系Ａと系Ｂ）ごとの並列多重化構成における独立性を検証する自己診断Ａ及び自己診断Ｂを何れも短時間で実施するので、例えば前述の図１−Ａ，−Ｂに例示される様な短絡故障や緊急事態を従来よりも短い診断周期で確実に検出することができる。
【００５６】
〔自己診断〕
図７に、マイコン１００Ａが行う自己診断Ａの実行手順を例示する。このフローチャートに例示される自己診断Ａの処理手順は、図４のクロス診断（Ａ系）の処理手順に幾らか似ているが、しかし、以下の２点（１）、（２）において、図４のクロス診断（Ａ系）の処理手順とは本質的に全く異なっている。
【００５７】
（１）図７の自己診断Ａの処理をマイコン１００Ａが実行している間、Ｂ系のマイコン１００Ｂの第２診断パルス出力手段１１０Ｂは一切使用されない。また、Ｂ系のマイコン１００Ｂは、この時、少なくとも図７の自己診断Ａの処理に係わる処理を一切実行せず、基本的には割り込み待ち状態とすべきである。ただし、入力信号や応答信号などに対する統計処理などを裏で並行に実行していても良い。
【００５８】
したがって、この様に診断パルスの出力のタイミングをプログラム３００（図７）とプログラム４００（図８）とでずらすことにより、診断処理の独立性が確保される。即ち、図７の自己診断Ａでは、診断パルスを異系統間で相互にクロスさせるクロス診断は実施しない。
このため、Ａ系とＢ系との独立性をＡ系側から簡潔に検証することができる。
【００５９】
（２）第１診断パルス出力手段１１０Ａによって、第１診断パルス群がパラレルに同時に出力される。このため、各外部入力機器に対する巡回制御が必要ない。
このため、Ａ系とＢ系との独立性をＡ系側から短時間に検証することができる。
【００６０】
具体的には、図７のプログラム３００（自己診断Ａ）では、以下の処理を実行する。
即ち、プログラム３００ではまず最初に、ステップ３１０で、制御変数の初期化を行う。この制御変数ｎは、診断パルスの出力回数を指している。この様な繰り返しを行う理由は、前述の本発明の第４の手段を実現するためである。
【００６１】
次のステップ３２０では、タイマー割り込み待ちをする。このタイミングは、図３−Ａに示した様に、ｔ＝１５．５［ｍｓｅｃ］のタイミングで良い。即ち、このタイミングでステップ３３０のサブルーチンコールが実行されて、これにより、後から詳しく説明する図９の入力信号のサンプリング処理が開始される。この入力信号のサンプリング処理は、入力回路２００に入力される信号（第１入力信号群及び第２入力信号群）を、不一致検出処理を中心とする所定の統計操作により確定するためのものである。
【００６２】
ステップ３３５は、前述のステップ７４０と同様の処理を実行する。勿論、入力データの退避領域は別に設ける。なお、ここのステップ３３５や後のステップ３５０では、Ａ系の応答信号ＩＡを全件（全２４ビット）を保存しているが、前述の図４のステップ７４０や或いは図４のステップ７６０などと同様に、更に、Ｂ系の応答信号ＩＢをも同時に全件保存する様にしても良い。
そして、これらの退避領域にそれぞれ蓄積された１０回分の診断データに基づいて、ステップ３８０の異常判定を実施する。
ステップ３４０では、フォトカプラ３０，４０などから構成されるＢ系のチェック手段（第２チェック手段）に対して、第１診断パルス出力手段１１０Ａから、診断パルスＯＡ（ｉ）（１≦ｉ≦２４）を全件同時にパラレルにインバータｂを介して出力する。第２チェック手段には、フォトカプラ３０，４０の組が２４組並列にそれぞれ具備されている。この診断パルスのパラレル出力により、例えば図２のＢ系のフォトカプラ４０が有するＬＥＤへの通電が一時的に中断されるので、フォトカプラ３０が有するＬＥＤへの通電も一時的に遮断される。即ち、この様な遮断が上記の２４組全てで発生する。
【００６３】
ステップ３５０では、前述のステップ７４０と同様の処理を実行する。ただし、勿論、入力データの退避領域は、別に設ける。これらの退避領域にそれぞれ蓄積された１０回分の診断データと、上記のステップ３３５で退避領域にそれぞれ蓄積された１０回分の診断データとに基づいて、ステップ３８０の異常判定を実施することができる。即ち、ステップ３６０〜ステップ３６４は、上記の入力データの保存処理を１０回繰り返し行うための制御を実現するためのステップである。この繰り返しは、本発明の第４の手段を具現するものである。
【００６４】
その後、ステップ３８０では、各応答信号ＩＡ（ｉ）（１≦ｉ≦２４）をそれぞれ調べ、１０回連続して全て０となっていた入力信号ＩＡ（ｉ）が１つでもあれば、即ち、不当にもＡ系側のチェック手段（第１チェック手段）によって遮断されてしまう電流が１カ所でも検出されれば異常と判定する。
そして、異常が検出された場合には、ステップ３９０にて緊急安全停止指令発行のサブルーチンをコールして本プログラム３００の全処理を終了し、呼出元に制御を戻す。
【００６５】
図８のプログラム４００についても、図３−Ａ及び図８に示す様に、図７のプログラム３００とは実行時刻を１ｍｓｅｃ遅らせて、上記のプログラム３００と同様の処理を実行する。この様に、プログラム４００とプログラム３００との実行時刻を十分にずらすことにより、自己診断Ａと自己診断Ｂの処理の独立性を確保することができる。即ち、これらの自己診断Ａ／Ｂでは、診断パルスが相互にクロスすることはない。
【００６６】
図７、図８にそれぞれ図示する各巡回点（ｄ）をその繰り返し制御が通過する周期は、１０ΔＴ＝１８０ｍｓｅｃとなる。即ち、自己診断Ａ実行時のステップ３６４、または自己診断Ｂ実行時のステップ４６４が実行される周期（自己診断Ａ、自己診断Ｂの各診断周期τ）は、図６からも判る様に、０．１８秒となる。この時間の長さは、例えば緊急時に作業員がシステム停止用の緊急停止ボタンを押下する際の想定される遅延時間以内にあり、十分に許容範囲内にある長さであると言うことができる。
この様な制御方式により、例えば図１−Ａ，−Ｂに例示される様な緊急事態があってもその状態を迅速に検出して、安全を確保することができる。
【００６７】
以下、図９〜図１３を用いて、上記の入力信号のサンプリングの処理や、２重化された入力信号間の不一致検出処理を高速に実行する実行手順を例示する。
〔入力信号群のサンプリングと判定〕
図９は、入力信号のサンプリング（Ａ系）の実行手順を例示するフローチャートである。このプログラム５００Ａの最初のステップ５２０Ａでは、第１入力信号群ＩＡ′を入力する。この第１入力信号群ＩＡ′は、応答信号ＩＡと同じインバータａ（図２の入力部）からマイコン１００Ａに対して出力されるが、この第１入力信号群ＩＡ′は、診断パルスＯＢに対する応答信号ではなく、各外部入力機器のＡ系に関する入力回路２００に入力された入力信号であり、よって、各ビットは各外部入力機器（計２４台）にそれぞれ対応している。入力されたこの第１入力信号群ＩＡ′は、３２ビットを１語とする１語領域上に右詰めにして保持される。上位の８ビットは常時０設定されるか、または無視される。
【００６８】
次に、ステップ５４０Ａでは、同様の１語領域ＭＡ（ｉ）上の所定の２４ビットデータが、上記の第１入力信号群ＩＡ′と各ビット毎に対応ビット間で論理積（ＡＮＤ）演算される。ここで、整数ｉは、配列ＭＡの引数であり、図示する通り基本的な制御周期ΔＴ内における各時刻ｔ毎に、別々に割り振られている。そして、この論理演算の結果は１語領域ＭＡ（ｉ）上に保持される。１語領域ＭＡ（ｉ）の初期値は、左側の８ビットが０で、右側の２４ビットは全て１とする。
ステップ５６０Ａでは、ステップ５４０の実行回数を制御変数ｈでカウントする。
【００６９】
この様な手順に従えば、第１入力信号群ＩＡ′がその５回のサンプリング中に１度でも０となった入力信号については、論理積演算（ＡＮＤ命令）の作用により、１語領域ＭＡ（ｉ）上の対応ビットの値はその後継続的に０に保存される。即ち、その５回のサンプリング中に１度でも０（：ＯＦＦ状態）になった入力信号は、その後１語領域ＭＡ（ｉ）上では継続的に０に保存される。この様にして、１語領域ＭＡ（ｉ）上に、上記の５回分の診断結果を各ビット単位に要約して蓄積しておくことができる。
【００７０】
図１０は、入力信号のサンプリング（Ｂ系）の実行手順を例示するフローチャートである。このプログラム５００Ｂは、上記のプログラム５００Ａと相似であるが、図３−Ａ、図７、図８、図９から判る様に、呼び出されるタイミングによって、引数ｉ，ｋの規定が若干異なっている。例えば、第２入力信号群ＩＢ′の値は、図３−ＡのInput sampling  の欄及び図１０に示される様に、ｔ＝１３．５ｍｓ，１６．５ｍｓ，１７．５ｍｓの３回に分けて、同一の制御周期内でサンプリングされる。これが５周期繰り返されることにより、合計１５回のサンプリングデータが、各時刻ｔ毎に３つの記憶領域ＭＢ（１），ＭＢ（２），ＭＢ（３）に分けられて、上記の様な論理演算を経て要約して蓄積される。
【００７１】
図１１は、多数決処理（Ｂ系）の実行手順を例示するフローチャートである。このプログラム９００Ｂでは、上記の様にして合計１５回のサンプリングデータが、それぞれ５回（５制御周期）分の診断データずつ、各時刻ｔ毎に３つの記憶領域ＭＢ（１），ＭＢ（２），ＭＢ（３）に分けられ、ステップ５４０Ｂの論理積演算を経て各記憶領域ＭＢ（ｋ）に記憶された後に、ステップ９４０Ｂによって、３語ＭＢ（１），ＭＢ（２），ＭＢ（３）の間で、各外部入力機器にそれぞれ対応する２４ビットの各ビット毎に、それぞれの対応ビット間における多数決が取られる。
【００７２】
次に、ステップ９５０Ｂでは、その多数決の結果を各ビット対応に保持する多数決語ＭＢを、マイコン１００Ｂからマイコン１００Ａに送信する。ステップ９６０Ｂ以降では、上記の３語ＭＢ（１），ＭＢ（２），ＭＢ（３）の初期値Ｘを再設定する。この初期値Ｘは、前述の通り左側の８ビットが０で、右側の２４ビットは全て１とする。
【００７３】
図１２は、不一致検出の実行手順を例示するフローチャートである。このプログラム９００Ａは、ステップ９１０Ａからステップ９７０Ａまでは、上記のプログラム９００Ｂと略同様に、上記のプログラム９００Ｂと対称的に構成されている。ただし、このプログラム９００Ａでは、ステップ９５０Ｂ（図１１）で多数決語ＭＢを送信していた代わりに、ステップ９７０Ａ（図１２）で多数決語ＭＢをマイコン１００Ｂから受信する。この送受信は、１次記憶装置を共有することによって実現しても良いし、バスなどを用いて実現しても良い。
【００７４】
このプログラム９００Ａのステップ９７５Ａでは、ステップ９４０Ａで作成された多数決語ＭＡとステップ９４０Ｂで作成された多数決語ＭＢとが一致するか否かを判定する。その結果、双方が一致すればステップ９８０Ａに、不一致であればステップ９９０Ａに制御を移す。ステップ９８０Ａでは、マイコン１００Ａに接続されている図略の従来のシーケンサ（シーケンス制御装置または順序回路）に対して、多数決語ＭＢまたは多数決語ＭＡの何れか一方を送信（出力）する。
【００７５】
一方、多数決語ＭＢと多数決語ＭＡとが不一致であった場合には、ステップ９９０Ａにて緊急安全停止指令を発行して、所定の緊急安全停止動作を実行する。通常、この緊急安全停止指令は、マイコン１００Ａまたはマイコン１００Ｂが有する安全ＰＬＣ出力ポートに接続された各停止手段に所定の停止信号として出力される。これらの停止手段としては、例えば、周知の非常停止ブレーキ、給電遮断器、或いはモータなどを接続することができる。
【００７６】
図１３は、上記の多数決語ＭＡの作成手順を例示するフローチャートである。このプログラム６００Ａは、Ａ系の多数決語ＭＡを作成するために構成されているが、Ｂ系でも同様の論理演算を実施すれば良い。このプログラム６００Ａは、上記のステップ９４０Ａで呼び出されて実行されるべきサブルーチンである。勿論展開マクロ形式にしても良い。
このプログラム６００Ａでは、ステップ６１０にて、プログラム５００Ａで求めた前述の語ＭＡ（１）と語ＭＡ（２）との論理積を求めて、変数Ｙ１に格納する。この論理積演算は、勿論各ビット対応に実施される。
【００７７】
同様にして、ステップ６２０、ステップ６３０でも、変数Ｙ２、変数Ｙ３に、語ＭＡ（２）と語ＭＡ（３）との論理積、及び、語ＭＡ（３）と語ＭＡ（１）との論理積をそれぞれ格納する。
ステップ６４０では、ここで求めた変数Ｙ１、Ｙ２の論理和を求めて、その演算結果を新たに変数Ｙ２に格納し直す。この論理和演算は、勿論各ビット対応に実施される。
次のステップ６５０では、更に、ここで求めた変数Ｙ２、Ｙ３の論理和を求めて、その演算結果を多数決語ＭＡに格納する。
以上の処理によれば、上記の５つのステップ６１０〜６５０（よって５つの論理演算命令）によって高速に所望の多数結語ＭＡを求めることができる。
【００７８】
以上の図９〜図１３の処理方式に従えば、図３−Ａの上段で実行する処理、即ち、入力信号のサンプリング処理とそのサンプリングデータに基づいて実施すべき不一致検出処理とを、簡単で高速な論理演算によってそれぞれ何れも極めて高速に実行することができる。
【００７９】
〔その他の変形例〕
本発明の実施形態は、上記の形態に限定されるものではなく、その他にも以下に例示される様な変形を行っても良い。この様な変形や応用によっても、本発明の作用に基づいて本発明の効果を得ることができる。
（変形例１）
例えば、上記の実施例１の自己診断Ａ（図７）においては、ステップ３５０にて応答信号ＩＡの全ビットを毎回所定の退避領域にそれぞれ保存しているが、その後のステップ３８０における判定方法によっては、必ずしもその必要はない。
ステップ５４０Ａ（図９）やステップ５４０Ｂ（図１０）は、５回の内１回でも値が０の信号（入力が遮断されたことを示すＯＦＦ信号）が入力されれば該ビットは０と判定すると言う判定基準を利用して構成されたものであり、例えばこの様に巧く判定基準を利用すれば、判定処理の大部分を動的に実行することができ、この様な動的な手法によって、参照データ（入力信号）の退避領域を最小限に抑えることができる場合がある。
【００８０】
（変形例２）
また、上記の実施例１では、入力回路の二重化をＡ系とＢ系の２系統に分けて実施したが、入力回路の多重化は、３多重で実現しても４多重で実現しても良い。例えば、Ａ系、Ｂ系、Ｃ系の３系統によって、入力回路を３重化した場合、不一致検出手段において不一致検出処理方式に多数決の理論を導入したり、或いは、１つの系統だけに異常が発生した時に、３重化のシステムを２重化のシステムに動的に縮退させたりすることが可能となる。これにより、システム停止の機会を大幅に削減することも可能となる。
【００８１】
本発明の作用は、本発明の手段を正しく構成することにより、これらの多重度に関わり無く導くことができるものである。即ち、本発明の本質的な作用原理は、システムの多重化を実施する際の多重度とは直接関係するものではない。
【００８２】
（変形例３）
また、上記の実施例１では、自己診断Ａと自己診断Ｂとをタイミングを替えて、両方ともに実行しているが、自己診断Ａまたは自己診断Ｂの何れか一方だけを実施する方式を採用した場合でも、上記の実施例１における上記の自己診断ＡまたはＢの作用による、短絡故障検出効果を得ることができる。
これは、図１−Ａ，−Ｂから判る様に、通常の短絡故障は、入力回路の対称性によって自己診断Ａと自己診断Ｂの何れでも検出可能であるので、何れか一方を省略することによって、特段の支障が生じるわけではないからである。
【００８３】
ただし、自己診断Ａと自己診断Ｂは殆ど同じプログラム７００／８００で制御可能であることや、時間をずらして実行するための期間を１制御周期内に確保することが可能または容易であることや、当該処理の二重化による処理の確実性や信頼性を確保したい事情や、或いは一時記憶装置の容量に余裕があることなどが理由で、当該処理（上記の自己診断）を二重化した方が良い場合も勿論少なくない。
【００８４】
他方、例えば自己診断Ｂを省略した場合、制御期間の最適化設計を行えば、上記の基本的な制御周期ΔＴを更に短くできる場合もある。この場合には、診断周期τなどを短くできることや、或いはプログラム４００の製造や取り扱いが不要となるなどの点でメリットを得ることができる。
【００８５】
（変形例４）
また、上記の実施例１では、各外部入力機器に関する個々の入力回路は、何れも２重化されていることを前提としたが、必ずしも全ての外部入力機器からの各入力信号をそれぞれ何れも二重化する必要はない。即ち、例えば緊急事態の発生に関連する恐れのない装置（外部入力機器）については、シングルモードで入力回路に入力信号を送信させても十分である。そして、例えばこの様に多重化されていない入力信号に対しては、例えば上記の実施例１などの様な不一致検出処理を実施する必要がないことは言うまでもない。
【産業上の利用可能性】
【００８６】
本発明は、プログラマブルコントローラ（ＰＬＣ）に入力される入力信号に対する信頼性や、それらの入力信号に関する処理の確実性や、それらに基づいて確保されるべきシステムの安全性などを高度に確保するために大いに有用であり、よって、ロボットや工作機械やそれらの周辺機器の動作に対するシーケンス制御などに、効果的に利用することができる。
【００８７】
また、本発明は、上記の外部入力機器として各種のセンサ（検出装置）や情報処理機器などを想定すれば、自動車のオートクルーズシステムにおいても利用することができ、これにより安全なオートクルーズシステムを構成できる場合がある。
【図面の簡単な説明】
【００８８】
【図１−Ａ】診断パルスと応答信号との関係を例示するグラフ（短絡時）
【図１−Ｂ】診断パルスと応答信号との関係を例示するグラフ（短絡時）
【図２】実施例１のプログラマブルコントローラの入力回路２００の回路図
【図３−Ａ】各処理装置（１００Ａ，１００Ｂ）の動作に係わるタイムチャート
【図３−Ｂ】応答パターン（各応答信号の入力パターン）を例示するグラフ
【図４】マイコン１００Ａが実行するクロス診断（Ａ系）のフローチャート
【図５】マイコン１００Ｂが実行するクロス診断（Ｂ系）のフローチャート
【図６】測定回数Ｎや端子数Ｍに依存する診断周期τの算定表
【図７】マイコン１００Ａが行う自己診断Ａの実行手順を例示するフローチャート
【図８】マイコン１００Ｂが行う自己診断Ｂの実行手順を例示するフローチャート
【図９】入力信号のサンプリング（Ａ系）の実行手順を例示するフローチャート
【図１０】入力信号のサンプリング（Ｂ系）の実行手順を例示するフローチャート
【図１１】多数決処理（Ｂ系）の実行手順を例示するフローチャート
【図１２】不一致検出の実行手順を例示するフローチャート
【図１３】多数決語ＭＡの作成手順を例示するフローチャート
【図１４】従来の入力回路２０１の回路図（平常時）
【図１５−Ａ】診断パルスと応答信号との関係を例示するグラフ（平常時）
【図１５−Ｂ】診断パルスと応答信号との関係を例示するグラフ（平常時）
【図１６】従来の入力回路２０１の回路図（短絡時）
【符号の説明】
【００８９】
２００  ：  入力回路
１０００Ａ  ：  第１信号処理装置
１０００Ｂ  ：  第２信号処理装置
１００Ａ  ：  マイコン
１００Ｂ  ：  マイコン
１１０Ａ  ：  第１診断パルス出力手段
１１０Ｂ  ：  第２診断パルス出力手段
１０  ：  フォトカプラ
２０  ：  フォトカプラ
ａ〜ｄ  ：  インバータ（論理反転器）
ＯＡ  ：  Ａ系のマイコンから出力される診断パルス
ＩＡ  ：  Ａ系のマイコンに入力される応答信号
ＯＢ  ：  Ｂ系のマイコンから出力される診断パルス
ＩＢ  ：  Ｂ系のマイコンに入力される応答信号
ＯＡ（ｍ）：  ｍ番目の端子に係わる診断パルスＯＡ
ＩＡ（ｍ）：  ｍ番目の端子に係わる応答信号ＩＡ
Ｏ，Ｐ  ：  第１入力端子
Ｑ，Ｒ  ：  第２入力端子
【図１−Ａ】
2006040195.tif 000003
【図１−Ｂ】
2006040195.tif 000004
【図２】
2006040195.tif 000005
【図３−Ａ】
2006040195.tif 000006
【図３−Ｂ】
2006040195.tif 000007
【図４】
2006040195.tif 000008
【図５】
2006040195.tif 000009
【図６】
2006040195.tif 000010
【図７】
2006040195.tif 000011
【図８】
2006040195.tif 000012
【図９】
2006040195.tif 000013
【図１０】
2006040195.tif 000014
【図１１】
2006040195.tif 000015
【図１２】
2006040195.tif 000016
【図１３】
2006040195.tif 000017
【図１４】
2006040195.tif 000018
【図１５−Ａ】
2006040195.tif 000019
【図１５−Ｂ】
2006040195.tif 000020
【図１６】
2006040195.tif 000021