JP2006323609A - プログラマブルコントローラ - Google Patents
プログラマブルコントローラ Download PDFInfo
- Publication number
- JP2006323609A JP2006323609A JP2005145849A JP2005145849A JP2006323609A JP 2006323609 A JP2006323609 A JP 2006323609A JP 2005145849 A JP2005145849 A JP 2005145849A JP 2005145849 A JP2005145849 A JP 2005145849A JP 2006323609 A JP2006323609 A JP 2006323609A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- index register
- program
- programmable controller
- index
- 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.)
- Pending
Links
Images
Landscapes
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
- Programmable Controllers (AREA)
Abstract
【解決手段】インデックスレジスタ命令を使用して作成されたプログラムを、機械的作業によってインデックスレジスタ命令を持たない命令に変換し、インデックスレジスタ命令を持たないプログラマブルコントローラを動作させる。
【選択図】図1
Description
従来のプログラマブルコントローラではプログラム命令の一つとしてインデックスレジスタ命令を持っている。インデックスレジスタとは「領域Aを表す識別子+領域A内での通番α」で構成された実効アドレスDを格納するレジスタであり、このインデックスレジスタ自身の加算、減算を行うことにより、領域A内でのアドレスの操作を行うことができる。インデックスレジスタ命令には以下の3つがある。
1)インデックスレジスタの宣言を行う命令(下記2)、3)の命令に先行して一度だけ使用する命令。)
領域Aを表す識別子と領域A内での通番αから実効アドレスDを決定し、インデックスレジスタとして登録する。
2)インデックスレジスタを使用した演算を行う命令(複数回使用可能)
3)インデックスレジスタの加減算を行う命令(複数回使用可能)
インデックスレジスタ自身のアドレスに加減算を行うことによりインデックスレジスタのアドレス値を加減算する。
第1に、インデックスレジスタ命令を保持しないプログラマブルコントローラにおいて、プログラムソース格納装置よりプログラムコードを逐次読込む手段と、該プログラムコードからインデックスレジスタ命令を抽出する抽出手段と、該抽出したインデックスレジスタ命令をインデックスレジスタ命令を用いない命令に変換する変換手段と、該変換後の命令を格納する変換済プログラム格納装置と、を備えるように構成する。
第2に、前記抽出手段は、対象行にインデックスレジスタ関連命令がないときには、前記変換済プログラム格納装置に対象行を格納する第1の格納手段と、対象行にインデックスレジスタ関連命令があるときには、インデックスレジスタ命令を含む対象行を抽出する手段と、を備えるように構成する。
第4に、前記変換手段は、前記第2の命令要素格納手段で格納した命令要素を対応する配列宣言命令に変換し、変換済プログラムとして前記変換済プログラム格納装置に格納する第2の格納手段と、前記第2の命令要素格納手段で格納した情報より対応する使用演算命令に変換し、変換済プログラムとして前記変換済プログラム格納装置に格納する第3の格納手段と、前記特定処理結果を対応する加減算命令に変換し、変換済プログラムとして前記変換済プログラム格納装置に格納する第4の格納手段と、を備えるように構成する。
図1は、本発明によるプログラマブルコントローラの実施例を示す構成図である。図1において、プログラムソース格納装置1に、インデックスレジスタを使用しているプログラムが格納されており、プログラム変換装置2でインデックスレジスタ命令を用いない命令に変換後、変換済プログラム格納装置6にインデックスレジスタ命令を用いないプログラムを引き渡す。プログラム変換装置2では、プログラムを逐次読み込み、命令抽出手段3でインデックスレジスタ命令に関するプログラムを抽出後、命令変換手段5を用いてインデックスレジスタ命令と同様に動作する命令に変換する。命令変換手段5においては、命令要素格納テーブル4をインデックスレジスタ命令要素の入出力バッファとして使用している。
ここで領域識別子13と領域識別子21、領域内通番14と領域内通番24、データ型16とデータ型22、オフセット値17とオフセット値25の値は、インデックスレジスタ命令11と配列を用いた命令19の間において対応関係にある。
図3は、図1に示す命令要素格納テーブル4の一例である。1つのレコード(1行)に対して、インデックスレジスタ名、領域識別子、領域内通番、データ型、オフセット値、宣言フラグを備える。
インデックスレジスタ名:インデックスレジスタ自体の名称。多くの場合は、I、J、K等が割り当てられる。
領域内通番:領域識別子内の通番を表す。領域識別子の情報と併せて使用すると、メモリの実アドレスを指す。
データ型:インデックスレジスタで参照されるアドレスのデータ型を指す。主に、ワード型とビット型がある。
オフセット値:インデックスレジスタで参照されるアドレスからの相対アドレス。多くの場合オフセット値は、0、1、2のように数値で表す。
宣言フラグ:配列宣言が行われたかの識別子。これは当テーブル固有の情報で、配列宣言を重複させないために保持する情報。ON、OFFなどの2値で表す。
図4、図5、図6、図7は、図1のプログラム変換装置2における処理を示したものであり、“インデックスレジスタ命令”を“インデックスレジスタ命令を用いない命令”に変換する処理フローの説明図である。図1、図4、図5、図6、図7及び図3を用い、処理フローの説明を以下に示す。
次に図5は、図4のステップS303である命令変換処理の処理フローであり、この処理は、図1のプログラム変換装置2内の命令変換手段5に相当する。ステップS401では、命令の種類を判別し、宣言の場合はステップS402でインデックスレジスタ使用演算処理、演算の場合はステップS403でインデックスレジスタ使用演算処理、レジスタの加減算の場合はステップS404でインデックスレジスタ加減算処理、の各処理を行う。
レジスタの加減算の場合は、ステップS404に続けて、ステップS407の配列のインデックスに対する加減算処理として、領域内通番24と加減算値で表される配列のインデックスに対する加減算26として変換後のプログラムを、図1の変換済プログラム格納装置6に追加する。
次に図6は、図5のステップS401による分岐後の各命令に対する処理で、ステップS402〜S404のフローを示す。
図6(b)は、図5のステップS403のフローであり、ステップS521では、図1の命令要素格納テーブル4から対象のインデックスレジスタ名を検索する。ステップS522では、データ型16をヒットしたレコードにコピーする。同じくステップS523では、オフセット値17をヒットしたレコードにコピーする。
図6(c)は、図5のステップS404のフローであり、ステップS531では、図1の命令要素格納テーブル4から対象のインデックスレジスタ名のあるレコードを検索する。
上記処理に従い、実際のプログラムがどの様に変換されるかの一例を以下に説明する。図8(a)〜(d)は変換前のプログラムの説明図、図8(e)〜(h)は変換後のプログラムの説明図である。
図8(a)〜(d)のプログラムが、図1のプログラムソース格納装置1に格納された後、プログラム変換装置2に通され、ステップS301により一行ずつ処理される。
次に図8(b)は、インデックスレジスタ使用演算処理であり「type I offset1+Aβ→Aβ」とは、インデックスレジスタIのアドレスを基点としてデータ型がtypeで大きさでoffset1の値の位置にあるアドレスの値と、領域識別子Aの領域内通番βの格納している値を加算して、領域識別子Aの領域内通番βに戻す命令である。ここで“→”、“+”は命令の識別子である。インデックスレジスタ使用演算処理なので、ステップSS403〜S406の処理が実行される。始めにステップS403が処理され、図6(b)の一連の処理であるステップS521〜S523の処理の結果、図1の命令要素格納テーブル4である図9(a)は図9(b)で示すレコードに更新される。次にステップS405が処理され、ステップS601〜S603の処理の結果、図1の命令要素格納テーブル4である図9(b)は図9(c)で示すレコードに更新される。またステップS602では、図9(e)を、図1の変換済プログラム格納装置6に格納する。図9(e)の「E AT %A0;」とは、領域識別子Aの領域内通番0番目を配列Eに割り当てる命令である。「E ARRAY[0・・・size] of type」とは、データ型がtypeで、配列Eをsizeの大きさで確保する命令である。なおsizeは領域内通番の最大の大きさ同じとする。ここで“ARRAY”、“AT”、“%”、“;”、“ [”、“] ”及び“VAR”と“VAR_END”は命令の識別子になる。最後にステップS406が処理され、図9(f)を、図1の変換済プログラム格納装置6に格納する。「Aβ:=E[α+offset1]+Aβ」とは、配列Eにおいて領域内通番αから相対でoffset1にある値と、領域識別子Aの領域内通番βの指すアドレスの値を加算して、加算後の値を領域識別子Aの領域内通番βの指すアドレスの値に戻す命令である。ここで“:=”、“ [”、“ ]”、“+”は命令の識別子になる。
最後に図8(d)は、インデックスレジスタの加減算命令文であり「I IADD h」とは、インデックスレジスタIのアドレス値にhを加算する命令である。ここで“IADD”はアドレス加算命令の識別子になる。インデックスレジスタの加減算命令なので、フローによりステップS404〜S407の処理が実行される。ステップS407では、図9(g)を、図1の変換済プログラム格納装置6に格納する。「α:=α+h」とは、領域内通番αにhの値を加算して、加算後の値を領域内通番αに戻す命令である。
2 プログラム変換装置
3 命令抽出手段
4 命令要素格納テーブル
5 命令変換手段
6 変換済プログラム格納装置
11 インデックスレジスタ命令
12 インデックスレジスタの宣言
13、21 領域識別子
14、24 領域内通番
15 インデックスレジスタを使用した演算
16、22 データ型
17、25 オフセット値
18 インデックスレジスタの加減算
19 配列を用いた命令
20 配列の宣言
23 配列要素に対する演算
26 配列インデックスに対する加減算
Claims (4)
- インデックスレジスタ命令を保持しないプログラマブルコントローラにおいて、
プログラムソース格納装置よりプログラムコードを逐次読込む手段と、
該プログラムコードからインデックスレジスタ命令を抽出する抽出手段と、
該抽出したインデックスレジスタ命令をインデックスレジスタ命令を用いない命令に変換する変換手段と、
該変換後の命令を格納する変換済プログラム格納装置と、
を備えることを特徴とするプログラマブルコントローラ。 - 請求項1に記載のプログラマブルコントローラにおいて、
前記抽出手段は、
対象行にインデックスレジスタ関連命令がないときには、前記変換済プログラム格納装置に対象行を格納する第1の格納手段と、
対象行にインデックスレジスタ関連命令があるときには、インデックスレジスタ命令を含む対象行を抽出する手段と、
を備えることを特徴とするプログラマブルコントローラ。 - 請求項1に記載のプログラマブルコントローラにおいて、
前記変換手段は、
インデックス命令が宣言処理のときには、命令要素を命令要素格納テーブルに格納する第1の命令要素格納手段と、
インデックス命令がインデックスレジスタ使用演算処理のときには、該第1の命令要素格納手段で格納した命令要素と演算対象のアドレス情報との位置関係を格納する第2の命令要素格納手段と、
インデックス命令がインデックスレジスタ加減算処理のときには、加減算対象のインデックスレジスタを前記第1の命令要素格納手段から特定する特定処理と、
を備えることを特徴とするプログラマブルコントローラ。 - 請求項3に記載のプログラマブルコントローラにおいて、
前記変換手段は、
前記第2の命令要素格納手段で格納した命令要素を対応する配列宣言命令に変換し、変換済プログラムとして前記変換済プログラム格納装置に格納する第2の格納手段と、
前記第2の命令要素格納手段で格納した情報より対応する使用演算命令に変換し、変換済プログラムとして前記変換済プログラム格納装置に格納する第3の格納手段と、
前記特定処理結果を対応する加減算命令に変換し、変換済プログラムとして前記変換済プログラム格納装置に格納する第4の格納手段と、
を備えることを特徴とするプログラマブルコントローラ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005145849A JP2006323609A (ja) | 2005-05-18 | 2005-05-18 | プログラマブルコントローラ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005145849A JP2006323609A (ja) | 2005-05-18 | 2005-05-18 | プログラマブルコントローラ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006323609A true JP2006323609A (ja) | 2006-11-30 |
Family
ID=37543243
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005145849A Pending JP2006323609A (ja) | 2005-05-18 | 2005-05-18 | プログラマブルコントローラ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006323609A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010198132A (ja) * | 2009-02-23 | 2010-09-09 | Mitsubishi Electric Corp | プログラマブルコントローラ |
JP2016081097A (ja) * | 2014-10-10 | 2016-05-16 | 富士電機株式会社 | プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ |
-
2005
- 2005-05-18 JP JP2005145849A patent/JP2006323609A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010198132A (ja) * | 2009-02-23 | 2010-09-09 | Mitsubishi Electric Corp | プログラマブルコントローラ |
JP2016081097A (ja) * | 2014-10-10 | 2016-05-16 | 富士電機株式会社 | プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108874438B (zh) | 补丁生成方法、装置、电子设备及计算机存储介质 | |
JP4541418B2 (ja) | プログラマブルコントローラの周辺装置、置換方法およびプログラム | |
US5819097A (en) | Industrial controller compiler with expandable instruction set | |
US7237229B2 (en) | Debugging aid parallel execution of a plurality of iterations with source lists display corresponding to each iteration | |
CN102541521B (zh) | 基于结构化查询语言的操作指令自动生成装置及方法 | |
WO2013145105A1 (ja) | シーケンスプログラムデバッグ支援装置 | |
US8464236B2 (en) | Data consistency in data processing systems | |
CN105431790B (zh) | 编程装置 | |
CN101251800A (zh) | 图形用户界面生成方法及装置 | |
CN110442371A (zh) | 一种发布代码的方法、装置、介质及计算机设备 | |
US20220237041A1 (en) | Parallel processing system performing in-memory processing | |
CN110502362A (zh) | 基于微服务架构的错误码定义方法、装置和计算机设备 | |
US7269828B2 (en) | Method for safely instrumenting large binary code | |
CN113031967B (zh) | 一种代码转换方法及装置 | |
CN107024900A (zh) | 最优编译plc命令的方法 | |
JP2006323609A (ja) | プログラマブルコントローラ | |
JP2009193181A (ja) | ソフトウェアの開発支援システム、支援方法およびこの方法のプログラム | |
JP2009048259A (ja) | プログラム変換方法及び変換用プログラム | |
US20160162287A1 (en) | Automatic generation of certificate of origin (coo) for software systems | |
US10613854B2 (en) | Systems and methods for automated renumbering, reformatting, and re-referencing of branching statements or go-to instruction line referencing within modified code using a dual-pass approach that includes operations using predicted new line numbers, error detection/correction, and alignment correction processing | |
JP4767309B2 (ja) | 情報処理装置、情報処理方法、及びコンピュータプログラム | |
JP2006309666A (ja) | プログラム開発支援装置、プログラム動作比較方法および半導体集積回路製造方法 | |
JP2008204023A (ja) | プログラマブルコントローラシステム、プログラマブルコントローラのデバッグ方法 | |
JP5141095B2 (ja) | プラントコントローラシステム | |
EP2336883A1 (en) | Programming system in multi-core, and method and program of the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080215 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20081215 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20090219 |
|
A977 | Report on retrieval |
Effective date: 20090917 Free format text: JAPANESE INTERMEDIATE CODE: A971007 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090929 |
|
A02 | Decision of refusal |
Effective date: 20100309 Free format text: JAPANESE INTERMEDIATE CODE: A02 |