JP4961928B2 - シーケンスプログラム変換装置、および、プログラマブルコントローラのプログラミング装置 - Google Patents
シーケンスプログラム変換装置、および、プログラマブルコントローラのプログラミング装置 Download PDFInfo
- Publication number
- JP4961928B2 JP4961928B2 JP2006261585A JP2006261585A JP4961928B2 JP 4961928 B2 JP4961928 B2 JP 4961928B2 JP 2006261585 A JP2006261585 A JP 2006261585A JP 2006261585 A JP2006261585 A JP 2006261585A JP 4961928 B2 JP4961928 B2 JP 4961928B2
- Authority
- JP
- Japan
- Prior art keywords
- array
- operand
- sequence program
- machine code
- instruction
- 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
Links
- 238000006243 chemical reaction Methods 0.000 claims description 47
- 238000000034 method Methods 0.000 claims description 20
- 230000008859 change Effects 0.000 claims description 18
- 238000001514 detection method Methods 0.000 claims description 10
- 230000004048 modification Effects 0.000 claims description 9
- 238000012986 modification Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 29
- 230000008569 process Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 230000001343 mnemonic effect Effects 0.000 description 8
- 238000003491 array Methods 0.000 description 4
- 238000012937 correction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Landscapes
- Stored Programmes (AREA)
- Programmable Controllers (AREA)
Description
この特許文献1では、将来の拡張を考えてあるパラメータを予約の形で宣言しても、シーケンスプログラム上で、そのパラメータが参照されていないことから、シーケンスプログラムを表示形式に変換した画面上では、そのパラメータの宣言情報がなくなり、思考作業の結果の一部が失われ、作業効率が低下する場合が考慮されている。そのような事態を回避するために、特許文献1では、シーケンスプログラムの作成時に定義・宣言した全パラメータを、そのシーケンスプログラムでの使用の有無に関係なく、そのシーケンスプログラムをマシン語形式から表示形式に変換するときに復元している。
図1は、本発明の一実施形態のプログラミング装置の概要構成を示す図である。
図1のプログラミング装置10は、プログラマブルコントローラに格納するシーケンスプログラムを作成することができるユーザインターフェイスとしてのシーケンスプログラム作成装置11、プログラマブルコントローラに格納されているシーケンスプログラムを参照・変更することができるユーザインターフェイスとしてのシーケンスプログラム参照・変更装置12、を備える。
例えば、複数台のベルトコンベアを持つ装置をプログラマブルコントローラがシーケンシャルに動作させる場合の、それぞれのベルトコンベアのカウンタ値のようなデータ長が同一である複数のデータは、配列に格納される。
図2は、図1のシーケンスプログラム作成装置の構成を示すブロック図である。
シーケンスプログラム記憶部21は、ユーザがシーケンスプログラム作成装置11を介して入力した表示形式におけるシーケンスプログラムのコードを記憶する。
出力部28は、マシンコード形式に変換されたシーケンスプログラムをプログラマブルコントローラに出力する(例えば、プログラマブルコントローラのメモリに書き込む)。
図3に示すように、シーケンスプログラム参照・変更装置12は、シーケンスプログラム取得部31、シーケンスプログラム記憶部32、定義・宣言情報開始終了位置検出部33、定義・宣言情報復元部34、配列・構造体オペランド開始終了位置検出部35、配列・構造体オペランド復元部36、変換部37、出力部38を備える。
配列・構造体オペランド開始終了位置検出部35は、シーケンスプログラム記憶部32に格納されるシーケンスプログラムの配列または構造体の要素であるオペランドに対して、対応する1行以上のコードの開始位置及び終了位置を検出する。
出力部38は、表示形式に変換されたシーケンスプログラムを表示装置(図3では不図示)上に出力する。
図4Bの例では、STR_0という名前の構造体がビット形式のメンバ1個と、ワード形式のメンバ1個を持ち、STR_1という名前の構造体がビット形式のメンバ2個と、ワード形式のメンバ2個を持つことが定義されている。
図5のマシンコードの各行は、すべて、擬似命令であることを示す文字列「PSEUDO」で始まっている。そして、配列および構造体の定義情報、宣言情報に対応する部分については、「LAB」+「定義情報」または「LAB」+「宣言情報」の形式を有している。
図7では、回路1は、接点M0、M1、M2、コイルM3が母線間に接続されて構成される。この場合、接点M0、接点M1、接点M2、コイルM3がそれぞれ1命令に相当する。また、回路2は、MOV命令と、そのMOV命令に先行する接点M4が母線間に接続されて構成される。この場合、接点M4、MOV命令がそれぞれ1命令に相当する。
図8Aでは、接点や、MOV命令のオペランドに、配列の要素が使用されている。
配列オペランドは、“デバイスアドレス情報[要素番号]”で表記される。例えば、M00100[5]は、メモリ種別Mのメモリの100番目のアドレスに先頭が格納される、それぞれのデータ長が1ビットの配列の5番目の要素を示している。また、WM00200[3]は、メモリ種別Mのメモリの200番目のアドレスに先頭が格納される、それぞれのデータ長が16ビット=1ワードの配列の3番目の要素を示している。
図8Bでは、接点や、MOV命令のオペランドに、構造体の要素が使用されている。
構造体オペランドは、例えば、“デバイスアドレス情報.データ長Rインデックス”で表記される。例えば、WM00300.R1は、メモリ種別Mのメモリの300番目に先頭が格納される構造体でRインデックスの1番目に定義された、データ長が(16ビットの)ワードのデータメンバを示している。
図10において、例えば、「WM0000 := WM0100[1]」は、「MOV WM0000 WM0100[1]」に対応する。
(定義情報)
TYPE
ARY_01: ARRAY[1..50] OF INT
STR_01: STRUCT
E1: BOOL
E2: BOOL
E3: INT;
E4: ARY_01
END_STRUCT
END_TYPE
(宣言情報)
WM0100 ARY_01
WM0300 STR_01
続いて、図10の各アセンブラコードについて説明する。
この2段目のアセンブラコードでは、PLD命令、SUB命令、LEAAX命令、AXADDP命令、LD命令が配列オペランド“WM0100[WM0001]”に対応するアセンブラコードであるので、それらの命令のうちの先頭の命令(PLD命令)の1つ前の行に、配列オペランド開始擬似命令が挿入されるとともに、それらの命令のうちの末尾の命令(LD命令)の1つ後の行に、配列オペランド終了擬似命令が挿入される。
図10の5段目のアセンブラコードでは、PLD命令において、ACC(アキュミュレータ)の内容をデータスタックにプッシュした後、オペランドが指定するアドレスからデータを読み出しACCに格納している。また、SUB命令において、オペランドが指定するアドレスからデータを読み出し、ACCから読み出したデータを減算しその結果をACCに格納している。また、LEAAX命令において、オペランドが指定するアドレスのメモリ位置アドレスをAXレジスタに格納している。また、AXADDP命令において、AXレジスタの内容と、ACCの内容を加算してその結果をAXレジスタに格納し、データスタックをポップしている。また、LD命令において、AXレジスタの内容に当該命令の第3オペランド“1”で示される相対アドレスを加えたメモリ位置アドレスからデータを読み出し、ACCに格納している。また、ST命令において、ACCにあるデータをオペランドが指定するアドレスに格納している。
図11は、本実施形態において、図2のシーケンスプログラム記憶部上で、表示形式で作成されたシーケンスプログラムのデータ構造を示す図である。
ニーモニック情報は、命令コードと、その命令が持つオペランド数と、そのオペランド数に続く、そのオペランド数だけのオペランド情報から構成される。
図12において、デバイスアドレスのID=“xatArray”は、そのオペランドが配列の要素であることを示すIDである。また、デバイスアドレスのID=“xatStruct”は、そのオペランドが構造体の要素であることを示すIDである。
図13において、上述したように、デバイスタイプの項目には、配列または構造体を示す値(“xatArray”または“xatStruct”)が指定される。そして、デバイスアドレスの値がメモリ種別を示していたときのアドレスの項目には、その配列の各要素についての情報またはその構造体の各要素(データメンバ、配列メンバ、・・・等)についての情報の先頭位置を示すポインタ情報が格納される。
ステップS103では、表示形式のシーケンスプログラムの作成が完了したかどうかが判定される。
一方、ステップS103で、表示形式のシーケンスプログラムの作成が完了したと判定された場合、ステップS104で、図2の定義・宣言情報変換部24によって、配列または構造体の定義・宣言情報がマシンコードの擬似命令(この命令は、「LAB」+「定義情報」または「LAB」+「宣言情報」の形式を有する)に変換されるとともに、その擬似命令の開始行の1つ前の行および終了行の1つ後の行にその開始・終了を示すマシンコードの擬似命令(この命令は、「FC」で始まる)が挿入される。なお、図5に変換結果の一例が示されている。
図15は、図14のステップS105の処理をより詳細に示したフローチャートである。
ステップS202でニーモニック情報がオペランド情報を持たないと判定された場合、ステップS207において、図2の他命令変換部27によって、その命令コード等がマシンコード形式に変換される。
ステップS206において、後続の命令がないと判定された場合、一連の処理、この場合、1回路分の処理が終了する。一方、ステップS206において、後続の命令があると判定された場合、ステップS201に戻り、後続の命令を取得して、その後続の命令について同様の処理を繰り返す。
一方、ステップS203において配列または構造体の要素をオペランドに持つ命令でないと判定された場合、ステップS205において、図2の他命令変換部27によって、(配列または構造体の要素をオペランドに持たない)命令がマシンコード形式に変換される。そして、制御がステップS206に移る。
図17は、図16のステップS303の処理をより詳細に示したフローチャートである。
続く、ステップS402では、配列・構造体オペランド開始終了位置検出部35によって、その取得した行が、マシンコードの擬似命令であって、「FC」+「配列または構造体の要素であるオペランドに関する情報の開始を識別する値」を含むかどうかが判定される。
図18において、プログラミング装置50は、そのプログラミング装置50を介して作成されるシーケンスプログラムの格納先のプログラマブルコントローラ65に接続されている。
この表示形式のシーケンスプログラムは、作成時や参照・変更時に、表示装置61上に表示される。
11 シーケンスプログラム作成装置
12 シーケンスプログラム参照・変更装置
21、32 シーケンスプログラム記憶部
22 配列・構造体記憶部
24 定義・宣言情報変換部
26 配列・構造体オペランド変換部
27 他命令変換部
28、38 出力部
31 シーケンスプログラム取得部
33 定義・宣言情報開始終了位置検出部
34 定義・宣言情報復元部
35 配列・構造体オペランド開始終了位置検出部
36 配列・構造体オペランド復元部
37 変換部
Claims (4)
- プログラマブルコントローラがシステムに対して指示を行う手順を定めるシーケンスプログラムを、ユーザによる作成・変更時に用いられる形式からマシンコード形式に変換する変換装置において、
前記ユーザによる作成・変更時に用いられる形式で記述されたシーケンスプログラムで使用される配列または構造体の定義・宣言情報を、前記マシンコード形式における、実行に影響しないマシンコードに変換するとともに、その開始位置および終了位置にその開始・終了を示す実行に影響しないマシンコードを付加する定義・宣言情報変換部と、
前記ユーザによる作成・変更時に用いられる形式で記述されたシーケンスプログラム中の配列または構造体の要素をオペランドとして使用する命令をマシンコードに変換するとともに、その配列または構造体の要素であるオペランドに対して、対応するマシンコードの開始位置および終了位置にその開始・終了を示す実行に影響しないマシンコードを付加する配列・構造体オペランド命令変換部、を備えることを特徴とするシーケンスプログラム変換装置。 - 前記配列または構造体の要素であるオペランドに対して、前記対応するマシンコードの開始位置および終了位置に付加された、その開始・終了を示す実行に影響しないマシンコードは、その配列または構造体の要素の復元時に使用されるパターンを識別する情報をさらに有することを特徴とする請求項1記載のシーケンスプログラム変換装置。
- プログラマブルコントローラがシステムに対して指示を行う手順を定めるシーケンスプログラムを、マシンコード形式からユーザによる作成・変更時に用いられる形式に変換する変換装置において、
前記マシンコード形式で記述されたシーケンスプログラムを前記プログラマブルコントローラから取得するシーケンスプログラム取得部と、
取得されたシーケンスプログラムの配列または構造体の定義・宣言情報に対して、その開始位置を検出する定義・宣言情報開始位置検出部と、
検出された開始位置とその開始位置に対応する終了位置の間の定義・宣言情報を、前記ユーザによる作成・変更時に用いられる形式に復元する定義・宣言情報復元部と、
取得されたシーケンスプログラム中の配列または構造体の要素であるオペランドに対応するマシンコードの開始位置を検出する配列・構造体オペランド開始位置検出部と、
検出された開始位置とその開始位置に対応する終了位置の間の配列または構造体のオペランドに対応するマシンコードを基に、そのオペランドの配列・構造体を復元する配列・構造体オペランド復元部、を備えることを特徴とするシーケンスプログラム変換装置。 - プログラマブルコントローラがシステムに対して指示を行う手順を定めるシーケンスプログラムを、ユーザによる作成・変更時に用いられる形式からマシンコード形式に変換する第1変換装置と、マシンコード形式からユーザによる作成・変更時に用いられる形式に変換する第2変換装置を備えるプログラミング装置において、
前記第1変換装置は、
前記ユーザによる作成・変更時に用いられる形式で記述されたシーケンスプログラムで使用される配列または構造体の定義・宣言情報を、前記マシンコード形式における、実行に影響しないマシンコードに変換するとともに、その開始位置および終了位置にその開始・終了を示す実行に影響しないマシンコードを付加する定義・宣言情報変換部と、
前記ユーザによる作成・変更時に用いられる形式で記述されたシーケンスプログラム中の配列または構造体の要素をオペランドとして使用する命令をマシンコードに変換するとともに、その配列または構造体の要素であるオペランドに対して、対応するマシンコードの開始位置および終了位置にその開始・終了を示す実行に影響しないマシンコードを付加する配列・構造体オペランド命令変換部、を備え、
前記第2変換装置は、
前記マシンコード形式で記述されたシーケンスプログラムを前記プログラマブルコントローラから取得するシーケンスプログラム取得部と、
取得されたシーケンスプログラムの配列または構造体の定義・宣言情報に対して、その開始位置を検出する定義・宣言情報開始位置検出部と、
検出された開始位置とその開始位置に対応する終了位置の間の定義・宣言情報を、前記ユーザによる作成・変更時に用いられる形式に復元する定義・宣言情報復元部と、
取得されたシーケンスプログラム中の配列または構造体の要素であるオペランドに対応するマシンコードの開始位置を検出する配列・構造体オペランド開始位置検出部と、
検出された開始位置とその開始位置に対応する終了位置の間の配列または構造体のオペランドに対応するマシンコードを基に、そのオペランドの配列・構造体を復元する配列・構造体オペランド復元部、を備えることを特徴とするプログラマブルコントローラのプログラミング装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006261585A JP4961928B2 (ja) | 2006-09-26 | 2006-09-26 | シーケンスプログラム変換装置、および、プログラマブルコントローラのプログラミング装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006261585A JP4961928B2 (ja) | 2006-09-26 | 2006-09-26 | シーケンスプログラム変換装置、および、プログラマブルコントローラのプログラミング装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012027536A Division JP5387705B2 (ja) | 2012-02-10 | 2012-02-10 | プログラマブルコントローラのプログラミング装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008083872A JP2008083872A (ja) | 2008-04-10 |
JP4961928B2 true JP4961928B2 (ja) | 2012-06-27 |
Family
ID=39354713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006261585A Active JP4961928B2 (ja) | 2006-09-26 | 2006-09-26 | シーケンスプログラム変換装置、および、プログラマブルコントローラのプログラミング装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4961928B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5169486B2 (ja) * | 2008-05-26 | 2013-03-27 | 富士通株式会社 | Fpgaコンフィグレーション装置及びこれを有する回路基板、電子装置、及びfpgaコンフィグレーション方法 |
JP5197431B2 (ja) * | 2009-02-23 | 2013-05-15 | 三菱電機株式会社 | プログラマブルコントローラ |
CN104395845B (zh) | 2012-06-22 | 2017-07-25 | 欧姆龙株式会社 | 控制装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69324388T2 (de) * | 1992-01-23 | 1999-09-09 | Mitsubishi Electric Corp | Speicherprogrammierbare Steuerung |
JP2003099106A (ja) * | 2001-09-21 | 2003-04-04 | Fuji Electric Co Ltd | 回路コメントデータ保存方法 |
JP2003162307A (ja) * | 2001-11-28 | 2003-06-06 | Fuji Electric Co Ltd | 言語変換支援装置、および、言語変換支援方法 |
JP2004341824A (ja) * | 2003-05-15 | 2004-12-02 | Fuji Electric Fa Components & Systems Co Ltd | プログラマブルコントローラのプログラミング装置 |
JP4876537B2 (ja) * | 2005-11-07 | 2012-02-15 | 富士電機株式会社 | プログラマブルコントローラのプログラミング装置 |
-
2006
- 2006-09-26 JP JP2006261585A patent/JP4961928B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2008083872A (ja) | 2008-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5226328B2 (ja) | コード変換装置 | |
US8438558B1 (en) | System and method of updating programs and data | |
JP5039428B2 (ja) | プログラマブルコントローラ及びplcシステム | |
JP2007293383A (ja) | プログラム開発支援装置及びプログラム開発支援装置の動作方法 | |
US5964861A (en) | Method for writing a program to control processors using any instructions selected from original instructions and defining the instructions used as a new instruction set | |
JP4961928B2 (ja) | シーケンスプログラム変換装置、および、プログラマブルコントローラのプログラミング装置 | |
CN110825386A (zh) | 代码的编译方法和装置、存储介质 | |
WO2010137139A1 (ja) | シーケンスプログラムのデバッグ装置、デバッグ方法、及び、プログラム | |
JP2011028648A (ja) | オブジェクトコード生成システム、及びオブジェクトコード生成方法 | |
JP5387705B2 (ja) | プログラマブルコントローラのプログラミング装置 | |
JP5906855B2 (ja) | テストデータ作成方法、テストデータ作成プログラム及びテストデータ作成装置 | |
JP2010102454A (ja) | 情報処理装置、情報処理プログラム | |
JP2008102831A (ja) | 情報提供装置、プログラム及び情報提供方法 | |
JP2013242604A (ja) | 実行モジュール最適化装置、実行モジュール最適化方法、およびプログラム | |
JP2009048259A (ja) | プログラム変換方法及び変換用プログラム | |
JP4737441B2 (ja) | Plcシステム | |
JP4516046B2 (ja) | プログラマブルコントローラ | |
JP4760607B2 (ja) | プログラマブルコントローラ | |
JP6175306B2 (ja) | 制御プログラム分割装置、制御プログラム分割方法及びその記録媒体 | |
JP2010020416A (ja) | データ転送方法およびデータ転送装置 | |
CN111984451A (zh) | 表格数据的纠错方法、系统、设备及存储介质 | |
JP4569284B2 (ja) | 集積回路のデバッグ方法、デバッグプログラム | |
JP2008176520A (ja) | タグ変換装置 | |
JP2005354857A (ja) | ディジタル保護リレー装置のプログラム自動作成方法 | |
JP5109808B2 (ja) | 追加実行可能情報生成装置、情報処理装置、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20080919 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20080919 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20080919 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090817 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20110422 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20111214 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111220 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120210 |
|
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: 20120228 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120312 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4961928 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150406 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |