JP5482016B2 - プログラマブルコントローラ - Google Patents
プログラマブルコントローラ Download PDFInfo
- Publication number
- JP5482016B2 JP5482016B2 JP2009190811A JP2009190811A JP5482016B2 JP 5482016 B2 JP5482016 B2 JP 5482016B2 JP 2009190811 A JP2009190811 A JP 2009190811A JP 2009190811 A JP2009190811 A JP 2009190811A JP 5482016 B2 JP5482016 B2 JP 5482016B2
- Authority
- JP
- Japan
- Prior art keywords
- unit
- constant
- memory unit
- program
- source code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Programmable Controllers (AREA)
Description
(L1)「MOV 1234 D001」
(L2)「CAL D002=D001+2」
各行の意味は、(L1)は、定数「1234」を変数「D001」へ格納せよの意、(L2)は、変数「D001」と定数2を加算した結果を変数「D002」に格納せよの意、である。
このソースコードが記憶部21へ転送される。
記憶部21へ転送されたソースコードは、コンパイル部22により、実行形式に変換され出力される。実行形式に含まれる命令語は、プログラム実行部24が1クロックサイクルで処理することが出来る実行単位である。メモリ部23には、この出力に基づき、図5のようにプログラム領域231に命令語が格納され、また図示しない変数領域(変数「D001」〜変数「D002」)が確保される。ここで、ソースコード(L1)に対応する命令語は、以下の2命令
(a)「MOV R0,#1234」
(b)「MOV (@D001),R0」
となる。(#は定数であることを示す。)
ソースコード(L2)に対応する命令語は、以下の4命令
(c)「LD R1,(@D001)」
(d)「MOV R2,#2」と、
(e)「ADD R0,R1,R2」
(f)「ST (@D002),R0」
となる。(「@」は後に続く変数のアドレスを示す。たとえば「@D001」は変数「D001のアドレス」を示す。また、「()」は、囲まれるアドレスの内容を示す。例えば、「(@D001)」は変数「D001」のアドレスの内容を示している。
(a)定数1234をレジスタ部241のレジスタ「R0」へ格納する。
(b)レジスタ部241のレジスタ「R0」の値をメモリ部23の変数「D001」へ転送する。
(c)メモリ部23の変数「D001」の値を読み込んでレジスタ部241のレジスタ「R1」に格納する。
(d)定数「2」をレジスタ部241のレジスタ「R2」に格納する。
(e)レジスタ部241のレジスタ「R1」の値とレジスタ部241のレジスタ「R2」の値を加算してレジスタ部241のレジスタ「R0」へ格納する。
(f)レジスタ部241のレジスタ「R0」の値をメモリ部23の「D002」へ転送する。
たとえば図4の例で、「(L1)定数をメモリ部の変数に転送」する場合には(a)〜(b)の2命令、つまり2クロックサイクル、「(L2)定数値とメモリ部の変数との加算」では(c)〜(f)の4命令、つまり4クロックサイクル要していた。このために、定数や変数を含む演算が数多く出現するプログラムにおいて、処理速度が遅くなってしまうという問題点があった。
ラダープログラムを実行するプログラマブルコントローラにおいて、
定数を格納する第1のメモリ部と、
実行形式プログラムを格納する第2のメモリ部と、
前記ラダープログラムのソースコードの定数を前記第1のメモリ部に格納し、ソースコード中の定数を格納先アドレスに置き換えて、実行形式プログラムに変換し、前記第2のメモリ部に格納するコンパイル部と、
複数のレジスタを備え、前記第2のメモリ部の実行形式プログラムを、前記第1のメモリ部の定数を用いて実行するプログラム実行部と、
を備え、
前記コンパイル部は、
定数を前記第2のメモリ部の変数に格納するソースコードを実行形式のプログラムに変換する場合、前記定数を前記レジスタに格納することなく、前記定数の格納先アドレスを用いて前記変数に格納する命令に変換することを特徴とする。
請求項2記載の発明は、請求項1記載の発明であって、
前記コンパイル部は、
定数を前記第2のメモリ部の変数と演算するソースコードを実行形式のプログラムに変換する場合、前記定数を前記レジスタに格納することなく、前記定数の格納先アドレスを用いて前記変数と演算する命令に変換することを特徴とする。
記憶部31は、コンピュータ1と接続されており、コンピュータ1の記憶部11から転送されるソースコードを格納する。コンパイル部32は、記憶部31と接続されており、記憶部31からラダープログラムを読み出して、コンパイルを行い、ソースコードに含まれる定数と実行形式を出力する。実行形式は命令語と、ラダープログラム中の変数を確保する図示しない変数領域、例えば変数「D001」〜「D002」を含む。メモリ部33はコンパイル部と接続され、コンパイル部32の出力である定数を格納する。メモリ部33は、コンパイル部32と接続され、コンパイル部32の出力である定数を格納する。メモリ部34は、コンパイル部32と接続され、コンパイル部32の出力である実行形式を格納するプログラム領域341を有する。プログラム実行部35は、メモリ部34の実行形式をメモリ部33の定数を用いて実行する。レジスタ部351は、プログラム実行部35の内部に存在し、読み書き可能なデータ格納専用の記憶装置であるレジスタが複数で構成され、例えば図示しないレジスタ「R0」〜「R2」を備える。
(L1)「MOV 1234 D001」
(L2)「CAL D002=D001+2」
である。
そして、コンパイル部32は、記憶部31のソースコードに定数が含まれる場合には、その定数をメモリ部33へ格納し、その格納先のアドレスを記憶しておく。そして、実行形式中の当該定数を、先ほど記憶した格納先のアドレスに置き換えて、プログラム実行部35が最少のクロックサイクルで実行を行う実行形式に変換し、メモリ部34のプログラム領域341に格納する。
すなわち、具体的な例は以下の通りである。
まず、記憶部31のソースコード(L1)に含まれる定数「1234」と、(L2)に含まれる定数「2」を、メモリ部33のそれぞれのアドレス「0x300」とアドレス「0x304」へ格納しておく。
そして、
ラダープログラム(L1)に対応する命令語は、以下の1命令
(j)「MOV (@D001),(0x300)」
と、
ラダープログラム(L2)に対応する命令語は、以下の2命令
(k)「ADD R0,(@D001),(0x304)」
(l)「ST (@D002),R0」
とを、メモリ部34のプログラム領域341に格納する。
この3命令(j)〜(l)は、以下の意味である。
(j)メモリ部33のアドレス「0x300」の内容である定数「1234」をメモリ部34の変数「D001」へ格納する。
(k)プログラム領域341の変数「D001」とメモリ部33のアドレス「0x304」の内容を加算し、その結果をレジスタ「R0」へ格納する。
(l)レジスタR0の値をメモリ部34の変数「D002」へ格納する。
プログラム実行部35は、メモリ部34のプログラム領域341の命令語のアドレスにより、メモリ部33から定数を読み出して、実行する。
(L1)「MOV 1234 D001」
(L2)「CAL D002=D001+2」
に、従来では図5の通り6命令(6クロックサイクル)要していたが、本実施例では、上記(j)〜(l)の3命令(3クロックサイクル)で実行することができる。
「(L1)定数をメモリ部の変数に転送」する場合には(j)の1命令、「(L2)定数値とメモリ部の変数との加算」では(k)〜(l)の2命令で実行することができる。従来では、「(L1)定数をメモリ部の変数に転送」する場合には(a)〜(b)の2命令、「(L2)定数値とメモリ部の変数との加算」では(c)〜(f)の4命令要していたことと比較すると、本発明では、ラダープログラムに対応する命令語の命令数を従来装置よりも少なくすることができ、その結果としてラダープログラムの実行を高速化することができるという効果がある。
また、メモリ部33,34を別メモリとする構成を示したが、1つのメモリとしてもよい。
11 記憶部
3 制御モジュール
31 記憶部
32 コンパイル部
33 メモリ部
34 メモリ部
341 プログラム領域
35 プログラム実行部
351 レジスタ部
Claims (2)
- ラダープログラムを実行するプログラマブルコントローラにおいて、
定数を格納する第1のメモリ部と、
実行形式プログラムを格納する第2のメモリ部と、
前記ラダープログラムのソースコードの定数を前記第1のメモリ部に格納し、ソースコード中の定数を格納先アドレスに置き換えて、実行形式プログラムに変換し、前記第2のメモリ部に格納するコンパイル部と、
複数のレジスタを備え、前記第2のメモリ部の実行形式プログラムを、前記第1のメモリ部の定数を用いて実行するプログラム実行部と、
を備え、
前記第1、第2のメモリ部は、1つのメモリであり、
前記コンパイル部は、
定数を前記第2のメモリ部の変数に格納するソースコードを実行形式のプログラムに変換する場合、前記定数を前記レジスタに格納することなく、前記定数の格納先アドレスを用いて前記変数に格納する命令に変換することを特徴とするプログラマブルコントローラ。 - 前記コンパイル部は、
定数を前記第2のメモリ部の変数と演算するソースコードを実行形式のプログラムに変換する場合、前記定数を前記レジスタに格納することなく、前記定数の格納先アドレスを用いて前記変数と演算する命令に変換する
ことを特徴とする請求項1記載のプログラマブルコントローラ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009190811A JP5482016B2 (ja) | 2009-08-20 | 2009-08-20 | プログラマブルコントローラ |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009190811A JP5482016B2 (ja) | 2009-08-20 | 2009-08-20 | プログラマブルコントローラ |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2011043942A JP2011043942A (ja) | 2011-03-03 |
| JP5482016B2 true JP5482016B2 (ja) | 2014-04-23 |
Family
ID=43831338
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2009190811A Expired - Fee Related JP5482016B2 (ja) | 2009-08-20 | 2009-08-20 | プログラマブルコントローラ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP5482016B2 (ja) |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4366575B2 (ja) * | 2003-11-05 | 2009-11-18 | オムロン株式会社 | ツール |
| JP4479558B2 (ja) * | 2005-03-28 | 2010-06-09 | 横河電機株式会社 | プログラマブルコントローラ及びそのプログラミングツール |
-
2009
- 2009-08-20 JP JP2009190811A patent/JP5482016B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2011043942A (ja) | 2011-03-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN103814333A (zh) | 用于对可编程控制装置编程和配置的方法和设备 | |
| WO2013114926A1 (ja) | サポート装置、サポートプログラムを記録した記録媒体、および実行可能プログラムを生成する方法 | |
| JP2009152790A (ja) | 動的再構成支援プログラム、動的再構成支援方法、動的再構成回路、動的再構成支援装置および動的再構成システム | |
| JP5482016B2 (ja) | プログラマブルコントローラ | |
| CN111954854B (zh) | 支持装置以及计算机可读取存储介质 | |
| JP6135247B2 (ja) | 情報処理装置および情報処理プログラム | |
| JP5360506B2 (ja) | マルチコアにおけるプログラミングシステム、その方法及びそのプログラム | |
| JP6602684B2 (ja) | 制御装置および制御方法 | |
| JP6385761B2 (ja) | バスブリッジ及びバスブリッジ群 | |
| US12182552B2 (en) | Splitting vector processing loops with an unknown trip count | |
| JP3763516B2 (ja) | 変換プログラム、コンパイラ、コンピュータ装置およびプログラム変換方法 | |
| JP7225904B2 (ja) | ベクトル演算処理装置、ベクトル演算処理装置による配列変数初期化方法、及び、ベクトル演算処理装置による配列変数初期化プログラム | |
| JP4516046B2 (ja) | プログラマブルコントローラ | |
| JP2008204341A (ja) | インタフェース合成装置 | |
| JP5157129B2 (ja) | 情報処理装置およびその回路設計方法 | |
| Kawasumi et al. | Parallelizing Factory Automation Ladder Programs by OSCAR Automatic Parallelizing Compiler | |
| JP4862100B1 (ja) | 中央演算処理装置及びマイクロコンピュータ | |
| JP6295914B2 (ja) | プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ | |
| AU2016102107A4 (en) | Robot control system | |
| US7349748B2 (en) | Development system for process control systems as well as associated method and computer program product | |
| JP2009251782A (ja) | プログラマブルコントローラの高速化方法等 | |
| JPH04145536A (ja) | プログラム変換処理システムにおけるアドレス再配置処理方式 | |
| Rzońca et al. | Interfacing inputs and outputs with IEC 61131-3 control software | |
| JP5606639B2 (ja) | 位置決め装置、及びplcシステム | |
| WO2014110749A1 (en) | Robot control system and method thereof |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120120 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130116 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130117 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130312 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130805 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20140121 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140203 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5482016 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |