IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 株式会社明電舎の特許一覧

特許7501383プログラマブルロジックコントローラのメモリ等価システム、プログラマブルロジックコントローラのメモリ等価方法、プログラマブルロジックコントローラのメモリ等価プログラム
<>
  • 特許-プログラマブルロジックコントローラのメモリ等価システム、プログラマブルロジックコントローラのメモリ等価方法、プログラマブルロジックコントローラのメモリ等価プログラム 図1
  • 特許-プログラマブルロジックコントローラのメモリ等価システム、プログラマブルロジックコントローラのメモリ等価方法、プログラマブルロジックコントローラのメモリ等価プログラム 図2
  • 特許-プログラマブルロジックコントローラのメモリ等価システム、プログラマブルロジックコントローラのメモリ等価方法、プログラマブルロジックコントローラのメモリ等価プログラム 図3
  • 特許-プログラマブルロジックコントローラのメモリ等価システム、プログラマブルロジックコントローラのメモリ等価方法、プログラマブルロジックコントローラのメモリ等価プログラム 図4
  • 特許-プログラマブルロジックコントローラのメモリ等価システム、プログラマブルロジックコントローラのメモリ等価方法、プログラマブルロジックコントローラのメモリ等価プログラム 図5
  • 特許-プログラマブルロジックコントローラのメモリ等価システム、プログラマブルロジックコントローラのメモリ等価方法、プログラマブルロジックコントローラのメモリ等価プログラム 図6
  • 特許-プログラマブルロジックコントローラのメモリ等価システム、プログラマブルロジックコントローラのメモリ等価方法、プログラマブルロジックコントローラのメモリ等価プログラム 図7
  • 特許-プログラマブルロジックコントローラのメモリ等価システム、プログラマブルロジックコントローラのメモリ等価方法、プログラマブルロジックコントローラのメモリ等価プログラム 図8
  • 特許-プログラマブルロジックコントローラのメモリ等価システム、プログラマブルロジックコントローラのメモリ等価方法、プログラマブルロジックコントローラのメモリ等価プログラム 図9
  • 特許-プログラマブルロジックコントローラのメモリ等価システム、プログラマブルロジックコントローラのメモリ等価方法、プログラマブルロジックコントローラのメモリ等価プログラム 図10
  • 特許-プログラマブルロジックコントローラのメモリ等価システム、プログラマブルロジックコントローラのメモリ等価方法、プログラマブルロジックコントローラのメモリ等価プログラム 図11
  • 特許-プログラマブルロジックコントローラのメモリ等価システム、プログラマブルロジックコントローラのメモリ等価方法、プログラマブルロジックコントローラのメモリ等価プログラム 図12
  • 特許-プログラマブルロジックコントローラのメモリ等価システム、プログラマブルロジックコントローラのメモリ等価方法、プログラマブルロジックコントローラのメモリ等価プログラム 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-10
(45)【発行日】2024-06-18
(54)【発明の名称】プログラマブルロジックコントローラのメモリ等価システム、プログラマブルロジックコントローラのメモリ等価方法、プログラマブルロジックコントローラのメモリ等価プログラム
(51)【国際特許分類】
   G05B 19/05 20060101AFI20240611BHJP
   G06F 11/20 20060101ALI20240611BHJP
【FI】
G05B19/05 N
G06F11/20 656
【請求項の数】 8
(21)【出願番号】P 2021005624
(22)【出願日】2021-01-18
(65)【公開番号】P2022110309
(43)【公開日】2022-07-29
【審査請求日】2023-08-30
(73)【特許権者】
【識別番号】000006105
【氏名又は名称】株式会社明電舎
(74)【代理人】
【識別番号】100086232
【弁理士】
【氏名又は名称】小林 博通
(74)【代理人】
【識別番号】100092613
【弁理士】
【氏名又は名称】富岡 潔
(74)【代理人】
【識別番号】100104938
【弁理士】
【氏名又は名称】鵜澤 英久
(74)【代理人】
【識別番号】100210240
【弁理士】
【氏名又は名称】太田 友幸
(72)【発明者】
【氏名】前田 章臣
【審査官】田中 友章
(56)【参考文献】
【文献】国際公開第2018/198174(WO,A1)
【文献】特開2019-016170(JP,A)
【文献】特開2006-099809(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/05
G06F 11/20
(57)【特許請求の範囲】
【請求項1】
マスタとスレーブとに二重化されたプログラマブルロジックコントローラ(以下、PLCとする。)のメモリ等価システムであって、
前記二重化を設定する際に前記マスタ側と前記スレーブのデータメモリの全領域を等価とする全等価機能部と、
あらかじめ設定された前記マスタと前記スレーブとの間で等価としないメモリ領域を自動的に判定して等価領域を抽出する自動等価領域抽出機能部と、
を備え、
前記自動等価領域抽出機能部は、現在処理中のメモリアドレスを基準に次の非等価領域を判定することで等価領域を抽出してテーブルに展開する
ことを特徴とするPLCのメモリ等価システム。
【請求項2】
前記現在処理中のメモリアドレスには、処理中のメモリブロックの先頭アドレスが用いられ、
前記処理中のメモリブロック内に前記非等価領域が存在すれば、該メモリブロックの先頭アドレスから前記非等価領域の先頭アドレスまでを前記等価領域とし、現在処理中のメモリアドレスを前記非等価領域の終点アドレスに変更して処理を続行する一方、
前記処理中のメモリブロック内に前記非等価領域が存在しなければ、該メモリブロックの先頭アドレスから終点アドレスまでを前記等価領域とし、前記現在処理中のメモリアドレスを次のメモリブロックの先頭アドレスに変更する
ことを特徴とする請求項1記載のPLCのメモリ等価システム。
【請求項3】
前記処理中のメモリブロックに前記非等価領域が含まれなければ、
前記処理中のメモリブロックの先頭アドレスから該メモリブロックの終点アドレスまでを前記等価領域とし、
前記現在処理中のメモリアドレスを次のメモリブロックの先頭アドレスに変更し、次のメモリブロックの処理に移行する
ことを特徴とする請求項2記載のPLCのメモリ等価システム。
【請求項4】
前記現在処理中のメモリアドレスが、前記処理中のメモリブロック内の前記非等価領域以前であれば、
前記処理中のメモリブロックの先頭アドレスから前記非等価領域の先頭アドレスまでを前記等価領域とし、前記現在処理中のメモリアドレスを前記非等価領域の終点アドレスに変更する
ことを特徴とする請求項2記載のPLCのメモリ等価システム。
【請求項5】
前記処理中のメモリブロックの終点アドレスより後のアドレスまで非等価領域の場合、
前記現在処理中のメモリアドレスから前記非等価領域の先頭アドレスまでを等価領域とし、
前記現在処理中のメモリアドレスを前記非等価領域の終点アドレスに変更することを特徴とする請求項2記載のPLCのメモリ等価システム。
【請求項6】
前記非等価領域が、前記処理中のメモリブロックの先頭アドレスより前もしくは等しいアドレスで終了する場合には前記現在処理中のメモリアドレスを前記非等価領域の終点アドレスに変更し、
前記処理中のメモリブロックの先頭アドレスから該メモリブロックの終点アドレスを前記等価領域とし、前記現在処理中のメモリアドレスを次のメモリブロックの先頭アドレスに変更する
ことを特徴とする請求項2記載のPLCのメモリ等価システム。
【請求項7】
マスタとスレーブとに二重化されたプログラマブルロジックコントローラ(以下、PLCとする。)のメモリ等価方法であって、
前記二重化を設定する際に前記マスタ側と前記スレーブのデータメモリの全領域を等価とする全等価機能ステップと、
あらかじめ設定された前記マスタと前記スレーブとの間で等価としないメモリ領域を自動的に判定して等価領域を抽出する自動等価領域抽出ステップと、
を有し、
前記自動等価領域抽出ステップは、現在処理中のメモリアドレスを基準に次の非等価領域を判定することで等価領域を抽出してテーブルに展開する
ことを特徴とするPLCのメモリ等価方法。
【請求項8】
請求項1~7記載のPLCのメモリ等価システムとしてコンピュータを機能させるためのPLCのメモリ等価プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マスタ/スレーブに二重化されたプログラマブルロジックコントローラ(以下、PLCとする。)におけるメモリ等価の技術に関する。
【背景技術】
【0002】
特許文献1のPLC二重化システムは、マスタ/スレーブのデュアルシステムの構成を採用する。このPLC二重化システムは、CPUモジュールの二重化ポートを接続することで実現されている。
【0003】
すなわち、PLC二重化システムではCPUモジュール同士を二重化し、マスタ/スレーブの両PLCで全く同一の処理を行わせ、最終出力は一方のPLCから出力される処理信号で制御することで冗長化を実現する。例えばマスタ側のCPUモジュールが故障した場合にスレーブ側のCPUモジュールが自動的に制御を実行する。
【0004】
そのため、図1に示すように、外部コンピュータ1の「GUI」に基づきマスタ側のデータメモリ2をスレーブ側のデータメモリ3にコピーし、両メモリデータ2,3を等価とするメモリ等価の処理が設定されている。このメモリ等価の設定として、「全等価機能」と「部分等価機能」とが用いられている。
【0005】
「全等価機能」は、マスタ側のデータメモリ2をスレーブ側のデータメモリ3にすべてコピーし、図2に示すように、両メモリデータ2,3を全メモリ領域で等価にする。ところが、PLCを用いて構成するシステムによっては、データメモリ2,3の全メモリ領域を等価にしたくない場合や、等価する必要のないメモリ領域も存在する。
【0006】
このような等価としない領域を選択する機能として「部分等価機能」が用いられている。図3に基づき概略を説明すれば、ユーザが外部コンピュータ1の「GUI」に基づきデータメモリ2,3間の等価するメモリ領域(等価領域)と非等価のメモリ領域(非等価領域)とをアドレス・サイズにより決定し、入力している。
【先行技術文献】
【特許文献】
【0007】
【文献】特開2002-4911
【発明の概要】
【発明が解決しようとする課題】
【0008】
従来は、等価領域などの指定をユーザによるアドレス・サイズの手入力で行っていたため、メモリ領域の選択時に入力漏れや範囲指定の誤りなどが生じるおそれがある。
【0009】
また、非等価領域が点在する設定の場合には等価領域のアドレス・サイズの情報から非等価の領域を読み取ることが困難なこともあった。このようにメモリ非等価の領域および選択が困難な場合には可変アドレスを扱うラダー命令などの取りうる範囲の選択が難しくなるおそれがある。
【0010】
本発明は、このような従来の問題点を解決するためになされ、マスタ/スレーブ間のメモリデータを全等価する設定の下、PLCの設定に応じて非等価領域を自動判定すること等価領域を抽出し、ユーザ操作によるミスの抑制を図ることを解決課題としている。
【課題を解決するための手段】
【0011】
(1)本発明の一態様は、マスタとスレーブとに二重化されたPLCのメモリ等価システムであって、
前記二重化を設定する際に前記マスタ側と前記スレーブのデータメモリの全領域を等価とする全等価機能部と、
あらかじめ設定された前記マスタと前記スレーブとの間で等価としないメモリ領域を自動的に判定して等価領域を抽出する自動等価領域抽出機能部と、
を備え、
前記自動非等価領域抽出機能部は、現在処理中のメモリアドレスを基準に次の非等価領域を判定することで等価領域を抽出してテーブルに展開することを特徴としている。
【0012】
(2)本発明の他の態様は、マスタとスレーブとに二重化されたPLCのメモリ等価方法であって、
前記二重化を設定する際に前記マスタ側と前記スレーブのデータメモリの全領域を等価とする全等価機能ステップと、
あらかじめ設定された前記マスタと前記スレーブとの間で等価としないメモリ領域を自動的に判定して等価領域を抽出する自動等価領域抽出機能部ステップと、
を有し、
前記自動非等価領域抽出機能ステップは、現在処理中のメモリアドレスを基準に次の非等価領域を判定することで等価領域を抽出してテーブルに展開することを特徴としている。
【0013】
(3)本発明のさらに他の態様は、前記PLCのメモリ等価システムとしてコンピュータを機能させるためのPLCのメモリ等価プログラムに関する。
【発明の効果】
【0014】
本発明によれば、マスタ/スレーブ間のメモリデータを全等価する設定の下、PLCの設定に応じて非等価領域を自動判定すること等価領域が抽出されるため、ユーザ操作によるミスの抑制を図ることができる。
【図面の簡単な説明】
【0015】
図1】PLC二重化によるメモリ等価の概要図。
図2】全等価機能の概要図。
図3】部分等価機能の概要図。
図4】本発明の実施形態に係るメモリ等価システムに実装された自動非等価領域抽出機能部の概要図。
図5】同 処理パターン1のイメージ図。
図6】同 処理パターン2((a)は非等価領域が現在処理中ブロックの先頭より前の場合、(b)は非等価領域が現在処理中ブロックの先頭アドレスと等しいアドレスから始まる場合)
図7】同 処理パターン3のイメージ図。
図8】同 処理パターン4のイメージ図。
図9】等価テーブル作成処理部の処理内容を示すフローチャート。
図10】(a)は実施例1のメモリブロックのイメージ図、(b)は同等価テーブルのイメージ図。
図11】(a)は実施例2のメモリブロックのイメージ図、(b)は同等価領域テーブルのイメージ図。
図12】(a)は実施例3のメモリブロックのイメージ図、(b)は同等価領域テーブルのイメージ図。
図13】(a)は実施例4のメモリブロックのイメージ図、(b)は同等価領域テーブルのイメージ図。
【発明を実施するための形態】
【0016】
以下、本発明の実施形態に係るPLCのメモリ等価システム(メモリ等価方法)を説明する。
【0017】
図4中の11はマスタ/スレーブに二重化されたPLCシステム(PLCデュアルシステム)を示している。このPLCシステム11には、外部コンピュータ12が「Ethernet(登録商標)」ケーブルにより接続されている。この外部コンピュータ12には前記メモリ等価システム(前記メモリ等価方法)を設定するアプリケーションが実装されている。
【0018】
PLCシステム11は、PCL二重化構成の等価メモリデータ送信側のマスタと同等価メモリデータ受信側のスレーブとを備えている。ここでは外部コンピュータ12により設定された内容がPLCシステム11に反映され、前記マスタのメモリデータ13を等価メモリとして前記スレーブに送信し、前記スレーブのメモリデータ14にコピーし、両メモリデータ13,14を等価とする等価処理が実行される。
【0019】
マスタ/スレーブを構成するPLCは、図示省略の電源モジュール・CPUモジュール・オプションモジュールを実装する。この電源モジュールはPLCに外部電源を供給するモジュールにより構成されている。
【0020】
前記CPUモジュールはデータメモリを有し、該データメモリ内のデータを使用して演算するモジュールにより構成されている。また、前記CPUモジュールは、外部コンピュータ12などの外部機器とのデータ通信のため、前記オプションモジュールと送受信データの受け渡しを行う。
【0021】
具体的には前記オプションモジュールは、外部コンピュータ12などの外部機器とのインタフェースとなるモジュール、例えば「Ethernet(登録商標)」伝送路や光・メタル伝送路により外部機器とのデータ送受信を実行する。
【0022】
ここでは外部コンピュータ12により各PLCに実装される前記オプションモジュール(外部インタフェース)が設定される。また、外部コンピュータ12でマスタ/スレーブの二重化が設定され、設定内容が各PLCに送信される。この二重化の設定により全等価機能部(図示省略)にメモリデータ13,14の「全等価機能」が設定される。
【0023】
ただし、二重化設定部のオプションとして自動等価領域抽出機能部(図示省略)が設定され、実装されたオプション番号に対応する非等価領域を自動的に判定することで等価領域が抽出される。このオプション番号は二重化設定時に実装される非等価領域テーブルに記述されている。
【0024】
マスタ側では抽出された等価領域を自身の等価領域テーブルに展開し、等価領域テーブルを作成する。この等価領域テーブルに記述された等価領域はスレーブ側に送信され、データメモリ14にコピーされて等価処理が実行される。なお、マスタ側の故障などによりスレーブ側が新マスタとなった場合には、新マスタ側で自動等価領域抽出機能部の処理が実行される。
【0025】
≪自動等価領域抽出機能部の非等価判定≫
自動等価領域抽出機能部の非等価判定処理は、現在処理中のメモリアドレス(以下、現在処理中アドレスと呼ぶ。)を基準に次の非等価領域を判定することで等価領域を抽出し、等価領域テーブルに展開する。非等価判定処理の基準となる「現在処理中アドレス」は、以下のように変動する。
【0026】
A:まず、現在処理中アドレスは、基本的にマスタ側で処理中のメモリブロック(以下、ブロックと省略する。)の先頭メモリアドレスを指す。ただし、「現在処理中アドレス」は、非等価領域の位置に応じて変更される。
【0027】
B:例えば処理中のブロック内に非等価領域(非等価エリア)が存在した場合には、「現在処理中アドレス~非等価領域の先頭アドレス」を等価領域として等価領域テーブルに展開する。その後、現在処理中アドレスに次の等価領域の先頭(非等価領域の終点)アドレスに代入して変更する。
【0028】
C:つぎに処理中のブロック内に非等価領域が存在しない場合(次ブロック以降に非等価領域が存在する)には、「現在処理中アドレス~処理中ブロックの終点アドレス」を等価領域として等価領域テーブルに展開する。その後、現在処理中アドレスに次ブロックの先頭アドレスに代入して変更する。
【0029】
≪自動等価領域抽出機能の処理パターン≫
前述の自動等価領域抽出機能部が、任意ブロックの非等価領域に対してとり得る処理パターン1~4を説明する。図5図8のイメージ図のエリアは、通常等価時に分割される16ブロック中の任意の「1または2ブロック」を表している。
【0030】
(1)処理パターン1
図5に基づき処理パターン1を説明する。この処理パターン1は処理中ブロック内に非等価領域が含まれない場合の処理パターンを示している。
【0031】
図5中のブロック「N」は、処理中ブロックを示している。ここでは次ブロック「N+1」に非等価領域が含まれている一方、ブロック「N」に非等価領域は含まれていない。
【0032】
この場合には等価領域は、現在処理中アドレス(ブロック「N」の先頭アドレス「+0000H」)~処理中ブロックの終点アドレス(ブロック「N」の終点アドレス「+0800H」)として抽出する。
【0033】
その後、現在処理中アドレスを次ブロック(ブロック「N+1」の先頭アドレス「+0800H」に変更し、次ブロック「N+1」の処理(処理パターン3)に移行する。
【0034】
(2)処理パターン2
図6に基づき処理パターン2を説明する。この処理パターン2は、以下のケースA,Bの処理パターンを示している。
A:非等価領域が処理中ブロックの先頭アドレスより前から始まるケース
B:同先頭アドレスと等しいアドレスから始まるケース
図6(a)はケースAを示し、処理中ブロック「N」の先頭アドレス「+0800H」より前から非等価領域が始まっている。また、非等価領域の先頭アドレスはブロック「N」の先頭アドレスより前に位置し、前のブロック「N-1」内に位置している。
【0035】
図6(b)はケースBを示し、処理中ブロック「N」の先頭と、非等価領域の先頭とが等しいアドレス「+0800H」となっており、処理中ブロック「N」は非等価領域から始まっている。
【0036】
このようなケースA,Bの場合、「現在処理中アドレス」は非等価領域の終点アドレスとなる。したがって、等価領域を「現在処理中アドレス(非等価領域の終点アドレス)~処理中ブロックの終点アドレス」として抽出する。その後、現在処理中アドレスを次ブロック「N+1」の先頭アドレスに変更し、次ブロック「N+1」の処理に移行する。
【0037】
(3)処理パターン3
図7に基づき処理パターン3を説明する。この処理パターン3は、処理中ブロック「N」内に非等価領域のすべて含まれるケースを示している。
【0038】
この場合、処理中ブロック「N」内の非等価領域以前に「現在処理中アドレス」が指定されていれば、等価領域を「現在処理中アドレス(処理中ブロック「N」の先頭メモリアドレス「+0000H」)~非等価領域の先頭アドレス」として抽出する。その後、「現在処理中アドレス」に次の等価領域の先頭(非等価領域の終点アドレス)に変更する。
【0039】
(4)処理パターン4
図8に基づき処理パターン4を説明する。この処理パターン4は、処理中ブロック「N」と次ブロック「N+1」とを跨って非等価領域が存在するケースを示している。
【0040】
この場合、処理中ブロック「N」内の非等価領域以前に現在処理中アドレスが指定されていれば、等価領域を「現在処理中アドレス(処理中ブロック「N」の先頭メモリアドレス「+0000H」)~非等価領域の先頭アドレス」として抽出する。
【0041】
その後、処理パターン2と同じく、現在処理中アドレスを次の等価領域の先頭アドレス(非等価領域の終点アドレス)に変更する。ただし、次の等価領域の先頭アドレスは、次ブロック「N+1」内の領域に達しているため、処理パターン2の処理内容に移行する。
【0042】
≪自動等価領域抽出機能部の処理内容≫
図9に基づき自動等価領域抽出機能部を等価領域テーブルの作成処理を中心に説明する。
【0043】
S01,S02:処理が開始されると、メモリブロックのブロック番号および非等価領域テーブルのテーブル番号に基づくループ処理が実行される。
表1は非等価領域テーブル例を示している。ここではテーブル番号(オプション番号)毎にメモリアドレスおよびサイズが記述されている。なお、非等価領域テーブルの非等価領域のデータは、工場出荷時に設定されたデータでもよく、あるいは外部コンピュータ12によりユーザが指定したデータでもよい。
【0044】
【表1】
【0045】
表2は、表1の非等価領域テーブルを基に作成される等価領域テーブルを示している。ここで「ブロック番号×テーブル番号」毎にメモリアドレスおよびサイズが記述されている。
【0046】
【表2】
【0047】
S03:非等価領域の先頭アドレスが現在処理中アドレス(処理中ブロックの先頭アドレス)以前に位置するか否かを確認し、確認の結果、現在処理中アドレス以前であればS04に進む。一方、現在処理中アドレスより後であれば、非等価領域テーブルに現在処理中アドレスが含まれているため(S10)、S11移行の処理に進む。
【0048】
S04:現在処理中アドレスが非等価領域の終点アドレス以前に位置するか否かを確認する。確認の結果、終点アドレス以前であればS05に進む一方、後であればS06に進む。
【0049】
S05:現在処理中アドレスを非等価領域の終点アドレス、即ち次の等価領域の先頭アドレスに変更する。
【0050】
S06:非等価領域の終点アドレスが、現在処理中のメモリブロックの終点メモリアドレス以前か否か、即ち非等価領域が次のメモリブロックを跨いでいないか否かを確認する。確認の結果、次のメモリブロックを跨いでいなければS07に進む。一方、跨いでいれば同じブロック内に等価領域は無いと推定し(S08)、S09に進む。
【0051】
S07:S03~S06,S18の非等価領域のテーブル番号が、非等価テーブルの最大値よりも小さいか否かを確認する。確認の結果、非等価領域テーブルの最大値よりも小さければ、同ブロック内に他の非等価領域が存在する可能性があるので、S02に戻って処理を継続する。一方、非等価領域データブルの最大値よりも小さくなければS09に進む。
【0052】
S09:処理中ブロックのブロック番号が、ブロック最大値よりも小さいか否かを確認する。確認の結果、ブロック最大値よりも小さければ同じブロック内に等価領域は無いと推定し、S01のブロック番号ループに戻って次ブロックの処理に移行する。一方、ブロック最大値よりも小さくなければ処理を終了する。
【0053】
S11:非等価領域先頭アドレスが次ブロック先頭アドレス以前か否か、即ち非等価領域が処理中ブロックの範囲外か否かを確認する。確認の結果、非等価領域が処理中ブロックの範囲外であればS12に進む一方、処理中ブロックの範囲内であればS15に進む。
【0054】
S12:処理中ブロックが等価領域と判定され、処理ブロックの終点アドレスまでが等価領域の範囲と確定される。したがって、「現在処理中アドレス~処理中ブロックの終点アドレスまでの範囲について等価領域テーブルを作成する。
【0055】
S13,S14:現在処理中アドレスに次ブロックの先頭アドレスを代入して変更し(S13)、次ブロックのループのためS09に進む(S14)。
【0056】
S15:現在処理中アドレスから非等価領域の先頭アドレスまでが等価領域の範囲と判定される。ここで判定された範囲が等価領域と確定され、等価領域テーブルが作成される。
【0057】
S16:現在処理中アドレスを非等価領域の終点アドレス(次の等価領域の先頭アドレス)に変更する。
【0058】
S17~S19:非等価領域の終点アドレスが処理中ブロックの終点アドレスより以前にあるか否か、即ち非等価領域が次ブロックを跨いでいないか否かを確認する(S17)。確認の結果、跨いでいなければ非等価領域のテーブル番号を確認してS07に進む(S18)。一方、跨いでいればブロックループ継続のため、S09に進む(S19)。
【0059】
以下、実施例1~4に基づき表2のブロック番号に応じた処理例を説明する。なお、各実施例では、表1のテーブル番号「0」~「7」に応じて非等価領域テーブル0~7と呼び、表2のブロック番号「1」~「16」に応じてブロック1~16と呼ぶものとする。
【実施例1】
【0060】
図10に基づき実施例1を説明する。本実施例はブロック3の処理例を示し、該ブロック3は非等価領域0に基づき作成されている。すなわち、図10(a)に示すように、テーブル番号「0」で指定された領域「アドレス:1000H」が非等価領域となる一方、その他の領域が等価領域となっている。
【0061】
(1)最初の処理では、S03の現在処理中アドレスを処理中ブロック3の先頭アドレス「1000H」としてスタートし、S04に進む。
【0062】
このとき現在処理中アドレスは、非等価領域テーブル0の終点アドレス「アドレス:1080H」以前なため、S05に進む。ここでS05に示す等価領域テーブル展開時の現在処理中アドレスは、非等価領域テーブル0の終点アドレス「アドレス:1080H」に変更される。
【0063】
その後、S06の確認時に非等価領域テーブル0の終点アドレス「アドレス:1080H」が次のブロック(ブロック番号「4」)を跨いでいないため、S07に進んで非等価領域テーブル番号「0」が非等価テーブル最大値「7」よりも小さいか否かが確認される。ここでは非等価領域テーブルのテーブル番号数の最大値「7」よりも小さいため、S02の非等価領域テーブルのループ処理に戻る。
【0064】
(2)次の処理では、S03の現在処理中アドレスが非等価領域テーブル0の終点アドレス「アドレス:1080H」に変更されている。これを非等価領域テーブル1の先頭アドレス「2080H」と比較することでS03の確認が行われ、S10,S11の処理に進む。
【0065】
ここで非等価領域テーブル0は、次ブロック4の範囲外なため、S12の等価領域判定に進む。これにより図10(b)の等価領域テーブルが作成され、さらにS13により現在処理中アドレスが次ブロック4の先頭アドレス「1800H」に変更される。
【実施例2】
【0066】
図11に基づき実施例2、即ちブロック5,6の処理例を説明する。ここでは図11(a)に示すように、ブロック5,6間を非等価領域テーブル2が跨いで位置し、該非等価領域テーブル2はブロック5の終点で分断されている。本実施例では、現在処理中アドレスをブロック5の先頭アドレス「2000H」で処理を開始する。
【0067】
(1)まず、非等価領域テーブル1の先頭アドレス「2080H」が現在処理中アドレスの後なため、S03,S10に従ってS11に進む。
【0068】
このとき非等価領域テーブル1はブロック5の範囲内に位置するため、最初の等価領域判定(S15)で「2000H~2080H」が等価領域と判定される。また、現在処理中アドレスを非等価領域テーブル1の終点アドレス「2100H」に変更する(S16)。
【0069】
そして、非等価領域テーブル1は次ブロック6に跨っていないため、S17,S18,S09,S02に従って非等価領域テーブルのループ処理、即ち次の非等価領域テーブル2に基づく処理に進む。
【0070】
(2)次の非等価領域テーブル2の先頭アドレスは、現在処理中アドレスよりも後なため、S03,S10により11に進む。このとき非等価領域テーブル2はブロック5の範囲内に位置するため、二回目の等価領域判定(S15)で「2100H~27C0H」が等価領域と判定される。
【0071】
また、現在処理中アドレスは、ブロック5内の非等価領域2の終点アドレス、即ちブロック6の先頭アドレスに現在処理中アドレスに変更される(S16)。なお、非等価領域テーブル2は、前述のようにブロック5,6を跨いでいるため、S17,S19,S01により次ブロック6の処理に進む。
【0072】
(3)次ブロック6の処理の際、さらに次の非等価テーブル3の先頭アドレスは現在処理中アドレスよりも後なため、S03,S10に従ってS11に進む。
【0073】
このとき非等価領域テーブル3はブロック6の範囲外なため、S12により「2840H~3000H」が等価領域と判定され、これにより図11(b)に示す等価領域テーブルが作成される。また、現在処理中アドレスを次ブロック7の先頭アドレスに変更し、S14,S09,S01に従ってブロック7の処理に移行する。
【実施例3】
【0074】
図12に基づき実施例3を説明する。本実施例はブロック13の処理例を示している。ブロック3においては、図12(a)に示すように、非等価領域テーブル3の後半部分と非等価領域テーブル4の前半部分とが重複し、非等価領域テーブル3,4が結合した形を呈している。ここでは現在処理中アドレスをブロック13の先頭アドレス「6000H」として処理が開始される。
【0075】
(1)まず、非等価領域テーブル3の先頭アドレス「6200H」は、現在処理中アドレスより後なため、S03,S10に従ってS11に進む。このとき非等価領域テーブル3はブロック13の範囲内なため、最初の等価テーブル作成処理(S15)で「6000H~6200H」が等価領域と判定される。
【0076】
その後、現在処理中アドレスが非等価領域テーブル3の終点アドレス「6280H」に変更される(S16)。また、非等価領域テーブル3の終点アドレスがブロック13の終点アドレスに達していないため、S17,S18,S07に従ってS02の非等価領域テーブルのループに戻る。
【0077】
(2)次の非等価領域テーブル4の先頭アドレス「6260H」は、現在処理中アドレス「6280H」以前なため(S03)、S04に進む。このとき現在処理中アドレスは、非等価領域テーブル4の終点アドレス「62E0H」前なため、現在処理中アドレスが前記終点アドレスに変更される(S05)。
【0078】
もっとも、S06の確認時に非等価領域テーブル4の終点アドレス「62E0H」がブロック13の終点アドレス「6800H」に達していないため、S07を経由してS02の非等価領域デーブルのループに戻る。
【0079】
(3)次の非等価領域テーブル5の先頭アドレス「7000H」は、現在処理中のアドレス「62E0H」より後なため、S10,S11に進む。この非等価領域テーブル5はブロック13の範囲外なため、S12の等価テーブル作成処理で「62E0H~6800H」が等価領域として判定され、図12(b)の等価領域テーブルが作成される。
【0080】
また、S18において現在処理中アドレスが、次のブロック14の先頭アドレス「6800H」に変更される。ここでは非等価領域テーブル5は次のブロック14を跨いでいないため、S19,S09,S01に従って次のブロック14の処理に移行する。
【実施例4】
【0081】
図13に基づき実施例4を説明する。本実施例はブロック15の処理例を示している。ブロック15において、図13(a)に示すように、非等価領域テーブル6が同テーブル5内にすべて収まっている。ここでは現在処理中アドレスをブロック15の先頭アドレス「7100H」として処理が開始される。
【0082】
(1)非等価領域テーブル5の先頭アドレス「7000H」は、現在処理中アドレス「7100H」以前なため、S04に進む。このとき現在処理中アドレス「7100H」は、非等価領域テーブル5の終点アドレス「7100H」と等しいため、S06に進む。
【0083】
S06において非等価領域テーブル5の終点アドレス「7100H」は、ブロック15の終点アドレス「7800H」より前なため、S07,S02に従って非等価領域テーブルのループ処理に戻る。
【0084】
(2)次の非等価領域テーブル6の先頭アドレス「7020H」は、現在処理中アドレス「7100H」以前なため、S04に進む。
【0085】
その際、現在処理中アドレス「7100H」は、非等価領域テーブル6の終点アドレス「7060H」より後なため、S05を経由することなく、S06に進む。ここでは非等価領域テーブル6の終点アドレスがブロック15の終点アドレスに達していないため。S07,S02に従って非等価領域テーブルのループ処理に戻る。
【0086】
(3)次の非等価領域テーブル7の先頭アドレス「7E00H」は、現在処理中アドレス「7100H」より後なため、S10,S11に進む。
【0087】
ここでは非等価領域テーブル7の終点アドレスはブロック15の範囲外なため、S12の等価テーブル作成処理により「7100H~7800H」が等価領域と判定、図13(b)の等価領域テーブルが作成される。また、現在処理中アドレスを次ブロック16の先頭アドレス「7800H」に変更し、該ブロック16の処理に移行する。
【0088】
このようなPLCのメモリ等価システム(メモリ等価方法)によれば、非等価領域テーブルに基づきS01~S19のステップを通じて等価領域テーブルが自動的に作成される。したがって、「全等価機能」の設定下でも非等価領域が自動抽出され、ユーザ操作によるミスを抑制することができる。
【0089】
また、「部分等価機能」の設定のように個々の等価領域を手入力する必要がなく、ユーザ操作の手間が省け、この点でもユーザ操作のミスが抑制される。さらに「全等価機能」の設定時に等価したくない領域が自動選択されるため、メモリの使用効率を向上させることもできる。
【0090】
なお、本発明は、上記実施形態に限定されるものではなく、各請求項に記載された範囲内で変形して実施することができる。例えばS01~S19の処理内容をコンピュータに実行させるプログラムとして構成することが可能である。これによりコンピュータに前記全等価機能および前記自動等価領域抽出機能が実装され、S01~S19の処理が実行される。
【符号の説明】
【0091】
11…PLCシステム
12…外部コンピュータ
13,14…メモリデータ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13