(57)【特許請求の範囲】
【請求項１】
フィードバックのためのループを含むサーボ制御用のブロック線図により記述された線図データを取得する線図取得部と、
前記線図取得部によって取得された線図データを線図プログラムに変換する第１変換部と、
組み込みシステムのシーケンス制御が所定の態様で記述されたシーケンスデータに、前記第１変換部による変換の結果得られる線図プログラムを、シーケンス制御のステップとして関連付ける関連付け部と、
線図プログラムと関連付けられたシーケンスデータをシーケンスプログラムに変換し、関連付けられた線図プログラムをシーケンスプログラムに含める第２変換部と、を備えることを特徴とする編集装置。
【請求項２】
前記線図取得部によって取得された線図データに対応するブロック線図のブロックで使用される制御パラメータのうち、変数として扱われるべきパラメータの指定を受け付ける第１変数指定受付部をさらに備え、
前記第１変換部は、指定されたパラメータを変数として線図プログラムに含め、
本編集装置はさらに、
前記関連付け部によって複数のステップに同じプログラムが関連付けられている場合、そのステップごとに変数の値の指定を受け付ける第２変数指定受付部を備え、
前記第２変換部は、前記第２変数指定受付部にて複数のステップごとに受け付けた変数の値を指定するコードをシーケンスプログラムに含めることを特徴とする請求項１に記載の編集装置。
【請求項３】
線図プログラムと関連付けられたシーケンスデータがシーケンスプログラムに変換される際、シーケンスプログラムのうち線図プログラムに対応する部分の変数のデータ型と、それ以外の部分の対応する変数のデータ型と、の整合をとるコードを生成する整合コード生成部をさらに備え、
前記第２変換部は、前記整合コード生成部にて生成したデータ型の整合をとるコードをシーケンスプログラムに含めることを特徴とする請求項１または２に記載の編集装置。
【請求項４】
フィードバックのためのループを含むサーボ制御用のブロック線図により記述された線図データを取得するステップと、
取得された線図データを線図プログラムに変換するステップと、
組み込みシステムのシーケンス制御が所定の態様で記述されたシーケンスデータに、変換の結果得られる線図プログラムを、シーケンス制御のステップとして関連付けるステップと、
線図プログラムと関連付けられたシーケンスデータをシーケンスプログラムに変換し、関連付けられた線図プログラムをシーケンスプログラムに含めるステップと、を含むことを特徴とする編集方法。
【請求項５】
フィードバックのためのループを含むサーボ制御用のブロック線図により記述された線図データを取得する機能と、
取得された線図データを線図プログラムに変換する機能と、
組み込みシステムのシーケンス制御が所定の態様で記述されたシーケンスデータに、変換の結果得られる線図プログラムを、シーケンス制御のステップとして関連付ける機能と、
線図プログラムと関連付けられたシーケンスデータをシーケンスプログラムに変換し、関連付けられた線図プログラムをシーケンスプログラムに含める機能と、をコンピュータに実現させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムの編集装置および編集方法に関する。
【背景技術】
【０００２】
現在、多くの産業機器や民生機器に組み込みシステムが使用されている。組み込みシステムは特定の機能を実現するためのコンピュータシステムの総称であり、特に特定の機能を実現するための必要十分条件を満たす、選択および交換不可能なハードウエアとプログラムで構成されるコンピュータシステムであると言ってもよい。
【０００３】
本出願人は特許文献１において、組み込みシステムのソフトウエアの開発環境で利用可能なプログラミング装置を提案している。このプログラミング装置によると、組み込みシステムで実行される予め決められた順序・手続きに沿って動作するシーケンスプログラムを効率よく作成することができる。特許文献１に記載されるプログラミング装置は以下の特徴を有する。
（１）一連のシーケンス処理をモジュール化できる。
（２）同じ一連のシーケンス処理を繰り返し使用する場合は、そのモジュールを複製するだけでよい。
（３）モジュールは内部変数を独自に含むので、同様な一連処理を繰り返しプログラミングする場合は、再利用するモジュールにユーザが内部変数を別に割り当てる必要がない。これにより、複製されたそれぞれのモジュールの内部変数に対し、違う値を与えることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２７１７７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載されるプログラミング装置はシーケンスプログラムのみに特化しており、機械装置のサーボ制御に必要なサーボ制御プログラム等は考慮されていない。例えば、機械装置の複数の軸が同じ動作をする場合は、軸の特性により、制御パラメータは変わっても、サーボ制御プログラムの構造は同じものとなることが多い。この場合、特許文献１の利点が生きるものの、サーボ制御プログラムをシーケンス処理的に記述しようとしても演算式の羅列のような形となり、プログラムが煩雑になる可能性がある。
【０００６】
さらに、サーボ制御プログラム用に別の開発環境を使用したとしても、そのように開発されたサーボ制御プログラムをそのままシーケンスプログラムの開発環境に導入することは、データの互換性の観点から困難である。
【０００７】
本発明はこうした課題に鑑みてなされたものであり、その目的は、組み込みシステムで使用されるプログラムの開発を効率化できるプログラム編集技術の提供にある。
【課題を解決するための手段】
【０００８】
本発明のある態様は編集装置に関する。この編集装置は、ブロック線図により記述された線図データを取得する線図取得部と、線図取得部によって取得された線図データをプログラムに変換する変換部と、組み込みシステムのシーケンス制御が所定の態様で記述されたシーケンスデータに、変換部による変換の結果得られるプログラムを、シーケンス制御のステップとして関連付ける関連付け部と、を備える。
【０００９】
この態様によると、組み込みシステムのシーケンス制御を所定の態様で記述する際、ブロック線図による記述を利用することができる。
【００１０】
なお、以上の構成要素の任意の組み合わせや、本発明の構成要素や表現を装置、方法、システム、コンピュータプログラム、コンピュータプログラムを格納した記録媒体などの間で相互に置換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１１】
本発明によれば、組み込みシステムで使用されるプログラムの開発を効率化できる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態に係る編集装置の機能および構成を示すブロック図である。
【図２】例示的なブロック線図を示す代表画面図である。
【図３】制御パラメータ記述領域の代表画面図である。
【図４】図１の線図データ保持部の一例を示すデータ構造図である。
【図５】線図モジュールの代表画面図である。
【図６】シーケンスデータに同じ線図プログラムに対応する２つの線図モジュールを含めた場合のそれらの線図モジュールの代表画面図である。
【図７】線図モジュール変数指定領域の代表画面図である。
【図８】シーケンスプログラムの構成を示す模式図である。
【図９】図１の編集装置における一連の処理を示すフローチャートである。
【図１０】図１の編集装置におけるデータの流れを示す模式図である。
【発明を実施するための形態】
【００１３】
以下、各図面に示される同一または同等の構成要素、部材、処理には、同一の符号を付するものとし、適宜重複した説明は省略する。
【００１４】
実施の形態に係る編集装置は、組み込みシステムを制御するためのソフトウエアを開発する環境に設けられる。ユーザは所望の制御内容の図的な表現を編集装置に入力し、編集装置は入力された図的な表現を、Ｃ言語などのテキストベースのプログラミング言語で記述されたソースプログラムに変換すなわちコンパイルする。編集装置は、図的な表現として、
（Ａ）サーボ制御やフィードバック制御などのループを含む制御を好適に表せるブロック線図と、
（Ｂ）組み込みシステムのシーケンス制御を記述するのに好適なラダー図やシーケンシャル・ファンクション・チャートや特許文献１に記載される表現（以下、シーケンシャルな記述態様と総称する）と、
を利用可能としている。
【００１５】
編集装置は、ブロック線図により記述されたデータ（以下、線図データと称する）をコンパイルしてソースプログラム（以下、線図プログラムと称す）を生成し、生成された線図プログラムをモジュール化する。編集装置は、シーケンシャルな記述態様により組み込みシステムのシーケンス制御が記述される際、線図プログラムの指定を受け付け、指定された線図プログラムへのリンクを生成する。編集装置は、シーケンシャルな記述態様により記述されたデータ（以下、シーケンスデータと称する）をコンパイルしてソースプログラム（以下、シーケンスプログラムと称す）を生成する際、リンクに基づきシーケンスプログラムに線図プログラムを含める。
【００１６】
これにより、組み込みシステムのシーケンスプログラムおよび線図プログラムの開発を同じ環境で実現できる。加えて、線図プログラムをモジュール化してシーケンスプログラムに取り込むことで線図プログラムの再利用を可能としている。その結果、ユーザが線図プログラムの資産を有していれば、それをそのままシーケンスプログラムに取り込むことができるので、プログラム資産を有効に活用することができる。また、組み込みシステムのシーケンス制御に、サーボ制御やフィードバック制御などのブロック線図による記述が好適なステップが含まれている場合、そのステップをブロック線図で記述することができる。これはプログラム開発の効率化に寄与する。
【００１７】
図１は、実施の形態に係る編集装置１０の機能および構成を示すブロック図である。ここに示す各ブロックは、ハードウエア的には、コンピュータのＣＰＵ（central processing unit）をはじめとする素子や機械装置で実現でき、ソフトウエア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウエア、ソフトウエアの組合せによっていろいろなかたちで実現できることは、本明細書に触れた当業者には理解されるところである。
【００１８】
編集装置１０は、マウスやキーボードなどの入力装置１２から入力される入力情報に基づいて線図データやシーケンスデータを生成することによって取得し、または外部から線図データやシーケンスデータを取得する。編集装置１０はディスプレイ１４と接続される。
【００１９】
編集装置１０は、線図プログラムのモジュールを含むシーケンスプログラムを生成する。生成されたシーケンスプログラムはそのまま、もしくはさらに機械語へ翻訳された後、ターゲットボードに実装され、様々な機械装置のシミュレーションに利用される。また、生成されたシーケンスプログラムを組み込みシステムに導入することで、機械装置を直接駆動・制御することができる。
【００２０】
編集装置１０は、線図編集部１６と、線図コンパイル部１８と、シーケンス編集部２０と、シーケンスコンパイル部２２と、表示制御部２４と、線図データ保持部２６と、線図モジュール保持部２８と、シーケンスデータ保持部４８と、を備える。
【００２１】
線図編集部１６は入力装置１２および表示制御部２４と協働して、インタラクティブなブロック線図の編集を可能とする。線図編集部１６はブロック線図取得部３０と線図変数指定受付部３２とを含む。
【００２２】
ブロック線図取得部３０は線図データを取得する。ブロック線図取得部３０は、ユーザからの入力情報に基づいてブロック線図を編集し、その線図データを線図データ保持部２６に登録する。ブロック線図の編集は、新たにブロック線図を生成することと、既存のブロック線図を例えば線図データ保持部２６から呼び出して変更することと、を含む。ブロック線図取得部３０においては、例えばＭａｔｈＷｏｒｋｓ社が提供するＭＡＴＬＡＢ／Ｓｉｍｕｌｉｎｋに使用されているブロック線図編集技術と同様のブロック線図編集技術が使用されてもよい。
あるいはまた、ブロック線図取得部３０は、外部記憶装置やネットワーク（いずれも不図示）などから線図データを取得してもよい。
【００２３】
図２は、表示制御部２４がディスプレイ１４に表示させる例示的なブロック線図１０２を示す代表画面図である。図２はＰＩＤ（Proportinal Integral Differential）制御のように制御器が複数のブロックに分かれている場合のブロック線図１０２を示す。
【００２４】
ブロック線図１０２は、積分動作ブロック１３８と、微分動作ブロック１４０と、比例動作ブロック１４２と、プラントブロック１４４と、プラントブロック１４４を始点とする第１アーク１４６と、第１アーク１４６から第１分岐点１６２で分かれて第１合流点１６６に入る第２アーク１４８と、第１合流点１６６を始点とし積分動作ブロック１３８に入る第３アーク１５０と、第３アーク１５０から第２分岐点１６４で分かれて第２合流点１６８に入る第４アーク１５２と、第３アーク１５０から第２分岐点１６４で分かれて微分動作ブロック１４０に入る第５アーク１５４と、積分動作ブロック１３８を始点とし第２合流点１６８に入る第６アーク１５６と、第２合流点１６８を始点とし比例動作ブロック１４２に入る第７アーク１５８と、比例動作ブロック１４２を始点としプラントブロック１４４に入る第８アーク１６０と、微分動作ブロック１４０を始点とし第２合流点１６８に入る第９アーク１７０と、第１合流点１６６に入る第１０アーク１６３と、を含む。
【００２５】
ブロック線図１０２はさらに、ブロック線図１０２の名前が記載された名称枠１３０と、制御周期が記載された周期枠１３２と、を含む。
【００２６】
図１に戻り、線図変数指定受付部３２は、ブロック線図取得部３０によって取得された線図データに対応するブロック線図のブロックで使用される制御パラメータのうち、変数として扱われるべき制御パラメータの指定を受け付ける。線図変数指定受付部３２は、指定された制御パラメータの情報を線図データに対応付けて線図データ保持部２６に登録する。
【００２７】
線図変数指定受付部３２は、表示制御部２４を介して、編集中のブロック線図に対応付ける形で制御パラメータ記述領域をディスプレイ１４に表示させる。
図３は、制御パラメータ記述領域１８０の代表画面図である。ユーザは入力装置１２を使用して、編集中のブロック線図に含まれる各ブロック内で使用される制御パラメータを制御パラメータ記述領域１８０に入力する。制御パラメータは、線図プログラム内で値を代入する定数または線図プログラムの変数として定義される。制御パラメータ記述領域１８０は、定数が記述される定数記述領域１８２、１８４、１８６および変数が記述される変数記述領域１８８を含む。
【００２８】
線図プログラム内で値を代入する定数は、例えば「パラメータ名＝値または数式」のように演算式の形式で記述される。制御パラメータ記述領域１８０において値が定義された定数は、同じ制御パラメータ記述領域１８０に記述された数式のパラメータとして使用されうる。例えば、図３の定数記述領域１８２、１８４において値が定義された定数「Ｍ」および「Ｄ」は、定数記述領域１８６に記述された数式「１／（Ｍ＊ｓ＾２＋Ｄ＊ｓ）」のパラメータとして使用されている。なお、「ｓ」は線図プログラムの内部変数である。
【００２９】
制御パラメータを変数として扱う場合、ユーザは制御パラメータ記述領域１８０に、変数を表す識別子「var」と変数名とを列挙する。例えば図２に示されるブロック線図１０２について、比例動作ブロック１４２や微分動作ブロック１４０に含まれる数式や伝達関数等に使用されるパラメータが変数として指定されうる。
【００３０】
線図変数指定受付部３２は、制御パラメータ記述領域１８０に入力された情報を取得し、取得された情報を線図データに対応付けて線図データ保持部２６に登録する。特に線図変数指定受付部３２は、識別子「var」に対応する制御パラメータを、線図プログラムにおいて変数として扱われるべき制御パラメータとして取得する。
【００３１】
図４は、線図データ保持部２６の一例を示すデータ構造図である。線図データ保持部２６は、線図データを特定する線図ＩＤと、ブロック線図取得部３０によって取得された線図データと、制御パラメータ記述領域を通じて指定された定数と、制御パラメータ記述領域を通じて指定された変数と、を対応付けて保持する。
【００３２】
図１に戻り、線図コンパイル部１８は、ユーザからの要求に基づき、線図データ保持部２６によって保持される線図データを線図プログラムに変換する。線図コンパイル部１８は状態方程式導出部３４と線図プログラム生成部３６とを含む。
【００３３】
ユーザは入力装置１２を介して、線図データ保持部２６に保持される線図データのなかから線図プログラムに変換したい線図データを指定する。状態方程式導出部３４は、指定された線図データを線図データ保持部２６から取得する。状態方程式導出部３４は、取得された線図データに対応するブロック線図についての状態方程式を導出する。状態方程式導出部３４は、ブロック線図の各ブロックを状態方程式に変換する。この状態方程式は、以下のように記述されてもよい。
x[k+1]=Ax[k]+Bu[k]
y[k]=Cx[k]+Du[k]
ここで、kおよびk+1は時刻を表す。A,B,C,Dは行列係数である。u[k],y[k]はそれぞれ各ブロックの入力、出力を表す。x[k]は各ブロックの内部状態を表す。
状態方程式導出部３４は、変換された状態方程式の全てに対して行列演算を行い、ひとつの状態方程式にまとめる。
【００３４】
線図プログラム生成部３６は、状態方程式導出部３４によって導出された状態方程式を線図プログラムに変換する。状態方程式をプログラムに変換する処理自体は公知である。線図プログラム生成部３６は、線図プログラムへの変換の際、線図データ保持部２６を参照し、変数として指定されている制御パラメータを変数として線図プログラムに含める。線図プログラム生成部３６は、変換の結果得られた線図プログラムを線図ファイルに含め、線図ファイルを線図モジュール保持部２８にモジュールとして登録する。
【００３５】
線図ファイルは複数の線図プログラムを含んでもよい。この場合、例えばシーケンスプログラム上で扱う制御器の設計案を１つの線図ファイル内で列挙し、最終的に適切な制御器を選ぶという手法を実現できる。
【００３６】
シーケンス編集部２０は入力装置１２および表示制御部２４と協働して、インタラクティブなシーケンスデータの編集を可能とする。シーケンス編集部２０は、線図プログラムをモジュールとして利用するための以下の機能を除いて、基本的に特許文献１に記載されるプログラミング装置と同様に構成される。シーケンス編集部２０は、編集されたシーケンスデータをシーケンスデータ保持部４８に登録する。
シーケンス編集部２０はステップ指定受付部４０とリンク部３８とシーケンス変数指定受付部４２とを含む。
【００３７】
ステップ指定受付部４０は、シーケンス制御のステップの指定を受け付ける。ユーザは、シーケンスデータの編集中、線図モジュール保持部２８によって保持される線図プログラムを適用したいシーケンスデータ上の箇所を指定する。この箇所はシーケンス制御のステップに対応し、ディスプレイ１４上で入力装置１２を使用して図的に指定されてもよい。ステップ指定受付部４０は、表示制御部２４を介して、指定された箇所に線図モジュールを表示させる。
【００３８】
図５は、線図モジュール２００の代表画面図である。線図モジュール２００は、適用されるべき線図プログラムが含まれる線図ファイルのファイル名の入力を受け付けるファイル名入力領域２０２と、適用されるべき線図プログラムのプログラム名の入力を受け付けるプログラム名入力領域２０４と、線図プログラムを再利用する際の識別子であるラベルの入力を受け付けるラベル入力領域２０６と、線図プログラムの入力変数２０８と、線図プログラムの出力変数２１０と、を有する。シーケンスデータのコンパイル時、入力変数２０８は対応する入力値で置換され、出力変数２１０は対応する出力値で置換される。
【００３９】
図６は、シーケンスデータに同じ線図プログラムに対応する２つの線図モジュールを含めた場合のそれらの線図モジュールの代表画面図である。第１線図モジュール２１２のファイル名入力領域２１４に入力されているファイル名「サーボ制御モジュール」と第２線図モジュール２２０のファイル名入力領域２２２に入力されているファイル名「サーボ制御モジュール」とは同一である。第１線図モジュール２１２のプログラム名入力領域２１６に入力されているプログラム名「サーボ制御モジュール」と第２線図モジュール２２０のプログラム名入力領域２２４に入力されているプログラム名「サーボ制御モジュール」とは同一である。したがって、第１線図モジュール２１２および第２線図モジュール２２０は、線図モジュール保持部２８によって保持される同一の線図プログラムを指定している。第１線図モジュール２１２のラベル入力領域２１８に入力されているラベル「＃１」と第２線図モジュール２２０のラベル入力領域２２６に入力されているラベル「＃２」とは異なっている。このように異なるラベルを付すことにより、複製された線図モジュール２１２、２２０同士をシーケンスデータ内で識別することができる。
【００４０】
図１に戻り、リンク部３８は、シーケンスデータに線図プログラムをシーケンス制御のステップとして関連付ける。特にリンク部３８は、シーケンスデータ上の指定された箇所と、適用されるべき線図プログラムと、を関連付ける。リンク部３８は、線図モジュール２００に入力された情報を取得し、取得された情報に基づき適用されるべき線図プログラムを特定し、特定された線図プログラムに関する情報をシーケンスデータ上の指定された箇所に含める。リンク部３８は、シーケンスデータ上の指定された箇所に、ファイル名入力領域に入力されたファイル名およびプログラム名入力領域に入力されたプログラム名によって特定される線図プログラムへの参照を含める。なお、リンク部３８は、参照を含める代わりに線図プログラムそのものを含めてもよい。
【００４１】
シーケンス変数指定受付部４２は、線図モジュールに対応する線図プログラムに含まれる変数の値の指定を受け付ける。特にシーケンス変数指定受付部４２は、リンク部３８によってシーケンスデータの複数の箇所に同じ線図プログラムへの参照が含められている場合すなわちシーケンスデータが同じ線図プログラムに対応する線図モジュールを複数有する場合、線図モジュールごとに変数の値の指定を受け付ける。
【００４２】
シーケンス変数指定受付部４２は表示制御部２４を介して線図モジュール変数指定領域をディスプレイ１４に表示させる。
図７は、線図モジュール変数指定領域２３０の代表画面図である。線図モジュール変数指定領域２３０はシーケンスデータの一部として表示される。線図モジュール変数指定領域２３０は、線図プログラムのプログラム名の入力を受け付けるプログラム名入力領域２３２と、ラベルの入力を受け付けるラベル入力領域２３４と、変数の入力を受け付ける変数入力領域２３６と、値の入力を受け付ける値入力領域２３８と、を有する。
シーケンス変数指定受付部４２は、プログラム名入力領域２３２、ラベル入力領域２３４、変数入力領域２３６、値入力領域２３８のそれぞれに入力された情報を取得し、シーケンスデータに含める。
【００４３】
図１に戻り、シーケンスコンパイル部２２は、ユーザからの要求に基づき、シーケンスデータ保持部４８によって保持されるシーケンスデータをシーケンスプログラムに変換する。シーケンシャルな記述態様によって記述されたデータをプログラムに変換する処理自体は公知である。シーケンスコンパイル部２２は、以下の機能を除いて、この公知の変換処理技術を使用して構成される。
シーケンスコンパイル部２２は整合コード生成部４４とシーケンスプログラム生成部４６とを含む。
【００４４】
整合コード生成部４４は、シーケンスデータ保持部４８に保持されるシーケンスデータがシーケンスプログラムに変換される際、シーケンスプログラムの線図部分の変数のデータ型と、それ以外の部分の対応する変数のデータ型と、の整合をとる整合コードを生成する。線図部分は、シーケンスプログラムのうち、シーケンスデータで参照されている線図プログラムに対応する部分である。それ以外の部分は、例えばシーケンシャルな記述態様に対応するシーケンス部分である。特に整合コードは、線図部分の変数および入出力変数のそれぞれのデータ型を、シーケンス部分の対応する変数のデータ型に変換する。例えば、線図部分の変数のデータ型が「double」であり、シーケンス部分の対応する変数のデータ型が「integer」である場合、整合コードは線図部分の変数のデータ型「double」をデータ型「integer」に変換するキャスト演算子等を含む。
【００４５】
シーケンスプログラム生成部４６は、シーケンスデータから線図プログラムへの参照を抽出する。シーケンスプログラム生成部４６は、参照される線図プログラムを線図モジュール保持部２８から取得し、線図部分としてシーケンスプログラムに含める。この際、シーケンスプログラム生成部４６は、参照される線図プログラムの変数の値が図７の線図モジュール変数指定領域２３０などにより指定されている場合は、その変数の値を指定するコードをシーケンスプログラムに含める。シーケンスプログラム生成部４６は、参照される線図プログラムに対して整合コード生成部４４によって生成された整合コードを、参照される線図プログラムに対応する線図部分に含める。
【００４６】
図８は、シーケンスプログラム２５０の構成を示す模式図である。シーケンスプログラム２５０はシーケンス部分２５２と線図部分２５４とを有する。シーケンス部分２５２と線図部分２５４とはひとつのファイルに含まれていてもよいし、別々のファイルに含まれていてもよい。
線図部分２５４は、整合コード生成部４４によって生成された整合コード２５６を含む。整合コード２５６はシーケンス部分用のデータ型の内部変数２５８とデータ型の変換処理部２６０とを有する。
【００４７】
シーケンス部分用のデータ型の内部変数２５８は、線図部分２５４を扱うデータ領域内に格納される。変換処理部２６０は、線図部分２５４の変数２６２と、シーケンス部分用のデータ型の内部変数２５８と、の間のデータ型の変換処理を行う。シーケンス部分２５２の内部変数２６４とシーケンス部分２５２用のデータ型の内部変数２５８との間でデータのやりとりすなわち授受処理が行われる。シーケンス部分２５２の内部変数２６４は、例えば図７に示される線図モジュール変数指定領域２３０のメンバのように扱われる変数である。
なお、シーケンスデータに線図モジュールの複製が含まれる場合、その複製された線図モジュールに対応して、内部変数を含めた形で線図部分２５４と同様の部分がシーケンスプログラム２５０に追加される。
【００４８】
シーケンスプログラム２５０では、線図部分２５４のパラメータは変数２６２と定数２６６とに分けられる。変数２６２はデータ型の変換を行いシーケンス部分２５２に引き渡すものとして扱われ、定数２６６はそれ以外のものとして扱われる。例えば線図部分２５４がサーボ制御に関する場合は、変数２６２は制御器のゲインや入出力変数等であり、定数２６６は計算過程で現れる変数等である。
【００４９】
図９は、編集装置１０における一連の処理を示すフローチャートである。ブロック線図取得部３０は、ブロック線図により記述された線図データを取得する（Ｓ３０２）。線図コンパイル部１８は、取得された線図データをコンパイルしてモジュール化する（Ｓ３０４）。ユーザは、シーケンスデータの編集中、線図モジュールを埋め込むべき箇所を指定する。ステップ指定受付部４０はそのような指定を受け付ける（Ｓ３０６）。ユーザは、指定に対応してディスプレイ１４に表示される線図モジュールに、適用したい線図プログラムの情報を入力する。リンク部３８は、指定された箇所とその線図プログラムとを関連付ける（Ｓ３０８）。シーケンスコンパイル部２２は、シーケンスデータをコンパイルする（Ｓ３１０）。
【００５０】
以上の構成による編集装置１０の動作を説明する。
図１０は、編集装置１０におけるデータの流れを示す模式図である。ユーザは、サーボ制御やフィードバック制御を第１ブロック線図４００や第２ブロック線図４０２の形で記述する。ユーザは編集装置１０に、生成された第１ブロック線図４００や第２ブロック線図４０２をコンパイルさせる。コンパイルの結果、線図モジュール保持部２８に、第１ブロック線図４００に対応する第１Ｃ言語線図プログラム４０４および第２ブロック線図４０２に対応する第２Ｃ言語線図プログラム４０６が登録される。なお、ユーザは、シーケンスデータの編集中に必要に応じてブロック線図の編集およびコンパイルを行ってもよい。
【００５１】
ユーザは、ディスプレイ１４に表示されるシーケンスデータの編集画面４０８に対して、第１移動ステップ４１０および位置決めステップ４１２を入力する。ユーザは、位置決めステップ４１２の後にサーボ制御のステップを入れる場合、編集画面４０８上でそのステップが入るべき領域４１４をマウスのクリック等により指定する。
【００５２】
編集装置１０は、指定された領域４１４に、ファイル名入力領域、プログラム名入力領域、ラベル入力領域等が未入力の状態の第１サーボ制御線図モジュール４１６を表示させる。ユーザは、表示された第１サーボ制御線図モジュール４１６のファイル名入力領域およびプログラム名入力領域に、線図モジュール保持部２８に保持されている第１Ｃ言語線図プログラム４０４を特定するためのファイル名、プログラム名をそれぞれ入力する。また、ユーザは、表示された第１サーボ制御線図モジュール４１６のラベル入力領域にラベルを入力する。
【００５３】
編集装置１０は、第１サーボ制御線図モジュール４１６のファイル名入力領域およびプログラム名入力領域に入力されたファイル名、プログラム名に基づき第１Ｃ言語線図プログラム４０４を特定し、特定された第１Ｃ言語線図プログラム４０４と第１サーボ制御線図モジュール４１６のシーケンスデータ上での位置とを関連付ける。すなわち、編集装置１０は、シーケンスデータの位置決めステップ４１２に対応する部分の後に、第１Ｃ言語線図プログラム４０４への参照を示す部分を含める。
【００５４】
ユーザはさらに、編集画面４０８に対して、第１サーボ制御線図モジュール４１６の後に第２移動ステップ４１８を入力し、第２移動ステップ４１８の後に第２サーボ制御線図モジュール４２０を入力する。第２サーボ制御線図モジュール４２０は第１サーボ制御線図モジュール４１６と同じ第１Ｃ言語線図プログラム４０４に対応する。ユーザは、第１サーボ制御線図モジュール４１６と第２サーボ制御線図モジュール４２０とを区別するために、それぞれのラベルを異ならせる。
【００５５】
ユーザは編集装置１０にシーケンスデータをコンパイルさせる。コンパイルの結果、シーケンスプログラム４２２が生成される。シーケンスプログラム４２２は、第１移動ステップ４１０、位置決めステップ４１２および第２移動ステップ４１８に対応するシーケンス部分４２４と、第１サーボ制御線図モジュール４１６に対応する第１線図部分４２６と、第２サーボ制御線図モジュール４２０に対応する第２線図部分４２８と、を有する。第１線図部分４２６は第１整合コード４３０を含み、第２線図部分４２８は第２整合コード４３２を含む。
なお、シーケンス部分４２４、第１線図部分４２６、第２線図部分４２８はそれぞれ別のファイルとして生成されてもよい。
【００５６】
本実施の形態に係る編集装置１０によると、シーケンシャルな記述態様でシーケンス制御を記述する環境と同じ環境において、そのような記述態様とは異なるブロック線図により線図データを記述し、線図プログラムを生成することができる。また、シーケンス制御のステップと線図プログラムとを関連付けることで、シーケンスプログラムに線図プログラムを容易に導入することができ、また使い回しもより容易となる。
【００５７】
また、本実施の形態に係る編集装置１０によると、線図モジュールを複製し、線図モジュールの外で線図モジュールのパラメータを変更することによって、シーケンスデータにおいて同じ構造の線図プログラムを別の用途で再利用することができる。例えば、大きさの違うモータを同じＰＩＤ制御器の構造で制御しようとする場合に、２つの制御器で制御パラメータを変えたシーケンスデータをより容易に作成することができる。この場合、例えば図７に示されるような線図モジュール変数指定領域を使用してそれぞれの制御パラメータを指定すればよい。
【００５８】
一般にシーケンシャルな記述態様では、ブロック線図よりも条件分岐を容易に扱うことができる。そして本実施の形態に係る編集装置１０では、シーケンスデータが同じ線図プログラムに対応する線図モジュールを複数有する場合、線図モジュールごとに変数の値を指定することができる。したがって、組み込みシステムの動作状況に応じて線図プログラムの変数の値を変更するような制御の記述がより容易となる。
【００５９】
シーケンスデータと線図データとはそれぞれの記述態様における最適化のために、コンパイル後のプログラムの変数のデータ型の扱いが異なることが想定される。そこで本実施の形態に係る編集装置１０では、整合コードによって、線図部分の変数のデータ型とシーケンス部分の対応する変数のデータ型との整合をとることができる。これにより、シーケンシャルな記述態様とブロック線図との間の、変数の扱いについての違いを吸収することができる。
【００６０】
以上、実施の形態に係る編集装置１０の構成と動作について説明した。この実施の形態は例示であり、その各構成要素や各処理の組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００６１】
実施の形態では、シーケンシャルな記述態様が図に基づく記述態様である場合について説明したが、これに限られず、例えばストラクチャード・テキストなどのテキストベースの記述態様であってもよい。
【符号の説明】
【００６２】
１０  編集装置、  １２  入力装置、  １４  ディスプレイ、  １６  線図編集部、  １８  線図コンパイル部、  ２０  シーケンス編集部、  ２２  シーケンスコンパイル部、  ２４  表示制御部、  ２６  線図データ保持部、  ２８  線図モジュール保持部。
【図１】
0005726108.tif 000002
【図２】
0005726108.tif 000003
【図３】
0005726108.tif 000004
【図４】
0005726108.tif 000005
【図５】
0005726108.tif 000006
【図６】
0005726108.tif 000007
【図７】
0005726108.tif 000008
【図８】
0005726108.tif 000009
【図９】
0005726108.tif 000010
【図１０】
0005726108.tif 000011