(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-08
(45)【発行日】2024-04-16
(54)【発明の名称】二重系制御システムのメモリ等価方式
(51)【国際特許分類】
G05B 19/05 20060101AFI20240409BHJP
【FI】
G05B19/05 S
(21)【出願番号】P 2020150457
(22)【出願日】2020-09-08
【審査請求日】2023-02-21
(31)【優先権主張番号】P 2020053284
(32)【優先日】2020-03-24
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000006105
【氏名又は名称】株式会社明電舎
(74)【代理人】
【識別番号】100086232
【氏名又は名称】小林 博通
(74)【代理人】
【識別番号】100092613
【氏名又は名称】富岡 潔
(74)【代理人】
【識別番号】100104938
【氏名又は名称】鵜澤 英久
(74)【代理人】
【識別番号】100210240
【氏名又は名称】太田 友幸
(72)【発明者】
【氏名】森 文彦
(72)【発明者】
【氏名】▲高▼崎 秀郎
【審査官】西井 香織
(56)【参考文献】
【文献】特開2000-242316(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/05
(57)【特許請求の範囲】
【請求項1】
主系と従系の制御装置を備え、
前記主系の演算結果を等価データとして、前記従系に反映させる二重系制御システムのメモリ等価方式であって、
前記主系および前記従系は、
前記演算結果を格納する演算用メモリと、
前記等価データを格納する等価用メモリと、
前記演算用メモリに前記演算結果を格納する際に前記演算結果の複製を前記等価データとして前記等価用メモリに格納させるマルチプレクサと、
を備えることを特徴とする二重化制御システムのメモリ等価方式。
【請求項2】
前記主系は、前記演算用メモリへの前記演算結果の格納と同時進行で前記等価用メモリに前記等価データを格納する
ことを特徴とする請求項1記載の二重系制御システムのメモリ等価方式。
【請求項3】
前記主系は、前記等価データと前記等価用メモリの格納データとを比較し、
前記等価データと前記格納データとの不一致を状変として検出する状変検出部を備え、
前記状変があったメモリブロックの情報を前記従系に送信する一方、
前記従系は、前記送信
されたデータに含まれるメモリブロックの情報に基づき前記等価用メモリの記憶データを更新する
ことを特徴とする請求項1または2記載の二重系制御システムのメモリ等価方式。
【請求項4】
前記等価用メモリを含む等価回路をすべて集積回路に実装している
ことを特徴とする請求項1~3のいずれかに記載の二重系制御システムのメモリ等価方式。
【請求項5】
前記等価用メモリは、前記等価回路が実装された集積回路の外部に高速メモリとして実装されている
ことを特徴とする請求項4記載の二重系制御システムのメモリ等価方式。
【請求項6】
前記従系は、前記演算用メモリと前記等価用メモリの選択を切替可能なことを特徴とする請求項1~5のいずれかに記載の二重系制御システム。
【請求項7】
前記切替は、演算部の演算実行・不実行に応じて制御されていることを特徴とする請求項6記載の二重系制御システムのメモリ等価方式。
【請求項8】
前記主系は、前記等価データを作成する際に集積回路の広帯域バスを介して、少なくとも前記演算用メモリからのデータ転送可能な等価データ生成部を備える
ことを特徴とする請求項1~7のいずれかに記載の二重系制御システムのメモリ等価方式。
【請求項9】
前記等価データ生成部は、前記等価データと前記等価用メモリの格納データとを比較し、
前記等価データと前記格納データとの不一致を状変として検出して第1の状変ステータスにセットする状変検出部と、
前
記状変ステータスから前記状変のあったメモリブロックの情報を取得して前記等価
用メモリに格納し、該格納されるメモリブロックの情報に応じた第2の状変ステータスをセットして通信部に転送するデータ転送部と、を備え、
前記データ転送部は、前記
広帯域バスを介して前記演算用メモリから前記状変のデータを読み込み、
前記
広帯域バスを介して前記等価用メモリにデータを記述することを特徴とする請求項8記載の二重系制御システムのメモリ等価方式。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、主系のメモリデータを等価データとして、従系のメモリに反映させる二重系制御システムのメモリ等価方式に関する。
【背景技術】
【0002】
プログラマブルロジックコントローラ(programmable logic controller:以下、PLCとする。)は、シーケンス演算処理を主な動作とし、異常発生時の動作継続のため、二重化システムが構築されことが少なくない。
【0003】
図1に基づき概略を説明すれば、PLC二重化システムは、主系(制御系)となるマスターPLC101と、従系(待機系)となるスレーブPLC102とにより構成されている。
【0004】
マスターPLC101およびスレーブPLC102は、それぞれシーケンス命令を実行するCPU103,110と、プログラムおよびデータを格納するメモリ104,109と、メモリにライトしたアドレス値およびデータ値を保持する送信用/受信用FIFO105,108と、互いの通信を実行する通信コントローラ106,107とを備えている。
【0005】
そして、正常時にはマスターPLC101の演算結果に基づき接続機器が制御される一方、異常時には主系を高速でスレーブPLC102に切り替える。このときマスターPLC101の演算結果、即ちメモリ104の内容をスレーブPLC102のメモリ109に反映させる等価処理を行うことにより、制御機器の入出力情報をスレーブPLC102に展開する。
【先行技術文献】
【特許文献】
【0006】
【文献】特開平8-180030号公報
【文献】特開2019-117482号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
前述のようにPLCを二重化する場合にはメモリ104,109の内容を等価にする必要がある。この点について特許文献1では、メモリ104にライトしたアドレス値とデータ値とをデータ更新の有無に関係なく、等価処理を行っている。
【0008】
しかしながら、更新されていないデータを送信する必要はなく、通信量に無駄を生じるおそれがあった。そこで、特許文献2では、更新されたアドレスデータおよび更新データを送受信時にバッファリングする方式を採用しているものの、
CPU103のメモリライトの都度バッファの内容が更新されるため、バッファのオーバフローが生じ、却って等価処理が遅延するおそれがある。
【0009】
本発明は、このような従来の問題を解決するためになされ、主系演算部のメモリアクセスに並行して従系に送信する等価データを作成し、送信時のメモリ読込を省略することで等価処理の高速化を図っている。
【課題を解決するための手段】
【0010】
(1)本発明は、主系と従系の制御装置を備え、
前記主系の演算結果を等価データとして、前記従系に反映させる二重系制御システムのメモリ等価方式であって、
前記主系および前記従系は、
前記演算結果を格納する演算用メモリと、
前記等価データを格納する等価用メモリと、
を備えることを特徴としている。
【0011】
(2)前記主系の一態様は、前記演算用メモリへの前記演算結果の格納と同時進行で前記等価用メモリに前記等価データを格納する。
【0012】
(3)前記主系の他の態様は、前記等価データと前記等価用メモリの格納データとを比較し、前記両データの不一致を状変として検出する状変検出部を備え、
前記状変があったメモリブロックの情報を前記従系に送信する一方、
前記従系は、前記送信データに含まれるメモリブロックの情報に基づき前記等価用メモリの記憶データを更新する。
【0013】
(4)本発明の一態様として、前記等価用メモリを含む等価回路をすべて集積回路に実装している。
【0014】
(5)本発明の他の態様として、前記等価用メモリは前記等価回路が実装された集積回路の外部に高速メモリとして実装されている。
【0015】
(6)前記従系の一態様は、前記演算用メモリと前記等価用メモリの選択を切替可能となっている。
【0016】
(7)前記切替の他の態様は、演算部の演算実行・不実行に応じて制御されている。
【0017】
(8)本発明のさらに他の態様として、前記主系は、前記等価データを作成する際に集積回路の広帯域バスを介して、少なくとも前記演算用メモリからのデータ転送可能な等価データ生成部を備える
(9)前記等価データ生成部の一態様として、前記等価データ生成部は、前記等価データと前記等価用メモリの格納データとを比較し、前記両データの不一致を状変として検出して第1の状変ステータスにセットする状変検出部と、
前記メモリ状変ステータスから前記状変のあったメモリブロックの情報を取得して前記等価メモリに格納し、該格納されるメモリブロックの情報に応じた第2の状変ステータスをセットして通信部に転送するデータ転送部と、を備え、
前記データ転送部は、前記広域バスを介して前記演算用メモリから前記状変のデータを読込、前記広域バスを介して前記等価用メモリにデータを記述する。
【発明の効果】
【0018】
本発明によれば、主系演算部のメモリアクセスに並行して従系に送信する等価用データが作成されるため、送信時のメモリ読込を省略でき、この点で等価処理の高速化が可能となる。
【図面の簡単な説明】
【0019】
【
図4】(a)はメモリのブロック分割例を示す図、(b)状変ステータスレジスタの設定を示す図。
【
図7】実施例3のマスターPLCおよびスレーブPLCの概略図。
【発明を実施するための形態】
【0020】
以下、本発明の実施形態に係る二重系制御システムのメモリ等価方式を説明する。ここではPLC二重化システムに前記メモリ等価方式が適用されている。
【実施例1】
【0021】
図2~
図4に基づき実施例1のPLC二重化システムを説明する。このPLC二重化システムは、従来と同様に主系(制御系)となるマスターPLC101と、従系(待機系)となるスレーブPLC102とにより構成されている。
【0022】
各PLC101,102は、
図2に示すように、シーケンス命令に従って演算を実行するCPU201と、メモリ等価処理を実行する等価回路を実装したFPGA(field-programmable gate array:集積回路)202と、CPU201の演算時にアクセスされる演算用のRAM(Random Access Memory:以下、演算用メモリとする。)203と、を備えている。この演算用メモリ203には、プログラムと演算結果のデータが格納され、CPU201の作業用として用いられる。
【0023】
FPGA202には、MUX(以下、マルチプレクサとする。)204,等価用RAM(以下、等価用メモリとする。)205,状変検出部206,状変ステータスレジスタ207,DMAC208,TxBUF(以下、送信バッファとする。)209,DMAC210,通信コントローラ211,RxBuf(以下、受信バッファとする。)212,DMAC213を含む等価回路が実装されている。
【0024】
具体的にはマルチプレクサ204は、送信時と受信時のアドレスとデータを選択し、マスターPLC101であれば送信時に「A」が選択される一方、スレーブPLC102であれば受信時に「B」が選択される。
【0025】
マスターPLC101のCPU201が演算用メモリ203にライトアクセスした際にはマルチプレクサ204により「A」が選択され、等価用メモリ205に演算用メモリ203と同じ内容がライトされる。また、状変検出部206は、CPU201が演算用メモリ203にデータをライトした際、前回値からのデータ更新(以下、「状変」と省略する。)を検出する。
【0026】
状変ステータスレジスタ207は、状変検出部206により検出された状変のあった演算用メモリ203のブロック番号を保持する。このときDMAC208は、状変ステータスレジスタ207の保持情報を参照して、等価用メモリ205から状変があったブロックを送信バッファ209に転送する。ここで転送された送信データを送信バッファ209が一時的に保持する。
【0027】
マスターPLC101であればDMAC210は、送信バッファ209の保持内容を通信コントローラ211に転送する。一方、スレーブPLC102であれば通信コントローラ211の受信したデータを受信バッファ212に転送する。
【0028】
マスターPLC101の通信コントローラ211は、転送された送信バッファ209の保持内容をスレーブPLC102に送信動作させる。一方、スレーブPLC102の通信コントローラ211は、マスターPLC101から送信されたデータを受信動作させる。
【0029】
ここで受信されたマスターPLC101からのデータは受信バッファ212により一時的に保持される。このときマルチプレクサ204により「B」が選択され、スレーブPLC102のDMAC213が受信バッファ212の保持内容を等価用メモリ205に転送する。
【0030】
(1)マスターPLC101の送信動作
マスターPLC101は、次のプロセス(S01~S06)で送信動作を行う。
【0031】
S01~S03:前述のようにCPU201が演算用メモリ203に演算データをライトするとき(S01)、マルチプレクサ204が送信時動作し、FPGA202内部の等価用メモリ205に同じデータをライトする(S02)。
【0032】
すなわち、マルチプレクサ204と等価用メモリ205とを用いることにより、CPU201の演算用メモリ203へのライトデータの複製が等価データとして作成保存される。したがって、マスターPLC101がスレーブPLC102に等価データを送信する際に演算用メモリ203を読み込む必要がなく、等価処理を高速化することができる。
【0033】
このとき等価用メモリ205へのアクセスがFPGA202上で行わることから、CPU201から演算用メモリ203へのアクセスと同時進行で等価データを作成でき、この点でも等価処理が高速化する。また、状変検出部206にて等価用メモリ205の状変の検出動作を実行し、状変があれば状変ステータスレジスタ207の該当ビットを「1」に設定する(S03)。
【0034】
S04,S05:PLC101のラダープログラムの実行停止時(CPU201の演算不実行時)に状変検出部206が、状変ステータスレジスタ207のビットを「0」から「1」に変更したブロックを検出すれば、DMAC208を起動させる(S04)。
【0035】
これにより等価用メモリ205から送信バッファ209にDMA転送される(S05)。ここで送信するデータ(以下、状変データとする。)は、状変があったブロックに限定されるので、通信量を抑制することができる。
【0036】
S06:CPU201のソフトウェア動作によりDMAC210を起動させ、状変データを送信バッファ209から通信コントローラ211へDMA転送する。
【0037】
この転送と並行してS04,S05の処理を実行し、状変ステータスレジスタ207の前回続きのビットから「1」が設定されたビットを検索する。ここで送信バッファ209は複数の通信フレーム分の容量を有しており、正常な受信リプライが来れば上書きする一方、異常であればS06のDMA転送を再度行う。
【0038】
送信バッファ209に格納されたすべてのフレームが送信待ちの場合には、オーバフロー回避のため、S05のDMA転送を中断する。その間の演算用メモリ203の状変は、状変ステータスレジスタ207に記録される。
【0039】
(2)スレーブPLC102の受信動作
スレーブPLC102の受信動作は、次のプロセス(S11~S15)で受信動作を行う。
【0040】
S11,S12:スレーブPLC102がマスターPLC101からの状変データ送信を受信すれば、通信コントローラ211はDMAC210を起動させ(S11)、受信バッファ212へDMA転送を行う(S12)。
【0041】
S13,S14:CPU201のソフトウェア動作で受信バッファ212をリードし、受信フレームの状変データに含まれるブロック番号を取得し(S13)、CPU201のソフトウェア動作でDMAC213を起動させる。このときマルチプレクサ204が受信時動作するため、状変データを受信バッファ212から等価用メモリ205にDMA転送が可能となる(S14)。
【0042】
なお、DMAC213は、受信バッファ212の内容を検定し、受信フレームに異常がなければCPU201のソフトウェア動作でマスターPLC101に正常受信の応答を送信する一方、異常があれば同PLC101に再送要求の通知を送信する。
【0043】
S15:スレーブPLC102のラダープログラム実行停止時(CPU201の演算不実行時)において、S13で取得したブロック番号からCPU201がソフトウェア動作で等価用メモリ205と演算用メモリ203との書き込みアドレスを算出する。
【0044】
算出された書き込みアドレスを等価用メモリ205から演算用メモリ203へ転送し、演算用メモリ203の該当アドレスに上書きする。これにより両PLC101,102のメモリデータが等価となり、等価処理が完了する。
【0045】
(3)状変検出動作
図3に基づき状変検出部206の動作を説明する。CPU201が演算用メモリ203にライトアクセスする際、状変検出部206が等価用メモリ205の同じアドレスのデータをリードする。
【0046】
状変検出部206は、CPU201の演算用メモリ203へのライトデータと、自身のリードした等価用メモリ205のリードデータとを比較する。比較の結果、前記両データが不一致であれば、該不一致部分のアドレスデータが書き換えられることになる。
【0047】
この状態を等価データの「状変」と認識し、状変のあったブロック領域の状変ステータスレジスタ207の該当ビットを「1」に設定する。
図3中のライトアクセス「1」が「状変あり」の動作を示し、同「2」が「状変なし」の動作を示している。
【0048】
図4に基づき一例を説明する。ここでは演算用メモリ203は、
図4(a)に示すように、「256ブロック」に分割されている。一方、状変ステータスレジスタ207は、
図4(b)に示すように、
図4(a)のメモリブロック数に応じて「32ビット×8レジスタ」が用意されている。そして、メモリブロック「31」に「状変あり」と認識され、「状変ステータスレジスタ#0」の該当ビットが「1」に設定されている。なお、演算用メモリ203のメモリブロック分割および状変ステータスレジスタ207の構成は、
図4に限定されるものではなく、他の分割数および構成を用いてもよいものとする。
【0049】
このような状変検出動作にあたって、等価用メモリ205がFPGA202の内部に実装されているため、該等価用メモリ205のアクセス時間を外部デバイスである演算用メモリ203の半分以下にすることができる。
【0050】
したがって、CPU201の演算用メモリ203へのライトアクセス中に等価用メモリ205のリードとライトが可能となる。その結果、状変検出動作によるメモリアクセス増加での速度低下を回避でき、この点で状変検出動作の速度を向上させることが可能となる。
【実施例2】
【0051】
PLC二重化システムは、正常時にマスターPLC101の演算結果に基づき接続機器などを制御する一方、異常時に主系を高速でスレーブPLC102に切り替えるため、メモリ等価の処理が行われている。
【0052】
ただし、スレーブCPU201の演算データにより等価データが上書きされることを防止する観点から演算中の等価処理が禁止されている。この点につき実施例1も、S15の処理がスレーブPLC102のラダープログラム実行停止時に行われている。
【0053】
その結果、スレーブPLC102は、演算不実行中に等価処理を行わざるを得なく、メモリ等価までに時間がかかるおそれがあった。そこで、実施例2のPLC二重化システムは、スレーブPLC102の演算実行中の等価処理を可能にすることでメモリ等価の時間短縮化を図っている。
【0054】
≪構成例≫
図5に基づき実施例2の構成例を説明する。ここでは実施例1のFPGA202からマルチプレクサ204および等価用メモリ205が削除されている。
【0055】
その一方でメモリ(RAM)402,メモリ(RAM)403,演算部マルチプレクサ405,等価部マルチプレクサ(MUX)406,マルチプレクサ(MUX)制御部407の構成が追加されている。また、実施例2では、
図5中のRAM203をCPU201の演算用メモリではなく、別用途に使用可能な外部メモリとする。
【0056】
すなわち、メモリ402,403にはCPU201の演算結果/等価データが格納される。また、演算部マルチプレクサ405は、演算結果を格納するメモリ領域(メモリ402,403)の選択/選択の切替を行う。等価部マルチプレクサ406は、等価データを格納するメモリ領域(メモリ402,403)の選択/選択の切替を行う。
【0057】
このとき両マルチプレクサ405,406の制御は、マルチプレクサ制御部407の出力する演算部選択信号408・等価部選択信号409により実行されている。そして、このような構成のPLC101,102は次のように動作する。
【0058】
≪マスターPLC101の送信動作≫
マスターPLC101のCPU201の演算時には、マルチプレクサ制御部407が演算部選択信号408を演算部マルチプレクサ405に出力する一方、等価部選択信号409を等価部マルチプレクサ406に出力する。
【0059】
これによりメモリ402が演算用メモリに選択される一方、メモリ403が等価用メモリに選択される。したがって、CPU201の演算結果がメモリ402に格納され、メモリ402へのデータ書き込みと並行してメモリ403に等価データが書き込まれる。
【0060】
その結果、実施例1と同様にCPU201の演算データの書き込み時に等価データが作成保存され、メモリの等価処理を高速化する効果が得られる。その後、PLC101のラダープログラム実行停止時に状変検出部206が、状変の検出動作を実行し、実施例1と同じ送信動作を実行する。
【0061】
≪スレーブPLC102の受信動作≫
図6のタイムチャートに基づきスレーブPLC102の受信動作をCPU201の演算実行中と演算不実行中とに分けて説明する。
図6中の「A」のタイミングはCPU201の演算実行中を示し、同「B」のタイミングは同演算不実行中を示し、演算の実行・不実行に応じてメモリ領域(メモリ402,403)の選択/選択の切替が制御されている。
【0062】
(1)まず、前記「A」のタイミングにおける動作例を説明する。ここではマルチプレクサ制御部407から演算部マルチプレクサ405に演算部選択信号が出力され、メモリ402が演算用メモリとして選択される。したがって、CPU201はメモリ402にアクセスしながら演算を実行し、演算結果はメモリ402に格納される。
【0063】
このとき通信コントローラ211が、マスターPLC101からの送信フレームを受信すればS11~S14の処理が実行される。また、マルチプレクサ制御部407が、演算部選択信号408を演算部マルチプレクサ405に出力する一方、等価部選択信号409を等価部マルチプレクサ406に出力する。
【0064】
これによりメモリ402が引き続き演算用メモリに選択される一方、メモリ403が等価用メモリに選択される。すなわち、マルチプレクサ制御部407により演算用と等価用のメモリ領域(メモリ402,403)が選択制御される。
【0065】
その結果、S15の処理をスレーブPLC102のラダープログラム実行時にも行うことが可能となる。したがって、CPU201の演算の実行・不実行にかかわらずメモリの等価処理が可能となり、メモリ等価にかかる時間を大幅に短縮できる。
【0066】
(2)つぎに前記「B」のタイミングにおける動作例を説明する。ここではマルチプレクサ制御部407は、演算部選択信号408および等価部選択信号409を両マルチプレクサ405,406に出力し、演算用と等価用のメモリ領域(メモリ402,403)を切替制御する。
【0067】
すなわち、以後は演算用にメモリ403が選択される一方、等価用にメモリ402が選択され、S15の処理が実行される。これによりマスターPLC101の処理結果がすべて反映された等価の状態でスレーブPLC102の動作が可能となる。
【0068】
ここで実施例1では、スレーブPLC102は、CPU201の演算実行中にマスターPLC101から送信された等価データを等価用メモリ205に保存し、同演算不実行中(ラダープログラムの実行停止時)に等価用メモリ205の保存データを演算用メモリ203にコピーしていた。
【0069】
これに対して実施例2では、メモリ領域(メモリ402,403)を演算用と等価用とに選択可能ため、演算実行中に等価データを作成保存でき、この点で演算不実行中のコピー処理を削減することができる。したがって、スレーブ演算部401は、
図6中の「C」に示すように、直ちに次の演算を開始でき、この点で演算開始までの待ち時間がなく、処理速度を高速化することができる。
【実施例3】
【0070】
PLC二重化システムでは、マスターPLC101の演算結果をスレーブPLC102に反映させるメモリ等価処理を行うことで制御機器の入出力情報などがスレーブPLC102に展開される。
【0071】
ところが、前述のようにスレーブPLC102の演算中にデータが上書きされることを防止するため、演算中にはメモリ等価処理が行えない。そのため、スレーブPLC102の演算不実行中に行うこととなるが、メモリ等価までに時間がかかってしまう。
【0072】
また、演算不実行の時間が極めて短い(演算処理の負荷が大きい)場合に等価データを作成する処理を実施できないタイミングが発生するおそれがある。そこで、実施例3のPLC二重化システムは、FPGA202に実装された広帯域バスを介して高速に演算用メモリ203からデータ転送可能にしている。
【0073】
≪構成例≫
図7に基づき実施例3の構成例を説明する。
【0074】
(1)マスターPLC101は、CPU201,演算用メモリ203,等価用メモリ205,通信コントローラ(等価データ送信部)211,等価データ生成部300を実装している。
【0075】
ここで演算用メモリ203・等価データ生成部300間のメモリバスbと、等価データ生成部300・等価用メモリ205間の等価バスcとには、広帯域のオンチップが使用され、短時間での高速データコピーが可能となっている。
【0076】
等価データ生成部300は、CPU201の演算不実行のタイミングで状変のあったメモリブロックのメモリデータのみをコピーし、等価データを作成する。また、等価データ生成部300は、
図8に示すように、状変検出部311,メモリ状変ステータス312,データ転送部313,等価用RAM状変ステータス314を実装する。
【0077】
状変検出部311は、演算用メモリ203へのライトデータと等価用メモリ205のリードデータとを比較し、該両データの不一致を状変として検出して前記状変ステータス312にセットする。
【0078】
データ転送部313は、前記状変ステータス312から状変のあったメモリブロックの情報(状変データ)を取得して等価用メモリ205に格納し、該格納された情報に応じた前記状変ステータス314をセットする。なお、通信コントローラ211は、前記状変ステータス314にセットされた情報をスレーブPLC102に送信する制御を行う。
【0079】
(2)スレーブPLC102
スレーブPLC102は、
図7に示すように、CPU201,演算用メモリ203,等価用メモリ205,通信コントローラ211,等価反映部301を実装し、CPU201は演算用メモリ203にアクセスしながら演算を実行する。
【0080】
通信コントローラ211はマスターPLC101からのデータ送信に対する受信動作を制御し、等価データを演算用メモリ203に蓄積する。このとき等価反映部301は、CPU201の演算不実行状態の際に演算用メモリ203から状変のあった領域のメモリデータ、即ち状変データのみを等価用メモリ205にコピーする。
【0081】
その結果、状変のあったメモリブロックのみが等価反映部301によりコピーされ、状変のないメモリブロックのコピーが不要となる。また、スレーブPLC102の演算実行中にマスターPLC101で状変データを予めスレーブPLC102の演算用メモリ203に保存しておくことにより、通信によるデータ送受信にかかる処理を削減でき、この点で等価処理の時間短縮に貢献できる。
【0082】
≪動作例≫
図9に基づきマスターPLC101の動作例を説明する。ここでは前記状変ステータス312,314は簡略化のため、3ビットのデータとして記載するが、これに限定されることなく、メモリ内部の分割数に応じて可変とする。
【0083】
なお、
図6と同様に
図9中の「A」のタイミングはCPU201の演算実行中を示し、同「B」のタイミングは同演算不実行中を示し、同「C」のタイミングはCPU201の次の演算開始中を示している。
【0084】
(1)まず、前記「A」のタイミングにおける動作例を説明すれば、マスターPLC101のCPU201は、演算用メモリ203にアクセスしながら演算を実行する。この演算用メモリ203への書き込み動作の際に状変検出部311は、メモリバスa1を介して演算用メモリ203へのライトデータを取得する。
【0085】
ここで取得したライトデータと、メモリバスa2を介してリードした等価用メモリ205のリードデータとを比較して状変を検出する。
図9中では「状変あり#0~#2」が状変の検出を示し、状変検出後に前記状変ステータス312がセットされる。
【0086】
(2)つぎに前記「B」のタイミングにおける動作例を説明する。ここではデータ転送部313が、前記状変ステータス312から状変を読み出し、読み出された状変のあったメモリブロック番号を抽出する。
【0087】
抽出されたメモリブロック番号に該当するメモリアドレスに基づきメモリバスbを介して演算用メモリ203から状変を含むメモリデータをリードする。これと同時進行で前記リードしたメモリデータを等価用メモリ205に等価バスcを介してライトする(メモリコピー動作)。
【0088】
このときオンチップで広帯域なメモリバスbおよび等価バスcを使用することで短時間でのデータ転送が可能となるため、メモリコピー動作が高速化し、メモリ等価の処理速度を向上させることができる。したがって、演算不実行の時間が極めて短い場合(演算処理の負荷が大きい場合)にも等価データを作成することができる。
【0089】
その後、矢印P~Rに示すように、転送したデータを書き込んだメモリブロック番号に対応する前記メモリ状変ステータス314をセットし、転送完了を示すため前記メモリ状変ステータス312をクリアする(矢印S~U参照)。
【0090】
また、前記メモリ状変ステータス314がセットされた後、通信コントローラ211はスレーブPLC102の演算状態に関わらず等価データをスレーブPLC102に送信させる。なお、矢印Vに示すように、送信完了したメモリブロック番号に該当する前記状変ステータス314はクリアされるものとする。
【0091】
(3)最後に「C」のタイミングにおける動作例を説明する。この場合には「A」のタイミングと同様、マスターPLC101のCPU201は演算用メモリ203にアクセスしながら演算を実行し、さらに状変を検出する。
【0092】
この動作と並行して通信コントローラ211は、前記状変ステータス314にセットされたメモリブロック番号のメモリデータをスレーブPLC102に送信させる制御が可能である。
【0093】
すなわち、演算実行中に前記状変ステータス314のセット情報を送信でき、この点でメモリ等価の時間短縮に貢献できる。このとき等価用メモリ205は、演算中に変化しないので、演算実行中でも等価用メモリ205からデータを読み出しながら状変データを作成することが可能である。
【0094】
なお、本発明は、上記実施形態に限定されるものではなく、各請求項に記載された範囲内で変形して実施することができる。例えば
図2のFPGA202を備えたマスターPLC101と、
図5のFPGA202を備えたスレーブPLC102とを用いてもよい。
【0095】
この場合にもCPU201の演算データの書き込み時に等価データを作成保存でき、またCPU201の演算の実行・不実行にかかわらずメモリの等価処理が可能となる。さらに実施例1,2ではFPGA202の内部メモリ205,402,403を用いたが、CPU201が作業用として使用するRAMの半分以下のアクセス時間の外部メモリ203を用いてもよいものとする。
【0096】
また、
図7中の等価データ生成部300と等価反映部301の双方の機能を併せ持った構成をマスターPLC101,スレーブPLC102に実装させてもよいものとする。
【符号の説明】
【0097】
101…マスターPLC(主系)
102…スレーブPLC(従系)
201…CPU
202…FPGA(集積回路)
402,403…メモリ
204…MUX(マルチプレクサ)
205…等価用RAM
206,311…状変検出部
207…状変ステータス
208,210…DMAC
209…TxBuf
210…RxBuf
211…通信コントローラ(通信部)
300…等価データ作成部
312…メモリ状変ステータス(第1の状変ステータス)
313…データ転送部
314…等価用RAM状変ステータス(第2の状変ステータス)
402,403…メモリ
405…演算部マルチプレクサ
406…等価部マルチプレクサ
407…マルチプレクサ制御部
408…演算部選択信号
409…等価部選択信号