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

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

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

特許6992600プログラマブルコントローラのメモリアクセス制御システム、プログラマブルコントローラのメモリアクセス制御方法
<>
  • 特許-プログラマブルコントローラのメモリアクセス制御システム、プログラマブルコントローラのメモリアクセス制御方法 図1
  • 特許-プログラマブルコントローラのメモリアクセス制御システム、プログラマブルコントローラのメモリアクセス制御方法 図2
  • 特許-プログラマブルコントローラのメモリアクセス制御システム、プログラマブルコントローラのメモリアクセス制御方法 図3
  • 特許-プログラマブルコントローラのメモリアクセス制御システム、プログラマブルコントローラのメモリアクセス制御方法 図4
  • 特許-プログラマブルコントローラのメモリアクセス制御システム、プログラマブルコントローラのメモリアクセス制御方法 図5
  • 特許-プログラマブルコントローラのメモリアクセス制御システム、プログラマブルコントローラのメモリアクセス制御方法 図6
  • 特許-プログラマブルコントローラのメモリアクセス制御システム、プログラマブルコントローラのメモリアクセス制御方法 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2021-12-13
(45)【発行日】2022-01-13
(54)【発明の名称】プログラマブルコントローラのメモリアクセス制御システム、プログラマブルコントローラのメモリアクセス制御方法
(51)【国際特許分類】
   G05B 19/05 20060101AFI20220105BHJP
【FI】
G05B19/05 F
【請求項の数】 8
(21)【出願番号】P 2018037030
(22)【出願日】2018-03-02
(65)【公開番号】P2019153020
(43)【公開日】2019-09-12
【審査請求日】2020-09-17
(73)【特許権者】
【識別番号】000006105
【氏名又は名称】株式会社明電舎
(74)【代理人】
【識別番号】100086232
【弁理士】
【氏名又は名称】小林 博通
(74)【代理人】
【識別番号】100092613
【弁理士】
【氏名又は名称】富岡 潔
(74)【代理人】
【識別番号】100104938
【弁理士】
【氏名又は名称】鵜澤 英久
(74)【代理人】
【識別番号】100210240
【弁理士】
【氏名又は名称】太田 友幸
(72)【発明者】
【氏名】▲高▼崎 秀郎
【審査官】杉山 悟史
(56)【参考文献】
【文献】特開平06-250711(JP,A)
【文献】特開平05-189015(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/05
(57)【特許請求の範囲】
【請求項1】
アプリケーションプログラム格納用メモリと、
アプリケーションデータ格納用メモリと、
前記アプリケーションプログラム格納用メモリに格納されたアプリケーションプログラムを実行する演算用LSIと、
前記演算用LSIの実行する前記アプリケーションプログラムの演算処理以外の処理を実行する管理用CPUと、を備え、
前記アプリケーションプログラム格納用メモリおよび前記アプリケーションデータ格納用メモリには、同期メモリが採用されてデータリードがパイプライン化され、
前記アプリケーションプログラム格納用メモリおよび前記アプリケーションデータ格納用メモリのアドレスを先行出力し、
前記アドレスの先行出力をセーブレジスタに維持しながらアドレス出力およびデータリード・演算を実行する
ことを特徴とするメモリアクセス制御システム。
【請求項2】
前記演算用LSIの次の演算に応じて前記セーブレジスタのアドレスの状態を決定して保存する
ことを特徴とする請求項1記載のメモリアクセス制御システム。
【請求項3】
前記決定の要因が前記アドレスのインクリメントであれば、次に実行する命令のアドレスを前記セーブレジスタに保存し、
前記要因が前記アドレスのデクリメントであれば、前に実行した命令のアドレスを前記セーブレジスタに保存し、
前記要因が演算結果に基づくアドレス設定であれば、該演算結果に基づくアドレスを前記セーブレジスタに保存し、
前記要因が前記アドレスを変化させないことであれば、前記アドレスを変更することなく、前記セーブレジスタに保存する
ことを特徴とする請求項2記載のプログラマブルコントローラのメモリアクセス制御システム。
【請求項4】
前記管理用CPUのメモリアクセス中において、
前記決定の要因が前記アドレスのインクリメントであれば、前記セーブレジスタのアドレスを次の命令のアドレスに書き換えて保存し、
前記要因が前記アドレスのデクリメントであれば、前記セーブレジスタのアドレスを前の命令のアドレスに書き換えて保存し、
前記要因が演算結果に基づくアドレスの設定であれば、前記セーブレジスタのアドレスを該演算結果に基づく値に書き換えて保存し、
前記要因が前記アドレスを変化させないことであれば、前記セーブレジスタのアドレスをそのまま保持する
ことを特徴とする請求項2または3記載のプログラマブルコントローラのメモリアクセス制御システム。
【請求項5】
アプリケーションプログラム格納用メモリと、
アプリケーションデータ格納用メモリと、
前記アプリケーションプログラム格納用メモリに格納されたアプリケーションプログラムを実行する演算用LSIと、
前記演算用LSIの実行する前記アプリケーションプログラムの演算処理以外の処理を実行する管理用CPUと、を備え、
前記アプリケーションプログラム格納用メモリおよび前記アプリケーションデータ格納用メモリには同期メモリが採用されてデータリードがパイプライン化されたプログラマブルコントローラのメモリアクセス制御方法であって、
前記アプリケーションプログラム格納用メモリおよび前記アプリケーションデータ格納用メモリのアドレスを先行出力するステップと、
前記アドレスの先行出力をセーブレジスタに維持しながらアドレス出力およびデータリード・演算を実行するステップと、
を有することを特徴とするプログラマブルコントローラのメモリアクセス制御方法。
【請求項6】
前記演算用LSIの次の演算に応じて前記セーブレジスタのアドレスの状態を決定して保存するセーブステップを有する
ことを特徴とする請求項5記載のメモリアクセス制御方法。
【請求項7】
前記セーブステップは、
前記決定の要因が前記アドレスのインクリメントであれば、次に実行する命令のアドレスを前記セーブレジスタに保存するステップと、
前記要因が前記アドレスのデクリメントであれば、前に実行した命令のアドレスを前記セーブレジスタに保存するステップと、
前記要因が演算結果に基づくアドレス設定であれば、該演算結果に基づくアドレスを前記セーブレジスタに保存するステップと、
前記要因が前記アドレスを変化させないことであれば、前記アドレスを変更することなく、前記セーブレジスタに保存するステップと、
を有することを特徴とする請求項6記載のプログラマブルコントローラのメモリアクセス制御方法。
【請求項8】
前記管理用CPUのメモリアクセス中において、
前記セーブステップは、
前記決定の要因が前記アドレスのインクリメントであれば、前記セーブレジスタに保存されたアドレスを次の命令のアドレスに書き換えて保存するステップと、
前記要因が前記アドレスのデクリメントであれば、前記セーブレジスタのアドレスを前の命令のアドレスに書き換えて保存するステップと、
前記要因が演算結果に基づくアドレスの設定であれば、前記セーブレジスタのアドレスを該演算結果に基づく値に書き換えて保存するステップと、
前記要因が前記アドレスを変化させないことであれば、前記セーブレジスタのアドレスをそのまま保持するステップと、
を有することを特徴とする請求項6または7記載のプログラマブルコントローラのメモリアクセス制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラマブルコントローラ(programmable logic controller/以下、「PLC」と省略する。)のアプリケーションプログラム格納用メモリ(以下、「PM」と省略する。)およびアプリケーションデータ格納用メモリ(以下、「DM」と省略する。)へのアクセスを制御する技術に関する。
【背景技術】
【0002】
図1に基づき一般的なPLCの演算回路を説明する。この演算回路1は、PM2,DM3,演算用LSI4,管理用CPU5を備え、演算用LSI4はラダープログラムなどのアプリケーションプログラムを実行する一方、管理用CPU5は演算処理以外の処理を実行する。
【0003】
この演算用LSI4は、図2中のプログラムカウンタ(メモリ番地を管理するレジスタ/以下、「PC」と省略する。)7をアドレスとして、PM2に格納されているアプリケーションプログラムを順次実行する。このとき演算用LSI4は、演算速度を向上させるため、複数の処理を並列に処理して実行するパイプライン方式が採用されているため、アプリケーションのプリフェチ処理やアプリケーションデータのプリリード処理を並列して順次実行している。
【0004】
演算用LSI4がPM2やDM3へアクセスする際のアドレスは、PC7やDMアドレスポインタ(以下、「DP6」と省略する。)となる。したがって、通常の演算実行中、PC6はPM2へのアドレスとなる一方、DP6はDM3のアドレスとなって演算処理が実行される。
【0005】
ただし、プログラミングツール(Programming And Debug Tool/PADT)や上位監視装置からのモニタリング処理が実行されると、矢印Q1,Q2に示すように、演算用LSI4の演算実行中に管理用CPU5からPM2やDM3へのアクセスが行われる。この場合には、PM2およびDM3へのアドレス出力は、PC7・DC6と管理用CPUアドレス8とのマルチプレクサ(MUX)出力となる。
【0006】
このマルチプレクサ(MUX)出力の場合、一般的に信号の伝播遅延が大きく、メモリアクセスの高速化の弊害を生じるおそれがある。特にパイプライン方式の場合、メモリアクセス処理が低下することで、同時に処理される他の処理の実行時間が長期化し、演算実行時間の遅延を招くおそれがある。そこで、非特許文献1のPLCのメモリアクセス方式が提案されている。
【先行技術文献】
【特許文献】
【0007】
【文献】発明協会公開技法公技番号2010-505603
【発明の概要】
【発明が解決しようとする課題】
【0008】
非特許文献1のメモリアクセス方式は、管理用CPU5からPM2,DM3へのアクセスが発生した際に演算用LSI4がアクセスしようとしていたアドレスを保持しておくセーブレジスタ、即ちPCS「PCセーブレジスタ」,DAS「DA(DMアドレスレジスタ)セーブレジスタ」を用いて高速化を図っている。
【0009】
しかしながら、非特許文献1のメモリアクセス方式は、1つの演算を実行するにあたり、図3中の矢印P1に示すように、アドレスの確定からデータ出力の遅延が大きい。したがって、アドレス出力(T1)およびデータリード・演算(T2)を行うことを前提とすれば、1つの演算実行に2クロックを要する。この点で非特許文献1のメモリアクセス方式では、メモリアクセスの遅延を解消できなおそれがある。
【0010】
本発明は、このような従来の問題を解決するためになされ、1クロックで1つの演算実行を可能とすることでメモリアクセスを高速化し、演算処理時間の短縮化を図っている。
【課題を解決するための手段】
【0011】
(1)本発明の一態様は、
アプリケーションプログラム格納用メモリと、
アプリケーションデータ格納用メモリと、
前記アプリケーションプログラム格納用メモリに格納されたアプリケーションプログラムを実行する演算用LSIと、
前記演算用LSIの実行する前記アプリケーションプログラムの演算処理以外の処理を実行する管理用CPUと、を備え、
前記アプリケーションプログラム格納用メモリおよび前記アプリケーションデータ格納用メモリには同期メモリが採用され、
前記アプリケーションプログラム格納用メモリおよび前記アプリケーションデータ格納用メモリのアドレスを先行出力し、
前記アドレスの先行出力をセーブレジスタに維持しながらアドレス出力およびデータリード・演算を1クロックで実行する
ことを特徴とするプログラマブルコントローラのメモリアクセス制御システムに関する。
【0012】
(2)本発明の他の態様は、
アプリケーションプログラム格納用メモリと、
アプリケーションデータ格納用メモリと、
前記アプリケーションプログラム格納用メモリに格納されたアプリケーションプログラムを実行する演算用LSIと、
前記演算用LSIの実行する前記アプリケーションプログラムの演算処理以外の処理を実行する管理用CPUと、を備え、
前記アプリケーションプログラム格納用メモリおよび前記アプリケーションデータ格納用メモリには同期メモリが採用されたプログラマブルコントローラのメモリアクセス制御方法であって、
前記アプリケーションプログラム格納用メモリおよび前記アプリケーションデータ格納用メモリのアドレスを先行出力するステップと、
前記アドレスの先行出力をセーブレジスタに維持しながらアドレス出力およびデータリード・演算を1クロックで実行するステップと、
を有することを特徴とする。
【発明の効果】
【0013】
本発明によれば、メモリアクセスを高速化し、演算処理時間の短縮化を図ることができる。
【図面の簡単な説明】
【0014】
図1】一般的なPLCの演算回路の構成図。
図2】同 マルチプレクサ(MUX)出力を示す概略図。
図3】非特許文献1の演算処理を示す概略図。
図4】本発明の実施形態に係るプログラマブルコントローラのメモリアクセス制御システムの演算処理を示す概略図。
図5】同 アプリケーションプログラム格納用メモリへのアクセスを示す概略図。
図6】実施例1に係るPCSのアドレス保存動作を示すフローチャート。
図7】実施例2に係るPCSの変更動作を示すフローチャート。
【発明を実施するための形態】
【0015】
以下、本発明の実施形態に係るPLCのメモリアクセス制御システムを説明する。このメモリアクセス制御システムは、メモリアクセスを高速化することで演算処理時間の短縮化を図っている。
【0016】
このメモリアクセスの高速化を実現するため、同期メモリを用いたメモリからのデータリードをパイプライン化する。これにより図3のアドレス出力(T1)およびデータリード・演算(T2)を2クロックで実行する方式を改善する。
【0017】
すなわち、前記メモリアクセス制御システムによれば、図4に示すように、動作開始時にアドレスを先行出力する(T1´)。このアドレスの先行出力を維持しながら動作することにより、演算用LSI4の1クロックでアドレス出力(T1)・データリード・演算(T2)を実行することが可能となる。
【0018】
≪基本構成≫
(1)前記メモリアクセス制御システムは、図1に示す演算回路1を備える。この演算回路1は、前述のようにPM2,DM3,演算用LSI4,管理用CPU5を備え、PM2およびDM3に同期メモリを採用する。
【0019】
この同期メモリは、入力されたアドレスを内部で保持しておき、クロックの動作によってデータ出力するメモリであり、パイプライン動作を構築するのに優れており、非同期のメモリと比較して出力遅延時間が少なく(図4中の矢印P2参照。)、高速アクセスに適している。
【0020】
図5中の20は、PM2にアクセスする前記メモリアクセス制御システムを示している。ここではPM2へのアクセスのみを示しているが、DM3へのアクセスはPM2,PC7をDM3,DP6にそれぞれ読み替えて同様に実行される。
【0021】
このときPM2へのアドレス出力は、PC7と管理用CPUアドレス8とAULOT(演算結果)12とのマルチプレクサ(MUX)となっているものの、同期メモリを用いることでデータのリードに関してもパイプライン構造とすることができる。
【0022】
これにより演算用LSI4は、従来2クロックで1つの演算を実行していたものの、前述のように1クロックで1つの演算を実行することが可能となる。なお、図5中のPA5は、プログラムメモリに対するアドレス(メモリ番地)を示し、演算用LSI4のPC(プログラムカウンタ)7と同義であるが、実際のメモリに出力されるアドレス値として区別している。
【0023】
(2)以下、演算用LSI4のアドレス(PC7)の出力について説明する。ここではアドレスの出力は、前述のように演算用LSI4の演算の実行に対して先行して行われる。この先行出力されたアドレスは、PCセーブレジスタ(以下、「PCS」と省略する。)10に保存される。
【0024】
このとき従来は、1つの演算を実行する際に直前のアドレスを出力していたため、演算用LSI4の次の動作を考慮することなく、単純に現在のアドレスをPCS10に保存(セーブ)すればよかった。
【0025】
ところが、先行して出力していたアドレスを置き換える形で管理用CPU5のメモリアクセス、即ち矢印Q1の管理用CPUアドレス8の出力が発生した場合などには演算用LSI4の演算動作に戻る際に正しくデータのリードができなくなるおそれがある。
【0026】
そこで、前記メモリアクセス制御システム20では、先行してアドレスを出力する際にPCS10の値を演算用LSI4の次の演算動作を予想して変更する機能が追加されている。この場合に演算用LSI4の次の演算動作を予測したアドレスの状態、即ちPC7の次の状態を決定する要因としては、(A)現在のPC7をインクリメントまたはデクリメントする場合、(B)演算用LSIの演算結果に基づいて異なる値のPC7を用いる場合、(C)PC7を変化させない場合の3パターンが想定される。
【0027】
≪実施例≫
以下、実施例1,2に基づき前記メモリアクセス制御システム20におけるPCS10の値の変更機能を説明する。
【0028】
(1)実施例1
まず、実施例1として、PCS10にアドレスデータを保存する動作を考察する。ここで演算用LSI4のメモリアクセス中に管理用CPU5のメモリアクセスが発生(開始)した場合、通常は演算用LSI4のメモリアクセスが完了すると同時にPC7のアドレスをPCS10に保存する。
【0029】
ただし、前記メモリアクセス制御システム20では、アドレスを先行出力するため、管理用CPU5のメモリアクセス完了後は、アドレスを演算用LSI4が次に演算動作するPC7の値に戻す必要がある。
【0030】
そこで、先行出力されたアドレスをPCS10に保存する際には、PC7の値を直接PCS10に保存するのではなく、演算用LSI4の次の演算動作を想定した変更命令11を通知し、変更命令11の内容に従ったアドレスがPCS11に保存される。以下、図6に基づき具体的な処理ステップ(S01~S06)を説明する。
【0031】
S01,S02:PCS10へのアドレス保存処理、即ちPCS保存動作は変更命令11の通知により開始される。このアドレス保存処理が開始されると、まず変更命令11の内容がインクリメントか否かが確認される(S01)。
【0032】
この確認の結果、変更命令11の内容がインクリメントであれば、一つ後に実行する命令のアドレス、即ち現在のPC7の指定するメモリ番地の一つ後のアドレス「PC+1」がPCS11に保存される(S02)。
【0033】
これにより演算用LSI4は、次に実行する命令が格納されているアドレスをPC7から読み出し、順次に実行することが可能となる。なお、S01の確認の結果、変更命令11の内容がインクリメントでなければS03に進む。
【0034】
S03:S04:つぎに変更命令11の内容がデクリメントか否かが確認される(S03)。この確認の結果、変更命令11の内容がデクリメントであれば、一つ前の命令のアドレス、即ち現在のPC7の指定するメモリ番地の一つ前のアドレス「PC-1」がPCS11に保存される(S04)。なお、S03の確認の結果、変更命令11の内容がデクリメントでなければS05に進む。
【0035】
S05~S07:さらに変更命令11の内容が演算用LSI4の演算結果に基づくPC7の設定、即ち演算結果に基づくロードであるか否かが確認される(S05)。
【0036】
この確認の結果、演算結果に基づくロードであれば、PC7に演算結果(ALUOT)に基づく値(メモリ番地)がPCS11に保存される(S06)。一方、S05の確認の結果、演算結果に基づくロードでなければ、変更命令11をPC7のアドレスをそのまま保持する命令と解釈する。この場合には、従来と同様にPC7のアドレスを変更することなく、PCS11に直接保存する(S07)。
【0037】
このように前記メモリアクセス制御システム20によれば、先行出力されたメモリアドレスについて、管理用CPUアクセス開始時にPCS10の保存動作(S02,S04,S06,S07)が実行される。
【0038】
これにより管理用CPU5のメモリアクセス完了後には、演算用LSI4の次の演算動作のためのPC7がPCS10にセットされ、メモリアクセスの遅延を最小限に抑えることができる。
【0039】
したがって、前記メモリアクセス制御システム20によれば、PCS11を従来のセーブレジスタとしてのみ用いるのではなく、次動作のためのプリセットレジスタとして使用することが可能となる。その結果、同期メモリを用いた演算用LSI4の1クロックでの演算実行のみならず、管理用CPU5からのアクセスによる演算用LSI4のメモリアクセス遅延の抑制を図ることができる。
【0040】
(2)実施例2
つぎに実施例2として、管理用CPU5のメモリアクセス中の動作を考察する。ここでは管理用CPU5のメモリアクセス発生のタイミングでは、演算用LSI4のメモリアクセスがないものの、管理用CPU5のメモリアクセス中に演算用LSI4のメモリアクセスが開始した場合などを想定する。
【0041】
このとき管理用CPU5のメモリアクセス完了後には演算用LDI4が次に演算動作するPC7の値に戻す必要が生じる。ただし、PC7からPCS10への保存は、管理用CPU5のメモリアクセス開始のタイミングで行われる。
【0042】
したがって、管理用CPU5のアクセス中は、PCS10への保存動作ではなく、PCS11の値自体の書き換えが必要となる。このとき演算用LSI4の次の演算動作を想定した変更命令11が通知され、通知された変更命令11の内容に従った変更が施されたアドレスにPCS10が書き換えて保存する(PCS変更処理)。以下、PCS変更処理の具合的な処理ステップ(S11~S17)を説明する。
【0043】
S11,S12:管理用CPU5のアクセス中に変更命令11が通知されるとPCS変更処理が開始される。このPCS変更処理が開始されると、まず変更命令11の内容がインクリメントか否かが確認される(S11)。
【0044】
この確認の結果、変更命令11の内容がインクリメントであれば、一つ後に実行する命令のアドレス、即ち現在のPC7の指定するメモリ番地の一つ後のアドレス「PC+1」にPCS11が書き換えられる(S12)。
【0045】
これにより演算用LSI4は、実施例1(S02)と同様に次に実行する命令が格納されているアドレスをPC7から読み出し、順次に実行することができる。なお、S11の確認の結果、変更命令11の内容がインクリメントでなければS13に進む。
【0046】
S13,S14:つぎに変更命令11の内容がデクリメントか否かが確認される(S13)。この確認の結果、変更命令11の内容がデクリメントであれば、一つ前の命令のアドレス、即ち現在のPC7の指定するメモリ番地の一つ前のアドレス「PC-1」にPCS11が書き換えられる。なお、S13の確認の結果、変更命令11の内容がデクリメントでなければS15に進む。
【0047】
S15~S17:さらに変更命令11の内容が演算用LSI4の演算結果に基づくPC7の設定、即ち演算結果に基づくロードであるか否かが確認される(S15)。この確認の結果、演算結果に基づくロードであれば、PC7に演算結果(ALUOT)に基づく値(メモリ番地)にPCS11が書き換えられる(S16)。
【0048】
一方、S15の確認の結果、演算結果に基づくロードでなければ、変更命令11をPC7のアドレスをそのまま保持する命令と解釈する。この場合には、PC7のアドレスを変更することなく、PCS11に保持する(S17)。
【0049】
このように前記メモリアクセス制御システム20によれば、管理用CPU5のメモリアクセス中にPCS10の変更処理(S12,S14,S16,S17)が実行される。これにより管理用CPU5のアクセス完了後に演算用LSI4の次の演算動作のためのPC7がPCS10にセットされ、この点で実施例1と同様の効果を得ることができる。
【0050】
なお、本発明は上記実施形態に限定されるものではなく、各請求項に記載された範囲内で変形して実施することができる。例えば演算用LSI4の次の演算動作を想定したPCS10へのアドレス保存処理およびPCS変更処理が実現できればよく、変更命令11を通知することなく前記両処理を実行してもよいものとする。
【符号の説明】
【0051】
1…演算回路
2…アプリケーションプログラム格納用メモリ(PM)
3…アプリケーションデータ格納用メモリ(DM)
4…演算用LSI
5…管理用CPU
6…DMアドレスポインタ(DP)
7…プログラムカウンタ(PC)
8…管理用CPUアドレス
9…プログラムメモリに対するアドレス
10…PCセーブレジスタ
11…変更命令
20…メモリアクセス制御システム
図1
図2
図3
図4
図5
図6
図7