(57)【要約】      （修正有）【課題】ＣＰＵモジュールとＩＯモジュールとの間で高速にデータを受渡しすることで、外部入力からの高速な応答を可能にすること。【解決手段】プログラマブルコントローラは、ＣＰＵモジュール１と、１以上のＩＯモジュール２と、ＣＰＵモジュール１とＩＯモジュール２を接続するＩＯバス３とを備え、ＩＯモジュール２のうち第１のＩＯモジュールには、ＩＯバスに流れるＩＯモジュール２のデータをキャプチャするバスキャプチャ部を有し、ＣＰＵモジュール１からのリードアクセスに関する信号に基づいて、バスキャプチャ部が、第２のＩＯモジュール２０２，２０３のデータを取り込む。【選択図】図１
2019020822.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵモジュールと、１以上のＩＯモジュールと、前記ＣＰＵモジュールと前記ＩＯモジュールを接続するＩＯバスとを備え、
前記ＩＯモジュールのうち第１のＩＯモジュールには、前記ＩＯバスに流れるＩＯモジュールのデータをキャプチャするバスキャプチャ部を有し、
前記ＣＰＵモジュールからのリードアクセスに関する信号に基づいて、前記バスキャプチャ部が、第２のＩＯモジュールのデータを取り込むことを特徴とするプログラマブルコントローラ。
【請求項２】
請求項１記載のプログラマブルコントローラにおいて、前記第１のＩＯモジュールには、データ授受対象スロット情報が設定されており、前記データ授受対象スロット情報に設定されたスロットに対して、前記第１のＩＯモジュールが演算処理をすることを特徴とするプログラマブルコントローラ。
【請求項３】
請求項２記載のプログラマブルコントローラにおいて、前記バスキャプチャ部は、前記ＩＯバスに流れるアドレス信号に含まれるスロットアドレスをデコードしてアクセスするスロットを判定することを特徴とするプログラマブルコントローラ。
【請求項４】
請求項３記載のプログラマブルコントローラにおいて、前記判定したスロットに実装した第３のＩＯモジュールに、前記第１のＩＯモジュールが、演算したデータをライトアクセスすることを特徴とするプログラマブルコントローラ。
【請求項５】
請求項４記載のプログラマブルコントローラにおいて、前記第３のＩＯモジュールへのライトアクセスのデータ信号は、ハイインピーダンス状態とすることを特徴とするプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設備や機械システムの動作をシーケンスプログラムによって制御するプログラマブルコントローラのＣＰＵモジュールと入出力（ＩＯ）モジュールとのＩＯアクセス方式に関するものである。
【背景技術】
【０００２】
プログラマブルコントローラ（以下、「ＰＬＣ」という）は、ユーザが作成するラダープログラムをサイクリックに実行する制御機器であって、工場などに設置されている多様な機械設備やプラント設備などを制御するための汎用制御装置として広く普及している。
【０００３】
ＰＬＣは、機械設備の稼働状態をセンサやスイッチなどの機器からデジタル信号として入力モジュールを介して、外部入力としてのＯＮ／ＯＦＦ情報として取り込むか、あるいは、プラント設備の圧力情報や温度情報などをアナログ信号として取り込み、ユーザが作成したシーケンスプログラムにて演算を行う。
【０００４】
そして、その演算結果は、デジタル信号やアナログ信号として出力モジュールを介して機械設備の動力源やプラント設備のバルブなどに伝達され、設備全体の高度な制御が実現される。この入力モジュールから入力データを取り込み、出力モジュールへ演算結果を出力することを「ＩＯリフレッシュ」と呼ぶ。ＰＬＣによる制御を高速に行うための手段の一つとして、このＩＯリフレッシュを高速に行うことが挙げられる。
【０００５】
このＰＬＣによる制御を高速化するための技術として、例えば、特許文献１には、「入出力モジュール割付情報に各モジュールの更新周期を設定可能とし、毎スキャンのリフレッシュ処理実行時に、更新周期が設定された更新周期と等しいか、あるいは、それよりも過ぎているモジュールのみリフレッシュを実行することで、ＣＰＵモジュールとＩＯモジュールとのバスアクセス回数を低減し、スキャン時間の高速化を図る」技術が示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１５−６０３７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記の特許文献１では、バスアクセス回数を低減しているが、外部入力のＯＮ／ＯＦＦ情報をトリガにモジュール内部の動作を制御していることは開示されていない。また、ＩＯモジュールとＣＰＵモジュールとの間でのデータの受渡しを高速に行う手法についても考慮されていない。
【０００８】
そこで、本発明では、ＣＰＵモジュールとＩＯモジュールとの間で高速にデータを受渡しすることで、外部入力からの高速な応答を可能にすることを目的とする。
【課題を解決するための手段】
【０００９】
本発明の好ましい一例としては、ＣＰＵモジュールと、１以上のＩＯモジュールと、ＣＰＵモジュールとＩＯモジュールを接続するＩＯバスとを備え、ＩＯモジュールのうち第１のＩＯモジュールには、ＩＯバスに流れるＩＯモジュールのデータをキャプチャするバスキャプチャ部を有し、ＣＰＵモジュールからのリードアクセスに関する信号に基づいて、バスキャプチャ部が、第２のＩＯモジュールのデータを取り込むプログラマブルコントローラである。
【発明の効果】
【００１０】
本発明によれば、外部入力からの高速な応答が可能となる。
【図面の簡単な説明】
【００１１】
【図１】実施例に係るプログラマブルコントローラの構成図である。
【図２】ＩＯバスのリード／ライトアクセスのタイムチャートである。
【図３】ＩＯバス上でのＩＯリフレッシュの演算の関係を示すタイムチャートである。
【図４】バスキャプチャ機能付きモジュールのＢＵＳコントローラの機能を説明する図である。
【図５】外部入力の取込みタイミングとリフレッシュの関係図である。
【図６】第２の実施例に係るプログラマブルコントローラの構成図である。
【図７】第２の実施例における同期化のイメージ図である。
【図８】第２の実施例におけるＣＰＵモジュール側のライトアクセスのタイムチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明によるバスキャプチャ機能付きＰＬＣの実施例について図面を参照しながら説明する。
【実施例１】
【００１３】
図１は、本発明の実施例に係るＰＬＣの構成図である。
【００１４】
このＰＬＣのＣＰＵモジュール１は、シーケンスプログラムの演算を行うＭＰＵ１１a、パソコン等の周辺機器と通信するための通信ポート１２、シーケンスプログラムやシステムプログラムを格納するためのＲＯＭ１３a、シーケンスプログラムの演算に使用するデータを格納するＲＡＭ１４a、ＲＡＭ１４aとＩＯバス３に接続されるＩＯモジュールとのデータ転送を行うＤＭＡＣ１５a、ＩＯバス３とのインタフェースであるアドレス出力部およびデータ入出力部を持つＢＵＳコントローラＭ１６（Ｍは「マスタ」を表す）、から構成される。
【００１５】
ＣＰＵモジュール１は、ＩＯスロット０、ＩＯスロット1、・・・ＩＯスロットｎに、どのようなＩＯモジュールが実装されているのか、あらかじめ把握する必要がある。通常はＩＯモジュール側において、ステータス情報として入出力タイプやデータサイズといった情報をＣＰＵモジュール１から認識できるようにする。
【００１６】
ＩＯモジュール２には、デジタル信号やアナログ信号用のＩＯモジュール（入力モジュール２０２や出力モジュール２０３）の他に、バスキャプチャ機能付きモジュール２０１がある。
３は、ＩＯバスを示し、アドレス/データ信号２１が流れる。２２は、スロット０から任意のｎを選択するスロットｎ選択信号を示し、スロットｎ選択信号は、ＩＯスロットｎに実装したＩＯモジュールのみに信号を送る構成である。２３は、リードストローブ信号を示す。２４は、ライトストローブ信号を示す。
【００１７】
ＣＰＵモジュール１は、ＩＯバス３を介して各ＩＯスロットにアクセスする。該ＩＯバス３のアドレス、データの他に、スロットを選択するためのスロット選択信号２２やリードストローブ信号２３、ライトストローブ信号２４が必要である。スロット選択信号２２は個々のスロット毎にＣＰＵモジュール１から出力されるものであるが、アドレスをデコードしてＣＰＵモジュール１がスロット選択信号２２を出力する。
【００１８】
バスキャプチャ機能付きモジュール２０１は、シーケンスプログラムの演算を行うＭＰＵ１１ｂ、シーケンスプログラムやシステムプログラムを格納するためのＲＯＭ１３ｂ、シーケンスプログラムの演算に使用するデータを格納するＲＡＭ１４ｂ、ＩＯバス３とのインタフェースであるアドレス出力部およびデータ入出力部を持つＢＵＳコントローラＳ１７（Ｓは「スレーブ」を表す）、から構成される。
【００１９】
図２は、このＩＯバス３上でのＣＰＵモジュール１のリードアクセスとライトアクセスを示すタイムチャートである。リードアクセスの際には、ＩＯスロットｎの入力モジュールを選択するスロットｎ選択信号２２がhighレベルからlowレベルに変化するタイミングで、アドレス/データ信号２１にはアドレスがＩＯバス３に流れる。リードストローブ信号２３がhighレベルからlowレベルに変化するタイミングで、ＩＯスロットｎの入力モジュールからリードデータが、ＩＯバス３に流れる。
【００２０】
ライトアクセスの際には、ＩＯスロットｎの出力モジュールを選択するスロットｎ選択信号２２が、highレベルからlowレベルに変化するタイミングで、アドレス/データ信号２１にはアドレスがＩＯバス３に流れる。ライトストローブ信号２４が、highレベルからlowレベルに変化するタイミングで、ＩＯスロットｎの出力モジュールからのライトデータが、ＩＯバス３に流れる。
【００２１】
ＣＰＵモジュール１は、このリード／ライトアクセスをＩＯスロットに実装されているＩＯモジュールに対して行う。図３に示すように、まずは入力モジュールからデータを取り込む入力リフレッシュを行い、そのデータにてユーザプログラムの実行を行った後、出力モジュールに対する出力リフレッシュを行う。これをスキャンと称し、サイクリックに行いＰＬＣとしての制御を行う。
【００２２】
ここで、図１に示す構成で、ＩＯリフレッシュを行う際に、ＩＯスロット０にバスキャプチャ機能付きモジュール２０１が実装されている場合の動作について説明する。ＣＰＵモジュール１がＩＯスロット１の入力モジュールに対する入力リフレッシュを行う際には、スロット選択信号はスロット１用の信号のみアサートされ、他のスロットに対するスロット選択信号はアサートされない。
【００２３】
これはＣＰＵモジュール１がアドレスに含まれるスロットアドレスをデコードすることによって、複数のスロット選択信号か一意に決まるスロット選択信号のみをアサートすることができるものである。よって他のスロットの入力モジュールがデータを出力することはない。
【００２４】
図４は、バスキャプチャ機能付きモジュール２０１のＢＵＳコントローラＳ１７の機能を説明する図である。バスキャプチャ部４２は、常に、ＩＯバス３を流れるアドレス/データ信号21を見ており、ＩＯスロット１のアドレスに対するＣＰＵモジュール１のアクセスを認識した際に、データ授受対象スロットテーブル４１のSlot1が”要”となっていることを認識可能であり、そのリードアクセス時のデータを取得することが可能となる。
【００２５】
データ授受対象スロットテーブル４１は、ＢＵＳコントローラＳ１７のメモリなどに格納する。
【００２６】
ＩＯスロット１に対するリードアクセス実行時に、バスキャプチャ部４２にて、ＩＯバス３上のアドレス/データ信号21のアドレスに含まれるスロットアドレスをデコードし、他のスロットに対するアクセスであることを認識可能である。たとえば、通常のＩＯモジュールがSlot0に実装されている場合は、ＩＯモジュール２は、Slot1のスロット選択信号は見ることはできない。一方、バスキャプチャ機能付きモジュール２０１では、アドレス信号に含まれるスロットアドレスをデコードし、Slot1へのアクセスであると判定する。
【００２７】
よって、予め設定されたデータ授受対象スロットテーブル４１に対するアクセスがあった場合にはそのリードデータを直接取り込むことが出来る。
【００２８】
このデータ授受対象スロットテーブルの情報は、ＰＣ上のプログラミングツールからＩＯモジュールの割付を行う際に、バスキャプチャ機能付きモジュール２０１が使用する入力モジュールの有無、スロット位置を指定し、プログラムを、ＣＰＵモジュール１へ転送後、ＣＰＵモジュール１から該バスキャプチャ機能付きモジュール２０１に必要な情報を転送することで入手することが出来る。
【００２９】
実施例１では、バスキャプチャ機能付きモジュール２０１がリードもしくはライトできるスロットを示すデータ授受対象スロットテーブル４１の設定に基づいて、ＩＯバス３からリードアクセス時のデータを取得することが可能となる。
【００３０】
従って、スロット１の入力データをＣＰＵモジュール１が取込み、その後スロット０のバスキャプチャ機能付きモジュール２０１に、該入力データを渡す必要がなくなり、より高速に入力データを取り込むことが可能である。
【００３１】
図４に示す双方向バッファ４３は、バスキャプチャ部４２もしくは通常アクセスバス制御部４４からのイネーブル信号に基づいて、ＢＵＳコントローラＳ１７の内部バス４５からＩＯバス３にデータを出力する。また、双方向バッファ４３は、バスキャプチャ部４２もしくは、通常アクセスバス制御部４４からのイネーブル信号に基づいて、ＩＯバス３からデータをＢＵＳコントローラＳ１７に入力することができる。
【００３２】
通常アクセスバス制御部４４は、自らの選択信号であるスロット０の選択信号については、データを取り込むとともに、出力するためのイネーブルの信号を、双方向バッファ４３に出力する。たとえば、バスキャプチャ機能付きモジュール２０１が、スロット０に実装されている場合は、バスキャプチャ部４２は、スロット１のスロット選択信号は見ることができないが、アドレス信号に含まれるスロットアドレスをデコードし、スロット１へのアクセスであることが判り、スロット１のデータを授受できるように双方向バッファ４３にイネーブル信号を出力する。
【００３３】
一般に、ＩＯモジュールである高機能モジュールにおいては、外部入力信号のＯＮ／ＯＦＦ情報をトリガにモジュール内部の動作を制御する。そこで、入力信号からの応答を高速化するため、そのモジュール自体で入力信号を取り込む機能も持たせることができる。
【００３４】
その場合は、物理的に入力可能な点数には制約が出てきてしまう。そのため外部入力信号を取り込み、その入力を元に制御を行う高機能モジュールは、ＣＰＵモジュールから該入力データを渡してもらう必要があった。
【００３５】
図５は、ＣＰＵモジュールから高機能モジュールが該入力データを渡してもらう場合の外部入力の取込みタイミングとリフレッシュの関係を示すタイムチャートである。実際の入力信号の変化がＡ点であったとすると、その後のＣＰＵモジュールの入力リフレッシュがＢ点で行われ、そのデータが高機能モジュールに渡るのはＣＰＵモジュールが出力リフレッシュを行ったＣ点ということになる。
【００３６】
図５の中で外部入力信号のＯＮ／ＯＦＦ(Ａ点)は、ＣＰＵモジュールが入力リフレッシュ(Ｂ点)を実行した時点で、ＣＰＵモジュールで認識できる。この入力リフレッシュは、図３に示すように、サイクリックに行われる。
【００３７】
実施例１によれば、バスキャプチャ機能付きモジュール２０１へのデータの取り込みは、Ｂ点で行われるため、外部入力からの高速な応答をすることができる。
【実施例２】
【００３８】
実施例１では、入力モジュールからバスキャプチャ機能付きモジュール２０１へデータを取り込む場合の実施例を説明した。実施例２では、バスキャプチャ機能付きモジュール２０１で、演算負荷を分散させる場合を、図６を用いて説明する。
【００３９】
ここで、ＣＰＵモジュール１では、スロット１の入力モジュール２０２、スロット２の出力モジュール２０３を対象とした演算を行い、スロット０のバスキャプチャ機能付きモジュール２０１では、スロット３の入力モジュール２０４、スロット４の出力モジュール２０５を対象として演算を行うものとする。
【００４０】
これらは予めユーザがスロット０のバスキャプチャ機能付きモジュール２０１に対してデータ授受対象スロットテーブル４１の情報を設定することで、バスキャプチャ機能付きモジュール２０１が、Slot”要”に対応する入出力モジュールでの入力リフレッシュや出力リフレッシュのタイミングを、認識可能となる。
【００４１】
図７に示すように、スロット１の入力モジュール２０２と、スロット２の出力モジュール２０３に対するＩＯリフレッシュはＣＰＵモジュール１が行う。一方、バスキャプチャ機能付きモジュール（高機能モジュール）２０１は、バスキャプチャ部４２によりスロット３からのリードアクセス、スロット４へのライトアクセスを認識可能であり、スロット３からのリードデータを取込み、ユーザユーザプログラムを実行し、スロット４へ演算結果を出力することが可能である。
【００４２】
図８に、スロット４に対するＣＰＵモジュール１側のライトアクセス時のタイムチャートを示す。
【００４３】
ライトアクセスの際には、ＩＯスロットｎを選択するスロットｎ選択信号２２が、highレベルからlowレベルに変化するタイミングで、アドレス/データ信号２１にはアドレスがＩＯバス３に流れる。ライトストローブ信号２４が、highレベルからlowレベルに変化するタイミングで、バスキャプチャ機能付きモジュール２０１が演算した結果のデータが、ＩＯバス３を経由してＩＯスロットｎの出力モジュールに、ライトデータとして流れる。
【００４４】
スロット４は、ＣＰＵモジュール１側のユーザプログラムによる演算対象としないため、アドレスのみを出力し、データは、ハイインピーダンス(Ｈｉ−Ｚ)状態とする。これで、このタイミング時にバスキャプチャ機能付きモジュール２０１が、演算結果をスロット４に出力することが出来る。
【００４５】
ＩＯリフレッシュのタイミングは、バスマスタであるＣＰＵモジュール１が、トリガとなり、バススレーブであるバスキャプチャ機能付きモジュール２０１は、そのタイミングに従うこととなる。
【００４６】
実施例２によれば、ＣＰＵモジュール１のＩＯリフレッシュに同期して、一部のＩＯモジュール２の入出力データを使用した制御を、バスキャプチャ機能付きモジュール２０１が、ＣＰＵモジュール１と分担して演算負荷を分散させることも可能となる。
よって、容易に、ＣＰＵモジュールと同期を行いつつ負荷分散を行うことが可能である。
【符号の説明】
【００４７】
１…ＣＰＵモジュール、２…ＩＯモジュール、３…ＩＯバス、１６…ＢＵＳコントローラＭ、１７…ＢＵＳコントローラＳ、４１…データ授受対象スロットテーブル、４２…バスキャプチャ部、２０１…バスキャプチャ機能付きモジュール
【図１】
2019020822.tif 000003
【図２】
2019020822.tif 000004
【図３】
2019020822.tif 000005
【図４】
2019020822.tif 000006
【図５】
2019020822.tif 000007
【図６】
2019020822.tif 000008
【図７】
2019020822.tif 000009
【図８】
2019020822.tif 000010