JP5482016B2 - プログラマブルコントローラ - Google Patents

プログラマブルコントローラ Download PDF

Info

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.)
Active
Application number
JP2009190811A
Other languages
English (en)
Other versions
JP2011043942A (ja
Inventor
英則 澤原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yokogawa Electric Corp
Original Assignee
Yokogawa Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yokogawa Electric Corp filed Critical Yokogawa Electric Corp
Priority to JP2009190811A priority Critical patent/JP5482016B2/ja
Publication of JP2011043942A publication Critical patent/JP2011043942A/ja
Application granted granted Critical
Publication of JP5482016B2 publication Critical patent/JP5482016B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Description

本発明は、被制御対象機器を制御するプログラマブルコントローラに関し、定数を含むラダープログラムの実行を高速に行うことの出来るプログラマブルコントローラに関する。
プログラマブルコントローラ(PLC)は、工場等で用いられる制御装置で、外部には被制御対象機器となるバルブやモータ等の機器が接続されている。PLCの構成は、外部に接続された機器に対して入出力制御を行う入出力モジュールと、この入出力モジュールを統括する制御モジュール等から成る。
PLCの制御は、被制御対象機器の入出力接点情報や、各種データ演算等を記述したラダープログラム等を用いて行われる。ラダープログラムは、PLCに接続されたコンピュータ等を用いて作成された後、LAN(Local Area Network)、USB(Universal Serial Bus)等を介しPLCの制御モジュールへ転送され、実行形式に変換される。実行形式とは、プログラム実行の実行単位である命令語や、プログラムで使用される変数領域等の情報のことである。実行形式は、制御モジュール内のプログラム実行部によって実行され、被制御対象機器の制御や、各種データ演算を行う。
このような装置の構成を、図面を用いて説明する。図3は、従来のPLCの構成図である。コンピュータ1は、PC(Personal Computer)等で、自身の記憶部11にラダープログラムのソースコード(以下ソースコード)を格納している。PLCの制御モジュール2は、図示しない入出力モジュールを統括し、記憶部21、コンパイル部22、メモリ部23、プログラム実行部24を有し、コンピュータ1と接続されている。記憶部21は、コンピュータ1と接続されており、コンピュータ1の記憶部11から転送されるソースコードを格納する。コンパイル部22は、記憶部21と接続されており、記憶部21からソースコードを読み出して実行形式プログラム(以下実行形式)に変換し出力する。メモリ部23はコンパイル部22と接続されており、自身のプログラム領域231にコンパイル部22の出力である実行形式を格納する。プログラム領域231に格納された実行形式は命令語やラダープログラム中の変数を確保する図示しない変数領域(例えば変数「D001」〜「D002」)を含んでいる。プログラム実行部24はメモリ部23と接続され、メモリ部23のプログラム領域231に格納されている実行形式を実行する。レジスタ部241は、プログラム実行部24の内部に存在し、読み書き可能なデータ格納専用の記憶装置であるレジスタが複数で構成され、たとえば、図示しないレジスタ「R0」〜「R2」を備える。
このような装置の動作を、図面を用いて説明する。図4はコンピュータの記憶部に格納されているラダープログラムのソースコードであり、以下の2行が記述されている。
(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」のアドレスの内容を示している。
プログラム実行部は、上記6命令(a)〜(f)を以下のように解釈し、実行する。
(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」へ転送する。
特開昭60−169906号公報
しかしながら、このような装置では、データの転送やデータの演算は必ずレジスタ部241を経由する手順が必要となり、「定数をメモリ部に転送」の際には、定数を一旦レジスタ部241に格納するという命令と、この定数をレジスタ部241からメモリ23に転送する命令とが必要である。また、「定数を含むデータの演算」の際には、プログラム実行部24が定数をレジスタ部241に格納する命令と、そしてメモリ部23の変数領域に格納されているデータをレジスタ部241に格納する命令と、そのレジスタ部241を対象として演算しその結果をレジスタ部241に格納する命令と、レジスタ部241にある結果をメモリ部23に格納するという命令とが必要である。
たとえば図4の例で、「(L1)定数をメモリ部の変数に転送」する場合には(a)〜(b)の2命令、つまり2クロックサイクル、「(L2)定数値とメモリ部の変数との加算」では(c)〜(f)の4命令、つまり4クロックサイクル要していた。このために、定数や変数を含む演算が数多く出現するプログラムにおいて、処理速度が遅くなってしまうという問題点があった。
そこで、本発明の目的は、ラダープログラムにおいて、定数が使用された場合の処理を高速化するプログラマブルコントローラを実現することにある。
このような課題を達成するために、本発明のうち請求項1記載の発明は、
ラダープログラムを実行するプログラマブルコントローラにおいて、
定数を格納する第1のメモリ部と、
実行形式プログラムを格納する第2のメモリ部と、
前記ラダープログラムのソースコードの定数を前記第1のメモリ部に格納し、ソースコード中の定数を格納先アドレスに置き換えて、実行形式プログラムに変換し、前記第2のメモリ部に格納するコンパイル部と、
複数のレジスタを備え、前記第2のメモリ部の実行形式プログラムを、前記第1のメモリ部の定数を用いて実行するプログラム実行部と、
を備え
前記コンパイル部は、
定数を前記第2のメモリ部の変数に格納するソースコードを実行形式のプログラムに変換する場合、前記定数を前記レジスタに格納することなく、前記定数の格納先アドレスを用いて前記変数に格納する命令に変換することを特徴とする。
請求項2記載の発明は、請求項1記載の発明であって、
前記コンパイル部は、
定数を前記第2のメモリ部の変数と演算するソースコードを実行形式のプログラムに変換する場合、前記定数を前記レジスタに格納することなく、前記定数の格納先アドレスを用いて前記変数と演算する命令に変換することを特徴とする。


本発明によれば、コンパイル部が、ラダープログラムのソースコードの定数を第1のメモリ部へ格納し、ソースコード中の定数を、格納先のアドレスに置き換えて、実行形式に変換し、第2のメモリ部に格納するので、プログラム実行部がこの第2のメモリ部の実行形式を実行する際に、「定数をメモリ部に転送」の場合には1命令、「定数を含むデータの演算」の場合には2命令で実行することができ、従来と比較し、ラダープログラムに対応する命令語の数を少なくすることができ、その結果としてラダー実行を高速化することができるという効果がある。
本発明の一実施例を示した構成図である。 図1に示す装置の第1のメモリ部33,34の格納例を示した図である。 従来のプログラムコントローラを示した構成図である。 ラダープログラムのソースコード例を示した図である。 図3に示す装置のメモリ部23の格納例を示した図である。
以下本発明を、図面を用いて詳細に説明する。図1は本発明の一実施例を示した構成図である。ここで、図3と同一のものは同一符号を付し、説明を省略する。
PLCの制御モジュール3は、図示しない入出力モジュールを統括し、制御モジュール2の代りに設けられ、記憶部31、コンパイル部32、メモリ部33,34、プログラム実行部35を有し、コンピュータ1と接続されている。
記憶部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」を備える。
このような装置の動作を、図面を用いて説明する。コンピュータ1の記憶部11に格納されているソースコードは、既に説明した図4と同一の以下2行
(L1)「MOV 1234 D001」
(L2)「CAL D002=D001+2」
である。
記憶部31は、コンピュータ1から転送されるこのソースコードを格納する。
そして、コンパイル部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から定数を読み出して、実行する。
したがって、図4のソースコード
(L1)「MOV 1234 D001」
(L2)「CAL D002=D001+2」
に、従来では図5の通り6命令(6クロックサイクル)要していたが、本実施例では、上記(j)〜(l)の3命令(3クロックサイクル)で実行することができる。
このように、コンパイル部32が、記憶部31のソースコードに定数が含まれる場合には、その定数をメモリ部33へ格納し、その格納先のアドレスを記憶しておく。そして、コンパイル部32が、実行形式中の当該定数を、先ほど記憶した格納先のアドレスに置き換えて、実行形式に変換し、メモリ部34のプログラム領域341に格納する。プログラム実行部35は、メモリ部34の実行形式をメモリ部33の定数を用いて実行するので、
「(L1)定数をメモリ部の変数に転送」する場合には(j)の1命令、「(L2)定数値とメモリ部の変数との加算」では(k)〜(l)の2命令で実行することができる。従来では、「(L1)定数をメモリ部の変数に転送」する場合には(a)〜(b)の2命令、「(L2)定数値とメモリ部の変数との加算」では(c)〜(f)の4命令要していたことと比較すると、本発明では、ラダープログラムに対応する命令語の命令数を従来装置よりも少なくすることができ、その結果としてラダープログラムの実行を高速化することができるという効果がある。
なお、本発明では、ソースコードに定数が含まれない場合の演算についても効果があることはいうまでもない。この場合、定数の値が格納されるメモリ部34のアドレスを実行形式の命令語に含ませる。
また、メモリ部33,34を別メモリとする構成を示したが、1つのメモリとしてもよい。
1 コンピュータ
11 記憶部
3 制御モジュール
31 記憶部
32 コンパイル部
33 メモリ部
34 メモリ部
341 プログラム領域
35 プログラム実行部
351 レジスタ部

Claims (2)

  1. ラダープログラムを実行するプログラマブルコントローラにおいて、
    定数を格納する第1のメモリ部と、
    実行形式プログラムを格納する第2のメモリ部と、
    前記ラダープログラムのソースコードの定数を前記第1のメモリ部に格納し、ソースコード中の定数を格納先アドレスに置き換えて、実行形式プログラムに変換し、前記第2のメモリ部に格納するコンパイル部と、
    複数のレジスタを備え、前記第2のメモリ部の実行形式プログラムを、前記第1のメモリ部の定数を用いて実行するプログラム実行部と、
    を備え
    前記第1、第2のメモリ部は、1つのメモリであり、
    前記コンパイル部は、
    定数を前記第2のメモリ部の変数に格納するソースコードを実行形式のプログラムに変換する場合、前記定数を前記レジスタに格納することなく、前記定数の格納先アドレスを用いて前記変数に格納する命令に変換することを特徴とするプログラマブルコントローラ。
  2. 前記コンパイル部は、
    定数を前記第2のメモリ部の変数と演算するソースコードを実行形式のプログラムに変換する場合、前記定数を前記レジスタに格納することなく、前記定数の格納先アドレスを用いて前記変数と演算する命令に変換する
    ことを特徴とする請求項1記載のプログラマブルコントローラ。
JP2009190811A 2009-08-20 2009-08-20 プログラマブルコントローラ Active JP5482016B2 (ja)

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 Active JP5482016B2 (ja) 2009-08-20 2009-08-20 プログラマブルコントローラ

Country Status (1)

Country Link
JP (1) JP5482016B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4366575B2 (ja) * 2003-11-05 2009-11-18 オムロン株式会社 ツール
JP4479558B2 (ja) * 2005-03-28 2010-06-09 横河電機株式会社 プログラマブルコントローラ及びそのプログラミングツール

Also Published As

Publication number Publication date
JP2011043942A (ja) 2011-03-03

Similar Documents

Publication Publication Date Title
CN102150139A (zh) 数据处理装置及半导体集成电路装置
WO2019230321A1 (ja) サポート装置およびサポートプログラム
JP5482016B2 (ja) プログラマブルコントローラ
JP6135247B2 (ja) 情報処理装置および情報処理プログラム
JP4528284B2 (ja) プログラマブルコントローラ
JP5360506B2 (ja) マルチコアにおけるプログラミングシステム、その方法及びそのプログラム
JP4516046B2 (ja) プログラマブルコントローラ
JP5157129B2 (ja) 情報処理装置およびその回路設計方法
JP6385761B2 (ja) バスブリッジ及びバスブリッジ群
JP3763516B2 (ja) 変換プログラム、コンパイラ、コンピュータ装置およびプログラム変換方法
JP7225904B2 (ja) ベクトル演算処理装置、ベクトル演算処理装置による配列変数初期化方法、及び、ベクトル演算処理装置による配列変数初期化プログラム
JP2008204341A (ja) インタフェース合成装置
US7349748B2 (en) Development system for process control systems as well as associated method and computer program product
JP2008204023A (ja) プログラマブルコントローラシステム、プログラマブルコントローラのデバッグ方法
JP2006338070A (ja) I/oプロセッサー
AU2016102107A4 (en) Robot control system
JP4862100B1 (ja) 中央演算処理装置及びマイクロコンピュータ
JP6295914B2 (ja) プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ
JP5726106B2 (ja) 組み込みシステムの制御装置
US20230385040A1 (en) Splitting vector processing loops with an unknown trip count
JP2006276955A (ja) プログラマブルコントローラ及びそのプログラミングツール
JP2012014436A (ja) ダイレクトメモリアクセス制御装置及び方法
JP6631063B2 (ja) 電子装置
JP2009251782A (ja) プログラマブルコントローラの高速化方法等
Rzońca et al. Interfacing inputs and outputs with IEC 61131-3 control software

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

Effective date: 20130116

Free format text: JAPANESE INTERMEDIATE CODE: A971007

A131 Notification of reasons for refusal

Effective date: 20130117

Free format text: JAPANESE INTERMEDIATE CODE: A131

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130312

A131 Notification of reasons for refusal

Effective date: 20130805

Free format text: JAPANESE INTERMEDIATE CODE: A131

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Effective date: 20140121

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Effective date: 20140203

Free format text: JAPANESE INTERMEDIATE CODE: A61

R150 Certificate of patent (=grant) or registration of utility model

Country of ref document: JP

Ref document number: 5482016

Free format text: JAPANESE INTERMEDIATE CODE: R150