JP4961928B2 - シーケンスプログラム変換装置、および、プログラマブルコントローラのプログラミング装置 - Google Patents

シーケンスプログラム変換装置、および、プログラマブルコントローラのプログラミング装置 Download PDF

Info

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
Application number
JP2006261585A
Other languages
English (en)
Other versions
JP2008083872A (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.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co Ltd
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 Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP2006261585A priority Critical patent/JP4961928B2/ja
Publication of JP2008083872A publication Critical patent/JP2008083872A/ja
Application granted granted Critical
Publication of JP4961928B2 publication Critical patent/JP4961928B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)
  • Programmable Controllers (AREA)

Description

本発明は、シーケンスプログラムをマシンコード形式に変換するとともに、作成したマシンコードを、シーケンスプログラムに逆変換する技術に関する。
プログラマブルコントローラは、例えば、シーケンシャルに動作する機械システムに対し、その手順を指示するコントローラである。指示内容は、プログラマブルコントローラにマシンコード形式で格納されるシーケンスプログラムに記述されている。
従来、プログラマブルコントローラに書き込むシーケンスプログラムを作成する場合に、そのシーケンスプログラム中の配列および構造体のオペランドを実アドレスで表現していたため、配列および構造体の定義・宣言情報は、プログラマブルコントローラには格納していなかった。
このような場合に、バージョンアップ等で、そのシーケンスプログラムに修正を加えるために、そのシーケンスプログラムをマシンコード形式からユーザによる作成・変更時に用いられる形式に(逆)変換した場合、その配列および構造体の定義・宣言情報が失われてしまっていた。すなわち、(逆)変換が不十分にしかできなかった。
その結果、プログラマブルコントローラに格納されているシーケンスプログラムに対応する、ユーザによる作成・変更時に用いられる形式のコードを捜してきて、そのコードに変更を加えた方が、一層、容易に修正が行える場合が一般的であった。
しかし、対応するユーザによる作成・変更時に用いられる形式のコードが常に見つかるとも限らず、プログラマブルコントローラからマシンコード形式のシーケンスプログラムを読み込み、それを直に修正してメンテナンスを行いたいというニーズも多い。
なお、プログラマブルコントローラに対するプログラミング技術としては、この他に特許文献1に示される技術がある。
この特許文献1では、将来の拡張を考えてあるパラメータを予約の形で宣言しても、シーケンスプログラム上で、そのパラメータが参照されていないことから、シーケンスプログラムを表示形式に変換した画面上では、そのパラメータの宣言情報がなくなり、思考作業の結果の一部が失われ、作業効率が低下する場合が考慮されている。そのような事態を回避するために、特許文献1では、シーケンスプログラムの作成時に定義・宣言した全パラメータを、そのシーケンスプログラムでの使用の有無に関係なく、そのシーケンスプログラムをマシン語形式から表示形式に変換するときに復元している。
特開2004−341824号公報 「プログラマブルコントローラのプログラミング装置」
本発明の課題は、シーケンスプログラムに配列または構造体の定義・宣言情報が含まれているシーケンスプログラムをマシンコード形式からユーザによる作成・変更時に用いられる形式に変換する場合に、その配列または構造体の定義・宣言情報を復元することを可能としたシーケンスプログラム変換装置、および、プログラマブルコントローラのプログラミング装置を提供することである。
本発明の第1態様のシーケンスプログラム変換装置は、プログラマブルコントローラがシステムに対して指示を行う手順を定めるシーケンスプログラムを、ユーザによる作成・変更時に用いられる形式からマシンコード形式に変換する変換装置において、前記ユーザによる作成・変更時に用いられる形式で記述されたシーケンスプログラムで使用される配列または構造体の定義・宣言情報を、前記マシンコード形式における、実行に影響しないマシンコードに変換するとともに、その開始位置および終了位置にその開始・終了を示す実行に影響しないマシンコードを付加する定義・宣言情報変換部と、前記ユーザによる作成・変更時に用いられる形式で記述されたシーケンスプログラム中の配列または構造体の要素をオペランドとして使用する命令をマシンコードに変換するとともに、その配列または構造体の要素であるオペランドに対して、対応するマシンコードの開始位置および終了位置にその開始・終了を示す実行に影響しないマシンコードを付加する配列・構造体オペランド命令変換部、を備えることを特徴とするシーケンスプログラム変換装置である。
ここで、定義・宣言情報変換部によって、シーケンスプログラムで使用される配列または構造体の定義・宣言情報が、マシンコード形式における、実行に影響しないマシンコードに変換されるとともに、配列・構造体オペランド命令変換部によって、配列または構造体の要素であるオペランドに対して、マシンコード形式の対応するマシンコードの開始位置および終了位置にその開始・終了を示す実行に影響しないマシンコードが付加される。よって、例えば、マシンコード形式のシーケンスプログラムをプログラマブルコントローラから読み出して、そのプログラムに修正を加えるような場合でも、配列・構造体オペランド命令変換部によってコードが付加された開始位置と終了位置の間のマシンコードを用いて、配列または構造体の要素を復元するための情報が取得されるとともに、その復元するための情報を用いて、定義・宣言情報変換部によって実行に影響しないマシンコードに変換された配列または構造体の定義・宣言情報(を復元した情報)が検索されることで、その配列または構造体の要素を特定し復元することができる。
本発明の第2態様のシーケンスプログラム変換装置は、プログラマブルコントローラがシステムに対して指示を行う手順を定めるシーケンスプログラムを、マシンコード形式からユーザによる作成・変更時に用いられる形式に変換する変換装置において、前記マシンコード形式で記述されたシーケンスプログラムを前記プログラマブルコントローラから取得するシーケンスプログラム取得部と、取得されたシーケンスプログラムの配列または構造体の定義・宣言情報に対して、その開始位置を検出する定義・宣言情報開始位置検出部と、検出された開始位置とその開始位置に対応する終了位置の間の定義・宣言情報を、前記ユーザによる作成・変更時に用いられる形式に復元する定義・宣言情報復元部と、取得されたシーケンスプログラム中の配列または構造体の要素であるオペランドに対応するマシンコードの開始位置を検出する配列・構造体オペランド開始位置検出部と、検出された開始位置とその開始位置に対応する終了位置の間の配列または構造体のオペランドに対応するマシンコードを基に、そのオペランドの配列・構造体を復元する配列・構造体オペランド復元部、を備えることを特徴とするシーケンスプログラム変換装置である。
本発明の第3態様のプログラマブルコントローラのプログラミング装置は、プログラマブルコントローラがシステムに対して指示を行う手順を定めるシーケンスプログラムを、ユーザによる作成・変更時に用いられる形式からマシンコード形式に変換する第1変換装置と、マシンコード形式からユーザによる作成・変更時に用いられる形式に変換する第2変換装置を備えるプログラミング装置において、前記第1変換装置は、前記ユーザによる作成・変更時に用いられる形式で記述されたシーケンスプログラムで使用される配列または構造体の定義・宣言情報を、前記マシンコード形式における、実行に影響しないマシンコードに変換するとともに、その開始位置および終了位置にその開始・終了を示す実行に影響しないマシンコードを付加する定義・宣言情報変換部と、前記ユーザによる作成・変更時に用いられる形式で記述されたシーケンスプログラム中の配列または構造体の要素をオペランドとして使用する命令をマシンコードに変換するとともに、その配列または構造体の要素であるオペランドに対して、対応するマシンコードの開始位置および終了位置にその開始・終了を示す実行に影響しないマシンコードを付加する配列・構造体オペランド命令変換部、を備え、前記第2変換装置は、前記マシンコード形式で記述されたシーケンスプログラムを前記プログラマブルコントローラから取得するシーケンスプログラム取得部と、取得されたシーケンスプログラムの配列または構造体の定義・宣言情報に対して、その開始位置を検出する定義・宣言情報開始位置検出部と、検出された開始位置とその開始位置に対応する終了位置の間の定義・宣言情報を、前記ユーザによる作成・変更時に用いられる形式に復元する定義・宣言情報復元部と、取得されたシーケンスプログラム中の配列または構造体の要素であるオペランドに対応するマシンコードの開始位置を検出する配列・構造体オペランド開始位置検出部と、検出された開始位置とその開始位置に対応する終了位置の間の配列または構造体のオペランドに対応するマシンコードを基に、そのオペランドの配列・構造体を復元する配列・構造体オペランド復元部、を備えることを特徴とするプログラマブルコントローラのプログラミング装置である。
本発明によれば、シーケンスプログラムに配列または構造体の定義・宣言情報が含まれているシーケンスプログラムをマシンコード形式からユーザによる作成・変更時に用いられる形式に変換する場合に、その配列または構造体の定義・宣言情報を復元することができるので、シーケンスプログラムの修正の作業効率を向上させることができる。
以下、本発明の実施の形態を、図面を参照しながら詳細に説明する。
図1は、本発明の一実施形態のプログラミング装置の概要構成を示す図である。
図1のプログラミング装置10は、プログラマブルコントローラに格納するシーケンスプログラムを作成することができるユーザインターフェイスとしてのシーケンスプログラム作成装置11、プログラマブルコントローラに格納されているシーケンスプログラムを参照・変更することができるユーザインターフェイスとしてのシーケンスプログラム参照・変更装置12、を備える。
シーケンスプログラム作成装置11は、シーケンスプログラムをユーザによる作成・変更時に使用される表示形式(例えば、ラダー図)から、プログラマブルコントローラへの格納時に使用されるマシンコード形式に変換する機能を備える。シーケンスプログラム参照・変更装置12は、シーケンスプログラムをマシンコード形式から表示形式に逆変換する機能を備える。
なお、より正確には、表示形式のシーケンスプログラムは、まず、アセンブラコード形式に変換されて、そのアセンブラコード形式からマシンコード形式に変換されるというべきだが、本実施形態では、アセンブラコード形式とマシンコード形式を区別せず、単に、マシンコード形式と呼んでいる。
また、本実施形態では、表示形式のシーケンスプログラムにおいて、配列や構造体が命令のオペランドとして使用される場合を想定している。
例えば、複数台のベルトコンベアを持つ装置をプログラマブルコントローラがシーケンシャルに動作させる場合の、それぞれのベルトコンベアのカウンタ値のようなデータ長が同一である複数のデータは、配列に格納される。
また、例えば、1台のベルトコンベアの属性は、運転状態フラグ(データ形=ビット)、カウンタ値(データ形=ダブルワード(D))、異常フラグ(データ形=ビット)、・・・等のように表すことができるが、このようなデータ構造は、構造体に対応付けることができる。
オペランドに配列や構造体の要素を用いるようにすることで、コードの記述が簡略化し、メンテナンス(バージョンアップ時の行う作業等)が容易に行えるという利点がある。
図2は、図1のシーケンスプログラム作成装置の構成を示すブロック図である。
図2に示すように、シーケンスプログラム作成装置11は、シーケンスプログラム記憶部21、配列・構造体記憶部22、定義・宣言情報変換部24、配列・構造体オペランド命令変換部26、他命令変換部27、出力部28を備える。
配列・構造体記憶部22は、ユーザがシーケンスプログラム作成装置11を介して入力した表示形式における配列または構造体の定義情報および宣言情報を記憶する。
シーケンスプログラム記憶部21は、ユーザがシーケンスプログラム作成装置11を介して入力した表示形式におけるシーケンスプログラムのコードを記憶する。
定義・宣言情報変換部24は、ユーザに使用されるシーケンスプログラムの配列・構造体の定義・宣言情報を、プログラマブルコントローラへの格納時に使用されるマシンコード形式における、擬似命令(実行に影響しないマシンコード)に変換するとともに、その開始位置および終了位置にその開始・終了を示す擬似命令を挿入する。なお、擬似命令とは、実行に影響しないマシンコードのことであり、例えば、図面中では、「PSEUDO」から始まる行がその擬似命令に相当する。
配列・構造体オペランド命令変換部26は、表示形式で記述されたシーケンスプログラム中の配列または構造体の要素をオペランドとして使用する命令を1行以上のマシンコードに変換するとともに、その配列または構造体の要素であるオペランドに対して、マシンコード形式の対応する1行以上のマシンコードの開始位置および終了位置にその開始・終了を示す擬似命令を挿入する。
他命令変換部27は、表示形式で記述されたシーケンスプログラム中の配列または構造体の要素をオペランドとして使用しない命令を1行以上のマシンコードに変換する。
出力部28は、マシンコード形式に変換されたシーケンスプログラムをプログラマブルコントローラに出力する(例えば、プログラマブルコントローラのメモリに書き込む)。
図3は、図1のシーケンスプログラム参照・変更装置の構成を示すブロック図である。
図3に示すように、シーケンスプログラム参照・変更装置12は、シーケンスプログラム取得部31、シーケンスプログラム記憶部32、定義・宣言情報開始終了位置検出部33、定義・宣言情報復元部34、配列・構造体オペランド開始終了位置検出部35、配列・構造体オペランド復元部36、変換部37、出力部38を備える。
シーケンスプログラム取得部31は、マシンコード形式で記述されたシーケンスプログラムをプログラマブルコントローラから取得して、シーケンスプログラム記憶部32に書き込む。
定義・宣言情報開始終了位置検出部33は、シーケンスプログラム記憶部32に格納されるシーケンスプログラムの配列・構造体の定義・宣言情報に対して、その開始位置及び終了位置を検出する。
定義・宣言情報復元部34は、検出された開始位置とその開始位置に対応する終了位置の間の定義・宣言情報を表示形式に復元する。
配列・構造体オペランド開始終了位置検出部35は、シーケンスプログラム記憶部32に格納されるシーケンスプログラムの配列または構造体の要素であるオペランドに対して、対応する1行以上のコードの開始位置及び終了位置を検出する。
配列・構造体オペランド復元部36は、その開始位置と終了位置の間の配列または構造体のオペランドに対応する1行以上のコードを基に、そのオペランドの配列・構造体を復元する。
変換部37は、シーケンスプログラム記憶部32にマシンコード形式で格納されるソースを変換して(表示形式の)シーケンスプログラムにする。
出力部38は、表示形式に変換されたシーケンスプログラムを表示装置(図3では不図示)上に出力する。
図4Aは、図1のシーケンスプログラム作成装置を介してユーザが定義した配列の定義情報の一例、図4Bは、図1のシーケンスプログラム作成装置を介してユーザが定義した構造体の定義情報の一例、図4Cは、図1のシーケンスプログラム作成装置を介してユーザが宣言した、図4Aおよび図4Bの配列・構造体の各定義情報に対応する配列・構造体の宣言情報を示す図である。
図4Aの例では、ARY_0という名前の配列がビット形式のデータを16個持ち、ARY_1という名前の配列がワード形式のデータを5個持つことが定義されている。
図4Bの例では、STR_0という名前の構造体がビット形式のメンバ1個と、ワード形式のメンバ1個を持ち、STR_1という名前の構造体がビット形式のメンバ2個と、ワード形式のメンバ2個を持つことが定義されている。
図4Cでは、図4Aの配列ARY_0、配列ARY_1の先頭アドレスがそれぞれ「M00100」、「WM00200」であること、図4Bの構造体STR_0の先頭アドレスが「WM00300」であることが示されている。
メモリには、電源が落ちた場合でも内容が保持される不揮発性メモリ(種別「M」で表記)と、電源が落ちた場合には内容が保持されない揮発性メモリ(種別「L」で表記)と、システムプログラムが保持されるメモリであることを示す種別「SM」、等の種別がある。
例えば、図4Cにおいて、「WM00200」は、データ長が(16ビットの)ワード(「W」)であり、電源が落ちても内容が保持される種別「M」のメモリの200番目を示している。なお、「M00100」のようにデータ長に対する指定がない場合、データ長は1ビットであると解釈される。
図5は、プログラミング装置の内部メモリにマシンコード形式で格納される配列および構造体の定義情報、宣言情報の一例を示す図である。
図5のマシンコードの各行は、すべて、擬似命令であることを示す文字列「PSEUDO」で始まっている。そして、配列および構造体の定義情報、宣言情報に対応する部分については、「LAB」+「定義情報」または「LAB」+「宣言情報」の形式を有している。
図5に示すように、表示形式からマシンコードの擬似命令に配列の定義情報を変換すると、上記「定義情報」部分には、配列名(ARY_)以降に示される番号である配列番号、その配列の要素数、要素のデータタイプを示す要素情報が変換結果として出力される。変換結果の先頭行の1つ前の行には、「FC」+「配列の定義情報の開始を識別する値(図では「9」)」の形式を有する擬似命令が挿入され、変換結果の末尾の行の1つ後の行には、「FC」+「配列の定義情報の終了を識別する値(図では「32777」)」の形式を有する擬似命令が挿入される。
また、表示形式からマシンコードの擬似命令に構造体の定義情報を変換すると、上記「定義情報」部分には、構造体名(STR_)以降に示される番号である構造体番号、その構造体が含むメンバの数だけの、それぞれのメンバのデータタイプ(要素情報)が変換結果として出力される。変換結果の先頭行の1つ前の行には、「FC」+「構造体の定義情報の開始を識別する値(図では「10」)」の形式を有する擬似命令が挿入され、変換結果の末尾の行の1つ後の行には、「FC」+「構造体の定義情報の終了を識別する値(図では「32778」)」の形式を有する擬似命令が挿入される。
また、表示形式からマシンコードの擬似命令に配列および構造体の宣言情報を変換すると、その「宣言情報」部分には、デバイスアドレス情報を識別するアドレスタイプ、CPU番号、アドレス(上位側)、アドレス(下位側)の各項目、および、配列または構造体の番号が変換結果として出力される。変換結果の先頭行の1つ前の行には、「FC」+「配列または構造体の宣言情報の開始を識別する値(図では「11」)」の形式を有する擬似命令が挿入され、変換結果の末尾の行の1つ後の行には、「FC」+「配列または構造体の宣言情報の終了を識別する値(図では「32779」)」の形式を有する擬似命令が挿入される。
図6Aは、図5等のマシンコード形式の配列の定義情報から表示形式に復元された配列の定義情報のデータ構造を示す図であり、図6Bは、図5等のマシンコード形式の構造体の定義情報から表示形式に復元された構造体の定義情報のデータ構造を示す図であり、図6Cは、図5等のマシンコード形式の配列または構造体の宣言情報から表示形式に復元された配列または構造体の宣言情報のデータ構造を示す図である。図6Cにおいて、番号が配列番号であるか構造体番号であるかは、上位側ビットの値により判断する。
図7は、表示形式のシーケンスプログラム(ラダー図)の一例を示す図である。
図7では、回路1は、接点M0、M1、M2、コイルM3が母線間に接続されて構成される。この場合、接点M0、接点M1、接点M2、コイルM3がそれぞれ1命令に相当する。また、回路2は、MOV命令と、そのMOV命令に先行する接点M4が母線間に接続されて構成される。この場合、接点M4、MOV命令がそれぞれ1命令に相当する。
図8Aは、ラダー図上の配列オペランドの一例を示す図である。
図8Aでは、接点や、MOV命令のオペランドに、配列の要素が使用されている。
配列オペランドは、“デバイスアドレス情報[要素番号]”で表記される。例えば、M00100[5]は、メモリ種別Mのメモリの100番目のアドレスに先頭が格納される、それぞれのデータ長が1ビットの配列の5番目の要素を示している。また、WM00200[3]は、メモリ種別Mのメモリの200番目のアドレスに先頭が格納される、それぞれのデータ長が16ビット=1ワードの配列の3番目の要素を示している。
図8Bは、ラダー図上の構造体オペランドの一例を示す図である。
図8Bでは、接点や、MOV命令のオペランドに、構造体の要素が使用されている。
構造体オペランドは、例えば、“デバイスアドレス情報.データ長Rインデックス”で表記される。例えば、WM00300.R1は、メモリ種別Mのメモリの300番目に先頭が格納される構造体でRインデックスの1番目に定義された、データ長が(16ビットの)ワードのデータメンバを示している。
図9は、配列または構造体の要素であるオペランドに対応する1行以上のマシンコードの開始行の1つ前の行と終了行の1つ後の行に、その配列または構造体のオペランドの開始または終了を示す擬似命令(「FC」+「配列または構造体のオペランドの開始または終了を識別する情報」の形式を有する)が挿入された状態を示す図である。
図10は、MOV命令に配列または構造体のオペランドが使用された場合に、そのMOV命令に対応する1行以上のマシンコードを示す図である。
図10において、例えば、「WM0000 := WM0100[1]」は、「MOV WM0000 WM0100[1]」に対応する。
図10の1段目および2段目は、1次元配列の要素がMOV命令の第2オペランドに使用されている場合のMOV命令、および、対応するマシンコード(アセンブラコード)を示している。
また、3段目および4段目は、構造体のデータメンバがMOV命令の第2オペランドに使用されている場合のMOV命令、および、対応するマシンコード(アセンブラコード)を示している。
また、5段目および6段目は、構造体のメンバである1次元配列の要素がMOV命令の第2オペランドに使用されている場合のMOV命令、および、対応するマシンコード(アセンブラコード)を示している。
図10のアセンブラコードにおいて、それぞれの命令にオペランドとして表れる「#」は定数、「M」は保持メモリ、「AX」はAXレジスタ、「WI」は符号付き16ビット整数(1ワード=16ビット)、「DU」は符号なし32ビット整数(ダブルワード=32ビット)、「XB」は1ビット、を意味する。
なお、図10のMOV命令にオペランドとして使用されている配列および構造体の定義・宣言情報を以下に示す。
(定義情報)
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の各アセンブラコードについて説明する。
まず、図10の1段目のアセンブラコードでは、PLD命令において、ACC(アキュミュレータ)の内容をデータスタックにプッシュした後、オペランドが指定するアドレスからデータを読み出しACCに格納している。また、SUB命令において、オペランドが指定するアドレスからデータを読み出し、ACCから読み出したデータを減算しその結果をACCに格納している。また、LEAAX命令において、オペランドが指定するアドレスのメモリ位置アドレスをAXレジスタに格納している。また、AXADDP命令において、AXレジスタの内容と、ACCの内容を加算してその結果をAXレジスタに格納し、データスタックをポップしている。また、LD命令において、AXレジスタの内容に“0”を加えたメモリ位置アドレスからデータを読み出し、ACCに格納している。また、ST命令において、ACCにあるデータをオペランドが指定するアドレスに格納している。
ここで、PLD命令、SUB命令、LEAAX命令、AXADDP命令、LD命令が配列オペランド“WM0100[1]”に対応するアセンブラコードであるので、それらの命令のうちの先頭の命令(PLD命令)の1つ前の行に、配列オペランド開始擬似命令が挿入されるとともに、それらの命令のうちの末尾の命令(LD命令)の1つ後の行に、配列オペランド終了擬似命令が挿入される。
なお、配列オペランド開始擬似命令は、例えば、“「FC」+「この行がオペランドに使用される配列要素に関する情報の開始位置であることを示す情報」+「配列要素の復元時に使用されるパターンを識別する情報」”のような形式を有し、配列オペランド終了擬似命令は、例えば、“「FC」+「この行がオペランドに使用される配列要素に関する情報の終了位置であることを示す情報」”のような形式を有する。
例えば、この1段目のアセンブラコードでは、PLD命令の各オペランド“#”、“WI”、“001”から配列の要素番号“[1]”を取得し、LEAAX命令の各オペランド“M”、“DU”、“100”から配列の先頭アドレス“WM0100”を取得するのが、配列要素の復元時に使用されるパターンである。
図10の2段目のアセンブラコードは、段目と同様であるので説明を省略する。
この2段目のアセンブラコードでは、PLD命令、SUB命令、LEAAX命令、AXADDP命令、LD命令が配列オペランド“WM0100[WM0001]”に対応するアセンブラコードであるので、それらの命令のうちの先頭の命令(PLD命令)の1つ前の行に、配列オペランド開始擬似命令が挿入されるとともに、それらの命令のうちの末尾の命令(LD命令)の1つ後の行に、配列オペランド終了擬似命令が挿入される。
例えば、この2段目のアセンブラコードでは、PLD命令の各オペランド“M”、“WI”、“001”から配列の要素番号“[WM0001]”を取得し、LEAAX命令の各オペランド“M”、“DU”、“100”から配列の先頭アドレス“WM0100”を取得するのが、配列要素の復元時に使用されるパターンである。
図10の3段目のアセンブラコードでは、LEAAX命令において、オペランドが指定するアドレスのメモリ位置アドレスをAXレジスタに格納している。また、LD命令において、AXレジスタの内容に当該命令の第3オペランド“51.0”で示される相対アドレスを加えたメモリ位置アドレスからデータを読み出し、ACCに格納している。また、ST命令において、ACCにあるデータをオペランドが指定するアドレスに格納している。
ここで、LEAAX命令、LD命令が構造体オペランド“WM0300.R1”に対応するアセンブラコードであるので、それらの命令のうちの先頭の命令(LEAAX命令)の1つ前の行に、構造体オペランド開始擬似命令が挿入されるとともに、それらの命令のうちの末尾の命令(LD命令)の1つ後の行に、構造体オペランド終了擬似命令が挿入される。
例えば、この3段目のアセンブラコードでは、LEAAX命令の各オペランド“M”、“XB”、“300”から構造体の先頭アドレス“WM0300”を取得し、その先頭アドレスで図6Cの構造体の宣言情報を参照し、構造体番号を取得する。また、LD命令の第3オペランド“51.0”からその構造体内でのメンバの相対アドレスを取得し、その相対アドレスおよび取得済みの構造体番号で図6Bの構造体の定義情報を参照し、相対アドレスに合ったメンバを特定するのが、構造体のメンバの復元時に使用されるパターンである。
図10の4段目のアセンブラコードは3段目と同様であるので説明を省略する。
図10の5段目のアセンブラコードでは、PLD命令において、ACC(アキュミュレータ)の内容をデータスタックにプッシュした後、オペランドが指定するアドレスからデータを読み出しACCに格納している。また、SUB命令において、オペランドが指定するアドレスからデータを読み出し、ACCから読み出したデータを減算しその結果をACCに格納している。また、LEAAX命令において、オペランドが指定するアドレスのメモリ位置アドレスをAXレジスタに格納している。また、AXADDP命令において、AXレジスタの内容と、ACCの内容を加算してその結果をAXレジスタに格納し、データスタックをポップしている。また、LD命令において、AXレジスタの内容に当該命令の第3オペランド“1”で示される相対アドレスを加えたメモリ位置アドレスからデータを読み出し、ACCに格納している。また、ST命令において、ACCにあるデータをオペランドが指定するアドレスに格納している。
ここで、PLD命令、SUB命令、LEAAX命令、AXADDP命令、LD命令が構造体オペランド“WM0300.WR4[1]”に対応するアセンブラコードであるので、それらの命令のうちの先頭の命令(PLD命令)の1つ前の行に、構造体オペランド開始擬似命令が挿入されるとともに、それらの命令のうちの末尾の命令(LD命令)の1つ後の行に、構造体オペランド終了擬似命令が挿入される。
例えば、この5段目のアセンブラコードでは、PLD命令の各オペランド“#”、“WI”、“001”から構造体のメンバである1次元配列の要素番号“[1]”を取得し、LEAAX命令の各オペランド“M”、“DU”、“300”から配列の先頭アドレス“WM0300”を取得し、その先頭アドレスで図6Cの構造体の宣言情報を参照し、構造体番号を取得する。また、LD命令の第3オペランド“1”からその構造体内でのメンバの相対アドレスを取得し、その相対アドレスおよび取得済みの構造体番号で図6Bの構造体の定義情報を参照し、相対アドレスに合ったメンバを特定するのが、構造体のメンバの復元時に使用されるパターンである。
図10の6段目のアセンブラコードは5段目と同様であるので説明を省略する。
図11は、本実施形態において、図2のシーケンスプログラム記憶部上で、表示形式で作成されたシーケンスプログラムのデータ構造を示す図である。
図11において、回路1、回路2、・・・、回路nや、それぞれの回路内の命令1、命令2、・・・、命令nは、例えば、図7に示すラダー図上のものに対応している。
ニーモニック情報は、命令コードと、その命令が持つオペランド数と、そのオペランド数に続く、そのオペランド数だけのオペランド情報から構成される。
それぞれのオペランド情報は、メモリ種別を示すデバイスタイプ、CPU番号/局番、データ形(ビット、1ワード(16ビット)、ダブルワード(32ビット))、予備、および、そのデータの格納先のアドレス、から構成される。
従来は、図11に示すようなデータ構造で、表示形式で作成されたシーケンスプログラムを管理していたため、配列・構造体と単なる変数とを区別することができず、配列や構造体をオペランドに使用した場合、その配列や構造体のオペランドのアドレスは実アドレスに変換されて保持されていた。
一方、配列や構造体であることを示すフラグ情報の項目を追加して、配列・構造体と、通常の変数とを区別することは可能であるが、図11のデータ構造の変更になり、データの互換性が損なわれる。
そこで、本実施形態では、デバイスアドレス(= デバイスタイプ)の項目に、デバイスアドレス(メモリ種別)として意味がある値以外の値を設けることで、従来のシステムとの互換性を保ちつつ、配列・構造体と、通常の変数とを区別することを可能としている。
図12は、デバイスアドレスの項目に追加された値(ID)を示す図である。
図12において、デバイスアドレスのID=“xatArray”は、そのオペランドが配列の要素であることを示すIDである。また、デバイスアドレスのID=“xatStruct”は、そのオペランドが構造体の要素であることを示すIDである。
図13は、配列または構造体の要素であるオペランドに対応するオペランド情報のデータ構造を示す図である。
図13において、上述したように、デバイスタイプの項目には、配列または構造体を示す値(“xatArray”または“xatStruct”)が指定される。そして、デバイスアドレスの値がメモリ種別を示していたときのアドレスの項目には、その配列の各要素についての情報またはその構造体の各要素(データメンバ、配列メンバ、・・・等)についての情報の先頭位置を示すポインタ情報が格納される。
このポインタ情報から、配列の各要素についての情報または構造体の各要素についての情報を取得することができ、配列または構造体の要素であるオペランドを表現することが可能となる。
図14は、表示形式のシーケンスプログラムの作成、および、その表示形式のシーケンスプログラムをマシンコード形式に変換して、プログラマブルコントローラに出力する処理のフローチャートである。このフローチャートは、図2のシーケンスプログラム作成装置によって実行される。
まず、ステップS101において、ユーザによって、表示形式のシーケンスプログラム上でその要素がオペランドとなりうる配列または構造体の定義情報・宣言情報が入力される。
そして、続く、ステップS102において、ユーザによって、表示形式のシーケンスプログラムのコードが入力される。
ステップS103では、表示形式のシーケンスプログラムの作成が完了したかどうかが判定される。
ステップS103で、表示形式のシーケンスプログラムの作成が完了していないと判定された場合は、ステップS102に戻る。
一方、ステップS103で、表示形式のシーケンスプログラムの作成が完了したと判定された場合、ステップS104で、図2の定義・宣言情報変換部24によって、配列または構造体の定義・宣言情報がマシンコードの擬似命令(この命令は、「LAB」+「定義情報」または「LAB」+「宣言情報」の形式を有する)に変換されるとともに、その擬似命令の開始行の1つ前の行および終了行の1つ後の行にその開始・終了を示すマシンコードの擬似命令(この命令は、「FC」で始まる)が挿入される。なお、図5に変換結果の一例が示されている。
そして、ステップS105で、図2の配列・構造体オペランド命令変換部26および他命令変換部27によって、表示形式のシーケンスプログラムがマシンコード形式に変換される。
ステップS106では、マシンコード形式に変換されたシーケンスプログラムが図2の出力部28によって、プログラマブルコントローラ内のROMに格納される。
図15は、図14のステップS105の処理をより詳細に示したフローチャートである。
なお、図15のフローチャートは、ラダー図を構成する1つの回路について行われる処理を示している。実際には、ラダー図のすべての回路について図15の処理が実行される。
図15において、まず、ステップS201で、現在の回路の中の先頭の命令(ニーモニック情報)が取得される。このニーモニック情報は、図11に示すように、命令コードと、その命令が持つオペランド数と、そのオペランド数に続く、そのオペランド数だけのオペランド情報から構成されている。
続く、ステップS202では、そのニーモニック情報がオペランド情報を持つかどうか、すなわち、オペランド数の項目に1以上の値が設定されているかどうかが判定される。
ステップS202でニーモニック情報がオペランド情報を持たないと判定された場合、ステップS207において、図2の他命令変換部27によって、その命令コード等がマシンコード形式に変換される。
そして、ステップS206において、プログラムが終了したかどうか、すなわち、現在の回路において、後続の命令があるかどうかが判定される。
ステップS206において、後続の命令がないと判定された場合、一連の処理、この場合、1回路分の処理が終了する。一方、ステップS206において、後続の命令があると判定された場合、ステップS201に戻り、後続の命令を取得して、その後続の命令について同様の処理を繰り返す。
一方、ステップS202でニーモニック情報がオペランド情報を持つと判定された場合、ステップS203において、そのニーモニック情報が有する各オペランド情報のデバイスタイプの項目の値(ID)が検索され、そのニーモニック情報がオペランドに配列または構造体の要素を持つかどうかが判定される。デバイスタイプの項目の値=“xatArray”または“xatStruct”であるオペランド情報が検出された場合は、配列または構造体の要素をオペランドに持つ命令であると判定される。
ステップS203において配列または構造体の要素をオペランドに持つ命令であると判定された場合、ステップS204において、図2の配列・構造体オペランド命令変換部26によって、その命令が表示形式からマシンコード形式へ変換されて、取得した命令に対応する1行以上のマシンコードが得られるとともに、その取得した命令に対応する1行以上のマシンコード中の、配列または構造体の要素であるオペランドに対応する1行以上のマシンコードの開始行の1つ前の行および終了行の1つ後の行にその開始・終了を示すマシンコードの擬似命令(この命令は、「FC」で始まる)が挿入される。そして、制御がステップS206に移る。
より具体的には、表示形式の各命令に対して、対応する1行以上のマシンコードのテンプレート(雛形)が2つ存在している。1つは、その命令が配列または構造体の要素をオペランドに含まない場合のものであり、もう1つは、その命令が配列または構造体の要素をオペランドに含む場合のものである。配列または構造体の要素をオペランドに含まない各命令に対して、その命令に対応するマシンコード(テンプレート)の何行目から何行目の間がその命令のオペランドに対応するかは既知である。配列または構造体の要素をオペランドに含む命令に対するテンプレートは、配列または構造体の要素をオペランドに含まない命令に対するテンプレートのオペランド対応部分の開始行の1つ前の行および終了行の1つ後の行にその開始・終了を示すマシンコードの擬似命令を挿入することで得られる。
なお、図10にステップS204の処理結果が数例示されている。
一方、ステップS203において配列または構造体の要素をオペランドに持つ命令でないと判定された場合、ステップS205において、図2の他命令変換部27によって、(配列または構造体の要素をオペランドに持たない)命令がマシンコード形式に変換される。そして、制御がステップS206に移る。
図16は、プログラマブルコントローラから読み出されたマシンコード形式のシーケンスプログラムを、表示形式のシーケンスプログラムに逆変換して、表示部上に出力する処理のフローチャートである。このフローチャートは、図3のシーケンスプログラム参照・変更装置によって実行される。
まず、ステップS301において、図3のシーケンスプログラム取得部31によって、マシンコード形式で記述されたシーケンスプログラムがプログラマブルコントローラから取得され、シーケンスプログラム記憶部32に書き込まれる。
そして、続く、ステップS302において、定義・宣言情報開始終了位置検出部33によって、シーケンスプログラム記憶部32に格納されたマシンコード形式のシーケンスプログラムが検索される。そして、このマシンコード形式のシーケンスプログラム中から、「PSEUDO FC」で始まるマシンコードの擬似命令が検出されるとともに、定義・宣言情報復元部34によって、その開始位置とその開始位置に対応する終了位置の間にある配列または構造体の定義・宣言情報(この情報は、「PSEUDO LAB」で始まる)が表示形式に復元される。
ステップS303では、配列・構造体オペランド開始終了位置検出部35、配列・構造体オペランド復元部36、および、変換部37によって、マシンコード形式のシーケンスプログラムが表示形式に変換される。
ステップS304では、出力部38によって、表示形式に変換されたシーケンスプログラムと、その配列・構造体の定義・宣言情報が表示装置上に出力され表示される。
図17は、図16のステップS303の処理をより詳細に示したフローチャートである。
図17において、まず、ステップS401で、図3のシーケンスプログラム記憶部32に格納されるシーケンスプログラムの各行が取得される。
続く、ステップS402では、配列・構造体オペランド開始終了位置検出部35によって、その取得した行が、マシンコードの擬似命令であって、「FC」+「配列または構造体の要素であるオペランドに関する情報の開始を識別する値」を含むかどうかが判定される。
ステップS402において取得した行が「FC」+「配列または構造体の要素であるオペランドに関する情報の開始を示す情報」を含まないと判定された場合、ステップS407において、変換部37によって、そのマシンコード形式のシーケンスプログラムの命令等が表示形式に変換される。そして、制御がステップS406に移る。
一方、ステップS402において取得した行が「FC」+「配列または構造体の要素であるオペランドに関する情報の開始を示す情報」を含むと判定された場合、ステップS403において、配列・構造体オペランド復元部36によって、シーケンスプログラム記憶部32に格納されるシーケンスプログラムの後続の各行が、「FC」+「配列または構造体の要素であるオペランドに関する情報の終了を示す情報」を含む行が検出されるまで取得される。
そして、ステップS403において、配列・構造体オペランド復元部36によって、「FC」+「配列または構造体の要素であるオペランドに関する情報の開始を示す情報」の行にさらに含まれる復元時に使用されるパターンを識別する情報を用いて、その開始と終了の擬似命令で挟まれたマシンコード(アセンブラコード)部分から配列の要素または構造体のメンバを復元するのに必要な情報が取得される。ステップS403で取得される情報は、図10で述べたように、配列の要素を復元する場合、その配列の先頭アドレス、その配列の要素番号(インデックス)またはそのインデックスの値が格納されるアドレスである。また、構造体のメンバを復元する場合、例えば、その構造体の先頭アドレス、その構造体のメンバの相対アドレスである。
構造体のメンバを復元する場合には、ステップS404の処理がさらに実行される。このステップS404では、例えば、配列・構造体オペランド復元部36によって、ステップS403で取得された構造体の先頭アドレスを用いて、図6Cの構造体の宣言情報が参照されて構造体番号が取得される。また、その構造体番号およびステップS403で取得された構造体のメンバの相対アドレスを用いて、図6Bの構造体の定義情報が参照されてその相対アドレスに合ったメンバが特定される。
ステップS405では、ステップS403およびステップS404の結果を踏まえて、配列・構造体オペランド復元部36によって、オペランドとして使用される配列の要素または構造体のメンバが表示形式に復元される。そして、制御がステップS406に移る。
図18は、本実施形態のハードウェア環境を示す図である。
図18において、プログラミング装置50は、そのプログラミング装置50を介して作成されるシーケンスプログラムの格納先のプログラマブルコントローラ65に接続されている。
図18において、プログラミング装置は、中央演算処理装置(CPU)51、ROM52、RAM(一次記憶)53、記憶装置55、入力装置58、表示装置61、入出力インターフェイス(I/O)62を備え、それらがバス63を介して接続されている。
図18において、CPU51は、コンピュータ全体を制御する。シーケンスプログラムを作成したり、参照・変更したりする処理を行うプログラムは、例えば、ROM52からRAM53に読み出されて、そのRAM53上で実行される。
入力装置58を介して、ユーザは、配列または構造体の定義情報や宣言情報を入力したり、表示形式のシーケンスプログラムのコードを入力したりする。
この表示形式のシーケンスプログラムは、作成時や参照・変更時に、表示装置61上に表示される。
記憶装置55は、例えば、作成された配列の定義情報、構造体の定義情報、配列および構造体の宣言情報を記憶する内部メモリ56と、表示形式またはマシンコード形式のシーケンスプログラムを記憶するユーザプログラムメモリ57を備える。
作成された表示形式のシーケンスプログラムは、マシンコードに変換されてマシンコード形式のシーケンスプログラムとなり、I/O62を介して、例えば、プログラマブルコントローラ65内のROMに書き込まれる。また、プログラマブルコントローラ65内のROMから読み出されたマシンコード形式のシーケンスプログラムは、表示形式のシーケンスプログラムに変換されて、例えば、表示装置61上に表示される。
本発明の一実施形態のプログラミング装置の概要構成を示す図である。 図1のシーケンスプログラム作成装置の構成を示すブロック図である。 図1のシーケンスプログラム参照・変更装置の構成を示すブロック図である。 図1のシーケンスプログラム作成装置を介してユーザが定義した配列の定義情報の一例を示す図である。 図1のシーケンスプログラム作成装置を介してユーザが定義した構造体の定義情報の一例を示す図である。 図1のシーケンスプログラム作成装置を介してユーザが宣言した、図4Aおよび図4Bの配列・構造体に対応する配列・構造体の宣言情報を示す図である。 プログラミング装置の内部メモリにマシンコード形式で格納される配列および構造体の定義情報、宣言情報の一例を示す図である。 図5等のマシンコード形式の配列の定義情報から表示形式に復元された配列の定義情報のデータ構造を示す図である。 図5等のマシンコード形式の構造体の定義情報から表示形式に復元された構造体の定義情報のデータ構造を示す図である。 図5等のマシンコード形式の配列または構造体の宣言情報から表示形式に復元された配列または構造体の宣言情報のデータ構造を示す図である。 表示形式のシーケンスプログラム(ラダー図)の一例を示す図である。 ラダー図上の配列オペランドの一例を示す図である。 ラダー図上の構造体オペランドの一例を示す図である。 配列または構造体の要素であるオペランドに対応する1行以上のマシンコードの開始行の1つ前の行と終了行の1つ後の行に、その配列または構造体のオペランドの開始または終了を示す擬似命令が挿入された状態を示す図である。 MOV命令に配列または構造体のオペランドが使用された場合に、そのMOV命令に対応する1行以上のマシンコードを示す図である。 本実施形態において、図2のシーケンスプログラム記憶部上で、表示形式で作成されたシーケンスプログラムのデータ構造を示す図である。 デバイスアドレスの項目に追加された値(ID)を示す図である。 配列または構造体の要素であるオペランドに対応するオペランド情報のデータ構造を示す図である。 表示形式のシーケンスプログラムの作成、および、その表示形式のシーケンスプログラムをマシンコード形式に変換して、プログラマブルコントローラに出力する処理のフローチャートである。 図14のステップS105の処理をより詳細に示したフローチャートである。 プログラマブルコントローラから読み出されたマシンコード形式のシーケンスプログラムを、表示形式のシーケンスプログラムに逆変換して、表示部上に出力する処理のフローチャートである。 図16のステップS303の処理をより詳細に示したフローチャートである。 本実施形態のハードウェア環境を示す図である。
符号の説明
10 プログラマブルコントローラのプログラミング装置
11 シーケンスプログラム作成装置
12 シーケンスプログラム参照・変更装置
21、32 シーケンスプログラム記憶部
22 配列・構造体記憶部
24 定義・宣言情報変換部
26 配列・構造体オペランド変換部
27 令変換部
28、38 出力部
31 シーケンスプログラム取得部
33 定義・宣言情報開始終了位置検出部
34 定義・宣言情報復元部
35 配列・構造体オペランド開始終了位置検出部
36 配列・構造体オペランド復元部
37 換部

Claims (4)

  1. プログラマブルコントローラがシステムに対して指示を行う手順を定めるシーケンスプログラムを、ユーザによる作成・変更時に用いられる形式からマシンコード形式に変換する変換装置において、
    前記ユーザによる作成・変更時に用いられる形式で記述されたシーケンスプログラムで使用される配列または構造体の定義・宣言情報を、前記マシンコード形式における、実行に影響しないマシンコードに変換するとともに、その開始位置および終了位置にその開始・終了を示す実行に影響しないマシンコードを付加する定義・宣言情報変換部と、
    前記ユーザによる作成・変更時に用いられる形式で記述されたシーケンスプログラム中の配列または構造体の要素をオペランドとして使用する命令をマシンコードに変換するとともに、その配列または構造体の要素であるオペランドに対して、対応するマシンコードの開始位置および終了位置にその開始・終了を示す実行に影響しないマシンコードを付加する配列・構造体オペランド命令変換部、を備えることを特徴とするシーケンスプログラム変換装置
  2. 前記配列または構造体の要素であるオペランドに対して、前記対応するマシンコードの開始位置および終了位置に付加された、その開始・終了を示す実行に影響しないマシンコードは、その配列または構造体の要素の復元時に使用されるパターンを識別する情報をさらに有することを特徴とする請求項1記載のシーケンスプログラム変換装置
  3. プログラマブルコントローラがシステムに対して指示を行う手順を定めるシーケンスプログラムを、マシンコード形式からユーザによる作成・変更時に用いられる形式に変換する変換装置において、
    前記マシンコード形式で記述されたシーケンスプログラムを前記プログラマブルコントローラから取得するシーケンスプログラム取得部と、
    取得されたシーケンスプログラムの配列または構造体の定義・宣言情報に対して、その開始位置を検出する定義・宣言情報開始位置検出部と、
    検出された開始位置とその開始位置に対応する終了位置の間の定義・宣言情報を、前記ユーザによる作成・変更時に用いられる形式に復元する定義・宣言情報復元部と、
    取得されたシーケンスプログラム中の配列または構造体の要素であるオペランドに対応するマシンコードの開始位置を検出する配列・構造体オペランド開始位置検出部と、
    検出された開始位置とその開始位置に対応する終了位置の間の配列または構造体のオペランドに対応するマシンコードを基に、そのオペランドの配列・構造体を復元する配列・構造体オペランド復元部、を備えることを特徴とするシーケンスプログラム変換装置。
  4. プログラマブルコントローラがシステムに対して指示を行う手順を定めるシーケンスプログラムを、ユーザによる作成・変更時に用いられる形式からマシンコード形式に変換する第1変換装置と、マシンコード形式からユーザによる作成・変更時に用いられる形式に変換する第2変換装置を備えるプログラミング装置において、
    前記第1変換装置は、
    前記ユーザによる作成・変更時に用いられる形式で記述されたシーケンスプログラムで使用される配列または構造体の定義・宣言情報を、前記マシンコード形式における、実行に影響しないマシンコードに変換するとともに、その開始位置および終了位置にその開始・終了を示す実行に影響しないマシンコードを付加する定義・宣言情報変換部と、
    前記ユーザによる作成・変更時に用いられる形式で記述されたシーケンスプログラム中の配列または構造体の要素をオペランドとして使用する命令をマシンコードに変換するとともに、その配列または構造体の要素であるオペランドに対して、対応するマシンコードの開始位置および終了位置にその開始・終了を示す実行に影響しないマシンコードを付加する配列・構造体オペランド命令変換部、を備え、
    前記第2変換装置は、
    前記マシンコード形式で記述されたシーケンスプログラムを前記プログラマブルコントローラから取得するシーケンスプログラム取得部と、
    取得されたシーケンスプログラムの配列または構造体の定義・宣言情報に対して、その開始位置を検出する定義・宣言情報開始位置検出部と、
    検出された開始位置とその開始位置に対応する終了位置の間の定義・宣言情報を、前記ユーザによる作成・変更時に用いられる形式に復元する定義・宣言情報復元部と、
    取得されたシーケンスプログラム中の配列または構造体の要素であるオペランドに対応するマシンコードの開始位置を検出する配列・構造体オペランド開始位置検出部と、
    検出された開始位置とその開始位置に対応する終了位置の間の配列または構造体のオペランドに対応するマシンコードを基に、そのオペランドの配列・構造体を復元する配列・構造体オペランド復元部、を備えることを特徴とするプログラマブルコントローラのプログラミング装置
JP2006261585A 2006-09-26 2006-09-26 シーケンスプログラム変換装置、および、プログラマブルコントローラのプログラミング装置 Active JP4961928B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 富士電機株式会社 プログラマブルコントローラのプログラミング装置

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