(57)【要約】【課題】シーケンスプログラムに従って演算を実行し、入出力モジュールとのリフレッシュを行うプログラマブルコントローラにおいて、入力および出力モジュールの使用数量が多くても、リフレッシュ処理時間の増大を防止し、スキャン時間の短縮を図る。【解決手段】ラダープログラムに付加される入出力モジュール割付情報に個々の入出力モジュールの更新周期を追加し、ラダープログラムを収めるシーケンスプログラムメモリに格納する。そして、スキャン実行時に該更新周期の設定情報を参照して個々の入出力モジュールに対するリフレッシュ実行の判断を行う。【選択図】  図４
2015060377.tif 000002
【特許請求の範囲】
【請求項１】
シーケンスプログラムに従って演算を実行し、入出力モジュールのリフレッシュ処理を行うプログラマブルコントローラのＣＰＵモジュールであって、
シーケンスプログラムを格納するシーケンスプログラムメモリと、
前記入出力モジュールのリフレッシュ周期を設定可能とする設定手段を有し、
前記入出力モジュールの設定周期を参照して個々の入出力モジュールのリフレッシュ実行の判断を行うことを特徴とするＣＰＵモジュール。
【請求項２】
請求項１記載のＣＰＵモジュールであって、
前記設定手段は、前記入出力モジュールの設定周期を前記シーケンスプログラムメモリに格納することを特徴とするＣＰＵモジュール。
【請求項３】
請求項１または２のいずれか１項に記載のＣＰＵモジュールであって、
前記設定手段は、モジュール単位で設定可能であることを特徴とするＣＰＵモジュール。
【請求項４】
請求項１から３のいずれか１項に記載のＣＰＵモジュールであって、
前記設定手段は、モジュールのワード単位で設定可能であることを特徴とするＣＰＵモジュール。
【請求項５】
請求項１から４のいずれか１項に記載のＣＰＵモジュールであって、
前記設定手段は、スキャン回数に対する更新比率を設定することを特徴とするＣＰＵモジュール。
【請求項６】
シーケンスプログラムに従って機器を制御するプログラマブルコントローラであって、
シーケンスプログラムを格納するシーケンスプログラムメモリと、
前記シーケンスプログラムに従って演算を実行するＣＰＵモジュールと、
外部接続された機器からのデータを取り込む入力モジュールと、
前記演算の結果を外部接続された機器へ出力する出力モジュールと、を有し、
さらに、前記入力モジュールのデータを取り込む周期と前記出力モジュールへ前記演算結果を出力する周期を設定可能とする設定手段を有し、
前記ＣＰＵモジュールは、前記入力モジュールと出力モジュールの個々の設定周期を参照して個々の入力モジュールと出力モジュールのリフレッシュ実行の判断を行うことを特徴とするプログラマブルコントローラ。
【請求項７】
請求項６記載のプログラマブルコントローラであって、
前記設定手段は、前記個々の入力モジュールと出力モジュールの設定周期をシーケンスプログラムメモリに格納することを特徴とするプログラマブルコントローラ。
【請求項８】
請求項６から７のいずれか１項に記載のプログラマブルコントローラであって、
前記設定手段は、スキャン回数に対する更新比率を設定することを特徴とするプログラマブルコントローラ。
【請求項９】
ＣＰＵモジュールと入出力モジュールを有するプログラマブルコントローラにおける入出力モジュールのリフレッシュ方法であって、
前記入出力モジュールの個々のリフレッシュ周期を設定可能として、
該設定された入出力モジュールの設定周期を参照して個々の入出力モジュールのリフレッシュ実行の判断を行うことを特徴とするプログラマブルコントローラにおける入出力モジュールのリフレッシュ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルコントローラに関し、特に、入出力モジュールのリフレッシュ方式に関する。
【背景技術】
【０００２】
プログラマブルコントローラは、ＦＡ（ファクトリオートメーション）やＰＡ（プロセスオートメーション）に代表される汎用制御装置として広く普及しており、シーケンスプログラムに従って機器を制御するものである。
【０００３】
すなわち、ユーザが作成したシーケンスプログラムであるラダープログラムをプログラマブルコントローラのＣＰＵモジュールが実行し、ＣＰＵモジュールはこの実行処理の前後に入力モジュールおよび出力モジュール（以降、入力モジュールと出力モジュールの総称を入出力モジュールまたはＩＯモジュールという）に対しデータ取り込みやデータ更新を行うリフレッシュ処理を行う。この実行処理とリフレッシュ処理を合わせてスキャンと称する。
【０００４】
さらに、ＣＰＵモジュールでは通信ポートも標準的に備わっている場合が殆どであり、パソコンやプログラマブル表示機といった機器と通信を行っている。
【０００５】
ラダープログラムは、パソコン上で動作するプログラミングツールで作成され、前記通信ポートを経由してＣＰＵモジュールに転送される。
【０００６】
ＣＰＵモジュールは前記スキャンをサイクリックに実行して装置全体の制御を行い、スキャンの合間に通信処理を行う。
【０００７】
装置全体のタクトタイムの向上を図るためには、ＣＰＵモジュールの処理性能を上げ、スキャン時間の短縮を図ることが容易に考えられるが、例えば特許文献１に記載の技術では、ＣＰＵモジュールの通信処理を複数の機能単位に切り分け、１スキャン毎に行うものと、２スキャンに１回行うもの、所定回数スキャンに１回行うもの等、毎スキャン実行する必要がない機能に関しては実行の頻度を落とし、簡易な構成でスキャン時間の短縮を図る方法がある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００９−１８７１２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上記の従来技術では、ＣＰＵモジュールの複数の通信処理を効率よく動作させるようにスケジューリングし、スキャン時間の短縮を図ることであるため、プログラマブルコントローラの入力および出力モジュールの使用数量とは無関係である。
【００１０】
従って、入力および出力モジュールの使用数量が多くなれば、該モジュールのリフレッシュ処理時間が増大し、スキャン時間が延びるという点について考慮されていなかった。
【００１１】
本発明は、上述の問題点に着目してなされたものであって、入力および出力モジュールの使用数量が多くてもリフレッシュ処理時間の増大を防止し、スキャン時間の短縮を図ることを目的とする。
【課題を解決するための手段】
【００１２】
入出力モジュールの更新周期を設定する手段を設け、その設定周期を参照して個々の入出力モジュールのリフレッシュ実行の判断を行う。
【発明の効果】
【００１３】
本発明によれば、入出力モジュール毎にリフレッシュ処理間隔を設定可能とし、スキャン時間の短縮を図ることができる。
【図面の簡単な説明】
【００１４】
【図１】プログラマブルコントローラの全体を示すシステム構成図である。
【図２】ＣＰＵモジュールの内部ブロック図である。
【図３】スキャン処理の概念図である。
【図４】実施例１での入出力モジュール割付情報を示す図である。
【図５】実施例１での入力リフレッシュ処理のフローを示す図である。
【図６】実施例１、２でのスキャン毎のリフレッシュ対象モジュールを示す図である。
【図７】実施例２での入出力モジュール割付情報を示す図である。
【図８】実施例２での入力リフレッシュ処理のフローを示す図である。
【発明を実施するための形態】
【００１５】
以下、本発明によるプログラマブルコントローラの実施例について図面を参照しながら説明する。
【実施例１】
【００１６】
図1にプログラマブルコントローラのシステム構成を示す。プログラマブルコントローラ１は電源モジュール２、ＣＰＵモジュール３、入力モジュール４、出力モジュール５で構成され、入出力データ拡張のため増設コントローラ６を使用して更に入力モジュール、出力モジュールを追加することができる。
【００１７】
ＣＰＵモジュール３には通信ポートが1個以上あり、パソコン７やプログラマブル表示機と接続可能である。
【００１８】
図２にＣＰＵモジュール３のハードウェア構成を示す。ＭＰＵ１０は周辺装置インタフェース１１(ＲＳ−２３２Ｃ/ＵＳＢ/Ｅｔｈｅｒｎｅｔ(登録商標)等)を介してパソコン７やプログラマブル表示機との通信処理や、シーケンスプログラムメモリ１３に格納されるユーザが作成するシーケンスプログラムであるラダープログラムの実行を行う。システムプログラムメモリ１２にはＭＰＵ１０が実行するシステム(ファームウェア)が格納される。該ＭＰＵ１０はラダープログラムの実行時に使用する演算データを内部データメモリ１４に対して読出しあるいは書き込みを行う。
【００１９】
この演算データに使用する外部入力データは、外部バスインタフェース１５を介して入力モジュール４からラダープログラムの実行前に取り込む。これを入力リフレッシュと称する。
【００２０】
一方、演算結果を外部出力に反映させるため、ラダープログラムの実行後に外部バスインタフェース１５を介して出力モジュール５にデータを出力する。これを出力リフレッシュと称する。
【００２１】
図３にラダープログラムの演算実行と、入力リフレッシュおよび出力リフレッシュのタイミングの概念図を示す。図３に示すように、１スキャンは、ラダープログラムの実行前に入力モジュールからデータを取り込む入力リフレッシュと、ラダープログラムの実行と、ラダープログラムの実行後に行う出力モジュールにデータを出力する出力リフレッシュとで構成される。従来方式での入力リフレッシュおよび出力リフレッシュでは、実装されている全ての入力モジュール、出力モジュールに対して１スキャン毎にリフレッシュを行っていた。
【００２２】
ここで、図1に示すシステム構成を例に入力リフレッシュ、出力リフレッシュの処理概要を説明する。入出力モジュールは、制御できる入出力点数として、通常１６点／３２点／６４点等扱うデータサイズ毎に品揃えしているが、ここでは６４点タイプを使用する。ＭＰＵは外部バスインタフェースを介してリフレッシュを行うが１６ビットデータバスのため、６４点タイプのモジュールが実装されている場合は、６４÷１６＝４回のバスアクセスでそのモジュールのリフレッシュが完了する。図１では入力モジュールが９個、出力モジュールが６個であるので、入力リフレッシュに要するバスアクセスは計４×９＝３６回、出力リフレッシュに要するバスアクセスは計４×６＝２４回となる。ここで、使用するモジュールの数や、データサイズが大きければ、バスアクセス回数が多くなり、スキャン時間が延びるのは明白である。
【００２３】
そこで、以下に、本実施例でのリフレッシュ方式を説明する。図４は入出力モジュールの割付情報を示す図である。ラダープログラムとそれに付随するパラメータとして入出力モジュール割付情報がある。通常、プログラミングツールにて作成する場合、図４に示すカラム１からカラム４の情報を設定し、パソコン７よりＣＰＵモジュール３に転送する。すなわち、カラム1は入出力モジュールのユニークな番号であり、カラム２は複数のモジュールを格納できるユニット単位でのユニット番号、カラム３はユニット内に設けられたスロットに対応したスロット番号、カラム４は、ＩＯ割付として、各入出力モジュールの端子数と入出力の区別を示している。
【００２４】
一方、本実施例では、各スロットに割付けられた入出力モジュール毎にカラム５にて更新周期を設定可能とする。すなわち、ラダープログラムに付加される入出力モジュール割付情報に個々の入出力モジュールの更新周期を追加し、ラダープログラムを収めるシーケンスプログラムメモリに格納する。これにより、例えば、高速応答が必要な外部機器が接続されている６４点入力モジュールと、そうでない６４点入力モジュールとで更新周期を変えることが出来る。
【００２５】
図５に本実施例での入力リフレッシュ処理のフローを示す。図５において、ＣＰＵモジュール３での入力リフレッシュ処理は、まず、演算を含めたスキャンをサイクリックにおこなうＲＵＮ開始時の最初の入力リフレッシュは全入力モジュールを対象に行う。その次に、タイマの読出しを行う。次に入出力モジュール割付情報に従い、各スロットに対するリフレッシュ処理を行う。この際、各スロットに設定されている更新周期を読出し、前記タイマの読出し結果と前回読出しタイマとの差分を算出したものとの大小を判定し、差分タイマが大きいか等しければ設定されている更新周期を過ぎているか、もしくはちょうどのタイミングであるので、対象のスロットに対してリフレッシュ処理を行う。出力リフレッシュにおいても、同様な処理で実施可能である。
【００２６】
仮に図１の構成でラダープログラム実行時間が１０ｍｓとした場合、図４、カラム５のように更新周期が設定されたとすると、入力リフレッシュは図６に示す通りとなる。すなわち、図６は、スキャンの回数を示すスキャンNo.に対して、リフレッシュを実行する対象モジュールNo.（図４の、カラム１に対応）を示した図であり、２回目のスキャン時には１０ｍｓ周期で更新する必要があるモジュールNo.０の入力モジュールに対してのみリフレッシュを行う。また、３回目のスキャン時にはモジュールNo.０および２０ｍｓ周期で更新する必要があるモジュールNo.１０を対象にリフレッシュを行うこととなる。
【００２７】
これにより、それぞれの入出力モジュールに対するリフレッシュ処理を１スキャン毎に行うものと、２スキャン毎に１回行うもの、所定回数スキャンに１回行うもの等、入出力モジュール毎にリフレッシュ処理間隔をユーザに設定可能とし、不必要なリフレッシュ処理を実施しないようにして、スキャン時間の短縮を図ることができる。
【００２８】
すなわち、入出力モジュールの割付情報に各々の入出力モジュールがどれ位の応答性能を要するのかを設定する手段を設け、ＭＰＵはその設定された情報を元に、リフレッシュ処理実行時に各入出力モジュールに対するリフレッシュ実行の要否を判定する。よって、入出力モジュールに対するリフレッシュ間隔であるリフレッシュ周期をモジュール毎にユーザから設定可能とすることで、機器毎に最適なリフレッシュ処理を実行することができ、スキャン時間の短縮を図ることができる。
【００２９】
以上のように、本実施例においては、入出力モジュール割付情報に各モジュールの更新周期を設定可能とし、毎スキャンのリフレッシュ処理実行時に、更新周期が設定された更新周期と等しいか、あるいは、それよりも過ぎているモジュールのみリフレッシュを実行することで、ＣＰＵモジュールと入出力モジュールとのバスアクセス回数を低減し、スキャン時間の高速化を図ることが可能となる。
【実施例２】
【００３０】
図７に、本実施例での入出力モジュールの割付情報を示す。実施例１では、図４に示したように、カラム５に更新周期を設定していたが、本実施例では、カラム５に更新比率を設定することが異なる。ここで更新比率とは、何回のスキャンでリフレッシュを行うかを示す値である。例えば、スキャン１０回で１回リフレッシュをすれば良いということであれば、“１０”を設定する。
図８に本実施例での入力リフレッシュ処理のフローを示す。図８において、ＣＰＵモジュール３での入力リフレッシュ処理は、まずＲＵＮ開始時の最初の入力リフレッシュは全入力モジュールを対象に行う。その次に、スキャンカウンタの読出しを行う。次に入出力モジュールの割付け情報に従い、各スロットに対するリフレッシュ処理を行う。この際、各スロットに設定されている更新比率を読出し、前記スキャンカウンタの読出し結果と該更新比率の除算で余りが無ければ、対象のスロットに対してリフレッシュ処理を行う。出力リフレッシュにおいても、同様な処理で実施可能である。
【００３１】
図７での入出力モジュールの割付情報に基づく、スキャン毎のリフレッシュ対象モジュールを示すテーブルを図６に示す。なお、説明のために、ここでは、スキャン毎のリフレッシュ対象モジュールが実施例１と同様の結果である図６となるように、図７での入出力モジュールの割付情報を設定している。
すなわち、図６において、２回目以降のスキャン時には更新比率が１であるモジュールNo.０の入力モジュールに対して毎回リフレッシュを行う。また、３回目以降の１つおきのスキャン時には更新比率が２であるモジュールNo.１０を対象にリフレッシュを行うこととなる。
【００３２】
以上のように、本実施例においては、入出力モジュールの割付情報に各モジュールのスキャンに対する更新比率を設定可能とし、毎スキャンのリフレッシュ処理実行時に該更新比率とスキャン回数が合致したモジュールのみリフレッシュを実行することで、ＣＰＵモジュールと入出力モジュールとのバスアクセス回数を低減し、スキャン時間の高速化を図ることが可能となる。
【００３３】
なお、上記実施例では、更新周期または更新比率はモジュール単位で設定するとして説明したが、これに限るものではなく、例えば、ＣＰＵモジュールと入出力モジュールのバスアクセスが１６ビットであれば、１６ビット（１ワード）単位で設定可能としても良い。これにより、バス幅単位で制御でき、きめ細かな制御が可能となり、よりバスアクセスの回数を低減でき、スキャン時間の高速化を図ることが可能となる。
【００３４】
以上、実施例について説明したが、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものである。また、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、置換をすることも可能である。
【符号の説明】
【００３５】
１  プログラマブルコントローラ全体構成
２  電源モジュール
３  ＣＰＵモジュール
４  入力モジュール
５  出力モジュール
６  増設コントローラ
７  パソコン
１０  ＭＰＵ
１１  周辺装置インタフェース
１２  システムプログラムメモリ
１３  シーケンスプログラムメモリ
１４  内部データメモリ
１５  外部バスインタフェース
【図１】
2015060377.tif 000003
【図２】
2015060377.tif 000004
【図３】
2015060377.tif 000005
【図４】
2015060377.tif 000006
【図５】
2015060377.tif 000007
【図６】
2015060377.tif 000008
【図７】
2015060377.tif 000009
【図８】
2015060377.tif 000010