(57)【特許請求の範囲】
【請求項１】
マイクロプロセッサと、前記マイクロプロセッサと協働するシステムメモリと、シーケンスプログラムを記憶するためのプログラムメモリと、入出力情報および制御情報を記憶するためのデバイスメモリとを有するＣＰＵユニットと、
前記ＣＰＵユニットにバス接続される単独または複数の入出力ユニットと
を備え、
前記入出力ユニットの少なくとも一部が、特殊入出力処理機能を分担して前記マイクロプロセッサの制御機能を補完するための集積回路素子を包含した特殊ユニットでなるプログラマブルコントローラであって、
前記特殊ユニットは、外部接続端子に接続される多チャンネルの入力インタフェース回路または出力インタフェース回路と、バス接続用端子を介して前記マイクロプロセッサと接続され、制御仕様の一部分が可変設定できて入出力制御に共用される集積回路素子とを搭載した電子基板を有し、
前記集積回路素子は、各チャンネル番号に対応するパラメータメモリと、前記マイクロプロセッサから各チャンネル番号に対応するパラメータメモリに送信される回路編成データによって入出力処理のための動作仕様が決定される論理回路部とを有し、
前記論理回路部は、前記入出力ユニットの入力インタフェース回路を介して得られる論理入力信号を高速計数して、カウントアップ出力を前記マイクロプロセッサに報告信号として送信する報告ビットメモリと、計数データを前記マイクロプロセッサに演算データとして送信する演算レジスタと、前記マイクロプロセッサから受信した設定データを格納する設定レジスタと、前記マイクロプロセッサから受信した指令信号を格納する指令ラッチメモリと、前記設定レジスタと前記指令ラッチメモリの内容に基づく高速パルス出力を前記出力インタフェース回路に供給する可逆カウンタとを有し、
前記可逆カウンタは、前記プログラムメモリに格納されている制御プログラムに包含されている特殊命令の内容に連動して、各チャンネル毎に、前記入力インタフェース回路から供給される入力信号に対する高速カウンタ回路を構成してカウントアップ出力を前記ＣＰＵユニットに送信する高速入力処理を行うのか、または前記ＣＰＵユニットから受信した設定データに基づく高速パルス出力回路を構成して所定のパルス出力を前記出力インタフェース回路に供給する高速出力処理を行うのかのいずれかが決定されるものであって、
前記パラメータメモリに送信される回路編成データにより複数種類の高速入力処理と複数種類の高速出力処理が行われると共に、
前記外部接続端子に接続される外部センサからの入力信号がアナログ信号である場合には、前記入力インタフェース回路は入力信号に比例した周波数のパルスまたは入力信号と所定アナログ値との比較判定論理信号を前記集積回路素子に供給し、前記外部負荷がアナログ負荷である場合には、前記集積回路素子は出力信号に比例したＯＮ／ＯＦＦ比率のパルス出力を発生して、前記出力インタフェース回路は受信したパルス出力信号を平滑して外部負荷に供給する
ことを特徴とするプログラマブルコントローラ。
【請求項２】
請求項１に記載のプログラマブルコントローラにおいて、
前記ＣＰＵユニットは、前記特殊ユニットとのデータ交信を行うための転送仲介メモリを有し、
前記システムメモリは、編成処理手段とデータ変換・転送手段となる制御プログラムを包含し、
前記編成処理手段は、前記プログラマブルコントローラの運転開始直後に、前記プログラムメモリの内容を検索して特殊ユニットに対応した特殊命令を抽出し、当該特殊命令の内容に対応して当該特殊ユニットで適用される論理回路部の種別と動作モードに対応した回路編成データを前記パラメータメモリに送信すると共に、回路編成が特定された各論理回路部と交信するための転送仲介メモリのアドレス編成を行い、
前記データ変換・転送手段は、前記特殊命令で指定されたデバイスメモリの内容を前記論理回路部の動作に適した換算単位の設定データと指令信号に変換して前記転送仲介メモリを介して設定レジスタおよび指令ラッチメモリに送信すると共に、前記論理回路部から得られた演算データまたは報告信号を、前記転送仲介メモリを介して前記特殊命令によって指定されたデバイスメモリに転送し、
前記デバイスメモリは、入出力情報及び制御情報を記憶するための入出力イメージメモリＸ・Ｙと補助メモリＭとデータレジスタＤの少なくとも一部を包含し、
前記特殊命令は、命令の種別を示す命令語と順不同の第一のオペランド、および第二または第三のオペランドの少なくとも一方とによって構成され、当該第一のオペランドは対象となる特殊ユニットの入出力番号を特定する識別番号を指定し、第二のオペランドは前記演算レジスタから得られる演算データを格納するデータレジスタ番号、または前記設定レジスタに対して送信される設定データが格納されているデータレジスタ番号か直接設定定数を指定し、第三のオペランドは前記報告ビットメモリから得られる報告信号を格納する補助リレー番号、または前記指令ラッチメモリ対して送信される指令信号が格納されている補助リレー番号を指定する
ことを特徴とするプログラマブルコントローラ。
【請求項３】
請求項２に記載のプログラマブルコントローラにおいて、
前記可逆カウンタは、計数入力の動作回数を計数方向に応じて加減して、当該可逆カウンタの動作開始時の初期値からの累積値を記憶する現在値レジスタと、計数上限値が格納される第一の設定レジスタと、計数上限値未満の中間値が格納される第二の設定レジスタと、前記第一の設定レジスタに格納されている数値と前記現在値レジスタの記憶数値が合致または大小反転したときに第一の比較一致出力を発生する数値比較回路でなる第一の比較回路と、前記第二の設定レジスタに格納されている数値と前記現在値レジスタの記憶数値が合致または大小反転したときに第二の比較一致出力を発生する数値比較回路でなる第二の比較回路とを有し、
前記現在値レジスタまたは第一および第二の設定レジスタには、前記特殊命令が実行されたときに前記マイクロプロセッサから前記転送仲介メモリを介して数値設定が行われる
ことを特徴とするプログラマブルコントローラ。
【請求項４】
請求項２に記載のプログラマブルコントローラにおいて、
前記論理回路部は、前記システムメモリに格納されている制御プログラムである入力処理手段の実行に基づいて入力信号を入力処理用のデータセレクタを介して前記デバイスメモリに割り付けられた入力イメージメモリ領域へ転送する汎用入力回路と、前記システムメモリに格納されている制御プログラムである出力処理手段の実行に基づいて前記デバイスメモリに割り付けられた出力イメージメモリ領域のデータを前記論理回路部に設けられた出力ラッチメモリに転送する汎用出力回路とを有し、
前記汎用入力回路および前記汎用入出力回路は、前記論理回路部が高速入出力回路またはアナログ入出力回路として使用されていないときに有効となる
ことを特徴とするプログラマブルコントローラ。
【請求項５】
請求項４に記載のプログラマブルコントローラにおいて、
前記入力インタフェース回路は、高速入力パルスに対応した小さな時定数の入力フィルタを包含するか、または高速入力パルスが入力されない大きな時定数の入力フィルタを有する開閉センサ用の入力インタフェース回路、または電圧／周波数変換器を含むアナログセンサ用の入力インタフェース回路のいずれかに分類され、
前記出力インタフェース回路は、高速出力パルスに対応した高速開閉動作を行うトランジスタを出力素子として包含するか、または高速出力パルスが出力されない低速開閉動作を行うトランジスタを出力素子として包含する出力インタフェース回路、または前記論理回路部が発生するパルス幅変調信号出力に対する平滑回路を包含するアナログ負荷用の出力インタフェース回路のいずれかに分類され、
前記特殊ユニットは、高速論理入力または低速論理入力またはアナログ入力のいずれか一つと、高速論理出力または低速論理出力またはアナログ出力のいずれか一つとの任意の組合せの内で、低速論理入力と低速論理出力との組合せ以外の組合せによる複数種類の特殊ユニットが適用可能に構成されている
ことを特徴とするプログラマブルコントローラ。
【請求項６】
請求項４に記載のプログラマブルコントローラにおいて、
前記論理回路部は、前記プログラムメモリ内に格納された可変フィルタ命令に応動する可変フィルタ回路でなり、
前記可変フィルタ回路は、入力信号の論理レベルの高・低に応じて所定のクロック信号をアップ・ダウン計数する可逆カウンタと、入力確定回路となる報告ビットメモリとを包含し、
前記可逆カウンタの第一の設定レジスタには設定データとして受信したフィルタ定数が格納されていて、前記可逆カウンタに設けられた現在値レジスタの計数現在値が前記第一の設定レジスタの設定値に上昇すると、カウントアップ出力を発生して加算カウントを停止すると共に、前記現在値レジスタの現在値がゼロにまで下降すると、前記カウントアップ出力に代わって復帰出力を発生して減算カウントを停止し、
前記報告ビットメモリは、前記カウントアップ出力によってセットされ、前記復帰出力によってリセットされて、出力を報告信号として送信されるものであり、
前記可変フィルタ命令は、対象となる入力リレー番号と、必要とされる入力フィルタ定数が格納されるデータレジスタ番号または直接設定定数と、報告信号を格納する補助リレー番号とをオペランドとして有する特殊命令であり、前記特殊命令が実行されると、前記入力フィルタ定数が前記入力リレー番号に対応した可逆カウンタの第一の設定レジスタに設定データとして送信されると共に、前記報告信号によって前記補助リレーが作動する
ことを特徴とするプログラマブルコントローラ。
【請求項７】
請求項４に記載のプログラマブルコントローラにおいて、
前記特殊ユニットは、カード情報格納メモリを有し、
前記システムメモリは、設定異常検出手段となる制御プログラムを包含し、
前記カード情報格納メモリには、前記入力インタフェース回路または前記出力インタフェース回路が論理信号用のインタフェース回路であるか、またはアナログ信号用のインタフェース回路であるかを識別する第一および第二の識別端子情報と、論理信号用のインタフェース回路である場合には低速論理信号用であるかまたは高速論理信号用であるかを識別する第一および第二の信号端子情報が格納され、
前記カード情報格納メモリの内容は、前記データバスを介して前記ＣＰＵユニットに接続されて前記マイクロプロセッサによって読出し可能となっており、
前記設定異常検出手段は、前記入力インタフェース回路または前記出力インタフェース回路の種別と、前記プログラムメモリに格納されている命令内容が不一致であることを検出して、運転停止および異常報知を行う
ことを特徴とするプログラマブルコントローラ。
【請求項８】
請求項２に記載のプログラマブルコントローラにおいて、
前記集積回路素子は、第一および第二のモード切換端子を有する多チャンネルの第一および第二のポートと、チャンネル番号に対応する一対の論理回路部を有し、
前記第一のポートは、前記集積回路素子の外部に設けられた入力インタフェース回路または出力インタフェース回路を介して外部機器に接続するための入力端子または出力端子に接続される入出力兼用ポートであって、
前記第一のポートを入力ポートまたは出力ポートとして使用するのかは前記第一のモード切換端子に入力された論理レベルによって選択決定され、
前記第二のポートは、前記集積回路素子の外部に設けられた入力インタフェース回路または出力インタフェース回路を介して外部機器に接続するための入力端子または出力端子に接続される入出力兼用ポートであって、
前記第二のポートを入力ポートまたは出力ポートとして使用するのかは前記第二のモード切換端子に入力された論理レベルによって選択決定され、
前記一対の論理回路部が、前記入力インタフェース回路から供給された入力信号に対する高速カウンタ回路を構成して、カウントアップ出力を前記ＣＰＵユニットに送信する高速入力処理またはアナログ入力処理を行うのか、または前記ＣＰＵユニットから受信した設定データに基づく高速パルス出力回路を構成して、所定のパルス出力を前記出力インタフェース回路に供給する高速出力処理またはアナログ出力処理を行うのかは、前記プログラムメモリに格納されている制御プログラムに包含されている特殊命令の内容に連動していずれか一方に決定され、
前記一対の論理回路部は、各チャンネル番号ｎに対応して、可逆カウンタと、設定レジスタと、演算レジスタと、指令ラッチメモリと、比較回路と、報告ビットメモリと、パラメータメモリとをそれぞれに有する
ことを特徴とするプログラマブルコントローラ。
【請求項９】
請求項８に記載のプログラマブルコントローラにおいて、
前記論理回路部は、各チャンネル番号に対応する汎用入力回路または汎用出力回路を有し、
前記汎用入力回路は、前記第一または第二のポートに接続された論理入力信号が報告ビットメモリを介して前記デバイスメモリに割り付けられた入力イメージメモリ領域に送信される入力信号中継回路であって、前記報告ビットメモリから前記入力イメージメモリへの転送は、前記システムメモリに格納されている制御プログラムである入力処理手段によって実行され、
前記汎用出力回路は、前記デバイスメモリに割り付けられた出力イメージメモリ領域から前記論理回路部に設けられた指令ラッチメモリが受信した指令信号をそのまま前記第一または第二のポートに接続された出力回路に出力する出力信号中継回路であって、前記出力イメージメモリから前記指令ラッチメモリへの転送は、前記システムメモリに格納されている制御プログラムである出力処理手段によって実行され、
前記汎用入力回路および前記汎用出力回路は、前記論理回路部が高速入出力回路またはアナログ入出力回路として使用されていないときに有効となる
ことを特徴とするプログラマブルコントローラ。
【請求項１０】
請求項９に記載のプログラマブルコントローラにおいて、
前記汎用入力回路は、各チャンネル番号に対応した可変フィルタ回路を構成し、
前記システムメモリは、初期設定手段となる制御プログラムを包含し、
前記可変フィルタ回路は、入力信号の論理レベルの大小に応じて所定のクロック信号を可逆計数する可逆カウンタと、入力確定回路となる報告ビットメモリによって構成され、
前記第一の設定レジスタには、設定データとして受信したフィルタ定数が格納されていて、前記可逆カウンタに設けられた現在値レジスタの計数現在値が当該第一の設定レジスタの設定値に上昇すると、カウントアップ出力を発生して加算カウントを停止すると共に、前記現在値レジスタの現在値がゼロにまで下降すると、前記カウントアップ出力に代わって復帰出力を発生して減算カウントを停止し、
前記報告ビットメモリは、前記カウントアップ出力によってセットされると共に、前記復帰出力によってリセットされ、当該報告ビットメモリの出力は、前記入力処理手段によって前記デバイスメモリの入力イメージメモリ領域に送信され、
前記初期設定手段は、プログラマブルコントローラの運転開始時に作用して、前記プログラムメモリに可変フィルタ命令が存在するか否かを検索し、可変フィルタ命令が使用されていない入力信号に対しては基準となる一定のフィルタ定数を前記第一の設定レジスタに送信し、
前記可変フィルタ命令は、対象となる入力リレー番号と、必要とされる入力フィルタ定数が設定データとして格納されるデータレジスタ番号または直接設定定数とをオペランドとして有する特殊命令であり、当該特殊命令が実行されると前記設定データが前記入力リレー番号に対応した第一の設定レジスタに送信される
ことを特徴とするプログラマブルコントローラ。
【請求項１１】
請求項８に記載のプログラマブルコントローラにおいて、
前記集積回路素子は、各チャンネル番号に対応した第一および第二のゲート素子と、最小フィルタ設定回路とを有すると共に、前記プログラムメモリに監視読出命令を格納し、
前記第一および第二のゲート素子は、前記論理回路部の出力端子と前記第一および第二のポートとの間に接続され、前記第一および第二のモード切換端子の論理レベルに応動して各出力信号を遮断する複数のゲート素子であって、前記第一および第二のポートに入力インタフェース回路が接続されているときには出力信号を遮断し、前記第一および第二のポートに出力インタフェース回路が接続されているときには出力信号を有効にし、
前記最小フィルタ設定回路は、前記第一および第二のポートに出力インタフェース回路が接続されていて、前記第一および第二のゲート素子の出力信号が有効とされているときに作用して、フィルタ回路を介さないで当該出力信号を前記報告ビットメモリに格納し、
前記監視読出命令は、出力リレー番号と前記デバイスメモリの転送先デバイス番号を指定するオペランドを有し、前記最小フィルタ設定回路を介して入力された前記報告ビットメモリの内容を報告信号として読み出す特殊命令である
ことを特徴とするプログラマブルコントローラ。
【請求項１２】
請求項８に記載のプログラマブルコントローラにおいて、
前記特殊ユニットは、カード情報格納メモリを有し、
前記システムメモリは、設定異常検出手段となる制御プログラムを包含し、
前記カード情報格納メモリは、前記第一および第二のポートが入力ポートまたは出力ポートのいずれかに設定されているのかに関する前記第一および第二モード切換端子の論理情報と、前記入出力インタフェース回路が論理信号回路またはアナログ信号回路のいずれかであるかを識別する第一および第二の識別端子の論理情報の少なくとも一方を包含し、当該カード情報格納メモリの内容は、前記データバスを介して前記ＣＰＵユニットに接続されて前記マイクロプロセッサによって読出し可能であり、
前記設定異常検出手段は、前記第一および第二のポートに接続されている入出力インタフェース回路の種別と、前記プログラムメモリに格納されている命令内容が不一致であることを検出して、運転停止および異常報知を行う
ことを特徴とするプログラマブルコントローラ。
【請求項１３】
請求項２に記載のプログラマブルコントローラにおいて、
前記集積回路素子は、多チャンネルの第一および第二のポートと、チャンネル番号に対応する一対の論理回路部とを有し、
前記第一のポートは、前記集積回路素子の外部に設けられた論理信号用またはアナログ信号用の入力インタフェース回路を介して外部機器に接続するための入力端子に接続され、
前記第二のポートは、前記集積回路素子の外部に設けられた論理信号用またはアナログ信号用の出力インタフェース回路を介して外部機器に接続するための出力端子に接続され、
前記一対の論理回路部が、前記プログラムメモリに格納されている制御プログラムに包含されている特殊命令の内容に連動して、前記入力インタフェース回路から供給された入力信号に対する高速カウンタ回路を構成して、カウントアップ出力を前記ＣＰＵユニットに送信する高速入力処理またはアナログ入力処理を行うのか、または前記ＣＰＵユニットから受信した設定データに基づく高速パルス出力回路を構成して、所定のパルス出力を前記出力インタフェース回路に供給する高速出力処理またはアナログ出力処理を行うのかのいずれか一方を決定し、
当該一対の論理回路部は、各チャンネル番号に対応して、可逆カウンタと、設定レジスタと、演算レジスタと、指令ラッチメモリと、比較回路と、報告ビットメモリと、パラメータメモリとをそれぞれに有し、
前記一対の可逆カウンタは、前記特殊命令が倍長命令であるときには相互に従属接続され１個の倍長可逆カウンタを構成する
ことを特徴とするプログラマブルコントローラ。
【請求項１４】
請求項１３に記載のプログラマブルコントローラにおいて、
前記特殊ユニットは、カード情報格納メモリを有し、
前記システムメモリは、設定異常検出手段となる制御プログラムを包含し、
前記カード情報格納メモリには、前記第一および第二のポートに対して論理信号用のインタフェース回路かまたはアナログ信号用のインタフェース回路のいずれかが接続されているかを識別する第一および第二の識別端子情報が格納され、
当該カード情報格納メモリの内容は、前記データバスを介して前記ＣＰＵユニットに接続されて前記マイクロプロセッサによって読出し可能となっており、
前記設定異常検出手段は、前記第一および第二のポートに接続されている入出力インタフェース回路の種別と、前記プログラムメモリに格納されている命令内容が不一致であることを検出して、運転停止および異常報知を行う
ことを特徴とするプログラマブルコントローラ。
【請求項１５】
請求項３に記載のプログラマブルコントローラにおいて、
前記論理回路部に設けられた可逆カウンタの一部または全部は、待機バッファレジスタを有し、
前記待機バッファレジスタは、前記転送仲介メモリから送信された数値データが一時格納され、前記論理回路部が発生するタイミング信号に基づいて当該待機バッファレジスタの内容が前記第一の設定レジスタまたは第二の設定レジスタに転送されるものであり、
前記転送仲介メモリから送信された数値データが前記待機バッファレジスタを介して時間差をおいて前記第一および第二の設定値レジスタに転送されるのか、待機バッファレジスタを介さずに第一および第二の設定レジスタに対して直接転送されるのかは、前記特殊命令の内容によって判別される
ことを特徴とするプログラマブルコントローラ。
【請求項１６】
請求項３に記載のプログラマブルコントローラにおいて、
前記システムメモリは、プログラマブルコントローラの運転中において実行される転送禁止手段となる制御プログラムを包含し、
前記転送禁止手段は、前記特殊ユニットに適用された特殊命令が動作完了信号を発生する命令であって、当該特殊命令が実行開始されてから動作完了信号が得られるまでは、少なくとも前記第一の設定レジスタと第二の設定レジスタ対する設定データの送信を禁止し、
前記動作完了信号は、前記論理回路部に入力されたパルス信号、または前記論理回路部が発生したパルス信号が、予め設定された目標パルスに到達したとき、または指令信号によってパルス発生・計数を完了したときに、前記報告ビットメモリの内容を読み出して得られる
ことを特徴とするプログラマブルコントローラ。
【請求項１７】
請求項１６に記載のプログラマブルコントローラにおいて、
前記論理回路部に設けられた可逆カウンタの一部または全部は、変分値調整用レジスタを有し、
前記変分値調整用レジスタは、前記可逆カウンタに対してアップまたはダウンの計数入力が与えられたときに作用して、前記現在値レジスタに対して変分値調整用レジスタに格納されている数値を加算または減算する
ことを特徴とするプログラマブルコントローラ。
【請求項１８】
請求項１６に記載のプログラマブルコントローラにおいて、
前記論理回路部は、前記プログラムメモリ内に格納された高速カウンタ命令に応動する高速カウンタ回路を有し、
前記高速カウンタ回路は、カウント方向が指令信号によって決定される１相１入力の可逆カウンタであるか、またはアップ・ダウン入力が個別に供給される１相２入力の可逆カウンタであるか、または２相入力の位相差によってアップ・ダウン方向を決定する２相２入力の可逆カウンタのいずれかであって、
前記高速カウンタ回路は、さらに、当該高速カウンタ回路の動作モードを決定するものとして、前記高速カウンタ命令が実行された時点で計数開始するもの、または計数開始指令入力が付加されたもの、または前記現在値レジスタに初期値データを転送するためのプリセット指令入力が付加されたものとがあり、前記２相２入力形式の高速カウンタ回路では、各相のパルス信号の立上りと立下りのどの時点で計数を行うのかによって１逓倍計数方式、または２逓倍計数方式、または４逓倍計数方式の計数モードのものがあって、固有の識別番号が付与されており、
前記識別番号は、当該高速カウンタ回路を包含した特殊ユニットの接続位置を示す配置番号と、当該特殊ユニットの入力端子番号を示すチャンネル番号が識別されると共に、前記各動作モードに対応した拡張番号の値を組み合わせた複数桁の番号であり、
前記高速カウンタ命令は、対象となる高速カウンタの識別番号と、カウントアップ出力を発生するための計数目標値が格納されるデータレジスタ番号Ｄまたは直接設定定数Ｋと、１相１入力カウンタの場合の計数方向を指定する補助リレー番号Ｍとカウントアップ出力が格納されるカウンタ番号Ｃとを指定するオペランドを有する特殊命令であり、
前記特殊命令が実行されると、設定データと計数方向指令信号が前記識別番号に対応した前記第一の設定レジスタと指令ラッチメモリに送信され、カウントアップ出力が報告ビットメモリから指定されたカウンタ番号のデバイスメモリに計数完了報告信号として送信される
ことを特徴とするプログラマブルコントローラ。
【請求項１９】
請求項１８に記載のプログラマブルコントローラにおいて、
前記入力インタフェース回路に接続される第一のポートと、前記出力インタフェース回路に接続される第二のポートとを有し、
前記高速カウンタ回路は、前記プログラムメモリ内に格納された高速比較命令に応動する高速出力機能を有し、
前記高速比較命令は、対象となる高速カウンタ回路の識別番号と、比較目標値が格納されるデータレジスタ番号Ｄまたは直接設定定数Ｋと、比較一致出力を格納する補助リレー番号Ｍとをオペランドとして有する特殊命令であり、
前記特殊命令は、前記第一のポートが高速入力ポートとして使用されると共に、第二のポートが論理出力ポートとして併用されている場合に有効となるものであって、
前記特殊命令が実行されると、前記比較目標値が設定データとして前記識別番号に対応した可逆カウンタの第二の設定レジスタに送信され、前記第二の比較回路によるアップ計数時の比較一致記憶信号である上昇比較一致出力は、前記高速カンタ回路の計数入力のチャンネル番号に対応したチャンネル番号の出力端子に出力されると共に、当該上昇比較一致出力は、報告信号として指定された補助リレーＭを駆動し、当該補助リレーＭがリセット駆動されたことによって前記上昇比較一致出力がリセットされる
ことを特徴とするプログラマブルコントローラ。
【請求項２０】
請求項１６に記載のプログラマブルコントローラにおいて、
前記論理回路部は、奇数または偶数チャンネル番号に割り付けられた第一のパルス出力回路を有し、
前記第一のパルス出力回路は、前記プログラムメモリ内に格納された第一のパルス出力命令に応動し、動作モードとして正転パルス出力または逆転パルス出力のどちらか一方を発生する一対のパルス出力であるか、または可逆パルス出力に回転方向指令出力が付加されたパルス出力形式のものがあって、
当該各形式のパルス出力回路は、隣接したチャンネルの２個の可逆カウンタを占有する固有の識別番号を有し、当該可逆カウンタの一方は低速パルス周期と高速パルス周期に比例した定数が書込まれる第一および第二の設定レジスタを有すると共に、他方の可逆カウンタは高速運転のパルス発生数と低速運転のパルス発生数に関連した定数が書込まれる第一および第二の設定レジスタを有し、
前記識別番号は、前記第一のパルス出力回路を包含した特殊ユニットの接続位置を示す配置番号と、当該特殊ユニットの出力端子番号を示すチャンネル番号が識別されると共に、前記各動作モードに対応した拡張番号の値を組み合わせた複数桁の番号であり、
前記第一のパルス出力命令は、対象となるパルス出力回路の識別番号と、回転方向に対応した正負の目標発生パルス数と低速運転パルス数と高速運転パルス周期と低速運転パルス周期とが格納されるデータレジスタ番号を特定するためのオペランドと、強制停止指令と正転限界停止指令または逆転限界停止指令とパルス発生完了信号が格納される補助リレー番号を特定するためのオペランドとを有する特殊命令であり、
前記特殊命令が実行されると、前記目標発生パルス数と低速運転パルス数と高速パルス周期と低速パルス周期が設定データとして、回転方向指令、強制停止指令、正転限界停止指令または逆転限界停止指令が指令信号として、前記識別番号に対応した可逆カウンタの第一および第二の設定レジスタと指令ラッチメモリに送信され、パルス発生完了信号が報告ビットッメモリから指定された補助リレーＭに対して報告信号として報告送信される
ことを特徴とするプログラマブルコントローラ。
【請求項２１】
請求項１７に記載のプログラマブルコントローラにおいて、
前記論理回路部は、前記プログラムメモリ内に格納された第二のパルス出力命令に応動する第二のパルス出力回路を有し、
前記第二のパルス出力回路は、動作モードとして正転パルス出力または逆転パルス出力のどちらか一方を発生する一対のパルス出力を備えるか、または可逆パルス出力に回転方向指令出力が付加されたパルス出力形式のものがあり、前記各形式のパルス出力回路は、少なくとも発生パルス数の設定レジスタとパルス周波数の設定レジスタと加減速度の設定レジスタを有すると共に、当該各パルス出力回路には、入力２点と出力３点に対応した４点の可逆カウンタを占有する固有の識別番号が付与されており、
前記第二のパルス出力回路は、加算計数入力が与えられたときに、変分値調整用レジスタに格納されている数値を現在値レジスタに加算することができる加算機能を有する可逆カウンタを有し、当該可逆カウンタの第一の設定レジスタに対して所定の係数値を格納し、前記変分値調整用レジスタに対して目標とするパルス周波数を格納しておくことによって、パルス周波数に反比例した周期のカウントアップ出力を得て、当該カウントアップ出力の発生に伴って現在値レジスタをリセットすることによって目標とするパルス周期に対応したカウントアップ出力を得る回路であり、
前記識別番号は、前記第二のパルス出力回路を包含した特殊ユニットの接続位置を示す配置番号と、当該特殊ユニットの出力端子番号を示すチャンネル番号が識別されると共に、前記各動作モードに対応した拡張番号の値を組み合わせた複数桁の番号であり、
前記第二のパルス出力命令は、対象となるパルス出力回路の識別番号と、回転方向に対応した正負の目標発生パルス数が格納されるデータレジスタ番号Ｄと、パルス周期またはパルス周波数と、加減速度設定用データが格納されるデータレジスタ番号Ｄを特定するためのオペランドと、強制停止指令と正転限界停止指令または逆転限界停止指令とパルス発生完了信号が格納される補助リレー番号Ｍを特定するためのオペランドとを有する特殊命令であり、
前記特殊命令が実行されると、前記目標発生パルス数と加減速度データと目標パルス周波数と減速開始位置データとが設定データとして、また回転方向指令と強制停止指令と正転限界停止指令または逆転限界停止指令とが指令信号として、前記識別番号に対応した各可逆カウンタの第一および第二の設定レジスタと、指令ラッチメモリに対して送信され、パルス発生完了信号が報告信号として報告ビットメモリから指定された補助リレーＭに対して送信される
ことを特徴とするプログラマブルコントローラ。
【請求項２２】
請求項２１に記載のプログラマブルコントローラにおいて、
前記論理回路部は、前記第二のパルス出力回路を部分的に変更して得られる変形型パルス出力回路を有し、前記変形型パルス出力回路には前記プログラムメモリ内に格納され原点復帰命令に応動するための位置決用入出力信号が付加されると共に、
前記システムメモリは、前記変形型パルス出力回路を得るためのパラメータ変更手段となる制御プログラムを包含し、
前記位置決用入力信号は、原点近傍で作動する近点ドッグ信号と、前記パルス出力によって駆動されるサーボモータに設けられ、当該サーボモータの１回点当たりに１パルスの出力を発生するＺ相信号が入力されるゼロ点信号を有し、
前記位置決用出力信号は、原点出しが完了したときに前記サーボモータを駆動するサーボアンプの位置決め偏差残留パルスをリセットするためのクリア信号を有し、
前記原点復帰命令は、対象となる変形型パルス出力回路の識別番号と、少なくとも原点復帰用の高速パルス周波数またはパルス周期と、原点近傍におけるクリープ運転用の低速パルス周波数またはパルス周期と、加減速度設定用データとゼロ点信号数が格納されるデータレジスタ番号Ｄを特定するためのオペランドと、原点復帰方向指令と強制停止指令と正転限界停止指令または逆転限界停止指令と原点出完了信号が格納される補助リレー番号Ｍを特定するためのオペランドとを有する特殊命令であり、
前記特殊命令が実行されると、前記高速運転用のパルス周波数と低速クリープ運転用のパルス周波数と加減速度設定データとゼロ点信号数とが設定データとして、原点復帰方向指令と強制停止指令と正転限界停止指令または逆転限界停止指令とが指令信号として、前記識別番号に対応した可逆カウンタの第一および第二の設定レジスタと指令ラッチメモリに対して送信され、原点出完了信号が報告信号として報告ビットメモリから指定された補助リレーＭに送信され、
前記パラメータ変更手段は、前記第二のパルス出力命令に対応して発生パルス数を計数していた最終段の可逆カウンタの入出力回路を変更して、原点復帰命令に対応してゼロ点信号数の計数を行う最終段の可逆カウンタとして利用するためのものであって、当該接続変更は原点復帰命令の実行開始から実行完了までの限定期間において有効となり、常時は前記第二のパルス出力命令に対応した接続回路に復元設定されている
ことを特徴とするプログラマブルコントローラ。
【請求項２３】
請求項２０または２２に記載のプログラマブルコントローラにおいて、
前記第一および第二のパルス出力回路には、前記プログラムメモリ内に格納された現在位置読出命令による監視手段が付加されていて、
前記現在位置読出命令は、対象となるパルス出力回路の識別番号と、正転限界位置または逆転限界位置または原点位置に対する現在位置情報が格納されるデータレジスタ番号Ｄを指定するためのオペランドを有する特殊命令であり、
当該特殊命令が実行されると、前記識別番号に対応したパルス出力回路のパルス出力情報が格納される現在値レジスタの移動完了後の内容が演算データとして送信されて、当該演算データが移動方向に応じて前記データレジスタＤに対して順次代数加算され、前記データレジスタＤには原点位置または正逆転限界位置を含む基準位置において、予めシーケンスプログラムによって所定の初期位置データが書込みされる
ことを特徴とするプログラマブルコントローラ。
【請求項２４】
請求項２３に記載のプログラマブルコントローラにおいて、
前記第一および第二のパルス出力回路には、前記プログラムメモリ内に格納された第一および第二のパルス出力命令に代わって使用される第三のパルス出力命令が適用され、
前記第三のパルス出力命令は、前記第一および第二のパルス出力命令において指定される目標移動量に代わって目標移動位置が指定されるものであり、
前記データ変換・転送手段は、前記現在位置読出命令によって検出記憶されている現在位置と前記目標移動位置との偏差によって今回の目標移動量を算出して、当該目標移動量を前記転送仲介メモリを介して前記第一および第二の設定レジスタに送信する
ことを特徴とするプログラマブルコントローラ。
【請求項２５】
請求項１６に記載のプログラマブルコントローラにおいて、
前記論理回路部は、前記プログラムメモリ内に格納されたパルス幅測定命令に応動するパルス幅測定回路を有し、
前記パルス幅測定回路は、高速論理信号用の入力インタフェース回路に接続されたチャンネル端子の入力論理変化に応動して、所定周期のクロック信号を計数する可逆カウンタによって構成され、前記入力論理の変化から次の変化までの計数現在値をピークホールドレジスタに格納して演算データとして送信すると共に、測定完了信号を報告信号として送信し、当該報告信号を受信したマイクロプロセッサが指令信号によって測定完了信号をリセットすることによってパルス幅の測定が再開される回路であり、
前記パルス幅測定命令は、高速論理信号用の入力インタフェース回路が接続されている特殊ユニットに対して適用され、対象となる入力番号Ｘと、測定結果が格納されるデータレジスタ番号Ｄと測定完了信号が格納される補助レジスタ番号Ｍとをオペランドとして有する特殊命令であり、
当該特殊命令が実行されると、前記ピークホールドレジスタの内容が演算データとして前記データレジスタＤに転送格納されると共に、測定完了信号によって前記補助リレーＭが駆動され、当該補助リレーＭの動作をリセットすると測定再開指令が指令信号によって指令ラッチメモリへ送信される
ことを特徴とするプログラマブルコントローラ。
【請求項２６】
請求項３に記載のプログラマブルコントローラにおいて、
前記論理回路部は、前記プログラムメモリ内に格納されたエッジ検出命令に応動するエッジ検出回路を有し、
前記エッジ検出回路は、高速論理信号用の入力インタフェース回路に接続されたチャンネル端子の入力論理変化に応動して、立上りまたは立下がりの少なくとも一方を検出記憶して報告信号として送信する１カウントの可逆カウンタによって構成され、当該報告信号を受信したマイクロプロセッサが指令信号によって検出記憶信号をリセットすることによって次のエッジ検出が再開される回路であり、
前記エッジ検出命令は、高速論理信号用の入力インタフェース回路が接続されている特殊ユニットに対して適用され、対象となる入力番号Ｘと、検出結果が格納される補助リレー番号Ｍとをオペランドとして有する特殊命令であり、
前記特殊命令が実行されると、前記可逆カウンタの第一の設定レジスタには１を超過する値が格納されると共に、第二の設定レジスタには設定値１が格納され、前記第二の比較回路がアップ計数中に比較一致したことを記憶する上昇比較一致出力によって立上りが検出され、当該上昇比較一致出力の発生に伴って計数方向と計数入力論理とが反転し、
前記第二の比較回路がダウン計数中に比較一致したことを記憶する下降比較一致出力によって立下りが検出され、
前記上昇比較一致出力と下降比較一致出力とが報告信号として前記補助リレーＭに送信されて、当該補助リレーＭの動作をリセットすると検出再開指令が指令信号によって指令ラッチメモリへ送信される
ことを特徴とするプログラマブルコントローラ。
【請求項２７】
請求項３に記載のプログラマブルコントローラにおいて、
前記論理回路部は、前記プログラムメモリ内に格納されたパルス密度測定命令またはＡＤ変換命令に応動するパルス密度測定回路を有し、
前記パルス密度測定回路は、所定時間毎に計数現在値がリセットされる高速カウンタであって、リセット直前の計数最大値を記憶することによって入力パルス信号の周波数に比例したデジタル値を得て、当該測定周波数をピークホールドレジスタに格納する回路であり、
前記パルス密度測定命令は、高速論理信号用の入力インタフェース回路が接続されている特殊ユニットに対して適用され、対象となる入力番号Ｘと、測定結果が格納されるデータレジスタ番号Ｄとをオペランドとして有する特殊命令であり、前記特殊命令が実行されると、前記ピークホールドレジスタの内容が演算データとして前記データレジスタＤに転送格納され、
前記ＡＤ変換命令は、アナログ信号用の入力インタフェース回路が接続されている特殊ユニットに対して適用され、対象となる入力番号Ｘと、当該入力番号の電圧／周波数変換器が発生するパルス周波数の測定結果が格納されるデータレジスタ番号Ｄとをオペランドとして有する特殊命令であり、当該特殊命令が実行されると前記ピークホールドレジスタの内容が演算データとして前記データレジスタＤに転送格納される
ことを特徴とするプログラマブルコントローラ。
【請求項２８】
請求項２７に記載のプログラマブルコントローラにおいて、
前記パルス密度測定回路は、前記可逆カウンタの第二の設定レジスタに対して中間設定値が格納され、アナログセンサによる入力信号電圧の平均値が当該中間設定値に対応した入力電圧以上であれば、アップ計数中に前記第二の比較回路が比較一致出力を発生したことを記憶する上昇比較一致出力が作動し、チャンネル端子の入力信号電圧の平均値が前記中間設定値に対応した入力電圧未満であれば、アップ計数中に前記第二の比較回路が比較一致出力を発生せず前記上昇比較一致出力がリセットされる回路であり、
前記ＡＤ変換命令は、アナログ信号用の入力インタフェース回路が接続されている特殊ユニットに対して適用され、対象となる入力番号Ｘと、前記報告信号が格納される補助リレー番号Ｍとをオペランドとして有する特殊命令であり、当該特殊命令が実行されると、前記上昇比較一致出力の内容が報告信号として送信されて前記補助リレーＭを駆動する
ことを特徴とするプログラマブルコントローラ。
【請求項２９】
請求項１５に記載のプログラマブルコントローラにおいて、
前記論理回路部は、前記プログラムメモリ内に格納されたＰＷＭ出力命令またはＤＡ変換命令に応動するＰＷＭ出力回路を有し、
前記ＰＷＭ出力回路は、前記第一および第二の設定レジスタの内容に基づいて所定の周期で可変デューティ（ＯＮ時間とＯＮ／ＯＦＦ周期との比率）のパルス幅変調信号を発生する回路であり、
前記ＰＷＭ出力命令は、論理信号用の出力インタフェース回路が接続されている特殊ユニットに対して適用され、対象となる出力番号と、出力パルスの周期とＯＮ幅とを確定するためのデータが格納されるデータレジスタ番号Ｄとをオペランドとして有する特殊命令であり、当該特殊命令が実行されると、前記出力パルスの周期とＯＮ幅またはＯＦＦ幅に関する二つのデータが設定データとして待機バッファレジスタに一時格納され、当該一時格納データは１パルスの発生完了時点で前記第一および第二の設定レジスタに再転送され、
前記ＤＡ変換命令は、アナログ信号用の出力インタフェース回路が接続されている特殊ユニットに対して適用され、対象となる出力番号と、出力パルスの周期とＯＮ幅とを確定するためのデータが格納されるデータレジスタ番号Ｄとをオペランドとして有する特殊命令であり、当該特殊命令が実行されると、前記出力パルスの周期とＯＮ幅またはＯＦＦ幅に関する二つのデータが設定データとして待機バッファレジスタに一時格納され、当該一時格納データは１パルスの発生完了時点で前記第一および第二の設定レジスタに再転送される
ことを特徴とするプログラマブルコントローラ。
【請求項３０】
請求項２９に記載のプログラマブルコントローラにおいて、
前記特殊ユニットは、前記外部接続端子に接続される多チャンネルの入力インタフェース回路および出力インタフェース回路の双方を有し、
前記出力インタフェース回路は、前記論理回路部が出力するパルス幅変調信号出力に対する平滑回路を包含するアナログ負荷用のインタフェース回路であり、
前記入力インタフェース回路は、アナログセンサからの入力信号と前記パルス幅変調信号出力の平滑信号とを比較して二値化論理信号を発生して前記論理回路部に入力するための比較回路を包含したインタフェース回路であり、
前記特殊ユニットは、重複しない入出力チャンネルに対してアナログ負荷の駆動を行うか、またはアナログ入力信号と可変比較値との比較結果信号を得る
ことを特徴とするプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、入出力制御を行うマイクロプロセッサの演算速度の不足を補完するために、特殊ユニットを併用するようにしたプログラマブルコントローラに関するもので、特に、特殊ユニットに搭載される専用の集積回路素子の機能向上と取扱性の改善に関するものである。
【背景技術】
【０００２】
マイクロプロセッサを内蔵し、操作スイッチや各種センサなどの入力信号の動作状態と、プログラムメモリに格納されているシーケンスプログラムに応動して各種アクチェータや表示機器等の電気負荷の駆動制御を行うプログラマブルコントローラがある。このプログラマブルコントローラにおいて、サイクリック演算されるプログラムメモリの演算周期よりも速い高速パルス信号を扱うための補完機能ユニットとして、例えば高速カウンタユニットや高速パルス出力ユニットなどを増設使用することが行われている。また、入力フィルタによる入力信号の取り込みの遅れを抑制して高速入力を行うためにフィルタの時定数を可変設定したり、パルス幅変調信号出力を発生したりする特殊機能ユニットも知られている。
【０００３】
例えば、下記の特許文献１および２によれば、プログラマブル・ロジック・デバイス（ＰＬＤ）やゲートアレイを用いて汎用化された特殊機能ユニットについて記載されている。この内の特許文献１によれば、外部機器を接続する外部コネクタと、プログラマブルコントローラのユニットと接続する接続コネクタと、外部コネクタを介して接続される外部機器との間で信号の送受信を行い、外部機器から受信した信号に基づく論理演算を行うと共に、演算結果に応じた信号を接続コネクタを介してプログラマブルコントローラのユニットに送信する機能を有した演算処理部とを備え、プログラムを書き換えることで複数種類の機能が選択可能なプログラマブル・ロジック・デバイスにより演算処理部を構成して、複数の機能を簡単に実現可能とし且つ回路部品の共通化によるコストダウンを図るプログラマブルコントローラを提供することが開示されている。
【０００４】
また、特許文献２によれば、制御対象機器が接続される外部コネクタと、シーケンスプログラムを実行するＣＰＵを具備したＣＰＵユニットが接続される接続コネクタと、接続コネクタを通して接続されるＣＰＵユニットを補助して高機能化する複数の特殊機能が組み込まれ外部コネクタを介して信号を送受信するゲートアレイと、ゲートアレイに組み込まれた特殊機能を拡張して特殊機能をさらに追加する増設基板を接続する増設コネクタとを備え、前記増設基板は、特殊機能が組み込まれたプログラマブル・ロジック・デバイスと、プログラム・ロジック・デバイスに接続され前記増設コネクタに接続する増設側コネクタとを備えていて、特殊機能の追加が可能で且つコストダウンが図れるプログラマブルコントローラを提供することが開示されている。この多機能特殊機能ユニットによれば、プログラムを書き換えることで１つの汎用機能回路にてＩＯ機能、入力時定数機能、割込機能、カウンタ機能、比較出力機能、パルス出力機能、ＰＷＭ出力機能、位置決め機能等の種々の機能を実現することができることが記載されている。
【０００５】
一方、下記の特許文献３によれば、特殊機能ユニットとなるＩ／Ｏユニットにプログラミング機能を搭載することにより、ユーザにおいて自由にＩ／Ｏ制御ロジック、演算機能をプログラミングできるようにして、ユニットをユーザの用途に合わせてカスタマイズ（最適化）して利用できるようにしたＩ／Ｏユニットを提供することが開示されている。この場合、ユーザは、特殊機能を包含したＩ／Ｏユニットに対して、Ｉ／Ｏ制御ロジック、演算処理のためのプログラムを入力してユーザオリジナルのユニット動作モードを作り上げ、制御対象、制御方式に最適な状態にカスタマイズして使用できるようにする。また、当該Ｉ／Ｏユニットには入出力ボードが装着できるよう構成され、入出力ボードにはパルス入力、アナログ入力、特殊センサ入力等が入力される特殊入力回路と、パルス出力、アナログ出力等が出力される特殊出力回路とを具備して、特殊入出力の制御はＩ／Ｏユニットで行うようになっている。
【０００６】
【特許文献１】特開２００２-１６９６０２号公報（図１、要約）
【特許文献２】特開２００２-２２２００３号公報（図１、要約）
【特許文献３】特開２００２-００６９０７号公報（図３、要約）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
（１）従来技術の課題の説明
前述した特許文献１から３によるプログラマブルコントローラは、プログラマブル・ロジック・デバイス、またはゲートアレイとプログラマブル・ロジック・デバイス、またはマイクロプロセッサを搭載した特殊機能ユニットと併用され、当該特殊機能ユニットの持つ機能がプログラマブルに変更可能であることによって、様々な特殊用途に対して汎用的に使用可能な演算部を提供することを目的としたものである。
【０００８】
しかしながら、前述したようなプログラマブルコントローラは、ユーザから見れば、プログラマブルコントローラに対する制御プログラムを作成するためのシーケンス言語に加えて、プログラマブル・ロジック・デバイスに対するプログラムやマイクロプロセッサに対するプログラムなどで異なるプログラム言語を習得する必要がある。このため、特定の専門技術者でないと扱えない難解なものとなっており、普及が困難なものとなっている。
【０００９】
また、プログラマブルコントローラの用途は多様であって、例えば高速カウンタ機能が１点だけ欲しい場合、または高速パルス出力が１点だけ欲しい場合、または多数の高速カウンタと多数の高速パルス出力が同時に欲しい場合などがある。しかし、これ等の様々な用途に対して無駄のない標準化された入出力インタフェース回路をどのようにして構築するかについては論及されていない。
【００１０】
（２）発明の目的の説明
この発明の目的は、プログラマブルコントローラに対する制御プログラムを作成するためのシーケンス言語のみで特殊機能ユニットが扱えことができ、ユーザにとって取扱性のよい特殊機能ユニットを得ることができ、プログラマブルコントローラの更なる高機能化とその普及に寄与できるプログラマブルコントローラを得ることである。
【００１１】
また、多様な入出力点数規模の多様な特殊機能に対して、ムダの発生が少なくなるよう構成された限定種類の特殊ユニットを提供し、当該限定種類の特殊ユニットに対して共用され、様々な用途に対応するための複数の特殊機能を有する標準化された集積回路素子を有するプログラマブルコントローラを得ることである。
【課題を解決するための手段】
【００１２】
この発明によるプログラマブルコントローラは、マイクロプロセッサと、前記マイクロプロセッサと協働するシステムメモリと、シーケンスプログラムを記憶するためのプログラムメモリと、入出力情報および制御情報を記憶するためのデバイスメモリとを有するＣＰＵユニットと、前記ＣＰＵユニットにバス接続される単独または複数の入出力ユニットとを備え、前記入出力ユニットの少なくとも一部が、特殊入出力処理機能を分担して前記マイクロプロセッサの制御機能を補完するための集積回路素子を包含した特殊ユニットでなるプログラマブルコントローラであって、前記特殊ユニットは、外部接続端子に接続される多チャンネルの入力インタフェース回路または出力インタフェース回路と、バス接続用端子を介して前記マイクロプロセッサと接続され、制御仕様の一部分が可変設定できて入出力制御に共用される集積回路素子とを搭載した電子基板を有し、前記集積回路素子は、各チャンネル番号に対応するパラメータメモリと、前記マイクロプロセッサから各チャンネル番号に対応するパラメータメモリに送信される回路編成データによって入出力処理のための動作仕様が決定される論理回路部とを有し、前記論理回路部は、前記入出力ユニットの入力インタフェース回路を介して得られる論理入力信号を高速計数して、カウントアップ出力を前記マイクロプロセッサに報告信号として送信する報告ビットメモリと、計数データを前記マイクロプロセッサに演算データとして送信する演算レジスタと、前記マイクロプロセッサから受信した設定データを格納する設定レジスタと、前記マイクロプロセッサから受信した指令信号を格納する指令ラッチメモリと、前記設定レジスタと前記指令ラッチメモリの内容に基づく高速パルス出力を前記出力インタフェース回路に供給する可逆カウンタとを有し、前記可逆カウンタは、前記プログラムメモリに格納されている制御プログラムに包含されている特殊命令の内容に連動して、各チャンネル毎に、前記入力インタフェース回路から供給される入力信号に対する高速カウンタ回路を構成してカウントアップ出力を前記ＣＰＵユニットに送信する高速入力処理を行うのか、または前記ＣＰＵユニットから受信した設定データに基づく高速パルス出力回路を構成して所定のパルス出力を前記出力インタフェース回路に供給する高速出力処理を行うのかのいずれかが決定されるものであって、前記パラメータメモリに送信される回路編成データにより複数種類の高速入力処理と複数種類の高速出力処理が行われると共に、前記外部接続端子に接続される外部センサからの入力信号がアナログ信号である場合には、前記入力インタフェース回路は入力信号に比例した周波数のパルスまたは入力信号と所定アナログ値との比較判定論理信号を前記集積回路素子に供給し、前記外部負荷がアナログ負荷である場合には、前記集積回路素子は出力信号に比例したＯＮ／ＯＦＦ比率のパルス出力を発生して、前記出力インタフェース回路は受信したパルス出力信号を平滑して外部負荷に供給する。
【発明の効果】
【００１３】
この発明によれば、シーケンスプログラムを実行するマイクロプロセッサに代わって、プログラマブルコントローラの演算周期よりも短い周期のパルス信号に対する高速入出力処理を行うための集積回路素子と、入出力インタフェース回路とを搭載した特殊ユニットが併用され、前記集積回路素子は、プログラムメモリ内の特殊命令の内容によって動作仕様が決定されるパラメータメモリと論理回路部とを備え、前記論理回路部を構成する可逆カウンタは、高速入力処理と高速出力処理のために兼用されるようになっている。したがって、入出力インタフェース回路を変更することによって、高速論理入力処理、高速論理出力処理、アナログ入力処理またはアナログ出力処理のいずれか、または複合処理が求められる多様な用途に適用できるので、専用の集積回路素子の製造原価を低減することができると共に、ユーザにとってはシーケンスプログラムの中で所定の特殊命令を適用するだけで特殊ユニットとの交信が手軽に行えて容易に高度な機能が活用でき、更なる用途の拡大につながる大きな効果を奏するものである。また、複数台の特殊ユニットを併用して、様々な入出力点数規模の特殊機能に対応することが可能となり、ムダのないシステム構築が可能となる効果がある。
【発明を実施するための最良の形態】
【００１４】
実施の形態１．
（１）構成の詳細な説明
図１は、この発明の実施の形態１によるプログラマブルコントローラのユニット構成図である。図１において、プログラマブルコントローラ１００Ａは、ＣＰＵユニット１１０Ａと、入出力ユニット１２０、１３０、１４０と、終端ブロック１９０とによって構成されている。
【００１５】
ＣＰＵユニット１１０Ａは、例えばＡＣ１００Ｖ〜２４０Ｖの商用電源である外部電源１０９から給電されると共に、図示しない脱着コネクタを介して外部ツール１０８と接続され、当該外部ツール１０８によって入出力制御プログラムの書込みや運転状態の監視を行うことができるようになっている。
【００１６】
ＣＰＵユニット１１０Ａの内部には、マイクロプロセッサ（ＣＰＵ）１１１と、例えばマスクＲＯＭメモリまたは不揮発フラッシュメモリであるシステムメモリ（ＳＭＥＭ）１１２Ａと、例えば不揮発フラッシュメモリであって、ユーザが作成した入出力制御プログラムが格納されるプログラムメモリ（ＰＭＥＭ）１１３Ａと、例えばＲＡＭメモリであって、後述する入出力イメージメモリＸ、Ｙと補助リレーＭとデータレジスタＤとを包含するデバイスメモリ（ＤＭＥＭ）１１４ａと、後述する転送仲介メモリ（ＢＭＥＭ）１１４ｂと、前記デバイスメモリ１１４ａの一部領域をバックアップするバッテリ（ＢＡＴＴ）１１５と、各入出力ユニットとデータ交信を行うためのバスインタフェース回路（ＢＩＦ）１１６と、警報表示器（ＤＳＰ）１１７と、外部ツール１０８とマイクロプロセッサ１１１とを接続するシリアルインタフェース（ＳＩＦ）１１８と、制御用電源１１９とが設けられている。この内、マイクロプロセッサ１１１、システムメモリ１１２Ａ、プログラムメモリ１１３Ａ、デバイスメモリ１１４ａ、転送仲介メモリ１１４ｂ、バスインタフェース１１６、シリアルインタフェース１１８とは互いにバス接続されている。
【００１７】
制御用電源（ＰＳＵ）１１９は、外部電源１０９から給電されて、図示しない入力信号回路に安定化されたＤＣ２４Ｖ電源を供給したり、定電圧電源線Ｖｃｃに対して例えばＤＣ５Ｖの安定化電圧を供給したりする。定電圧電源線Ｖｃｃはグランド回路ＧＮＤと共に各部に配線されている。なお、制御用電源１１９は、ＣＰＵユニット１１０Ａの外部に設置することも可能であり、電源ユニットとＣＰＵユニットと所定点数の入出力ユニットによって基本ユニットが構成されるようになっている。
【００１８】
システムメモリ１１２Ａは、後述する図１８および図１９に示す各種制御プログラムを包含すると共に、プログラムメモリ１１３Ａに格納されたシーケンス言語による入出力制御プログラムをマイクロプロセッサ１１１に対応した機械言語に変換してマイクロプロセッサ１１１を作動させるものとなっていて、これらのプログラムは製品の出荷段階でプログラマブルコントローラのメーカによって格納されたものとなっている。
【００１９】
プログラムメモリ１１３Ａには、例えばパーソナルコンピュータである外部ツール１０８を用いてユーザによって作成された入出力制御用のシーケンスプログラムが、シリアルインタフェース１１８を介して書込みされている。その一例となるものが、図２０〜図２５、図２７および図２９で表現されたシーケンス図であって、パーソナルコンピュータの画面上でシーケンス図を作画すると自動的にシーケンスプログラムが作成されるようになっている。なお、プログラムメモリ１１３Ａは、バッテリバックアップされたＲＡＭメモリであってもよく、この場合、フラッシュメモリまたはＥＰＲＯＭ等による不揮発メモリを内蔵したメモリカセットを装着することによってプログラムメモリ領域を不揮発メモリ化することも可能である。
【００２０】
デバイスメモリ１１４ａは、入出力信号情報やプログラマブルコントローラ１００Ａ内部のデバイスとなって、ユーザに開放されている補助リレー・タイマ・カウンタ・データレジスタ等のデバイスの作動状態が格納されるＲＡＭメモリであり、当該デバイスメモリ１１４ａの一部の領域は、例えばリチウムバッテリであるバッテリ１１５によってバックアップされていて、プログラマブルコントローラ１００Ａに対する電源が遮断されても記憶状態が保持されるようになっている。
【００２１】
警報表示器１１７は、マイクロプロセッサ１１１の作動状態を表示するもので、例えば複数個の発光ダイオードまたはセブンセグメント表示器によって構成され、電源の到来・正常運転状態・各種異常状態を表示するようになっている。
【００２２】
ＣＰＵユニット１１０Ａの端面位置に図示しないコネクタを介して接続された入出力ユニット１２０には、図示しない入出力端子台を介して外部の開閉センサ１０１ｘと、電気負荷１０１ｙとが接続されている。なお、実態としての入出力ユニット１２０は、複数台の入力ユニットと複数台の出力ユニットとに分割されていて、必要とされる入出力点数規模に見合った台数の入力ユニットと出力ユニットが使用されるものである。
【００２３】
開閉センサ１０１ｘは、例えば操作盤に設けられた各種の操作スイッチや、アクチェータの動作を確認するためのセンサスイッチであって、１台の入力ユニットには例えば８点の入力信号が接続可能であり、さらに多くの開閉センサを接続するときには入力ユニットの接続台数を増やすようになっている。開閉センサ１０１ｘの電源は通常ＤＣ２４Ｖであるが、ＡＣ１００〜２４０Ｖの商用電源に接続されたものもある。
【００２４】
電気負荷１０１ｙは、例えば操作盤に設けられた各種の表示ランプや、アクチェータ駆動用の電磁弁、またはモータ駆動用の電磁継電器であって、１台の出力ユニットには例えば８点の出力信号が接続可能であって、さらに多くの電気負荷を接続するときには出力ユニットの接続台数を増やすようになっている。
【００２５】
入出力ユニット１２０の内部に設けられた入力インタフェース回路としては、ホトカプラトランジスタまたはホトトライアックなどの入力絶縁回路１２１と、ノイズを抑制するための入力フィルタ１２２と、データセレクタ１２４によって構成されている。また、入出力ユニット１２０の内部に設けられた出力インタフェース回路としては、電気負荷１０１ｙを駆動するための駆動信号のラッチメモリ１２５と、ホトカプラトランジスタまたはホトトライアックまたは電磁リレーなどの出力絶縁回路１２６と、パワートランジスタまたはトライアックまたは電磁リレー等の出力素子１２７によって構成されている。
【００２６】
入出力ユニット１３０は、第一および第二のポート１１および１２を有する集積回路素子１０を備えた特殊ユニットを構成し、当該特殊ユニットは、例えば８点の高速動作の開閉センサ１０２ｘからの信号が入力絶縁回路１３１と入力フィルタ１３２を介して入力されると共に、８点の低速動作の電気負荷１０２ｙを出力絶縁回路１３６と出力素子１３７を介して駆動する入出力混合の特殊ユニットとなっている。
【００２７】
入出力ユニット１４０は、第一および第二のポート１１および１２を有する集積回路素子１０を備えた特殊ユニットを構成し、当該特殊ユニットは、例えば８点の低速動作の開閉センサ１０３ｘからの信号が入力絶縁回路１４１と入力フィルタ１４２を介して入力されると共に、８点の高速動作の電気負荷１０３ｙを出力絶縁回路１４６と出力素子１４７を介して駆動する入出力混合の特殊ユニットとなっている。
【００２８】
なお、汎用入出力ユニットとなる入出力ユニット１２０内の入力フィルタ１２２は、開閉センサ１０１ｘのチャッタリング（閉路動作時の断続動作）による誤動作、または入力配線に重畳するラインノイズによる誤動作を防止するために、通常は約１０ｍｓｅｃの応答遅れを持つ低速論理入力用のローパスフィルタとなっている。これに対して、特殊ユニットとなる入出力ユニット１３０内の入力フィルタ１３２の場合は、例えば１００ＫＨｚの入力パルス信号を計数するために５μｓｅｃ以下の応答遅れを持つローパスフィルタとなっていて、高速論理入力となる開閉センサ１０２ｘは無接点のものであって、入力配線にラインノイズが重畳しないように分離配線、シールド線付きのツイストペア線を使用する等の厳重な配慮が必要となるものである。また、特殊ユニットとなる入出力ユニット１４０内の入力フィルタ１４２の場合は、例えば１ｍｓｅｃの応答遅れを持つローパスフィルタであって、中速論理入力に対応するものとなっている。但し、後述するとおり、特殊ユニット１４０によって高速入力と高速出力を併用する場合には、入力フィルタ１４２も高速論理入力用のものが使用される。
【００２９】
一方、汎用入出力ユニットとなる入出力ユニット１２０内の出力素子１２７は、小型電磁リレーが使用されることが最も多く、その他交流負荷に対する無接点出力素子としてトライアックが使用されたり、直流負荷に対する無接点出力素子としてトランジスタが使用され、直流負荷の電源は通常はＤＣ２４Ｖとなっている。これに対し、入出力ユニット１３０・１４０における出力素子１３７および１４７は、トランジスタ出力であって、特に出力素子１４７の場合は例えば１００ＫＨｚの高速パルス出力を発生するために高速動作のトランジスタが使用されている。出力素子１３７の場合は、安価な低速動作のトランジスタを使用するようになっているが、これを高速動作のトランジスタにしておけば高速パルス出力を発生することができるようになる。
【００３０】
最終段に接続された終端ブロック１９０は、終端処理回路１９９を備えており、この終端処理回路１９９は、ＣＰＵユニット１１０Ａから各入出力ユニットを貫通して設けられたデータバスＤＡＴＡとアドレスバスＡＤＲの終端をプルアップ回路とプルダウン回路を介して定電圧電源線Ｖｃｃとグランド回路ＧＮＤに接続して、高速信号の反射ノイズを抑制するものとなっている。なお、実態としての貫通バス信号線は、例えば１６本のアドレス／データ兼用バスと、８本の制御信号用バスによって構成されていて、１６本のアドレス／データ兼用バスがアドレス信号を扱っているのか、または送受信されるデータを扱っているのかは制御信号線によって指定されるようになっている。さらに、各入出力ユニットは、図示しないバスコントローラを包含し、多数のデータセレクタやラッチメモリのうち、マイクロプロセッサ１１１によって指定されたものがデータバスに接続されてマイクロプロセッサ１１１と交信することができるようになっている。
【００３１】
次に、図１に示す特殊ユニットとして構成される入出力ユニット１３０・１４０の内部構成を図２および図３を用いて説明する。まず、図２に示す入出力ユニット１３０の構成について説明する。図２にいて、特殊ユニットで構成される入出力ユニット１３０は、８点の開閉センサ１０２ｘに接続される入力端子１３０Ｘと、８点の電気負荷１０２ｙに接続される出力端子１３０Ｙを備えている。
【００３２】
入力端子１３０Ｘと集積回路素子１０に設けられた第一のポート１１との間には、高速論理入力用の入力インタフェース回路１３９Ｘが設けられている。入力インタフェース回路１３９Ｘは、入力絶縁回路１３１ｎと入力フィルタとなる例えば時定数で５μｓ程度の比較的短い時定数の入力フィルタ１３２ｎとが各チャンネル番号ｎ＝０〜７毎に直列接続されている。
【００３３】
出力端子１３０Ｙと集積回路素子１０に設けられた第二のポート１２との間には、ＯＮ／ＯＦＦ動作用の出力インタフェース回路１３９Ｙが設けられている。出力インタフェース回路１３９Ｙは、パワートランジスタである出力素子１３７ｎと出力絶縁回路１３６ｎとが各チャンネル番号ｎ＝０〜７毎に直列接続されている。電子基板１９ｘｙには、入力端子１３０Ｘと入力インタフェース回路１３９Ｘ、出力端子１３０Ｙと出力インタフェース回路１３９Ｙ、バス接続用コネクタ１３０Ｚ並びに集積回路素子１０が搭載されて特殊ユニット１３０を構成している。
【００３４】
第一および第二のポート１１および１２は、チャンネル番号ｎ＝０〜７に対応して図中で符号表記されていないチャンネル端子１１ｎおよび１２ｎを備え、チャンネル端子１１ｎは、データセレクタ１３４とバス接続用端子１３とバス接続用コネクタ１３０Ｚを介してデータバスＤＡＴＡに選択接続されて入力信号をマイクロプロセッサ１１１に送信し、チャンネル端子１２ｎは、出力ラッチメモリ１３５を介してデータバスＤＡＴＡに選択接続されてマイクロプロセッサ１１１から出力信号を受信するようになっている。各チャンネルｎ＝０〜７には、論理回路部１０００ｎ（１０００・０、１０００・１、・・・、１０００・７）が割付されている。
【００３５】
当該論理回路部１０００ｎは、データバスＤＡＴＡとの間で信号授受を行うと共に、論理回路部１０００ｎ間でも信号の授受を行い、さらにはチャンネル端子１１ｎから信号を受け取ったり、チャンネル端子１２ｎに信号を出力するようになっている。論理回路部１０００ｎの詳細は図４で後述するが、典型的な高速入力処理動作としては、例えばチャンネル端子１１ｎから高速パルス信号が入力され、論理回路部１０００ｎは、これを計数して所定の目標回数になれば、カウントアップ出力をデータバスＤＡＴＡを介してマイクロプロセッサ１１１に送信し、当該目標回数は予めデータバスＤＡＴＡを介してマイクロプロセッサ１１１から設定データとして送信されているものである。また、典型的な高速出力処理動作としては、例えばマイクロプロセッサ１１１からデータバスＤＡＴＡを介して予め設定データとして送信されたパルス周期と発生パルス数に基づいてチャンネル端子１２ｎから高速パルス出力を発生するものである。
【００３６】
第一の識別端子１４ａは、入力インタフェース回路１３９Ｘが論理信号用のものであるか、後述のアナログ信号用のものであるかを識別するためのものであり、論理信号用であれば論理レベル「Ｈ」となるように配線パターンが接続されている。第二の識別端子１４ｂは、出力インタフェース回路１３９Ｙが論理信号用のものであるか、後述のアナログ信号用のものであるかを識別するためのものであり、論理信号用であれば論理レベル「Ｈ」となるように配線パターンが接続されている。
【００３７】
第一の信号端子１６ａは、高速論理入力用であることを示すために論理レベルが「Ｈ」となるように配線パターンが接続されている。第二の信号端子１６ｂは、低速論理出力用であることを示すために論理レベルが「Ｌ」となるように配線パターンが接続されている。これ等の識別端子情報は、カード情報格納メモリ９０００に供給され、データバスＤＡＴＡを介してマイクロプロセッサ１１１へ送信されるようになっている。
【００３８】
共通クロック回路９００１は、例えば１μｓｅｃを周期とするクロック信号τを発生して、必要に応じて各論理回路部１０００ｎへ供給するようになっている。共通トリガ回路９００２は、例えば信号周期Ｔ０＝１０ｍｓｅｃで、１μｓｅｃ幅の相前後するトリガ信号Ｐ０およびＱ０を発生し、必要に応じて各論理回路部１０００ｎへ供給するようになっている。
【００３９】
次に、図３に示す入出力ユニット１４０の構成について説明する。図３において、特殊ユニットで構成される入出力ユニット１４０は、８点の開閉センサ１０３ｘに接続される入力端子１４０Ｘと、８点の電気負荷１０３ｙに接続される出力端子１４０Ｙを備えている。
【００４０】
入力端子１４０Ｘと集積回路素子１０に設けられた第一のポート１１との間には、中速論理入力用の入力インタフェース回路１４９Ｘが設けられている。入力インタフェース回路１４９Ｘは、入力絶縁回路１４１ｎと入力フィルタとなる例えば時定数で１ｍｓｅｃ程度の比較的短い時定数の入力フィルタ１４２ｎとが各チャンネル番号ｎ＝０〜７毎に直列接続されている。
【００４１】
出力端子１４０Ｙと集積回路素子１０に設けられた第二のポート１２との間には、ＯＮ／ＯＦＦ動作用の出力インタフェース回路１４９Ｙが設けられている。出力インタフェース回路１４９Ｙは、高速動作用のパワートランジスタである出力素子１４７ｎと出力絶縁回路１４６ｎとが各チャンネル番号ｎ＝０〜７毎に直列接続されている。電子基板１９ｘｙには、入力端子１４０Ｘと入力インタフェース回路１４９Ｘ、出力端子１４０Ｙと出力インタフェース回路１４９Ｙ、バス接続用コネクタ１４０Ｚ並びに集積回路素子１０が搭載されて特殊ユニット１４０を構成している。
【００４２】
第一の識別端子１４ａは、入力インタフェース回路１４９Ｘが論理信号用のものであるため、論理レベル「Ｈ」となるように配線パターンが接続されている。第二の識別端子１４ｂは、出力インタフェース回路１４９Ｙが論理信号用のものであるため、論理レベル「Ｈ」となるように配線パターンが接続されている。
【００４３】
第一の信号端子１６ａは、中速論理入力用であることを示すために論理レベルが「Ｌ」となるように配線パターンが接続されている。第二の信号端子１６ｂは、高速論理出力用であることを示すために論理レベルが「Ｈ」となるように配線パターンが接続されている。
【００４４】
次に、図２および図３における論理回路部１０００ｎの詳細構成図である図４について説明する。図４において、各チャンネルｎ＝０〜７に割り当てられている論理回路部１０００ｎ（１０００・０、１０００・１、・・・、１０００・７）は、可逆カウンタ２０００ｎ（２０００・０、２０００・１、・・・、２０００・７）を中心として構成されていて、当該可逆カウンタ２０００ｎは、アップ指令端子ＵＰまたはダウン指令端子ＤＮのどちらかが論理レベル「Ｈ」になると、計数入力端子ＩＮの論理レベルが「Ｌ」から「Ｈ」に変化した時に現在値レジスタ４００１ｎの計数現在値が増加または減少するようになっている。計数現在値の増加または減少変分値は、変分値調整レジスタ４００３ｎに格納された数値によって決定されるが、通常は変分値調整用レジスタ４００３ｎの値は１であって、現在値レジスタ４００１の計数現在値は計数入力端子ＩＮの論理変化によって１カウントだけ増減するようになっている。
【００４５】
可逆カウンタ２０００ｎのリセット端子ＲＳＴにリセット指令入力が与えられると、現在値レジスタ４００１ｎの値はゼロになるが、待機バッファレジスタ４００４ｎの中のプリセットレジスタに何らかの数値が格納されている場合には、当該プリセットレジスタの内容が現在値レジスタ４００１ｎに転送されるようになっている。なお、キープホールドレジスタ４００２ｎは、定期的に現在値レジスタ４００１ｎの内容を読出し格納するためのものであり、現在値レジスタ４００１ｎとキープホールドレジスタ４００２ｎと変分値調整用レジスタ４００３ｎと待機バッファレジスタ４００４ｎを総称したものが演算レジスタ４０００ｎとなっている。特に、後述の説明で明らかになるとおり、変分値調整用レジスタ４００３ｎはチャンネル番号ｎ＝１、２、５、６のもののみが備えていて、その他のチャンネルの可逆カウンタは常に１カウントの増減を行うものとなっている。
【００４６】
設定レジスタ３０００ｎは、計数上限値が格納される第一の設定レジスタ３００１ｎと、計数上限値未満の中間値が格納される第二の設定レジスタ３００２ｎによって構成されている。
【００４７】
第一の比較回路５００１ｎは、第一の設定レジスタ３００１ｎに格納されている設定数値と現在値レジスタ４００１ｎの計数現在値が合致するか、または計数現在値が設定数値を超過したときに論理レベルが「Ｈ」となり、判定記憶回路Ｓ１をセットしてカウントアップ出力Ｑを発生する数値比較回路である。前記第二の比較回路５００２ｎは、第二の設定レジスタ３００２ｎに格納されている設定数値と現在値レジスタ４００１ｎの計数現在値とを比較する数値比較回路であり、アップカウントモードにおいて比較一致または計数現在値が設定数値を超えると、論理積素子４２を介して判定記憶回路Ｓ２がセットされて上昇比較一致出力Ｐを発生する。また、ダウンカウントモードにおいて計数現在値が設定数値未満になると、ゲート素子４４を介して判定記憶回路Ｓ３がセットされて下降比較一致出力Ｐを発生する。
【００４８】
復帰比較回路５００３ｎは、現在値レジスタ４００１ｎの計数現在値が減少して、ゼロレジスタ４１の値と合致したとき、または計数現在値が負の値になっているときに復帰出力Ｑを発生し、判定記憶回路Ｓ１をリセットする数値比較回路である。なお、マイクロプロセッサ１１１からの指令信号によって指令ラッチメモリ６０００ｎを介して判定記憶回路Ｓ２およびＳ３や現在値レジスタの計数現在値をリセットすることができるようになっている。
【００４９】
報告ビットメモリ７０００ｎは、カウントアップ出力Ｑ、復帰出力Ｑ、上昇比較一致出力Ｐ、下降比較一致出力Ｐによって構成されていて、これらの判定出力はデータセレクタ４８を介してデータバスＤＡＴＡに接続されるようになっている。交番出力回路４７は、第一の比較回路５００１ｎの比較一致出力が論理レベル「Ｌ」から「Ｈ」に変化する都度に出力論理が交互に判定する論理回路である。出力選択回路４９は、パラメータメモリ８０００ｎの内容に応じて出力回路を選択決定する回路であり、例えば端子ＪおよびＫを前進パルス出力ＦＰ、後退パルス出力ＲＰとして割り付けるのか、それとも正逆パルス出力ＦＲＰと方向指令出力ＤＩＲとして割り付けるのかが決定されるようになっている。また、判定記憶回路Ｓ２の出力による上昇比較一致出力Ｐ、またはカウントアップ出力Ｑによる動作完了出力を端子Ｌに供給するようになっている。
【００５０】
入力回路部４０は、パラメータメモリ８０００ｎの内容によって具体的な回路構成が確定する可逆カウンタ２０００ｎに対する入力処理回路である。入力回路部４０や出力選択回路４９の具体的回路構成は図５〜図１４において後述するが、例えば可逆カウンタ２０００ｎが高速カウンタ回路を構成する場合では、カウント方向が指令信号によって決定される１相１入力の可逆カウンタであるか、またはアップ・ダウン入力が個別に供給される１相２入力の可逆カウンタであるか、または２相入力の位相差によってアップ・ダウン方向を決定する２相２入力の可逆カウンタである。さらには、当該高速カウンタ回路は、高速カウンタ命令が実行された時点で計数開始するのか、計数開始指令入力がＯＮしたときに計数開始するのか、現在値レジスタに初期値データを転送するためのプリセット指令入力が付加されているのかどうか、前記２相２入力形式の高速カウンタ回路では各相のパルス信号の立上りと立下りのどの時点で計数を行うのかによって、１逓倍計数方式、または２逓倍計数方式、または４逓倍計数方式の計数モードのものがある。これ等の様々な形式の高速カウンタ回路には、固有の識別番号が付与されていて、特殊命令と識別番号との組み合わせによって定まる回路編成情報がパラメータメモリ８０００ｎに格納されるようになっている。
【００５１】
入力端子Ａ〜Ｈに対しては、各チャンネルの論理回路部１０００ｎが予め決定されている多様な機能を発揮するために必要とされる全ての入力信号が接続されて、そのうちのどの入力信号をどのような回路構成によって可逆カウンタ２０００ｎに接続するのかがパラメータメモリ８０００ｎによって選択決定されるようになっている。
【００５２】
なお、パラメータメモリ８０００ｎからのデータは、プログラマブルコントローラ１００Ａの運転開始時にマイクロプロセッサ１１１から送信され、マイクロプロセッサ１００Ａの運転中には後述する一部の例外を除いて変更されないようになっている。しかし、この入力回路部４０の一部の動作は運転中にマイクロプロセッサ１１１から送信された指令ラッチメモリ６０００ｎによっても変更できるようになっていて、例えば１相１入力の高速カウンタにおけるアップ・ダウンの計数方向の選択は指令ラッチメモリ６０００ｎの内容によって可変設定されるようになっている。
【００５３】
このように、入力回路部４０は、可逆カウンタの計数方向の弁別指令、計数入力端子ＩＮに接続される計数入力信号の選択接続、リセット端子ＲＳＴに接続されるリセット信号の選択接続、計数入力端子ＩＮに対する計数信号を強制停止するための停止指令信号の選択接続を行う回路となっている。
【００５４】
論理積否定出力素子４６ａは、復帰比較回路５００３ｎが論理レベル「Ｈ」になったときに、論理積素子４５ａに作用して、減算カウント動作を停止するためのゲート回路となっており、このゲート回路を有効にするかどうかは入力回路部４０の内容に基づいて論理積否定出力素子４６ａによって決定されるようになっている。なお、論理積素子４５ａは、入力回路部４０を介して得られたダウン方向指令信号を可逆カウンタ２０００ｎのダウン指令端子ＤＮに供給するゲート回路となっている。
【００５５】
論理積否定出力素子４６ｂは、第一の比較回路５００１ｎが論理レベル「Ｈ」になったときに、論理積素子４５ｂに作用して、加算カウント動作を停止するためのゲート回路となっており、このゲート回路を有効にするかどうかは入力回路部４０の内容に基づいて論理積否定出力素子４６ｂによって決定されるようになっている。なお、論理積素子４５ｂは、入力回路部４０を介して得られたアップ方向指令信号を可逆カウンタ２０００ｎのアップ指令端子ＵＰに供給するゲート回路となっている。
【００５６】
次に、図４に示す論理回路部１０００ｎを可変フィルタ回路１０１０ｎとした場合のブロック図である図５と、パルス密度測定回路１０２０ｎとした場合のブロック図である図６について説明する。図５において、可変フィルタ回路１０１０ｎ（ｎ＝０〜７）は、共通クロック信号回路９００１が発生するクロック信号を計数入力信号とする可逆カウンタ２０００ｎによって構成されていて、当該可逆カウンタ２０００ｎの第一の設定レジスタ３００１ｎにはマイクロプロセッサ１１１からフィルタ定数となる設定データ３０１０ｎが送信格納されている。例えば特殊ユニット１３０の開閉センサ１０２ｘの中の一つの入力が、入力インタフェース回路１３９Ｘを介して第一のポート１１のチャンネル番号ｎとなるチャンネル端子１１ｎに入力される。該当開閉センサ１０２ｘがＯＮしてチャンネル端子１１ｎの論理レベルが「Ｈ」になると、論理積素子４５ｂを介してアップ指令端子ＵＰにアップ方向指令が供給される。その結果、可逆カウンタ２０００ｎは、共通クロック信号回路９００１が発生するクロック信号をアップ計数し、現在値レジスタ４００１ｎの現在値が徐々に上昇する。
【００５７】
この計数現在値が予め第一の設定レジスタ３００１ｎに格納されているフィルタ定数に相当する上限設定値に達すると、可逆カウンタ２０００ｎは、カウントアップ出力Ｑが発生し、これが報告信号７０１０ｎとしてマイクロプロセッサ１１１によってデバイスメモリ１１４ａ内の所定の補助リレーが駆動される。一方、カウントアップ出力Ｑが発生すると、論理積否定出力素子４６ｂと論理積素子４５ｂを介してアップ指令端子ＵＰの論理レベルが「Ｌ」となり、可逆カウンタ２０００ｎは、上限設定値以上の加算計数が行われないようになっている。該当開閉センサ１０２ｘがＯＮからＯＦＦに変化してチャンネル端子１１ｎの論理レベルが「Ｌ」になると、否定論理素子５１と論理積素子４５ａを介してダウン指令端子ＤＮにダウン方向指令が供給される。その結果、可逆カウンタ２０００ｎは、共通クロック信号回路９００１が発生するクロック信号をダウン計数し、現在値レジスタ４００１ｎの現在値が徐々に減少する。この計数現在値がゼロにまで減少すると復帰出力Ｑが発生し、カウントアップ出力Ｑがリセットされて報告信号７０１０ｎとしてマイクロプロセッサ１１１によって前記補助リレーが消勢される。一方、復帰出力Ｑが発生すると論理積否定出力素子４６ａと論理積素子４５ａを介してダウン指令端子ＤＮの論理レベルが「Ｌ」となり、ゼロ以下の減算計数が行われないようになっている。
【００５８】
したがって、開閉センサ１０２ｘがＯＮからＯＦＦ、またはＯＦＦからＯＮに変化した場合、共通クロック信号回路９００１のクロック周期τ＝１μｓｅｃと第一の設定レジスタ３００１ｎに格納されているフィルタ定数Ｎとの積である応答遅延時間Ｎ×τ＝Ｎμｓｅｃをおいて報告信号７０１０ｎが変化することになる。なお、開閉センサ１０２ｘにチャッタリングが生じて不規則な断続動作が行われたような場合には、可逆カウンタ２０００ｎはアップまたはダウンの計数動作を行うことになり、累積加算結果が上限設定値になればＯＮ動作が確定し、累積減算結果がゼロになればＯＦＦ動作が確定することになる。
【００５９】
一方、汎用入力回路１０９１によれば、第一のポート１１に入力された信号は全てデータセレクタ１３４を介してデバイスメモリ１１４ａ内の特定領域である入力イメージメモリへ転送されるようになっている。しかし、イメージメモリへの送信は、図１９で後述する入力処理９１１によって行われるものであって、プログラマブルコントローラ１００Ａの演算周期の影響を受けて更新されるものであるから、チャンネル端子１１ｎに例えば高速パルス信号が入力されているような場合には、高速追従することができず単にサンプリングチェックとしての情報となるものである。
【００６０】
図６において、パルス密度測定回路１０２０ｎ（ｎ＝０〜７）を構成する場合の可逆カウンタ２０００ｎは、チャンネル端子１１ｎの入力信号が計数入力端子ＩＮに供給されると共に、入力信号のＯＮ／ＯＦＦ動作をアップ計数動作するように構成されていて、第一の設定レジスタ３００１ｎには、３２ビット数値の上限値が設定データ３０２０ｎによって格納されるようになっている。共通トリガ回路９００２は、一定周期Ｔ０＝１０ｍｓｅｃ毎に１μｓｅｃの短時間パルスであるトリガ信号Ｐ０とカウントアップ出力Ｑ０を発生するようになっていて、トリガ信号Ｐ０はカウントアップ出力Ｑ０の直前にパルスを発生して、現在値レジスタ４００１ｎの計数現在値をピークホールドレジスタ４００２ｎへ転送し、カウントアップ出力Ｑ０は可逆カウンタ２０００ｎのリセット端子ＲＳＴにリセット信号を供給する。その結果、現在値レジスタ４００１ｎの内容はゼロにリセットされるようになっている。したがって、ピークホールドレジスタ４００２ｎには、一定周期Ｔ０毎にリセットされる可逆カウンタ２０００ｎのリセット直前の最大計数値が毎回格納され、この最大計数値がチャンネル端子１１ｎに与えられた開閉センサ１０２ｘのパルス密度（即ちパルス周波数）となって、演算データ４０２０ｎによってマイクロプロセッサ１１１に送信されるようになっている。
【００６１】
次に、図４に示す論理回路部１０００ｎをパルス幅測定回路１０２２ｎとした場合のブロック図である図７と、エッジ検出回路１０３１ｎとした場合のブロック図である図８について説明する。図７において、パルス幅測定回路１０２２ｎ（ｎ＝０〜７）を構成する場合の可逆カウンタ２０００ｎには、チャンネル端子１１ｎの入力信号がゲート素子６１を介してアップ指令端子ＵＰに入力され、共通クロック信号回路９００１が発生するクロック信号が計数入力端子ＩＮに供給されている。第一の設定レジスタ３００１ｎには３２ビット数値の上限値、第二の設定レジスタ３００２ｎには設定値「１」が設定データ３０２２ｎによって格納されるようになっている。
【００６２】
チャンネル端子１１ｎの論理レベルが「Ｈ」になると、可逆カウンタ２０００ｎはアップ計数を開始し、やがてチャンネル端子１１ｎの論理レベルが「Ｌ」になると、可逆カウンタ２０００ｎは加算動作を停止すると共に、ゲート素子６２を介してピークホールドレジスタ４００２ｎに対する転送指令が発生して現在値レジスタ４００１ｎの計数最大値が転送される。ピークホールドレジスタ４００２ｎに対する転送が行われると同時に記憶回路６３がセットされ、測定完了信号を報告信号７０２２ｎによってマイクロプロセッサ１１１へ送信する。記憶回路６３が一旦セットされると、指令信号６０２２ｎによってリセットされるまではゲート素子６１によってアップ計数動作が停止されるようになっている。なお、ゲート素子６２は上昇比較一致出力Ｐが作動するまでは記憶回路６３の記憶動作を禁止するようになっている。
【００６３】
その結果、ピークホールドレジスタ４００２ｎの内容Ｎは、チャンネル端子１１ｎが論理レベル「Ｈ」となっていた測定期間に比例し、例えばクロック信号の周期がτ＝１μｓｅｃであれば、検出された時間はＮμｓｅｃであったことになる。ピークホールドレジスタ４００２ｎの内容は、演算データ４０２２ｎによってマイクロプロセッサ１１１へ送信される。マイクロプロセッサ１１１は、指令信号６０２２ｎによって指令ラッチメモリ６０００ｎを介して記憶回路６３をリセットし、再びパルス幅の測定が開始されることになる。なお、パルス幅測定命令によって入力信号のＯＮ時間幅を測定するのか、ＯＦＦ時間幅を測定するのかを切換える指令信号を付加することも可能である。また、図６によるパルス密度測定回路１０２０ｎの場合は、例えば回転体から駆動されるエンコーダが高速回転パルスを発生し、このパルス密度を測定することによって回転体の回転速度を検出する場合に有効である。しかし、低速回転パルスの場合には測定時間を十分大きくしなければ回転速度の検出が行えない問題がある。これに対し、パルス幅測定回路１０２２ｎによれば、低速パルスの時間幅を測定し、これをマイクロプロセッサ１１１で逆数演算することによって高精度に回転速度を検出することができるものである。
【００６４】
図８において、エッジ検出回路１０３１ｎ（ｎ＝０〜７）を構成する場合の可逆カウンタ２０００ｎの計数入力端子ＩＮには、チャンネル端子１１ｎの入力信号が排他的論理和素子６７を介して入力され、排他的論理和素子６７の他方の入力は上昇比較一致出力Ｐとなっている。第一の設定レジスタ３００１ｎには設定データ３０３１ｎによって例えば定数「２」が書込まれ、第二の設定レジスタ３００２ｎには設定データ３０３１ｎによって定数「１」が書込まれ、上昇比較一致出力Ｐはダウン指令端子ＤＮに接続されると共に、否定論理素子６６を介してアップ指令端子ＵＰに接続されている。マイクロプロセッサ１１１は、指令信号６０３１ｎによって指令ラッチメモリ６０００ｎを介して可逆カウンタ２０００ｎの現在値レジスタ４００１ｎと上昇比較一致出力Ｐと下降比較一致出力Ｐをリセットし、上昇比較一致出力Ｐと下降比較一致出力Ｐは報告信号７０３１ｎによってマイクロプロセッサ１１１へ送信されるようになっている。
【００６５】
したがって、現在値レジスタ４００１ｎの内容がゼロで、上昇比較一致出力Ｐと下降比較一致出力Ｐが共にリセットされている状態において、チャンネル端子１１ｎの論理レベルが「Ｌ」から「Ｈ」に変化すると、排他的論理和素子６７の出力論理が「Ｈ」となって可逆カウンタ２０００ｎが１カウントのアップ計数を行うことになる。その結果、上昇比較一致出力Ｐの論理レベルが「Ｈ」となり、これを立上り検出出力としてマイクロプロセッサ１１１へ報告すると共に、可逆カウンタ２０００ｎはアップモードからダウンモードに移行し、計数入力端子ＩＮの論理レベルは「Ｌ」になる。
【００６６】
次に、チャンネル端子１１ｎの論理レベルが「Ｈ」から「Ｌ」に変化すると、排他的論理和素子６７の出力論理が「Ｈ」となって、可逆カウンタ２０００ｎが１カウントのダウン計数を行うことになる。その結果、下降比較一致出力Ｐの論理レベルが「Ｈ」となり、立下り検出出力としてマイクロプロセッサ１１１へ報告する。
【００６７】
次に、図４に示す論理回路部１０００ｎを１相１入力の高速カウンタ回路１０３０ｎとした場合のブロック図である図９と、１相２入力の高速カウンタ回路１０４０ｍとした場合のブロック図である図１０について説明する。なお、高速カウンタ回路には、２相入力方式のものや１逓倍・２逓倍・４逓倍計数方式のものなどがあって、これ等の高速カウンタはパラメータメモリの内容によって、それぞれ図示しない回路構成のカウンタ回路となっている。
【００６８】
図９において、チャンネル端子１１ｎに入力された開閉センサ１０２ｘの動作回数を計数する１相１入力の高速カウンタ回路１０３０ｎ（ｎ＝０〜７）は、可逆カウンタ２０００ｎによって構成され、当該可逆カウンタ２０００ｎの第一および第二の設定レジスタ３００１ｎ・３００２ｎには、マイクロプロセッサ１１１から設定データ３０３０ｎによって上限設定値と中間設定値が格納されている。可逆カウンタ２０００ｎの計数方向はマイクロプロセッサ１１１から指令信号６０３０ｎとして指令ラッチメモリ６０００ｎに送信格納され、この指令信号が論理レベル「Ｈ」であれば、可逆カウンタ２０００ｎはアップ計数し、指令信号の論理レベルが「Ｌ」であれば、可逆カウンタ２０００ｎは否定論理素子７１の作用によってダウン計数するようになっている。
【００６９】
可逆カウンタ２０００ｎの計数現在値が上限設定値に到達すると、カウントアップ出力Ｑが発生して報告信号７０３０ｎによってマイクロプロセッサ１１１へ送信される。可逆カウンタ２０００ｎの第二の設定レジスタ３００２ｎが使用されいて、プログラムメモリ１１３Ａの中の高速比較命令ＨＣＭＰが実行されているときには、現在値レジスタ４００１ｎの計数現在値が第二の設定レジスタ３００２ｎに格納されている中間設定値を上昇通過するときに上昇比較一致出力Ｐが作動して対応チャンネル端子１２ｎに出力されると共に、報告信号７０３０ｎによってマイクロプロセッサ１１１に送信される。
【００７０】
なお、対応チャンネル端子１２ｎの意味は、計数入力チャンネル番号ｎと同一番号の相手側のポートのチャンネル端子のことであり、例えば特殊ユニット１３０の入力Ｘ０１４に対応する出力はＹ０１４となっている。したがって、第一のポート１１が高速論理入力、第二のポート１２が高速または低速の論理出力ポートとなっている場合に限って、この高速比較命令ＨＣＭＰは使用可能であって、この高速比較命令ＨＣＭＰによって占有された相手出力は他の高速出力として利用することはできないようになっている。
【００７１】
マイクロプロセッサ１１１は報告信号７０３０ｎによって比較一致を知ることができるが、これは高速比較命令ＨＣＭＰが実行された時点で認知できるものであるのに対し、対応チャンネル端子１２ｎを介して外部に出力されるＹ０１４は可逆カウンタ２０００ｎの上昇比較一致出力Ｐがそのまま出力されるので即時に比較一致を外部に知らせることができるものである。可逆カウンタ２０００ｎの現在値レジスタ４００１ｎの内容や、カウントアップ出力Ｑ、上昇比較一致出力Ｐ、下降比較一致出力Ｐはマイクロプロセッサ１１１からの指令信号６０３０ｎを受信格納した指令ラッチメモリ６０００ｎによってリセットすることができるようになっている。高速比較命令ＨＣＭＰの用途例としては、例えば巻枠に巻き取られている長尺材の巻き出し寸法をエンコーダの発生パルスによって計測し、一定寸法間隔でスタンプを打ちたい場合を想定すると、可逆カウンタのカウントアップ出力Ｑによって定寸送り量が逐次更新計測され、上昇比較一致出力Ｐでスタンプを駆動するものであって、これにより、長尺材の所定位置に正確にスタンプを打つことができるものである。
【００７２】
図１０において、１相２入力の高速カウンタ回路１０４０ｍ（ｍ＝０・２・４・６）は可逆カウンタ２０００ｍによって構成され、当該可逆カウンタ２０００ｍは、チャンネル端子１１ｍに入力された正転パルスＦＰの動作回数をアップ計数するか、隣接チャンネル端子１１ｍ＋１に入力された逆転パルスＲＰの動作回数をダウン計数するようになっている。したがって、正転パルスＦＰはアップ指令端子ＵＰに入力されると共に、逆転パルスＲＰはダウン指令端子ＤＮに入力され、正転パルスＦＰと逆転パルスＲＰは論理和素子７２を介して計数入力端子ＩＮに接続されている。
【００７３】
可逆カウンタ２０００ｍの第一および第二の設定レジスタ３００１ｍおよび３００２ｍには、マイクロプロセッサ１１１から設定データ３０４０ｍによって上限設定値と中間設定値が格納されている。可逆カウンタ２０００ｍのカウントアップ出力Ｑ、上昇比較一致出力Ｐに関する報告信号７０４０ｍや対応チャンネル端子１２ｍに対する上昇比較一致出力、または指令信号６０４０ｍによる可逆カウンタ２０００ｍのリセット処理の扱いは先に説明した図９による１相１入力の高速カウンタ回路１０３０ｎの場合と同様である。
【００７４】
その他、図示しない高速カウンタ回路として、２相２入力のカウンタがあり、この場合にはＡ相入力パルスとＢ相入力パルスとの位相差によってアップ／ダウンが決定され、Ａ相またはＢ相の立上りパルスのみを計数する１逓倍計数方式や、Ａ相またはＢ相の立上りパルスと立下りパルスを計数する２逓倍計数方式や、Ａ相およびＢ相の立上りパルスと立下りパルスを計数する４逓倍計数方式のものがある。
【００７５】
次に、図４に示す論理回路部１０００ｎをＰＷＭ出力回路１０５０ｎとした場合のブロック図である図１１と、第一のパルス出力回路１０６０ｍとした場合のブロック図である図１２について説明する。図１１において、ＰＷＭ出力回路１０５０ｎ（ｎ＝０〜７）を構成する場合の可逆カウンタ２０００ｎは、共通クロック回路９００１が発生するクロック信号をアップ計数するようになっていて、第一の設定レジスタ３００１ｎには目標とするパルス幅変調信号信号８０の周期Ｔが格納され、第二の設定レジスタ３００２ｎには目標とするパルス幅変調信号信号８０のＯＦＦ時間幅が格納されるようになっている。マイクロプロセッサ１１１は、設定データ３０５０ｎによってこれ等の設定値を待機バッファレジスタ４００４ｎに送信し、待機バッファレジスタ４００４ｎの内容はパルス幅変調信号８０の各周期の終了時点で第一および第二の設定レジスタ３００１ｎ・３００２ｎへ転送されるようになっている。
【００７６】
現在値レジスタ４００１ｎの計数現在値が上昇して第二の設定レジスタ３００２ｎに格納されているＯＦＦ時間に相当する設定値に達すると、上昇比較一致出力Ｐが作動し、これがチャンネル端子１２ｎから出力インタフェース回路１４９Ｙと出力端子１４０Ｙを介して電気負荷１０３ｙの対応チャンネルに供給される。現在値レジスタ４００１ｎの計数現在値がさらに上昇して第一の設定レジスタ３００１ｎに格納されている周期に相当する設定値に達すると、カウントアップ出力Ｑが作動し、その結果可逆カウンタ２０００ｎがリセットされて、比較一致出力Ｐは論理レベル「Ｌ」に復帰してチャンネル端子１２ｎの出力はＯＦＦとなり、現在値レジスタ４００１ｎの内容がゼロになると共に、待機バッファレジスタ４００４ｎ内の設定データが第一および第二の設定レジスタ３００１ｎ・３００２ｎへ転送される。
【００７７】
したがって、パルス幅変調信号８０の周期Ｔは、クロック信号の周期τと第一の設定レジスタ３００１ｎに格納された設定値Ｎ１との積τ×Ｎ１に等しくなり、パルス幅変調信号８０のＯＦＦ時間幅は、クロック信号の周期τと第二の設定レジスタ３００２ｎに格納された設定値Ｎ２との積τ×Ｎ２に等しくなり、チャンネル端子１２ｎから出力されるパルス幅変調信号８０のＯＮ時間幅は、τ×（Ｎ１−Ｎ２）で算出されるものとなる。なお、もしも比較一致出力Ｐの反転論理出力をチャンネル端子１２ｎに供給するようにすれば、ＯＮ／ＯＦＦの概念が反転するので、τ×Ｎ２がＯＮ幅時間に相当することになる。このため、論理反転した場合には第二の設定レジスタ３００２ｎに格納される設定値Ｎ２はＯＮ時間幅に対応した設定値であるということになる。
【００７８】
一方、汎用出力回路１０９２によれば、第二のポート１２には出力ラッチメモリ１４５を介してデバイスメモリ１１４ａ内の特定領域である出力イメージメモリのＯＮ／ＯＦＦ状態が送信されるようになっている。この汎用出力回路１０９２は、特殊命令が使用されていないチャンネル端子１２ｎに対して有効となるものであり、例えば後述の高速パルス出力としてチャンネル端子１２ｎが占有されているときには汎用出力としては使用できず、該当チャンネルの出力イメージメモリはＯＦＦにしておく必要がある。
【００７９】
図１２において、第一のパルス出力回路１０６０ｍ（ｍ＝０・２・４・６）はステッピングモータによって低速始動運転・高速運転・停止前低速運転・停止の高低速の２段速度運転を行うのに適したパルス発生回路であり、当該第一のパルス出力回路は、第一所定量の低速周期のパルスを発生してから第二所定量の高速周期のパルスを発生し、再び第一所定量の低速周期のパルスを発生してからパルス発生を停止するようになっている。これを詳細に説明すると、第一のパルス出力回路１０６０ｍは、一対の可逆カウンタ２０００ｍと２０００ｍ＋１によって構成され、前段の可逆カウンタ２０００ｍは、共通クロック回路９００１が発生するクロック信号をアップ計数するようになっていて、第一の設定レジスタ３００１ｍには目標とする低速出力パルスの周期Ｔの１／２に相当した数値が格納され、第二の設定レジスタ３００２ｍには目標とする高速出力パルスの周期Ｔの１／２に相当した数値が格納されている。
【００８０】
前段可逆カウンタ２０００ｍの現在値レジスタ４００１ｍの計数現在値が増加して、第一の設定レジスタ３００１ｍの設定値Ｎ１、または第二の設定値レジスタ３００２ｍの設定値Ｎ２（Ｎ２≦Ｎ１）に達すると、カウントアップ出力Ｑまたは上昇比較一致出力Ｐが発生して可逆カウンタ２０００ｍをリセットすると共に、交番出力回路８４の出力が交互に反転するようになっている。第一および第二の設定レジスタのどちら側の設定値を使用するかは後述する切換回路８１の論理動作によって決定されるようになっている。可逆カウンタ２０００ｍがリセットされて現在値レジスタ４００１ｍの値がゼロに復帰したことに伴ってカウントアップ出力Ｑと上昇比較一致出力Ｐもリセットされ、再びクロック信号の計数が開始する。
【００８１】
その結果、共通クロック信号回路９００１の発生クロック周期をτ＝１μｓｅｃとすれば、交番出力回路８４の出力パルスの周期は２×Ｎ１または２×Ｎ２（μｓｅｃ）となる。出力選択回路４９はパラメータメモリ８０００ｍの内容と指令ラッチメモリ６０００ｍの内容によって出力モードが変化し、例えばチャンネル端子１２ｍに可逆パルス出力ＦＲＰを発生し、続く隣接チャンネル端子１２ｍ＋１には回転方向指令出力ＤＩＲを発生するか、またはチャンネル端子１２ｍに正転パルス出力ＦＰを発生し、続く隣接チャンネル端子１２ｍ＋１には逆転パルス出力ＲＰを発生するようになっている。
【００８２】
後段の可逆カウンタ２０００ｍ＋１は、交番出力回路８４の出力信号をアップおよびダウン計数すると共に、当該可逆カウンタの第一の設定レジスタ３００１ｍ＋１には目標となるパルス発生総数の１／２の値が格納されていて、この発生パルス数によって例えばステッピングモータによる全体移動量が決定される。可逆カウンタ２０００ｍ＋１の第二の設定レジスタ３００２ｍ＋１には目標となる低速パルス発生数が格納されていて、この発生パルス数によってステッピングモータの低速始動運転と停止前の低速運転による移動量が決定される。
【００８３】
可逆カウンタ２０００ｍ＋１の現在値レジスタ４００１ｍ＋１の計数現在値が増加して、第二の設定レジスタ３００２ｍ＋１の設定値Ｍ２に達すると、上昇比較一致出力Ｐが発生して、切換回路８１によって前段の可逆カウンタ２０００ｍの設定周期を低速周期から高速周期に切換設定する。可逆カウンタ２０００ｍ＋１の現在値レジスタ４００１ｍ＋１の計数現在値がさらに増加して、第一の設定レジスタ３００１ｍ＋１の設定値Ｍ１（Ｍ２≦Ｍ１）に達すると、カウントアップ出力Ｑが発生して否定論理素子８２および８３によって可逆カウンタ２０００ｍ＋１が減算動作を開始し、やがて下降比較一致出力Ｐが作動すると、切換回路８１によって前段の可逆カウンタ２０００ｍの設定周期を高速周期から再び低速周期に切換設定する。
【００８４】
可逆カウンタ２０００ｍ＋１の現在値レジスタ４００１ｍ＋１の計数現在値がさらに減少してゼロに復帰して復帰出力Ｑが作動すると、各可逆カウンタは計数動作を停止し、報告信号７０６０ｍによってマイクロコンピュータ１１１に対してパルス発生完了報告が行われる。その結果、第一のパルス出力回路１０６０ｍによるパルスの発生総数は、後段可逆カウンタ２０００ｍ＋１の上昇比較一致出力Ｐが作動するまでの低速パルス数Ｍ２と、カウントアップ出力Ｑが発生するまでの高速パルス数（Ｍ１−Ｍ２）と、減算動作によって下降比較一致出力Ｐが作動するまでの高速パルス数（Ｍ１−Ｍ２）と、復帰出力Ｑが作動するまでの低速パルス数Ｍ２となっていて、発生パルスの総数はＭ２＋(Ｍ１−Ｍ２)＋(Ｍ１−Ｍ２）＋Ｍ２＝２×Ｍ１であるが、前後に低速パルスが各Ｍ２パルス発生することになる。
【００８５】
発生パルスの総数を奇数にしたいときには、現在値レジスタ４００１ｍ＋１の初期値として「+１」または「−１」を格納しておいて、残りの偶数値を設定値Ｍ１およびＭ２に割り当てるようにすればよい。マイクロプロセッサ１１１は、第一のパルス出力回路１０６０ｍが計数動作を行っていないときに、設定データ３０６０ｍによって各第一および第二の設定レジスタに対する設定値を送信すると共に、指令信号６０６０ｍによって回転方向指令信号を指令ラッチメモリ６０００ｍへ送信するようになっている。現在値レジスタ４００１ｍ＋１による発生パルス数の現在値は演算データ４０６０ｍによってマイクロプロセッサ１１１に送信されるようになっている。
【００８６】
なお、マイクロプロセッサ１１１は、指令信号６０６０ｍによって指令ラッチメモリ６０００ｍに対して正転限界停止指令、逆転限界停止指令、強制停止指令などを送信して、パルス発生を停止することができるようになっている。また、第一のパルス出力回路１０６０ｍは、ステッピングモータに対する回転駆動指令を与えるものであり、当該ステッピングモータを駆動するドライバには正転駆動端子、逆転駆動端子を有するものと、正逆転駆動端子と回転方向指令端子を有するものがある。第一のパルス出力回路１０６０ｍはこれ等の駆動形式に応じたパルス出力を発生することができるようになっている。
【００８７】
以上の説明では、２段速度による低速始動運転・高速運転・停止前の低速運転・停止の動作を行うために、前段可逆カウンタをリングカウンタとして循環動作させるための設定値を第一および第二の設定レジスタによって切換えることによって低速または高速の出力パルス周期を得るようになっていて、後段可逆カウンタ２０００ｍ＋１によって発生パルス数の計数と速度切換え指令信号を発生するようになっている。この速度切換制御において、低速パルス発生数の発生に応動する上昇比較一致出力Ｐと、下降比較一致出力Ｐが利用されている。しかし、後段可逆カウンタ２０００ｍ＋１の運転開始時に、現在値レジスタ４００１ｍ＋１に対して低速始動運転パルス発生数に相当した負数を格納し、第二の設定レジスタ３００２ｍ＋１に対して高速運転パルス数を設定し、第一の設定レジスタ３００１ｍ＋１に対して高速運転パルス数＋停止前の低速運転パルス数を設定しておくおくことにより、復帰出力Ｑが作動している間は低速始動運転を行い、現在値レジスタ４００１ｍ＋１が正の値になってから高速運転を行い、上昇比較一致出力Ｐが作動すると停止前の低速運転を行い、カウントアップ出力Ｑが発生すると停止するようにしてもよい。
【００８８】
次に、図４に示す論理回路部１０００ｎを第二のパルス出力回路１０７０ｋ（ｋ＝０または４）とした場合のブロック図である図１３について説明する。なお、第二のパルス出力回路１０７０ｋは、サーボモータを駆動するサーボアンプに対して回転パルス指令を供給するものであって、当該サーボアンプに対しては正転パルスまたは逆転パルスを供給するか、または正逆転パルスと回転方向指令を供給するようになっている。また、第二のパルス出力回路１０７０ｋは、サーボモータのスロースタート／スローストップを行うために徐々にパルス周波数を増加させたり減少させたりする加減速度制御機能が付加されており、一部の回路変更によって後述の原点出し制御も行えるようになっている。このため、第二のパルス出力回路１０７０ｋは、第一のポート１１と第二のポート１２を共用した場合に有効となり、２チャンネルの入力と３チャンネルの出力と４個の可逆カウンタを占有する回路となっている。
【００８９】
図１３において、第二のパルス出力回路１０７０・０は、４点の可逆カウンタ２０００・０、２０００・１、２０００・２、２０００・３が使用され、第二のパルス出力回路１０７０・４は、４点の可逆カウンタ２０００・４、２０００・５、２０００・６、２０００・７が使用されているが、両者は同様であるので、第二のパルス出力回路１０７０・０について説明する。初段の可逆カウンタ２０００・０は、共通クロック回路９００１が発生するクロック信号をアップ計数するようになっていて、第一の設定レジスタ３００１・０には目標とする漸増漸減のステップ時間Δｔの１／２に相当した数値が設定データ３０７０・０によって予め格納されている。前段可逆カウンタ２０００・０の現在値レジスタ４００１・０の計数現在値が増加して第一の設定レジスタ３００１・０の設定値Ｎ１に達すると、カウントアップ出力Ｑが発生して可逆カウンタ２０００・０をリセットすると共に、交番出力回路９７の出力が交互に反転するようになっている。
【００９０】
可逆カウンタ２０００・０がリセットされて現在値レジスタ４００１・０の値がゼロに復帰したことに伴ってカウントアップ出力Ｑもリセットされ、再びクロック信号の計数が開始する。その結果、カウントアップ出力Ｑの発生周期は設定値Ｎ１とクロック信号周期τとの積であるＮ１×τに等しくなり、交番出力回路９７の出力パルスの周期はその２倍の値である２×Ｎ１×τとなって、これがステップ時間Δｔに相当することになる。したがって、初段の可逆カウンタ２０００・０は、漸増漸減パターンのステップ時間生成手段となるものであり、現在値レジスタ４００１・０の計数現在値の変化が鋸歯状波形９１によって示されている。次段の可逆カウンタ２０００・１は、交番出力回路９７の出力信号をアップまたはダウン計数するようになっていて、１回のアップ／ダウン指令によって変分値レジスタ４００３・１に格納されている漸減漸増周波数Δｆの値が現在値レジスタ４００１・１に加算または減算されるようになっている。
【００９１】
なお、この可逆カウンタ２０００・１は、速度パターン９３ａを生成するためのものであり、第二のパルス出力回路１０７０・０の動作開始に当たって、設定データ３０７０・０による初期設定が行われ、第一の設定レジスタ３００１・１には目標運転速度に対応したパルス周波数ｆ１の値が設定され、第二の設定レジスタ３００２・１には低速速度に対応したパルス周波数ｆ２の値が設定され、現在値レジスタ４００１・１には運転開始時の初速に対応したパルス周波数ｆ０の値が設定され、変分値レジスタ４００３・１には前記漸増漸減周波数Δｆの値が設定されている。
【００９２】
ただし、通常は低速速度と初速とは同じ値が使用され、ｆ２＝ｆ０となっている。その結果、周期Δｔによる計数入力信号が計数入力端子ＩＮに入力される都度に、現在値レジスタ４００１・１の値は初速用のパルス周波数ｆ０を初期値として漸増周波数Δｆが順次加算され、この加算現在値が第一の設定レジスタ３００１・１に格納されている目標運転速度に対応したパルス周波数ｆ１に達すると、カウントアップ出力Ｑが発生して否定論理素子９２の出力によってアップ指令入力が停止して、計数入力が発生しても現在値レジスタ４００１・１の値は一定値を維持するようになる。
【００９３】
しかし、後述の可逆カウンタ２０００・３が減速開始指令を発生すると、論理和素子９５ａとゲート素子９５ｂの出力によって、可逆カウンタ２０００・１は減算動作を開始して、周期Δｔによる計数入力信号が計数入力端子ＩＮに入力される都度に、現在値レジスタ４００１・１には漸減周波数Δｆが順次減算される。やがて、現在値レジスタ４００１・１の値が第二の設定レジスタ３００２・１に格納されている低速周波数ｆ２（＝ｆ０）以下になると、下降比較一致出力Ｐが論理レベル「Ｈ」となり、ゲート素子９５ｂの出力が論理レベル「Ｌ」に反転することによって減算動作が停止し、現在値レジスタ４００１・１の値は低速周波数ｆ２（＝ｆ０）の値を維持するようになっている。
【００９４】
終段前の可逆カウンタ２０００・２は、共通クロック回路９００１が発生するクロック信号によって変分値レジスタ４００３・２に格納されている増分値を順次現在値レジスタ４００１・２に加算するようになっており、第一の設定レジスタ３００１・２には所定の係数Ｋがマイクロプロセッサ１１１からの設定データ３０７０・０によって格納されている。また、変分値レジスタ４００３・２には前段の可逆カウンタ２０００・１の現在値レジスタ４００１・１の値が順次更新格納されるようになっている。
【００９５】
したがって、可逆カウンタ２０００・２の現在値レジスタ４００１・２の計数現在値は共通クロック回路９００１から入力されたクロック信号のＯＮ／ＯＦＦ動作によって順次変分値レジスタ４００３・２に格納されている増分値が加算され、やがて第一の設定レジスタ３００１・２に格納されている計数Ｋに達すると、カウントアップ出力Ｑを発生して、可逆カウンタ２０００・２は自己リセットされ、同じ動作を繰返すことになる。その結果、カウントアップ出力Ｑの発生周期は変分値レジスタ４００３・２に格納されている増分値が大きいほど速い周期となり、交番出力回路４７の出力は変分値レジスタ４００３・２に格納された増分値に反比例した周期のパルス出力となって、このパルス出力が出力選択回路４９を介してチャンネル端子１２・０と１２・１に出力される。
【００９６】
出力選択回路４９は、パラメータメモリ８０００・２の内容によって出力モードが決定され、例えば正転パルス出力ＦＰと逆転パルス出力ＲＰが出力されるか、または可逆パルスＦＲＰと方向信号出力ＤＩＲが出力されるようになっている。終段の可逆カウンタ２０００・３は、交番出力回路４７の出力信号をアップカウントし、パルス発生回数を計数するカウンタとなっている。可逆カウンタ２０００・３の第一の設定レジスタ３００１・３には目標パルス発生数が格納され、第二の設定レジスタ３００２・３には減速開始点までのパルス発生数が格納される。これ等の設定値はマイクロプロセッサ１１１から設定データ３０７０・０として予め送信されたものとなっている。
【００９７】
可逆カウンタ２０００・３がパルス発生数を計数し、やがて第二の設定レジスタ３００２・３に格納された減速開始点までのパルス数に達すると、上昇比較一致出力Ｐが論理レベル「Ｈ」となり、論理和素子９５ａとゲート素子９５ｂを介して可逆カウンタ２０００・１の減算動作が開始するようになっている。可逆カウンタ２０００・３がパルス発生数を計数し、やがて第一の設定レジスタ３００１・３に格納された目標パルス発生数に達するとカウントアップ出力Ｑが論理レベル「Ｈ」となり、全ての可逆カウンタの動作を停止して出力パルスの発生を停止すると共に、報告信号７０７０・０によってマイクロプロセッサ１１１へ動作完了を報告する。なお、マイクロプロセッサ１１１は指令信号６０７０・０によって指令ラッチメモリ６０００・０に対して正転限界停止指令、逆転限界停止指令、強制停止指令などを送信して、パルス発生を停止することができるようになっている。また、図１３の点線部分の動作については図１４によって説明する。
【００９８】
次に、図４に示す論理回路部１０００ｎを変形型パルス出力回路１０８０ｋ（ｋ＝０または４）とした場合のブロック図である図１４について、図１３のものとの相違点を中心にして説明する。なお、変形型パルス出力回路１０８０ｋは、図１９で後述するパラメータ変更手段９１８によって図１３の第二のパルス出力回路１０７０ｋを一部変形して得られる回路であり、適用される特殊命令が原点復帰命令ＺＲＮとなっているために各部に対する設定データも異なったものとなっている。
【００９９】
図１４において、初段の可逆カウンタ２０００・０は図１３の場合と全く同様に動作し、共通クロック回路９００１が発生するクロック信号をアップ計数しながら、第一の設定レジスタ３００１・０で設定された漸増漸減のステップ時間に対応した繰り返し動作を行い、現在値レジスタ４００１・０の計数現在値の変化は鋸歯状波形９１によって示された変化を行うようになっている。次段の可逆カウンタ２０００・１も図１３の場合と略同様の動作を行って、特性線図９３ｂで示したような速度パターンを生成する回路となっている。
【０１００】
但し、図１４の場合は、現在値レジスタ４００１・１に対する初速設定が行われていないので、速度上昇パターンはゼロから徐々に上昇するようになっている。また、可逆カウンタ２０００・１が減算動作を開始するのはチャンネル端子１１・０から入力された近点ドグ信号ＤＯＧの動作に依存しており、当該近点ドグ信号ＤＯＧは機械原点の手前でＯＮ動作するスイッチ信号に基づいて論理和素子９５ａとゲート素子９５ｂを介して可逆カウンタ２０００・１にダウン指令を供給するものとなっている。
【０１０１】
さらに、減速完了段階では第二の設定レジスタ３００２・１に格納された微速運転速度（クリープ速度）に対応した一定速度が維持されるようになっている。これは、下降比較一致出力Ｐによってゲート素子９５ｂを介してダウン動作を停止するためである。終段前の可逆カウンタ２０００・２も図１３の場合と全く同様の動作を行い、前段の現在値レジスタ４００１・１の現在値が変分値レジスタ４００３・２に順次転送され、運転速度に対応した周波数に反比例した周期のパルス出力をチャンネル端子１２・０と１２・１に発生するようになっている。
【０１０２】
終段の可逆カウンタ２０００・３は、サーボモータに設けられたエンコーダが発生するゼロ相信号をアップ計数するカウンタであり、その計数信号入力は論理積素子９５ｅの出力信号となっている。保持回路９５ｃは近点ドグ信号ＤＯＧがＯＦＦからＯＮに変化して、チャンネル端子１１・０の論理レベルが「Ｌ」から「Ｈ」になったことを記憶し、ゲート素子９５ｄの出力は保持回路９５ｃがセットされた後に近点ドグ信号ＤＯＧがＯＮからＯＦＦに変化したことによて論理レベルが「Ｈ」となるように構成されている。
【０１０３】
その結果、チャンネル端子１１・１に入力されたゼロ相信号ＺＥＲＯが論理積素子９５ｅを介して可逆カウンタ２０００・３の計数入力端子ＩＮに入力されるようになっている。なお、ゼロ点信号の計数開始判定回路９６は保持回路９５ｃとゲート素子９５ｄによって構成されている。近点ドグ信号ＤＯＧとゼロ相信号ＺＥＲＯとの関連については図２８で改めて具体的に説明するが、近点ドグ信号ＤＯＧは原点近傍で一旦論理レベル「Ｈ」となり、やがて減速が略完了した時点で再び近点ドグ信号ＤＯＧが論理レベル「Ｌ」になって、その後に可逆カウンタ２０００・３がゼロ相信号ＺＥＲＯを計数開始するようになっている。
【０１０４】
可逆カウンタ２０００・３の現在値レジスタ４００１・３の計数現在値が、予め第一の設定レジスタ３００１・３に格納されているゼロ点信号数の値に達すると、カウントアップ出力Ｑが発生して、全ての可逆カウンタの動作とパルス出力の発生を停止し、出力選択回路４９を介してチャンネル端子１２・２に対してクリア信号ＣＬＲを発生すると共に、保持回路９５ｃをリセットしたり、マイクロプロセッサ１１１には動作完了信号を報告信号７０８０・０によって送信するようになっている。チャンネル端子１２・２に出力されたクリア信号ＣＬＲはサーボアンプの初期化を行う信号として使用されるものである。なお、可逆カウンタ２０００・３は、図１３においては発生パルス数の計数を行ったものが、図１４ではゼロ点信号を計数するためのものとして共用されて、可逆カウンタの使用個数を抑制するようになっている。
【０１０５】
次に、図１に示すデバイスメモリ１１４ａの構成例である図１５について説明する。図１５において、例えば１２８点の多数の入力リレーは、８進番号Ｘ０００〜Ｘ１７７によって識別され、各入力リレーはプログラマブルコントローラ１００Ａの入力端子に接続された開閉センサＸ０００〜Ｘ１７７によって駆動される仮想の電子的リレーであって、無数の常開接点と常閉接点を持っていてユーザのシーケンスプログラムの中に使用することができるものである。また、例えば１２８点の多数の出力リレーは、８進番号Ｙ０００〜Ｙ１７７によって識別され、各出力リレーはプログラマブルコントローラ１００Ａの出力端子に接続された電磁リレーまたはトランジスタまたはトライアック等の１個の出力素子によって外部接続された電気負荷を駆動すると共に、仮想の電子的接点である無数の常開接点と常閉接点を持っていてユーザのシーケンスプログラムの中に使用することができるものである。
【０１０６】
１０進番号で識別される補助リレーＭ００００〜Ｍ８９９９は、仮想の電子的リレーであって、仮想の電子的接点である無数の常開接点と常閉接点を持っていてユーザのシーケンスプログラムの中に使用することができるものである。補助リレーの一部はメーカによって動作が定義された特殊補助リレーであり、例えばＭ８０００はプログラマブルコントローラ１００Ａが運転動作を開始すると自動的に付勢される特殊補助リレーとなっていて、ユーザはその接点情報をシーケンスプログラムの中で利用することができるようになっている。
【０１０７】
１０進番号で識別されるタイマＴ０００〜Ｔ２５５は、１６ビットの設定値レジスタと現在値レジスタと計時出力接点とリセットコイルを備えた仮想の電子的タイマであって、当該タイマがシーケンスプログラムによって駆動されると時間経過にともなってタイムアップ出力を発生し、仮想の電子的出力接点である無数の常開接点と常閉接点をユーザのシーケンスプログラムの中に使用することができるものである。
【０１０８】
１０進番号で識別されるカウンタＣ０００〜Ｃ２５５は、１６ビットの設定値レジスタと現在値レジスタとカウントアップ出力とリセットコイルを備えた仮想のカウンタであって、当該カウンタがシーケンスプログラムによって駆動／停止されるとその駆動回数を計数して、目標回数に達するとカウントアップ出力を発生し、仮想の電子的出力接点である無数の常開接点と常閉接点をユーザのシーケンスプログラムの中に使用することができるものである。したがって、このカウンタはプログラマブルコントローラの演算周期よりも早い動作の入力信号を計数することはできないものとなっている。
【０１０９】
１０進番号で識別されるデータレジスタＤ００００〜Ｄ８９９９は、１６ビットのワードデバイスであり、隣接する２点のデータレジスタを組み合わせて３２ビットのデータを扱うことができるようになっている。データレジスタの一部はメーカによって用途が定義された特殊データレジスタであり、例えばＤ８００５にはバッテリ電圧が格納されていたり、Ｄ８０１０にはスキャンタイムが格納されるようになっている。これ等の多数のデバイスの動作状態や現在値・設定値情報の格納先はデバイス番号に応じてデバイスメモリに割付けられている。なお、前記補助リレー、タイマ、カウンタ、データレジスタにはバッテリバックアップされたものと、バッテリバックアップされていないものとがあって、各デバイス番号の範囲によって区分されている。
【０１１０】
次に、図１の高速カウンタ番号の構成例である図１６について説明する。図１６において、高速カウンタは１相１入力方式でＰＳ入力なし、１相１入力でＰＳ入力付き、１相２入力方式、２相２入力で１逓倍・２逓倍・４逓倍方式のものに大別されていて、各高速カウンタには重複することがない拡張番号ｂｂ＝００〜９６が与えられている。一方、特殊ユニットの入力端子にはＸ＊＊０〜Ｘ＊＊７の番号が与えられているが、この入力番号のうち上２桁の＊＊は当該特殊ユニットの接続位置で定まる配置番号であり、図１を参照すると明らかなとおり、特殊ユニット１３０の場合の第一のポート１１に接続される入力の配置番号＊＊は０１となっている。この配置番号はＣＰＵユニット１１０Ａに近いものから順番に入力８点単位で一つの番号が８進数で採番されている。したがって、特殊ユニット１３０の第一のポート１１に対する入力番号はＸ０１０〜Ｘ０１７となり、下１桁の番号０〜７はチャンネル番号となっている。
【０１１１】
高速カウンタ番号はＣｂｂ＊＊ｎで示されており、例えばＣ２００１０といえば、１相２入力の高速カウンタであり、入力端子Ｘ０１０にはアップ計数信号Ｕが入力され、入力端子Ｘ０１１にはダウン計数信号Ｄが入力されるものであることを示している。なお、拡張番号ｂｂは重複しないようになっているので、高速カウンタ番号Ｃｂｂ＊＊ｎのうちチャンネル番号ｎは記載しなくても、拡張番号ｂｂによって識別されるようになっており、チャンネル番号ｎは参考表記であって厳密にはＣｂｂ＊＊が正式な高速カウンタ番号となっている。
【０１１２】
なお、１相１入力の高速カウンタの場合にはアップまたはダウンの計数方向は高速カンタ命令ＨＳＣの中のプログラムによって指定されるようになっている。図１６の中の符号Ｐは、プリセット指令入力端子がついていることを示しており、例えば高速カウンタＣ１００１０の場合であればＸ０１０が計数入力信号端子であるのに対し、Ｘ０１１はプリセット指令入力端子であり、この入力端子に接続された開閉信号がＯＮすると、高速カウンタＣ１００１０の現在値レジスタに対して、シーケンスプログラムに基づく所定のプリセットデータが転送されることを意味している。
【０１１３】
また、図１６の中の符号Ｓは、計数開始指令入力端子がついていることを示しており、例えば高速カウンタＣ１１０１１の場合であればＸ０１１が計数入力信号端子であるのに対し、Ｘ０１０は計数開始指令入力端子であり、この入力端子に接続された開閉信号がＯＮするまでは高速カウンタＣ１１０１１は計数動作を待機している。これに対し、計数開始指令入力端子Ｓを持たない高速カウンタの場合は、高速カウンタ命令ＨＳＣが実行された時点で計数動作を開始するようになっている。指令端子ＰとＳについてはその他の高速カウンタの場合も同様である。
【０１１４】
拡張番号ｂｂ＝４０〜９６で指定される２相２入力の高速カウンタは、互いに９０度の位相差をもったＡ相・Ｂ相の２相のパルス信号が各計数入力端子に印加され、例えばＢ相信号が論理レベル「Ｌ」から「Ｈ」に変化した時に、Ａ相信号の論理レベルが「Ｈ」であればアップカウントを行い、Ａ相信号の論理レベルが「Ｌ」であればダウンカウントを行うものとなっている。このように、Ｂ相信号の立上り論理変化のみを計数するのは１逓倍方式であるのに対し、Ｂ相信号の立下り論理変化を含めて計数するのが２逓倍方式であり、Ａ相信号の立上りと立下りを含めて計数するのが４逓倍方式となっている。なお、後述の可変フィルタ命令ＲＥＦ、パルス密度測定命令ＦＲＥＱ、パルス幅測定命令ＰＷＤの場合は拡張番号ｂｂは不要となっている。また、高速カウンタ命令ＨＳＣやパルス密度測定命令ＦＲＥＱ、パルス幅測定命令ＰＷＤが適用されていない入力に対して可変フィルタ命令ＲＥＦが適用できるようになっている。
【０１１５】
次に、図１の高速出力番号の構成例である図１７について説明する。図１７において、各種の高速出力命令ＰＬＳ・ＤＲＶ・ＺＲＮが適用される出力には重複することがない拡張番号ｂｂ＝００〜１５が与えられている。一方、特殊ユニットの出力端子にはＹ＊＊０〜Ｙ＊＊７の番号が与えられているが、この出力番号のうち上２桁の＊＊は当該特殊ユニットの接続位置で定まる配置番号であり、図１を参照すると明らかなとおり、特殊ユニット１４０の場合の第二のポート１２に接続される出力の配置番号＊＊は０２となっている。この配置番号はＣＰＵユニット１１０Ａに近いものから順番に出力８点単位で一つの番号が８進数で採番されている。
【０１１６】
したがって、特殊ユニット１４０の第二のポート１２に対する出力番号はＹ０２０〜Ｙ０２７となり、下１桁の番号０〜７はチャンネル番号となっている。高速出力番号はＹｂｂ＊＊ｎで示されており、例えばＹ０２０２２は第一のパルス出力命令ＰＬＳに適用されるものであり、出力端子Ｙ０２２には正転パルス出力ＦＰが出力され、出力端子Ｙ０２３には逆転パルス出力ＲＰが出力されることを意味している。なお、拡張番号ｂｂは重複しないようになっているので、高速出力番号Ｙｂｂ＊＊ｎのうちチャンネル番号ｎは記載しなくても、拡張番号ｂｂによって識別されるようになっており、チャンネル番号ｎは参考表記であって厳密にはＹｂｂ＊＊が正式な高速出力番号となっている。
【０１１７】
図１７の中の符号ＤＩＲは方向信号出力、符号ＦＲＰは可逆パルス出力であり、例えば拡張番号０１の場合であればＹ０２１に可逆パルスが出力され、これを正転パルスとして扱うのか逆転パルスとして扱うのかはＹ０２０から出力された方向信号の論理レベルによって決定するようになっている。図１７の中の符号ＣＬＲはサーボモータを駆動するサーボアンプに対して初期化を指令するクリア信号出力である。図１７の中の符号ＰＷＭはパルス幅変調信号信号出力を発生する出力端子を示している。これ等の出力端子は重複して使用することはできないが、高速出力命令によって占有されていない出力は汎用出力として使用されるようになっている。また、ＰＷＭ出力と汎用出力に対しては拡張番号ｂｂは不要となっている。
【０１１８】
（２）作用・動作の詳細な説明
以上のとおりに構成されたプログラマブルコントローラにおいて、まず、図１８および図１９で示す基本動作説明用フローチャートに基づいて作用動作を詳細に説明する。図１８において、工程９００においてプログラマブルコントローラ１００Ａに電源が投入されると、プログラマブルコントローラ１００Ａの内部では電源投入が検出されて各部の初期化が行われ、続いて工程９０１においてマイクロプロセッサ１１１が動作を開始する。続く工程９０２では図示しない運転／停止指令用のＲＵＮスイッチがＯＮされたかどうかを判定し、ＲＵＮスイッチがＯＮされて運転状態にあればＹＥＳの判定を行って工程９０５（設定異常検出手段）へ移行し、ＲＵＮスイッチがＯＦＦであればＮＯの判定を行って工程９０３へ移行するようになっている。
【０１１９】
工程９０３では外部ツール１０８が接続されてプログラムモードが設定されているかどうかを判定し、プログラムモードであればＹＥＳの判定を行って工程９０４へ移行し、外部ツールが接続されていないか、または接続されていてもモニタモードが設定されているときにはＮＯの判定を行って動作終了工程９１０へ移行するようになっている。工程９０４では外部ツール１０８によってプログラムメモリ１１３Ａに対するシーケンスプログラムの転送が行われてから動作終了工程９１０へ移行する。動作終了工程９１０では他の制御動作を行ってから再び動作開始工程９０１へ移行し、以上の動作を繰返すようになっている。したがって、工程９０２・９０３の判定が共にＮＯであるときには、マイクロプロセッサ１１１は工程９０１・９０２・９０３・９１０・９０１を循環動作していて、工程９０２におけるＲＵＮスイッチがＯＮになるか、または工程９０３がプログラムモードになるのを待っている状態となっている。
【０１２０】
やがて、ＲＵＮスイッチがＯＮにされると、工程９０５では、まずプログラムメモリ１１３Ａ内のプログラムのチェックが行われる。プログラムチェックの中の一つは、カード情報格納メモリ９０００に格納されているカード情報によって、第一および第二のポートに接続されている入出力インタフェース回路の種別を判定し、プログラムメモリ１１３Ａに格納されている特殊ユニットに対応した命令内容が一致しているかどうかを判定するようになっている。その他、図１６および図１７で示された特殊ユニットの入出力が重複使用されていないかどうかを点検し、例えば高速カウンタの拡張番号０１と１０が使用されていると入力Ｘ０１１の重複使用となってエラー検出されるようになっている。続く工程９０６では工程９０５によるプログラムチェックに異常があればＹＥＳの判定を行って工程９０７へ移行し、異常がなければＮＯの判定を行って工程９０８（編成処理手段）へ移行するようになっている。工程９０７では表示器１１７に対する異常報知指令を発生すると共に、運転動作を停止して動作終了工程９１０へ移行するようになっている。
【０１２１】
工程９０８ではプログラムメモリ１１３Ａの内容に基づいて特殊ユニットのパラメータメモリ８０００ｎに対して回路編成情報が送信されると共に、特殊ユニットに対する交信データが格納される転送仲介メモリ１１４ｂの割付編成が行われる。また、回路編成情報を受信した特殊ユニットでは受信したパラメータに基づいて各論理回路部１０００ｎの具体的な回路編成が行われるようになっている。工程９０９ではＲＵＮスイッチがＯＮされているかどうかを再びチェックして、ＲＵＮスイッチがＯＦＦされておればＮＯの判定を行って終了工程９１０へ移行し、ＲＵＮスイッチがＯＮされておればＹＥＳの判定を行って中継端子Ａを介して図１９の工程９１１（入力処理手段）へ移行する。
【０１２２】
図１９において、工程９１１では各入出力ユニット１２０・１３０・１４０に設けられたデータセレクタ１２４・１３４・１４４を順次アクセスして、各入力端子に接続された開閉信号のＯＮ／ＯＦＦ状態をデバイスメモリ１１４ａ内に割り付けられた入力イメージメモリに転送書込みするする。続く工程９１２はプログラムメモリ１１３Ａに格納されているシーケンスプログラムを１命令毎に順次読出し実行するステップである。続く工程９１３は工程９１２で読み出された命令が特殊ユニットのための特殊命令を実行するものであったかどうかを判定し、特殊命令に関するものでなければＮＯの判定を行って工程９２２へ移行し、工程９２２ではシーケンスプログラムの完了を意味するＥＮＤ命令であったかどうかを判定し、ＥＮＤ命令でなければＮＯの判定を行って工程９１２へ復帰移行するようになっている。したがって、特殊命令が使用されていないときには工程９１２・９１３・９２２・９１２の循環動作が行われて一般のシーケンス命令が順次実行されるようになっている。
【０１２３】
しかし、工程９１３の判定がＹＥＳとなって特殊命令が読み出された場合には工程９１４へ移行する。工程９１４では読み出された特殊命令が原点復帰命令ＺＲＮであったかどうかを判定し、原点復帰命令ＺＲＮであればＹＥＳの判定を行って工程９１５ｚへ移行し、原点復帰命令ＺＲＮで無ければＮＯの判定を行って工程９１５ｄへ移行する。工程９１５ｚでは次工程９１６によってフラグＺがセット済であるかどうかを判定し、セット済であればＹＥＳの判定を行って工程９１９ａへ移行し、セット未完であればＮＯの判定を行って工程９１６へ移行する。
【０１２４】
工程９１６では図１４の変形型パルス出力回路１０８０・０または１０８０・４を編成するための回路編成データがパラメータメモリ８０００ｎに送信され、回路編成済フラグＺをセットすると共に、後述の工程９１７でセットされていたフラグＤをリセットしてから工程９１９ａへ移行する。工程９１５ｄでは次工程９１７によってフラグＤがセット済であるかどうかを判定し、セット済であればＹＥＳの判定を行って工程９１９ａへ移行し、セット未完であればＮＯの判定を行って工程９１７へ移行する。工程９１７では図１３の第二のパルス出力回路１０７０・０または１０７０・４を編成するための回路編成データがパラメータメモリ８０００ｎに送信され、回路編成済フラグＤをセットすると共に、前述の工程９１６でセットされていたフラグＺをリセットしてから工程９１９ａへ移行する。
【０１２５】
工程９１９ａでは工程９１２で読み出された特殊命令が動作完了報告を行う形式の特殊命令であるかどうかを判定し、動作完了を報告する形式の特殊命令であればＹＥＳの判定を行って工程９１９ｂへ移行し、完了報告を行わない特殊命令であればＮＯの判定を行って工程９２１へ移行するようになっている。工程９１９ｂでは実行された特殊命令に対する動作完了報告が得られたかどうかを判定し、完了報告が得られておればＹＥＳの判定を行って工程９２１へ移行し、完了報告が得られていなければＮＯの判定を行って工程９２２へ移行するようになっている。工程９２１では読み出された特殊命令に関する新たな設定データを送信してから工程９２２へ移行するようになっている。なお、工程９２１では特殊命令で指定された設定データを特殊ユニットで取り扱いやすいデータに変換してから転送仲介メモリ１１４ｂに転送し、転送仲介メモリ１１４ｂから該当の特殊ユニットに送信されるようになっている。
【０１２６】
例えば、特殊命令が図１２で説明した第一のパルス出力回路１０６０ｍに対する第一のパルス出力命令ＰＬＳであって、この特殊命令によってパルス周波数と発生パルス数とが指定された場合には、工程９２１ではパルス周波数の逆数であるパルス周期に換算して、パルス周期と発生パルス数とが特殊ユニットに送信される。特殊ユニットでは指定されたパルス数の発生が完了したとき報告信号７０６０ｍによって完了報告を行うようになっているので、パルス発生が完了するまでは工程９１９ｂの判定によって工程９２１へは移行せず、新たな設定データが送信されないようになっている。
【０１２７】
このようにして、プログラムメモリ１１３Ａに格納されたシーケンスプログラムが順次実行され、やがてプログラム完了を意味するＥＮＤ命令が読み出されると工程９２２がＹＥＳの判定を行って工程９２３へ移行する。工程９２３では各入出力ユニット１２０・１３０・１４０に設けられたラッチメモリ１２５・１３５・１４５を順次アクセスして、デバイスメモリ１１４ａ内に割り付けられた出力イメージメモリの内容を各ラッチメモリに順次転送書込みするする。但し、特殊ユニットにおいて特殊命令が適用されている出力に対しては出力イメージメモリの内容をＯＦＦにしておく必要がある。
【０１２８】
工程９２３による出力処理が完了すると工程９２４へ移行して、再びＲＵＮスイッチがＯＮされていることを確認した上で工程９１１へ復帰して、以下同様に入力処理・シーケンス処理・出力処理を循環実行するようになっている。なお、プログラマブルコントローラには入力処理と出力処理とをシーケンス処理の前後で一括処理する方式のものと、シーケンス処理の過程で適時に入力情報を直接読出しを行ったり、直接出力処理を行う方式のものがあり、ここでは便宜上一括処理方式で説明するが、直接処理方式のものであってもよい。以上の動作フローにおいて、工程９０５は設定異常検出手段、工程９０８は編成処理手段、工程９１１は入力処理手段、工程９１４から工程９１７で構成された工程ブロック９１８はパラメータ変更手段、工程９１９ａ・９１９ｂで構成された工程ブロック９２０は転送禁止手段、工程９２１はデータ変換・転送手段、工程９２３は出力処理手段となるステップとなるものである。
【０１２９】
次に、図１の一般的なシーケンス制御回路図である図２０について説明する。図２０において、（Ａ）と（Ｊ）は図１９における工程９１１と工程９２３に相当しており、この入出力処理はシステムメモリ１１２Ａの中の制御プログラムによって実行されるものであって、ユーザはプログラムを行う必要がない。図２０において、（Ｂ）から（Ｈ）は図１９における工程９１２のシーケンス処理に相当しており、（Ｈ）はシーケンスプログラムの終了を示すＥＮＤ命令となっている。
【０１３０】
（Ｂ）は入力リレーＸ０００とＸ００１が共にＯＮしているときに補助リレーＭ００００を駆動する回路ブロックであり、常開接点の演算開始命令ＬＤと直列接点命令ＡＮＤと、コイル駆動命令ＯＵＴが使用されている。（Ｃ）は入力リレーＸ００２が不作動であるか、または補助リレーＭ００００が作動していて、しかも入力リレーＸ００３が不作動であるときに補助リレーＭ０００１が駆動されると共に、補助リレーＭ０００２を自己保持駆動する回路ブロックであり、常閉接点の演算開始命令ＬＤＩと、並列接点命令ＯＲと、常閉接点の直列接点命令ＡＮＩと、コイル駆動命令ＯＵＴと自己保持駆動命令ＳＥＴが使用されている。なお、コイル駆動命令ＯＵＴの場合には当該コイルを駆動する接点が閉路しておれば付勢駆動され、開路しておれば消勢されることになるが、自己保持駆動命令ＳＥＴの場合は一旦駆動されると駆動回路が開路しても動作状態が保持される命令となっている。
【０１３１】
（Ｄ）は補助リレーＭ０００１が駆動されているか、入力リレーＸ００４が不作動である場合にタイマＴ０００を駆動すると共に、補助リレーＭ０００２の自己保持を解除する回路ブロックであり、常開接点の演算開始命令ＬＤと、常閉接点の並列接点命令ＯＲＩと、コイル駆動命令ＯＵＴと、自己保持解除命令ＲＳＴとが使用されている。なお、タイマに対する駆動命令ＯＵＴに対しては遅延動作時間を設定するためのオペランドが付随しており、Ｋ１００は例えば１００秒の意味であるが、タイマの番号範囲によっては計時単位が異なっていて、例えばｍｓｅｃ単位で設定するタイマもある。
【０１３２】
（Ｅ）はタイマＴ０００が駆動されて所定時間後に遅延動作接点Ｔ０００が閉路されると出力リレーＹ０００を駆動する回路ブロックであり、ＬＤ命令とＯＵＴ命令とが使用されている。（Ｆ）は入力リレーＸ０００によってカウンタＣ０００を駆動する回路ブロックであり、ＬＤ命令とＯＵＴ命令が使用され、カウンタの駆動命令ＯＵＴに対しては目標動作回数Ｋがオペランドとして付随している。
【０１３３】
なお、（Ｆ）の回路ブロックで示されたカウンタＣ０００は入力リレーＸ０００の開閉動作回数を計数して目標値１０回に達すると出力接点Ｃ０００が閉路することを意味している。したがって、入力リレーＸ０００がプログラマブルコントローラ１００Ａの演算周期よりも短い時間の周期で開閉動作した場合には計数動作は行われないことになる。（Ｇ）は入力リレーＸ００１が動作するとカウンタＣ０００をリセットする回路ブロックであり、ＬＤ命令とＲＳＴ命令が使用されている。カウンタに対するＲＳＴ命令はカウンタの出力接点の動作を解除すると共に、カウンタの計数現在値をリセットするものとなっている。
【０１３４】
プログラムメモリ１１３Ａに格納されているシーケンスプログラムを順次実行してサイクリック演算を行う演算周期は命令内容や命令の使用個数によって千差万別であるが、一般には例えば１０〜１００ｍｓｅｃ程度のものである。また、入力信号端子にはノイズによる誤動作を避けるために、ノイズフィルタによって例えば１０ｍs程度の応答遅延時間が設けられている。したがって、例えば図２０に示す（Ｆ）で示したカウンタＣ０００の場合であれば、演算周期が１０ｍｓｅｃであったとしても２０ｍｓｅｃ以上のＯＮ幅とＯＦＦ幅時間が無ければ正確な計数動作が行えないので、計数可能な周波数は２５Ｈｚ以下であることになる。また、シーケンスプログラムによってパルス信号を出力する場合には、演算周期が１０ｍｓｅｃであれば５０Ｈｚ以上の高速パルスは出力できないことになる。これに対し、以下で説明する高速カウンタや高速パルス出力は例えば１００ＫＨｚ以下のパルス信号を扱うことを念頭においたものとなっている。
【０１３５】
次に、可変フィルタ命令ＲＥＦとパルス密度測定命令ＦＲＥＱとエッジ検出命令ＥＤＧＥの使用例である図２１および図２２について説明する。図２１において、（Ａ）は特殊補助リレーＭ８０００が閉路したときに、特殊ユニット１３０の入力Ｘ０１０に対して可変フィルタ命令ＲＥＦを適用して、フィルタ定数をＫ５（５ｍｓｅｃ）に設定して補助リレーＭ００１０を駆動しようとする回路ブロックとなっている。なお、特殊補助リレーＭ８０００はプログラマブルコントローラ１００ＡのＲＵＮスイッチがＯＮしているときには自動的に付勢される補助リレーとなっている。したがって、（Ｂ)で示すように特殊ユニット１３０に接続された開閉センサＸ０１０がＯＮ／ＯＦＦ動作した場合に、図５の報告ビットメモリ７０００ｎ（この事例ではｎ＝０になっている）に格納される入力信号は、（Ｃ）で示すとおり５ｍｓｅｃの応答遅延が発生し、開閉センサＸ０１０が短時間のＯＮ動作を行っても、報告信号Ｍ００１０は認知されない状態となる。
【０１３６】
なお、報告ビットメモリ７０００ｎに基づく報告信号７０１０ｎはＲＥＦ命令が実行された時点でデバイスメモリ１１４ａの補助リレーＭ００１０へ転送されるようになっている。ＲＥＦ命令の第二オペランドでは目標とする応答遅延時間として、例えば１〜６３ｍｓｅｃが設定できるようになっているが、図５で示された共通クロック回路９００１のクロック信号の周期τは例えば１μｓｅｃであり、応答遅延時間として１ｍｓｅｃを得るための可逆カウンタ２０００ｎの上限設定値は１０００となる。したがって、マイクロプロセッサ１１１は応答遅延時間５ｍｓｅｃを得るためには転送仲介メモリ１１４ｂに対して１０００倍の数値５０００を換算転送し、この値が設定データ３０１０ｎとして第一の設定レジスタ３００１ｎに転送されるようになっている。
【０１３７】
（Ｄ）は入力リレーＸ００１が動作したときに、特殊ユニット１３０の入力信号Ｘ０１１のパルス密度を測定して、データレジスタＤ０１００へ転送する回路ブロックとなっている。（Ｅ）は入力信号Ｘ０１１のパルス列を示している。（Ｆ）は図６で示されたパルス密度測定回路１０２０ｎ（この事例ではｎ＝１となっている）における可逆カウンタ２０００ｎの現在値レジスタ４００１ｎの計数現在値の変化を示したものとなっている。（Ｇ）は共通トリガ回路９００２の出力特性を示したものであり、周期Ｔ０ごとに可逆カウンタ２０００ｎの計数現在値をピークホールドレジスタ４００２ｎへ転送してから、現在値レジスタ４００１ｎをリセットするようになっている。
【０１３８】
したがって、演算データ４０２０ｎによってデータレジスタＤ０１００に転送されるピークホールドレジスタ４００２ｎの値は周期Ｔ０期間における入力信号Ｘ０１１の動作回数を示すことになる。但し、トリガ信号の周期Ｔ０が例えば１０ｍｓｅｃである場合には、転送仲介メモリ１１４ｂに転送されたピークホールドレジスタ４００２ｎの値は１００倍されてデータレジスタＤ０１００に換算転送されるようになっていて、最終的には入力信号Ｘ０１１の１秒当たりの開閉周波数Ｈｚが得られるようになっている。
【０１３９】
図２２において、（Ａ）は入力リレーＸ００２が作動したときにエッジ検出命令ＥＤＧＥを駆動する回路ブロックを示している。エッジ検出命令ＥＤＧＥの第一オペランドには対象入力として特殊ユニット１３０の入力Ｘ０１２が指定され、第二オペランドには検出結果を格納する補助リレーの先頭番号が指定されていて、この事例であれば入力Ｘ０１２がＯＦＦからＯＮに変化した立上り検出結果が補助リレーＭ００３０に格納され、入力Ｘ０１２がＯＮからＯＦＦに変化した立下り検出結果が補助リレーＭ００３１に格納されるようになっている。（Ｂ)は立上り検出時に動作する補助リレーＭ００３０によって補助リレーＭ００４０を自己保持駆動する回路ブロックである。（Ｃ)は立下り検出時に動作する補助リレーＭ００３１によって補助リレーＭ００４１を自己保持駆動する回路ブロックである。（Ｄ)は補助リレーＭ００４０によって補助リレーＭ００３０をリセットして立上り検出を解除する回路ブロックである。（Ｅ)は補助リレーＭ００４１によって補助リレーＭ００３１をリセットして立下り検出を解除する回路ブロックである。なお、エッジ検出命令ＥＤＧＥはマイクロプロセッサ１１１の演算周期よりも短いパルス入力の有無を検出するのに適した命令となっている。
【０１４０】
次に、高速カウンタ命令ＨＳＣと高速比較命令ＨＣＭＰとパルス幅測定命令ＰＷＤの使用例である図２３について説明する。図２３において、（Ａ）は入力リレーＸ００５が動作したときに、高速カウンタ命令ＨＳＣによって高速カウンタＣ２４０１４が動作し、高速比較命令ＨＣＭＰによって高速比較一致出力を得る回路ブロックとなっている。ここで使用されたＨＳＣ命令やＨＣＭＰ命令の第一オペランドで指定された高速カウンタＣ２４０１４は、図１６の拡張番号ｂｂ＝２４となっているので、この高速カウンタは特殊ユニット１３０の入力信号Ｘ０１４によってアップ計数し、入力信号Ｘ０１５によってダウン計数する高速カウンタとなっている。
【０１４１】
ＨＳＣ命令の第二オペランドでは図１０の可逆カウンタ２０００ｍ（この事例でなｍ＝４となっている）の第一の設定レジスタ３００１ｍに格納する上限数値がＫ３０００として直接指定されている。この上限数値の設定はデータレジスタを用いた間接設定であってもよく、この場合には上限数値が書込まれたデータレジスタの番号が第二オペランドで指定されるようになっている。
【０１４２】
なお、第一オペランドで指定された高速カウンタの番号が図１６の拡張番号ｂｂ＝００〜１９となる１相１入力カウンタである場合には、ＨＳＣ命令に第三オペランドが付随し、ここでアップ／ダウンの方向を指示する補助リレー番号が指定されるようになっている。図の例であれば、補助リレーＭ８９１０がＯＮするとアップカウント、ＯＦＦするとダウンカウントを行うようになっている。
【０１４３】
ＨＣＭＰ命令の第二オペランドには、図１０の第二の設定レジスタ３００２ｍに転送される中間設定値が格納されている。図の場合では中間設定値が格納されているデータレジスタ番号Ｄ０１５０によって間接設定されている。高速カウンタＣ２４０１４の計数現在値が中間設定値を上昇通過すると比較一致出力Ｙ０１４が動作すると共に、第三オペランドで指定された補助リレーＭ８９２０がＯＮ動作するようになっている。
【０１４４】
（Ｂ）は高速カウンタＣ２４０１４のカウントアップ出力によって出力リレーＹ０００を駆動する回路ブロックを示している。（Ｃ）は図示しない他のシーケンスによって制御されている補助リレーＭ００２１が動作すると、高速カウンタＣ２４０１４をリセットする回路ブロックを示しており、これにより図１０の可逆カウンタ２０００ｍの現在値レジスタ４００１ｍの値はゼロとなり、出力接点Ｃ２４０１４もＯＦＦとなる。
【０１４５】
（Ｄ）はＨＣＭＰ命令によって高速カウンタＣ２４０１４の上昇比較一致出力Ｐが作動したときに動作する補助リレーＭ８９２０によって補助リレーＭ００２０を自己保持駆動する回路ブロックが示されている。（Ｅ）は補助リレーＭ００２０が動作したことに伴って、上昇比較一致出力Ｐによって駆動された補助リレーＭ８９２０の自己保持解除を行う回路ブロックを示しており、自己保持解除が行われると補助リレーＭ８９２０は不作動になると共に上昇比較一致出力Ｐもリセットされる。
【０１４６】
（Ｆ１）は運転中に常時駆動されている特殊補助リレーＭ８０００によって駆動されるパルス幅測定命令ＰＷＤを示した回路ブロックである。ＰＷＤ命令の第一オペランドではパルス幅測定の対象となる入力端子番号が指定される。この事例では入出力ユニット１３０の入力Ｘ０１３が指定されている。第二オペランドでは測定時間幅が格納されるデータレジスタ番号を指定し、第三オペランドでは測定完了報告信号によって動作する補助リレー番号が指定されている。
【０１４７】
この事例であれば、図７のパルス幅測定回路１０２２ｎ（この事例ではｎ＝３）において、チャンネル端子１１ｎに接続された入力信号Ｘ０１３が論理レベル「Ｈ」になると、可逆カウンタ２０００ｎは周期τ＝１μｓｅｃのクロック信号を計数し、入力信号Ｘ０１３が論理レベル「Ｌ」に変化した時点の計測時間がピークホールドレジスタ４００２ｎに格納される。計測結果は演算データ４０２２ｎによってマイクロプロセッサ１１１へ送信されてデータレジスタＤ０２６０に格納され、測定完了情報は報告信号７０２２ｎによって送信されて補助リレーＭ８９５０が駆動される。（Ｆ２）において、除算命令ＤＩＶによってデータレジスタＤ０２６０の逆数演算結果を１０００倍した値がデータレジスタＤ０２６１に格納されている。
【０１４８】
（Ｆ３）によって補助リレーＭ８９５０を自分自身の接点Ｍ８９５０によてリセットすると、指令信号６０２２ｎによって指令ラッチメモリ６０００ｎに送信され、記憶回路６３がリセットされて再度パルス幅の測定が開始する。論理回路部とマイクロプロセッサ間のデータ交信は、特殊命令が実行された時点で行われるので、測定したいパルス幅がマイクロプロセッサの演算周期よりも長時間であれば、マイクロプロセッサの複数サイクルの動作によってパルス幅が測定されることになる。これに対し、測定したいパルス幅がマイクロプロセッサの演算周期よりも短時間であれば、マイクロプロセッサの各演算サイクル毎にパルス幅が更新測定されることになる。
【０１４９】
次に、第一のパルス出力命令ＰＬＳの使用例である図２４について説明する。図２４において、（Ｆ）は図示しない他のシーケンスによって動作する補助リレーＭ００００が動作したときに駆動される第一のパルス出力命令ＰＬＳの回路ブロックを示している。このＰＬＳ命令の第一オペランドで指定された高速出力Ｙ０６０２６は、図１７の拡張番号ｂｂ＝０６が使用されているので出力端子Ｙ０２６から正転パルス出力ＦＰを発生し、隣接出力端子Ｙ０２７から逆転パルスＲＰを発生するものとなっている。
【０１５０】
ＰＬＳ命令の第二オペランドで指定されたデータレジスタＤ０２００は、各種設定データの先頭データレジスタ番号を示しており、一対のデータレジスタ（Ｄ０２０１・Ｄ０２００）によって３２ビットの目標パルス発生数を指定し、続くデータレジスタＤ０２０２によって低速パルスの発生数を指定し、続くデータレジスタＤ０２０３によって高速運転の発生パルスの周期をμｓｅｃの単位で指定し、続くデータレジスタＤ０２０４によって低速運転の発生パルスの周期をμｓｅｃの単位で指定するようになっている。
【０１５１】
これ等の設定値は図１２における設定データ３０６０ｍ（この事例ではｍ＝６）によって第一の設定レジスタ３００１・７（目標移動パルス発生数の１／２）と第二の設定レジスタ３００２・７（低速移動パルス数）、および第一の設定レジスタ３００１・６（低速パルス周期）と第二の設定レジスタ３００２・６（高速パルス周期）として送信され、指令信号６０６０・６によって回転方向指令が送信されるようになっている。
【０１５２】
但し、第一の設定レジスタ３００１・６と第二の設定レジスタ３００２・６にはデータレジスタＤ０２０３とＤ０２０４によって指定された目標周期の半分の値が転送仲介メモリ１１４ｂを介して転送され、第一の設定レジスタ３２０１・７にはデータレジスタ（Ｄ０２０１・Ｄ０２００）によって指定された目標移動パルス数の半分の値が転送仲介メモリ１１４ｂを介して転送されるようになっている。その結果、図１２の交番出力回路８４の出力パルスの周期はデータレジスタＤ０２０３またはＤ０２０４によって指定された目標周期に等しくなるようになっている。なお、データレジスタ（Ｄ０２０１・Ｄ０２００）の内容が正の値であれば前進正転パルスを発生し、負の値であれば後退逆転パルスを発生することになっているが、第一の設定レジスタ３００１・７には常に絶対値が転送され、回転方向は指令信号６０６０・６によって指令されるようになっている。
【０１５３】
ＰＬＳ命令の第三オペランドで指定された補助リレーＭ８９２０は、各種指令信号・報告信号の先頭補助リレー番号となっており、Ｍ８９２０は強制停止指令、続くＭ８９２１は正転限界停止指令、続くＭ８９２２は逆転限界停止指令、続くＭ８９２３はパルス出力完了報告となっている。なお、データレジスタＤ０２０４に続くデータレジスタＤ０２０５に単位換算定数を格納し、データレジスタ（Ｄ０２０１・Ｄ０２００）には目標パルス発生数に替わって目標移動量（例えばｍｍ単位）を指定し、これに単位換算定数を掛けると目標とする発生パルス数が得られるようにしておくこともできる。
【０１５４】
図２４において、（Ａ）は運転開始時に１演算周期だけＯＮしている特殊補助リレーＭ８００２と、パルス出力完了信号となる補助リレーＭ８９２３とによって駆動される３２ビット転送命令ＤＭＯＶと１６ビット転送命令ＭＯＶ、および転送確認用の補助リレーＭ８０１０を駆動する回路ブロックを示している。ＤＭＯＶ命令では第一オペランドで指定された定数Ｋ４００００を、第二オペランドで指定されたデータレジスタを下位とする一対のデータレジスタ（Ｄ０２０１・Ｄ０２００）へ転送するようになっている。
【０１５５】
ＭＯＶ命令では第一オペランドで指定された定数Ｋ５０００を第二オペランドで指定されたデータレジスタＤ０２０２に転送するようになっている。次のＭＯＶ命令では第一オペランドで指定された定数Ｋ５０を第二オペランドで指定されたデータレジスタＤ０２０３に転送するようになっている。次のＭＯＶ命令では第一オペランドで指定された定数Ｋ１００を第二オペランドで指定されたデータレジスタＤ０２０４に転送するようになっている。したがって、発生パルスの高速周期は５０μｓ（パルス周波数では２０ＫＨｚ）、低速周期は１００μｓ（パルス周波数では１０ＫＨｚ）のパルスを発生し、低速パルス数は５、０００パルス、発生パルスの総数は４０、０００パルスとなっている。なお、定数Ｋによる直接設定によらないで、データレジスタ番号を指定する間接設定方式にすれば、運転中においてこれ等の設定値を変更することができるものである。
【０１５６】
（Ｂ）は入力リレーＸ０００が動作すると強制停止指令となる補助リレーＭ８９２０が駆動される回路ブロックを示している。（Ｃ）は入力リレーＸ００１が動作すると、正転限界停止指令となる補助リレーＭ８９２１が駆動されるとともに、一対のデータレジスタ（Ｄ０２２１・Ｄ０２２０）に対して定数Ｋ８００００を転送書込みする３２ビット転送命令ＤＭＯＶが駆動される回路ブロックとなっている。（Ｄ）は入力リレーＸ００２が動作すると、逆転限界停止指令となる補助リレーＭ８９２２が駆動されるとともに、一対のデータレジスタ（Ｄ０２２１・Ｄ０２２０）に対して定数Ｋ２００を転送書込みする３２ビット転送命令ＤＭＯＶが駆動される回路ブロックとなっている。
【０１５７】
（Ｅ）は（Ａ）の回路ブロックで駆動された補助リレーＭ８０１０によって、パルス出力完了で動作していた補助リレーＭ８９２３をリセットする回路ブロックとなっている。したがって、（Ｆ）において補助リレーＭ００００が閉路しておれば、第一のパルス命令ＰＬＳが実行されて、図１２の設定データ３０６０・６や指令信号６０６０・６が第一のパルス出力回路１０６０・６へ送信され、パルス出力完了信号がリセットされて第一の設定レジスタ３００１・６、３００１・７と第二の設定レジスタ・３００２・６・３００２・７に対する定数設定が行われる。
【０１５８】
（Ｇ）は図示しないシーケンス回路によって駆動される補助リレーＭ０００１によって、現在位置読出命令ＤＣＶＲＤを駆動する回路ブロックを示している。ＤＣＶＲＤ命令の第一オペランドでは高速パルス出力番号Ｙ０６０２６が指定され、第二オペランドでは３２ビットデータを扱う一対のデータレジスタ（Ｄ０２２１・Ｄ０２２０）の下位のデータレジスタ番号が指定されている。ＤＣＶＲＤ命令が実行されると、図１２の現在値レジスタ４００１・７の値が転送仲介メモリ１１４ｂに読み出され、その値が移動方向と上昇比較一致出力Ｐの作動状態、カウントアップ出力Ｑの作動状態、下降比較一致出力Ｐの作動状態、復帰出力Ｑの作動状態に応じた移動発生パルス数に換算されて、データレジスタ（Ｄ０２２１・Ｄ０２２０）に代数加算されるようになっている。データレジスタ（Ｄ０２２１・Ｄ０２２０）には、（Ｃ）または（Ｄ）で示したとおり、正転限界位置または逆転限界位置で所定の現在位置が転送書込みされているので、これ等の基準位置に基づいた絶対位置情報が得られることになる。
【０１５９】
次に、第二のパルス出力命令ＤＲＶの使用例である図２５と、加減速速度パターンを示す特性線図である図２６について説明する。図２５において、（Ｆ）は図示しない他のシーケンスによって動作する補助リレーＭ００００が動作したときに駆動される第二のパルス出力命令ＤＲＶの回路ブロックを示している。このＤＲＶ命令の第一オペランドで指定された高速出力Ｙ１００２０は、図１７の拡張番号ｂｂ＝１０が使用されているので出力端子Ｙ０２０から正転パルス出力ＦＰを発生し、隣接出力端子Ｙ０２１から逆転パルスＲＰを発生し、後述の原点復帰命令ＺＲＮが使用されたときには隣接出力端子Ｙ０２２からクリア信号ＣＬＲを発生するものとなっている。
【０１６０】
ＤＲＶ命令の第二オペランドで指定されたデータレジスタＤ０３００は、各種設定データの先頭データレジスタ番号を示しており、その設定内容は、（Ａ１）〜（Ａ４）によって説明する。ＤＲＶ命令の第三オペランドで指定された補助リレーＭ８９４０は、各種指令信号・報告信号の先頭補助リレー番号となっており、Ｍ８９４０は強制停止指令、続くＭ８９４１は正転限界停止指令、続くＭ８９４２は逆転限界停止指令、続くＭ８９４３はパルス出力完了報告となっている。
【０１６１】
図２５において、（Ａ１）〜（Ａ５）は運転開始時に１演算周期だけＯＮしている特殊補助リレーＭ８００２と、パルス出力完了信号となる補助リレーＭ８９４３とによって駆動される各種の転送命令と転送確認用の補助リレーＭ８０４０を駆動する回路ブロックを示している。最初の転送命令ＤＭＯＶは一対のデータレジスタ（Ｄ０３０１・Ｄ０３００）に対して目標運転速度をパルス周波数Ｈｚの単位で書込むものであり、ここでは定数Ｋ５００００によって５０ＫＨｚが指定されている。次の転送命令ＭＯＶはデータレジスタＤ０３０２に対して初速運転速度をパルス周波数Ｈｚの単位で書込むものであり、ここでは定数Ｋ１００００によって１０ＫＨｚが指定されている。続く転送命令ＭＯＶはデータレジスタＤ０３０３に対しては、図２６で示す周波数の増分値Δｆ＝１０２４Ｈｚとしたときの加減速時間Δｔ（μｓｅｃ）を書込むものであり、ここでは定数Ｋ１００００によって１０ｍｓｅｃが設定されている。
【０１６２】
したがって、初速から目標運転速度に到達するまでの時間は１０×（５０−１０）／１.０２４＝３９０.６ｍｓｅｃとなっている。次の転送命令ＤＭＯＶは一対のデータレジスタ（Ｄ０３０５・Ｄ０３０４）に対して目標移動量を発生パルス数の単位で書込むものであり、移動方向に応じて正負の値が設定される。ここでは正の定数Ｋ２０００００によって２０万パルス分の正転動作を行うようになっている。続く補助リレーＭ８０４０は転送確認を行うものとなっている。
【０１６３】
（Ｂ）は入力リレーＸ０００が動作すると強制停止指令となる補助リレーＭ８９４０が駆動される回路ブロックを示している。（Ｃ）は入力リレーＸ００１が動作すると、正転限界停止指令となる補助リレーＭ８９４１が駆動される回路ブロックとなっている。（Ｄ）は入力リレーＸ００２が動作すると、逆転限界停止指令となる補助リレーＭ８９４２が駆動される回路ブロックとなっている。（Ｅ）は（Ａ５）の回路ブロックで駆動された補助リレーＭ８０４０によって、パルス出力完了で動作していた補助リレーＭ８９４３をリセットする回路ブロックとなっている。（Ａ１）〜（Ａ４）による設定値や（Ｂ）〜（Ｅ）による指令は、（Ｆ）で第二のパルス出力命令ＤＲＶが実行された時点で、転送仲介メモリ１１４ｂを介して図１３で示された第二のパルス出力回路１０７０・０の各部に転送される。
【０１６４】
但し、第二のパルス出力回路１０７０・０に転送されるデータは、図２６で示す運転速度パターンに対応して、マイクロプロセッサ１１１によって予め減速開始位置が算出されている。この事例であれば運転速度５０ＫＨｚから減速完了するまでの時間は５０×１０ｍｓｅｃ＝０.５秒であるから、この間の発生パルス数はΔＮ＝５０×１０３×０.５／２＝１２５００パルスとなる。したがって、減速開始点までのパルス発生数は２００、０００−１２、５００＝１８７、５００パルスとなる。
【０１６５】
図１３における初段の可逆カウンタ２０００・０の第一の設定レジスタ３００１・０には、データレジスタＤ０３０３に格納された加減速時間１００００μｓｅｃの半分の値である５０００が格納される。その結果、交番出力回路９７の出力信号の周期は目標とする１００００μｓｅｃ＝１０ｍｓｅｃとなっている。次段の可逆カウンタ２０００・１の第一の設定レジスタ３００１・１にはデータレジスタ（Ｄ０３０１・Ｄ０３００）に格納された目標運転速度５０、０００が書込まれ、第二の設定レジスタ３００２・１と現在値レジスタ４００１・１にはデータレジスタＤ０３０２に格納された初速１０、０００が書込まれ、変分値レジスタ４００３・１には図２６の増減周波数Δｆ＝１、０２４が書込まれる。
【０１６６】
その結果、運転速度パターンとしては初速１０ＫＨｚから１０ｍｓｅｃ当たり約１ＫＨｚの割合で目標運転速度５０ＫＨｚまで上昇し、この時点でカウントアップ出力Ｑが作動して現在値レジスタ４００１・１の増加が停止する。なお、増減周波数をΔｆ＝１、０２４としているのは、現在値レジスタ４１０１・１に対するバイナリ加算が容易となる数値を選択しているためであり、Δｆ＝１、０００であっても差し支えはない。終段前の可逆カウンタ２０００・２の第一の設定レジスタ３００１・２には、例えば最大運転速度１００ＫＨｚの５倍に相当する係数＝５００、０００が格納されている。その結果、変分値レジスタ４００３・２に目標運転速度５０ＫＨｚに相当した５０、０００が格納されている場合には、カウントアップ出力Ｑが作動するまでには１０カウントを行う必要がある。
【０１６７】
可逆カウンタ２０００・２の計数入力信号の周期はτ＝１μであるから、交番出力回路４７の出力パルスの周期は２０μｓｅｃとなり、これが目標とする運転速度の周波数５０ＫＨｚと合致するようになっている。終段の可逆カウンタ２０００・３の第一の設定レジスタ３００１・３には、データレジスタ（Ｄ０３０５・Ｄ０３０４）に格納された目標移動量に相当するパルス発生数Ｎ＝２００、０００が書込まれ、第二の設定レジスタ３００２・３には減速開始点までの発生パルス数１８７、５００パルスが書込まれ、回転方向は指令信号６０７０・０によって指令ラッチメモリ６０００・０へ送信される。
【０１６８】
その結果、出力パルスの発生数を計数している可逆カウンタ２０００・３の計数現在値が減速開始点までの発生パルス数に達すると上昇比較一致出力Ｐが作動して、論理和素子９５ａとゲート素子９５ｂを介して可逆カウンタ２０００・１に対して減算開始指令を供給する。可逆カウンタ２０００・１は１０ｍｓｅｃ当たり約１ＫＨｚ分の減算を開始し、やがて第二の設定レジスタ３００２・１に格納されている初速に達すると下降比較一致出力Ｐが作動(論理レベル「Ｈ」）し、ゲート素子９５ｂを介して減算動作を停止し、速度パターンとしては初速値を維持するようになる。
【０１６９】
可逆カウンタ２０００・３の計数現在値が目標移動量に達するとカウントアップ出力Ｑが作動し、完了報告信号が送信されると共に各可逆カウンタの動作が停止するようになっている。なお、図２５における（Ａ１）〜（Ａ４）において、定数Ｋによる直接設定によらないでデータレジスタ番号を指定する間接設定方式にすれば、運転中においてこれ等の設定値を変更することができるものである。ただし、各可逆カウンタの動作中においては論理回路部への転送は行われず、動作完了を待ってから次の設定が有効となるものである。また、補助リレーＭ８９４０・Ｍ８９４１・Ｍ８９４２による停止指令は、ＤＲＶ命令が実行された時点で有効となり、指令信号６０７０・０によって指令ラッチメモリ６０００・０に送信されて、各可逆カウンタは動作停止する。補助リレーＭ８９４０・Ｍ８９４１・Ｍ８９４２が駆動解除されると、ＤＲＶ命令が実行された時点で停止指令が解除され、指令信号６０７０・０によって指令ラッチメモリ６０００・０に送信されて、各可逆カウンタは動作を開始するようになっている。
【０１７０】
図２５において、（Ｇ）は図示しないシーケンス回路によって駆動される補助リレーＭ０００１によって、現在位置読出命令ＤＣＶＲＤを駆動する回路ブロックを示している。ＤＣＶＲＤ命令の第一オペランドでは高速パルス出力番号Ｙ１００２０が指定され、第二オペランドでは３２ビットデータを扱う一対のデータレジスタ（Ｄ０３２１・Ｄ０３２０）の下位のデータレジスタ番号が指定されている。ＤＣＶＲＤ命令が実行されると、図１３の現在値レジスタ４００１・３の値が転送仲介メモリ１１４ｂに読み出され、その値が移動方向に応じてデータレジスタ（Ｄ０３２１・Ｄ０３２０）に代数加算されるようになっている。データレジスタ（Ｄ０３２１・Ｄ０３２０）には後述の図２７における（Ｆ）で示すとおり、原点位置の座標値が転送書込みされているので、この基準位置に基づいた絶対位置情報が得られることになる。
【０１７１】
図２５において、（Ｈ）は図示しないシーケンス回路によって駆動される補助リレーＭ００００によって、第三のパルス出力命令ＡＢＳを駆動した場合の回路ブロックを示している。このＡＢＳ命令の第一オペランドで指定された高速出力Ｙ１００２０は、図１７の拡張番号ｂｂ＝１０が使用されているので出力端子Ｙ０２０から正転パルス出力ＦＰを発生し、隣接出力端子Ｙ０２１から逆転パルスＲＰを発生し、後述の原点復帰命令ＺＲＮが使用されたときには隣接出力端子Ｙ０２２からクリア信号ＣＬＲを発生するものとなっている。ＡＢＳ命令の第二オペランドで指定されたデータレジスタＤ０３００は、各種設定データの先頭データレジスタ番号を示しており、その設定内容は、図２５における（Ａ１）〜（Ａ４）によって説明したとおりである。但し、（Ａ４)で設定される目標移動量の替わりにＡＢＳ命令の場合には、目標移動位置が指定されるようになっており、図１３の可逆カウンタ２０００・３の第一の設定レジスタ３００１・３に対しては、当該目標移動位置とデータレジスタ（Ｄ０３２１・Ｄ０３２０）で記憶されている現在位置との偏差に基づいて目標移動量が設定され、指令信号によって回転方向指令が送信されるようになっている。
【０１７２】
ＡＢＳ命令の第三オペランドで指定された補助リレーＭ８９４０は、各種指令信号・報告信号の先頭補助リレー番号となっており、Ｍ８９４０は強制停止指令、続くＭ８９４１は正転限界停止指令、続くＭ８９４２は逆転限界停止指令、続くＭ８９４３はパルス出力完了報告となっている。ＡＢＳ命令の第一オペランドが図１７の拡張番号００〜０７である場合には、第一のパルス出力命令ＰＬＳに対する代替命令となり、この場合も目標移動量の替わりに目標移動位置が設定されるようになっている。
【０１７３】
次に、原点復帰命令ＺＲＮの使用例である図２７と、原点復帰動作を示す特性線図である図２８について説明する。図２７において、（Ｈ）は（Ａ５）における入力リレーＸ００３が動作したときに駆動される補助リレーＭ８０４１を介して駆動される原点復帰命令ＺＲＮの回路ブロックを示している。このＺＲＮ命令の第一オペランドで指定された高速出力Ｙ１００２０は、図１７の拡張番号ｂｂ＝１０が使用されているので出力端子Ｙ０２０から正転パルス出力ＦＰを発生し、隣接出力端子Ｙ０２１から逆転パルスＲＰを発生し、隣接出力端子Ｙ０２２からクリア信号ＣＬＲを発生するものとなっている。ＺＲＮ命令の第二オペランドで指定されたデータレジスタＤ０４００は、各種設定データの先頭データレジスタ番号を示しており、その設定内容は図２７における（Ａ１）〜（Ａ４）によって説明する。ＺＲＮ命令の第三オペランドで指定された補助リレーＭ８９４０は、各種指令信号・報告信号の先頭補助リレー番号となっており、Ｍ８９４０は強制停止指令、続くＭ８９４１は正転限界停止指令、続くＭ８９４２は逆転限界停止指令、続くＭ８９４３は原点出し完了報告、続くＭ８９４４は原点復帰方向指令信号となっている。
【０１７４】
図２７において、（Ａ１）〜（Ａ５）は入力リレーＸ００３によって駆動される各種の転送命令と転送確認用の補助リレーＭ８０４１を駆動する回路ブロックを示している。最初の転送命令ＤＭＯＶは一対のデータレジスタ（Ｄ０４０１・Ｄ０４００）に対して目標運転速度をパルス周波数Ｈｚの単位で書込むものであり、ここでは定数Ｋ２００００によって２０ＫＨｚが指定されている。次の転送命令ＭＯＶはデータレジスタＤ０４０２に対して微速運転速度（クリープ運転速度）をパルス周波数Ｈｚの単位で書込むものであり、ここでは定数Ｋ１０００によって１ＫＨｚが指定されている。
【０１７５】
続く転送命令ＭＯＶはデータレジスタＤ０４０３に対しては、図２８で示す周波数の増分値Δｆ＝１０２４Ｈｚとしたときの加減速時間Δｔ（μｓｅｃ）を書込むものであり、ここでは定数Ｋ２００００によって２０ｍｓｅｃが設定されている。したがって、目標運転速度２０ＫＨｚに到達するまでの時間は２０×２０／１.０２４＝３９０.６ｍｓｅｃとなっている。次の転送命令ＭＯＶはデータレジスタＤ０４０４に対して後述の零点信号数を書込むものであり、ここではＫ３によって３パルスが設定されている。続く補助リレーＭ８０４１は転送確認を行うものとなっていて、原点出し完了の補助リレーＭ８９４３が作動しているときには補助リレーＭ８０４１は駆動されないようになっている。
【０１７６】
図２７において、（Ｂ）は入力リレーＸ０００が動作すると強制停止指令となる補助リレーＭ８９４０が駆動される回路ブロックを示している。（Ｃ）は入力リレーＸ００１が動作すると、正転限界停止指令となる補助リレーＭ８９４１が駆動される回路ブロックとなっている。（Ｄ）は入力リレーＸ００２が動作すると、逆転限界停止指令となる補助リレーＭ８９４２が駆動される回路ブロックとなっている。（Ｅ）は入力リレーＸ００５が動作すると、原点復帰方向指令となる補助リレーＭ８９４４が駆動されて前進動作を行う回路ブロックとなっている。（Ｆ）は補助リレーＭ８９４３が動作したときに一対のデータレジスタ（Ｄ０３２１・Ｄ０３２０）に対して、原点位置の座標値Ｋ２０００が転送される回路ブロックとなっている。（Ｇ）は入力リレーＸ００３が不作動となったときに、原点出し完了で動作していた補助リレーＭ８９４３をリセットする回路ブロックとなっている。
【０１７７】
図２７における（Ａ１）〜（Ａ４）による設定値や（Ｂ）〜（Ｅ）による指令は（Ｈ）で原点復帰命令ＺＲＮが実行された時点で、転送仲介メモリ１１４ｂを介して図１４で示された変形型パルス出力回路１０８０・０の各部に転送される。但し、原点復帰命令ＺＲＮが駆動されたときにはまず、図１９の工程９１６によるパラメータの変更設定が行われてから、各部との交信が行われるようになっている。
【０１７８】
図１４における初段の可逆カウンタ２０００・０の第一の設定レジスタ３００１・０には、データレジスタＤ０４０３に格納された加減速時間２００００μｓｅｃの半分の値である１００００が格納される。その結果、交番出力回路９７の出力信号の周期は目標とする２００００μｓｅｃ＝２０ｍｓｅｃとなっている。次段の可逆カウンタ２０００・１の第一の設定レジスタ３００１・１にはデータレジスタ（Ｄ０４０１・Ｄ０４００）に格納された目標運転速度２０、０００が書込まれ、第二の設定レジスタ３００２・１にはデータレジスタＤ０４０２に格納された微速Ｋ１０００が書込まれ、変分値レジスタ４００３・１には図２８の増減周波数Δｆ＝１、０２４が書込まれる。
【０１７９】
その結果、運転速度パターンとしては初速０ＫＨｚから２０ｍｓｅｃ当たり約１ＫＨｚの割合で目標運転速度２０ＫＨｚまで上昇し、この時点でカウントアップ出力Ｑが作動して現在値レジスタ４００１・１の増加が停止する。終段前の可逆カウンタ２０００・２の第一の設定レジスタ３００１・２には、例えば最大運転速度１００ＫＨｚの５倍に相当する係数＝５００、０００が格納されている。その結果、変分値レジスタ４００３・２に目標運転速度２０ＫＨｚに相当した２０、０００が格納されている場合には、カウントアップ出力Ｑが作動するまでには２５カウントを行う必要がある。
【０１８０】
可逆カウンタ２０００・２の計数入力信号の周期はτ＝１μであるから、交番出力回路４７の出力パルスの周期は５０μｓｅｃとなり、これが目標とする運転速度の周波数２０ＫＨｚと合致するようになっている。ＺＲＮ命令の駆動によって図２８に示すとおり現在位置から後退動作を行い、速度上昇後に目標速度（図示運転速度）に達し、やがて近点ドグ信号ＤＯＧがＯＮして入力リレーＸ０２０が動作する。その結果、論理和素子９５ａとゲート素子９５ｂを介して可逆カウンタ２０００・１に対して減算開始指令を供給する。可逆カウンタ２０００・１は２０ｍｓｅｃ当たり約１ＫＨｚ分の減算を開始し、やがて第二の設定レジスタ３００２・１に格納されている微速に達すると下降比較一致出力Ｐが作動(論理レベル「Ｈ」）して減算動作を停止し、速度パターンとしては微速（クリープ運転速度）を維持するようになる。
【０１８１】
減速完了の直前には近点ドグ信号ＤＯＧがＯＦＦして入力リレーＸ０２０が不作動となり、この時点からサーボモータのＺ相信号に応動する入力リレーＸ０２１の動作が論理積素子９５ｅを介して最終段の可逆カウンタ２０００・３の計数入力端子ＩＮに入力される。可逆カウンタ２０００・３の第一の設定レジスタ３００１・３には、図２７における（Ａ４）によって設定されたデータレジスタＤ０４０４の値が予め転送されていて、この事例であればＺ相信号を３カウントした時点でカウントアップ出力Ｑを発生し、各可逆カウンタの動作を停止すると共に、Ｙ０２２にクリア信号出力ＣＬＲを発生してサーボアンプの初期化を行い、原点出し完了報告を行って補助リレーＭ８９４３が作動する。その結果、図２７における（Ｆ）によって原点位置の座標データがデータレジスタ（Ｄ０３２１・Ｄ０３２０）に書込まれる。原点復帰の完了に伴って、入力リレーＸ００３が解除されると、（Ｇ）によって原点出し完了を示す補助リレーＭ８９４３がリセットされ、（Ｈ）の補助リレーＭ８０４１が不作動になって原点復帰命令ＺＲＮも駆動停止される。
【０１８２】
なお、図２７における（Ａ１）〜（Ａ４）において、定数Ｋによる直接設定によらないでデータレジスタ番号を指定する間接設定方式にすれば、運転中においてこれ等の設定値を変更することができるものである。ただし、各可逆カウンタの動作中においては論理回路部への転送は行われず、動作完了を待ってから次の設定が有効となるものである。また、補助リレーＭ８９４０・Ｍ８９４１・Ｍ８９４２による指令は、ＺＲＮ命令が実行された時点で有効となり、指令信号６０８０・０によって指令ラッチメモリ６２００・０に送信されて、各可逆カウンタは動作停止する。補助リレーＭ８９４０・Ｍ８９４１・Ｍ８９４２が駆動解除されると、ＺＲＮ命令が実行された時点で停止指令が解除され、指令信号６０８０・０によって指令ラッチメモリ６０００・０に送信されて、各可逆カウンタは動作を開始するようになっている。
【０１８３】
次に、ＰＷＭ出力命令の使用例である図２９について、図１１を参照しながら説明する。図２９において、（Ａ）は図示しないシーケンス回路によって駆動される補助リレーＭ０４００によって駆動されるＰＷＭ出力命令ＰＷＭの回路ブロックを示している。このＰＷＭ命令の第一オペランドで指定されたデータレジスタＤ０５００はパルス幅変調信号のパルス周期がμｓｅｃ単位で設定され、第二オペランドで指定されたデータレジスタＤ０５０１にはパルス幅変調信号のＯＮ時間がμｓｅｃ単位で設定され、第三オペランドにはパルス幅変調信号（ＰＷＭ）出力を発生する特殊ユニットの出力番号が指定される。この事例であれば特殊ユニット１４０の出力端子Ｙ０２５からパルス幅変調信号が出力されることになる。ＰＷＭ命令が実行されると、図１１の可逆カウンタ２０００ｎ（この事例ではｎ＝５）の第一の設定レジスタ３００１ｎには、データレジスタＤ０５００で設定されたパルス幅変調信号の周期（μｓｅｃ）が設定され、第二の設定レジスタ３００２ｎには当該設定周期からデータレジスタＤ０５０１で設定されたＯＮ時間を差し引いて得られるＯＦＦ時間が設定されるようになっている。
【０１８４】
その結果、共通クロック回路９００１が発生する周期τ＝１μｓｅｃのクロック信号を計数する可逆カウンタ２０００ｎは設定されたＯＦＦ時間に達した時点で上昇比較一致出力Ｐを発生し、設定周期に達した時点でカウントアップ出力Ｑが発生して、この時点で可逆カウンタ２０００ｎはリセットされ、上昇比較一致出力Ｐもリセットされるよう構成されている。したがって、図２９における（Ｃ）で示すとおり、周期（Ｄ０５００）でＯＮ時間幅（Ｄ０５０１）によるパルス幅変調信号がＹ０２５に出力されることになる。なお、図１１のチャンネル端子１２ｎと上昇比較一致出力Ｐとの間に反転論理素子を介在させるとＯＮとＯＦＦとが反転するので、第二の設定レジスタ３００２ｎにはＯＮ時間を設定しておけばよいことになる。
【０１８５】
図２９における（Ｂ）は他の実施例によるＰＷＭ出力命令のオペランドの構成を示したものである。この事例によるＰＷＭ命令の第一オペランドで指定されたデータレジスタＤ０５００は設定されるデータレジスタの先頭番号を示し、第二オペランドで指定された定数Ｋによって命令形式が定義され、第三オペランドにはパルス幅変調信号（ＰＷＭ）出力を発生する特殊ユニットの出力番号が指定されるようになっている。
【０１８６】
定数Ｋの値によってＫ０であればＤ０５００に周期、Ｄ０５０１にＯＮ時間を設定し、Ｋ１であればＤ０５００に周期、Ｄ０５０１にＯＦＦ時間、Ｋ２であればＤ０５００に周期、Ｄ０５０１にデューティ（ＯＮ時間／周期）×１０００を設定するよになっている。どの形式のものであっても図１１の可逆カウンタ２０００ｎに対しては周期とＯＦＦ時間に換算したデータが送信される。なお、マイクロプロセッサ１１１からの設定データ３０５０ｎはＰＷＭ命令の実行時点で一旦は待機バッファメモリ４００４ｎに転送され、その後カウントアップ出力Ｑが作動して現在値レジスタ４００１ｎと上昇比較一致出力Ｐがリセットされるタイミングにおいて第一および第二の設定レジスタ３００１ｎ・３００２ｎに転送されるようになっている。
【０１８７】
（４）実施の形態１の要点と特徴
以上の説明で明らかなとおり、この発明の実施の形態１によるプログラマブルコントローラ１００Ａは、マイクロプロセッサ１１１、当該マイクロプロセッサ１１１と協働するシステムメモリ１１２Ａ、ユーザによって作成されたシーケンスプログラムが外部ツール１０８から転送書込みされるプログラムメモリ１１３Ａ、入出力情報および制御情報を記憶するための入出力イメージメモリＸ・Ｙと補助リレーＭとデータレジスタＤとを包含するデバイスメモリ１１４ａとを有するＣＰＵユニット１１０Ａと、当該ＣＰＵユニットに対してバス接続される単独または複数の入出力ユニット１２０〜１４０とを備える。当該入出力ユニットの一部または全部が特殊入出力処理機能を分担して前記マイクロプロセッサ１１１の制御機能を補完するための集積回路素子１０を包含した特殊ユニット１３０・１４０となっている。前記特殊ユニット１３０・１４０は、複数の外部センサまたは外部負荷の少なくとも一方または双方に接続される外部接続用端子１３０Ｘ・１３０Ｙ、１４０Ｘ・１４０Ｙと、当該外部接続端子に接続される多チャンネルの入力インタフェース回路１３９Ｘ・１４９Ｘまたは出力インタフェース回路１３９Ｙ・１４９Ｙと、制御仕様の一部分が可変設定できて入出力制御に共用される集積回路素子１０と、前記マイクロプロセッサ１１１と接続するためのバス接続用端子１３０Ｚ・１４０Ｚとを搭載した電子基板１９ｘｙとを備えている。また、前記集積回路素子１０は、前記入力インタフェース回路１３９Ｘ・１４９ＸからＯＮ／ＯＦＦ動作する論理信号が入力される第一のポート１１と、前記出力インタフェース回路１３９Ｙ・１４９Ｙに対してＯＮ／ＯＦＦ動作する論理信号を出力する第二のポート１２と、各チャンネル番号ｎに対応するパラメータメモリ８０００ｎと、前記マイクロプロセッサ１１１から当該パラメータメモリに送信された回路編成データによって入出力処理のための動作仕様が決定される論理回路部１０００ｎとを備えている。
【０１８８】
前記論理回路部１０００ｎは、さらに、前記入力インタフェース回路１３９Ｘを介して得られる論理入力信号を高速計数して、カウントアップ出力または計数データを前記マイクロプロセッサ１１１に報告信号または演算データとして送信する報告ビットメモリ７０００ｎと、演算レジスタ４０００ｎとを備えると共に、前記マイクロプロセッサ１１１から受信した設定データまたは指令信号を設定レジスタ３０００ｎと指令ラッチメモリ６０００ｎに格納し、当該設定レジスタと指令ラッチメモリの内容に基づく高速パルス出力を前記出力インタフェース回路１４９Ｘに供給する可逆カウンタ２０００ｎとを包含している。前記可逆カウンタ２０００ｎは、前記演算レジスタ４０００ｎの一部となる現在値レジスタ４００１ｎを備え、前記入力インタフェース回路１３９Ｘから供給された入力信号に対する高速カウンタ回路を構成して、カウントアップ出力を前記ＣＰＵユニット１１０Ａに送信する高速入力処理を行うのか、または前記ＣＰＵユニット１１０Ａから受信した設定データに基づく高速パルス出力回路を構成して、所定のパルス出力を前記出力インタフェース回路１４９Ｙに供給する高速出力処理を行うのかは、前記プログラムメモリ１１３Ａに格納されている制御プログラムに包含されている特殊命令の内容に連動して、各チャンネル毎にいずれか一方に決定される。前記パラメータメモリ８０００ｎに送信される回路編成データにより、複数種類の高速入力処理と複数種類の高速出力処理がなされ、前記外部センサからの入力信号がアナログ信号である場合に、前記入力インタフェース回路は、入力信号に比例した周波数のパルスを前記集積回路素子１０に供給し、前記外部負荷がアナログ負荷である場合に、前記集積回路素子１０は、出力信号に指令したＯＮ／ＯＦＦ比率のパルス出力を発生して、前記出力インタフェース回路は、受信したパルス出力信号を平滑して外部負荷に供給する。
【０１８９】
また、前記ＣＰＵユニット１１０Ａは、前記特殊ユニット１３０・１４０とのデータ交信を行うための転送仲介メモリ１１４ｂを備えると共に、前記システムメモリ１１２Ａは、編成処理手段９０８とデータ変換・転送手段９２１となる制御プログラムを包含している。前記編成処理手段９０８は、前記プログラマブルコントローラ１００Ａの運転開始直後において、前記プログラムメモリ１１３Ａの内容を検索して特殊ユニット１３０・１４０に対応した特殊命令を抽出し、当該特殊命令の内容に対応して当該特殊ユニットで適用される論理回路部１０００ｎの種別と動作モードに対応した回路編成データを前記パラメータメモリ８０００ｎに送信すると共に、当該パラメータによって回路編成が特定された各論理回路部１０００ｎと交信するための転送仲介メモリ１１４ｂのアドレス編成を行う。前記データ変換・転送手段９２１は、前記特殊命令で指定されたデバイスメモリ１１４ａの内容に基づいて前記論理回路部１０００ｎの動作に適した換算単位の設定データと指令信号に変換して前記転送仲介メモリ１１４ｂを介して設定レジスタ３０００ｎおよび指令ラッチメモリ６０００ｎに送信すると共に、前記論理回路部１０００ｎから得られた演算データまたは報告信号を前記転送仲介メモリ１１４ｂを介して前記特殊命令によって指定されたデバイスメモリ１１４ａに転送する。
【０１９０】
前記特殊命令は、命令の種別を示す命令語と、順不同の第一のオペランド、および第二または第三のオペランドの少なくとも一方とによって構成され、当該第一のオペランドは対象となる特殊ユニットの入出力番号を特定する識別番号を指定し、第二のオペランドは前記演算レジスタから得られる演算データを格納するデータレジスタ番号、または前記設定レジスタに対して送信される設定データが格納されているデータレジスタ番号か直接設定定数を指定し、第三のオペランドは前記報告ビットメモリから得られる報告信号を格納する補助リレー番号、または前記指令ラッチメモリ対して送信される指令信号が格納されている補助リレー番号を指定する。このため、編成処理手段によってパラメータの初期編成が行われ、運転中にあっては転送仲介メモリを媒介してマイクロプロセッサと論理回路部間のデータの変換・転送が行われる。したがって、高速処理を必要としない複雑な演算処理（例えば単位換算のための倍率乗算や逆数演算）をマイクロプロセッサで行い、論理回路部では当該論理回路部が動作しやすい設定データと指令信号に基づいて高速動作を行うことによって論理回路部の構成が簡素化され、安価な専用集積回路素子を得ることができる。
【０１９１】
また、前記論理回路部１０００ｎに設けられた可逆カウンタ２０００ｎの一部または全部は、現在値レジスタ４００１ｎと、第一の設定レジスタ３００１ｎと、第二の設定レジスタ３００２ｎと、第一の比較回路５００１ｎと、第二の比較回路５００２ｎとを備えている。前記現在値レジスタ４００１ｎは、前記可逆カウンタ２０００ｎの計数入力の動作回数を計数方向に応じて加減して、当該可逆カウンタの動作開始時の初期値からの累積値を記憶しているメモリである。前記第一の比較回路５００１ｎは、前記第一の設定レジスタ３００１ｎに格納されている数値と前記現在値レジスタ４００１ｎの記憶数値とが合致したときに、第一の比較一致出力を発生する数値比較回路である。前記第二の比較回路５００２ｎは、前記第二の設定レジスタ３００２ｎに格納されている数値と前記現在値レジスタ４００１ｎの記憶数値とが合致したときに第二の比較一致出力を発生する数値比較回路である。前記現在値レジスタまたは第一および第二の設定レジスタには、前記特殊命令が実行されたときに前記マイクロプロセッサ１１１から前記転送仲介メモリ１１４ｂを介して数値設定が行われる。つまり、論理回路部を構成する可逆カウンタは、複数の設定レジスタと比較回路とを備えている。したがって、可逆カウンタが動作開始する前に複数の設定レジスタに対する設定処理を行うことによって、高速計数中に新たな設定値の送信を必要としなくなるので論理回路部に対するマイクロプロセッサの通信制御負担を軽減することができると共に、複数の設定レジスタと複数の比較回路によってより高度な制御動作を行うことができる。
【０１９２】
また、前記特殊ユニット１３０・１４０に搭載された前記論理回路部１０００ｎは、全チャンネルに対応する汎用入力回路１０９１または汎用出力回路１０９２を備えている。前記汎用入力回路１０９１は、前記第一のポート１１に接続された入力信号が入力処理用のデータセレクタ１３４・１４４を介して前記デバイスメモリ１１４ａに割り付けられた入力イメージメモリ領域に送信される入力信号中継回路である。前記データセレクタから前記入力イメージメモリへの転送は、前記システムメモリ１１２Ａに格納されている制御プログラムである入力処理手段９１１によって実行される。前記汎用出力回路１０９２は、前記デバイスメモリ１１４ａに割り付けられた出力イメージメモリ領域から前記論理回路部１０００ｎに設けられた出力ラッチメモリ１３５・１４５を介して前記第二のポート１２に接続された出力回路に出力する出力信号中継回路である。前記出力イメージメモリから前記出力ラッチメモリへの転送は、前記システムメモリ１１２Ａに格納されている制御プログラムである出力処理手段９２３によって実行される。前記汎用入出力回路１０９１・１０９２は、前記論理回路部１０００ｎが高速入出力回路またはアナログ入出力回路として使用されていないときに有効となる。つまり、特殊ユニットに内蔵される集積回路素子は、高速入出力処理回路に加えて汎用入出力回路を備えている。したがって、高速出力またはアナログ出力は必要とするが高速入力やアナログ入力を必要としない用途、または高速入力またはアナログ入力は必要とするが高速出力やアナログ出力は必要としない用途において、不要とされた入出力端子を無駄なく使用して、特殊ユニットを経済的に有効活用することができる。
【０１９３】
また、前記特殊ユニット１３０・１４０は、前記外部接続端子１３０Ｘ・１４０Ｘ、１３０Ｙ・１４０Ｙに接続される多チャンネルの入力インタフェース回路１３９Ｘ・１４９Ｘと、出力インタフェース回路１３９Ｙ・１４９Ｙとの双方を備えている。前記入力インタフェース回路１３９Ｘ・１４９Ｘは、高速入力パルスに対応した小さな時定数の入力フィルタを包含するか、または高速入力パルスが入力されない大きな時定数の入力フィルタを有する開閉センサ用の入力インタフェース回路１３９Ｘ・１４９Ｘであるか、または電圧／周波数変換器を含むアナログセンサ用の入力インタフェース回路のいずれかに分類される。前記出力インタフェース回路１３９Ｙ・１４９Ｙは、高速出力パルスに対応した高速開閉動作を行うトランジスタを出力素子として包含するか、または高速出力パルスが出力されない低速開閉動作を行うトランジスタを出力素子として包含する出力インタフェース回路１４９Ｙ・１３９Ｙであるか、または前記論理回路部１０００ｎが発生するパルス幅変調信号出力に対する平滑回路を包含するアナログ負荷用の出力インタフェース回路のいずれかに分類される。前記特殊ユニット１３０・１４０は、高速論理入力または低速論理入力またはアナログ入力のいずれか一つと、高速論理出力または低速論理出力またはアナログ出力のいずれか一つとの任意の組合せの内で、低速論理入力と低速論理出力との組合せ以外の組合せによる複数種類の特殊ユニット１３０・１４０が適用可能に構成されている。つまり、特殊ユニットは、入力および出力インタフェース回路の双方を備え、各入力および出力インタフェース回路は、多様な仕様のものが適用できるようになっている。したがって、各チャンネルに設けられた可逆カウンタを様々な特殊用途に適用して、余すことなく活用することによって経済効果を高めることができる。
【０１９４】
また、前記論理回路部１０００ｎは、前記プログラムメモリ１１３Ａ内に格納された可変フィルタ命令ＲＥＦに応動する可変フィルタ回路１０１０ｎを備えている。当該可変フィルタ回路１０１０ｎは、入力信号の論理レベルの高・低に応じて所定のクロック信号をアップ・ダウン計数する可逆カウンタ２０００ｎと、入力確定回路となる報告ビットメモリ７０００ｎとを包含している。前記第一の設定レジスタ３００１ｎには、前記設定データ３０１０ｎとして受信したフィルタ定数が格納されていて、前記現在値レジスタ４００１ｎの値が当該第一の設定レジスタ３００１ｎの設定値に上昇するとカウントアップ出力Ｑを発生して加算カウントを停止すると共に、前記現在値レジスタ４００１ｎの現在値がゼロにまで下降すると前記カウントアップ出力Ｑに代わって復帰出力Ｑを発生して減算カウントを停止する。前記入力確定回路は、前記カウントアップ出力Ｑによってセットされ、前記復帰出力Ｑによってリセットされ、当該入力確定回路の出力は報告信号７０１０ｎとして送信される。
【０１９５】
前記可変フィルタ命令ＲＥＦは、対象となる入力リレー番号Ｘと、必要とされる入力フィルタ定数が格納されるデータレジスタ番号Ｄまたは直接設定定数Ｋと、報告信号７０１０ｎを格納する補助リレー番号Ｍとをオペランドとして有する特殊命令である。当該特殊命令が実行されると前記入力フィルタ定数が前記入力リレー番号Ｘに対応した可逆カウンタ２０００ｎの第一の設定レジスタ３００１ｎに設定データ３０１０ｎとして送信されると共に、前記報告信号７０１０ｎによって前記補助リレーＭが作動する。つまり、特殊ユニットの高速入力端子を一般の入力として利用して、その入力フィルタは可変設定することができるようになっている。したがって、入力フィルタを通常の入力回路に設けられたフィルタよりも大きなフィルタ定数に設定することによって、重畳ノイズが大きな入力信号を十分に平滑してＣＰＵユニットに取り込んだり、入力フィルタを通常の入力回路に設けられたフィルタよりも小さなフィルタ定数に設定することによって、重畳ノイズが小さな入力信号を速やかにＣＰＵユニットに取り込んだりして、入力信号回路の実態に対応した入力処理を行うことができる。また、可変フィルタ回路は、各入力チヤンネルに割り当てられた可逆カウンタを利用して構成されている。したがって、高速入出力処理を行わない入力チャンネルにおいては各チャンネルに割り当てられた可逆カウンタを有効活用して、手軽に広範囲は可変フィルタ回路を得ることができる。
【０１９６】
また、前記集積回路素子１０または当該集積回路素子を搭載した特殊ユニット１３０・１４０はカード情報格納メモリ９０００を備えると共に、前記システムメモリ１１２Ａは設定異常検出手段９０５となる制御プログラムを包含している。前記カード情報格納メモリ９０００には、前記第一および第二のポート１１および１２に対して論理信号用のインタフェース回路が接続されているか、アナログ信号用のインタフェース回路が接続されているかを識別する第一および第二の識別端子情報１４ａおよび１４ｂと、論理信号用のインタフェース回路である場合には低速論理信号用であるか高速論理信号用であるかを識別する第一および第二の信号端子情報１６ａおよび１６ｂが格納されている。前記設定異常検出手段９０５は、前記第一および第二のポート１１および１２に接続されている入出力インタフェース回路の種別と、前記プログラムメモリ１１３Ａに格納されている命令内容が不一致であることを検出して、運転停止および異常報知を行う手段となっている。つまり、運転開始に当たって、特殊ユニットの入出力インタフェース回路の種別に対応したカード情報とプログラムメモリ内の命令内容を照合して、不適当な命令が使用されているときには運転停止と異常報知を行うようになっている。したがって、誤った制御プログラムの有無を発見してデバッグ処理を行うことができると共に、危険な運転が行われないので安全性が向上する。
【０１９７】
また、前記論理回路部１０００ｎに設けられた可逆カウンタ２０００ｎの一部または全部は、待機バッファレジスタ４００４ｎを備えている。当該待機バッファレジスタ４００４ｎは、前記転送仲介メモリ１１４ｂから送信された数値データが一時格納され、前記論理回路部１０００ｎが発生するタイミング信号に基づいて当該待機バッファレジスタの内容が前記第一の設定レジスタ３００１ｎまたは第二の設定レジスタ３００２ｎに転送される。前記転送仲介メモリ１１４ｂから送信された数値データが前記待機バッファレジスタを介して時間差をおいて前記第一および第二の設定値レジスタに転送されるのか、待機バッファレジスタを介さずに第一および第二の設定レジスタに対して直接転送されるのかは、前記特殊命令の内容によって判別される。つまり、設定レジスタに対する設定データの転送タイミングを論理回路部によって制御するための待機バッファレジスタを備えている。したがって、論理回路部の動作に先立って複数の設定処理を行っておくことができると共に、論理回路部の動作中において論理回路部が発生するタイミングで設定データの更新を行うことができるので、論理回路部に対するマイクロプロセッサの通信制御負担を軽減して複雑な制御動作を行うことができる。
【０１９８】
また、前記システムメモリ１１２Ａは、プログラマブルコントローラ１００Ａの運転中において実行される転送禁止手段９２０となる制御プログラムを包含している。当該転送禁止手段９２０は、前記特殊ユニット１３０・１４０に適用された特殊命令が、動作完了信号を発生する命令であって、当該特殊命令が実行開始されてから動作完了信号が得られるまでは少なくとも前記第一の設定レジスタ３００１ｎと第二の設定レジスタ３００２ｎ対する設定データの送信を禁止する。当該動作完了信号は、前記第一のポート１１に入力されたパルス信号、または第二のポート１２が発生したパルス信号が、予め設定された目標パルスに到達したとき、または指令信号によってパルス発生・計数を完了したときに、前記報告ビットメモリ７０００ｎの内容を読み出して得られる。つまり、特殊ユニットが高速入出力制御を行っている間は制御定数の変更が行われないようにして、動作完了信号に基づいて新たな設定値などの制御定数を送信するための動作完了確認手段を備えている。したがって、特殊ユニットの動作中に次回の動作のための制御定数を受信して誤った制御動作を行わないようにマイクロプロセッサ側で管理するようになっているので、特殊ユニット側のメモリ容量と制御負担を軽減することができる。
【０１９９】
また、前記論理回路部１０００ｎに設けられた可逆カウンタ２０００ｎの一部または全部は、変分値調整用レジスタ４００３ｎを備えている。当該変分値調整用レジスタ４００３ｎは、前記可逆カウンタ２０００ｎに対してアップまたはダウンの計数入力が与えられたときに作用して、前記現在値レジスタ４００１ｎに対して変分値調整用レジスタ４００３ｎに格納されている数値が加算または減算される。つまり、１回の計数動作による可逆カウンタによる増減値は変分値調整用レジスタの内容によって変更することができるようになっている。したがって、加算上限値に達するまでのカウントアップ時間は変分値調整用レジスタの内容に反比例することとなり、可逆カウンタを用いて逆数演算を行って、例えば目標周波数に対応した周期のパルス出力を生成することができる。また、現在値の増減勾配を可変設定できる。
【０２００】
また、前記論理回路部１０００ｎは、前記プログラムメモリ１１３Ａ内に格納された高速カウンタ命令ＨＳＣに応動する高速カウンタ回路１０３０ｎ・１０４０ｍを備えている。前記高速カウンタ回路１０３０ｎ・１０４０ｍは、カウント方向が指令信号６０３０ｎによって決定される１相１入力の可逆カウンタであるか、またはアップ・ダウン入力が個別に供給される１相２入力の可逆カウンタであるか、または２相入力の位相差によってアップ・ダウン方向を決定する２相２入力の可逆カウンタである。前記高速カウンタ回路１０３０ｎ・１０４０ｍは、さらに、当該高速カウンタ回路の動作モードを決定するものとして、前記高速カウンタ命令ＨＳＣが実行された時点で計数開始するもの、または計数開始指令入力が付加されたもの、または前記現在値レジスタに初期値データを転送するためのプリセット指令入力が付加されたものとがある。前記２相２入力形式の高速カウンタ回路では、各相のパルス信号の立上りと立下りのどの時点で計数を行うのかによって１逓倍計数方式、または２逓倍計数方式、または４逓倍計数方式の計数モードのものがあって、前記各高速カウンタ回路には固有の識別番号が付与されている。
【０２０１】
前記識別番号は、当該高速カウンタ回路を包含した特殊ユニットの接続位置を示す配置番号と、当該特殊ユニットの入力端子番号を示すチャンネル番号ｎ・ｍが識別されると共に、前記各動作モードに対応した拡張番号ｂｂの値を組み合わせた複数桁の番号である。前記高速カウンタ命令ＨＳＣは、対象となる高速カウンタの識別番号と、カウントアップ出力を発生するための計数目標値が格納されるデータレジスタ番号Ｄまたは直接設定定数Ｋと、１相１入力カウンタの場合の計数方向を指定する補助リレー番号Ｍとカウントアップ出力が格納されるカウンタ番号Ｃとを指定するオペランドを有する特殊命令である。当該特殊命令が実行されると設定データと計数方向指令信号が前記識別番号に対応した前記第一の設定レジスタ３００１ｎ・３００１ｍと指令ラッチメモリ６０００ｎ・６０００ｍに送信され、カウントアップ出力Ｑが報告ビットメモリ７０００ｎ・７０００ｍから指定されたカウンタ番号のデバイスメモリ１１４ａに計数完了報告信号７０３０ｎ・７０４０ｍとして送信される。つまり、多様な高速カウンタ回路には入力チャンネルの重複使用を回避するための識別番号が付与されていると共に、スタート指令・プリセット指令は高速処理を必要としない場合には特殊ユニットの入力端子を使用しないでマイクロプロセッサから指令するようになっている。したがって、各入力チャンネルに割り当てられた１個の可逆カウンタを用いて、各チャンネル毎に目的とする多様な高速カウンタのどれかを生成することができる。また、高速処理を必要としないスタート指令・プリセット指令は特殊ユニットの入力端子を使用しないので、特殊機能を持つ入力端子を無駄に使用しない。
【０２０２】
また、前記高速カウンタ回路１０３０ｎ・１０４０ｍは、前記プログラムメモリ１１３Ａ内に格納された高速比較命令ＨＣＭＰに応動する高速出力機能を備えている。前記高速比較命令ＨＣＭＰは、対象となる高速カウンタ回路の識別番号と、比較目標値が格納されるデータレジスタ番号Ｄまたは直接設定定数Ｋと、比較一致出力を格納する補助リレー番号Ｍとをオペランドとして有する特殊命令である。当該特殊命令は、前記第一のポート１１が高速入力ポートとして使用されると共に、第二のポート１２が論理出力ポートとして併用されている場合に有効となる。当該特殊命令が実行されると前記比較目標値が設定データ３０３０ｎ・３０４０ｍとして前記識別番号に対応した可逆カウンタ２０００ｎ・２０００ｍの第二の設定レジスタ３００２ｎ・３００２ｍに送信され、前記第二の比較回路５００２ｎ・５００２ｍによるアップ計数時の比較一致記憶信号である上昇比較一致出力Ｐは前記高速カンタ回路１０３０ｎ・１０４０ｍの計数入力のチャンネル番号ｎ・ｍに対応したチャンネル番号ｎ・ｍの出力端子に出力されると共に、当該上昇比較一致出力Ｐは報告信号７０３０ｎ・７０４０ｍとして指定された補助リレーＭを駆動し、当該補助リレーＭがリセット駆動されたことによって、前記上昇比較一致出力Ｐがリセットされる。つまり、高速カウンタの現在値が比較目標値に一致したときに、報告信号によってマイクロプロセッサへ報告すると共に、第一のポートの入力チャンネルに対応した第二のポートの対応出力チャンネルから比較一致出力が得られるようになっている。したがって、比較一致信号をデータバスを介してマイクロプロセッサに取り込んで、マイクロプロセッサ側で利用することができると共に、速やかに外部負荷に対応した制御信号を送出することができる。
【０２０３】
また、前記論理回路部１０００ｎは、各偶数チャンネル番号ｍに割り付けられた第一のパルス出力回路１０６０ｍを備えている。当該パルス出力回路は、前記プログラムメモリ１１３Ａ内に格納された第一のパルス出力命令ＰＬＳに応動する。前記第一のパルス出力回路１０６０ｍは、動作モードとして正転パルス出力ＦＰまたは逆転パルス出力ＲＰのどちらか一方を発生する一対のパルス出力であるか、または可逆パルス出力ＦＲＰに回転方向指令出力ＤＩＲが付加されたパルス出力形式のものがある。当該各形式のパルス出力回路は、隣接したチャンネルの２個の可逆カウンタ２０００ｍ・２０００ｍ＋１を占有する固有の識別番号を備え、当該可逆カウンタの一方は低速パルス周期と高速パルス周期に比例した定数が書込まれる第一および第二の設定レジスタ３００１ｍ・３００２ｍを備えると共に、他方の可逆カウンタは、高速運転のパルス発生数と低速運転のパルス発生数に関連した定数が書込まれる第一および第二の設定レジスタ３００１ｍ＋１・３００２ｍ＋１を備えている。
【０２０４】
前記識別番号は、当該パルス出力回路１０６０ｍを包含した特殊ユニットの接続位置を示す配置番号＊＊と、当該特殊ユニットの出力端子番号を示すチャンネル番号ｍが識別されると共に、前記各動作モードに対応した拡張番号ｂｂの値を組み合わせた複数桁の番号である。前記第一のパルス出力命令ＰＬＳは、対象となるパルス出力回路１０６０ｍの識別番号と、回転方向に対応した正負の目標発生パルス数と低速運転パルス数と高速運転パルス周期と低速運転パルス周期とが格納されるデータレジスタ番号を特定するためのオペランドと、強制停止指令と正転限界停止指令または逆転限界停止指令とパルス発生完了信号が格納される補助リレー番号を特定するためのオペランドとを有する特殊命令である。当該特殊命令が実行されると前記目標発生パルス数と低速運転パルス数と高速パルス周期と低速パルス周期が設定データとして、また回転方向指令と強制停止指令と正転限界停止指令または逆転限界停止指令とが指令信号として、前記識別番号に対応した可逆カウンタの第一および第二の設定レジスタ３００１ｍ・３００２ｍ、３００１ｍ＋１・３００２ｍ＋１と指令ラッチメモリ６０００ｍに送信され、パルス発生完了信号が報告ビットッメモリ７０００ｍ＋１から指定された補助リレーＭに対して報告信号７０６０ｍとして報告送信される。つまり、特殊ユニットに内蔵された論理回路部はプログラムメモリ内に格納された第一のパルス出力命令に応動する第一のパルス出力回路を備え、当該パルス出力回路は、識別番号で区分された２点の出力を占有して、高低２段速度のパルス出力を発生する。したがって、各出力チャンネルに割り当てられた２個の可逆カウンタを用いて、各パルス出力回路毎に目的とする多様なパルス出力を発生することができ、運転速度を直線的に増減する加減速度抑制機能は持たないが、ステッピングモータの自己起動周波数以内で始動停止を行い、自己起動周波数以上の周波数で高速運転を行う簡易な位置決め制御に対して手軽に利用できる。
【０２０５】
また、前記論理回路部１０００ｎは、前記プログラムメモリ１１３Ａ内に格納された第二のパルス出力命令ＤＲＶに応動する第二のパルス出力回路１０７０・０（１０７０・４）を備えている。前記第二のパルス出力回路１０７０・０（１０７０・４）は、動作モードとして正転パルス出力ＦＰまたは逆転パルス出力ＲＰのどちらか一方を発生する一対のパルス出力するか、または可逆パルス出力ＦＲＰに回転方向指令出力ＤＩＲが付加されたパルスを出力する形式のものがある。当該各形式のパルス出力回路は、少なくとも発生パルス数の設定レジスタとパルス周波数の設定レジスタと加減速度の設定レジスタを備えると共に、当該各パルス出力回路には、入力２点と出力３点に対応した４点の可逆カウンタを占有する固有の識別番号が付与されている。前記第二のパルス出力回路はさらに、加算計数入力が与えられたときに、変分値調整用レジスタ４００３・２（４００６・６）に格納されている数値を現在値レジスタ４００１・２（４００１・６）に加算することができる加算機能を有する可逆カウンタ２０００・２（２０００・６）を備え、当該可逆カウンタの第一の設定レジスタ３００１・２（３００１・６）に対して所定の係数値Ｋを格納し、前記変分値調整用レジスタ４００３・２（４００６・６）に対して目標とするパルス周波数を格納しておくことによって、パルス周波数に反比例した周期のカウントアップ出力Ｑを得て、当該カウントアップ出力Ｑの発生に伴って現在値レジスタ４００１・２（４００１・６）をリセットすることによって目標とするパルス周期に対応したカウントアップ出力Ｑを得る。前記識別番号は、当該パルス出力回路１０７０・０（１０７０・４）を包含した特殊ユニットの接続位置を示す配置番号＊＊と、当該特殊ユニットの出力端子番号を示すチャンネル番号ｎが識別されると共に、前記各動作モードに対応した拡張番号ｂｂの値を組み合わせた複数桁の番号である。
【０２０６】
前記第二のパルス出力命令ＤＲＶは、対象となるパルス出力回路１０７０・０（１０７０・４）の識別番号と、回転方向に対応した正負の目標発生パルス数が格納されるデータレジスタ番号Ｄと、パルス周期またはパルス周波数と、加減速度設定用データが格納されるデータレジスタ番号Ｄを特定するためのオペランドと、強制停止指令と正転限界停止指令または逆転限界停止指令とパルス発生完了信号が格納される補助リレー番号Ｍを特定するためのオペランドとを有する特殊命令である。当該特殊命令が実行されると前記目標発生パルス数と加減速度データと目標パルス周波数と減速開始位置データとが設定データ３０７０・０（３０７０・４）として、また回転方向指令と強制停止指令と正転限界停止指令または逆転限界停止指令とが指令信号６０７０・０（６０７０・４）として、前記識別番号に対応した各可逆カウンタの第一および第二の設定レジスタ３００１ｎ・３００２ｎと、指令ラッチメモリ６０００ｎに対して送信され、パルス発生完了信号が報告信号７０７０・０（７０７０・４）として報告ビットメモリ７０００ｎから指定された補助リレーＭに対して送信される。つまり、特殊ユニットに内蔵された論理回路部は、プログラムメモリ内に格納された第二のパルス出力命令に応動する第二のパルス出力回路を備え、当該パルス出力回路は識別番号で区分された４点の可逆カウンタを占有するようになっている。したがって、各入出力チャンネルに割り当てられた４個の可逆カウンタを用いて、各パルス出力回路毎に目的とする多様なパルス出力を発生することができる。また、マイクロプロセッサから一定の加減速度指令を受けるだけで、論理回路部によって目標速度を徐々に上昇させたり、徐々に下降させるための加減速度制御機能が付加されているので、マイクロプロセッサによる時々刻々の設定データの更新を行う必要がなく、マイクロプロセッサの制御負担を軽減してスムースな加減速制御を行うことができる。
【０２０７】
また、前記論理回路部１０００ｎは、前記第二のパルス出力回路１０７０・０（１０７０・４）を部分的に変更して得られる変形型パルス出力回路１０８０・０（１０８０・４）を備えている。当該変形型パルス出力回路には、前記プログラムメモリ１１３Ａ内に格納され原点復帰命令ＺＲＮに応動するための位置決用入出力信号が付加されていると共に、前記システムメモリ１１２Ａは、前記変形型パルス出力回路１０８０・０（１０８０・４）を得るためのパラメータ変更手段９１８となる制御プログラムを包含している。前記位置決用入力信号は、原点近傍で作動する近点ドッグ信号ＤＯＧと、前記パルス出力によって駆動されるサーボモータに設けられ、当該サーボモータの１回点当たりに１パルスの出力を発生するＺ相信号が入力されるゼロ点信号ＺＥＲＯを備えている。前記位置決用出力信号は、原点出しが完了したときに前記サーボモータを駆動するサーボアンプの位置決め偏差残留パルスをリセットするためのクリア信号ＣＬＲを備えている。前記原点復帰命令ＺＲＮは、対象となる変形型パルス出力回路１０８０・０（１０８０・４）の識別番号と、少なくとも原点復帰用の高速パルス周波数またはパルス周期と、原点近傍におけるクリープ運転用の低速パルス周波数またはパルス周期と、加減速度設定用データとゼロ点信号数が格納されるデータレジスタ番号Ｄを特定するためのオペランドと、原点復帰方向指令と強制停止指令と正転限界停止指令または逆転限界停止指令と原点出完了信号が格納される補助リレー番号Ｍを特定するためのオペランドとを有する特殊命令である。
【０２０８】
当該特殊命令が実行されると前記高速運転用のパルス周波数と低速クリープ運転用のパルス周波数と加減速度設定データとゼロ点信号数とが設定データ３０８０・０（３０８０・４）として、また原点復帰方向指令と強制停止指令と正転限界停止指令または逆転限界停止指令とが指令信号６０８０・０（６０８０・４）として、前記識別番号に対応した可逆カウンタの第一および第二の設定レジスタ３００１ｎ・３００２ｎと指令ラッチメモリ６０００ｎに対して送信され、原点出完了信号が報告信号７０８０・０（７０８０・４）として報告ビットメモリ７０００ｎから指定された補助リレーＭに送信される。前記パラメータ変更手段９１８は、前記第二のパルス出力命令ＤＲＶに対応して発生パルス数を計数していた最終段の可逆カウンタの入出力回路を変更して、原点復帰命令に対応してゼロ点信号数の計数を行う最終段の可逆カウンタとして利用するためのものであって、当該接続変更は、原点復帰命令ＺＲＮの実行開始から実行完了までの限定期間において有効となり、常時は前記第二のパルス出力命令ＤＲＶに対応した接続回路に復元設定されている。つまり、第二のパルス出力回路には、２点の位置決用入力信号と１点の位置決用出力信号が付加されていて、パラメータの変更によって占有可逆カウンタ点数を増加させないで原点復帰命令が使用できるようになっている。したがって、第二のパルス出力命令において占有された５点の入出力と４点の可逆カウンタを用いて、手軽に原点復帰動作が行える。特に、第二のパルス出力命令と原点復帰命令とは最終段の可逆カウンタを除いて同一の論理回路によって構成され、制御指令内容が異なるだけの扱いとなっているので、論理回路部に対するパラメータ設定の変更を容易に行うことができる。
【０２０９】
また、前記第一および第二のパルス出力回路１０６０ｍ・１０７０・０（１０７０・４）には、前記プログラムメモリ１１３Ａ内に格納された現在位置読出命令ＤＣＶＲＤによる監視手段が付加されている。前記現在位置読出命令ＤＣＶＲＤは、対象となるパルス出力回路１０６０ｍ・１０７０・０（１０７０・４）の識別番号と、正転限界位置または逆転限界位置または原点位置に対する現在位置情報が格納されるデータレジスタ番号Ｄを指定するためのオペランドを有する。当該特殊命令が実行されると、前記識別番号に対応したパルス出力回路１０６０ｍ・１０７０・０（１０７０・４）のパルス出力情報が格納される現在値レジスタ４００１ｍ＋１、４００１・３（４００１・７）の移動完了後の内容が演算データ４０６０ｍ・４０７０・０（４０７０・７）として送信されて、当該演算データが移動方向に応じて前記データレジスタＤに対して順次代数加算されるものであり、前記データレジスタＤには、原点位置または正逆転限界位置を含む基準位置において、予めシーケンスプログラムによって所定の初期位置データが書込みされる。つまり、原点位置または正逆転限界位置においてシーケンスプログラムによって所定の初期位置データを書込んだデータレジスタに対して、パルス出力命令に伴う移動量を現在位置読出命令によって読み出して代数加算するようになっている。したがって、パルス出力回路としては毎回の移動量のみを報告しておけば、多様な移動量による前進・後退動作の結果として、現在位置がどこにあるのかをマイクロプロセッサ側で知ることができるので、パルス出力回路を安価に構成することができる。なお、原点位置または正逆転限界位置においてシーケンスプログラムによって所定の初期位置データを書込んだ第二のデータレジスタに対して、パルス出力命令で指定された目標移動量の累積加算を行っておけば、当該累積加算によって得られる目標現在位置と、現在位置読出命令にる推定現在位置とが一致しているかどうかを比較判定することによって、正常な位置決め制御が行われているかどうかをユーザのシーケンスプログラムによって判定することができる。
【０２１０】
また、前記第一および第二のパルス出力回路１０６０ｍ・１０７０・０（１０７０・４）には、前記プログラムメモリ１１３Ａ内に格納された第一および第二のパルス出力命令ＰＬＳ・ＤＲＶに代わって使用される第三のパルス出力命令ＡＢＳが適用される。前記第三のパルス出力命令ＡＢＳは、前記第一および第二のパルス出力命令ＰＬＳ・ＤＲＶにおいて指定される目標移動量に代わって目標移動位置が指定される。前記データ変換・転送手段９２１は、前記現在位置読出命令ＤＣＶＲＤによって検出記憶されている現在位置と前記目標移動位置との偏差によって今回の目標移動量を算出して、当該目標移動量を前記転送仲介メモリ１１４ｂを介して前記第一および第二の設定レジスタ３００１ｎ・３００２ｎに送信する。つまり、システムメモリに付加されたデータ変換・転送手段と第三のパルス出力命令によって絶対位置指定による位置決制御が行えるようになっている。したがって、パルス出力回路に対しては常に相対移動量が指定されるので、第一および第二のパルス出力回路をそのまま用いて、ユーザの意向に基づく第三のパルス出力命令による運転が行える。
【０２１１】
また、前記論理回路部１０００ｎは、前記プログラムメモリ１１３Ａ内に格納されたパルス幅測定命令ＰＷＤに応動するパルス幅測定回路１０２２ｎを備えている。前記パルス幅測定回路１０２２ｎは、高速論理信号用の入力インタフェース回路１３９Ｘに接続されたチャンネル端子１１ｎの入力論理変化に応動して、所定周期のクロック信号を計数する可逆カウンタ２０００ｎによって構成され、前記入力論理の変化から次の変化までの計数現在値をピークホールドレジスタ４００２ｎに格納して演算データ４０２２ｎとして送信すると共に、測定完了信号を報告信号７０２２ｎとして送信し、当該報告信号７０２２ｎを受信したマイクロプロセッサ１１１が指令信号６０２２ｎによって測定完了信号をリセットすることによってパルス幅の測定が再開される。前記パルス幅測定命令ＰＷＤは、高速論理信号用の入力インタフェース回路１３９Ｘが接続されている特殊ユニット１３０に対して適用され、対象となる入力番号Ｘと、測定結果が格納されるデータレジスタ番号Ｄと測定完了信号が格納される補助レジスタ番号Ｍとをオペランドとして有する。当該特殊命令が実行されると前記ピークホールドレジスタ４００２ｎの内容が演算データ４０２２ｎとして前記データレジスタＤに転送格納されると共に、測定完了信号によって前記補助リレーＭが駆動され、当該補助リレーＭの動作をリセットすると測定再開指令が指令信号６０２２ｎによって指令ラッチメモリ６０００ｎへ送信される。つまり、パルス幅測定回路は入力論理信号のＯＮ幅またはＯＦＦ幅をクロック信号によって計測して報告するようになっている。したがって、マイクロプロセッサによって測定時間幅の逆数演算を行うことによって、低速回転パルス信号によって高精度に回転速度を検出することができる。また、単に低速回転速度の大小判定を行う場合であれば逆数演算は不要であって、測定時間の大小によって回転速度の小大の判定が行える。
【０２１２】
また、前記論理回路部１０００ｎは、前記プログラムメモリ１１３Ａ内に格納されたエッジ検出命令ＥＤＧＥに応動するエッジ検出回路１０３１ｎを備えている。前記エッジ検出回路１０３１ｎは、高速論理信号用の入力インタフェース回路１３９Ｘに接続されたチャンネル端子１１ｎの入力論理変化に応動して、立上りまたは立下がりの少なくとも一方を検出記憶して報告信号７０３１ｎとして送信する１カウントの可逆カウンタ２０００ｎによって構成され、当該報告信号７０３１ｎを受信したマイクロプロセッサ１１１が指令信号６０３１ｎによって検出記憶信号をリセットすることによって次のエッジ検出が再開される。前記エッジ検出命令ＥＤＧＥは、高速論理信号用の入力インタフェース回路１３９Ｘが接続されている特殊ユニット１３０に対して適用され、対象となる入力番号Ｘと、検出結果が格納される補助リレー番号Ｍとをオペランドとして有する。当該特殊命令が実行されると前記可逆カウンタ２０００ｎの第一の設定レジスタ３００１ｎには１を超過する値が格納されると共に、第二の設定レジスタ３００２ｎには設定値１が格納され、前記第二の比較回路５００２ｎがアップ計数中に比較一致したことを記憶する上昇比較一致出力Ｐによって立上りが検出され、当該上昇比較一致出力Ｐの発生に伴って計数方向と計数入力論理とが反転し、前記第二の比較回路５００２ｎがダウン計数中に比較一致したことを記憶する下降比較一致出力Ｐによって立下りが検出され、前記上昇比較一致出力Ｐと下降比較一致出力Ｐとが報告信号７０３１ｎとして前記補助リレーＭに送信されて、当該補助リレーＭの動作をリセットすると検出再開指令が指令信号６０３１ｎによって指令ラッチメモリ６０００ｎへ送信される。つまり、可逆カウンタの上昇比較一致出力と下降比較一致出力によって入力信号の立上りまたは立下りが検出されるようになっている。したがって、可逆カウンタを有効活用して入力信号の論理変化を速やかに検出したり、シーケンス演算周期以下の短い入力信号パルスの到来を検出記憶することができる。
【０２１３】
また、前記論理回路部１０００ｎは、前記プログラムメモリ１１３Ａ内に格納されたパルス密度測定命令ＦＲＥＱに応動するパルス密度測定回路１０２０ｎを備えている。前記パルス密度測定回路１０２０ｎは、所定時間毎に計数現在値がリセットされる高速カウンタであって、リセット直前の計数最大値を記憶することによって入力パルス信号の周波数に比例したデジタル値を得て、当該測定周波数をピークホールドレジスタ４００２ｎに格納する。前記パルス密度測定命令ＦＲＥＱは、高速論理信号用の入力インタフェース回路１３９Ｘが接続されている特殊ユニット１３０に対して適用され、対象となる入力番号Ｘと、測定結果が格納されるデータレジスタ番号Ｄとをオペランドとして有する。当該特殊命令が実行されると前記ピークホールドレジスタ４００２ｎの内容が演算データ４０２０ｎとして前記データレジスタＤに転送格納される。つまり、特殊ユニットに内蔵された論理回路部は、プログラムメモリ内に格納されたパルス密度測定命令に応動するパルス密度測定回路を備えている。したがって、各入力チャンネルに割り当てられた１個の可逆カウンタを用いて構成されたパルス密度測定回路は、論理信号用の入力インタフェース回路に適用されたときには、例えばモータの回転パルス信号のパルス密度を測定して当該モータの回転速度を測定する用途に使用することができる。
【０２１４】
さらに、前記論理回路部１０００ｎは、前記プログラムメモリ１１３Ａ内に格納されたＰＷＭ出力命令ＰＷＭに応動するＰＷＭ出力回路１０５０ｎを備えている。前記ＰＷＭ出力回路１０５０ｎは、前記第一および第二の設定レジスタ３００１ｎ・３００２ｎの内容に基づいて所定の周期で可変デューティ（ＯＮ時間とＯＮ／ＯＦＦ周期との比率）のパルス幅変調信号を発生する。前記ＰＷＭ出力命令ＰＷＭは、論理信号用の出力インタフェース回路１４９Ｙが接続されている特殊ユニット１４０に対して適用され、対象となる出力番号と、出力パルスの周期とＯＮ幅とを確定するためのデータが格納されるデータレジスタ番号Ｄとをオペランドとして有する。当該特殊命令が実行されると前記出力パルスの周期とＯＮ幅またはＯＦＦ幅に関する二つのデータが設定データ３０５０ｎとして待機バッファレジスタ４００４ｎに一時格納され、当該一時格納データは１パルスの発生完了時点で前記第一および第二の設定レジスタ３００１ｎ・３００２ｎに再転送される。つまり、特殊ユニットに内蔵された論理回路部は、プログラムメモリ内に格納されたＰＷＭ出力命令に応動するＰＷＭ出力回路を備えている。したがって、各チャンネルに割り当てられた１個の可逆カウンタを用いて構成されたＰＷＭ出力回路は、論理信号用の出力インタフェース回路に適用されたときには、例えば電熱ヒータによる温度制御や白熱ランプによる調光制御などの電気負荷のＯＮ／ＯＦＦ制御を行う用途に使用することができる。
【０２１５】
実施の形態２．
（１）構成の詳細な説明
以下、この発明の実施の形態２によるプログラマブルコントローラのユニット構成図である図３０について、図１に示す実施の形態１の構成との相違点を中心として説明する。なお、図３０において、図１と同一符号は同一または相当部分を示している。図３０において、プログラマブルコントローラ１００Ｂは、ＣＰＵユニット１１０Ｂと、入出力ユニット１２０および１５０〜１８０と、終端ブロック１９０とによって構成されている。
【０２１６】
ＣＰＵユニット１１０Ｂは、例えばＡＣ１００Ｖ〜２４０Ｖの商用電源である外部電源１０９から給電されると共に、図示しない脱着コネクタを介して外部ツール１０８と接続され、入出力制御プログラムの書込みや運転状態の監視を行うことができるようになっている。ＣＰＵユニット１１０Ｂの内部には、マイクロプロセッサ１１１と、例えばマスクＲＯＭメモリまたは不揮発フラッシュメモリであるシステムメモリ１１２Ｂと、例えば不揮発フラッシュメモリであって、ユーザが作成した入出力制御プログラムが格納されるプログラムメモリ１１３Ｂと、例えばＲＡＭメモリであって、後述する入出力イメージメモリＸ・Ｙと補助リレーＭとデータレジスタＤとを包含するデバイスメモリ１１４ａと、後述する機能を有する転送仲介メモリ１１４ｂと、前記デバイスメモリ１１４ａの一部領域をバックアップするためのバッテリ１１５と、各入出力ユニットとデータ交信を行うためのバスインタフェース回路１１６と、警報表示器１１７と、前記外部ツール１０８とマイクロプロセッサ１１１とを接続するシリアルインタフェース１１８と、制御用電源１１９とが設けられている。この内、マイクロプロセッサ１１１、システムメモリ１１２Ｂ、プログラムメモリ１１３Ｂ、デバイスメモリ１１４ａ、転送仲介メモリ１１４ｂ、バスインタフェース１１６、シリアルインタフェース１１８とは互いにバス接続されている。なお、制御用電源１１９は、ＣＰＵユニット１１０Ｂの外部に設置することも可能であり、電源ユニットとＣＰＵユニットおよび所定点数の入出力ユニットによって基本ユニットが構成されるようになっている。
【０２１７】
システムメモリ１１２Ｂは、図１８および図１９で前述した各種制御プログラムを包含すると共に、プログラムメモリ１１３Ｂに格納されたシーケンス言語による入出力制御プログラムをマイクロプロセッサ１１１に対応した機械言語に変換してマイクロプロセッサ１１１を作動させるものとなっていて、これらのプログラムは製品の出荷段階でプログラマブルコントローラのメーカによって格納されたものとなっている。
【０２１８】
プログラムメモリ１１３Ｂには、例えばパーソナルコンピュータである外部ツール１０８を用いてユーザによって作成された入出力制御用のシーケンスプログラムが、シリアルインタフェース１１８を介して書込みされている。その一例となるものが前述した図２０〜図２５、図２７、図２９と、後述する図３６で表現されたシーケンス図であって、パーソナルコンピュータの画面上でシーケンス図を作画すると自動的にシーケンスプログラムが作成されるようになっている。
【０２１９】
ＣＰＵユニット１１０Ｂの端面位置には前述した入出力ユニット１２０および１５０〜１８０が接続されている。入出力ユニット１２０は、図１で前述した汎用の入出力ユニットであるのに対し、入出力ユニット１５０〜１８０は、開閉センサやＯＮ／ＯＦＦ動作の論理負荷、或はアナログセンサやアナログ負荷に対応するための特殊ユニットとなっている。
【０２２０】
以下、図３０に示す特殊ユニット１５０〜１７０の内部構成図である図３１〜図３３について、図２および図３に示す構成との相違点を中心として説明する。なお、各図において、同一符号は同一または相当部分を示している。図３１において、特殊ユニット１５０は、８点のアナログセンサ１０４ａに接続される入力端子１５０Ｘと、８点の高速論理動作を行う電気負荷１０４ｙに接続される出力端子１５０Ｙとを備えている。入力端子１５０Ｘと集積回路素子１０に設けられた第一のポート１１との間には、アナログ回路用の入力インタフェース回路１５９Ｘが設けられている。入力インタフェース回路１５９Ｘは、入力電圧に比例した周波数のパルスを発生する電圧／周波数変換器１５３ｎと、入力絶縁回路１５１ｎとが各チャンネル番号ｎ＝０〜７毎に直列接続されている。出力端子１５０Ｙと集積回路素子１０に設けられた第二のポート１２との間には、ＯＮ／ＯＦＦ動作用の出力インタフェース回路１５９Ｙが設けられている。出力インタフェース回路１５９Ｙは、パワートランジスタである出力素子１５７ｎと、出力絶縁回路１５６ｎとが各チャンネル番号ｎ＝０〜７毎に直列接続されている。
【０２２１】
電子基板１９ａｙには、入力端子１５０Ｘと入力インタフェース回路１５９Ｘ、出力端子１５０Ｙと出力インタフェース回路１５９Ｙ、バス接続用コネクタ１５０Ｚ並びに集積回路素子１０が搭載されて特殊ユニット１５０を構成している。第一の識別端子１４ａは、グランド回路ＧＮＤに接続されていて入力インタフェース回路が１５９Ｘがアナログ入力用であることを示し、第二の識別端子１４ｂは、定電圧電源線Ｖｃｃに接続されて出力インタフェース回路１５９Ｙが論理信号用のものであることを示している。第一の信号端子１６ａは、入力インタフェース回路が後述の比較入力回路１８９Ｘであるときにグランド回路ＧＮＤに接続され、電圧／周波数変換器が使用された入力インタフェース回路の場合は定電圧電源線Ｖｃｃに接続される。第二の信号端子１６ｂは、定電圧電源線Ｖｃｃに接続されて出力インタフェース回路１５９Ｙが高速論理信号用のものであることを示している。
【０２２２】
図３２において、特殊ユニット１６０は、８点の開閉センサ１０５ｘに接続される入力端子１６０Ｘと、８点のアナログ負荷１０５ｂに接続される出力端子１６０Ｙとを備えている。入力端子１６０Ｘと集積回路素子１０に設けられた第一のポート１１との間には、高速論理回路用の入力インタフェース回路１６９Ｘが設けられている。入力インタフェース回路１６９Ｘは、入力絶縁回路１６１ｎと、入力フィルタとなる例えば時定数で５μｓ程度の比較的短い時定数の入力フィルタ１６２ｎとが各チャンネル番号ｎ＝０〜７毎に直列接続されている。出力端子１６０Ｙと集積回路素子１０に設けられた第二のポート１２との間には、アナログ負荷用の出力インタフェース回路１６９Ｙが設けられている。出力インタフェース回路１６９Ｙは、出力絶縁回路１６６ｎと、図示しない出力素子となる演算増幅器を含む平滑回路１６８ｎとが各チャンネル番号ｎ＝０〜７毎に直列接続されている。当該平滑回路１６８ｎは、第二のポート１２の各チャンネル端子１２ｎが発生するパルス幅変調信号を平滑化して、その開閉デューティに比例したアナログ電圧を得るためのものとなっている。
【０２２３】
電子基板１９ｘｂには、入力端子１６０Ｘと入力インタフェース回路１６９Ｘ、出力端子１６０Ｙと出力インタフェース回路１６９Ｙ、バス接続用コネクタ１６０Ｚ並びに集積回路素子１０が搭載されて特殊ユニット１６０を構成している。第一の識別端子１４ａは、定電圧電源線Ｖｃｃに接続されていて入力インタフェース回路が１６９Ｘが論理信号用であることを示し、第二の識別端子１４ｂは、グランド回路ＧＮＤに接続されて出力インタフェース回路１６９Ｙがアナログ信号のものであることを示している。第一の信号端子１６ａは、定電圧電源線Ｖｃｃに接続されて出力インタフェース回路１６９Ｘが高速論理信号用のものであることを示し、第二の信号端子１６ｂは、論理レベル「Ｈ」となっていて後述のアナログ比較用ではないことを意味している。
【０２２４】
図３３において、特殊ユニット１７０は、８点のアナログセンサ１０６ａに接続される入力端子１７０Ｘと、８点のアナログ負荷１０６ｂに接続される出力端子１７０Ｙとを備えている。入力端子１７０Ｘと集積回路素子１０に設けられた第一のポート１１との間には、アナログ回路用の入力インタフェース回路１７９Ｘが設けられている。入力インタフェース回路１７９Ｘは、入力電圧に比例した周波数のパルスを発生する電圧／周波数変換器１７３ｎと入力絶縁回路１７１ｎとが各チャンネル番号ｎ＝０〜７毎に直列接続されている。出力端子１７０Ｙと集積回路素子１０に設けられた第二のポート１２との間には、アナログ負荷用の出力インタフェース回路１７９Ｙが設けられている。出力インタフェース回路１７９Ｙは、出力絶縁回路１７６ｎと、図示しない出力素子となる演算増幅器を含む平滑回路１７８ｎとが各チャンネル番号ｎ＝０〜７毎に直列接続されていて、当該平滑回路１７８ｎは、第二のポート１２の各チャンネル端子１２ｎが発生するパルス幅変調信号を平滑化して、その開閉デューティに比例したアナログ電圧を得るためのものとなっている。
【０２２５】
電子基板１９ａｂには、入力端子１７０Ｘと入力インタフェース回路１７９Ｘ、出力端子１７０Ｙと出力インタフェース回路１７９Ｙ、バス接続用コネクタ１７０Ｚ並びに集積回路素子１０が搭載されて特殊ユニット１７０を構成している。第一および第二の識別端子１４ａおよび１４ｂは、グランド回路ＧＮＤに接続されてアナログ入出力用であることを示し、第一および第二の信号端子１６ａおよび１６ｂは、論理レベル「Ｈ」になっていて後述のアナログ比較用ではないことを意味している。
【０２２６】
以下、図４に示す論理回路部１０００ｎをアナログ信号用のパルス密度測定回路１０２１ｎとした場合のブロック図である図３４と、アナログ負荷用のＰＷＭ出力回路１０５１ｎとした場合のブロック回路図である図３５について説明する。なお、このアナログ信号用のパルス密度測定回路１０２１ｎは、図６で示されたパルス密度測定回路１０２０ｎの代替として使用できるものとなっている。また、ＰＷＭ出力回路１０５１ｎは、図１１で示されたＰＷＭ出力回路１０５０ｎと同一構成のものであるが、ＤＡ変換命令に対応した設定データとなっている。
【０２２７】
図３４において、パルス密度測定回路１０２１ｎ（ｎ＝０〜７）を構成する場合の可逆カウンタ２０００ｎは、チャンネル端子１１ｎの入力信号が計数入力端子ＩＮに供給されてアップ計数動作を行うように構成されていて、第一の設定レジスタ３００１ｎには、３２ビット数値の上限値が設定データ３０２１ｎによって格納されるようになっている。
【０２２８】
共通トリガ回路９００２は、一定周期Ｔ０ごとに短いパルスのトリガ信号Ｐ０とＱ０を発生するようになっていて、トリガ信号Ｐ０によって現在値レジスタ４００１ｎの計数現在値をピークホールドレジスタ４００２ｎへ転送し、続くトリガ信号Ｑ０によって可逆カウンタ２０００ｎのリセット端子ＲＳＴにリセット信号を供給する。その結果、現在値レジスタ４００１ｎの内容はゼロにリセットされるようになっている。したがって、ピークホールドレジスタ４００２ｎには、一定周期Ｔ０毎にリセットされる可逆カウンタ２０００ｎのリセット直前の最大計数値が毎回格納され、この最大計数値がチャンネル端子１１ｎに与えられた電圧／周波数変換器のパルス密度（即ちパルス周波数）となって、演算データ４０２１ｎによってマイクロプロセッサ１１１に送信されるようになっている。
【０２２９】
一方、第一の設定レジスタ３００１ｎには最大数値が設定されるのに対し、第二の設定レジスタ３００２ｎには設定データ３０２１ｎによって中間データが設定されるようになっている。この中間データは入力された最大アナログ信号電圧に対応した電圧／周波数変換器の出力周波数の約１／２に相当した値となっている。第二の比較回路５００２ｎは、現在値レジスタ４００１ｎの計数現在値が第二の設定レジスタ３００２ｎに格納されている中間データ以上となったときに判定記憶回路Ｓ２をセットして、当該判定記憶回路Ｓ２の出力は上昇比較一致出力Ｐとして報告信号７０２１ｎによってマイクロプロセッサ１１１へ送信される。但し、判定記憶回路Ｓ２は、トリガ信号Ｐ０によって一瞬リセットされ、トリガ信号Ｑ０によって可逆カウンタ２０００ｎがリセットされるまでの短い時間（トリガ信号の時間幅）において第二の比較回路５００２ｎによってセットされるものである。
【０２３０】
したがって、アナログ信号電圧に替わって、ゼロまたは最大電圧のどちらかが入力された場合には、入力電圧がゼロであれば、第二の比較回路５００２ｎの出力は論理レベル「Ｌ」であるため、上昇比較一致出力Ｐの論理レベルは「Ｌ」となる。入力電圧が最大であれば、第二の比較回路５００２ｎの出力は論理レベル「Ｈ」であるため、上昇比較一致出力Ｐの論理レベルは「Ｈ」となる。これは、特殊ユニット１５０および１７０は、８点のアナログ入力信号が扱えるが、もしもアナログ入力信号が１点しかない用途においては、残りの７点をＯＮ／ＯＦＦの論理入力として使用することができることを意味しており、最大入力電圧のデジタル変換値を演算データ４０２１ｎによってマイクロプロセッサ１１１に読み出して、マイクロプロセッサ１１１側で中間値との比較を行って論理判定するのに比べてユーザの処理が簡単となるものである。
【０２３１】
図３５おいて、ＰＷＭ出力回路１０５１ｎ（ｎ＝０〜７）を構成する場合の可逆カウンタ２０００ｎは、共通クロック回路９００１が発生するクロック信号をアップ計数するようになっていて、第一の設定レジスタ３００１ｎには、目標とするパルス幅変調信号信号８０の周期Ｔが格納され、第二の設定レジスタ３００２ｎには、目標とするパルス幅変調信号信号８０のＯＦＦ時間幅が格納されるようになっている。
【０２３２】
マイクロプロセッサ１１１は、設定データ３０５１ｎによってこれ等の設定値を待機バッファレジスタ４００４ｎに送信し、待機バッファレジスタ４００４ｎの内容は、パルス幅変調信号８０の各周期の終了時点で第一および第二の設定レジスタ３００１ｎ・３００２ｎへ転送されるようになっている。可逆カウンタ２０００ｎは、現在値レジスタ４００１ｎの計数現在値が上昇して第二の設定レジスタ３００２ｎに格納されているＯＦＦ時間に相当する設定値に達すると、上昇比較一致出力Ｐが作動し、これがチャンネル端子１２ｎから出力インタフェース回路１６９Ｙと出力端子１６０Ｙを介してアナログ負荷１０５ｂの対応チャンネルに供給される。特殊ユニット１７０および１８０の場合も同様である。
【０２３３】
可逆カウンタ２０００ｎは、現在値レジスタ４００１ｎの計数現在値がさらに上昇して第一の設定レジスタ３００１ｎに格納されている周期に相当する設定値に達すると、カウントアップ出力Ｑが作動し、その結果、現在値レジスタ４００１ｎの内容がリセットされると共に、上昇比較一致出力Ｐもリセットされてチャンネル端子１２ｎの出力はＯＦＦとなり、待機バッファレジスタ４００４ｎ内の設定データが第一および第二の設定レジスタ３００１ｎ・３００２ｎへ転送される。
【０２３４】
したがって、パルス幅変調信号８０の周期Ｔはクロック信号の周期τと第一の設定レジスタ３００１ｎに格納された設定値Ｎ１との積τ×Ｎ１に等しくなり、パルス幅変調信号８０のＯＦＦ時間幅はクロック信号の周期τと第二の設定レジスタ３００２ｎに格納された設定値Ｎ２との積τ×Ｎ２に等しくなり、チャンネル端子１２ｎから出力されるパルス幅変調信号８０のＯＮ時間幅はτ×（Ｎ１−Ｎ２）で算出されるものとなる。なお、もしも上昇比較一致出力Ｐの反転論理出力をチャンネル端子１２ｎに供給するようにすれば、ＯＮ／ＯＦＦの概念が反転するので、τ×Ｎ２がＯＮ幅時間に相当することになる。このため、論理反転した場合に、第二の設定レジスタ３００２ｎに格納される設定値Ｎ２はＯＮ時間幅に対応した設定値であるということになる。
【０２３５】
特殊ユニット１６０、１７０および１８０は、８点のアナログ出力が行えるようになっているが、もしもアナログ出力を１点しか必要としない用途においては、残りの７点をＯＮ／ＯＦＦ動作の軽負荷に適用することができる。即ち、ＰＷＭ命令が適用されていないアナログ出力チャンネルについては、ＰＷＭ出力は停止されており、デバイスメモリ１１４ａの中の出力イメージメモリの内容が図１９の出力処理９２３によって出力ラッチメモリ１６５、１７５、１８５に送信されるようになっている。
【０２３６】
（２）作用・動作の詳細な説明
以上のとおりに構成されたプログラマブルコントローラにおいて、マイクロプロセッサ１１１の基本動作は図１８および図１９で説明したとおりであるので省略し、アナログ入出力命令の使用例である図３６について説明する。図３６において、（Ａ１）は図示しないシーケンス回路によって補助リレーＭ０１００が駆動されたときに動作するＡＤ変換命令ＡＮＲＤを示した回路ブロックである。ＡＤ変換命令ＡＮＲＤは、特殊ユニット１５０の入力信号Ｘ０１０によって発生する電圧／周波数変換器１５３ｎのパルス密度を測定して、これをデータレジスタＤ０１４０へ転送することによってＡＤ変換値を得る特殊命令となっている。例えばアナログセンサ１０４ａの信号電圧が０〜１０Ｖである時に、電圧／周波数変換器１５３ｎの発生周波数が０〜１００ＫＨｚであるとし、図３４に示す共通トリガ信号回路９００２の信号周期Ｔ０＝１０ｍｓｅｃであるとすれば、入力信号電圧が１０Ｖのときのピークホールドレジスタ４００２ｎの値は１０００となって、測定電圧の１００倍の値がデータレジスタＤ０１４０に格納されることになる。
【０２３７】
しかし、電圧／周波数変換器１５３ｎのバラツキ変動が想定されるので、予め既知の信号電圧をデジタル変換した値を大小２点で測定し、校正係数αとバイアス補正値βを算出しておくことによって、（Ａ２）、（Ａ３）で示すとおり、掛け算命令ＭＵＬと加算命令ＡＤＤによって校正された検出電圧をデータレジスタＤ０１４２に得るようになっている。なお、（Ａ４）で示すとおり、ＡＤ変換命令ＡＮＲＤの第二オペランドに補助リレー番号が指定されると、第二の設定レジスタ３００２ｎに定数５００が格納されるようになっている。その結果、論理信号入力として１０Ｖが入力されると上昇比較一致出力Ｐの論理レベルは「Ｈ」となり、論理信号入力として０Ｖが入力されると上昇比較一致出力Ｐの論理レベルは「Ｌ」となって、報告信号７０２１ｎによって指定された補助リレー８０５０へ転送されるようになっている。
【０２３８】
図３６において、（Ｂ３）は図示しないシーケンス回路によって補助リレーＭ０１０１が駆動されたときに動作するＤＡ変換命令ＡＮＷＲを示した回路ブロックである。ＤＡ変換命令ＡＮＷＲは、データレジスタＤ０２５０の内容を周期とし、続く番号のデータレジスタＤ０２５１の内容をデューティとするパルス幅変調信号を発生して、平滑回路１６８ｎによって平滑されたアナログ出力電圧を特殊ユニット１６０の出力端子Ｙ０２０に出力するようになっている。この事例では、図３６（Ｂ２）で示すとおり、データレジスタＤ０２５０には転送命令ＭＯＶによって定数Ｋ１００００が格納されている。また、（Ｂ１）で示した除算命令ＤＩＶでは、出力したい電圧が格納されているデータレジスタＤ０２４０の内容を、アナログ出力電圧の最大値で割って必要とされるデューティを算出し、この値をデータレジスタＤ０２５１に格納するようになっている。例えばアナログ出力電圧が０〜１０Ｖであるとすれば、γ＝１０であるが、電源電圧のバラツキ変動を考慮して、初期校正によって適切な校正定数γが使用されるようになっている。
【０２３９】
ＤＡ変換命令ＡＮＷＲが駆動されると、図３５に示す可逆カウンタ２０００ｎの第一の設定レジスタ３００１ｎには、データレジスタＤ０２５０の値、即ちＫ１００００が転送され、共通クロック信号の周期をτ＝１μｓｅｃとすると、チャンネル端子１２ｎから得られるＰＷＭ信号の周期は１０ｍｓｅｃとなる。もしもＯＮデューティが６０％であれば第二の設定レジスタ３００２ｎにはＯＦＦ時間幅となる４０００μｓｅｃが格納されることになる。もしもＯＮデューティが１００％であれば第二の設定レジスタ３００２ｎにはＯＦＦ時間幅となる０μｓｅｃが格納され、平滑回路１６８ｎの出力電圧はＶｍａｘ＝１０Ｖとなる。なお、ＤＡ変換命令ＡＮＷＲが適用されていないアナログ出力に対しては、ＰＷＭ出力は停止した状態にして図１９の出力処理９２３によってＯＮ／ＯＦＦ指令を出力ラッチメモリ１６５に送信し、チャンネル端子１２ｎからＯＮ／ＯＦＦ駆動出力を発生することができるようになっている。
【０２４０】
（３）その他の例
次に、図３０に示す特殊ユニット１８０の内部構成図である図３７について、図２および図３の構成との相違点を中心として説明する。なお、各図において、同一符号は同一または相当部分を示している。図３７において、特殊ユニット１８０は、８点のアナログセンサ１０７ａに接続可能な入力端子１８０Ｘと、８点のアナログ負荷１０７ｂに接続可能な出力端子１８０Ｙとを備えている。入力端子１８０Ｘと集積回路素子１０に設けられた第一のポート１１との間には、アナログ回路用の入力インタフェース回路１８９Ｘが設けられている。入力インタフェース回路１８９Ｘは、比較回路１８１１ｎと入力絶縁回路１８１ｎとが各チャンネル番号ｎ＝０〜７毎に直列接続されている。比較回路１８１１ｎの一方の入力端子にはアナログセンサ１０７ａからの入力信号電圧が印加され、他方の入力端子には後述の出力インタフェース回路１８９Ｙから得られる出力信号電圧が印加されて、両入力電圧の大小比較結果が入力絶縁回路１８１ｎを介して第一のポート１１の各チャンネル端子１１ｎに入力されるようになっている。出力端子１８０Ｙと集積回路素子１０に設けられた第二のポート１２との間には、アナログ負荷用の出力インタフェース回路１８９Ｙが設けられている。出力インタフェース回路１８９Ｙは、出力絶縁回路１８６ｎと、図示しない出力素子となる演算増幅器を含む平滑回路１８８ｎとが各チャンネル番号ｎ＝０〜７毎に直列接続されていて、当該平滑回路１８８ｎは、第二のポート１２の各チャンネル端子１２ｎが発生するパルス幅変調信号を平滑化して、その開閉デューティに比例したアナログ電圧を得るためのものとなっている。
【０２４１】
電子基板１８ａｂには、入力端子１８０Ｘと入力インタフェース回路１８９Ｘ、出力端子１８０Ｙと出力インタフェース回路１８９Ｙ、バス接続用コネクタ１８０Ｚ並びに集積回路素子１０が搭載されて特殊ユニット１８０を構成している。第一および第二の識別端子１４ａおよび１４ｂは、グランド回路ＧＮＤに接続されてアナログ入出力用であることを示し、第一および第二の信号端子１６ａおよび１６ｂがグランド回路ＧＮＤに接続されて入出力インタフェース回路１８９Ｘおよび１８９Ｙがアナログ比較用のインタフェース回路であることを示している。
【０２４２】
特殊ユニット１８０は、アナログセンサ１０７ａの信号電圧と所定の可変基準電圧とを比較してその判定結果を得る用途に適している。この場合、第二のポート１２は可変基準電圧を得るために使用されているが、例えばアナログ比較が１点のみであれば、残りの７点はアナログ負荷１０７ｂに対するアナログ信号を供給したり、アナログ負荷が少なければ軽負荷用の論理出力信号用としても使用可能である。なお、アナログ比較に対する応用命令は、図３６における（Ａ４）の場合と同様のＡＮＲＤ命令が使用され、第一オペランドには入力番号、第二オペランドには比較結果を格納する補助リレー番号が指定されるようになっている。
【０２４３】
以上の説明において、プログラマブルコントローラ１００Ａおよび１００Ｂは、ＣＰＵユニットと入出力ユニットがそれぞれ孤立した筐体内に収納され、連結コネクタによって相互に接続されるトレーン型のプログラマブルコントローラとして説明した。しかし、ＣＰＵユニットや各入出力ユニットを共通の台板上に設置し、当該台板はマザーボードによって相互にバス接続された複数のコネクタを備え、各入出力ユニットをこのコネクタに接続するような形態のものであってもよく、あるいはまた、ＣＰＵユニットと入出力ユニットを一つの筐体に収納したユニット型のプログラマブルコントローラであってもよい。また、ＣＰＵユニットと各入出力ユニット間の交信は多数のデータバスとアドレスバスによって行うようになっているが、実態としてはデータバスとアドレスバスは兼用バスとなっていて、その他にコントロールバスを設けて信号線数の削減が行われていて、ＣＰＵユニットと特殊ユニット間の交信については直並列変換器を用いたシリアルバスであってもよい。また、特殊命令の実行完了報告を速やかに行うためにマイクロプロセッサに対する割込み制御信号線を設けることも可能である。
【０２４４】
また、以上の説明では、各種高速カウンタや高速パルス出力に対して拡張番号と配置番号による個別番号を与え、特殊命令とこの個別番号との組み合わせによって論理回路部１０００ｎのパラメータメモリ８０００ｎの内容が定まるようになっているが、特殊命令に対して拡張番号に相当する番号をつけ（例えば、高速カウンタ命令ＨＳＣは、ＨＳＣ００〜ＨＳＣ９６のように表現）、入出力番号はそのままにして拡張番号をつけないでおくことも可能である。
【０２４５】
また、図２に示す論理回路用の入力インタフェース回路において、入力フィルタ１３２ｎは最高の入力パルス周波数に対応できるように例えば５μｓｅｃとしたが、様々な用途の中でもっと低い周波数のパルスを計数したい場合であれば、入力フィルタ１３２ｎの時定数を大きくしてノイズ誤動作を防ぐことが望ましい。このため、図５で説明した１〜６４ｍｓｅｃの可変フィルタ回路とは別に、５〜２０μｓｅｃ程度の可変フィルタを追加しておくことも可能である。
【０２４６】
また、以上の説明において、各論理回路部１０００ｎはパラメータメモリ８０００ｎを備え、マイクロプロセッサ１１１は適用された応用命令に対応したパラメータデータを送信するようになっているが、論理回路部１０００ｎは予め複数のパラメータデータを包含し、マイクロプロセッサ１１１によってどのパラメータデータを使用するのかを選択するようにしても良く、この場合にはパラメータデータの選択番号がパラメータとして送信されたことになるものである。さらに、以上の説明において、システムメモリ１１２Ａおよび１１２Ｂは、実施の形態１および２において異なる符号となっているが、実態は同一内容のシステムプログラムが格納されているものである。
【０２４７】
（４）実施の形態２の要点と特徴
以上の説明で明らかなとおり、この発明の実施の形態２によるプログラマブルコントローラ１００Ｂは、マイクロプロセッサ１１１と、当該マイクロプロセッサ１１１と協働するシステムメモリ１１２Ｂと、ユーザによって作成されたシーケンスプログラムが外部ツール１０８から転送書込みされるプログラムメモリ１１３Ｂと、入出力情報および制御情報を記憶するための入出力イメージメモリＸ・Ｙと補助リレーＭとデータレジスタＤとを包含するデバイスメモリ１１４ａとを有するＣＰＵユニット１１０Ｂと、当該ＣＰＵユニットに対してバス接続される単独または複数の入出力ユニット１２０・１５０〜１８０を備えると共に、当該入出力ユニットの一部または全部が特殊入出力処理機能を分担して前記マイクロプロセッサ１１１の制御機能を補完するための集積回路素子１０を包含した特殊ユニット１５０〜１８０となっている。前記特殊ユニット１５０〜１８０は、複数の外部センサまたは外部負荷の少なくとも一方または双方に接続される外部接続用端子１５０Ｘ〜１８０Ｘ・１５０Ｙ〜１８０Ｙと、当該外部接続端子に接続される多チャンネルの入力インタフェース回路１５９Ｘ〜１８９Ｘまたは出力インタフェース回路１５９Ｙ〜１８９Ｙと、制御仕様の一部分が可変設定できて入出力制御に共用される集積回路素子１０と、前記マイクロプロセッサ１１１と接続するためのバス接続用端子１５０Ｚ〜１８０Ｚとを搭載した電子基板とを備えている。前記集積回路素子１０は、前記入力インタフェース回路１５９Ｘ〜１８９ＸからＯＮ／ＯＦＦ動作する論理信号が入力される第一のポート１１と、前記出力インタフェース回路１５９Ｙ〜１８９Ｙに対してＯＮ／ＯＦＦ動作する論理信号を出力する第二のポート１２と、各チャンネル番号ｎに対応するパラメータメモリ８０００ｎと、前記マイクロプロセッサ１１１から当該パラメータメモリに送信された回路編成データによって入出力処理のための動作仕様が決定される論理回路部１０００ｎを備えている。
【０２４８】
前記論理回路部１０００ｎは、報告ビットメモリ７０００ｎと演算レジスタ４０００ｎと設定レジスタ３０００ｎと指令ラッチメモリ６０００ｎと可逆カウンタ２０００ｎを包含し、前記可逆カウンタ２０００ｎは、前記演算レジスタ４０００ｎの一部となる現在値レジスタ４００１ｎを備えている。前記パラメータメモリ８０００ｎに送信される回路編成データにより、複数種類の高速入力処理と複数種類の高速出力処理が行われる。前記外部センサからの入力信号がアナログ信号である場合には、前記入力インタフェース回路１５９Ｘ・１７９Ｘ・１８９Ｘは、入力信号に比例した周波数のパルスまたは比較判定論理信号を前記集積回路素子１０に供給し、前記外部負荷がアナログ負荷である場合に、前記集積回路素子１０は出力信号に比例したＯＮ／ＯＦＦ比率のパルス出力を発生して、前記出力インタフェース回路１６９Ｙ〜１８９Ｙは受信したパルス出力信号を平滑して外部負荷に供給する。
【０２４９】
また、前記ＣＰＵユニット１１０Ｂは、前記特殊ユニット１５０〜１８０とのデータ交信を行うための転送仲介メモリ１１４ｂを備えると共に、前記システムメモリ１１２Ｂは編成処理手段９０８とデータ変換・転送手段９２１となる制御プログラムを包含している。前記編成処理手段９０８は、回路編成データを前記パラメータメモリ８０００ｎに送信すると共に、転送仲介メモリ１１４ｂのアドレス編成を行う。前記データ変換・転送手段９２１は、前記転送仲介メモリ１１４ｂを介して前記特殊命令で指定されたデバイスメモリ１１４ａと前記設定レジスタ３０００ｎ・指令ラッチメモリ６０００ｎまたは前記演算レジスタ４０００ｎ・報告ビットメモリ７０００ｎとの間のデータ交信を行う。前記特殊命令は、命令の種別を示す命令語と順不同の第一のオペランド、および第二または第三のオペランドの少なくとも一方とによって構成されている。
【０２５０】
また、前記論理回路部１０００ｎに設けられた可逆カウンタ２０００ｎの一部または全部は、現在値レジスタ４００１ｎと第一の設定レジスタ３００１ｎと第二の設定レジスタ３００２ｎと第一の比較回路５００１ｎと第二の比較回路５００２ｎとを備えている。前記現在値レジスタまたは第一および第二の設定レジスタには、前記特殊命令が実行されたときに前記マイクロプロセッサ１１１から前記転送仲介メモリ１１４ｂを介して数値設定が行われる。
【０２５１】
また、前記特殊ユニット１５０〜１８０に搭載された前記論理回路部１０００ｎは、全チャンネルに対応する汎用入力回路１０９１または汎用出力回路１０９２を備えている。前記汎用入力回路１０９１は、前記第一のポート１１に接続された入力信号が入力処理用のデータセレクタ１５４・１６４・１７４・１８４を介して前記デバイスメモリ１１４ａに割り付けられた入力イメージメモリ領域に送信される入力信号中継回路であって、前記データセレクタから前記入力イメージメモリへの転送は前記システムメモリ１１２Ｂに格納されている制御プログラムである入力処理手段９１１によって実行される。前記汎用出力回路１０９２は、前記デバイスメモリ１１４ａに割り付けられた出力イメージメモリ領域から前記論理回路部１０００ｎに設けられた出力ラッチメモリ１５５・１６５・１７５・１８５を介して前記第二のポート１２に接続された出力回路に出力する出力信号中継回路であって、前記出力イメージメモリから前記出力ラッチメモリへの転送は前記システムメモリ１１２Ｂに格納されている制御プログラムである出力処理手段９２３によって実行される。前記汎用入出力回路１０９１・１０９２は、前記論理回路部１０００ｎが高速入出力回路またはアナログ入出力回路として使用されていないときに有効となる。
【０２５２】
また、前記特殊ユニット１５０〜１７０は、前記外部接続端子１５０Ｘ〜１７０Ｘ、１５０Ｙ〜１７０Ｙに接続される多チャンネルの入力インタフェース回路１５９Ｘ〜１７９Ｘおよび出力インタフェース回路１５９Ｙ〜１７９Ｙの双方を備えている。前記入力インタフェース回路１５９Ｘ〜１７９Ｘは、高速入力パルスに対応した小さな時定数の入力フィルタを包含するか、または高速入力パルスが入力されない大きな時定数の入力フィルタを有する開閉センサ用の入力インタフェース回路１６９Ｘであるか、または電圧／周波数変換器を含むアナログセンサ用の入力インタフェース回路１５９Ｘ・１７９Ｘのいずれかに分類される。前記出力インタフェース回路１５９Ｙ〜１７９Ｙは、高速出力パルスに対応した高速開閉動作を行うトランジスタを出力素子として包含するか、または高速出力パルスが出力されない低速開閉動作を行うトランジスタを出力素子として包含する出力インタフェース回路１５９Ｙであるか、または前記論理回路部１０００ｎが発生するパルス幅変調信号出力に対する平滑回路１６８ｎ・１７８ｎを包含するアナログ負荷用の出力インタフェース回路１６９Ｙ・１７９Ｙのいずれかに分類される。前記特殊ユニット１５０〜１７０は、高速論理入力または低速論理入力またはアナログ入力のいずれか一つと、高速論理出力または低速論理出力またはアナログ出力のいずれか一つとの任意の組合せの内で、低速論理入力と低速論理出力との組合せ以外の組合せによる複数種類の特殊ユニット１５０〜１７０が適用可能に構成されている。つまり、特殊ユニットは、入力および出力インタフェース回路の双方を備え、各入力および出力インタフェース回路は多様な仕様のものが適用できるようになっている。したがって、各チャンネルに設けられた可逆カウンタを様々な特殊用途に適用して、余すことなく活用することによって経済効果を高めることができる。
【０２５３】
また、前記集積回路素子１０または当該集積回路素子を搭載した特殊ユニット１５０〜１７０は、カード情報格納メモリ９０００を備えると共に、前記システムメモリ１１２Ｂは、設定異常検出手段９０５となる制御プログラムを包含している。前記カード情報格納メモリ９０００には、前記第一および第二のポート１１および１２に対して論理信号用のインタフェース回路が接続されているか、アナログ信号用のインタフェース回路が接続されているかを識別する第一および第二の識別端子情報１４ａおよび１４ｂと、論理信号用のインタフェース回路である場合には低速論理信号用であるか高速論理信号用であるかを識別する第一および第二の信号端子情報１６ａおよび１６ｂが格納される。前記設定異常検出手段９０５は、前記第一および第二のポート１１および１２に接続されている入出力インタフェース回路の種別と、前記プログラムメモリ１１３Ｂに格納されている命令内容が不一致であることを検出して、運転停止および異常報知を行う。
【０２５４】
また、前記論理回路部１０００ｎは、前記プログラムメモリ１１３Ｂ内に格納されたＡＤ変換命令ＡＮＲＤに応動するパルス密度測定回路１０２１ｎを備えている。前記パルス密度測定回路１０２１ｎは、所定時間毎に計数現在値がリセットされる高速カウンタであって、リセット直前の計数最大値を記憶することによって入力パルス信号の周波数に比例したデジタル値を得て、当該測定周波数をピークホールドレジスタ４００２ｎに格納する。前記ＡＤ変換命令ＡＮＲＤは、アナログ信号用の入力インタフェース回路１５９Ｘ・１７９Ｘが接続されている特殊ユニット１５０および１７０に対して適用され、対象となる入力番号Ｘと、当該入力番号の電圧／周波数変換器１５３ｎ・１７３ｎが発生するパルス周波数の測定結果が格納されるデータレジスタ番号Ｄとをオペランドとして有する。当該特殊命令が実行されると前記ピークホールドレジスタ４００２ｎの内容が演算データ４０２１ｎとして前記データレジスタＤに転送格納される。つまり、特殊ユニットに内蔵された論理回路部は、プログラムメモリ内に格納されたＡＤ変換命令に応動するパルス密度測定回路を備えている。したがって、各入力チャンネルに割り当てられた１個の可逆カウンタを用いて構成されたパルス密度測定回路は、電圧／周波数変換器を含むアナログ信号用の入力インタフェース回路に適用されたときには、入力されたアナログ信号電圧に比例したデジタル変換値を得るＡＤ変換器として使用することができる。
【０２５５】
また、前記パルス密度測定回路１０２１ｎは、前記可逆カウンタ２０００ｎの第二の設定レジスタ３００２ｎに対して中間設定値が格納され、アナログセンサ１０４ａ・１０６ａによる入力信号電圧の平均値が当該中間設定値に対応した入力電圧以上であれば、アップ計数中に前記第二の比較回路５００２ｎが比較一致出力を発生したことを記憶する上昇比較一致出力Ｐが作動し、チャンネル端子１１ｎの入力信号電圧の平均値が前記中間設定値に対応した入力電圧未満であれば、アップ計数中に前記第二の比較回路５００２ｎが比較一致出力Ｐを発生せず前記上昇比較一致出力Ｐがリセットされる回路である。前記ＡＤ変換命令ＡＮＲＤは、アナログ信号用の入力インタフェース回路１５９Ｘ・１７９Ｘが接続されている特殊ユニット１５０および１７０に対して適用され、対象となる入力番号Ｘと、前記報告信号７０２１ｎが格納される補助リレー番号Ｍとをオペランドとして有する。当該特殊命令が実行されると前記上昇比較一致出力Ｐの内容が報告信号７０２１ｎとして送信されて前記補助リレーＭを駆動する。つまり、パルス密度測定回路は、第二の設定レジスタに中間設定値が格納されるようになっている。したがって、アナログ入力信号用として適用された特殊ユニットにおいて、必要とされるアナログ入力信号の点数が少ない場合に、残りのアナログ入力端子をＯＮ／ＯＦＦ動作の論理信号入力として使用してムダな空き端子が発生しないようにすることができる。
【０２５６】
また、前記論理回路部１０００ｎは、前記プログラムメモリ１１３Ｂ内に格納されたＤＡ変換命令ＡＮＷＲに応動するＰＷＭ出力回路１０５１ｎを備えている。前記ＰＷＭ出力回路１０５１ｎは、前記第一および第二の設定レジスタ３００１ｎ・３００２ｎの内容に基づいて所定の周期で可変デューティ（ＯＮ時間とＯＮ／ＯＦＦ周期との比率）のパルス幅変調信号を発生する。前記ＤＡ変換命令ＡＮＷＲは、アナログ信号用の出力インタフェース回路１６９Ｙ・１７９Ｙ・１８９Ｙが接続されている特殊ユニット１６０・１７０および１８０に対して適用され、対象となる出力番号と、出力パルスの周期とＯＮ幅とを確定するためのデータが格納されるデータレジスタ番号Ｄとをオペランドとして有する。当該特殊命令が実行されると前記出力パルスの周期とＯＮ幅またはＯＦＦ幅に関する二つのデータが設定データ３０５１ｎとして待機バッファレジスタ４００４ｎに一時格納され、当該一時格納データは１パルスの発生完了時点で前記第一および第二の設定レジスタ３００１ｎ・３００２ｎに再転送される。つまり、特殊ユニットに内蔵された論理回路部は、プログラムメモリ内に格納されたＤＡ変換命令に応動するＰＷＭ出力回路を備えている。したがって、各チャンネルに割り当てられた１個の可逆カウンタを用いて構成されたＰＷＭ出力回路は、ＰＷＭ信号の平滑回路を含むアナログ信号用の出力インタフェース回路に適用されたときには、マイクロプロセッサによって指令されたデジタル値に比例したアナログ信号電圧を出力するためのＤＡ変換器として使用することができる。
【０２５７】
さらに、前記特殊ユニット１８０は、前記外部接続端子１８０Ｘ・１８０Ｙに接続される多チャンネルの入力インタフェース回路１８９Ｘおよび出力インタフェース回路１８９Ｙの双方を備えている。前記出力インタフェース回路１８９Ｙは、前記論理回路部１０００ｎが第二のポート１２から出力するパルス幅変調信号出力ＰＷＭに対する平滑回路１８８ｎを包含するアナログ負荷用のインタフェース回路である。前記入力インタフェース回路１８９Ｘは、アナログセンサ１０７ａからの入力信号と前記パルス幅変調信号出力ＰＷＭの平滑信号とを比較して二値化論理信号を発生して前記第一のポート１１に入力するための比較回路１８１１ｎを包含したインタフェース回路である。前記特殊ユニット１８０は、重複しない入出力チャンネルに対してアナログ負荷の駆動を行うか、またはアナログ入力信号と可変比較値との比較結果信号を得る。つまり、比較回路を包含した入力インタフェース回路とアナログ信号用の出力インタフェース回路が使用され、アナログ比較とアナログ出力とが行えるようになっている。したがって、余剰な入出力が発生しないようにして、各チャンネルに割り付けられた可逆カウンタを有効活用することができると共に、多様なアナログ処理が行えるようになる。
【０２５８】
実施の形態３．
（１）構成の詳細な説明
以下、この発明の実施の形態３によるプログラマブルコントローラのユニット構成図である図３８について説明する。図３８において、プログラマブルコントローラ１００Ｃは、ＣＰＵユニット１１０Ｃと、入出力ユニット２２０、２３０、２４０、２５０、２６０Ａと、終端ブロック２９０とによって構成されている。
【０２５９】
ＣＰＵユニット１１０Ｃは、例えばＡＣ１００Ｖ〜２４０Ｖの商用電源である外部電源１０９から給電されると共に、図示しない脱着コネクタを介して外部ツール１０８と接続され、入出力制御プログラムの書込みや運転状態の監視を行うことができるようになっている。ＣＰＵユニット１１０Ｃの内部には、マイクロプロセッサ１１１と、例えばマスクＲＯＭメモリであるシステムメモリ１１２Ｃと、例えば不揮発フラッシュメモリであって、ユーザが作成した入出力制御プログラムが格納されるプログラムメモリ１１３Ｃと、例えばＲＡＭメモリであって、後述する入出力イメージメモリと補助リレーとデータレジスタとを包含するデバイスメモリ１１４ａと、後述する転送仲介メモリ１１４ｂと、前記デバイスメモリ１１４ａの一部領域をバックアップするバッテリ１１５と、各入出力ユニットとデータ交信を行うためのバスインタフェース回路１１６と、警報表示器１１７と、前記外部ツール１０８とマイクロプロセッサ１１１とを接続するシリアルインタフェース１１８と、制御用電源１１９とが設けられている。
【０２６０】
この内、マイクロプロセッサ１１１、システムメモリ１１２Ｃ、プログラムメモリ１１３Ｃ、デバイスメモリ１１４ａ、転送仲介メモリ１１４ｂ、バスインタフェース１１６、シリアルインタフェース１１８とは互いにバス接続されている。
【０２６１】
制御用電源１１９は、外部電源１０９から給電されて、図示しない入力信号回路に安定化されたＤＣ２４Ｖ電源を供給したり、定電圧電源線Ｖｃｃに対して例えばＤＣ５Ｖの安定化電圧を供給し、定電圧電源線Ｖｃｃはグランド回路ＧＮＤと共に各部に配線されている。なお、制御用電源１１９は、ＣＰＵユニット１１０Ｃの外部に設置することも可能であり、電源ユニットとＣＰＵユニットおよび所定点数の入出力ユニットとによって基本ユニットが構成されるようになっている。
【０２６２】
システムメモリ１１２Ｃは、図４４で後述する各種制御プログラムを包含すると共に、プログラムメモリ１１３Ｃに格納されたシーケンス言語による入出力制御プログラムをマイクロプロセッサ１１１に対応した機械言語に変換してマイクロプロセッサ１１１を作動させるものとなっていて、これ等のプログラムは製品の出荷段階でメーカによって格納されるものとなっている。なお、システムメモリ１１２Ｃは、マスクＲＯＭメモリ、またはフラッシュメモリによる不揮発メモリとなっている。
【０２６３】
プログラムメモリ１１３Ｃには、例えばパーソナルコンピュータである外部ツール１０８を用いてユーザによって作成された入出力制御用のシーケンスプログラムが、シリアルインタフェース１１８を介して書込みされている。その一例となるものが前述の図２０〜図２５、図２７、図２９で表現されたシーケンス図であって、パーソナルコンピュータの画面上でシーケンス図を作画すると自動的にシーケンスプログラムが作成されるようになっている。なお、プログラムメモリ１１３ＣはバッテリバックアップされたＲＡＭメモリであってもよく、フラッシュメモリまたはＥＰＲＯＭ等による不揮発メモリを内蔵したメモリカセットを装着することによってプログラムメモリ領域を不揮発メモリ化することも可能である。
【０２６４】
デバイスメモリ１１４ａは、入出力信号情報やプログラマブルコントローラ１００Ｃ内部のデバイスとなって、ユーザに開放されている補助リレー・タイマ・カウンタ・データレジスタ等のデバイスの作動状態が格納されるＲＡＭメモリであり、当該デバイスメモリ１１４ａの一部の領域は例えばリチウムバッテリであるバッテリ１１５によってバックアップされていて、プログラマブルコントローラ１００Ｃに対する電源が遮断されても記憶状態が保持されるようになっている。警報表示器１１７は、マイクロプロセッサ１１１の作動状態を示す例えば複数個の発光ダイオードまたはセブンセグメント表示器によって構成され、電源の到来・正常運転状態・各種異常状態を表示するようになっている。
【０２６５】
ＣＰＵユニット１１０Ｃの端面位置に図示しないコネクタを介して接続された入出力ユニット２２０には、図示しない入出力端子台を介して外部の開閉信号１０１ｘと電気負荷１０１ｙとが接続されている。なお、実態としての入出力ユニット２２０は複数台の入力ユニットと複数台の出力ユニットに分割されていて、必要とされる入出力点数規模に見合った台数の入力ユニットと出力ユニットが使用されるものである。開閉信号１０１ｘは、例えば操作盤に設けられた各種の操作スイッチや、アクチェータの動作を確認するためのセンサスイッチであって、１台の入力ユニットには例えば８点の入力信号が接続可能であって、さらに多くの開閉信号を接続するときには入力ユニットの接続台数を増やすようになっている。電気負荷１０１ｙは、例えば操作盤に設けられた各種の表示ランプや、アクチェータ駆動用の電磁弁、またはモータ駆動用の電磁継電器であって、１台の出力ユニットには例えば８点の出力信号が接続可能であって、さらに多くの電気負荷を接続するときには出力ユニットの接続台数を増やすようになっている。
【０２６６】
入出力ユニット２２０の内部に設けられた入力インタフェース回路は、ホトカプラトランジスタまたはホトトライアックなどの入力絶縁回路２２１と、ノイズを抑制するための入力フィルタ２２２と、データセレクタ２２４によって構成されている。入出力ユニット２２０の内部に設けられた出力インタフェース回路は、電気負荷１０１ｙを駆動するための駆動信号のラッチメモリ２２５と、ホトカプラトランジスタまたはホトトライアックまたは電磁リレーなどの出力絶縁回路２２６とパワートランジスタまたはトライアックまたは電磁リレー等の出力素子２２７によって構成されている。
【０２６７】
入出力ユニット２３０は、集積回路素子２０と第一および第二のポート２１および２２を備えた特殊ユニットを構成し、当該特殊ユニットは、例えば８点の高速動作の開閉信号１０２ｘが入力絶縁回路２３１ａと入力フィルタ２３２ａを介して入力されると共に、８点の高速動作の開閉信号１０２ｘｘが入力絶縁回路２３１ｂと入力フィルタ２３２ｂを介して入力される入力専用の特殊ユニットとなっている。
【０２６８】
入出力ユニット２４０は、集積回路素子２０と第一および第二のポート２１および２２を備えた特殊ユニットを構成し、当該特殊ユニットは、例えば８点の高速動作の開閉信号１０３ｘが入力絶縁回路２４１と入力フィルタ２４２を介して入力されると共に、８点の高速動作の電気負荷１０３ｙが出力絶縁回路２４６と出力素子２４７を介して駆動される入出力混合の特殊ユニットとなっている。
【０２６９】
入出力ユニット２５０は、集積回路素子２０と第一および第二のポート２１および２２を備えた特殊ユニットを構成し、当該特殊ユニットは、例えば８点の高速動作の電気負荷１０４ｙが出力絶縁回路２５６ａと出力素子２５７ａを介して駆動されると共に、８点の高速動作の電気負荷１０４ｙｙが出力絶縁回路２５６ｂと出力素子２５７ｂを介して駆動される出力専用の特殊ユニットとなっている。なお、前記集積回路素子２０は、いずれも入出力兼用の第一および第二のポート２１および２２を備えていて、当該第一および第二のポートを入力ポートとして使用するか、出力ポートとして使用するかによって入力専用・入出力混合・出力専用の特殊ユニットが得られるようになっている。
【０２７０】
入出力ユニット２６０Ａは、例えば８点のアナログセンサ１０５ａが接続されて、入力インタフェース回路である入力フィルタ２６２、多チャンネルＡＤ変換器２６３、入力絶縁回路２６１、データセレクタ２６４によって、８チャンネルのアナログ入力に対する各１２ビットのデジタル変換データを得ると共に、例えば８点のアナログ負荷１０５ｂが接続されて、出力インタフェース回路であるラッチメモリ２６５、出力絶縁回路２６６、多チャンネルＤＡ変換器２６８を介して、１２ビットのデジタルデータのアナログ変換出力を発生するようになっている。なお、実態としての入出力ユニット２６０Ａはアナログ入力ユニットとアナログ出力ユニットに分割されていて、必要とされるアナログ入出力点数規模に見合った台数のアナログ入力ユニットとアナログ出力ユニットが使用されるものである。
【０２７１】
最終段に接続された終端ブロック２９０は、終端処理回路２９９を備え、この終端処理回路２９９は、ＣＰＵユニット１１０Ｃから各入出力ユニットを貫通して設けられたデータバスＤＡＴＡとアドレスバスＡＤＲの終端をプルアップ回路とプルダウン回路を介して定電圧電源線Ｖｃｃとグランド回路ＧＮＤに接続して、高速信号の反射ノイズを抑制するものとなっている。なお、実態としての貫通バス信号線は、例えば１６本のアドレス／データ兼用バスと、８本の制御信号用バスによって構成されていて、１６本のアドレス／データ兼用バスがアドレス信号を扱っているのか、または送受信されるデータを扱っているのかは制御信号線によって指定されるようになっている。さらに、各入出力ユニットは図示しないバスコントローラを包含し、多数のデータセレクタやラッチメモリのうち、マイクロプロセッサ１１１によって指定されたものがデータバスに接続されてマイクロプロセッサ１１１と交信することができるようになっている。
【０２７２】
以下、図３８に示す構成の特殊ユニット２４０について、開閉信号側の構成図である図３９と、電気負荷側の構成図である図４０についてまとめて説明する。図３９および図４０において、特殊ユニット２４０は、８点の開閉信号１０３ｘに接続される入力端子２４０Ｘと、８点の電気負荷１０３ｙに接続される出力端子２４０Ｙとを備えている。入力端子２４０Ｘと集積回路素子２０に設けられた第一のポート２１との間には、論理回路用の入力インタフェース回路２４９Ｘが設けられている。入力インタフェース回路２４９Ｘは、入力絶縁回路２４１ｎと入力フィルタとなる例えば時定数で５μｓ程度の比較的短い時定数の固定フィルタ２４２ｎとが各チャンネル番号ｎ＝０〜７毎に直列接続されている。出力端子２４０Ｙと集積回路素子２０に設けられた第二のポート２２との間には、ＯＮ／ＯＦＦ動作用の出力インタフェース回路２４９Ｙが設けられている。出力インタフェース回路２４９Ｙは、パワートランジスタである出力素子２４７ｎと出力絶縁回路２４６ｎとが各チャンネル番号ｎ＝０〜７毎に直列接続されている。
【０２７３】
第一および第二のポート２１および２２は、チャンネル番号ｎ＝０〜７に対応して図中で符号表記されていないチャンネル端子２１ｎおよび２２ｎを備え、各チャンネル端子には同一構成内容の論理回路部１１００ｎ・１２００ｎが設けられている。図３９で示された論理回路部１１００ｎの複数の入力端子の一つはチャンネル端子２１ｎに直接接続され、論理回路部１１００ｎの複数の出力端子の一つは第一のゲート素子２５ｎを介してチャンネル端子２１ｎに間接接続されている。各ゲート素子２５ｎのゲート端子は第一のモード切換端子２８ａを介して定電圧電源線Ｖｃｃに接続されているが、これは第一のポート２１が出力インタフェース回路２４９Ｙではなく、入力インタフェース回路２４９Ｘに接続されていることを意味するものであると共に、モード切換端子２８ａの論理レベルが「Ｈ」であることによって第一のゲート素子２５ｎは開路状態となっている。なお、第一の識別端子２４ａも定電圧電源線Ｖｃｃに接続されているが、これは入力インタフェース回路２４９Ｘがアナログ信号用ではなくて、論理信号用であることを識別するためのものとなっている。さらに、第一の信号端子２６ａは論理レベル「Ｈ」となっていて、前述のアナログ比較用ではないことを示している。
【０２７４】
図４０で示された論理回路部１２００ｎの複数の入力端子の一つはチャンネル端子２２ｎに直接接続され、論理回路部１２００ｎの複数の出力端子の一つは第二のゲート素子２７ｎを介してチャンネル端子２２ｎに間接接続されている。各ゲート素子２７ｎのゲート端子は第二のモード切換端子２８ｂを介してグランド回路ＧＮＤに接続されているが、これは第二のポート２２が入力インタフェース回路２４９Ｘではなく、出力インタフェース回路２４９Ｙに接続されていることを意味するものであると共に、第二のモード切換端子２８ｂの論理レベルが「Ｌ」であることによって第二のゲート素子２７ｎは閉路状態となっている。なお、第二の識別端子２４ｂは定電圧電源線Ｖｃｃに接続されているが、これは出力インタフェース回路２４９Ｙがアナログ負荷用ではなくて、ＯＮ／ＯＦＦ動作用のものであることを識別するためのものとなっている。さらに、第二の信号端子２６ｂは論理レベル「Ｈ」となっていて、前述のアナログ比較用ではないことを示している。特殊ユニット２４０を構成する電子基板２９ｘｙには前記マイクロプロセッサ１１１とバス接続するためのバス接続用端子２４０Ｚが設けられ、当該バス接続用端子２４０Ｚは集積回路素子２０のバス接続用端子２３に接続されている。
【０２７５】
論理回路部１１００ｎ・１２００ｎは、図４１において詳述するとおり、可逆カウンタ２１００ｎ・２２００ｎ、設定レジスタ３１００ｎ・３２００ｎ、演算レジスタ４１００ｎ・４２００ｎ、比較回路５１００ｎおよび５２００ｎ、指令ラッチメモリ６１００ｎ・６２００ｎ、報告ビットメモリ７１００ｎ・７２００ｎ、パラメータメモリ８１００ｎ・８２００ｎによって構成されている。１００番台の符号は第一のポート２１（図３９参照）に対応し、２００番台の符号は第二のポート２２（図４０参照）に対応したものとなっている。論理回路部１１００ｎ・１２００ｎ内の各要素は、アドレスバスＡＤＲによってマイクロプロセッサ１１１から指定されたものが択一的にデータバスＤＡＴＡに接続されて、マイクロプロセッサ１１１から設定データや指令信号を受け取ったり、マイクロプロセッサ１１１に対して演算データや報告信号を送信するようになっている。パラメータメモリ８１００ｎ・８２００ｎには、プログラマブルコントローラ１００Ｃの運転開始に当たってマイクロプロセッサ１１１から回路編成情報が送信され、その結果として８点の論理回路部１１００ｎと８点の論理回路部１２００ｎのそれぞれの具体的な回路構成が決定されるようになっている。
【０２７６】
カード情報メモリ９０００は、少なくとも第一および第二のモード切換端子２８ａおよび２８ｂと、第一および第二の識別端子２４ａおよび２４ｂの論理情報をマイクロプロセッサ１１１に送信するためのものであり、集積回路素子２０の内部または外部の電子基板２９ｘｙ上に設置された配線パターン情報となっている。共通クロック回路９００１、共通トリガ回路９００２は後述するとおり、全ての論理回路部１１００ｎ・１２００ｎに対して共用されるタイミング信号発生回路となっていて、共通クロック回路９００１は例えばクロック周期τ＝１μｓｅｃのクロック信号を発生し、共通トリガ回路９００２は当該クロック信号を計数して得られる例えば信号周期Ｔ０＝１０ｍｓｅｃで信号幅が１μｓｅｃのトリガ信号を発生するようになっている。
【０２７７】
図３８における特殊ユニット２３０や２５０の場合も集積回路素子２０の構成は同様である。ただし、特殊ユニット２３０の場合は一対の入力端子２３０Ｘと一対の入力インタフェース回路２３９Ｘとが使用されて、第一および第二のポート２１および２２に対して論理信号用の入力インタフェース回路２３９Ｘが接続されていて、第一および第二のモード切換端子２８ａおよび２８ｂは共に論理レベル「Ｈ」となっている。また、特殊ユニット２５０の場合は一対の出力端子２５０Ｙと一対の出力インタフェース回路２５９Ｙとが使用され、第一および第二のポート２１および２２に対して論理信号用の出力インタフェース回路２５９Ｙが接続されていて、第一および第二のモード切換端子２８ａおよび２８ｂは共に論理レベル「Ｌ」となっている。
【０２７８】
以下、図３９および図４０における論理回路部１１００ｎ・１２００ｎの詳細構成図である図４１について説明する。図４１において、論理回路部１１００ｎは第一のポート２１のチャンネル番号ｎに割り付けられているものであるのに対し、論理回路部１２００ｎは第二のポート２２のチャンネル番号ｎに割り付けられているものであり、両者は同様に構成されていて、１００番台、２００番台の違いによって所在が区別されているのみであるから、以下の説明では論理回路部１１００ｎに限定して説明する。論理回路部１１００ｎの中心を成す可逆カウンタ２１００ｎは、アップ指令端子ＵＰまたはダウン指令端子ＤＮのどちらかが論理レベル「Ｈ」となっていて、計数入力端子ＩＮの論理レベルが「Ｌ」から「Ｈ」に変化した時に現在値レジスタ４１０１ｎの計数現在値が増加または減少するようになっている。計数現在値の増加または減少変分値は変分値レジスタ４１０３ｎに格納された数値によって決定されるが、通常は変分値レジスタ４１０３ｎの値は１であって、現在値レジスタ４１０１の計数現在値は計数入力端子ＩＮの論理変化によって１カウントだけ増減するようになっている。
【０２７９】
可逆カウンタ２１００ｎのリセット端子ＲＳＴにリセット指令入力が与えられると、現在値レジスタ４１０１ｎの値はゼロになるが、待機バッファレジスタ４１０４ｎの中のプリセットレジスタに何らかの数値が格納されている場合には、当該プリセットレジスタの内容が現在値レジスタ４１０１ｎに転送されるようになっている。なお、キープホールドレジスタ４１０２ｎは、定期的に現在値レジスタ４１０１ｎの内容を読出し格納するためのものであり、現在値レジスタ４１０１ｎ、キープホールドレジスタ４１０２ｎ、変分値レジスタ４１０３ｎ、待機バッファレジスタ４１０４ｎを総称したものが演算レジスタ４１００ｎとなっている。特に、後述の説明で明らかになるとおり、変分値レジスタ４１０３ｎは特定チャンネルの可逆カウンタのみが備えていて、その他のチャンネルの可逆カウンタは常に１カウントの増減を行うものとなっている。設定レジスタ３１００ｎは計数上限値が格納される第一の設定レジスタ３１０１ｎと、計数上限値未満の中間値が格納される第二の設定レジスタ３１０２ｎによって構成されている。
【０２８０】
第一の比較回路５１０１ｎは、第一の設定レジスタ３１０１ｎに格納されている設定数値と現在値レジスタ４１０１ｎの計数現在値が合致するか、または計数現在値が設定数値を超過したときに論理レベルが「Ｈ」となり、判定記憶回路Ｓ１をセットしてカウントアップ出力Ｑを発生する数値比較回路である。前記第二の比較回路５１０２ｎは第二の設定レジスタ３１０２ｎに格納されている設定数値と現在値レジスタ４１０１ｎの計数現在値とを比較する数値比較回路であり、アップカウントモードにおいて比較一致または計数現在値が設定数値を超えると論理積素子４２を介して判定記憶回路Ｓ２がセットされて上昇比較一致出力Ｐを発生する。また、ダウンカウントモードにおいて計数現在値が設定数値未満になるとゲート素子４４を介して判定記憶回路Ｓ３がセットされて下降比較一致出力Ｐを発生する。
【０２８１】
復帰比較回路５１０３ｎは、現在値レジスタ４１０１ｎの計数現在値が減少して、ゼロレジスタ４１の値と合致したとき、または計数現在値が負の値になっているときに復帰出力Ｑを発生し、判定記憶回路Ｓ１をリセットする数値比較回路である。なお、マイクロプロセッサ１１１からの指令信号によって指令ラッチメモリ６１００ｎを介して判定記憶回路Ｓ２およびＳ３や現在値レジスタの計数現在値をリセットすることができるようになっている。
【０２８２】
報告ビットメモリ７１００ｎは、カウントアップ出力Ｑ、復帰出力Ｑ、上昇比較一致出力Ｐ、下降比較一致出力Ｐによって構成されていて、これらの判定出力はデータセレクタ４８を介してデータバスＤＡＴＡに接続されるようになっている。交番出力回路４７は、第一の比較回路５１０１ｎの比較一致出力が論理レベル「Ｌ」から「Ｈ」に変化する都度に出力論理が交互に判定する論理回路である。
【０２８３】
出力選択回路４９は、パラメータメモリ８１００ｎの内容に応じて出力回路を選択決定する回路であり、例えば端子Ｊ・Ｋを前進パルス出力ＦＰ、後退パルス出力ＲＰとして割り付けるのか、それとも正逆パルス出力ＦＲＰと方向指令出力ＤＩＲとして割り付けるのかが決定されるようになっている。また、判定記憶回路Ｓ２の出力による上昇比較一致出力Ｐ、またはカウントアップ出力Ｑによる動作完了出力を端子Ｌに供給するようになっている。
【０２８４】
入力回路部４０は、パラメータメモリ８１００ｎの内容によって具体的な回路構成が確定する可逆カウンタ２１００ｎに対する入力処理回路である。入力回路部４０や出力選択回路４９の具体的回路構成は、図４２および前述の図５〜図１４および図３７を参照しながら後述するが、例えば可逆カウンタ２１００ｎが高速カウンタ回路を構成する場合では、カウント方向が指令信号によって決定される１相１入力の可逆カウンタであるか、またはアップ・ダウン入力が個別に供給される１相２入力の可逆カウンタであるか、または２相入力の位相差によってアップ・ダウン方向を決定する２相２入力の可逆カウンタであるか、さらには、当該高速カウンタ回路は高速カウンタ命令が実行された時点で計数開始するのか、計数開始指令入力がＯＮしたときに計数開始するのか、現在値レジスタに初期値データを転送するためのプリセット指令入力が付加されているのかどうか、前記２相２入力形式の高速カウンタ回路では各相のパルス信号の立上りと立下りのどの時点で計数を行うのかによって１逓倍計数方式、または２逓倍計数方式、または４逓倍計数方式の計数モードのものがある。これ等の様々な形式の高速カウンタ回路には固有の識別番号が付与されていて、特殊命令と識別番号との組み合わせによって定まる回路編成情報がパラメータメモリ８１００ｎに格納されるようになっている。
【０２８５】
入力端子Ａ〜Ｈに対しては、各チャンネルの論理回路部１１００ｎが予め決定されている多様な機能を発揮するために必要とされる全ての入力信号が接続されて、そのうちのどの入力信号をどのような回路構成によって可逆カウンタ２１００ｎに接続するのかがパラメータメモリ８１００ｎによって選択決定されるようになっている。なお、パラメータメモリ８１００ｎは、プログラマブルコントローラ１００Ｃの運転開始時にマイクロプロセッサ１１１から送信され、マイクロプロセッサ１００Ｃの運転中には変更されないようになっている。しかし、この入力回路部４０の一部の動作は、運転中にマイクロプロセッサ１１１から送信された指令ラッチメモリ６１００ｎによっても変更できるようになっていて、例えば１相１入力の高速カウンタにおけるアップ・ダウンの計数方向の選択は指令ラッチメモリ６１００ｎの内容によって可変設定されるようになっている。このように、入力回路部４０は、可逆カウンタの計数方向の弁別指令、計数入力端子ＩＮに接続される計数入力信号の選択接続、リセット端子ＲＳＴに接続されるリセット信号の選択接続、計数入力端子ＩＮに対する計数信号を強制停止するための停止指令信号の選択接続を行う回路となっている。
【０２８６】
論理積否定出力素子４６ａは、復帰比較回路５１０３ｎが論理レベル「Ｈ」になったときに、論理積素子４５ａに作用して、減算カウント動作を停止するためのゲート回路となっており、このゲート回路を有効にするかどうかは入力回路部４０の内容に基づいて論理積素子４６ａによって決定されるようになっている。なお、論理積素子４５ａは、入力回路部４０を介して得られたダウン方向指令信号を可逆カウンタ２１００ｎのダウン指令端子ＤＮに供給するゲート回路となっている。論理積否定出力素子４６ｂは、第一の比較回路５１０１ｎが論理レベル「Ｈ」になったときに、論理積素子４５ｂに作用して、加算カウント動作を停止するためのゲート回路となっており、このゲート回路を有効にするかどうかは入力回路部４０の内容に基づいて論理積素子４６ｂによって決定されるようになっている。なお、論理積素子４５ｂは、入力回路部４０を介して得られたアップ方向指令信号を可逆カウンタ２１００ｎのアップ指令端子ＵＰに供給するゲート回路となっている。
【０２８７】
以下、図４１に示す論理回路部１１００ｎ（１２００ｎ)を、汎用入力回路（可変フィルタ回路）１１１０ｎ（１２１０ｎ)と、汎用出力回路１２９０ｎ（１１９０ｎ）とした場合のブロック図である図４２について説明する。なお、以下の説明において、論理回路部１１００ｎ（１２００ｎ)の１０番台の数値によって各種の具体的な論理回路内容のものを示しており、論理回路部１１００ｎ側について説明するが、論理回路部１２００ｎ側も入力ポートとして使用されている場合には同様に構成されている。
【０２８８】
図４２において、可変フィルタ回路によって構成された汎用入力回路１１１０ｎ（ｎ＝０〜７）は、共通クロック信号回路９００１が発生するクロック信号を計数入力信号とする可逆カウンタ２１００ｎによって構成されていて、当該可逆カウンタ２１００ｎの第一の設定レジスタ３１０１ｎにはマイクロプロセッサ１１１からフィルタ定数となる設定データ３１１０ｎが送信され格納されている。特殊ユニット２４０の開閉信号１０３ｘの中の一つの入力が、入力インタフェース回路２４９Ｘを介して第一のポート２１のチャンネル番号ｎとなるチャンネル端子２１ｎに入力される。開閉信号１０３ｘがＯＮしてチャンネル端子２１ｎの論理レベルが「Ｈ」になると、論理積素子４５ｂを介してアップ指令端子ＵＰにアップ方向指令が供給される。
【０２８９】
その結果、可逆カウンタ２１００ｎは、共通クロック信号回路９００１が発生するクロック信号をアップ計数し、現在値レジスタ４１０１ｎの現在値が徐々に上昇する。この計数現在値が予め第一の設定レジスタ３１０１ｎに格納されているフィルタ定数に相当する上限設定値に達すると、可逆カウンタ２１００ｎは、カウントアップ出力Ｑを発生し、これが報告ビットメモリ７１０１ｎを介して後述の入力処理手段９１１によってデバイスメモリ１１４ａ内の入力イメージメモリへ転送される。
【０２９０】
一方、可逆カウンタ２１００ｎからカウントアップ出力Ｑが発生すると、論理積否定出力素子４６ｂと論理積素子４５ｂを介してアップ指令端子ＵＰの論理レベルが「Ｌ」となり、上限設定値以上の加算計数が行われないようになっている。開閉信号１０３ｘがＯＮからＯＦＦに変化してチャンネル端子２１ｎの論理レベルが「Ｌ」になると、否定論理素子５１と論理積素子４５ａを介してダウン指令端子ＤＮにダウン方向指令が供給される。
【０２９１】
その結果、可逆カウンタ２１００ｎは、共通クロック信号回路９００１が発生するクロック信号をダウン計数し、現在値レジスタ４１０１ｎの現在値が徐々に減少する。この計数現在値がゼロにまで減少すると、可逆カウンタ２１００ｎは、復帰出力Ｑを発生し、カウントアップ出力Ｑの論理変化が報告ビットメモリ７１０１ｎを介して後述の入力処理手段９１１によってデバイスメモリ１１４ａ内の入力イメージメモリへ転送される。一方、復帰出力Ｑが発生すると、論理積否定出力素子４６ａと論理積素子４５ａを介してダウン指令端子ＤＮの論理レベルが「Ｌ」となり、ゼロ以下の減算計数が行われないようになっている。
【０２９２】
したがって、開閉信号１０３ｘがＯＮからＯＦＦ、またはＯＦＦからＯＮに変化した場合、共通クロック信号回路９００１のクロック周期τ＝１μｓｅｃと第一の設定レジスタ３１０１ｎに格納されているフィルタ定数Ｎとの積である応答遅延時間Ｎ×τ＝Ｎμｓｅｃをおいて報告ビットメモリ７１０１ｎが変化することになる。なお、開閉信号１０３ｘにチャッタリングが生じて不規則な断続動作が行われたような場合には、可逆カウンタ２１００ｎはアップまたはダウンの計数動作を行うことになり、累積加算結果が上限設定値になればＯＮ動作が確定し、累積減算結果がゼロになればＯＦＦ動作が確定することになる。
【０２９３】
一方、第一のポート２１が出力ポートとして使用されているときには、第一のモード切換端子２８ａの論理レベルは「Ｌ」となり、チャンネル端子２１ｎの論理状態はゲート素子である最小フィルタ設定回路５２を介して報告ビットメモリ７１０２ｎに供給され、これが報告信号７１１２ｎとしてマイクロプロセッサ１１１へ送信されるようになっている。なお、第一のポート２１が出力ポートとして使用されているときの可逆カウンタ２１００ｎの入出力回路構成は全く異なったものであり、チャンネル端子２１ｎには例えば高速パルス出力が供給され、報告信号７１１２ｎはこの高速パルス出力の動作常態を監視するものとなっている。しかし、マイクロプロセッサ１１１の演算周期は高速パルス出力には追従できないので、各発生パルスを個別に監視することはできないが、パルス出力の発生状態をサンプリングチェックすることが可能となるものである。
【０２９４】
汎用出力回路１２９０ｎ（ｎ＝０〜７）は、マイクロプロセッサ１１１がデバイスメモリ１１４ａの出力イメージメモリから後述する出力処理手段９２３によって指令ラッチメモリ６２００ｎに送信した出力信号をチャンネル端子２２ｎから出力インタフェース回路１４９Ｙと出力端子１４０Ｙを介して電気負荷１０３ｙに供給する回路となっている。この汎用出力回路１２９０ｎは、出力ポートに設定されたチャンネル端子２２ｎに関する特殊命令が使用されていないときに有効となるものであり、例えば後述の高速パルス出力としてチャンネル端子２２ｎが占有されているときには汎用出力としては使用できないようになっている。
【０２９５】
次に、可変フィルタ命令ＲＥＦと監視読出命令ＥＸＲＤの使用例である図４３に示すシーケンス図について説明する。図４３（Ａ）は特殊補助リレーＭ８０００が閉路したときに、特殊ユニット２３０の入力Ｘ０１０に対して可変フィルタ命令ＲＥＦを適用して、フィルタ定数を５ｍｓｅｃにしようとする回路ブロックとなっている。なお、特殊補助リレーＭ８０００は、プログラマブルコントローラ１００ＣのＲＵＮスイッチがＯＮしているときには自動的に付勢される補助リレーとなっている。したがって、図４３（Ｂ）で示すように特殊ユニット２３０に接続された開閉信号Ｘ０１０がＯＮ／ＯＦＦ動作した場合に、図４２に示す報告ビットメモリ７１０１ｎ（この事例ではｎ＝０になっている）に格納される入力信号は、図４３（Ｃ）で示すとおり５ｍｓｅｃの応答遅延が発生し、開閉信号Ｘ０１０が短時間のＯＮ動作を行っても、報告信号Ｘ０１０は認知されない状態となる。
【０２９６】
なお、報告ビットメモリ７１０１ｎに基づく入力処理９１１は、ＲＥＦ命令が実行された時点、またはプログラマブルコントローラ１００Ｃの１演算周期毎にデバイスメモリ１１４ａの入力イメージメモリへ転送されるようになっている。ＲＥＦ命令の第二オペランドでは、目標とする応答遅延時間として、例えば１〜６３ｍｓｅｃが設定できるようになっているが、図４２で示された共通クロック回路９００１のクロック信号の周期τは例えば１μｓｅｃであり、応答遅延時間として１ｍｓｅｃを得るための可逆カウンタ２１００ｎの上限設定値は１０００となる。したがって、マイクロプロセッサ１１１は、応答遅延時間５ｍｓｅｃを得るためには、転送仲介メモリ１１４ｂに対して１０００倍の数値５０００を換算転送し、この値が設定データ３１１０ｎとして第一の設定レジスタ３１０１ｎに転送されるようになっている。
【０２９７】
図４３（Ｄ）は、図示しないシーケンス回路によって駆動される補助リレーＭ０００１によって、監視読出命令ＥＸＲＤを駆動する回路ブロックを示している。監視読出命令ＥＸＲＤの第一オペランドでは、出力Ｙ０１０を先頭とする８ビット分の出力Ｙ０１０〜Ｙ０１７が転送元として指定され、第二オペランドによって補助リレーＭ０１００を先頭とする８ビット分の補助リレーＭ０１００〜Ｍ０１０７が転送先として指定され、要は出力Ｙ０１０〜Ｙ０１７のＯＮ／ＯＦＦ状態が補助リレーＭ０１００〜Ｍ０１０７に転送されることになる。監視読出命令ＥＸＲＤは、図４２における報告信号７１１２ｎによって報告されるものであって、出力ポートとして使用されている各チャンネルの出力状態を監視するためのものとなっており、出力Ｙ０１０〜Ｙ０１７の一部は、高速パルス出力を発生しているのに対し、補助リレーＭ０１００〜Ｍ０１０７に読み出されるＯＮ／ＯＦＦ情報は、監視読出命令ＥＸＲＤが実行されて時点で更新されることになるので、時間的には正確な情報が得られるものではない。
【０２９８】
以下、図４１に示す論理回路部１１００ｎ・１２００ｎを各種の具体的な高速入出力回路に適用した場合の論理回路の構成を前述の図５〜図１４および図３７を参照しながら説明する。なお、実施の形態１および２の場合と実施の形態３の場合との根本的な相違点は、実施の形態３の場合には、各チャンネルｎに対して一対の論理回路部を備えているので、入出力点数の合計で２倍の点数の入出力を扱うことができるようになっていることである。
【０２９９】
図５：可変フィルタ回路
図５で示された可変フィルタ回路１０１０ｎは、図４２に示す可変フィルタ回路１１１０ｎと１２１０ｎによって置き換えられている。図５に示す可変フィルタ回路１０１０ｎは、報告ビットメモリ７０００ｎの内容が可変フィルタ命令ＲＥＦによって指定された補助リレーＭに送信されるのに対し、図４２に示す可変フィルタ回路１１１０ｎおよび１２１０ｎでは、シーケンスプログラムに基づかないで入力処理手段９１１によって自動的に入力イメージメモリへ送信されるようになっている。したがって、図５に示す汎用入力回路１０９１は、実施の形態３では適用されない回路となっている。
【０３００】
図６：パルス密度測定回路
図６ではパルス密度測定回路１０２０ｎが示されているが、図４１に示す論理回路部１１００ｎ・１２００ｎによれば、同様に構成された一対のパルス密度測定回路１１２０ｎおよび１２２０ｎ（図示しない）が得られる。
【０３０１】
図７：パルス幅測定回路
図７ではパルス幅測定回路１０２２ｎが示されているが、図４１に示す論理回路部１１００ｎ・１２００ｎによれば、同様に構成された一対のパルス幅測定回路１１２２ｎおよび１２２２ｎ（図示しない）が得られる。
【０３０２】
図８：エッジ検出回路
図８ではエッジ検出回路１０３１ｎが示されているが、図４１に示す論理回路部１１００ｎ・１２００ｎによれば、同様に構成された一対のエッジ検出回路１１３１ｎおよび１２３１ｎ（図示しない）が得られる。
【０３０３】
図９：１相１入力カウンタ回路
図９では１相１入力カウンタ回路１０３０ｎが示されているが、図４１に示す論理回路部１１００ｎ・１２００ｎによれば、同様に構成された一対の１相１入力カウンタ回路１１３０ｎおよび１２３０ｎ（図示しない）が得られる。
【０３０４】
図１０：１相２入力カウンタ回路
図１０では１相２入力カウンタ回路１０４０ｍが示されているが、図４１に示す論理回路部１１００ｎ・１２００ｎによれば、同様に構成された一対の１相２入力カウンタ回路１１４０ｍおよび１２４０ｍ（図示しない）が得られる。
【０３０５】
図１１：ＰＷＭ出力回路
図１１ではＰＷＭ出力回路１０５０ｎが示されているが、図４１に示す論理回路部１１００ｎ・１２００ｎによれば、同様に構成された一対のＰＷＭ出力回路１１５０ｎおよび１２５０ｎ（図示しない）が得られる。但し、図１１に示す汎用出力回路１０９２に代わって、図４２に示す汎用出力回路１１９０ｎおよび１２９０ｎが使用されるようになっている。
【０３０６】
図１２：第一のパルス出力回路
図１２では第一のパルス出力回路１０６０ｍが示されているが、図４１に示す論理回路部１１００ｎ・１２００ｎによれば、同様に構成された一対の第一のパルス出力回路１１６０ｍおよび１２６０ｍ（図示しない）が得られる。
【０３０７】
図１３：第二のパルス出力回路
図１３では第二のパルス出力回路１０７０・０と１０７０・４が示されているが、図４１に示す論理回路部１１００ｎ・１２００ｎによれば、同様に構成された一対の第二のパルス出力回路１１７０・０、１２７０・０、１１７０・４、１２７０・４（図示しない）が得られる。
【０３０８】
図１４：変形型パルス出力回路
図１４では変形型パルス出力回路１０８０・０と１０８０・４が示されているが、図４１に示す論理回路部１１００ｎ・１２００ｎによれば、同様に構成された一対の変形型パルス出力回路１１８０・０、１２８０・０、１１８０・４、１２８０・４（図示しない）が得られる。なお、図１３で示された第二のパルス出力回路１０７０・０や、図１４で示された変形型パルス出力回路１０８０・０においては、可逆カウンタとして２０００・０、２０００・１、２０００・２、２０００・３の４点が使用され、特に可逆カウンタ２０００・３はパラメータ変更によって異なる目的に使用するようになっている。しかし、一対の論理回路部１１００ｎ・１２００ｎを有する場合には、可逆カウンタとして２１００・０、２１００・１、２２００・０、２２００・１、２２００・２の５点を使用し、パラメータ変更を行わないで第二のパルス出力回路と変形型パルス出力回路を得ることができる。
【０３０９】
図３７：アナログ比較ユニット
図３７の特殊ユニット１８０はアナログ比較結果がデータセレクタ１８４を介して入力イメージメモリへ送信されるようになっている。しかし、一対の論理回路部１１００ｎ・１２００ｎを有するものの場合には、第一のポート２１は入力ポートとし、第二のポート２２は出力ポートとしておくことによって、アナログ比較結果は可変フィルタ回路１１１０ｎを介して入力イメージメモリへ送信されることになる。
【０３１０】
（２）作用・動作の詳細な説明
以上のとおりに構成されたものにおいて、図４４で示す基本動作説明用フローチャートに基づいて作用動作を詳細に説明する。図４４において、工程９００においてプログラマブルコントローラ１００Ｃに電源が投入されると、プログラマブルコントローラ１００Ｃの内部では電源投入が検出されて各部の初期化が行われ、続いて工程９０１においてマイクロプロセッサ１１１が動作を開始する。続く工程９０２では図示しない運転／停止指令用のＲＵＮスイッチがＯＮされたかどうかを判定し、ＲＵＮスイッチがＯＮされて運転状態にあればＹＥＳの判定を行って工程９０５へ移行し、ＲＵＮスイッチがＯＦＦであればＮＯの判定を行って工程９０３へ移行するようになっている。
【０３１１】
工程９０３では外部ツール１０８が接続されてプログラムモードが設定されているかどうかを判定し、プログラムモードであればＹＥＳの判定を行って工程９０４へ移行し、外部ツールが接続されていないか、または接続されていてもモニタモードが設定されているときにはＮＯの判定を行って動作終了工程９１０へ移行するようになっている。工程９０４では外部ツール１０８によってプログラムメモリ１１３Ｃに対するシーケンスプログラムの転送が行われてから動作終了工程９１０へ移行する。動作終了工程９１０では他の制御動作を行ってから再び動作開始工程９０１へ移行し、以上の動作を繰返すようになっている。
【０３１２】
したがって、工程９０２および９０３の判定が共にＮＯであるときには、マイクロプロセッサ１１１は、工程９０１、９０２、９０３、９１０、９０１を循環動作していて、工程９０２におけるＲＵＮスイッチがＯＮになるか、または工程９０３がプログラムモードになるのを待っている状態となっている。
【０３１３】
やがて、ＲＵＮスイッチがＯＮにされると、工程９０５ではまずプログラムメモリ１１３Ｃ内のプログラムのチェックが行われる。プログラムチェックの中の一つは、カード情報格納メモリ９０００に格納されているカード情報によって、第一および第二のポートに接続されている入出力インタフェース回路の種別を判定し、プログラムメモリ１１３Ｃに格納されている特殊ユニットに対応した命令内容が一致しているかどうかを判定するようになっている。その他、図１６および図１７で示された特殊ユニットの入出力が重複使用されていないかどうかを点検し、例えば高速カウンタの拡張番号０１と１０が使用されていると入力Ｘ０３１の重複使用となってエラー検出されるようになっている。
【０３１４】
続く工程９０６では工程９０５によるプログラムチェックに異常があれば、ＹＥＳの判定を行って工程９０７へ移行し、異常がなければ、ＮＯの判定を行って工程９０８へ移行するようになっている。工程９０７では表示器１１７に対する異常報知指令を発生すると共に、運転動作を停止して動作終了工程９１０へ移行するようになっている。
【０３１５】
工程９０８ではプログラムメモリ１１３Ｃの内容に基づいて特殊ユニットのパラメータメモリ８１００ｎ・８２００ｎに対して回路編成情報が送信されると共に、特殊ユニットに対する交信データが格納される転送仲介メモリ１１４ｂの割付編成が行われる。また、回路編成情報を受信した特殊ユニットでは受信したパラメータに基づいて各論理回路部１１００ｎ・１２００ｎの具体的な回路編成が行われるようになっている。
【０３１６】
続く工程９３０では可変フィルタ命令ＲＥＦが使用されているかどうかを点検し、この命令が使用されていなくて、特殊命令も使用されていない入力に対してはＮＯの判定を行って工程９３１へ移行し、可変フィルタ命令ＲＥＦが使用されているかまたは特殊命令が使用されているとＹＥＳの判定を行って工程９０９へ移行するようになっている。
【０３１７】
工程９３１では入力フィルタ定数として例えば１０ｍsの基準フィルタ定数となるように可変フィルタ回路の初期化設定を行ってから工程９０９へ移行する。工程９０９ではＲＵＮスイッチがＯＮされているかどうかを再びチェックして、RNUスイッチがＯＦＦされておればＮＯの判定を行って終了工程９１０へ移行し、ＲＵＮスイッチがＯＮされておればＹＥＳの判定を行って工程９１１へ移行する。
【０３１８】
工程９１１では一般の入力ユニットに設けられたデータセレクタ（例えば図３８の入力Ｘ０００〜Ｘ００７に対応したデータセレクタ２２４）を順次アクセスして、各入力端子に接続された開閉信号のＯＮ／ＯＦＦ状態をデバイスメモリ１１４ａ内に割り付けられた入力イメージメモリに転送書込みするすると共に、特殊ユニットの場合であっても特殊命令が適用されていなくて汎用入力として使用されている入力については、図４２で示したように報告ビットメモリ７１０１ｎまたは７２０１ｎの読出しを行って、該当入力のＯＮ／ＯＦＦ状態をデバイスメモリ１１４ａ内に割り付けられた入力イメージメモリに転送書込みする。
【０３１９】
続く工程９１２はプログラムメモリ１１３Ｃに格納されているシーケンスプログラムを１命令毎に順次読出し実行するステップである。続く工程９１３は工程９１２で読み出された命令が特殊ユニットのための特殊命令を実行するものであったかどうかを判定し、特殊命令に関するものでなければＮＯの判定を行って工程９２２へ移行し、工程９２２ではシーケンスプログラムの完了を意味するＥＮＤ命令であったかどうかを判定し、ＥＮＤ命令でなければＮＯの判定を行って工程９１２へ復帰移行するようになっている。したがって、特殊命令が使用されていないときには、工程９１２、９１３、９２２、９１２の循環動作が行われて一般のシーケンス命令が順次実行されるようになっている。
【０３２０】
しかし、工程９１３の判定がＹＥＳとなって特殊命令が読み出された場合には工程９１９ａへ移行する。工程９１９ａでは読み出された特殊命令が動作完了報告を行う形式の特殊命令であるかどうかを判定し、動作完了を報告する形式の特殊命令であればＹＥＳの判定を行って工程９１９ｂへ移行し、完了報告を行わない特殊命令であればＮＯの判定を行って工程９２１へ移行するようになっている。工程９１９ｂでは実行された特殊命令に対する動作完了報告が得られたかどうかを判定し、完了報告が得られておればＹＥＳの判定を行って工程９２１へ移行し、完了報告が得られていなければＮＯの判定を行って工程９２２へ移行するようになっている。
【０３２１】
工程９２１では読み出された特殊命令に関する新たな設定データを送信してから工程９２２へ移行するようになっている。なお、工程９２１では特殊命令で指定された設定データを特殊ユニットで取り扱いやすいデータに変換してから転送仲介メモリ１１４ｂに転送し、転送仲介メモリ１１４ｂから該当の特殊ユニットに送信されるようになっている。
【０３２２】
例えば、特殊命令が図１２で説明した第一のパルス出力回路１２６０ｍに対する第一のパルス出力命令ＰＬＳであって、この特殊命令によってパルス周波数と発生パルス数とが指定された場合には、工程９２１ではパルス周波数の逆数であるパルス周期に換算して、パルス周期と発生パルス数とが特殊ユニットに送信される。特殊ユニットでは指定されたパルス数の発生が完了したとき報告信号７２６０ｍによって完了報告を行うようになっているので、パルス発生が完了するまでは工程９１９ｂの判定によって工程９２１へは移行せず、新たな設定データが送信されないようになっている。このようにして、プログラムメモリ１１３Ｃに格納されたシーケンスプログラムが順次実行され、やがてプログラム完了を意味するＥＮＤ命令が読み出されると工程９２２がＹＥＳの判定を行って工程９２３へ移行する。
【０３２３】
工程９２３では一般の出力ユニットに設けられたラッチメモリ（例えば図３８の出力Ｙ０００〜Ｙ００７に対応したラッチメモリ２２５）を順次アクセスして、デバイスメモリ１１４ａ内に割り付けられた出力イメージメモリの内容を各ラッチメモリに順次転送書込みするすると共に、特殊ユニットの場合であっても特殊命令が適用されていなくて汎用出力として使用されている出力については、図４２で示したように該当出力のＯＮ／ＯＦＦ状態を指令ラッチメモリ６２００ｎに転送書込みする。
【０３２４】
工程９２３による出力処理が完了すると、工程９０９へ移行して、再びＲＵＮスイッチがＯＮされていることを確認した上で工程９１１へ復帰して、以下同様に、入力処理・シーケンス処理・出力処理を循環実行するようになっている。なお、プログラマブルコントローラには入力処理と出力処理とをシーケンス処理の前後で一括処理する方式のものと、シーケンス処理の過程で適時に入力情報の直接読出しを行ったり、直接出力処理を行う方式のものがあり、ここでは便宜上で一括処理方式で説明するが、直接処理方式のものであってもよい。
【０３２５】
以上の動作フローにおいて、工程９０５は設定異常検出手段、工程９０８は編成処理手段、工程９１１は入力処理手段、工程９１９ａと工程９１９ｂによって構成された工程ブロック９２０は転送禁止手段、工程９２１はデータ変換・転送手段、工程９２３は出力処理手段、工程９３１は初期設定手段となるものである。
【０３２６】
なお、図４４と図１８および図１９のものを対比すると、図４４では工程９３０と工程９３１によって自動的に汎用入力のフィルタ定数を例えば１０ｍｓｅｃの基準値に設定するようになっている。これ以外のフィルタ定数が必要であれば、図４３（Ａ）で示した可変フィルタ命令ＲＥＦによって所望のフィルタ定数を設定することができる。また、図１９ではパラメータ変更手段９１８が設けられ、図１３および図１４において可逆カウンタ２０００・３の役割を変更するようになっている。しかし、図４４の場合には図１３・図１４における可逆カウンタの割付を変更して、５点の可逆カウンタを使用しておくことによってパラメータの変更を必要としないようになっている。
【０３２７】
（３）実施の形態３の要点と特徴
この発明の実施の形態３によるプログラマブルコントローラ１００Ｃは、マイクロプロセッサ１１１と、当該マイクロプロセッサ１１１と協働するシステムメモリ１１２Ｃと、ユーザによって作成されたシーケンスプログラムが外部ツール１０８から転送書込みされるプログラムメモリ１１３Ｃと、入出力情報および制御情報を記憶するための入出力イメージメモリＸ・Ｙと補助リレーＭとデータレジスタＤとを包含するデバイスメモリ１１４ａとを有するＣＰＵユニット１１０Ｃと、当該ＣＰＵユニットに対してバス接続される単独または複数の入出力ユニット２２０〜２５０・２６０Ａを備えると共に、当該入出力ユニットの一部または全部が特殊入出力処理機能を分担して前記マイクロプロセッサ１１１の制御機能を補完するための集積回路素子２０を包含した特殊ユニット２３０〜２５０となっている。前記特殊ユニット２３０〜２５０は、複数の外部センサまたは外部負荷の少なくとも一方または双方に接続される外部接続用端子２３０Ｘ・２４０Ｘ・２４０Ｙ・２５０Ｙと、当該外部接続端子に接続される多チャンネルの入力インタフェース回路２３９Ｘ・２４９Ｘまたは出力インタフェース回路２４９Ｙ・２５９Ｙと、制御仕様の一部分が可変設定できて入出力制御に共用される集積回路素子２０と、前記マイクロプロセッサ１１１と接続するためのバス接続用端子２３０Ｚ〜２５０Ｚとを搭載した電子基板とを備えている。前記集積回路素子２０は、前記入力インタフェース回路からＯＮ／ＯＦＦ動作する論理信号が入力される第一のポート２１と、前記出力インタフェース回路に対してＯＮ／ＯＦＦ動作する論理信号を出力する第二のポート２２と、各チャンネル番号ｎに対応するパラメータメモリ８１００ｎ・８２００ｎと、前記マイクロプロセッサ１１１から当該パラメータメモリに送信された回路編成データによって入出力処理のための動作仕様が決定される論理回路部１１００ｎ・１２００ｎを備えている。
【０３２８】
また、前記論理回路部１１００ｎ・１２００ｎは、前記入力インタフェース回路２３９Ｘ・２４９Ｘを介して得られる論理入力信号を高速計数して、カウントアップ出力または計数データを前記マイクロプロセッサ１１１に報告信号または演算データとして送信する報告ビットメモリ７１００ｎ・７２００ｎと演算レジスタ４１００ｎ・４２００ｎを備えると共に、前記マイクロプロセッサ１１１から受信した設定データまたは指令信号を設定レジスタ３１００ｎ・３２００ｎと指令ラッチメモリ６１００ｎ・６２００ｎに格納し、当該設定レジスタと指令ラッチメモリの内容に基づく高速パルス出力を前記出力インタフェース回路２４９Ｙ・２５９Ｙに供給する可逆カウンタ２１００ｎ・２２００ｎを包含している。前記可逆カウンタ２１００ｎ・２２００ｎは、前記演算レジスタ４１００ｎ・４２００ｎの一部となる現在値レジスタ４１０１ｎ・４２０１ｎを備え、前記入力インタフェース回路２３９Ｘ・２４９Ｘから供給された入力信号に対する高速カウンタ回路を構成して、カウントアップ出力を前記ＣＰＵユニット１１０Ｃに送信する高速入力処理を行うのか、または前記ＣＰＵユニット１１０Ｃから受信した設定データに基づく高速パルス出力回路を構成して、所定のパルス出力を前記出力インタフェース回路２４９Ｙ・２５９Ｙに供給する高速出力処理を行うのかは、前記プログラムメモリ１１３Ｃに格納されている制御プログラムに包含されている特殊命令の内容に連動して、各チャンネル毎にいずれか一方に決定される。前記パラメータメモリ８１００ｎ・８２００ｎに送信される回路編成データにより、複数種類の高速入力処理と複数種類の高速出力処理がなされ、前記外部センサからの入力信号がアナログ信号である場合に、前記入力インタフェース回路は入力信号に比例した周波数のパルスまたは比較判定論理信号を前記集積回路素子２０に供給し、前記外部負荷がアナログ負荷である場合に、前記集積回路素子２０は出力信号に比例したＯＮ／ＯＦＦ比率のパルス出力を発生して、前記出力インタフェース回路は受信したパルス出力信号を平滑して外部負荷に供給する。
【０３２９】
また、前記ＣＰＵユニット１１０Ｃは、前記特殊ユニット２３０〜２５０とのデータ交信を行うための転送仲介メモリ１１４ｂを備えると共に、前記システムメモリ１１２Ｃは編成処理手段９０８とデータ変換・転送手段９２１となる制御プログラムを包含している。前記編成処理手段９０８は、前記プログラマブルコントローラ１００Ｃの運転開始直後において、前記プログラムメモリ１１３Ｃの内容を検索して特殊ユニット２３０〜２５０に対応した特殊命令を抽出し、当該特殊命令の内容に対応して当該特殊ユニットで適用される論理回路部１１００ｎ・１２００ｎの種別と動作モードに対応した回路編成データを前記パラメータメモリ８１００ｎ・８２００ｎに送信すると共に、当該パラメータによって回路編成が特定された各論理回路部と交信するための転送仲介メモリ１１４ｂのアドレス編成を行う。前記データ変換・転送手段９２１は、前記特殊命令で指定されたデバイスメモリ１１４ａの内容に基づいて前記論理回路部１１００ｎ・１２００ｎの動作に適した換算単位の設定データと指令信号に変換して前記転送仲介メモリ１１４ｂを介して設定レジスタ３１００ｎ・３２００ｎおよび指令ラッチメモリ６１００ｎ・６２００ｎに送信すると共に、前記論理回路部１１００ｎ・１２００ｎから得られた演算データまたは報告信号を前記転送仲介メモリ１１４ｂを介して前記特殊命令によって指定されたデバイスメモリ１１４ａに転送する。前記特殊命令は、命令の種別を示す命令語と順不同の第一のオペランド、および第二または第三のオペランドの少なくとも一方とによって構成され、当該第一のオペランドは対象となる特殊ユニットの入出力番号を特定する識別番号を指定し、第二のオペランドは前記演算レジスタから得られる演算データを格納するデータレジスタ番号、または前記設定レジスタに対して送信される設定データが格納されているデータレジスタ番号か直接設定定数を指定し、第三のオペランドは前記報告ビットメモリから得られる報告信号を格納する補助リレー番号、または前記指令ラッチメモリ対して送信される指令信号が格納されている補助リレー番号を指定する。
【０３３０】
また、前記論理回路部１１００ｎ・１２００ｎに設けられた可逆カウンタ２１００ｎ・２２００ｎの一部または全部は、現在値レジスタ４１０１ｎ・４２０１ｎと第一の設定レジスタ３１０１ｎ・３２０１ｎと第二の設定レジスタ３１０２ｎ・３２０２ｎと第一の比較回路５１０１ｎ・５２０１ｎと第二の比較回路５１０２ｎ・５２０２ｎとを備えている。前記現在値レジスタ４１０１ｎ・４２０１ｎは、前記可逆カウンタ２１００ｎ・２２００ｎの計数入力の動作回数を計数方向に応じて加減して、当該可逆カウンタの動作開始時の初期値からの累積値を記憶しているメモリである。前記第一の比較回路５１０１ｎ・５２０１ｎは、前記第一の設定レジスタ３１０１ｎ・３２０１ｎに格納されている数値と前記現在値レジスタ４１０１ｎ・４２０１ｎの記憶数値が合致したときに第一の比較一致出力を発生する数値比較回路であり、前記第二の比較回路５１０２ｎ・５２０２ｎは、前記第二の設定レジスタ３１０２ｎ・３２０２ｎに格納されている数値と前記現在値レジスタ４１０１ｎ・４２０１ｎの記憶数値が合致したときに第二の比較一致出力を発生する数値比較回路である。前記現在値レジスタまたは第一および第二の設定レジスタには、前記特殊命令が実行されたときに前記マイクロプロセッサ１１１から前記転送仲介メモリ１１４ｂを介して数値設定が行われる。
【０３３１】
また、前記特殊ユニット２３０〜２５０に搭載される集積回路素子２０は、第一および第二のモード切換端子２８ａおよび２８ｂを有する多チャンネルの第一および第二のポート２１および２２と、チャンネル番号ｎに対応する一対の論理回路部１１００ｎ・１２００ｎを備えている。前記第一のポート２１は、前記集積回路素子２０の外部に設けられた入力インタフェース回路２３９Ｘ・２４９Ｘまたは出力インタフェース回路２５９Ｙを介して外部機器に接続するための入力端子２３０Ｘ・２４０Ｘまたは出力端子２５０Ｙに接続される入出力兼用ポートであって、当該第一のポート２１を入力ポートとして使用するのか出力ポートとして使用するのかは前記第一のモード切換端子２８ａに入力された論理レベルによって選択決定される。前記第二のポート２２は、前記集積回路素子２０の外部に設けられた入力インタフェース回路２３９Ｘまたは出力インタフェース回路２４９Ｙ・２５９Ｙを介して外部機器に接続するための入力端子２３０Ｘまたは出力端子２４０Ｙ・２５０Ｙに接続される入出力兼用ポートであって、当該第二のポート２２を入力ポートとして使用するのか出力ポートとして使用するのかは前記第二のモード切換端子２８ｂに入力された論理レベルによって選択決定される。前記論理回路部１１００ｎ・１２００ｎが前記入力インタフェース回路から供給された入力信号に対する高速カウンタ回路を構成して、カウントアップ出力を前記ＣＰＵユニット１１０Ｃに送信する高速入力処理またはアナログ入力処理を行うのか、または前記ＣＰＵユニット１１０Ｃから受信した設定データに基づく高速パルス出力回路を構成して、所定のパルス出力を前記出力インタフェース回路に供給する高速出力処理またはアナログ出力処理を行うのかは、前記プログラムメモリ１１３Ｃに格納されている制御プログラムに包含されている特殊命令の内容に連動していずれか一方に決定される。
【０３３２】
また、当該一対の論理回路部１１００ｎ・１２００ｎは、それぞれに各チャンネル番号ｎに対応して、一対の可逆カウンタ２１００ｎ・２２００ｎと、設定レジスタ３１００ｎ・３２００ｎと、演算レジスタ４１００ｎ・４２００ｎと、指令ラッチメモリ６１００ｎ・６２００ｎと、比較回路５１００ｎおよび５２００ｎと、報告ビットメモリ７１００ｎ・７２００ｎと、パラメータメモリ８１００ｎ・８２００ｎとを備えている。つまり、特殊ユニットに搭載される集積回路素子は一対の論理回路部と入出力兼用の第一および第二のポートを備え、当該第一および第二のポートを入力ポートとして使用するのか出力ポートとして使用するのかはインタフェース回路の種別に応じて自由に選択決定されるようになっている。したがって、一つの集積回路素子でありながら、インタフェース回路の種別さえ変更すれば、入出力混合または入力専用または出力専用、または高速入出力処理用またはアナログ入出力処理用の特殊ユニットにそのまま利用されて多目的機能を発揮することができ、用途の拡大に伴う量産効果によって集積回路素子の製造原価を低減し、安価なプログラマブルコントローラによって高度な入出力制御機能を得ることができる。
【０３３３】
また、前記論理回路部１１００ｎ・１２００ｎは、各チャンネル番号ｎに対応する汎用入力回路１１１０ｎ・１２１０ｎまたは汎用出力回路１２９０ｎ・１１９０ｎを備えている。前記汎用入力回路１１１０ｎ・１２１０ｎは、前記第一または第二のポート２１および２２に接続された論理入力信号が報告ビットメモリ７１０１ｎ（・７２０１ｎ)を介して前記デバイスメモリ１１４ａに割り付けられた入力イメージメモリ領域に送信される入力信号中継回路であって、前記報告ビットメモリから前記入力イメージメモリへの転送は、前記システムメモリ１１２Ｃに格納されている制御プログラムである入力処理手段９１１によって実行される。前記汎用出力回路１２９０ｎ・１１９０ｎは、前記デバイスメモリ１１４ａに割り付けられた出力イメージメモリ領域から前記論理回路部１１００ｎ・１２００ｎに設けられた指令ラッチメモリ６２００ｎ（・６１００ｎ)が受信した指令信号をそのまま前記第一または第二のポート２１および２２に接続された出力回路２４９Ｙ・２５９Ｙに出力する出力信号中継回路であって、前記出力イメージメモリから前記指令ラッチメモリへの転送は、前記システムメモリ１１２Ｃに格納されている制御プログラムである出力処理手段９２３によって実行される。前記汎用入出力回路１１１０ｎ・１２１０ｎ、１２９０ｎ・１１９０ｎは、前記論理回路部が高速入出力回路またはアナログ入出力回路として使用されていないときに有効となる。つまり、特殊ユニットに内蔵される集積回路素子は高速入出力処理回路に加えて汎用入出力回路を備えている。したがって、高速入出力処理を必要とする入出力点数が少ないときには、残りの入出力端子を汎用入出力として無駄なく使用して、特殊ユニットを経済的に有効活用することができる。
【０３３４】
また、前記汎用入力回路は、各チャンネル番号ｎに対応した可変フィルタ回路１１１０ｎ・１２１０ｎを構成すると共に、前記システムメモリ１１２Ｃは、初期設定手段９３１となる制御プログラムを包含している。前記可変フィルタ回路１１１０ｎ・１２１０ｎは、入力信号の論理レベルの大小に応じて所定のクロック信号を可逆計数する可逆カウンタ２１００ｎ（・２２００ｎ）と入力確定回路となる報告ビットメモリ７１０１ｎ（・７２０１ｎ)によって構成されている。前記第一の設定レジスタ３１０１ｎ（・３２０１ｎ)には、設定データ３１１０ｎ（・３２１０ｎ)として受信したフィルタ定数が格納されていて、前記現在値レジスタ４１０１ｎ（・４２０１ｎ)の値が当該第一の設定レジスタの設定値に上昇するとカウントアップ出力Ｑを発生して加算カウントを停止すると共に、前記現在値レジスタの現在値がゼロにまで下降すると前記カウントアップ出力Ｑに代わって復帰出力Ｑを発生して減算カウントを停止する。前記入力確定回路７１０１ｎ（・７２０１ｎ)は、前記カウントアップ出力Ｑによってセットされると共に、前記復帰出力Ｑによってリセットされ、当該入力確定回路の出力は、前記入力処理手段９１１によって前記デバイスメモリ１１４ａの入力イメージメモリ領域に送信される。
【０３３５】
また、前記初期設定手段９３１は、プログラマブルコントローラ１００Ｃの運転開始時に作用して、前記プログラムメモリ１１３Ｃに可変フィルタ命令が存在するか否かを検索し、可変フィルタ命令ＲＥＦが使用されていない入力信号に対しては基準となる一定のフィルタ定数を前記第一の設定レジスタ３１０１ｎ・３２０１ｎに送信する。前記可変フィルタ命令ＲＥＦは、対象となる入力リレー番号と、必要とされる入力フィルタ定数が設定データとして格納されるデータレジスタ番号または直接設定定数とをオペランドとして有する特殊命令であり、当該特殊命令が実行されると前記設定データが前記入力リレー番号に対応した第一の設定レジスタ３１０１ｎ・３２０１ｎに送信される。つまり、特殊ユニットの入力端子を汎用入力として利用するときには、フィルタ定数は、自動的に基準の定数に設定されていると共に、必要に応じて可変フィルタ命令によって入力フィルタを可変設定することができるようになっている。また、可変フィルタ回路は、各入力チヤンネルに割り当てられた可逆カウンタを利用して構成されている。したがって、入力フィルタを通常の入力回路に設けられたフィルタよりも大きなフィルタ定数に設定することによって、重畳ノイズが大きな入力信号を十分に平滑してＣＰＵユニットに取り込んだり、入力フィルタを通常の入力回路に設けられたフィルタよりも小さなフィルタ定数に設定することによって、重畳ノイズが小さな入力信号を速やかにＣＰＵユニットに取り込んだりして、入力信号回路の実態に対応した入力処理を行うことができる。また、高速入力処理を行わない入力チャンネルにおいては各チャンネルに割り当てられた可逆カウンタを有効活用して、手軽に広範囲は可変フィルタ回路を得ることができる。
【０３３６】
また、前記集積回路素子２０は、各チャンネル番号ｎに対応した第一および第二のゲート素子２５ｎおよび２７ｎと最小フィルタ設定回路５２と、前記プログラムメモリ１１３Ｃに格納される監視読出命令ＥＸＲＤを備えている。前記第一および第二のゲート素子２５ｎおよび２７ｎは、前記論理回路部１１００ｎ・１２００ｎの出力端子と前記第一および第二のポート２１および２２との間に接続され、前記第一および第二のモード切換端子２８ａおよび２８ｂの論理レベルに応動して各出力信号を遮断する複数のゲート素子であって、前記第一および第二のポート２１および２２に入力インタフェース回路が接続されているときには出力信号を遮断し、前記第一および第二のポート２１および２２に出力インタフェース回路が接続されているときには出力信号を有効にする。前記最小フィルタ設定回路５２は、前記第一および第二のポート２１および２２に出力インタフェース回路が接続されていて前記第一および第二のゲート素子２５ｎおよび２７ｎの出力信号が有効とされているときに作用して、フィルタ回路を介さないで当該出力信号を前記報告ビットメモリ７１０２ｎ（・７２０２ｎ)に格納する。前記監視読出命令ＥＸＲＤは、出力リレー番号と前記デバイスメモリ１１４の転送先デバイス番号を指定するオペランドを備え、前記最小フィルタ設定回路５２を介して入力された前記報告ビットメモリ７１０２ｎ（・７２０２ｎ）の内容を報告信号７１１２ｎ（７２１２ｎ)として読み出す。つまり、第一および第二のポートが出力ポートとして利用されているときには、可変フィルタ回路を無効にして、出力信号状態を特殊命令によって監視読出することができるようになっている。したがって、第一および第二のポートが入力ポートとして利用されているときには、可変フィルタ回路を介してデバイスメモリの入力イメージメモリに送信される入力信号に代わって、出力信号状態を特殊命令によって指定されたデバイスメモリに読み出して、該当番号の入力イメージメモリに誤った情報が転送されないようにすることができる。
【０３３７】
また、前記集積回路素子２０または当該集積回路素子を搭載した特殊ユニット２３０〜２５０は、カード情報格納メモリ９０００を備えると共に、前記システムメモリ１１２Ｃは、設定異常検出手段９０５となる制御プログラムを包含している。前記カード情報格納メモリ９０００は、前記第一および第二のポート２１および２２が入力ポートとして設定されているのか出力ポートとして設定されているのかに関する前記第一および第二のモード切換端子２８ａおよび２８ｂの論理情報と、前記入出力インタフェース回路が論理信号回路であるかアナログ信号回路であるかを識別する第一および第二の識別端子２４ａおよび２４ｂの論理情報の少なくとも一方を包含し、当該カード情報格納メモリ９０００の内容は、前記データバスを介して前記ＣＰＵユニット１１０Ｃに接続されて前記マイクロプロセッサ１１１によって読出し可能となっている。前記設定異常検出手段９０５は、前記第一および第二のポート２１および２２に接続されている入出力インタフェース回路の種別と、前記プログラムメモリ１１３Ｃに格納されている命令内容が不一致であることを検出して、運転停止および異常報知を行う。つまり、運転開始に当たって、特殊ユニットの入出力インタフェース回路の種別に対応したカード情報とプログラムメモリ内の命令内容を照合して、不適当な命令が使用されているときには運転停止と異常報知を行うようになっている。したがって、誤った制御プログラムの有無を発見してデバッグ処理を行うことができると共に、危険な運転が行われないので安全性が向上する。
【０３３８】
また、前記論理回路部１１００ｎ・１２００ｎに設けられた可逆カウンタ２１００ｎ・２２００ｎの一部または全部は、待機バッファレジスタ４１０４ｎ・４２０４ｎを備えている。当該待機バッファレジスタ４１０４ｎ・４２０４ｎは、前記転送仲介メモリ１１４ｂから送信された数値データが一時格納され、前記論理回路部１１００ｎ・１２００ｎが発生するタイミング信号に基づいて当該待機バッファレジスタの内容が前記第一の設定レジスタ３１０１ｎ・３２０１ｎまたは第二の設定レジスタ３１０２ｎ・３２０２ｎに転送される。前記転送仲介メモリ１１４ｂから送信された数値データが前記待機バッファレジスタを介して時間差をおいて前記第一および第二の設定値レジスタに転送されるのか、待機バッファレジスタを介さずに第一および第二の設定レジスタに対して直接転送されるのかは、特殊命令の内容によって判別される。
【０３３９】
また、前記システムメモリ１１２Ｃは、プログラマブルコントローラ１００Ｃの運転中において実行される転送禁止手段９２０となる制御プログラムを包含している。当該転送禁止手段９２０は、前記特殊ユニット２３０〜２５０に適用された特殊命令が動作完了信号を発生する命令であって、当該特殊命令が実行開始されてから動作完了信号が得られるまでは少なくとも前記第一の設定レジスタ３１０１ｎ・３２０１ｎと第二の設定レジスタ３１０２ｎ・３２０２ｎ対する設定データの送信を禁止する。当該動作完了信号は、前記第一のポート２１に入力されたパルス信号、または第二のポート２２が発生したパルス信号が、予め設定された目標パルスに到達したとき、または指令信号によってパルス発生・計数を完了したときに、前記報告ビットメモリ７１００ｎ・７２００ｎの内容を読み出して得られる。
【０３４０】
また、前記論理回路部１１００ｎ・１２００ｎに設けられた可逆カウンタ２１００ｎ・２２００ｎの一部または全部は、変分値調整用レジスタ４１０３ｎ・４２０３ｎを備えている。当該変分値調整用レジスタ４１０３ｎ・４２０３ｎは前記可逆カウンタ２１００ｎ・２２００ｎに対してアップまたはダウンの計数入力が与えられたときに作用して、前記現在値レジスタ４１０１ｎ・４２０１ｎに対して変分値調整用レジスタ４１０３ｎ・４２０３ｎに格納されている数値が加算または減算される。
【０３４１】
実施の形態４．
（１）構成と作用の詳細な説明
以下、この発明の実施の形態４によるプログラマブルコントローラのユニット構成図である図４５について、図３８のものとの相違点を中心として説明する。なお、各図において、同一符号は同一または相当部分を示している。また、マイクロプロセッサ１１１の基本動作は図４４のフローチャートで説明したとおりである。
【０３４２】
図４５において、プログラマブルコントローラ１００Ｄは、ＣＰＵユニット１１０Ｄと、入出力ユニット２２０〜２５０、２６０Ｂと、終端ブロック２９０とによって構成されている。ＣＰＵユニット１１０Ｄは、例えばＡＣ１００Ｖ〜２４０Ｖの商用電源である外部電源１０９から給電されると共に、図示しない脱着コネクタを介して外部ツール１０８と接続され、入出力制御プログラムの書込みや運転状態の監視を行うことができるようになっている。ＣＰＵユニット１１０Ｄの内部には、マイクロプロセッサ１１１と、例えばマスクＲＯＭメモリであるシステムメモリ１１２Ｄと、例えば不揮発フラッシュメモリであって、ユーザが作成した入出力制御プログラムが格納されるプログラムメモリ１１３Ｄと、例えばＲＡＭメモリであって、後述する入出力イメージメモリと補助リレーとデータレジスタとを包含するデバイスメモリ１１４ａと、前述した転送仲介メモリ１１４ｂと、前記デバイスメモリ１１４ａの一部領域をバックアップするバッテリ１１５と、各入出力ユニットとデータ交信を行うためのバスインタフェース回路１１６と、警報表示器１１７と、前記外部ツール１０８とマイクロプロセッサ１１１とを接続するシリアルインタフェース１１８と、制御用電源１１９とが設けられている。
【０３４３】
この内、マイクロプロセッサ１１１、システムメモリ１１２Ｄ、プログラムメモリ１１３Ｄ、デバイスメモリ１１４ａ、転送仲介メモリ１１４ｂ、バスインタフェース１１６、シリアルインタフェース１１８とは互いにバス接続されている。なお、制御用電源１１９はＣＰＵユニット１１０Ｄの外部に設置することも可能であり、電源ユニットとＣＰＵユニットと所定点数の入出力ユニットによって基本ユニットが構成されるようになっている。
【０３４４】
システムメモリ１１２Ｄは、図４４で前述した各種制御プログラムを包含すると共に、プログラムメモリ１１３Ｄに格納されたシーケンス言語による入出力制御プログラムをマイクロプロセッサ１１１に対応した機械言語に変換してマイクロプロセッサ１１１を作動させるものとなっていて、製品の出荷段階でメーカによって格納されたプログラムとなっている。プログラムメモリ１１３Ｄには、例えばパーソナルコンピュータである外部ツール１０８を用いてユーザによって作成された入出力制御用のシーケンスプログラムが、シリアルインタフェース１１８を介して書込みされている。その一例となるものが前述した図２０〜図２５、図２７、図２９、図３６、図４３で表現されたシーケンス図であって、画面上でシーケンス図を作画すると自動的にシーケンスプログラムが作成されるようになっている。
【０３４５】
ＣＰＵユニット１１０Ｄの端面位置には、前述した入出力ユニット２２０、２３０、２４０、２５０が接続されている。続く入出力ユニット２６０Ｂは、集積回路素子２０と第一および第二のポート２１および２２を備えた特殊ユニットを構成し、当該特殊ユニットは、例えば８点のアナログセンサ１０５ａによるアナログ信号電圧が、電圧／周波数変換器２６３と入力絶縁回路２６１とを介して入力されると共に、８点のアナログ負荷１０５ｂが出力絶縁回路２６６と平滑回路２６８を介して駆動される入出力混合の特殊ユニットとなっている。
【０３４６】
以下、図４５に示す特殊ユニット２６０Ｂについて、アナログセンサ側の構成図である図４６と、アナログ負荷側の構成図である図４７について、図３９および図４０のものとの相違点を中心として説明する。なお、各図において、同一符号は同一または相当部分を示している。図４６および図４７において、特殊ユニット２６０Ｂは、８点のアナログセンサ１０５ａに接続される入力端子２６０Ｘと、８点のアナログ負荷１０５ｂに接続される出力端子２６０Ｙを備えている。入力端子２６０Ｘと集積回路素子２０に設けられた第一のポート２１との間にはアナログ回路用の入力インタフェース回路２６９Ｘが設けられている。入力インタフェース回路２６９Ｘは、入力電圧に比例した周波数のパルスを発生する電圧／周波数変換器２６３ｎと入力絶縁回路２６１ｎとが各チャンネル番号ｎ＝０〜７毎に直列接続されている。出力端子２６０Ｙと集積回路素子２０に設けられた第二のポート２２との間にはアナログ負荷用の出力インタフェース回路２６９Ｙが設けられている。出力インタフェース回路２６９Ｙは、出力絶縁回路２６６ｎと平滑回路２６８ｎとが各チャンネル番号ｎ＝０〜７毎に直列接続されている。
【０３４７】
第一および第二のポート２１および２２は、チャンネル番号ｎ＝０〜７に対応して図中で符号表記されていないチャンネル端子２１ｎおよび２２ｎを備え、各チャンネル端子には同一構成内容の論理回路部１１００ｎ・１２００ｎとが設けられている。論理回路部１１００ｎの複数の入力端子の一つはチャンネル端子２１ｎに直接接続され、論理回路部１１００ｎの複数の出力端子の一つは第一のゲート素子２５ｎを介してチャンネル端子２１ｎに間接接続されている。各ゲート素子２５ｎのゲート端子は第一のモード切換端子２８ａを介して定電圧電源線Ｖｃｃに接続されているが、これは第一のポート２１が出力インタフェース回路２６９Ｙではなく、入力インタフェース回路２６９Ｘに接続されていることを意味するものであると共に、第一のモード切換端子２８ａの論理レベルが「Ｈ」であることによって第一のゲート素子２５ｎは開路状態となっている。なお、第一の識別端子２４ａはグランド回路ＧＮＤに接続されているが、これは入力インタフェース回路２６９Ｘが論理信号用ではなくアナログ信号用であることを識別するためのものとなっている。さらに、第一の信号端子２６ａの論理レベルは「Ｈ」となっていて、前述のアナログ比較用ではないことを示している。
【０３４８】
論理回路部１２００ｎの複数の入力端子の一つはチャンネル端子２２ｎに直接接続され、論理回路部１２００ｎの複数の出力端子の一つは第二のゲート素子２７ｎを介してチャンネル端子２２ｎに間接接続されている。各ゲート素子２７ｎのゲート端子は第二のモード切換端子２８ｂを介してグランド回路ＧＮＤに接続されているが、これは第二のポート２２が入力インタフェース回路２６９Ｘではなく、出力インタフェース回路２６９Ｙに接続されていることを意味するものであると共に、第二のモード切換端子２８ｂの論理レベルが「Ｌ」であることによって第二のゲート素子２７ｎは閉路状態となっている。なお、第二の識別端子２４ｂもグランド回路ＧＮＤに接続されているが、これは出力インタフェース回路２６９Ｙが論理負荷用ではなくてアナログ負荷用のものであることを識別するためのものとなっている。さらに、第二の信号端子２６ｂの論理レベルは「Ｈ」となっていて、前述のアナログ比較用ではないことを示している。特殊ユニット２６０Ｂを構成する電子基板２９ａｂには前記マイクロプロセッサ１１１とバス接続するためのバス接続用端子２６０Ｚが設けられ、当該バス接続用端子２６０Ｚは集積回路素子２０のバス接続用端子２３に接続されている。
【０３４９】
以下、図４１に示す論理回路部１１００ｎ・１２００ｎを各種の具体的なアナログ入出力回路に適用した場合の論理回路の構成を前述の図３４および図３５を参照しながら説明する。なお、実施の形態１および２の場合と実施の形態３および４の場合の根本的な相違点は、実施の形態３および４の場合には各チャンネルｎに対して一対の論理回路部を備えているので、入出力点数の合計で２倍の点数の入出力を扱うことができるようになっていることである。
【０３５０】
図３４：パルス密度測定回路
図３４ではアナログ入力用のパルス密度測定回路１０２１ｎが示されているが、図４１に示す論理回路部１１００ｎ・１２００ｎによれば、同様に構成された一対のパルス密度測定回路１１２１ｎ・１２２１ｎ（図示しない）が得られる。
【０３５１】
図３５：ＰＷＭ出力回路
図３５ではアナログ出力用のＰＷＭ出力回路１０５１ｎが示されているが、図４１に示す論理回路部１１００ｎ・１２００ｎによれば、同様に構成された一対のＰＷＭ出力回路１１５１ｎ・１２５１ｎ（図示しない）が得られる。したがって、例えば図３０における入出力ユニット１７０では、８点のアナログ入力端子１７０Ｘと８点のアナログ出力端子１７０Ｙを備えているが、論理回路部１０００ｎが８点しかないために、入出力の合計で８点の処理を行うことができる構成となっている。これに対し、例えば図４５における入出力ユニット２６０Ｂでは、８点のアナログ入力端子２６０Ｘと８点のアナログ出力端子２６０Ｙを備えていて、論理回路部１１００ｎ・１２００ｎを各８点備えているために、入力・出力で各８点、合計で１６点のアナログ入出力の処理を行うことができる構成となっている。
【０３５２】
特殊ユニット２６０Ｂは、８点のアナログ出力が行えるようになっているが、もしもアナログ出力を１点しか必要としない用途においては、残りの７点をＯＮ／ＯＦＦ動作の負荷に適用することができる。この場合、図３５における設定データ３１５１ｎ・３２５１ｎの中のＯＦＦ時間幅に関するデータをゼロにしたり、最大にすることによって出力を完全ＯＮまたは完全ＯＦＦにすることができるが、このような数値データを送信しなくても、デバイスメモリ１１４ａの中の出力イメージメモリにＯＮ／ＯＦＦ情報を書込んでおくと、図４２に示す汎用出力回路１１９０ｎおよび１２９０ｎによって指令ラッチメモリ６１００ｎ・６２００ｎにＯＮ／ＯＦＦ情報を送信し、指令ラッチメモリ６１００ｎ・６２００ｎからチャンネル端子２１ｎおよび２２ｎにＯＮ／ＯＦＦ信号を出力することができる。なお、ＰＷＭ命令が適用されていないアナログ出力チャンネルについては、デバイスメモリ１１４ａの中の出力イメージメモリの内容が出力処理手段９２３によって自動的に指令ラッチメモリ６１００ｎ・６２００ｎに送信されるようになっている。
【０３５３】
特殊ユニット２６０Ｂは、８点のアナログ入力が行えるようになっているが、もしもアナログ入力を１点しか必要としない用途においては、残りの７点を開閉信号入力として使用することができる。これは図３４と図３６（Ａ４）において説明したとおりである。なお、以上の説明において、実施の形態３のシステムメモリを１１２Ｃ、実施の形態４のシステムメモリを１１２Ｄと示したが、これらのシステムメモリは同一のものが使用される。
【０３５４】
（２）実施の形態４の要点と特徴
以上の説明で明らかなとおり、この発明の実施の形態４によるプログラマブルコントローラ１００Ｄは、マイクロプロセッサ１１１と、当該マイクロプロセッサ１１１と協働するシステムメモリ１１２Ｄと、ユーザによって作成されたシーケンスプログラムが外部ツール１０８から転送書込みされるプログラムメモリ１１３Ｄと、入出力情報および制御情報を記憶するための入出力イメージメモリＸ・Ｙと補助リレーＭとデータレジスタＤとを包含するデバイスメモリ１１４ａとを有するＣＰＵユニット１１０Ｄと、当該ＣＰＵユニットに対してバス接続される単独または複数の入出力ユニット２２０〜２５０・２６０Ｂを備えると共に、当該入出力ユニットの一部または全部が特殊入出力処理機能を分担して前記マイクロプロセッサ１１１の制御機能を補完するための集積回路素子２０を包含した特殊ユニット２３０〜２５０・２６０Ｂとなっている。前記特殊ユニット２３０〜２５０・２６０Ｂは、複数の外部センサまたは外部負荷の少なくとも一方または双方に接続される外部接続用端子２３０Ｘ・２４０Ｘ・２６０Ｘ、２４０Ｙ・２５０Ｙ・２６０Ｙと、当該外部接続端子に接続される多チャンネルの入力インタフェース回路２３９Ｘ・２４９Ｘ・２６９Ｘまたは出力インタフェース回路２４９Ｙ・２５９Ｙ・２６９Ｙと、制御仕様の一部分が可変設定できて入出力制御に共用される集積回路素子２０と、前記マイクロプロセッサ１１１と接続するためのバス接続用端子２３０Ｚ〜２５０Ｚ・２６０Ｚとを搭載した電子基板とを備えている。前記集積回路素子２０は、前記入力インタフェース回路２３９Ｘ・２４９Ｘ・２６９ＸからＯＮ／ＯＦＦ動作する論理信号が入力される第一のポート２１と、前記出力インタフェース回路２４９Ｙ・２５９Ｙ・２６９Ｙに対してＯＮ／ＯＦＦ動作する論理信号を出力する第二のポート２２と、各チャンネル番号ｎに対応するパラメータメモリ８１００ｎ・８２００ｎと、前記マイクロプロセッサ１１１から当該パラメータメモリに送信された回路編成データによって入出力処理のための動作仕様が決定される論理回路部１１００ｎ・１２００ｎを備えている。
【０３５５】
また、前記論理回路部１１００ｎ・１２００ｎは、報告ビットメモリ７１００ｎ・７２００ｎと、演算レジスタ４１００ｎ・４２００ｎと、設定レジスタ３１００ｎ・３２００ｎと、指令ラッチメモリ６１００ｎ・６２００ｎと、可逆カウンタ２１００ｎ・２２００ｎを包含している。前記可逆カウンタ２１００ｎ・２２００ｎは、前記演算レジスタ４１００ｎ・４２００ｎの一部となる現在値レジスタ４１０１ｎ・４２０１ｎを備えている。前記パラメータメモリ８１００ｎ・８２００ｎに送信される回路編成データは、複数種類の高速入力処理回路と複数種類の高速出力処理回路とにより処理され、前記外部センサからの入力信号がアナログ信号である場合に、前記入力インタフェース回路２６９Ｘは、入力信号に比例した周波数のパルスを前記集積回路素子２０に供給し、前記外部負荷がアナログ負荷である場合には、前記集積回路素子２０は出力信号に比例したＯＮ／ＯＦＦ比率のパルス出力を発生し、前記出力インタフェース回路２６９Ｙは、受信したパルス出力信号を平滑して外部負荷に供給する。
【０３５６】
また、前記ＣＰＵユニット１１０Ｄは、前記特殊ユニット２３０〜２５０・２６０Ｂとのデータ交信を行うための転送仲介メモリ１１４ｂを備えると共に、前記システムメモリ１１２Ｄは、編成処理手段９０８とデータ変換・転送手段９２１となる制御プログラムを包含している。前記編成処理手段９０８は、回路編成データを前記パラメータメモリ８１００ｎ・８２００ｎに送信すると共に、転送仲介メモリ１１４ｂのアドレス編成を行う。前記データ変換・転送手段９２１は、前記転送仲介メモリ１１４ｂを介して前記特殊命令で指定されたデバイスメモリ１１４ａと前記設定レジスタ３１００ｎ・３２００ｎおよび指令ラッチメモリ６１００ｎ・６２００ｎ、または前記演算レジスタ４１００ｎ・４２００ｎおよび報告ビットメモリ７１００ｎ・７２００ｎとの間のデータ交信を行う。前記特殊命令は、命令の種別を示す命令語と順不同の第一のオペランド、および第二または第三のオペランドの少なくとも一方とによって構成されている。
【０３５７】
また、前記論理回路部１１００ｎ・１２００ｎに設けられた可逆カウンタ２１００ｎ・２２００ｎの一部または全部は、現在値レジスタ４１０１ｎ・４２０１ｎと、第一の設定レジスタ３１０１ｎ・３２０１ｎと、第二の設定レジスタ３１０２ｎ・３２０２ｎと、第一の比較回路５１０１ｎ・５２０１ｎと、第二の比較回路５１０２ｎ・５２０２ｎとを備えている。前記現在値レジスタまたは第一および第二の設定レジスタには、前記特殊命令が実行されたときに前記マイクロプロセッサ１１１から前記転送仲介メモリ１１４ｂを介して数値設定が行われる。
【０３５８】
また、前記特殊ユニット２３０〜２５０：２６０Ｂに搭載される集積回路素子２０は、第一および第二のモード切換端子２８ａおよび２８ｂを有する多チャンネルの第一および第二のポート２１および２２と、チャンネル番号ｎに対応する一対の論理回路部１１００ｎ・１２００ｎを備えている。前記第一のポート２１を入力ポートとして使用するのか出力ポートとして使用するのかは前記第一のモード切換端子２８ａに入力された論理レベルによって選択決定される。前記第二のポート２２を入力ポートとして使用するのか出力ポートとして使用するのかは前記第二のモード切換端子２８ｂに入力された論理レベルによって選択決定される。前記論理回路部１１００ｎ・１２００ｎが前記入力インタフェース回路から供給された入力信号に対する高速カウンタ回路を構成して、カウントアップ出力を前記ＣＰＵユニット１１０Ｄに送信する高速入力処理またはアナログ入力処理を行うのか、または前記ＣＰＵユニット１１０Ｄから受信した設定データに基づく高速パルス出力回路を構成して、所定のパルス出力を前記出力インタフェース回路に供給する高速出力処理またはアナログ出力処理を行うのかは、前記プログラムメモリ１１３Ｄに格納されている制御プログラムに包含されている特殊命令の内容に連動していずれか一方に決定される。当該一対の論理回路部１１００ｎ・１２００ｎは、それぞれに各チャンネル番号ｎに対応して、一対の可逆カウンタ２１００ｎ・２２００ｎと、設定レジスタ３１００ｎ・３２００ｎと、演算レジスタ４１００ｎ・４２００ｎと、指令ラッチメモリ６１００ｎ・６２００ｎと、比較回路５１００ｎおよび５２００ｎと、報告ビットメモリ７１００ｎ・７２００ｎと、パラメータメモリ８１００ｎ・８２００ｎとを備えている。
【０３５９】
また、前記集積回路素子２０または当該集積回路素子を搭載した特殊ユニット２３０〜２５０・２６０Ｂは、カード情報格納メモリ９０００を備えると共に、前記システムメモリ１１２Ｄは、設定異常検出手段９０５となる制御プログラムを包含している。前記カード情報格納メモリ９０００は、前記第一および第二のポート２１および２２が入力ポートとして設定されているのか出力ポートとして設定されているのかに関する前記第一および第二のモード切換端子２８ａおよび２８ｂの論理情報と、前記入出力インタフェース回路が論理信号回路であるかアナログ信号回路であるかを識別する第一および第二の識別端子２４ａおよび２４ｂの論理情報の少なくとも一方を包含する。当該カード情報格納メモリ９０００の内容は、前記データバスを介して前記ＣＰＵユニット１１０Ｄに接続されて前記マイクロプロセッサ１１１によって読出し可能となっている。前記設定異常検出手段９０５は、前記第一および第二のポート２１および２２に接続されている入出力インタフェース回路の種別と、前記プログラムメモリ１１３Ｄに格納されている命令内容が不一致であることを検出して、運転停止および異常報知を行う。
【０３６０】
実施の形態５．
（１）構成と作用の詳細な説明
以下、この発明の実施の形態５による特殊ユニットの内部構成図である図４８について説明する。図４８において、ＣＰＵユニット１１０Ｅは、マイクロプロセッサ１１１と、システムメモリ１１２Ｅと、プログラムメモリ１１３Ｅと、デバイスメモリ１１４ａと、転送仲介メモリ１１４ｂとを備え、プログラムメモリ１１３Ｅには、外部ツール１０８からシーケンスプログラムが転送書込みされるようになっている。ＣＰＵユニット１１０Ｅに対してバス接続された特殊ユニット３４０は、８点の開閉センサ１０３ｘに接続される入力端子３４０Ｘと、８点の電気負荷１０３ｙに接続される出力端子３４０Ｙを備えている。
【０３６１】
入力端子３４０Ｘと集積回路素子３０に設けられた第一のポート３１との間には、高速論理入力用の入力インタフェース回路３４９Ｘが設けられている。入力インタフェース回路３４９Ｘは、入力絶縁回路３４１ｎと入力フィルタとなる例えば時定数で５μｓ程度の比較的短い時定数の入力フィルタ３４２ｎとが各チャンネル番号ｎ＝０〜７毎に直列接続されている。出力端子３４０Ｙと集積回路素子３０に設けられた第二のポート３２との間には、ＯＮ／ＯＦＦ動作用の出力インタフェース回路３４９Ｙが設けられている。出力インタフェース回路３４９Ｙは、パワートランジスタである出力素子３４７ｎと出力絶縁回路３４６ｎとが各チャンネル番号ｎ＝０〜７毎に直列接続されている。電子基板３９ｘｙには、入力端子３４０Ｘと入力インタフェース回路３４９Ｘ、出力端子３４０Ｙと出力インタフェース回路３４９Ｙ、バス接続用コネクタ３４０Ｚ並びに集積回路素子３０が搭載されて、特殊ユニット３４０を構成している。
【０３６２】
第一および第二のポート、はチャンネル番号ｎ＝０〜７に対応して図中で符号表記されていないチャンネル端子３１ｎおよび３２ｎを備えている。各チャンネルｎには一対の論理回路部１１００ｎ・１２００ｎが割付されていて、当該論理回路部１１００ｎ・１２００ｎは、データバスＤＡＴＡとの間で信号授受を行うと共に、論理回路部１１００ｎ・１２００ｎ相互間でも信号の授受を行い、さらにはチャンネル端子３１ｎから信号を受け取ったり、チャンネル端子３２ｎに信号を出力するようになっている。
【０３６３】
論理回路部１１００ｎ・１２００ｎの詳細は図４１に相当したものとなっていて、典型的な高速入力処理動作としては例えばチャンネル端子３１ｎから高速パルス信号が入力される。論理回路部１１００ｎは、これを計数して所定の目標回数になればカウントアップ出力をデータバスＤＡＴＡを介してマイクロプロセッサ１１１に送信し、当該目標回数は予めデータバスＤＡＴＡを介してマイクロプロセッサ１１１から設定データとして送信されているものである。
【０３６４】
また、典型的な高速出力処理動作としては、例えばマイクロプロセッサ１１１からデータバスＤＡＴＡを介して論理回路部１２００ｎに対して予め設定データとして送信されたパルス周期と発生パルス数に基づいて、チャンネル端子３２ｎから高速パルス出力を発生するものである。
【０３６５】
第一の識別端子３４ａは、第一のポート３１に接続された入力インタフェース回路３４９Ｘが論理入力用であることを識別するためのものであり、論理レベル「Ｈ」となるように配線パターンが接続されている。第二の識別端子３４ｂは、第二のポート３２に接続された出力インタフェース回路３４９Ｙが論理出力用であることを識別するためのものであり、論理レベル「Ｈ」となるように配線パターンが接続されている。
【０３６６】
第一および第二の信号端子３６ａおよび３６ｂは論理レベル「Ｈ」となっていて、高速論理用の入出力インタフェース回路が接続されていることを示している。なお、入出力インタフェース回路がアナログ比較用のものである場合には第一および第二の信号端子３６ａおよび３６ｂは論理レベル「Ｌ」に設定されるようになっている。
【０３６７】
これ等の識別端子情報は、カード情報格納メモリ９０００に供給され、データバスＤＡＴＡを介してマイクロプロセッサ１１１へ送信されるようになっている。共通クロック回路９００１は例えば１μｓｅｃを周期とするクロック信号τを発生して、必要に応じて各論理回路部１０００ｎへ供給するようになっている。共通トリガ回路９００２は例えば信号周期Ｔ０＝１０ｍｓｅｃで１μｓｅｃ幅の相前後するトリガ信号Ｐ０・Ｑ０を発生し、必要に応じて各論理回路部１０００ｎへ供給するようになっている。
【０３６８】
一対の論理回路部１１００ｎ・１２００ｎは、それぞれ１６ビットの可逆カウンタ２１００ｎ・２２００ｎと、設定レジスタ３１００ｎ・３２００ｎと、演算レジスタ４１００ｎ・４２００ｎと、比較回路５１００ｎおよび５２００ｎとを備えているが、一対の可逆カウンタ２１００ｎ・２２００ｎは、パラメータメモリ８１００ｎ・８２００ｎの内容によっては相互に従属接続されて１個の３２ビット可逆カウンタ２０００ｎとして動作するようになっている。一対の可逆カウンタ２１００ｎ・２２００ｎが１個の可逆カウンタ２０００ｎとして従属接続された場合には、設定レジスタ３１００ｎ・３２００ｎと、演算レジスタ４１００ｎ・４２００ｎと、比較回路５１００ｎおよび５２００ｎもそれぞれ３２ビットの設定レジスタ３０００ｎ、演算レジスタ４０００ｎ、比較回路５０００ｎとして一体化されるようになっている。
【０３６９】
各チャンネルに設けられた可逆カウンタを２点の１６ビットカウンタ２１００ｎ・２２００ｎとして扱うか、１点の３２ビットカウンタ２０００ｎとして扱うかの識別は、可逆カウンタに対する特殊命令が３２ビット命令であるか１６ビット命令であるかによって識別されるようになっている。なお、図３９および図４０で示したとおり、各論理回路部１１００ｎ・１２００ｎに対して第一および第二のゲート素子２５ｎおよび２７ｎに相当した第一および第二のゲート素子３５ｎおよび３７ｎを設けるようにすれば、第一および第二のポート３１および３２を入出力兼用ポートにすることも可能である。
【０３７０】
（２）実施の形態５の要点と特徴
以上の説明で明らかなとおり、この発明の実施の形態５によるプログラマブルコントローラ１００Ｅは、マイクロプロセッサ１１１と、当該マイクロプロセッサ１１１と協働するシステムメモリ１１２Ｅと、ユーザによって作成されたシーケンスプログラムが外部ツール１０８から転送書込みされるプログラムメモリ１１３Ｅと、入出力情報および制御情報を記憶するための入出力イメージメモリＸ・Ｙと補助リレーＭとデータレジスタＤとを包含するデバイスメモリ１１４ａとを有するＣＰＵユニット１１０Ｅと、当該ＣＰＵユニットに対してバス接続される単独または複数の入出力ユニット３４０を備えると共に、当該入出力ユニットの一部または全部が特殊入出力処理機能を分担して前記マイクロプロセッサ１１１の制御機能を補完するための集積回路素子３０を包含した特殊ユニット３４０となっている。前記特殊ユニット３４０は、複数の外部センサまたは外部負荷の少なくとも一方または双方に接続される外部接続用端子３４０Ｘ・３４０Ｙと、当該外部接続端子に接続される多チャンネルの入力インタフェース回路３４９Ｘまたは出力インタフェース回路３４９Ｙと、制御仕様の一部分が可変設定できて入出力制御に共用される集積回路素子３０と、前記マイクロプロセッサ１１１と接続するためのバス接続用端子３４０Ｚとを搭載した電子基板３９ｘｙとを備えている。前記集積回路素子３０は、前記入力インタフェース回路３４９ＸからＯＮ／ＯＦＦ動作する論理信号が入力される第一のポート３１と、前記出力インタフェース回路３４９Ｙに対してＯＮ／ＯＦＦ動作する論理信号を出力する第二のポート３２と、各チャンネル番号ｎに対応するパラメータメモリ８１００ｎ・８２００ｎと、前記マイクロプロセッサ１１１から当該パラメータメモリに送信された回路編成データによって入出力処理のための動作仕様が決定される論理回路部１１００ｎ・１２００ｎを備えている。
【０３７１】
また、前記論理回路部１１００ｎ・１２００ｎは、前記入力インタフェース回路３４９Ｘを介して得られる論理入力信号を高速計数して、カウントアップ出力または計数データを前記マイクロプロセッサ１１１に報告信号または演算データとして送信する報告ビットメモリ７１００ｎ・７２００ｎと演算レジスタ４１００ｎ・４２００ｎを備えると共に、前記マイクロプロセッサ１１１から受信した設定データまたは指令信号を設定レジスタ３１００ｎ・３２００ｎと指令ラッチメモリ６１００ｎ・６２００ｎに格納し、当該設定レジスタと指令ラッチメモリの内容に基づく高速パルス出力を前記出力インタフェース回路３４９Ｙに供給する可逆カウンタ２１００ｎ・２２００ｎを包含している。前記可逆カウンタ２１００ｎ・２２００ｎは、前記演算レジスタの一部となる現在値レジスタ４１０１ｎ・４２０１ｎを備え、前記入力インタフェース回路３４９Ｘから供給された入力信号に対する高速カウンタ回路を構成して、カウントアップ出力を前記ＣＰＵユニット１１０Ｅに送信する高速入力処理を行うのか、または前記ＣＰＵユニット１１０Ｅから受信した設定データに基づく高速パルス出力回路を構成して、所定のパルス出力を前記出力インタフェース回路３４９Ｙに供給する高速出力処理を行うのかは、前記プログラムメモリに格納されている制御プログラムに包含されている特殊命令の内容に連動して、各チャンネル毎にいずれか一方に決定される。前記パラメータメモリ８１００ｎ・８２００ｎに送信される回路編成データは、複数種類の高速入力処理回路と複数種類の高速出力処理回路とにより処理され、前記外部センサからの入力信号がアナログ信号である場合に、前記入力インタフェース回路は入力信号に比例した周波数のパルスまたは比較判定論理信号を前記集積回路素子３０に供給し、前記外部負荷がアナログ負荷である場合には、前記集積回路素子３０は出力信号に比例したＯＮ／ＯＦＦ比率のパルス出力を発生して、前記出力インタフェース回路は受信したパルス出力信号を平滑して外部負荷に供給する。
【０３７２】
また、前記ＣＰＵユニット１１０Ｅは、前記特殊ユニット３４０とのデータ交信を行うための転送仲介メモリ１１４ｂを備えると共に、前記システムメモリ１１２Ｅは、編成処理手段９０８とデータ変換・転送手段９２１となる制御プログラムを包含している。前記編成処理手段９０８は、前記プログラマブルコントローラ１００Ｅの運転開始直後において、前記プログラムメモリ１１３Ｅの内容を検索して特殊ユニット３４０に対応した特殊命令を抽出し、当該特殊命令の内容に対応して当該特殊ユニットで適用される論理回路部１１００ｎ・１２００ｎの種別と動作モードに対応した回路編成データを前記パラメータメモリ８１００ｎ・８２００ｎに送信すると共に、当該パラメータによって回路編成が特定された各論理回路部と交信するための転送仲介メモリ１１４ｂのアドレス編成を行う。前記データ変換・転送手段９２１は、前記特殊命令で指定されたデバイスメモリ１１４ａの内容に基づいて前記論理回路部１１００ｎ・１２００ｎの動作に適した換算単位の設定データと指令信号に変換して前記転送仲介メモリ１１４ｂを介して設定レジスタ３１００ｎ・３２００ｎおよび指令ラッチメモリ６１００ｎ・６２００ｎに送信すると共に、前記論理回路部１１００ｎ・１２００ｎから得られた演算データまたは報告信号を前記転送仲介メモリ１１４ｂを介して前記特殊命令によって指定されたデバイスメモリ１１４ａに転送する。前記特殊命令は、命令の種別を示す命令語と順不同の第一のオペランド、および第二または第三のオペランドの少なくとも一方とによって構成され、当該第一のオペランドは対象となる特殊ユニットの入出力番号を特定する識別番号を指定し、第二のオペランドは前記演算レジスタから得られる演算データを格納するデータレジスタ番号、または前記設定レジスタに対して送信される設定データが格納されているデータレジスタ番号か直接設定定数を指定し、第三のオペランドは前記報告ビットメモリから得られる報告信号を格納する補助リレー番号、または前記指令ラッチメモリ対して送信される指令信号が格納されている補助リレー番号を指定する。
【０３７３】
また、前記論理回路部１１００ｎ・１２００ｎに設けられた可逆カウンタ２１００ｎ・２２００ｎの一部または全部は、現在値レジスタ４１０１ｎ・４２０１ｎと、第一の設定レジスタ３１０１ｎ・３２０１ｎと、第二の設定レジスタ３１０２ｎ・３２０２ｎと、第一の比較回路５１０１ｎ・５２０１ｎと、第二の比較回路５１０２ｎ・５２０２ｎとを備えている。前記現在値レジスタ４１０１ｎ・４２０１ｎは、前記可逆カウンタ２１００ｎ・２２００ｎの計数入力の動作回数を計数方向に応じて加減して、当該可逆カウンタの動作開始時の初期値からの累積値を記憶しているメモリであり、前記第一の比較回路５１０１ｎ・５２０１ｎは、前記第一の設定レジスタ３１０１ｎ・３２０１ｎに格納されている数値と前記現在値レジスタ４１０１ｎ・４２０１ｎの記憶数値が合致したときに第一の比較一致出力を発生する数値比較回路である。前記第二の比較回路５１０２ｎ・５２０２ｎは、前記第二の設定レジスタ３１０２ｎ・３２０２ｎに格納されている数値と前記現在値レジスタ４１０１ｎ・４２０１ｎの記憶数値が合致したときに第二の比較一致出力を発生する数値比較回路であり、前記現在値レジスタまたは第一および第二の設定レジスタには前記特殊命令が実行されたときに前記マイクロプロセッサ１１１から前記転送仲介メモリ１１４ｂを介して数値設定が行われる。
【０３７４】
また、前記特殊ユニット３４０に搭載される集積回路素子３０は、多チャンネルの第一および第二のポート３１および３２と、チャンネル番号ｎに対応する一対の論理回路部１１００ｎ・１２００ｎを備えている。前記第一のポート３１は、前記集積回路素子３０の外部に設けられた論理信号用またはアナログ信号用の入力インタフェース回路を介して外部機器に接続するための入力端子に接続され、前記第二のポート３２は、前記集積回路素子３０の外部に設けられた論理信号用またはアナログ信号用の出力インタフェース回路を介して外部機器に接続するための出力端子に接続され、前記論理回路部１１００ｎ・１２００ｎが前記入力インタフェース回路から供給された入力信号に対する高速カウンタ回路を構成して、カウントアップ出力を前記ＣＰＵユニット１１０Ｅに送信する高速入力処理またはアナログ入力処理を行うのか、または前記ＣＰＵユニット１１０Ｅから受信した設定データに基づく高速パルス出力回路を構成して、所定のパルス出力を前記出力インタフェース回路に供給する高速出力処理またはアナログ出力処理を行うのかは、前記プログラムメモリ１１３Ｅに格納されている制御プログラムに包含されている特殊命令の内容に連動していずれか一方に決定される。
【０３７５】
また、当該一対の論理回路部１１００ｎ・１２００ｎは、それぞれに各チャンネル番号ｎに対応して、一対の可逆カウンタ２１００ｎ・２２００ｎと、設定レジスタ３１００ｎ・３２００ｎと、演算レジスタ４１００ｎ・４２００ｎと、指令ラッチメモリ６１００ｎ・６２００ｎと、比較回路５１００ｎおよび５２００ｎと、報告ビットメモリ７１００ｎ・７２００ｎと、パラメータメモリ８１００ｎ・８２００ｎとを備えている。前記一対の可逆カウンタ２１００ｎ・２２００ｎは、前記特殊命令が倍長命令であるときには相互に従属接続され１個の倍長可逆カウンタ２０００ｎを構成する。つまり、特殊ユニットに搭載される集積回路素子は、一対の論理回路部と第一および第二のポートを備え、一対の可逆カウンタを個別の可逆カウンタとして使用したり、１個の倍長可逆カウンタとして使用することができるようになっている。したがって、例えば各可逆カウンタは１６ビットで構成し、一方の可逆カウンタを１６ビットの高速カウンタとして使用すると共に、他方の可逆カウンタを１６ビットのパルス出力回路として使用するか、もしくは３２ビットの高速カウンタまたは３２ビットのパルス出力回路のいずれか一方として使用することができ、集積回路素子の規模を圧縮してしかも多様な用途に適用することができる。
【０３７６】
また、前記集積回路素子３０または当該集積回路素子を搭載した特殊ユニット３４０は、カード情報格納メモリ９０００を備えると共に、前記システムメモリ１１２Ｅは、設定異常検出手段９０５となる制御プログラムを包含している。前記カード情報格納メモリ９０００には、前記第一および第二のポート３１および３２に対して論理信号用のインタフェース回路が接続されているか、アナログ信号用のインタフェース回路が接続されているかを識別する第一および第二の識別端子情報３４Ａ・３４ｂが格納され、当該カード情報格納メモリ９０００の内容は前記データバスを介して前記ＣＰＵユニット１１１Ｅに接続されて前記マイクロプロセッサ１１１によって読出し可能となっている。前記設定異常検出手段９０５は、前記第一および第二のポート３１および３２に接続されている入出力インタフェース回路の種別と、前記プログラムメモリ１１３Ｅに格納されている命令内容が不一致であることを検出して、運転停止および異常報知を行う。つまり、運転開始に当たって、特殊ユニットの入出力インタフェース回路の種別に対応したカード情報とプログラムメモリ内の命令内容を照合して、不適当な命令が使用されているときには運転停止と異常報知を行うようになっている。したがって、誤った制御プログラムの有無を発見してデバッグ処理を行うことができると共に、危険な運転が行われないので安全性が向上する。
【０３７７】
また、前記論理回路部１１００ｎ・１２００ｎに設けられた可逆カウンタ２１００ｎ・２２００ｎの一部または全部は、待機バッファレジスタ４１０４ｎ・４２０４ｎを備えている。当該待機バッファレジスタ４１０４ｎ・４２０４ｎは、前記転送仲介メモリ１１４ｂから送信された数値データが一時格納され、前記論理回路部１１００ｎ・１２００ｎが発生するタイミング信号に基づいて当該待機バッファレジスタの内容が前記第一の設定レジスタ３１０１ｎ・３２０１ｎまたは第二の設定レジスタ３１０２ｎ・３２０２ｎに転送されるものであり、前記転送仲介メモリ１１４ｂから送信された数値データが前記待機バッファレジスタを介して時間差をおいて前記第一および第二の設定値レジスタに転送されるのか、待機バッファレジスタを介さずに第一および第二の設定レジスタに対して直接転送されるのかは、前記特殊命令の内容によって判別される。
【０３７８】
また、前記システムメモリ１１２Ｅは、プログラマブルコントローラ１００Ｅの運転中において実行される転送禁止手段９２０となる制御プログラムを包含している。当該転送禁止手段９２０は、前記特殊ユニット３４０に適用された特殊命令が動作完了信号を発生する命令であって、当該特殊命令が実行開始されてから動作完了信号が得られるまでは少なくとも前記第一の設定レジスタ３１０１ｎ・３２０１ｎと第二の設定レジスタ３１０２ｎ・３２０２ｎ対する設定データの送信を禁止する。当該動作完了信号は、前記第一のポート３１に入力されたパルス信号、または第二のポート３２が発生したパルス信号が、予め設定された目標パルスに到達したとき、または指令信号によってパルス発生・計数を完了したときに、前記報告ビットメモリ７１００ｎ・７２００ｎの内容を読み出して得られる。
【０３７９】
さらに、前記論理回路部１１００ｎ・１２００ｎに設けられた可逆カウンタ２１００ｎ・２２００ｎの一部または全部は、変分値調整用レジスタ４１０３ｎ・４２０３ｎを備えている。当該変分値調整用レジスタ４１０３ｎ・４２０３ｎは、前記可逆カウンタ２１００ｎ・２２００ｎに対してアップまたはダウンの計数入力が与えられたときに作用して、前記現在値レジスタ４１０１ｎ・４２０１ｎに対して変分値調整用レジスタ４１０３ｎ・４２０３ｎに格納されている数値が加算または減算される。
【図面の簡単な説明】
【０３８０】
【図１】この発明の実施の形態１によるプログラマブルコントローラのユニット構成図である。
【図２】図１に示す特殊ユニットとして構成される入出力ユニット１３０の内部構成図である。
【図３】図１に示す特殊ユニットとして構成される入出力ユニット１４０の内部構成図である。
【図４】図２および図３における論理回路部１０００ｎの詳細構成図である。
【図５】図４に示す論理回路部１０００ｎを可変フィルタ回路とした場合のブロック図である。
【図６】図４に示す論理回路部１０００ｎをパルス密度測定回路とした場合のブロック図である。
【図７】図４に示す論理回路部１０００ｎをパルス幅測定回路とした場合のブロック図である。
【図８】図４に示す論理回路部１０００ｎをエッジ検出回路とした場合のブロック図である。
【図９】図４に示す論理回路部１０００ｎを１相１入力の高速カウンタ回路とした場合のブロック図である。
【図１０】図４に示す論理回路部１０００ｎを１相２入力の高速カウンタ回路とした場合のブロック図である。
【図１１】図４に示す論理回路部１０００ｎをＰＷＭ出力回路とした場合のブロック図である。
【図１２】図４に示す論理回路部１０００ｎを第一のパルス出力回路とした場合のブロック図である。
【図１３】図４に示す論理回路部１０００ｎを第二のパルス出力回路とした場合のブロック図である。
【図１４】図４に示す論理回路部１０００ｎを変形型パルス出力回路とした場合のブロック図である。
【図１５】図１に示すデバイスメモリ１１４ａの構成例を示す図である。
【図１６】図１に示す高速カウンタ番号の構成例を示す図である。
【図１７】図１に示す高速出力番号の構成例を示す図である。
【図１８】図１に示すプログラマブルコントローラの基本動作を説明するフローチャートである。
【図１９】図１８に続くフローチャートである。
【図２０】図１に示すプログラマブルコントローラの一般的なシーケンス制御回路図である。
【図２１】可変フィルタ命令とパルス密度測定命令の使用例を示す図である。
【図２２】エッジ検出命令の使用例を示す図である。
【図２３】高速カウンタ命令とパルス幅測定命令の使用例を示す図である。
【図２４】第一のパルス出力命令の使用例を示す図である。
【図２５】第二のパルス出力命令の使用例を示す図である。
【図２６】図２５の説明用特性線図である。
【図２７】原点復帰命令の使用例を示す図である。
【図２８】図２７の説明用特性線図である。
【図２９】ＰＷＭ出力命令の使用例を示す図である。
【図３０】この発明の実施の形態２によるプログラマブルコントローラのユニット構成図である。
【図３１】図３０に示す特殊ユニット１５０の内部構成図である。
【図３２】図３０に示す特殊ユニット１６０の内部構成図である。
【図３３】図３０に示す特殊ユニット１７０の内部構成図である。
【図３４】アナログ信号用のパルス密度測定回路のブロック図である。
【図３５】アナログ信号用のＰＷＭ出力回路のブロック図である。
【図３６】アナログ入出力命令の使用例を示す図である。
【図３７】図３０に示す特殊ユニット１８０の内部構成図である。
【図３８】この発明の実施の形態３によるプログラマブルコントローラのユニット構成図である。
【図３９】図３８に示す特殊ユニット２４０の前半構成図である。
【図４０】図３８に示す特殊ユニット２４０の後半構成図である。
【図４１】図３９および図４０における論理回路部の詳細構成図である。
【図４２】図４１に示す論理回路部１１００ｎ（１２００ｎ)を、汎用入出力回路とした場合のブロック図である。
【図４３】可変フィルタ命令ＲＥＦと監視読出命令ＥＸＲＤの使用例を示すシーケンス図である。
【図４４】図３８に示す構成の基本動作説明用のフローチャートである。
【図４５】この発明の実施の形態４によるプログラマブルコントローラのユニット構成図である。
【図４６】図４５に示す特殊ユニット２６０Ｂの前半構成図である。
【図４７】図４６に示す特殊ユニット２６０Ｂの後半構成図である。
【図４８】この発明の実施の形態５による特殊ユニット３４０の内部構成図である。
【符号の説明】
【０３８１】
１０，２０，３０  集積回路素子、１１，２１，３１  第一のポート、１２，２２，３２  第二のポート、１１ｎ，２１ｎ，３１ｎ  チャンネル端子、１２ｎ，２２ｎ，３２ｎ  チャンネル端子、１４ａ，２４ａ，３４ａ  第一の識別端子、１４ｂ，２４ｂ，３４ｂ  第二の識別端子、２５ｎおよび２７ｎ  第一および第二のゲート素子、１６ａ，２６ａ，３６ａ  第一の信号端子、１６ｂ，２６ｂ，３６ｂ  第二の信号端子、２８ａ，２８ｂ  第一および第二のモード切換端子、１９，２９，３９  電子基板、１００Ａ〜１００Ｅ  プログラマブルコントローラ、１０８  外部ツール、１１０Ａ〜１１０Ｅ  ＣＰＵユニット、１１１  マイクロプロセッサ、１１２Ａ〜１１２Ｅ  システムメモリ、１１３Ａ〜１１３Ｅ  プログラムメモリ、１１４ａ  デバイスメモリ、１１４ｂ  転送仲介メモリ、１２０，２２０  汎用入出力ユニット、１３０〜１８０  第一〜第六の特殊ユニット、２３０〜２５０，２６０Ｂ  第一〜第四の特殊ユニット、３４０  特殊ユニット、１３０Ｘ〜１８０Ｘ  入力端子、２４０Ｘ，２６０Ｘ，３４０Ｘ  入力端子、１３０Ｙ〜１８０Ｙ  出力端子、２４０Ｙ，２６０Ｙ，３４０Ｙ  出力端子、１３０Ｚ〜１８０Ｚ  バス接続用端子、１４０Ｚ，１６０Ｚ，３４０Ｚ  バス接続用端子、１３９Ｘ〜１８９Ｘ  入力インタフェース回路、２４９Ｘ，２６９Ｘ，３４９Ｘ  入力インタフェース回路、１３９Ｙ〜１８９Ｙ  出力インタフェース回路、２４９Ｙ，２６９Ｙ，３４９Ｙ  出力インタフェース回路、１５３ｎ，１７３ｎ，２６３ｎ  電圧／周波数変換器、１８１１ｎ  比較回路、５２  最小フィルタ設定回路、５４  記憶回路、１６８ｎ〜１８８ｎ，２６８ｎ  平滑回路、９０５  設定異常検出手段、９０８  編成処理手段、９１１  入力処理手段、９１８  パラメータ変更手段、９２０  転送禁止手段、９２１  データ変換・転送手段、９２３  出力処理手段、９３１  初期設定手段、ＡＢＳ  第三のパルス出力命令、ＡＮＲＤ  ＡＤ変換命令、ＡＮＷＲ  ＤＡ変換命令、ＤＣＶＲＤ  現在位置読出命令、ＤＲＶ  第二のパルス出力命令、ＥＤＧＥ  エッジ検出命令、ＦＲＥＱ  パルス密度測定命令、ＨＣＭＰ  高速比較命令、ＨＳＣ  高速カウンタ命令、ＰＬＳ  第一のパルス出力命令、ＰＬＤ  パルス幅測定命令、ＰＷＭ  ＰＷＭ出力命令、ＲＥＦ  可変フィルタ命令、ＺＲＮ  原点復帰命令、Ｖｃｃ  定電圧電源線、ＧＮＤ  グランド回路、ＤＡＴＡ  データバス、ＡＤＲ  アドレスバス、１０００ｎ，１１００ｎ・１２００ｎ  論理回路部、２０００ｎ，２１００ｎ・２２００ｎ  可逆カウンタ、３０００ｎ，３１００ｎ・３２００ｎ  設定レジスタ、３００１ｎ，３１０１ｎ，３２０１ｎ  第一の設定レジスタ、３００２ｎ，３１０２ｎ，３２０２ｎ  第二の設定レジスタ、４０００ｎ，４１００ｎ・４２００ｎ  演算レジスタ、４００１ｎ，４１０１ｎ，４２０１ｎ  現在値レジスタ、４００２ｎ，４１０２ｎ，４２０２ｎ  キープホールドレジスタ、４００３ｎ，４１０３ｎ，４２０３ｎ  変分値調整用レジスタ、４００４ｎ，４１０４ｎ，４２０４ｎ  待機バッファレジスタ、５０００ｎ，５１００ｎおよび５２００ｎ  比較回路、５００１ｎ，５１０１ｎ，５２０１ｎ  第一の比較回路、５００２ｎ，５１０２ｎ，５２０２ｎ  第二の比較回路、５００３ｎ，５１０３ｎ，５２０３ｎ  復帰比較回路、６０００ｎ，６１００ｎ・６２００ｎ  指令ラッチメモリ、７０００ｎ，７１００ｎ・７２００ｎ  報告ビットメモリ、８０００ｎ，８１００ｎ・８２００ｎ  パラメータメモリ、９０００  カード情報メモリ、１０１０ｎ，１１１０ｎ，１２１０ｎ  可変フィルタ回路、１０２０ｎ，１０２１ｎ  パルス密度測定回路、１０２２ｎ  パルス幅定回路、１０３０ｎ  高速カウンタ回路、１０３１ｎ  エッジ検出回路、１０４０ｎ  高速カウンタ回路、１０５０ｎ，１０５１ｎ  ＰＷＭ出力回路、１０６０ｍ  第一のパルス出力回路、１０７０・０  第二のパルス出力回路、１０７０・４  第二のパルス出力回路、１０８０・０  変形型パルス出力回路、１０８０・４  変形型パルス出力回路、１０９１  汎用入力回路、１０９２  汎用出力回路、１１９０ｎおよび１２９０ｎ  汎用出力回路、３０１０ｎ，３１１０ｎ，３２１０ｎ  設定データ、３０２０ｎ〜３０２２ｎ  設定データ、３０３０ｎ，３０３１ｎ  設定データ、３０４０ｍ  設定データ、３０５０ｎ  設定データ、３０５１ｎ  設定データ、３０６０ｍ  設定データ、３０７０・０  設定データ、３０８０・０  設定データ、４０２０ｎ〜４０２２ｎ  演算データ、４０６０ｍ  演算データ、４０７０・０  演算データ、６０２２ｎ  指令信号、６０３０ｎ，６０３１ｎ  指令信号、６０４０ｍ  指令信号、６０６０ｍ  指令信号、６０７０・０  指令信号、６０８０・０  指令信号、７０１０ｎ  報告信号、７０２１ｎ，７０２２ｎ  報告信号、７０３０ｎ，７０３１ｎ  報告信号、７０４０ｍ  報告信号、７０６０ｍ  報告信号、７０７０・０  報告信号、７０８０・０  報告信号、７１１２ｎ，７２１２ｎ  報告信号、Ｑ  カウントアップ出力、Ｑ  復帰出力、Ｐ  上昇比較一致出力、Ｐ  下降比較一致出力。
【図１】
0004507125.tif 000002
【図２】
0004507125.tif 000003
【図３】
0004507125.tif 000004
【図４】
0004507125.tif 000005
【図５】
0004507125.tif 000006
【図６】
0004507125.tif 000007
【図７】
0004507125.tif 000008
【図８】
0004507125.tif 000009
【図９】
0004507125.tif 000010
【図１０】
0004507125.tif 000011
【図１１】
0004507125.tif 000012
【図１２】
0004507125.tif 000013
【図１３】
0004507125.tif 000014
【図１４】
0004507125.tif 000015
【図１５】
0004507125.tif 000016
【図１６】
0004507125.tif 000017
【図１７】
0004507125.tif 000018
【図１８】
0004507125.tif 000019
【図１９】
0004507125.tif 000020
【図２０】
0004507125.tif 000021
【図２１】
0004507125.tif 000022
【図２２】
0004507125.tif 000023
【図２３】
0004507125.tif 000024
【図２４】
0004507125.tif 000025
【図２５】
0004507125.tif 000026
【図２６】
0004507125.tif 000027
【図２７】
0004507125.tif 000028
【図２８】
0004507125.tif 000029
【図２９】
0004507125.tif 000030
【図３０】
0004507125.tif 000031
【図３１】
0004507125.tif 000032
【図３２】
0004507125.tif 000033
【図３３】
0004507125.tif 000034
【図３４】
0004507125.tif 000035
【図３５】
0004507125.tif 000036
【図３６】
0004507125.tif 000037
【図３７】
0004507125.tif 000038
【図３８】
0004507125.tif 000039
【図３９】
0004507125.tif 000040
【図４０】
0004507125.tif 000041
【図４１】
0004507125.tif 000042
【図４２】
0004507125.tif 000043
【図４３】
0004507125.tif 000044
【図４４】
0004507125.tif 000045
【図４５】
0004507125.tif 000046
【図４６】
0004507125.tif 000047
【図４７】
0004507125.tif 000048
【図４８】
0004507125.tif 000049