JP4488227B2 - 可変性を有する制御部品のデバッグ方法、及びデバッグ支援装置 - Google Patents

可変性を有する制御部品のデバッグ方法、及びデバッグ支援装置 Download PDF

Info

Publication number
JP4488227B2
JP4488227B2 JP2005289245A JP2005289245A JP4488227B2 JP 4488227 B2 JP4488227 B2 JP 4488227B2 JP 2005289245 A JP2005289245 A JP 2005289245A JP 2005289245 A JP2005289245 A JP 2005289245A JP 4488227 B2 JP4488227 B2 JP 4488227B2
Authority
JP
Japan
Prior art keywords
program
macro
program part
debugging
specific application
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
JP2005289245A
Other languages
English (en)
Other versions
JP2007102380A (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.)
Omron Corp
Original Assignee
Omron 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 Omron Corp filed Critical Omron Corp
Priority to JP2005289245A priority Critical patent/JP4488227B2/ja
Publication of JP2007102380A publication Critical patent/JP2007102380A/ja
Application granted granted Critical
Publication of JP4488227B2 publication Critical patent/JP4488227B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Description

本発明は、ラダー言語によって記述された機器制御プログラムの部品化並びに再利用化に関する発明である。
ラダープログラムの部品化・再利用化については、一般的にIEC61131規格で定義された『ファンクション・ブロック』の仕組みを用いて実現されている。ファンクション・ブロックにより、ラダープログラムと変数のカプセル化が実現され、ラダープログラムを部品として再利用することが可能になっている。また、プログラム上の複数箇所に現れる複合処理をそれぞれ簡単なマクロ演算部品の図形で置き換えることにより、図形表示されたプログラムの簡素化を図ることも知られている(特許文献1参照)。
しかしながら、ラダープログラムが用いられる機器制御システムの分野では、製品ラインナップを充実させてユーザのニーズに対応できるように、大部分は同一であるが部分的に差異のあるシステムを多数開発しているケースが多い。近年、製品ラインアップの共通性と差異性とを分析し、効果的なソフトウェア資産の形成を目指す『プロダクトライン・ソフトウェア・エンジニアリング(以下、PLSEと省略)』と呼ばれる手法が提唱されつつあり、機器制御システムの分野へも適用が試みられている。
ラダープログラムは、全回路をサイクリックスキャンすることによって動作するという特徴から、プログラムの規模の増大がそのまま実行時間性能の低下つながる性質がある。そのため実行性能の観点から利用するラダープログラム部品は、極力使用されるアプリケーションに不要な回路を含まないことが望まれる。
しかしながら、複数のアプリケーションにおいて再利用できる汎用性のあるプログラム部品を作成するには、プログラム部品の内部構成や振る舞いにある程度のバリエーションを持たせ、オプション設定などにより内部構成や振る舞いを少し変更させることができる必要が生じる。たとえば火災検出アルゴリズムのプログラム部品を考える場合、火災検出用のセンサの数や種類、自己診断機能の有無などの、アルゴリズムそのものは同一であっても、使用する具体的なアプリケーションにより複数のバリエーションやオプションを含むことが多い。このようなオプション選択も入力値としてプログラム部品を記述することで汎用性をもったプログラム部品を実装することはできる。しかしながらこの場合、あるシステムの実現には不要なラダー回路が部品中に存在することになりプログラムの実行性能が無為に低下する。このため実行性能の制約に厳しい分野では、汎用性のあるプログラム部品を構成することが困難となっている。
ラダープログラミングにおいてファンクション・ブロックの概念は、後に詳細に説明するが、プログラムの階層的な設計を実現している。しかしJava(登録商標)やC++などのオブジェクト指向高級言語がプログラム実行時に動的に子インスタンスを構成できるのと異なり、ファンクション・ブロックでは子インスタンスを静的に親ファンクション・ブロック中に記述する。このため中間階層のプログラムを部品化することが困難であり、結果的に大部分は同じだが一部だけが異なる多くのプログラム部品を作成しなければならないという問題が生じる。
そのような場合を以下に、図25にて示される例を参照して説明する。図25には、ラダープログラミングにおけるファンクションブロックによるプログラムの階層的な設計の一例が示されている。図25(a)にて示されるように、縮みきった状態と伸びきった状態を判定するセンサを持つエアシリンダ100を制御するプログラム部品を一例として考える。このエアシリンダ100には、筒状のシリンダ部101と、このシリンダ部101に挿入され、前後に伸縮可能なアーム部102によって概略構成される。このようなエアシリンダには、その伸びきり状態や縮みきり状態を検出するためのセンサが用いられ、例えば、センサとして光センサがついているものもあれば、同じ入出力をもつ磁気センサを持つものも考えられる。
しかし、図25(b)にて示されるように、ロボットアームの制御プログラム111には、エアシリンダの制御を行うプログラム112が組み込まれており、さらに、そのエアシリンダを制御するプログラム112に、磁気センサの制御プログラム113が組み込まれており、階層的な構造を有している。このようなエアシリンダにおいては、センサの種類にかかわらずエアシリンダ制御部の挙動は同一であるのだが、磁気センサを制御するプログラムがエアシリンダの制御プログラムに、そしてロボットアームの制御プログラムに組み込まれているため、センサとして光センサを用いるような場合においては、センサの制御プログラムのみを取り替えるということができない。従って、このような場合、ファンクション・ブロックでは使用するセンサの種類の組み合わせの数だけ『エアシリンダ』部品を作成しなければならない。
例えば、C言語ではマクロ処理によってソースコードを変形させることにより、C言語の言語仕様の範囲では実現できない高度な部品化を行う試みが既になされている。しかし当然ながら、C言語に特化したマクロであり、本発明が対象とするラダープログラミングの分野にはそのまま適用することはできない。
そして、本含発明の発明者は、性能的なオーバーヘッドを生じさせることなく汎用性の高いラダープログラムの部品化を実現する手段の一つとして、部品のバリアビリティーポイント(変化点)を定義して、予めラダープログラムにマクロとして組み込み、与える具体的なパラメータセットを変更することによってマクロ処理により変形した部品を生成する手法を考案した。
特開平6−230804号公報
しかしながら、マクロを含むラダープログラムはマクロ処理(最終的な部品として確定した状態)した後でないと実行できないので、原始プログラム(資産部品)とテストやデバッグ対象のプログラムが異なる。このことは、マクロ記述を施した原始プログラムには、変化点を組み込んでいることから不要な回路も入っており、そこに具体的なパラメータを入力してマクロ処理を実行することによりテストやデバッグ処理を行う最終部品として完成するためである。そして、プログラムのテストを実行するためにはシミュレータが用いられるが、そのシミュレータは、具体的なパラメータが入っている最終的なプログラムでないとテストを実行できない。
また、部品をデバッグするためには、以下のような煩雑な作業が必要となり、作業効率が低下してしまうという不具合が生じていた。
1.マクロ記述を含む資産部品をマクロ処理し、特定アプリケーション専用の部品に変形する。
2.その変形部品をラダープログラミングツールで読み込み、PLCにダウンロードする。
3.PLCを実行し、PLCの外部入力をON/OFFしながらラダー部品の動作を確認する。
4.ラダー部品にバグがある場合は、ラダープログミングツールで修正する。バグがなくなるまでPLCで実行しながら繰り返す。
5.修正が完了したら、PLCよりラダープログラミングツールでラダー部品をアップロードする。
6.修正箇所を特定した上で、マクロ記述を含む資産部品に修正を手動で反映する。
上記のように、変形後の最終部品でテストを行っても、変形部品としての状態で不具合があるかどうかの判定にすぎない。そのため、ユーザが手動にてラダープログラミングツールを介して、資産部品に対してテスト結果を反映させるという煩雑な作業が求められていた。
本発明は上記の問題点に着目したもので、その目的とするところは、マクロを含むラダープログラム部品の単体テスト作業を効率化する環境を提供し、マクロ記述を含む資産部品のデバッグ効率の向上を実現することである。
本発明のさらに他の目的並びに作用効果については、明細書の以下の記述を参照することにより、当業者であれば容易に理解されるであろう。
本発明に係るプログラム部品のデバッグ方法は、ラダープログラムを作成するためのプログラム部品のデバッグ方法であって、当該ラダープログラムの接点や回路を組み替えることを目的としたマクロ処理言語をプログラム部品に記述するステップと、マクロ記述を含むプログラム部品にマクロ処理を実行し、特定アプリケーション専用プログラム部品へと変形させるマクロ処理ステップと、特定アプリケーション専用プログラム部品に対して単体テストを実行し、適宜修正を行うデバッグ処理を実行するデバッグ処理ステップと、デバッグ処理にて行った修正を、特定アプリケーション専用プログラム部品にその修正箇所と修正内容をコメントとして記述するステップと、前記コメントが記述された特定アプリケーション専用プログラム部品を逆変換する際には、記述されたコメントを参照して、デバッグ処理にて行った修正をマクロ処理を実行する前のマクロ記述を含むプログラム部品に反映させるマクロ逆変換処理ステップと、を具備することを特徴とする。
ここで言う『コメント』とは、ラインコメント、命令コメント、または変数コメント等を含み、実行された特定アプリケーション専用プログラム部品への修正についてその実行箇所や実行内容を特定するコメントである。そして、このコメントの特徴として、マクロ処理に対応していないラダーのプログラミングツールでも開くことが可能とされている。
このような構成により、多岐にわたるアプリケーションに対応できるように可変性を有するプログラム部品に対して効率よくデバッグ処理を実行することが可能となる。
また、デバッグ処理の過程で発生した修正をコメントとして記述することで、そのコメントを参照して特定のアプリケーション専用プログラム部品を、可変性を有するマクロ記述を含むプログラム部品に変換することが可能となる。
本発明の実施の形態においては、マクロ逆変換処理ステップによって得られたマクロ記述を含むプログラム部品を、プログラム部品を格納するプログラム部品データベースに格納するステップをさらに具備することを特徴とする。
このような構成により、デバッグ処理にて知見されたバグ等に対応する修正をプログラムデータベースに自動的に反映させることが可能となる。
本発明の実施の形態においては、デバッグ処理が、仮想入力と期待出力とを設定可能とされた単体テストツールとPLCシミュレータを含む仮想実行環境において実行され、単体テストツールは、シミュレータに仮想入力を与えるステップと、PLCシミュレータからの出力を予め設定された期待出力と比較してテストの可否を判断するステップと、をさらに具備することを特徴とする。
このような構成により、特定アプリケーション専用プログラムに対して仮想のラダー実行環境にてプログラム部品単体でのテストが実行可能とされ、実際にプログラム部品を組み込んでラダープログラムを作成する前に、部品単位でデバッグ作業が行うことが可能となる。ため、デバッグ処理の作業効率が向上する。また、デバッグ処理の過程で生じた修正は自動的にマクロ逆変換処理によってプログラム部品データベースに反映されるため、デバッグ処理とデータベースへの修正入力処理の作業効率が向上する。
本発明に係るプログラム部品のデバッグ支援装置は、ラダー言語によって記述された複数のプログラム部品を組み合わせて機器制御プログラムにおけるプログラム部品のデバッグ処理を支援するデバッグ支援装置であって、当該ラダープログラムの接点や回路を組み替えることを目的としたマクロ処理言語をプログラム部品に記述する手段と、マクロ記述を含むプログラム部品にマクロ処理を実行し、特定アプリケーション専用プログラム部品へと変形させるマクロ処理手段と、特定アプリケーション専用プログラム部品に対して単体テストを実行し、適宜修正を行うデバッグ処理を実行するデバッグ処理手段と、デバッグ処理にて行った修正を、特定アプリケーション専用プログラム部品にその修正箇所と修正内容をコメントとして記述する手段と、前記コメントが記述された特定アプリケーション専用プログラム部品を逆変換する際には、記述されたコメントを参照して、デバッグ処理にて行った修正をマクロ処理を実行する前のマクロ記述を含むプログラム部品に反映させるマクロ逆変換処理手段とを具備することを特徴とする。
このような構成により、多岐にわたるアプリケーションに対応できるように可変性を有するプログラム部品に対して効率よくデバッグ処理を実行することが可能となる。
また、デバッグ処理の過程で発生した修正をコメントとして記述することで、そのコメントを参照して特定のアプリケーション専用プログラム部品を、可変性を有するマクロ記述を含むプログラム部品に変換することが可能となる。
本発明の実施の形態においては、マクロ逆変換処理手段によって得られたマクロ記述を含むプログラム部品を、プログラム部品を格納するプログラム部品データベースに格納する手段とをさらに具備することを特徴とする。
このような構成により、デバッグ処理にて知見されたバグ等に対応する修正をプログラムデータベースに自動的に反映させることが可能となる。
本発明の実施の形態においては、デバッグ処理が、仮想入力と期待出力とを設定可能とされた単体テストツールとPLCシミュレータを含む仮想実行環境において実行され、単体テストツールは、シミュレータに仮想入力を与える手段と、PLCシミュレータからの出力を予め設定された期待出力と比較してテストの可否を判断する手段と、をさらに具備することを特徴とする。
このような構成により、特定アプリケーション専用プログラムに対して仮想のラダー実行環境にてプログラム部品単体でのテストが実行可能とされ、実際にプログラム部品を組み込んでラダープログラムを作成する前に、部品単位でデバッグ作業が行うことが可能となる。ため、デバッグ処理の作業効率が向上する。また、デバッグ処理の過程で生じた修正は自動的にマクロ逆変換処理によってプログラム部品データベースに反映されるため、デバッグ処理とデータベースへの修正入力処理の作業効率が向上する。
以上の説明で明らかなように、本発明によれば、マクロを含むラダープログラムのデバッグ作業において、手作業での煩雑な作業を省くことが可能となり、開発作業効率を向上させるという利点を有する。
また、本発明によれば、修正された特定アプリケーションのプログラム部品の変更点のみを、原始プログラム(マクロ記述を含む資産部品)に自動反映できるようになり、作業効率を向上させることが可能となるという利点を有する。
以下に、この発明の好適な実施の一形態を添付図面を参照しながら詳細に説明する。
本発明においては、対象となる製品のアプリケーション群(プロダクトライン)において共通性と差異性とを分析し、共通部分と差異部分とが一つの部品内に混在しないように部品を設計する。図1に製品の共通性と差異性とを分けた一例を説明する図が示されている。同図(a)には、開発対象のみを考慮した分析並びに設計の一例が示されている。同図にて示されるように、対象となる製品のみを考慮した場合、その製品を基礎として、異なる状況に対応できるような次の製品、並びに製品のバリエーションを作成する際に、例えば、同図の変更箇所1〜4にて示されるように変更箇所が多岐にわたってしまう。そのため、次の製品を作成するためにどこを変更すればよいのか分かりづらくなってしまう。また、それらの変更箇所1〜4は、モジュールA〜Dに組み込まれており、変更箇所のみを入れ替えて対応することが困難である。そのため、共通部分が多く、部分的な変更によって対応できるような場合においても再度製品を作成する必要が生じてしまうことがある。そこで、同図(b)にて示されるように、対象となる製品のみではなく、製品の品揃えに加えて将来のバージョンアップも含めて、共通性と差異性とを分析することによって、同図(c)にて示されるように、対象製品のバリエーションにおいて差異部分のみをまとめたモジュール5を構成することが可能となる。そして、このように共通部分と差異部分とを明確に分けて部品設計を行うことにより、異なる製品バリエーション等を作成する際にはその差異部分に対応する別のモジュール6と置き換えることにより容易に当該製品のバリエーションを作成することが可能となる。
図2には、一つの実施形態として検査装置10が示されている。同図において点線にて描かれた円11〜17にて示されるように、当該検査装置はその機能や処理内容によって大まかに7つの部分に分けられる。
先ず、供給部11を介して当該検査装置において検査対象となるワークが装置へと供給される。そして、エレベータ12とロードアーム13とを介して、ワークはインデックステーブル14へと移動する。このインデックステーブル14が回転動作を行うことにより、ワークは検査位置へと移動し、検査ヘッド15が所定位置に降下し検査を行う。インデックステーブル14は更に回転し、ワークを取り出し位置へと移動する。アンロードアーム16によってワークはインデックステーブル14から取り出され、排出部17は、検査結果に従い良品/不良品とを分別して排出する。
次に、上記の検査装置に対して、同様の検査機能を有するものの、一部の特性において仕様の異なるバリエーションが表形式にて図3に示されている。同図における検査装置Aが先に図2を用いて説明した検査装置の一例であり、検査装置Bとは、その検査装置Aの特性を一部を変更したバリエーションである。同図に示される検査装置Aと検査装置Bとの特性を比較すると、ワークの搬入及び搬出に関しては双方ともロボット輸送を採用しているが、それ以外の特性においては差異が見られる。例えば、供給部において、検査装置Aはエレベータ供給を採用しているが、検査装置Bは採用していない。同様に、検査対象のワークを位置決めするために、検査装置Aはインデックステーブルを用いているが、検査装置Bはベルトコンベアを採用している。同様に、ワークの停止位置についても、検査装置Aは4ポジションによる位置決めを行っているが、検査装置Bではセンサによる位置決めを採用している。そして、検査を行う際に、検査装置Aはカラーセンサを採用しているが、検査装置Bは画像センサを用いている。また、検査後のワークの排出については、検査装置Aはロボットによる良品と不良品との分別を行っており、検査装置Bでは不良品のみを押し出す方法を採用している。
これらの検査装置A並びに検査装置Bを特性によって共通部分と差異部分とに分けたコンポーネント図が図4〜6に示されている。図4には、コンポーネントの全体図が示されている。同図にて示されるように、検査装置20は、ワーク搬入部21、位置決め部22、検査部23、及びワーク搬出部24に区分されている。そして、ワーク搬入部21は、さらに供給部21aとロードアーム21bとが備えられている。そして、位置決め部22にはインデックステーブル22aとベルトコンベア22bが、検査部23には検査方法25が、そしてワーク搬出部24にはアンロ―ドアーム24aと仕分け部24bとがそれぞれ備えられている。
図5には、ワーク搬入部21における検査装置A並びに検査装置Bの共通性と差異性が示されている。同図にて示されるように、検査装置Aは、ワーク搬入部21として供給部(エレベータ供給)21aとロードアーム21bが備えられているが、それに対して検査装置Bは供給部21aはなく、ロードアーム21bのみ備えられている。すなわち、これらの検査装置においては、供給部21aが差異部分であり、ロードアーム21bは共通部分となる。そして、このように製品バリエーションにおける差異部分となった供給部21aは、オプション部品として切り出しておく。
図6には位置決め部22における検査装置A並びに検査装置Bの共通性と差異性が示されている。同図にて示されるように、検査装置Aは、位置決め部22としてインデックステーブル22aを採用しているが、それに対して検査装置Bはベルトコンベア22bを採用している。すなわち、これらの検査装置においては、インデックステーブル22aとベルトコンベア22bとのいずれかを選択することとなる。そして、このような場合は、インデックステーブル22aとベルトコンベア22bとを代替部品(代替コンポーネント)として切り出しておく。
このとき、ラダープログラムにて必要な回路を行単位で取り出すマクロ例としては、
!$IF(condition)[
true statements
!][
false statements
!]
となる。ここで、conditionには、条件を記述する。ある特性が選択されているかどうかを条件とする場合は、
;$feature=true
もしくは、
;$feature=false
と記述する。このとき、feature(特性)には、特定の特性名を指定する。そして、true statementsとfalse statementsには、取り出したい範囲の回路が入り、行コメントに記述された[]で囲む。
このようなマクロを使用した例が図7及び8に示されている。図7には上述のワーク搬入部21のファンクションブロックが示されており、オプションの扱いが示されている。同図にて示されるように、『エレベータ供給』が条件として記述されており、オプションとして選択されていることが示されている。
そして、図8には位置決め部22のファンクションブロックが示されており、代替の扱いが示されている。同図にて示されるように、インデックステーブルとベルトコンベアが代替として記述されている。このように、アプリケーション毎の部品に生じる差異は部品の変形で対応する。尚、ここでは、ワーク搬入部21におけるエレベータ供給と、位置決め部22におけるインデックステーブルとベルトコンベアについて説明したが、他の差異についても同様に対応できることは言うまでもない。
図9及び図10に、特性モデルの例が示されている。特性モデルとは、後に詳細に説明するが、製品ラインアップを特性によって表現したモデルである。これらの図にて示されるように、検査装置30は、その特性によって供給31,ワーク搬入32,位置決め33,検査34,ワーク搬出35,排出36のコンポーネントに分けられる。そして、供給31にはエレベータ供給がオプション・コンポーネントとして備えられている。ここで、エレベータ供給に設けられている円37aは、この特性がオプション・コンポーネントとして選択可能に設定されていることを示している。それに対して、ワーク搬入32及びワーク搬出35に設けられたロボット輸送38及び40は、オプションとしての特性ではないため、エレベータ供給37における円37aのような表示はされていない。
また、位置決め33には停止位置39が設けられており、その停止位置は、その特性上さらに4ポジション39aとセンサによる位置決め39bとが代替コンポーネントとして設けられている。同様に、検査34にはカラーセンサ34aと画像センサ34bが、そして排出36には不良品のみ押し出し36aとロボットによる分別36bとがそれぞれ代替コンポーネントとして設定されている。
図10は、上述の特性モデルにおいて、オプションの選択有無、及びどちらの代替コンポーネントが使用されているかを示している。同図にて示されるように、オプションとして設けられているエレベータ供給37には、黒点41にてマーキングが施されている。この黒点41は、対象となる特性コンポーネントが選択されていることを示すものである。同様に、4ポジション39a、画像センサ34b、及びロボットによる分別36bにも黒点41が施され、これらの特性が選択されていることを示している。そして、このような特性を組み合わせていくと、先に説明した検査装置Aのような特性を有する検査装置が実現される。さらに、このような特性モデル、並びに特性の選択有無をしめすマーキングをユーザに対して画像モニタ等にて表示することによって、どの特性が選択されているのか、並びに選択可能な特性が一目瞭然となる。
次に、本発明における実施形態のソフトウェア構成図が図11に示されている。
同図にて示されるように、この実施形態においては、ドメイン分析支援ツール50、プログラム部品管理ソフトウェア60、ラダー・プログラミング・ツール70、及びプログラム部品データベース80とによって概略構成されている。
ドメイン分析支援ツール50内のFeatureモデルエディタ(以下、特性モデルエディタと言う)51とは、開発対象ドメインにおける製品ラインアップの共通性と差異性とを分析し、製品ラインアップを『特性』によって表現した分析モデルである『Feature Model(以下、特性モデルと言う)』と製品の特性情報52を作成するものである。
次に、プログラム管理ソフトウェア60内の各機能を説明する。プロダクト・パラメータ・マネージャ61とは、ある製品のアプリケーションを構築するために必要なプログラム部品群と、そこに含まれるマクロへの入力パラメータセット(以下、プロダクト・パラメータと言う)を管理するものである。本実施形態では、ドメイン分析支援ツール50が作成する特性モデルと、製品の特性情報52を元に、プロダクト・パラメータを作成する機能も備えている。
コンポーネント・マネージャ66とは、ラダープログラムの作成用のプログラム部品65が格納されているプログラム部品データベース80から、プロダクト・パラメータ・マネージャ61によって作成されたプロダクト・パラメータに従い、必要となるラダープログラム部品を取り出す機能を有する。また、プログラム部品データベース80に格納されていない部品を新規作成したり、既存のプログラム部品65に編集を加えた場合において、新たに作成されたプログラム部品65をプログラム部品データベース80に格納する機能も有する。
コンポーネント・エディタ62とは、マクロを含んだラダープログラム部品の編集を行うものである。この実施形態においては、マクロの編集機能と、ラダープログラムの編集機能とを併せ持っている。
コンポーネント・デバッガ63とは、マクロ処理事項前後での、ラダープログラムの紐付け情報を管理する。マクロ処理後のプログラム部品に対する修正や変更を、マクロ処理実行前の汎用的なプログラム部品に反映させる機能を有する。
マクロ・プロセッサ67とは、マクロ記述とプロダクト・パラメータに従い、ラダープログラムの変形を実行し、特定アプリケーション用のプログラム部品を生成する機能を有する。
そして、ラダー・プログラミング・ツール70には、図示しないラダーエディタ・デバッガが含まれており、一般的なラダープログラミングツールであるため、詳細な説明は省略する。このラダープログラミングツール70では、プログラム部品管理ソフトウェアによって生成されたラダープログラム部品(特定アプリケーション専用プログラム部品90)を用いて、アプリケーションを作成する。また、ラダー・プログラミング・ツール70は、図示しないが、PLCシミュレータと単体テストツール等によって構成されるラダー実行環境と接続されており、作成されたプログラムをラダー実行環境へとダウンリロードし、単体テストを実行可能とする。
次に、図12〜図14に、全体の処理を示すフローチャートが示されている。これらのフローチャートにて示されるように、特性モデルエディタ51は、ユーザが選択した特性を保存する(ステップ1001)。続いて、プロダクト・パラメータ・マネージャ61が特性選択結果よりマクロへの入力パラメータ64を生成する(ステップ1002)。続いて、コンポーネント・マネージャ66は、ユーザが選択したコンポーネントを記憶し(ステップ1003)、プログラム部品データベース80より資産プログラム部品(マクロ記述済みのプログラム部品)65を取り出し(ステップ1004)、資産プログラム部品65と入力パラメータ64とをマクロ・プロセッサへと渡す(ステップ1005)。マクロ・プロセッサ67は、マクロ処理を実行し、資産プログラム部品65を変形して、特定アプリケーション専用プログラム部品90を生成する(ステップ1006)。
図11に続き、コンポーネント・デバッガ63は、特定アプリケーション専用プログラム部品90をラダー・プログラミング・ツール70へと送る(ステップ1007)。そして、ラダー実行環境にプログラムをダウンロードし、単体テストを実行する(ステップ1008)。この単体テストに合格しない場合(ステップ1009,NO)、ラダー・プログラミング・ツール70にてプログラムを修正し(ステップ1010)、ステップ1008に戻りラダー実行環境にダウンロードし単体テストを実行する。それに対して、ステップ1008の単体テストに合格した場合(ステップ1009,YES)、ラダー・プログラミング・ツール70にてプログラムをアップロードする(ステップ1011)。続いて、コンポーネント・デバッガ63にてマクロの逆変換処理を実行する(ステップ1012)。ここで、マクロの逆変換処理に成功した場合(ステップ1013,YES)、コンポーネント・デバッガ63にてマクロの逆変換処理を実行し(ステップ1014)、コンポーネント・マネージャ66が資産プログラム部品を上書き更新する(ステップ1015)。それに対して、ステップ1012におけるマクロの逆変換処理が成功しなかった場合(ステップ1013,NO)、修正前との差分を表示し(ステップ1016)、ユーザがコンポーネント・エディタ62で直接資産プログラムの更新を実行する(ステップ1017)。ここでのマクロ逆変換処理が成功しない場合とは、マクロ処理した部分にユーザが変更を加えた場合のことであり、その修正が加えられる前との差分(差異部分)を表示して、ユーザが直接マクロプログラムを更新するようにしたものである。
続いて、図15及び図16に、マクロ処理のフローチャートが記されている。同図にて示されるように、先ず資産プログラム部品を格納しているファイルがオープンされ(ステップ1301)、新しい特定アプリケーションプログラム部品90を格納するファイルを新規作成する(ステップ1302)。続いて、資産プログラム部品のスキャンが実行される(ステップ1303)。資産プログラム部品65をスキャンした結果、ファイルの終わりであれば(ステップ1304,YES)、資産プログラム部品ファイル、特定アプリケーションプログラム部品ファイルをクローズし、処理を終える(ステップ1305)。
ステップ1303に戻り、資産プログラム部品65をスキャンした結果、ファイルの終わりでなければ(ステップ1304,NO)、続いてマクロ処理が行われているかどうかの判別が実行される(ステップ1306)。このとき、マクロ処理が行われていなければ、資産プログラム部品65から特定アプリケーション専用プログラム部品90に、その行を単純コピーし(ステップ1307)、ステップ1304に戻りファイルの終わりであるかどうかの判別を実行する。それに対して、マクロ処理がある場合(ステップ1306,YES)、マクロ命令を取り出し(ステップ1308)、マクロIDをインクリメントする(ステップ1309)。
続いて、取り出されたマクロ命令の種類の判別が行われる(ステップ1310)。このとき、同図においては、必要な回路を取り出す(ステップ1311)、回路を行単位でコピーする(ステップ1312)、及び命令をAND接続でコピーする(ステップ1313)の3つが記載されているが、これらはマクロ命令の一例に過ぎず、後に説明する様々なマクロ命令の種類の判別を実行する。マクロ命令の種類判別が実行されると、続いて、コメントとして記述されているマクロ命令にマクロIDを追加する(ステップ1314)。ここで言うマクロIDとは、ラダープログラムにおけるマクロ処理の記述部位を示す識別子であり、例えば、ライン番号等が用いられる。そして、マクロ命令で削除されるオリジナル回路はコメントアウトし、マーク(REM文とマクロIDを追加)を付けておく(ステップ1315)。ここで言うREMとは、Remarkの略であり、コメントが挿入されていることを意味するものである。
その後、マクロ命令で追加、変形された結果の回路の前後にコメントでマクロIDを挿入する(ステップ1316)。ここで、その例を以下に示す。
MacroID=3:マクロ命令[]
]
BEGIN(3)
変形結果
END(3)
マクロIDの挿入後、特定アプリケーションプログラム部品ファイルに一連の処理を書き出し(ステップ1317)、ステップ1304に戻ってファイルの終わりであるかどうかの識別を実行し、その後上述の処理を繰り返す。
本実施形態においては、ラダープログラムに対して以下の操作を行うためのマクロを定義する。
<宣言の変更>
(1)変数宣言の複製
(2)変数名の変更
(3)入出力属性の変更
<ラダー回路の変更>
(1)接点名の変更
(2)応用命令へのオペランド変更
(3)ファンクション・ブロック・インスタンスの入れ替え
(4)ライン内の特定のIN接点のn倍化
(ア)IN接点を連番で複製し、AND命令で接続
(イ)IN接点を連番で複製し、OR命令で接続
(5)ライン内の特定のOUT接点のn倍化
(ア)OUT接点を連番で複製し、OR命令で接続
(イ)応用命令を連番で複製し、OR命令で接続
(ウ)ファンクション・ブロック・インスタンスを連番で複製し、OR命令で接続 (6)ライン単位での変形
(ア)ブロック単位での入れ替え
(イ)ブロック単位でのn倍化
(7)POU(Program Organization Unit:プログラム部品)名の変更
(8)POUのn倍化
そして、図17に、本実施形態におけるマクロの定義体系が示されている。同図にて示されるように、この例でのマクロ定義は、FB(Function Block)内部変数宣言の操作、回路の操作、POU操作の3つに大別され、それらの操作からさらに詳細操作が枝分かれしている。
本マクロを使用した例が図18に示されている。同図にて示されるケースは、先に説明した、行単位で必要な回路を取り出すマクロの一例であり、inputというオプションが存在していることが前提とされる。図18(a)では、行単位で回路を取り出す条件として、inputと言う特性が記述されており、そのinputが選択されていることが条件であることを示す
;$feature(この例ではinput)=true
という記述もされている。これに対してマクロ処理を行う。inputという特性が選択されていると、図18(b)の回路が得られる。それに対して、inputとい特性が選択されていないと、条件が満たされていないため、上同図(b)の回路は取り出されずに、図18(c)の回路が得られる。このとき、条件として記述されている特性が選択されているか否かは先に図9及び図10を参照して説明した特性モデルで確認することが可能である。
この処理をテキストファイル形式で表したものが図19に示されている。同図にて示されるように、条件である特性(input)が選択されているかどうかで得られる回路は異なる。同図左側が、inputが選択されている場合を示し、同図右側がinputが選択されていない場合を示している。尚、他のマクロの例が図20の表に示されている。図20の表にてFBとは、Function Blockの略であり、ファンクションブロックを意味するものであり、POUとは、上述のプログラム部品を意味する。
次に、図21〜24を参照して本発明による、マクロ記述を含むプログラム部品のデバッグ方法を説明する。図21には、特定アプリケーション専用プログラム部品のデバッグ処理と、ツールの機能の関係を説明するための図が記されている。
同図にて示されるように、コンポーネントエディタ120は、プログラム部品データベース130に格納されているプログラム部品を取り出し、その部品に対してマクロ記述を埋め込むことによりマクロ入り資産部品の作成を行い、作成されたマクロ記述入り資産部品をプログラム部品データベース130に格納する。そして、プログラム部品管理ソフトウェア140内に格納されているマクロ処理部141(マクロプロセッサ)が、当該マクロ記述が埋め込まれたプログラム部品に対してマクロ処理を実行し、プログラム部品に対する変形を実行する。
マクロプロセッサ141によって変形されたプログラム部品(同図では変形部品)151は、特定アプリケーション専用プログラム部品150となり、ラダープログラミングツール160へと送られる。ラダープログラミングツール160は、単体テストツール171とPLCシミュレータ172を備えたラダー実行環境170に接続されており、特定アプリケーション専用プログラム部品150を用いたプログラムを作成し、ラダー実行環境170へとダウンロードする。ラダー実行環境170とは、テストを実行するための仮想実行環境である。ラダー実行環境170においては、単体テストツール171がダウンロードしたプログラムをPLCシミュレータ172に仮想入力し、単体テストを実行する。このとき、単体テストツール171は、仮想入力と期待出力のペアがテストケースとして設定されている。そして、PLCシミュレータ172に仮想入力を与え、PLCシミュレータ172からの出力と、設定していた期待出力とを比較して、単体テストのOK/NGを判定する。単体テストの結果がNGであれば、ラダープログラミングツール160にて部品の修正が実行され、テストに合格するまで繰り返し実行される。
ラダープログラミングツール160にて修正された部品152は特定アプリケーション専用プログラム部品150として、プログラム部品管理ソフトウェア140に格納されるマクロ逆変換部(コンポーネントデバッガ)142によって、マクロの逆変換処理が実行される。このマクロ逆変換部142にてマクロの逆変換処理が実行されることにより、単体テストに合格した修正された部品152を、マクロ記述入りのプログラム部品の状態に戻すことが可能となり、その状態でプログラム部品データベース130にマクロ実行前の資産部品にラダープログラミングツール160で行われた修正が反映され、格納される。
このマクロの逆変換処理のフローチャートが図22に示されている。同にて示されるように、先ず、資産プログラム部品を格納する一時ファイルを新規作成する(ステップ2401)。続いて、特定アプリケーション専用プログラム部品を格納するファイルをオープンし(ステップ2402)、特定アプリケーション専用プログラム部品をスキャンする(ステップ2403)。このとき、ファイルの終わりであれば(ステップ2404,YES)、資産プログラム部品ファイル、特定アプリケーション専用プログラムファイルをクローズし(ステップ2405)、作業は終了する。これに対して、ファイルの終わりでなければ(ステップ2404,NO)、続いて当該特定アプリケーション専用プログラム部品にREMマークが記述されているかどうかの識別が実行される(ステップ2406)。ここでのREMとは、先に説明したように、コメントが挿入されていることを示す識別子であり、REMマークがあるということは、ラダープログラミングツールにて修正が実行されたことを意味するものである。
そして、REMマークがある場合(ステップ2406,YES)、当該特定アプリケーション専用プログラム部品からREMマークを削除し、コメントアウトを解除したものを資産プログラム部品にコピーし(ステップ2407)、ステップ2403に戻り、特定アプリケーション部品のスキャンを行い、ファイルの終わりに到達するまで作業を繰り返す。
また、ステップ2406において、REMマークがない場合(ステップ2406,NO)、続いてBEGINマークの有無が確認される(ステップ2408)。ここで、BEGINマークがある場合(ステップ2408,YES)、ENDマークまでスキップし(ステップ2409)、ステップ2404に戻り特定アプリケーション部品のスキャンを行い、ファイルの終わりに到達するまで作業を繰り返す。また、ステップ2408にてBEGINマークがない場合(ステップ2408,NO)、特定アプリケーション専用プログラム部品から資産プログラム部品に対象となる行を単純コピーし(ステップ2410)、ステップ2404に戻り特定アプリケーション部品のスキャンを行い、ファイルの終わりに到達するまで作業を繰り返す。
本発明においては、プログラム部品には、様々なアプリケーションに対応できるように、変化点(変更箇所)にマクロ記述が組み込まれている。そして、このマクロ記述を含むプログラム部品に、パラメータを入力することによって、特定のアプリケーション専用のプログラム部品が作成される。ところが、マクロ記述を含むプログラム部品は、先に説明したように、多様のアプリケーションに対応できるように部品の変化点ををマクロとして組み込んでいるため、その状態ではシミュレータによるテストやデバッグ処理が実行できない。
そこで、上述のように、特定アプリケーション専用プログラム部品をマクロ処理によって作成し、テストやデバッグ処理を実行できる状態にすることが必要となる。また、デバッグ処理の過程で、特定アプリケーション専用プログラム部品に不具合が生じて修正が必要となった場合、その修正箇所並びに修正内容をコメントとして特定アプリケーション専用プログラム部品に記述することによって、当該コメントを参照して特定アプリケーション専用プログラム部品に対してマクロ逆変換処理を実行して原始プログラムであるマクロ記述を含むプログラム部品を得ることが可能となる。その後、得られたマクロ記述を含むプログラム部品をプログラム部品データベースに反映させることにより、マクロ記述を含むプログラム部品のデバッグ処理並びにデータベースへの反映を自動的に行うことが可能となり、デバッグ処理の作業効率が向上する。
次に、図23及び図24を参照して、マクロ逆変換処理の一例を説明する。図23には、マクロ記述入りの資産部品(マクロ処理実行前)に対してマクロ処理を実行した場合の一例が示されており、図24には、特定アプリケーション専用プログラム部品に対してマクロ逆変換処理を実行した一例が示されている。
図23にて示されるように、資産部品において設定されている条件(inputという特性が選択されているかどうか)によって、2通りの処理が実行される。このことは、先に説明したのでここでの説明は省略する。ここで、inputがtrueであると仮定し、その結果作成された部品が特定アプリケーション専用プログラム部品であるとする。この場合、inputがtrueとなり、条件を満たしているため、
LD in
OUT out
が選択され、
LD in_1
AND in_2
OUT out
は削除される。そして、削除した項目については、REM文によってコメントとして残されている。
続いて、図24似て示されるように、この特定アプリケーション専用プログラム部品に対してマクロ逆変換処理を行うと、削除された項目については、当該特定アプリケーションプログラム部品にREM文にてコメントとして記述されているため、マクロ逆変換処理を実行することにより、容易にマクロ処理前の資産部品を得ることが可能となる。ここで、同図にて『xxxxxxx』にて示されるのは、当該特定アプリケーション専用プログラム部品が、単体テストの結果を受けてラダープログラミングツールが何らかの修正を施していた場合であり、その修正部分を表している。この修正がマクロ逆変換処理によって資産部品にも反映されている。このようなマクロ逆変換処理、並びに特定アプリケーション専用プログラム部品に施された修正事項を資産部品に自動反映させることにより、ラダー実行環境において好適な資産部品を再構築して以後の使用に備えて保存することが可能となる。
本発明によれば、マクロを含むラダープログラムのデバッグ作業において、手作業での修正反映などの煩雑な作業を自動化し、作業効率を向上させることが可能となるという利点を有する。
製品の共通性と差異性との分析を説明する図である。 本発明の一実施形態である検査装置の構造を示す図である。 検査装置における特性のバリエーションを表形式で示した図である。 コンポーネントの全体構成図である。 オプションコンポーネントを説明する図である。 代替コンポーネントを説明する図である。 オプションコンポーネントを記述するファンクションブロックの一例を示す図である。 代替コンポーネントを記述するファンクションブロックの一例を示す図である。 特性モデルの全体図である。 特性モデルにおいて、オプションコンポーネントと代替コンポーネントの選択状態を示す図である。 本発明の実施形態におけるソフトウェア構成図である。 全体の処理を示すフローチャート(その1)である。 全体の処理を示すフローチャート(その2)である。 全体の処理を示すフローチャート(その3)である。 マクロ処理を示すフローチャート(その1)である。 マクロ処理を示すフローチャート(その2)である。 マクロの定義体系を説明するための図である。 本発明のマクロ処理の実行例を説明するための図である。 本発明のマクロ処理をテキストファイル形式で表した図である。 本発明におけるマクロの一例を示す図である。 特定アプリケーション専用プログラム部品のデバッグ処理とツールの機能の関係を説明するための図である。 マクロ逆変換処理を示すフローチャートである。 マクロ処理を実行した一例を説明するための図である。 マクロ逆変換処理を実行した一例を説明するための図である。 ファンクションブロックによるプログラムの階層構造を説明する図である。
1〜4 変更箇所
5 差異箇所のモジュール
6 変更用モジュール
10 検査装置
11 供給部
12 エレベータ
13 ロードアーム
14 インデックステーブル
15 検査部
16 アンロードアーム
17 排出部
20 検査装置
21 ワーク搬入部
21a 供給部
21b ロードアーム
22 位置決め部
22a インデックステーブル
22b ベルトコンベア
23 検査部
24 ワーク搬出部
24a アンロードアーム
24b 仕分け部
25 検査方法
50 ドメイン支援分析ツール
51 Featureモデルエディタ
52 製品の特性情報
60 プログラム部品管理ソフトウェア
61 プロダクト・パラメータ・マネージャ
62 コンポーネント・エディタ
63 コンポーネント・デバッガ
64 入力パラメータ
65 プログラム部品
66 コンポーネント・マネージャ
67 マクロプロセッサ
70 ラダー・プログラミング・ツール
80 プログラム部品データベース
90 特定アプリケーション専用プログラム部品
100 エアシリンダ
101 シリンダー部
102 アーム部
111 ロボットアーム制御プログラム
112 エアシリンダ制御プログラム
113 磁気センサ制御プログラム

Claims (6)

  1. ラダープログラムを作成するためのプログラム部品のデバッグ方法であって、
    当該ラダープログラムの接点や回路を組み替えることを目的としたマクロ処理言語をプログラム部品に記述するステップと、
    マクロ記述を含むプログラム部品にマクロ処理を実行し、特定アプリケーション専用プログラム部品へと変形させるマクロ処理ステップと、
    特定アプリケーション専用プログラム部品に対して単体テストを実行し、テスト結果に応じて適宜修正を行うデバッグ処理を実行するデバッグ処理ステップと、
    デバッグ処理にて行った修正を、特定アプリケーション専用プログラム部品にその修正箇所と修正内容をコメントとして記述するステップと、
    前記コメントが記述された特定アプリケーション専用プログラム部品を逆変換する際には、記述されたコメントを参照して、デバッグ処理にて行った修正をマクロ処理を実行する前のマクロ記述を含むプログラム部品に反映させるマクロ逆変換処理ステップ
    を具備するプログラム部品のデバッグ方法。
  2. マクロ逆変換処理ステップによって得られたマクロ記述を含むプログラム部品を、プログラム部品を格納するプログラム部品データベースに格納するステップをさらに具備する請求項1に記載のプログラム部品のデバッグ方法。
  3. デバッグ処理が、仮想入力と期待出力とを設定可能とされた単体テストツールとPLCシミュレータを含む仮想実行環境において実行され、
    単体テストツールは、シミュレータに仮想入力を与えるステップと、
    PLCシミュレータからの出力を予め設定された期待出力と比較してテストの可否を判断するステップと、
    をさらに具備する請求項1に記載のプログラム部品のデバッグ方法。
  4. ラダー言語によって記述された複数のプログラム部品を組み合わせて機器制御プログラムにおけるプログラム部品のデバッグ処理を支援するデバッグ支援装置であって、
    当該ラダープログラムの接点や回路を組み替えることを目的としたマクロ処理言語をプログラム部品に記述する手段と、
    マクロ記述を含むプログラム部品にマクロ処理を実行し、特定アプリケーション専用プログラム部品へと変形させるマクロ処理手段と、
    特定アプリケーション専用プログラム部品に対して単体テストを実行し、適宜修正を行うデバッグ処理を実行するデバッグ処理手段と、
    デバッグ処理にて行った修正を、特定アプリケーション専用プログラム部品にその修正箇所と修正内容をコメントとして記述する手段と、
    前記コメントが記述された特定アプリケーション専用プログラム部品を逆変換する際には、記述されたコメントを参照して、デバッグ処理にて行った修正をマクロ処理を実行する前のマクロ記述を含むプログラム部品に反映させるマクロ逆変換処理手段と
    を具備することを特徴とするプログラム部品のデバッグ支援装置。
  5. マクロ逆変換処理手段によって得られたマクロ記述を含むプログラム部品を、プログラム部品を格納するプログラム部品データベースに格納する手段をさらに具備することを特徴とする請求項4に記載のデバッグ支援装置。
  6. デバッグ処理が、仮想入力と期待出力とを設定可能とされた単体テストツールとPLCシミュレータを含む仮想実行環境において実行され、
    単体テストツールは、シミュレータに仮想入力を与える手段と、
    PLCシミュレータからの出力を予め設定された期待出力と比較してテストの可否を判断する手段と、
    をさらに具備することを特徴とする請求項4に記載のデバッグ支援装置。
JP2005289245A 2005-09-30 2005-09-30 可変性を有する制御部品のデバッグ方法、及びデバッグ支援装置 Active JP4488227B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005289245A JP4488227B2 (ja) 2005-09-30 2005-09-30 可変性を有する制御部品のデバッグ方法、及びデバッグ支援装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005289245A JP4488227B2 (ja) 2005-09-30 2005-09-30 可変性を有する制御部品のデバッグ方法、及びデバッグ支援装置

Publications (2)

Publication Number Publication Date
JP2007102380A JP2007102380A (ja) 2007-04-19
JP4488227B2 true JP4488227B2 (ja) 2010-06-23

Family

ID=38029282

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005289245A Active JP4488227B2 (ja) 2005-09-30 2005-09-30 可変性を有する制御部品のデバッグ方法、及びデバッグ支援装置

Country Status (1)

Country Link
JP (1) JP4488227B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4613214B2 (ja) 2008-02-26 2011-01-12 日立オートモティブシステムズ株式会社 ソフトウェア自動構成装置
US8095880B2 (en) 2008-04-22 2012-01-10 International Business Machines Corporation System administration discussions indexed by system components
JP4907610B2 (ja) 2008-07-29 2012-04-04 日立オートモティブシステムズ株式会社 ソフトウェア構成管理方法およびシステム
JP5626786B2 (ja) 2010-11-09 2014-11-19 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ソフトウエア開発支援方法とソフトウエア開発支援装置とソフトウエア開発支援プログラム
US9440288B2 (en) 2012-11-05 2016-09-13 Fluor Technologies Corporation FSW tool with graduated composition change

Also Published As

Publication number Publication date
JP2007102380A (ja) 2007-04-19

Similar Documents

Publication Publication Date Title
Stănciulescu et al. Concepts, operations, and feasibility of a projection-based variation control system
US20110161938A1 (en) Including defect content in source code and producing quality reports from the same
US8572583B2 (en) Method and system for testing software for industrial machine
CN109918081B (zh) 一种编译方法及编译器
JP2007012003A (ja) フィーチャ指向ソフトウェア製品ラインの開発環境を提供するシステム
JP4488227B2 (ja) 可変性を有する制御部品のデバッグ方法、及びデバッグ支援装置
KR20060120539A (ko) 그래피컬 프로그래밍 장치 및 프로그래머블 표시기
US20190012168A1 (en) Program generating apparatus
JP4488226B2 (ja) ラダープログラムの高機能部品化を実現するマクロプログラム
KR20190094779A (ko) Plc 명령어 컴파일러 테스트케이스 자동 생성 장치
JP2009193181A (ja) ソフトウェアの開発支援システム、支援方法およびこの方法のプログラム
CN110928760A (zh) 一种嵌入式系统中的单元测试方法与装置
JP2009104252A (ja) デバッグ支援装置およびデバッグ支援方法
JP2009086898A (ja) プログラム可能な論理制御装置用マシーンコード・プログラムのコンパイル法
JP6483507B2 (ja) 制御プログラム作成装置、及び制御プログラムのデバッグ方法
JP4888663B2 (ja) 検証用プログラム自動生成装置、その方法及びプログラム
JP4488231B2 (ja) プログラム管理装置
Julius et al. A model-driven approach for transforming GRAFCET specification into PLC code including hierarchical structures
Thompson et al. An integrated development environment for prototyping safety critical systems
JP2007128455A (ja) プログラム部品の付属データ生成装置
JP6812861B2 (ja) プログラム作成装置およびプログラム
JP3940389B2 (ja) 検査装置及びプログラミングツール
EP4261678A1 (en) Generation of a technical instruction
JP7392821B2 (ja) 制御用ソフトウェアの自動テスト方法及び装置ならびにコンピュータプログラム
JPH10293683A (ja) プログラムの比較解析装置、プログラムの比較解析方法、及びプログラムの比較解析プログラムを記録した機械読み取り可能な記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080314

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091209

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100205

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: 20100310

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100323

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140409

Year of fee payment: 4