(57)【要約】  この発明に係る入出力制御装置（１０）は、入力インターフェース（１５）に接続するバス（２５）と、バス（２５）に接続し、動作の有効または無効が設定され、有効である場合にバス（２５）の信号を出力する複数の回路セレクタ（１１２）と、回路セレクタ（１１２）ごとに対応して設けられ、回路セレクタ（１１２）から信号が入力されると論理演算を行い、演算結果を示す信号をバス（２５）へ出力する複数の論理回路と、バス（２５）に接続し、動作の有効または無効が設定され、有効である場合にバス（２５）の信号を出力インターフェース（１６）へ出力する出力セレクタ（１１９）と、複数の回路セレクタ（１１２）と出力セレクタ（１１９）の動作の順序に基づいて、複数の回路セレクタ（１１２）または出力セレクタ（１１９）を有効または無効にする演算部（１２）と、を備える。
2016038645.tif 000002
【特許請求の範囲】
【請求項１】
外部から信号が入力される入力インターフェースに接続するバスと、前記バスに接続し、動作の有効または無効が設定され、有効である場合に前記バスの信号を出力し、無効である場合に前記バスの信号を出力しない複数の回路セレクタと、前記回路セレクタごとに対応して設けられ、前記回路セレクタから信号が入力されると論理演算を行い、演算結果を示す信号を前記バスへ出力する複数の論理回路と、前記バスに接続し、動作の有効または無効が設定され、有効である場合に前記バスの信号を出力インターフェースへ出力し、無効である場合に前記バスの信号を前記出力インターフェースへ出力しない出力セレクタと、前記複数の回路セレクタと前記出力セレクタの動作の順序に基づいて、前記複数の回路セレクタまたは前記出力セレクタを有効または無効にする演算部と、を備えたことを特徴とする入出力制御装置。
【請求項２】
前記演算部は、前記入力インターフェースまたは前記複数の論理回路から前記バスに信号が入力された場合、前記複数の回路セレクタと前記出力セレクタの動作の順序を示すデータに基づいて、前記複数の回路セレクタおよび前記出力セレクタを有効または無効にすることを特徴とする請求項１に記載の入出力制御装置。
【請求項３】
前記演算部と接続され、前記データを設定するデータ設定部をさらに備えたことを特徴とする請求項１に記載の入出力制御装置。
【請求項４】
前記演算部と接続され、前記論理回路が論理演算を行うために用いるパラメータを前記論理回路に設定するパラメータ設定部をさらに備えたことを特徴とする請求項１に記載の入出力制御装置。
【請求項５】
外部から信号が入力される入力インターフェースに接続するバスへの信号の入力を受け付ける入力ステップと、前記バスに接続する複数の回路セレクタのうち、任意の回路セレクタを有効にして、当該回路セレクタに前記バスの信号を出力させる回路選択ステップと、前記回路セレクタごとに対応して設けられる複数の論理回路のうち、前記回路セレクタから信号が入力された論理回路に論理演算を行わせ前記バスへ信号を出力させる演算ステップと、前記バスに接続する出力セレクタを有効にして、当該出力セレクタに前記バスの信号を出力インターフェースへ出力させる出力ステップと、を備えたことを特徴とする入出力制御方法。
【請求項６】
前記複数の回路セレクタと前記出力セレクタの動作の順序を示すデータを設定する動作データ設定ステップをさらに備え、前記回路選択ステップは、前記動作データ設定ステップにおいて設定された前記データに基づいて、前記回路セレクタを有効または無効にし、前記出力ステップは、前記動作データ設定ステップにおいて設定された前記データに基づいて、前記出力セレクタを有効または無効にすることを特徴とする請求項５に記載の入出力制御方法。
【請求項７】
パラメータを前記論理回路に設定するパラメータ設定ステップをさらに備え、前記演算ステップは、前記パラメータ設定ステップにおいて設定された前記パラメータに応じた論理演算を前記論理回路に行わせることを特徴とする請求項５に記載の入出力制御方法。
【請求項８】
入力インターフェースから入力された信号に応じて所定の動作を実行し、出力インターフェースから信号を出力する入出力制御装置にインストールされるプログラムにおいて、前記入力インターフェースに接続するバスに信号が入力された場合、前記バスに接続する複数の回路セレクタのうち、任意の回路セレクタを有効にして、当該回路セレクタに前記バスの信号を出力させる回路選択ステップと、前記回路セレクタごとに対応して設けられる複数の論理回路のうち、前記回路セレクタから信号が入力された論理回路に論理演算を行わせ前記バスへ信号を出力させる演算ステップと、前記バスに接続する出力セレクタを有効にして、当該出力セレクタに前記バスの信号を前記出力インターフェースへ出力させる出力ステップと、を前記入出力制御装置の演算部に実行させることを特徴とするプログラム。
【請求項９】
前記複数の回路セレクタと前記出力セレクタの動作の順序を示すデータを設定する動作データ設定ステップをさらに備え、前記回路選択ステップは、前記動作データ設定ステップにおいて設定された前記データに基づいて、前記回路セレクタを有効または無効にし、前記出力ステップは、前記動作データ設定ステップにおいて設定された前記データに基づいて、前記出力セレクタを有効または無効にすることを特徴とする請求項８に記載のプログラム。
【請求項１０】
パラメータを前記論理回路に設定するパラメータ設定ステップをさらに備え、前記演算ステップは、前記パラメータ設定ステップにおいて設定された前記パラメータに応じた論理演算を前記論理回路に行わせることを特徴とする請求項８に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】  この発明は、プログラマブルロジックコントローラの入出力制御を行う入出力制御装置、入出力制御方法、及び入出力制御を実行させるプログラムに関する。
【背景技術】
【０００２】  一般的なプログラマブルロジックコントローラは、マイクロプロセッサを内蔵し、各種アクチュエータや表示機器等の電子負荷が接続され、操作スイッチや各種センサなどからの入力信号に示された電子負荷の動作状態とメモリに格納されているシーケンスプログラムに応動して、電子負荷の駆動制御を行う。【０００３】  従来のプログラマブルロジックコントローラは、高速入出力処理を行うための集積回路素子と入出力インターフェース回路とを搭載した特殊ユニットを併用している。当該特殊ユニットは入出力制御装置として動作し、当該特殊ユニットに搭載された集積回路素子は、プログラムメモリ内の特殊命令の内容によって動作仕様が決定されるパラメータメモリと論理回路部とを備え、当該論理回路部を構成する可逆カウンタは、高速入力処理と高速出力処理のために兼用されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９-０６９８６４号公報（段落００１３、００５０、００５１、０１２１、及び図４）
【発明の概要】
【発明が解決しようとする課題】
【０００５】  従来のプログラマブルロジックコントローラにおいて、特殊ユニット（以下、入出力制御装置とする）は、プログラマブルロジックコントローラで実現できる多様な機能のうちの任意の機能を実行するものであるため、ユーザが所定の機能を容易に使用でき当該機能を効果的に実行できる反面、当該特殊ユニットの機能を修正したり設定されていない機能を追加したりすることができないという課題があった。【０００６】  この発明は、上記に鑑みてなされたものであって、取り扱いが容易で様々な機能を実現できるプログラマブルロジックコントローラの入出力制御装置、入出力制御方法、及びプログラムを得ることを目的とする。
【課題を解決するための手段】
【０００７】  この発明に係る入出力制御装置は、外部から信号が入力される入力インターフェースに接続するバスと、バスに接続し、動作の有効または無効が設定され、有効である場合にバスの信号を出力し、無効である場合にバスの信号を出力しない複数の回路セレクタと、回路セレクタごとに対応して設けられ、回路セレクタから信号が入力されると論理演算を行い、演算結果を示す信号をバスへ出力する複数の論理回路と、バスに接続し、動作の有効または無効が設定され、有効である場合にバスの信号を出力インターフェースへ出力し、無効である場合にバスの信号を出力インターフェースへ出力しない出力セレクタと、複数の回路セレクタと出力セレクタの動作の順序に基づいて、複数の回路セレクタまたは出力セレクタを有効または無効にする演算部と、を備える。【０００８】  この発明に係る入出力制御方法は、外部から信号が入力される入力インターフェースに接続するバスへの信号の入力を受け付ける入力ステップと、バスに接続する複数の回路セレクタのうち、任意の回路セレクタを有効にして、当該回路セレクタにバスの信号を出力させる回路選択ステップと、回路セレクタごとに対応して設けられる複数の論理回路のうち、回路セレクタから信号が入力された論理回路に論理演算を行わせバスへ信号を出力させる演算ステップと、バスに接続する出力セレクタを有効にして、当該出力セレクタにバスの信号を出力インターフェースへ出力させる出力ステップと、を備える。【０００９】  この発明に係るプログラムは、入力インターフェースから入力された信号に応じて所定の動作を実行し、出力インターフェースから信号を出力する入出力制御装置にインストールされるプログラムにおいて、入力インターフェースに接続するバスに信号が入力された場合、バスに接続する複数の回路セレクタのうち、任意の回路セレクタを有効にして、当該回路セレクタにバスの信号を出力させる回路選択ステップと、回路セレクタごとに対応して設けられる複数の論理回路のうち、回路セレクタから信号が入力された論理回路に論理演算を行わせバスへ信号を出力させる演算ステップと、バスに接続する出力セレクタを有効にして、当該出力セレクタにバスの信号を出力インターフェースへ出力させる出力ステップと、を入出力制御装置の演算部に実行させる。
【発明の効果】
【００１０】  本発明によれば、取扱いが容易で様々な機能を実現できるプログラマブルロジックコントローラの入出力制御装置、入出力制御方法、及びプログラムを提供できる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１におけるプログラマブルロジックコントローラの構成を示すブロック図である。
【図２】実施の形態１の入出力制御装置の汎用ロジック部における信号線の接続状態を示すブロック図である。
【図３】実施の形態１における入出力制御装置の記憶部の構成を示す概念図である。
【図４】実施の形態１におけるプログラマブルロジックコントローラがユーザプログラムを実行する際の動作の手順を示すフローチャートである。
【図５】実施の形態１においてユーザが予め汎用ロジック部の動作を設定する手順を示すフローチャートである。
【発明を実施するための形態】
【００１２】実施の形態１．  図１は、実施の形態１におけるプログラマブルロジックコントローラの構成を示すブロック図である。図１を用いて、実施の形態１における入出力制御装置を備えたプログラマブルロジックコントローラについて説明する。なお、本発明は、この実施の形態１により限定されるものではない。
【００１３】［プログラマブルロジックコントローラ１の構成］  実施の形態１において、プログラマブルロジックコントローラ１は、接続ケーブル２を介して周辺装置３と接続する。また、プログラマブルロジックコントローラ１は、開閉センサ４及び電子負荷５と接続する。
【００１４】  開閉センサ４は、例えば、モータに取り付けられてモータの回転角度を検出するロータリエンコーダ等のエンコーダである。電子負荷５は、例えば、電磁弁などのバルブやモータ等である。
【００１５】  また、プログラマブルロジックコントローラ１は、入出力制御装置１０とＣＰＵ装置２０を備える。
【００１６】［入出力制御装置１０の構成］  入出力制御装置１０は、汎用ロジック部１１、演算部１２、記憶部１３、通信インターフェース部１４、外部入力インターフェース部１５、及び外部出力インターフェース部１６を備える。
【００１７】  汎用ロジック部１１は、後述するように複数の回路セレクタと複数の回路素子を備え、ユーザオリジナルの動作設定に対応するための様々な機能を提供する。
【００１８】  演算部１２は、入出力制御装置１０の全体の動作を制御する中央処理装置（ＣＰＵ）である。また、演算部１２は、後述するように、各セレクタの動作の順序を示す動作データに基づいて、各セレクタの動作設定を有効または無効にするとともに、各回路素子の動作を示す設定パラメータに応じた論理演算を各回路素子に行わせる。各セレクタの動作データと各回路素子の設定パラメータは、後述するように、予め設定されたものである。
【００１９】  記憶部１３は、ＲＡＭ等のメモリであって、演算部１２が汎用ロジック部１１の動作を制御するためのデータを記憶する。記憶部１３は、後述するとおり、各セレクタの動作の順序を示す動作データと、各回路素子の動作を示す設定パラメータと、動作状態フラグと、測定データを記憶する。
【００２０】  通信インターフェース部１４は、ＣＰＵ装置２０との間で通信を行うためのインターフェースである。
【００２１】  外部入力インターフェース部１５は、汎用ロジック部１１と開閉センサ４とに接続し、開閉センサ４から信号を受信するとともに開閉センサ４からの信号に対応する信号を汎用ロジック部１１に出力する。外部出力インターフェース部１６は、汎用ロジック部１１と電子負荷５とに接続し、汎用ロジック部１１からの信号を受信するとともに汎用ロジック部１１からの信号に対応する信号を電子負荷５に出力する。
【００２２】  入出力制御装置１０の汎用ロジック部１１は、回路切替バス１１１、回路セレクタ１１２ａ、１１２ｂ、１１２ｃ、１１２ｄ、１１２ｅ、１１２ｆ、フィルタ１１３、論理ゲート１１４、カウンタ１１５、比較器１１６、演算器１１７、クロック１１８、出力セレクタ１１９、及び動作設定バス１２０を有する。
【００２３】  なお、以下において、回路セレクタ１１２ａ、１１２ｂ、１１２ｃ、１１２ｄ、１１２ｅ、１１２ｆをまとめて回路セレクタ１１２とも称する。また、フィルタ１１３、論理ゲート１１４、カウンタ１１５、比較器１１６、演算器１１７、及びクロック１１８を、まとめて回路素子とも称する。また、論理回路とは、実施の形態１において回路素子のことである。
【００２４】  回路切替バス１１１には、外部入力インターフェース部１５、回路セレクタ１１２、回路素子、及び出力セレクタ１１９が接続される。
【００２５】  回路セレクタ１１２は、パラメータが設定され、設定されたパラメータに応じて信号の出力の可否を制御する。すなわち、回路セレクタ１１２は、動作設定が有効であることを示すパラメータが設定された場合には、回路切替バス１１１の信号を回路素子へ出力する。動作設定が無効であることを示すパラメータが設定された場合には、回路切替バス１１１の信号を回路素子へ出力しない。
【００２６】  各回路素子は、回路セレクタ１１２ごとに対応して設けられ、回路セレクタ１１２から信号が入力されると予め設定されたパラメータに応じた論理演算を行い、回路切替バス１１１へ信号を出力する。
【００２７】  出力セレクタ１１９は、パラメータが設定され、設定されたパラメータに応じて信号の出力の可否を制御する。すなわち、出力セレクタ１１９は、動作設定が有効であることを示すパラメータが設定された場合には、回路切替バス１１１の信号を外部出力インターフェース部１６へ出力する。動作設定が無効であることを示すパラメータが設定された場合には、回路切替バス１１１の信号を外部出力インターフェース部１６へ出力しない。
【００２８】  なお、回路素子ごとに設けられた回路セレクタ１１２及び出力セレクタ１１９を、まとめて各セレクタとも称する。
【００２９】  動作設定バス１２０には、演算部１２、記憶部１３、通信インターフェース部１４、回路セレクタ１１２、各回路素子、及び出力セレクタ１１９が接続される。演算部１２は、記憶部１３に記憶されている各セレクタの動作データを、動作設定バス１２０を介して回路セレクタ１１２及び出力セレクタ１１９へ送信し、各セレクタのパラメータを設定または変更する。また、演算部１２は、記憶部１３に記憶されている各回路素子の設定パラメータを、動作設定バス１２０を介して各回路素子へ送信し、各回路素子のパラメータを設定または変更する。
【００３０】  汎用ロジック部１１は、開閉センサ４から外部入力インターフェース部１５を介して信号が入力されると、上述のように回路セレクタ１１２、各回路素子、出力セレクタ１１９を制御して論理演算を行い、外部出力インターフェース部１６を介して電子負荷５へ信号を出力する。
【００３１】［ＣＰＵ装置２０の構成］  ＣＰＵ装置２０は、演算部２１と、記憶部２２と、周辺装置インターフェース部２３と、通信インターフェース部２４とを備える。
【００３２】  演算部２１は、ＣＰＵ装置２０の全体の動作を制御する中央処理装置（ＣＰＵ）である。また、演算部２１は、ユーザプログラムとユーザプログラムの実行に用いられるデータに基づいて、プログラマブルロジックコントローラ１に接続される電子負荷５を制御する。ここで、ユーザプログラムとは、プログラマブルロジックコントローラ１が制御対象とする電子負荷５を制御するためのプログラムのことであり、例えばラダープログラムやＣ言語プログラムなどである。
【００３３】  記憶部２２は、例えばＲＯＭ等のメモリであり、演算部２１が電子負荷５を制御するためのデータを記憶する。記憶部２２は、後述するとおり、ユーザプログラムと、ユーザプログラムの実行に用いられるデータと、ユーザプログラムの実行結果のデータを記憶する。
【００３４】  周辺装置インターフェース部２３は、周辺装置３との間で通信を行うためのインターフェースである。通信インターフェース部２４は、入出力制御装置１０との間で通信を行うためのインターフェースである。
【００３５】  装置間バス２５は、入出力制御装置１０の通信インターフェース部１４とＣＰＵ装置２０の通信インターフェース部２４を接続する。入出力制御装置１０とＣＰＵ装置２０は、通信インターフェース部１４、装置間バス２５、及び通信インターフェース部２４を介して接続する。
【００３６】  演算部２１は、記憶部２２に記憶されたユーザプログラムを読み出して実行する。また、演算部２１は、読み出したユーザプログラムの内容を、通信インターフェース部２４及び通信インターフェース部１４を介して、入出力制御装置１０の記憶部１３に記憶させる。入出力制御装置１０の演算部１２は、展開されたユーザプログラムの内容に基づいて、当該ユーザプログラムにおいて指令された動作を入出力制御装置１０に実行させるために、記憶部１３に記憶された各回路素子の動作を示す設定パラメータを設定または変更する。
【００３７】  演算部２１は、記憶部２２に記憶されたユーザプログラムの実行、ユーザプログラムの実行に用いるデータの記憶部２２からの読み出し、及びユーザプログラムの実行結果の記憶部２２への書き込みを、所定の制御周期毎に繰り返して行う。ＣＰＵ装置２０の演算部２１は、ユーザプログラムの実行に用いるデータを読み出す際に、入出力制御装置１０の記憶部１３から、各回路素子の動作の設定と、汎用ロジック部１１の制御結果のデータを取得する。各回路素子の動作の設定は、例えば、カウンタ１１５のカウント許可指令やカウント値のリセット指令などであり、制御結果のデータはカウンタ１１５のカウント値などである。
【００３８】  なお、プログラマブルロジックコントローラ１は、入出力制御装置１０とＣＰＵ装置２０に加えて、機能を拡張するために追加の装置を備えてもよい。この装置の例として、例えば、サーボアンプを制御することにより多軸の位置制御を実現するモーションコントローラ装置や、ＣＰＵ装置２０からの指令に基づき温度制御信号を出力する温度コントローラ装置などがある。これらの各装置も、装置間バス２５を介して互いに接続される。
【００３９】［周辺装置３の構成］  周辺装置３は、プログラム設定部３１と、動作データ設定部３２と、外部通信インターフェース部３３とを備える。
【００４０】  プログラム設定部３１は、ユーザの操作を受け付けるグラフィカルユーザインターフェース（ＧＵＩ）である。プログラム設定部３１は、ユーザの操作により、プログラマブルロジックコントローラ１に対するユーザプログラムを作成する。プログラム設定部３１は、作成したユーザプログラムを、外部通信インターフェース部３３及び接続ケーブル２を介してプログラマブルロジックコントローラ１へ出力し、ＣＰＵ装置２０の記憶部２２に記憶させる。
【００４１】  また、プログラム設定部３１は、プログラマブルロジックコントローラ１から出力された各種データを、表示画面に表示して監視する。
【００４２】  動作データ設定部３２は、ユーザの操作を受け付けるグラフィカルユーザインターフェース（ＧＵＩ）である。動作データ設定部３２は、ユーザの操作により、汎用ロジック部１１の各回路素子のパラメータを示す設定パラメータを設定する。また、動作データ設定部３２は、ユーザの操作により、汎用ロジック部１１の各セレクタの動作の順序を示す動作データを設定する。
【００４３】  動作データ設定部３２は、汎用ロジック部１１の各回路素子の設定パラメータと各セレクタの動作データを、外部通信インターフェース部３３及び接続ケーブル２を介してプログラマブルロジックコントローラ１へ出力し、周辺装置インターフェース部２３、通信インターフェース部２４、装置間バス２５、及び通信インターフェース部１４を介して入出力制御装置１０の記憶部１３に記憶させる。また、動作データ設定部３２は、汎用ロジック部１１の動作をシミュレーションするための機能を備える。
【００４４】  プログラム設定部３１と動作データ設定部３２は、プログラミングツールや汎用回路ブロック設定ツールが格納されたプログラムを周辺装置３にインストールすることによって、周辺装置３内に設けられる。なお、プログラム設定部３１と動作データ設定部３２は、周辺装置３内に演算部や記憶部等を設けることにより、ハードウェア的に実現しても良い。
【００４５】［汎用ロジック部１１の構成］  図２は、実施の形態１の入出力制御装置の汎用ロジック部１１における信号線の接続状態を示すブロック図である。なお、図２においては、説明の便宜上、汎用ロジック部１１がフィルタ１１３と、論理ゲート１１４と、カウンタ１１５とを回路素子として備える構成を示しているが、図１に示す比較器１１６、演算器１１７、クロック１１８や、その他の回路素子を備えても良い。
【００４６】  外部入力インターフェース部１５は、２つの入力ポート１５１ａ、１５１ｂを有し、外部出力インターフェース部１６は、２つの出力ポート１６１ａ、１６１ｂを有する。なお、図２においては、説明の便宜上、外部からの入力を入力ポート１５１ａ、１５１ｂの２点とし、外部への出力を出力ポート１６１ａ、１６１ｂの２点としているが、入力ポートまたは出力ポートは、３点以上としてもかまわない。
【００４７】  なお、図２の出力セレクタ１１９ａ、１１９ｂについては、図１においてはまとめて出力セレクタ１１９としている。
【００４８】  外部入力インターフェース部１５は、外部から入力ポート１５１ａに入力された信号、または外部から入力ポート１５１ｂに入力された信号のうち、いずれか一方を回路切替バス１１１に入力する。回路切替バス１１１に入力された信号の出力先は、回路セレクタ１１２ａ、１１２ｂ、１１２ｃにより決定する。即ち、回路切替バス１１１の信号は、回路セレクタ１１２ａが有効である場合にはフィルタ１１３に出力され、回路セレクタ１１２ｂが有効である場合には論理ゲート１１４に出力され、回路セレクタ１１２ｃが有効である場合にはカウンタ１１５に出力される。
【００４９】  各回路素子は、回路セレクタ１１２から信号が入力されると、予め設定された各回路素子のパラメータに応じた演算を実行後、回路切替バス１１１に信号を出力する。また、回路切替バス１１１に出力された信号は、回路切替バス１１１を介して再度回路セレクタ１１２ａ、１１２ｂ、１１２ｃに出力される。このとき、セレクタ１１２ａ、１１２ｂ、１１２ｃの有効と無効を切り替えることによって、再度任意の回路素子に信号を出力できる。
【００５０】  任意の回路素子が所定の演算を実行した後、出力セレクタ１１９ａまたは出力セレクタ１１９ｂを有効に設定することにより、外部出力インターフェース部１６は、出力ポート１６１ａまたは出力ポート１６１ｂを介して外部に信号を出力する。
【００５１】  実施の形態１の汎用ロジック部１１において、外部入力インターフェース部１５、回路セレクタ１１２、各回路素子、及び出力セレクタ１１９は、回路切替バス１１１に接続している。そして、回路セレクタ１１２及び出力セレクタ１１９の有効と無効を任意に変更することにより、各回路素子に任意の順序で論理演算を実行させることができる。このとき、回路セレクタ１１２及び出力セレクタ１１９の有効と無効を変更せずに同じ回路素子に再度信号を入力し、再度論理演算を実行させることもできる。また、回路セレクタ１１２及び出力セレクタ１１９の有効と無効を任意に変更することにより、一の回路素子が論理演算を実行し、他の回路素子が論理演算を実行した後、再度一の回路素子に論理演算を実行させることもできる。
【００５２】［記憶部１３の構成］  図３は、実施の形態１における入出力制御装置の記憶部の構成を示す概念図である。図３を用いて、実施の形態１における入出力制御装置１０の記憶部１３の構成について説明する。
【００５３】  動作状態フラグは、動作開始や動作変更など、入出力制御装置１０の状態を示すフラグである。記憶部１３は、パラメータ設定部３１またはＣＰＵ装置２０から動作開始指令や動作変更指令が入力された場合に、動作開始や動作変更を示すフラグを動作状態フラグとして記憶する。また、記憶部１３は、入出力制御装置１０の動作の完了通知や動作の設定変更完了通知などが演算部１２から入力された場合に、動作の完了や設定変更完了を示すフラグを動作状態フラグとして記憶する。演算部１２は、記憶部１３に記憶された動作状態フラグに基づいて、動作の完了や設定変更完了をＣＰＵ装置２０へ通知する。ＣＰＵ装置２０は、通知された動作の完了や設定変更完了などの入出力制御装置１０の状態を記憶部２２に記憶する。
【００５４】  測定データは、プログラマブルロジックコントローラ１がユーザプログラムを実行した際に、入出力制御装置１０が取得したり演算して得られたデータであり、例えば、電子負荷５から入力された信号の周波数、電子負荷５として接続されたモータの回転速度等である。記憶部１３は、入出力制御装置１０が取得したり演算して得られたデータを測定データとして記憶する。演算部１２は、記憶部１３に記憶された測定データに基づいて、入出力制御装置１０により取得または演算されたデータをＣＰＵ装置２０へ通知し、記憶部２２に記憶させる。周辺装置３のパラメータ設定部３１は、記憶部２２が記憶している入出力制御装置１０により取得または演算されたデータを監視することができる。
【００５５】  設定パラメータは、各回路素子のパラメータを示し、例えば、汎用ロジック部１１のフィルタ１１３の特性データ、カウンタ１１５の動作モードなどである。演算部１２は、記憶部１３に記憶された各回路素子のパラメータをＣＰＵ装置２０へ通知し、ＣＰＵ装置２０の記憶部２２に記憶させる。ＣＰＵ装置２０は、記憶部２２が記憶している各回路素子のパラメータを監視したり、変更したりする。また、周辺装置３のパラメータ設定部３１または動作データ設定部３２も、記憶部２２が記憶している各回路素子のパラメータを監視または変更できる。
【００５６】  動作データは、汎用ロジック部１１に所定の論理演算を実行させるためのデータであり、すなわち、回路セレクタ１１２及び出力セレクタ１１９の動作設定について、有効と無効を切り替える順序を示すデータである。ユーザが動作データ設定部３２に各セレクタの動作データを入力した場合、動作データ設定部３２は、各セレクタの動作データを出力し、記憶部１３に動作データとして記憶させる。演算部１２は、記憶部１３に記憶された動作データを、回路セレクタ１１２及び出力セレクタ１１９へ送信し、各セレクタの動作設定の内容を示すパラメータを設定または変更する。各セレクタは、動作設定が有効であることを示すパラメータまたは動作設定が無効であることを示すパラメータが設定される。これにより、ユーザは、入出力制御装置１０が高速入出力制御を実行するために必要な各種機能を、容易に汎用ロジック部１１に行わせることができる。
【００５７】［汎用ロジック部１１の動作の設定手順］  図４は、実施の形態１において、汎用ロジック部の動作をユーザが予め設定する手順を示すフローチャートである。図４を用いて、汎用ロジック部１１の動作を設定してユーザが要求する各種機能を実現する方法について説明する。
【００５８】  ステップＳ１において、周辺装置３の動作データ設定部３２は、回路セレクタ１１２または出力セレクタ１１９の動作データを設定する指令が入力されたか否かを判断する。ユーザによりセレクタの動作データを設定する指令が入力された場合、動作データ設定部３２は、ステップＳ２において、入力内容に従ってセレクタの動作データを設定または変更する。また、周辺装置３は、設定または変更後のセレクタの動作データを外部通信インターフェース部３３から出力し、接続ケーブル２、周辺装置インターフェース部２３、通信インターフェース部２４、装置間バス２５、及び通信インターフェース部１４を介して入出力制御装置１０の記憶部１３に記憶させる。
【００５９】  ステップＳ１において、ユーザによりセレクタの動作データを設定する指令が入力されていない場合、ステップＳ３へと進む。
【００６０】  ステップＳ３において、周辺装置３の動作データ設定部３２は、回路素子のパラメータを設定する指令が入力されたか否かを判断する。ユーザにより回路素子のパラメータを設定する指令が入力された場合、動作データ設定部３２は、ステップＳ４において、入力内容に従って回路素子のパラメータを設定または変更する。また、周辺装置３は、設定または変更後の回路素子のパラメータを外部通信インターフェース部３３から出力し、接続ケーブル２、周辺装置インターフェース部２３、通信インターフェース部２４、装置間バス２５、及び通信インターフェース部１４を介して入出力制御装置１０の記憶部１３に記憶させる。
【００６１】  ステップＳ３において、ユーザにより回路素子のパラメータを設定する指令が入力されていない場合、ステップＳ５へと進む。
【００６２】  ステップＳ５において、周辺装置３の動作データ設定部３２は、汎用ロジック部１１の動作の設定を終了する指令が入力されたか否かを判断する。汎用ロジック部１１の動作の設定を終了する指令が入力されていない場合、ステップＳ１に戻る。汎用ロジック部１１の動作の設定を終了する指令が入力された場合、設定を終了する。
【００６３】［ユーザプログラムの実行手順］  図５は、実施の形態１におけるプログラマブルロジックコントローラがユーザプログラムを実行する際の動作の手順を示すフローチャートである。図５を用いて、プログラマブルロジックコントローラ１がユーザプログラムを実行する際の動作を説明する。
【００６４】  ステップＳ１１において、周辺装置３は、プログラム設定部３１が作成したユーザプログラムを外部通信インターフェース部３３から出力し、接続ケーブル２、周辺装置インターフェース部２３を介してＣＰＵ装置２０の記憶部２２に記憶させる。ＣＰＵ装置２０の演算部２１は、記憶部２２に記憶されたユーザプログラムを実行し、入出力制御装置１０に所定の動作を行わせることで、入出力制御装置１０に接続された電子負荷５を制御する。このとき、入出力制御装置１０の演算部１２は、ＣＰＵ装置２０の演算部２１から指令された所定の動作を実行するために、汎用ロジック部１１に所定の論理演算を実行させる。
【００６５】  汎用ロジック部１１に所定の論理演算を実行させるための動作について、図１、図２を用いて説明する。例えば、図２において、入力ポート１５１ａから入力された信号を、フィルタ１１３、論理ゲート１１４、カウンタ１１５の順序で入力し、出力ポート１６１ｂから出力する場合について説明する。
【００６６】  図５のステップＳ１２において、入出力制御装置１０の演算部１２は、外部の開閉センサ４等から信号が入力されたか否かを判断する。外部の開閉センサ４等から信号が入力されたと判断した場合、演算部１２は、入力された信号に対し、汎用ロジック部１１に所定の論理演算を実行させる。上記の例の場合、開閉センサ４から信号が入力された後、図２に示す入力ポート１５１ａは、開閉センサ４から入力された信号を回路切替バス１１１へ出力する。
【００６７】  図５のステップＳ１３において、入出力制御装置１０の演算部１２は、記憶部１３に記憶された動作データに従い回路セレクタ１１２のパラメータを変更する。上記の例の場合、演算部１２は、記憶部１３に記憶された動作データに基づいて、図１に示す動作設定バス１２０を介して汎用ロジック部１０の回路セレクタ１１２ａのパラメータの設定を変更する。これにより、回路セレクタ１１２ａは有効と設定され、信号を出力する。
【００６８】  図５のステップＳ１４において、入出力制御装置１０の演算部１２は、記憶部１３に記憶された設定パラメータに従い各回路素子のパラメータを変更する。上記の例の場合、演算部１２は、記憶部１３に記憶された設定パラメータに基づいて、図１に示す動作設定バス１２０を介して汎用ロジック部１０のフィルタ１１３のパラメータを設定する。フィルタ１１３は、このパラメータに基づいて、入力された信号に対して論理演算を実行し、演算結果を信号として出力する。
【００６９】  図５のステップＳ１５において、入出力制御装置１０の演算部１２は、記憶部１３に記憶された動作データの次の指令が、出力セレクタ１１９の動作設定を有効にする指令であるか否かを判断する。出力セレクタ１１９の動作設定を有効にする指令は、汎用ロジック部１１の回路素子の演算結果を外部に出力する指令であることを意味する。上記の例の場合、汎用ロジック部１１のカウンタ１１５が所定の論理演算を実行しておらず、まだ信号を外部に出力しないため、Ｎｏと判断され、ステップＳ１３へと戻る。
【００７０】  図５のステップＳ１３において、演算部１２は、記憶部１３に記憶された動作データに基づいて、図１に示す動作設定バス１２０を介して汎用ロジック部１０の回路セレクタ１１２ａと回路セレクタ１１２ｂのパラメータの設定を変更する。これにより、回路セレクタ１１２ａは無効と設定され回路切替バス１１１の信号をフィルタ１１３に出力せず、回路セレクタ１１２ｂは有効と設定されて回路切替バス１１１の信号を論理ゲート１１４に出力する。
【００７１】  図５のステップＳ１４において、演算部１２は、記憶部１３に記憶された設定パラメータに基づいて、図１に示す動作設定バス１２０を介して汎用ロジック部１０の論理ゲート１１４のパラメータを設定する。論理ゲート１１４は、このパラメータに基づいて、入力された信号に対して論理演算を実行し、演算結果を信号として出力する。
【００７２】  再度のステップＳ１５において、汎用ロジック部１１のカウンタ１１５が所定の論理演算を実行しておらず、まだ信号を外部に出力しないため、再度Ｎｏと判断され、ステップＳ１３へと戻る。
【００７３】  図５のステップＳ１３において、演算部１２は、記憶部１３に記憶された動作データに基づいて、図１に示す動作設定バス１２０を介して汎用ロジック部１０の回路セレクタ１１２ｂと回路セレクタ１１２ｃのパラメータの設定を変更する。これにより、回路セレクタ１１２ｂは無効と設定され回路切替バス１１１の信号を論理ゲート１１４に出力せず、回路セレクタ１１２ｃは有効と設定されて回路切替バス１１１の信号をカウンタ１１５に出力する。
【００７４】  図５のステップＳ１４において、演算部１２は、記憶部１３に記憶された設定パラメータに基づいて、図１に示す動作設定バス１２０を介して汎用ロジック部１０のカウンタ１１５のパラメータを設定する。カウンタ１１５は、このパラメータに基づいて、入力された信号に対して論理演算を実行し、演算結果を信号として回路切替バス１１１に出力する。
【００７５】  図５のステップＳ１５において、記憶部１３に記憶された動作データの次の指令が出力セレクタ１１９の動作設定を有効にする指令である場合、演算部１２は、汎用ロジック部１１の回路素子の演算結果を外部に出力する指令であると判断し、ステップＳ１６へと進む。
【００７６】  図５のステップＳ１６において、入出力制御装置１０の演算部１２は、記憶部１３に記憶された動作データに従い出力セレクタ１１９のパラメータを変更する。上記の例の場合、演算部１２は、記憶部１３に記憶された動作データに基づいて、図１に示す動作設定バス１２０を介して汎用ロジック部１０の回路セレクタ１１２ｃと出力セレクタ１１９ｂのパラメータの設定を変更する。これにより、回路セレクタ１１２ｃは無効と設定され回路切替バス１１１の信号をカウンタ１１５に出力せず、出力セレクタ１１９ｂは有効と設定されて回路切替バス１１１の信号を出力ポート１６１ｂに出力する。図２に示す出力ポート１６１ｂは、出力セレクタ１１９ｂから受けた信号を外部に出力する。
【００７７】  図５のステップＳ１７において、ＣＰＵ装置２０の演算部２１は、ユーザプログラムの実行が完了したか否かを判断する。ユーザプログラムの実行が完了していない場合、ステップＳ１２へと戻る。ユーザプログラムの実行が完了した場合、プログラマブルロジックコントローラ１は、動作を終了する。
【００７８】  このようにして、汎用ロジック部１１は、入力ポート１５１ａから入力された信号に対してフィルタ１１３、論理ゲート１１４、カウンタ１１５の順序で論理演算を実行させ、出力ポート１６１ｂから出力することができる。
【００７９】  なお、実施の形態１における汎用ロジック部１１は、図２において、回路素子としてフィルタ１１３、論理ゲート１１４、及びカウンタ１１５のみを示したが、図１に示す比較器１１６、演算器１１７、クロック１１８のうちのいずれか、またはすべてを備えてもよい。この場合、これらの回路素子に対応した回路セレクタ１１２とこれに付随する回路切替バス１１１を介して信号を入力することで、これらの回路素子の論理演算を追加することができる。
【００８０】  また、その他の回路素子と対応する回路セレクタ１１２、回路切替バス１１１をさらに備え、各回路素子を自由な組み合わせで使用することにより、実施の形態１の汎用ロジック部１１は、多様なユーザオリジナルのユニット動作モードに対応することが可能となる。
【００８１】  以上において説明したとおり、実施の形態１におけるプログラマブルロジックコントローラ１の入出力制御装置１０は、回路セレクタ１１２及び出力セレクタ１１９の有効と無効を任意に変更することにより、各回路素子に任意の順序で論理演算を実行させることができるため、ユーザは、入出力制御装置１０が高速入出力制御を実行するために必要な各種機能を、容易に汎用ロジック部１１に行わせることができる。実施の形態１の汎用ロジック部１１は、パルスカウント、周波数測定、高精度タイマ、ＰＷＭ出力、タイミング生成など、高速入出力制御に求められる各種機能を実現することができる。
【００８２】  また、汎用ロジック部１１の各セレクタの動作データと各回路素子のパラメータを変更するだけで多様な制御を実現するため、回路素子の内部回路を書き換えて回路素子の機能を変える必要がなく、ユーザの設計工数が削減できる。各セレクタの動作データと各回路素子のパラメータを変更して各種の機能について検証した後の汎用ロジック部１１を使用するため、メーカの製品品質を担保することができる。
【００８３】  さらに、ラダープログラムなどのソフトウェアロジックでは対応できないμsオーダの高速でかつ制御タイミングの安定した入出力制御が可能となるため、従来は専用のハードウェアロジックを実装したマイコンボードなどでしか実現できなかった高速入出力制御が、汎用のプログラマブルロジックコントローラで容易に実現できるようになる。
【００８４】  なお、実施の形態１において、動作データは、回路セレクタ１１２及び出力セレクタ１１９の動作設定について、有効と無効を切り替える順序を示すデータであるとした。また、実施の形態１における入出力制御装置１０の演算部１２は、図５のステップＳ１５において、記憶部１３に記憶された動作データの次の指令が、出力セレクタ１１９の動作設定を有効にする指令であるか否かを判断し、出力セレクタ１１９の動作設定を有効にする指令である場合、図５のステップＳ１６において、記憶部１３に記憶された動作データに従い出力セレクタ１１９のパラメータを変更することとしたが、これに限られるものではない。
【００８５】  例えば、記憶部１３に記憶された動作データには、回路セレクタ１１２の動作設定を変更する順序だけが記載されており、演算部１２は、記憶部１３に記憶された動作データに基づいて、回路セレクタ１１２のパラメータを変更することとしても良い。この場合、演算部１２は、図５のステップＳ１５において、記憶部１３に記憶された動作データに基づき汎用ロジック部１１の回路素子が所定の論理演算を実行したと判断すると、図５のステップＳ１６において、出力セレクタ１１９のパラメータを変更し、電子負荷５へ信号を出力させる。このような場合においても、実施の形態１における上述の効果を奏することができる。
【００８６】  また、実施の形態１において、回路セレクタ１１２は、動作設定が有効であることを示すパラメータが設定された場合には、回路切替バス１１１の信号を回路素子へ出力し、動作設定が無効であることを示すパラメータが設定された場合には、回路切替バス１１１の信号を回路素子へ出力しないとした。同様に、出力セレクタ１１９は、動作設定が有効であることを示すパラメータが設定された場合には、回路切替バス１１１の信号を外部出力インターフェース部１６へ出力し、動作設定が無効であることを示すパラメータが設定された場合には、回路切替バス１１１の信号を外部出力インターフェース部１６へ出力しないとした。しかし、実施の形態１における回路セレクタ１１２と出力セレクタ１１９は、これに限られるものではない。
【００８７】  例えば、回路セレクタ１１２と出力セレクタ１１９は、動作設定が有効であることを示すパラメータのみが設定されることとしても良い。この場合、回路セレクタ１１２は、動作設定が有効であることを示すパラメータが設定されると回路切替バス１１１の信号を回路素子へ出力し、出力セレクタ１１９は、動作設定が有効であることを示すパラメータが設定されると回路切替バス１１１の信号を外部出力インターフェース部１６へ出力する。
【００８８】  一方、動作設定が有効であることを示すパラメータが設定されていなければ、すなわちどのような設定もなされていないならば、回路セレクタ１１２は、動作設定が無効となり、回路切替バス１１１の信号を回路素子へ出力しない。同様に、動作設定が有効であることを示すパラメータが設定されていなければ、すなわちどのような設定もなされていないならば、出力セレクタ１１９は、動作設定が無効となり、回路切替バス１１１の信号を外部出力インターフェース部１６へ出力しない。このような場合においても、実施の形態１における上述の効果を奏することができる。
【符号の説明】
【００８９】１  プログラマブルロジックコントローラ、１０  入出力制御装置、１１  汎用ロジック部、１２  演算部、１３  記憶部、１５  外部入力インターフェース部、１６  外部出力インターフェース部、１１１  回路切替バス、１１２，１１２ａ，１１２ｂ，１１２ｃ，１１２ｄ，１１２ｅ，１１２ｆ  回路セレクタ、１１３  フィルタ、１１４  論理ゲート、１１５  カウンタ、１１６  比較器、１１７  演算器、１１８  クロック、１１９，１１９ａ，１１９ｂ  出力セレクタ、２０  ＣＰＵ装置、３  周辺装置、３１  パラメータ設定部、３２  動作データ設定部
【図１】
2016038645.tif 000003
【図２】
2016038645.tif 000004
【図３】
2016038645.tif 000005
【図４】
2016038645.tif 000006
【図５】
2016038645.tif 000007
【国際調査報告】
2016038645.tif 000008
2016038645.tif 000009
2016038645.tif 000010
2016038645.tif 000011