特許第6971668号(P6971668)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立産機システムの特許一覧

<>
  • 特許6971668-プログラマブルコントローラ 図000002
  • 特許6971668-プログラマブルコントローラ 図000003
  • 特許6971668-プログラマブルコントローラ 図000004
  • 特許6971668-プログラマブルコントローラ 図000005
  • 特許6971668-プログラマブルコントローラ 図000006
  • 特許6971668-プログラマブルコントローラ 図000007
  • 特許6971668-プログラマブルコントローラ 図000008
  • 特許6971668-プログラマブルコントローラ 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6971668
(24)【登録日】2021年11月5日
(45)【発行日】2021年11月24日
(54)【発明の名称】プログラマブルコントローラ
(51)【国際特許分類】
   G05B 19/05 20060101AFI20211111BHJP
【FI】
   G05B19/05 L
【請求項の数】4
【全頁数】9
(21)【出願番号】特願2017-136248(P2017-136248)
(22)【出願日】2017年7月12日
(65)【公開番号】特開2019-20822(P2019-20822A)
(43)【公開日】2019年2月7日
【審査請求日】2019年9月26日
(73)【特許権者】
【識別番号】502129933
【氏名又は名称】株式会社日立産機システム
(74)【代理人】
【識別番号】110001689
【氏名又は名称】青稜特許業務法人
(72)【発明者】
【氏名】曽我 満
【審査官】 影山 直洋
(56)【参考文献】
【文献】 特開2011−216085(JP,A)
【文献】 特開平02−299004(JP,A)
【文献】 特開昭63−268004(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/05
(57)【特許請求の範囲】
【請求項1】
CPUモジュールと、
1以上のIOモジュールと、前記CPUモジュールと前記IOモジュールを接続するIOバスとを備え、前記IOモジュールのうち第1のIOモジュールは、前記IOバスに流れるIOモジュールのデータをキャプチャするバスキャプチャ部と、
前記第1のIOモジュールがリードもしくはライトできるスロットを示すデータ授受対象スロットテーブルとを有し、
前記バスキャプチャ部が、
前記IOバス上のアドレス/データ信号のアドレスに含まれるスロットアドレスをデコードし、自らのスロットとは異なる第2のIOモジュールへのアクセスであると判定し、前記データ授受対象スロットテーブルの前記第2のIOモジュールのスロットが要であり、リードもしくはライトできるスロットを示す場合には、リードデータを取り込むことを特徴とするプログラマブルコントローラ。
【請求項2】
請求項1記載のプログラマブルコントローラにおいて、
前記第1のIOモジュールは、
双方向バッファを有し、
前記バスキャプチャ部は、
前記データ授受対象スロットテーブルの前記第2のIOモジュールのスロットが要であり、リードもしくはライトできるスロットを示す場合には、前記第2のIOモジュールのスロットのデータを授受できるように前記双方向バッファにイネーブル信号を出力することを特徴とするプログラマブルコントローラ。
【請求項3】
請求項1記載のプログラマブルコントローラにおいて、
前記第1のIOモジュールは、
前記CPUモジュールが演算するスロットとは異なる第3のスロットへのリードアクセスを認識して第3のスロットからのリードデータを読み込み、前記CPUモジュールが演算するスロットとは異なる第4のスロットへのライトアクセスを認識して前記第4のスロットへ演算結果を出力することを特徴とするプログラマブルコントローラ。
【請求項4】
請求項3記載のプログラマブルコントローラにおいて、
前記第1のIOモジュールは、
データがハイインピーダンス状態のタイミングの時に、前記第4のスロットへ演算結果を出力することを特徴とするプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、設備や機械システムの動作をシーケンスプログラムによって制御するプログラマブルコントローラのCPUモジュールと入出力(IO)モジュールとのIOアクセス方式に関するものである。
【背景技術】
【0002】
プログラマブルコントローラ(以下、「PLC」という)は、ユーザが作成するラダープログラムをサイクリックに実行する制御機器であって、工場などに設置されている多様な機械設備やプラント設備などを制御するための汎用制御装置として広く普及している。
【0003】
PLCは、機械設備の稼働状態をセンサやスイッチなどの機器からデジタル信号として入力モジュールを介して、外部入力としてのON/OFF情報として取り込むか、あるいは、プラント設備の圧力情報や温度情報などをアナログ信号として取り込み、ユーザが作成したシーケンスプログラムにて演算を行う。
【0004】
そして、その演算結果は、デジタル信号やアナログ信号として出力モジュールを介して機械設備の動力源やプラント設備のバルブなどに伝達され、設備全体の高度な制御が実現される。この入力モジュールから入力データを取り込み、出力モジュールへ演算結果を出力することを「IOリフレッシュ」と呼ぶ。PLCによる制御を高速に行うための手段の一つとして、このIOリフレッシュを高速に行うことが挙げられる。
【0005】
このPLCによる制御を高速化するための技術として、例えば、特許文献1には、「入出力モジュール割付情報に各モジュールの更新周期を設定可能とし、毎スキャンのリフレッシュ処理実行時に、更新周期が設定された更新周期と等しいか、あるいは、それよりも過ぎているモジュールのみリフレッシュを実行することで、CPUモジュールとIOモジュールとのバスアクセス回数を低減し、スキャン時間の高速化を図る」技術が示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2015−60377号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
上記の特許文献1では、バスアクセス回数を低減しているが、外部入力のON/OFF情報をトリガにモジュール内部の動作を制御していることは開示されていない。また、IOモジュールとCPUモジュールとの間でのデータの受渡しを高速に行う手法についても考慮されていない。
【0008】
そこで、本発明では、CPUモジュールとIOモジュールとの間で高速にデータを受渡しすることで、外部入力からの高速な応答を可能にすることを目的とする。
【課題を解決するための手段】
【0009】
本発明の好ましい一例としては、CPUモジュールと、1以上のIOモジュールと、CPUモジュールとIOモジュールを接続するIOバスとを備え、IOモジュールのうち第1のIOモジュールには、IOバスに流れるIOモジュールのデータをキャプチャするバスキャプチャ部を有し、CPUモジュールからのリードアクセスに関する信号に基づいて、バスキャプチャ部が、第2のIOモジュールのデータを取り込むプログラマブルコントローラである。
【発明の効果】
【0010】
本発明によれば、外部入力からの高速な応答が可能となる。
【図面の簡単な説明】
【0011】
図1】実施例に係るプログラマブルコントローラの構成図である。
図2】IOバスのリード/ライトアクセスのタイムチャートである。
図3】IOバス上でのIOリフレッシュの演算の関係を示すタイムチャートである。
図4】バスキャプチャ機能付きモジュールのBUSコントローラの機能を説明する図である。
図5】外部入力の取込みタイミングとリフレッシュの関係図である。
図6】第2の実施例に係るプログラマブルコントローラの構成図である。
図7】第2の実施例における同期化のイメージ図である。
図8】第2の実施例におけるCPUモジュール側のライトアクセスのタイムチャートである。
【発明を実施するための形態】
【0012】
以下、本発明によるバスキャプチャ機能付きPLCの実施例について図面を参照しながら説明する。
【実施例1】
【0013】
図1は、本発明の実施例に係るPLCの構成図である。
【0014】
このPLCのCPUモジュール1は、シーケンスプログラムの演算を行うMPU11a、パソコン等の周辺機器と通信するための通信ポート12、シーケンスプログラムやシステムプログラムを格納するためのROM13a、シーケンスプログラムの演算に使用するデータを格納するRAM14a、RAM14aとIOバス3に接続されるIOモジュールとのデータ転送を行うDMAC15a、IOバス3とのインタフェースであるアドレス出力部およびデータ入出力部を持つBUSコントローラM16(Mは「マスタ」を表す)、から構成される。
【0015】
CPUモジュール1は、IOスロット0、IOスロット1、・・・IOスロットnに、どのようなIOモジュールが実装されているのか、あらかじめ把握する必要がある。通常はIOモジュール側において、ステータス情報として入出力タイプやデータサイズといった情報をCPUモジュール1から認識できるようにする。
【0016】
IOモジュール2には、デジタル信号やアナログ信号用のIOモジュール(入力モジュール202や出力モジュール203)の他に、バスキャプチャ機能付きモジュール201がある。
3は、IOバスを示し、アドレス/データ信号21が流れる。22は、スロット0から任意のnを選択するスロットn選択信号を示し、スロットn選択信号は、IOスロットnに実装したIOモジュールのみに信号を送る構成である。23は、リードストローブ信号を示す。24は、ライトストローブ信号を示す。
【0017】
CPUモジュール1は、IOバス3を介して各IOスロットにアクセスする。該IOバス3のアドレス、データの他に、スロットを選択するためのスロット選択信号22やリードストローブ信号23、ライトストローブ信号24が必要である。スロット選択信号22は個々のスロット毎にCPUモジュール1から出力されるものであるが、アドレスをデコードしてCPUモジュール1がスロット選択信号22を出力する。
【0018】
バスキャプチャ機能付きモジュール201は、シーケンスプログラムの演算を行うMPU11b、シーケンスプログラムやシステムプログラムを格納するためのROM13b、シーケンスプログラムの演算に使用するデータを格納するRAM14b、IOバス3とのインタフェースであるアドレス出力部およびデータ入出力部を持つBUSコントローラS17(Sは「スレーブ」を表す)、から構成される。
【0019】
図2は、このIOバス3上でのCPUモジュール1のリードアクセスとライトアクセスを示すタイムチャートである。リードアクセスの際には、IOスロットnの入力モジュールを選択するスロットn選択信号22がhighレベルからlowレベルに変化するタイミングで、アドレス/データ信号21にはアドレスがIOバス3に流れる。リードストローブ信号23がhighレベルからlowレベルに変化するタイミングで、IOスロットnの入力モジュールからリードデータが、IOバス3に流れる。
【0020】
ライトアクセスの際には、IOスロットnの出力モジュールを選択するスロットn選択信号22が、highレベルからlowレベルに変化するタイミングで、アドレス/データ信号21にはアドレスがIOバス3に流れる。ライトストローブ信号24が、highレベルからlowレベルに変化するタイミングで、IOスロットnの出力モジュールからのライトデータが、IOバス3に流れる。
【0021】
CPUモジュール1は、このリード/ライトアクセスをIOスロットに実装されているIOモジュールに対して行う。図3に示すように、まずは入力モジュールからデータを取り込む入力リフレッシュを行い、そのデータにてユーザプログラムの実行を行った後、出力モジュールに対する出力リフレッシュを行う。これをスキャンと称し、サイクリックに行いPLCとしての制御を行う。
【0022】
ここで、図1に示す構成で、IOリフレッシュを行う際に、IOスロット0にバスキャプチャ機能付きモジュール201が実装されている場合の動作について説明する。CPUモジュール1がIOスロット1の入力モジュールに対する入力リフレッシュを行う際には、スロット選択信号はスロット1用の信号のみアサートされ、他のスロットに対するスロット選択信号はアサートされない。
【0023】
これはCPUモジュール1がアドレスに含まれるスロットアドレスをデコードすることによって、複数のスロット選択信号か一意に決まるスロット選択信号のみをアサートすることができるものである。よって他のスロットの入力モジュールがデータを出力することはない。
【0024】
図4は、バスキャプチャ機能付きモジュール201のBUSコントローラS17の機能を説明する図である。バスキャプチャ部42は、常に、IOバス3を流れるアドレス/データ信号21を見ており、IOスロット1のアドレスに対するCPUモジュール1のアクセスを認識した際に、データ授受対象スロットテーブル41のSlot1が”要”となっていることを認識可能であり、そのリードアクセス時のデータを取得することが可能となる。
【0025】
データ授受対象スロットテーブル41は、BUSコントローラS17のメモリなどに格納する。
【0026】
IOスロット1に対するリードアクセス実行時に、バスキャプチャ部42にて、IOバス3上のアドレス/データ信号21のアドレスに含まれるスロットアドレスをデコードし、他のスロットに対するアクセスであることを認識可能である。たとえば、通常のIOモジュールがSlot0に実装されている場合は、IOモジュール2は、Slot1のスロット選択信号は見ることはできない。一方、バスキャプチャ機能付きモジュール201では、アドレス信号に含まれるスロットアドレスをデコードし、Slot1へのアクセスであると判定する。
【0027】
よって、予め設定されたデータ授受対象スロットテーブル41に対するアクセスがあった場合にはそのリードデータを直接取り込むことが出来る。
【0028】
このデータ授受対象スロットテーブルの情報は、PC上のプログラミングツールからIOモジュールの割付を行う際に、バスキャプチャ機能付きモジュール201が使用する入力モジュールの有無、スロット位置を指定し、プログラムを、CPUモジュール1へ転送後、CPUモジュール1から該バスキャプチャ機能付きモジュール201に必要な情報を転送することで入手することが出来る。
【0029】
実施例1では、バスキャプチャ機能付きモジュール201がリードもしくはライトできるスロットを示すデータ授受対象スロットテーブル41の設定に基づいて、IOバス3からリードアクセス時のデータを取得することが可能となる。
【0030】
従って、スロット1の入力データをCPUモジュール1が取込み、その後スロット0のバスキャプチャ機能付きモジュール201に、該入力データを渡す必要がなくなり、より高速に入力データを取り込むことが可能である。
【0031】
図4に示す双方向バッファ43は、バスキャプチャ部42もしくは通常アクセスバス制御部44からのイネーブル信号に基づいて、BUSコントローラS17の内部バス45からIOバス3にデータを出力する。また、双方向バッファ43は、バスキャプチャ部42もしくは、通常アクセスバス制御部44からのイネーブル信号に基づいて、IOバス3からデータをBUSコントローラS17に入力することができる。
【0032】
通常アクセスバス制御部44は、自らの選択信号であるスロット0の選択信号については、データを取り込むとともに、出力するためのイネーブルの信号を、双方向バッファ43に出力する。たとえば、バスキャプチャ機能付きモジュール201が、スロット0に実装されている場合は、バスキャプチャ部42は、スロット1のスロット選択信号は見ることができないが、アドレス信号に含まれるスロットアドレスをデコードし、スロット1へのアクセスであることが判り、スロット1のデータを授受できるように双方向バッファ43にイネーブル信号を出力する。
【0033】
一般に、IOモジュールである高機能モジュールにおいては、外部入力信号のON/OFF情報をトリガにモジュール内部の動作を制御する。そこで、入力信号からの応答を高速化するため、そのモジュール自体で入力信号を取り込む機能も持たせることができる。
【0034】
その場合は、物理的に入力可能な点数には制約が出てきてしまう。そのため外部入力信号を取り込み、その入力を元に制御を行う高機能モジュールは、CPUモジュールから該入力データを渡してもらう必要があった。
【0035】
図5は、CPUモジュールから高機能モジュールが該入力データを渡してもらう場合の外部入力の取込みタイミングとリフレッシュの関係を示すタイムチャートである。実際の入力信号の変化がA点であったとすると、その後のCPUモジュールの入力リフレッシュがB点で行われ、そのデータが高機能モジュールに渡るのはCPUモジュールが出力リフレッシュを行ったC点ということになる。
【0036】
図5の中で外部入力信号のON/OFF(A点)は、CPUモジュールが入力リフレッシュ(B点)を実行した時点で、CPUモジュールで認識できる。この入力リフレッシュは、図3に示すように、サイクリックに行われる。
【0037】
実施例1によれば、バスキャプチャ機能付きモジュール201へのデータの取り込みは、B点で行われるため、外部入力からの高速な応答をすることができる。
【実施例2】
【0038】
実施例1では、入力モジュールからバスキャプチャ機能付きモジュール201へデータを取り込む場合の実施例を説明した。実施例2では、バスキャプチャ機能付きモジュール201で、演算負荷を分散させる場合を、図6を用いて説明する。
【0039】
ここで、CPUモジュール1では、スロット1の入力モジュール202、スロット2の出力モジュール203を対象とした演算を行い、スロット0のバスキャプチャ機能付きモジュール201では、スロット3の入力モジュール204、スロット4の出力モジュール205を対象として演算を行うものとする。
【0040】
これらは予めユーザがスロット0のバスキャプチャ機能付きモジュール201に対してデータ授受対象スロットテーブル41の情報を設定することで、バスキャプチャ機能付きモジュール201が、Slot”要”に対応する入出力モジュールでの入力リフレッシュや出力リフレッシュのタイミングを、認識可能となる。
【0041】
図7に示すように、スロット1の入力モジュール202と、スロット2の出力モジュール203に対するIOリフレッシュはCPUモジュール1が行う。一方、バスキャプチャ機能付きモジュール(高機能モジュール)201は、バスキャプチャ部42によりスロット3からのリードアクセス、スロット4へのライトアクセスを認識可能であり、スロット3からのリードデータを取込み、ユーザユーザプログラムを実行し、スロット4へ演算結果を出力することが可能である。
【0042】
図8に、スロット4に対するCPUモジュール1側のライトアクセス時のタイムチャートを示す。
【0043】
ライトアクセスの際には、IOスロットnを選択するスロットn選択信号22が、highレベルからlowレベルに変化するタイミングで、アドレス/データ信号21にはアドレスがIOバス3に流れる。ライトストローブ信号24が、highレベルからlowレベルに変化するタイミングで、バスキャプチャ機能付きモジュール201が演算した結果のデータが、IOバス3を経由してIOスロットnの出力モジュールに、ライトデータとして流れる。
【0044】
スロット4は、CPUモジュール1側のユーザプログラムによる演算対象としないため、アドレスのみを出力し、データは、ハイインピーダンス(Hi−Z)状態とする。これで、このタイミング時にバスキャプチャ機能付きモジュール201が、演算結果をスロット4に出力することが出来る。
【0045】
IOリフレッシュのタイミングは、バスマスタであるCPUモジュール1が、トリガとなり、バススレーブであるバスキャプチャ機能付きモジュール201は、そのタイミングに従うこととなる。
【0046】
実施例2によれば、CPUモジュール1のIOリフレッシュに同期して、一部のIOモジュール2の入出力データを使用した制御を、バスキャプチャ機能付きモジュール201が、CPUモジュール1と分担して演算負荷を分散させることも可能となる。
よって、容易に、CPUモジュールと同期を行いつつ負荷分散を行うことが可能である。
【符号の説明】
【0047】
1…CPUモジュール、2…IOモジュール、3…IOバス、16…BUSコントローラM、17…BUSコントローラS、41…データ授受対象スロットテーブル、42…バスキャプチャ部、201…バスキャプチャ機能付きモジュール
図1
図2
図3
図4
図5
図6
図7
図8