(57)【特許請求の範囲】
【請求項１】
１以上のプログラム部品が格納されたプログラム部品格納手段と、
前記プログラム部品の中から任意のプログラム部品をユーザに選択させるプログラム部品選択手段と、
前記選択されたプログラム部品の各端子に対応する変数名を生成する端子変数生成手段と、
前記選択されたプログラム部品と前記生成した変数名とを用いて、モーションプログラムのベースを生成するプログラム生成支援手段と、
プログラム編集画面上で、前記モーションプログラムのベースに基づいて、任意のモーションプログラムをユーザに作成させるプログラム編集手段と、
を有し、
前記モーションプログラムのベースは、前記選択されたプログラム部品が配置されると共に該プログラム部品の各端子に対して前記生成された変数名が設定されたワークシートを含む、ことを特徴とするプログラミング装置。
【請求項２】
前記端子変数生成手段は、前記選択されたプログラム部品の各端子について予め登録されている所定の情報に基づいて、前記変数名を生成することを特徴とする請求項１記載のプログラミング装置。
【請求項３】
前記プログラム部品は、モーション用ファンクションブロックであることを特徴とする請求項１または２に記載のプログラミング装置。
【請求項４】
前記各端子の変数名に対する任意の設定値を入力させる設定値入力手段を更に有し、
前記プログラム生成支援手段は、更に該設定値も用いて前記モーションプログラムのベースを生成することを特徴とする請求項１〜３の何れかに記載のプログラミング装置。
【請求項５】
前記モーションプログラムのベースは、前記各端子に対応する変数名と該各変数名に対する前記設定値が設定された変数ワークシートを更に含むことを特徴とする請求項４記載のプログラミング装置。
【請求項６】
前記各プログラム部品に対応する画面データが格納された画面格納手段と、
前記各プログラム部品に対応する画面データを示す管理情報が記憶された管理情報記憶手段と、
前記選択されたプログラム部品に対応する画面データを前記管理情報に基づいて前記画面格納手段から取得して、該取得した画面データを前記生成されたモーションプログラムに対応する画面とする画面決定手段と、
を更に有することを特徴とする請求項１〜５の何れかに記載のプログラミング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルコントローラのプログラムのプログラミング装置に関する。
【背景技術】
【０００２】
ＰＬＣによるモーションコントロールシステムのモーションプログラムを開発する場合、ユーザがモーションプログラムを手作業で作成していた。また、既に実績のあるモーションプログラムを再利用する場合でも、手動でインポートして、モーションプログラムにパラメータを設定するために、モーションプログラムを手作業で編集する必要があった。
【０００３】
ＰＬＣによるモーションコントロールシステムのモーション用画面を開発する場合、ユーザがモーション用画面を手作業で作成していた。また、既に実績のあるモーション画面を再利用する場合でも、手動でインポートし、モーションプログラムのパラメータに応じ画面を手作業で編集する必要があった。
【０００４】
尚、上記モーションプログラムやモーション用画面の作成作業は、“プログラミング装置”等と呼ばれるコンピュータ上で行われる。プログラミング装置は、所定のエディタ画面上で、ユーザに任意のモーションプログラムやモーション用画面の作成を行わせる。
【０００５】
例えば、モーションプログラム作成支援用のエディタ画面上で、ユーザは、コードボディワークシートを開き、コードボディワークシート上に所望の１以上のファンクションブロック（ＦＢ）を配置すると共に、ＦＢの各端子に対する変数名を設定する作業や結線作業等を行う。更に、ユーザは、変数ワークシートを開き、変数ワークシート上で、グローバル変数やローカル変数に係わる所定情報（名前、型、種別、説明、設定値（デフォルト値など）の設定作業を行う。例えばこの様にして任意のモーションプログラムを手作業で作成していた。
【０００６】
また、特許文献１の従来技術では、Ｉ／Ｏレジスタ番号に対応したシーケンスプログラムの自動生成を提案している。
特許文献１では、シーケンスプログラムにより制御されるモーションプログラムによって軸制御等を行うモーションコントローラにおいて、制御信号表１にＩ／Ｏレジスタ番号を設定し、あらかじめ用意した基準テンプレート２を用いて自動生成手段３により、モーションプログラムの開始／停止、自動／手動モード切替え等の運転制御および原点復帰、ＪＯＧ運転およびサーボオン／オフなどの軸制御を可能にする。さらに、モーションプログラムの起動シーケンスを埋め込んだシーケンスプログラム４を自動生成した後、モーションプログラム開発６を行って、シーケンスプログラムの制御によりモーションプログラム運転７を実行する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１１−２４９７１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ＰＬＣでモーションコントロールシステムを開発する場合、ユーザが全て一からプログラムを作成できるため、ユーザのシステムに合わせ、きめ細かいプログラムが開発できる。また、様々なモーションプログラムを用意しておけば、様々のシステムに対応できるメリットがある。しかし、きめ細かくプログラム開発が可能であるが故に、モーションプログラム及びモーション用画面を構築するまでに時間が掛かってしまうという課題があった。
【０００９】
本発明の課題は、モーションプログラムの作成作業負担を軽減できるプログラミング装置等を提供することである。
【課題を解決するための手段】
【００１０】
本発明のプログラミング装置は、１以上のプログラム部品が格納されたプログラム部品格納手段と、前記プログラム部品の中から任意のプログラム部品をユーザに選択させるプログラム部品選択手段と、前記選択されたプログラム部品の各端子に対応する変数名を生成する端子変数生成手段と、前記選択されたプログラム部品と前記生成した変数名とを用いて、モーションプログラムのベースを生成するプログラム生成支援手段と、プログラム編集画面上で、前記モーションプログラムのベースに基づいて、任意のモーションプログラムをユーザに作成させるプログラム編集手段と、を有し、前記モーションプログラムのベースは、前記選択されたプログラム部品が配置されると共に該プログラム部品の各端子に対して前記生成された変数名が設定されたワークシートを含む。
【発明の効果】
【００１１】
本発明のプログラミング装置等によれば、モーションプログラムの作成作業負担を軽減できる。
【図面の簡単な説明】
【００１２】
【図１】本例のモーションコントロールシステムの構成図である。
【図２】プログラミング装置の構成図である。
【図３】モーションＤＢ構成図である。
【図４】モーションＦＢ選択画面の表示例である。
【図５】モーションＦＢパラメータ設定画面の表示例である。
【図６】自動登録後のモーションプログラムの構成ツリーの一例を示す図である。
【図７】ＰＬＣエディタの処理フローチャート図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して本発明の実施の形態について説明する。
図１は、本例のモーションコントロールシステムの構成図である。
図示の構成例では、モーションコントロールシステムは、表示器１０、プログラマブルコントローラ（ＰＬＣ）１１、サーボアンプ１２、サーボモータ１３、Ｉ／Ｏバス１４、動力線１５、信号線１６、プログラミング装置１７等から成る。
【００１４】
尚、サーボアンプ１２とサーボモータ１３は、ＰＬＣ１１による制御対象機器の一例であり、ＰＬＣ１１による制御対象機器はこの例に限らず様々な機器があってよい（ここでは特に具体例は示さない）。但し、本説明では、ＰＬＣ１１による制御対象機器がサーボアンプ１２とサーボモータ１３である例を用いて説明するものとする。
【００１５】
表示器１０は、プログラマブル表示器等であり、よく知られているように、ＰＬＣ１１による制御対象機器の制御状態をユーザが監視したり任意の指令を与える為の画面が表示される。この画面は通常複数用意され、ユーザ操作等に応じて切替え表示される。この複数の画面として、上記モーション用画面も含まれている。これら画面データは、プログラミング装置１７上で任意に生成されたものが、表示器１０に転送されてそのメモリ等に格納されている。
【００１６】
ＰＬＣ１１は、自装置内の不図示のメモリに記憶された任意の制御プログラムを、自装置内の不図示の演算プロセッサ（ＣＰＵ等）が実行することで、ＩＯバス１４を介して制御対象機器（サーボアンプ１２等）を制御する。この制御プログラムは、プログラミング装置１７上で任意に生成されたものが、ＰＬＣ１１に転送されてそのメモリ等に格納されている。また、上記モーションプログラムやシーケンスプログラムは、制御プログラムに含まれる。
【００１７】
プログラミング装置１７は、上記モーション用画面等の画面の画面データを、ユーザに任意に作成させる機能を有する。従来では、上述したように、ユーザがモーション用画面を手作業で作成していたが、本例ではユーザの作業負担を軽減できる。詳しくは後述する。
【００１８】
また、プログラミング装置１７は、上記制御プログラムを、ユーザに任意に作成させる機能も有する。これに関しても、上述したように、ユーザがモーションプログラムを手作業で作成していたが、本例ではユーザの作業負担を軽減できる。詳しくは後述する。
【００１９】
尚、プログラミング装置１７は、上記画面データを信号線１６を介して表示器１０にダウンロードする。また、プログラミング装置１７は、上記制御プログラム（モーションプログラム）を信号線１６を介してＰＬＣ１１にダウンロードする。サーボアンプ１２は動力線１５を介してサーボモータ１３を駆動する。
【００２０】
ここで、従来より、モーションプログラム作成の為にＦＢ（ファンクションブロック）を用いる場合がある。よく知られているように、ファンクションブロックは、入力パラメータ（入力端子）と出力パラメータ（出力端子）を有する関数である。ファンクションブロックは、入力端子に与えられた値をもとに演算を行い、結果を出力端子から出力する。従来、ユーザは、任意のファンクションブロックを用いて任意のモーションプログラムを作成する場合、ファンクションブロックの各端子に変数を割り当てる作業や、各変数に初期値（デフォルト値）を設定する作業などを行っていた。本手法では、この様なユーザの作業負担を軽減できる。詳しくは後述する。
【００２１】
尚、上記モーションプログラム作成に用いられるＦＢを、モーションＦＢと記すものとする。本手法では、各種制御対象機器の様々な動作（位置決め、回転、同期制御など）を実現する各種モーションＦＢが、予め作成されて記憶されているものとする。
【００２２】
図２は、上記プログラミング装置１７の構成図である。
プログラミング装置１７は、上記のように、例えばＰＬＣ１１の制御プログラム（モーションプログラム等）をユーザに任意に作成させる為のプログラム作成支援機能を有し、その一例が図示のＰＬＣエディタ２０である。ＰＬＣエディタ２０によってプログラミング装置１７のディスプレイ上に表示される各画面を介して、ユーザは所望のモーションプログラムを作成する。
【００２３】
尚、プログラミング装置１７は、不図示の演算プロセッサ（ＣＰＵ等）、記憶部（ハードディスク、メモリ等）、表示部（液晶ディスプレイ等）、操作部（キーボード、マウス等）、通信部等を有している。演算プロセッサが、記憶部に予め記憶されている所定のアプリケーションプログラムを実行することで、ＰＬＣエディタ２０や作画エディタ２８の後述する各種機能が実現される。
【００２４】
プログラミング装置１７は、上記記憶部にプロジェクトデータ２１を記憶する。プロジェクトデータ２１として、構成定義データ２１ａが作成されており、更にＰＬＣエディタ２０によってユーザが任意に作成したモーションプログラム２１ｂがプロジェクトデータ２１に追加される。構成定義データ２１ａは、ここでは図１のモーションコントロールシステムの機器構成を示す情報であるものとするが、その詳細例は特に示さない。
【００２５】
プログラミング装置１７において、上記記憶部上に、モーションＤＢ（データベース）２４が構築されている。モーションＤＢ２４には、モーションＦＢ（ファンクションブロック）２４ａ、モーション画面２４ｂ等が格納されている。これらは、予め、開発者等によって任意に作成されて格納されている。
【００２６】
モーションＦＢ２４ａは、例えば図１のモーションコントロールシステムのＰＬＣ１１や他の不図示のＰＬＣに実行させる、制御対象機器の動きを制御するモーション制御用のプログラム部品であり、様々な用途のモーションＦＢが予め作成されて格納されている。また、各モーションＦＢには予め任意の名称（ＦＢ名）が付与されている。従来より、この様に予め作成されている各種モーションＦＢを利用して所望のモーションプログラムを作成することは行われていたが、上述した通り、手間が掛かっていた。本手法では、この様なモーションプログラム作成の作業負担を軽減できる。
【００２７】
また、モーション画面２４ｂは、これらの各モーションＦＢそれぞれに対応した、表示器１０に表示する画面データであり、モーションＦＢによる制御処理の状態をモニタしたり設定したりする画面であるが、その具体例は特に示さない。
【００２８】
ＰＬＣエディタ２０上では、ユーザの操作等に応じて、図示の各種画面が表示され、各画面上でユーザが任意の入力操作を行える。各種画面は、図示の構成定義画面２２、モーションＦＢ選択画面２３、モーションＦＢパラメータ設定画面２５、プログラム編集画面２６等である。
【００２９】
構成定義画面２２上では、ユーザは、任意のシステム（任意のモーションコントロールシステム等）の機器構成を編集でき、これが上記構成定義データ２１ａである。構成定義画面２２上で、ユーザが任意の制御対象機器を指定して所定のメニューを選択すると、指定された制御対象機器用のモーションプログラム及びモーション画面の作成支援モードに移行する。
【００３０】
ここでは一例としては、ユーザが、構成定義画面２２上でサーボアンプを選択したうえで右クリックメニューの“モーション支援メニュー”−“モーションＦＢ登録”をクリックすると、ＰＬＣエディタ２０はサーボアンプに関する上記作成支援モードになり、まず、モーションＦＢ選択画面２３を表示する。
【００３１】
モーションＦＢ選択画面２３には、モーションＤＢ２４の各モーションＦＢ２４ａに係わる所定の情報（その名称（ＦＢ名）等）が一覧表示される。ユーザは、この一覧表示中から用途に応じたモーションＦＢ２４ａを選択することになる。
【００３２】
ここで、図２には示していないが、モーションＤＢ２４には、更に、格納している各モーションＦＢ２４ａの管理情報が格納されている。この管理情報には、各モーションＦＢ２４ａの名称（ＦＢ名）、機能、端子情報などの情報と共に、そのモーションＦＢに対応するモーション画面２４ｂの識別情報（ここではモーション画面ファイル名）等の情報も含まれている。
【００３３】
ＰＬＣエディタ２０は、ユーザによって選択されたモーションＦＢ２４ａに対応するモーション画面ファイル名のモーション画面２４ｂを、モーションＤＢ２４から記憶部の所定の記憶領域にコピーして画面データ２７とする。尚、各モーションＦＢ２４ａに対応するモーション画面は、１以上であり、従って画面データ２７も１以上のモーション画面から成るものとなる。
【００３４】
更に、画面データ２７に、ユーザが任意に作成したモーション画面も追加することで、画面データ２７が完成するものとしてもよい。作画エディタ２８上でユーザは所望のモーション画面を作成できる。尚、上記の通り従来ではユーザが手作業で任意のモーション画面を作成していたのであり、作画エディタ２８については特に説明しない。
【００３５】
画面データ２７は、後に、表示器１０に転送される。上記選択されたモーションＦＢ２４ａに基づくモーションプログラム２１ｂも、後に、ＰＬＣ１１に転送される。
ユーザが上記のようにモーションＦＢ選択画面２３上で所望のモーションＦＢ２４ａを選択すると、ＰＬＣエディタ２０は、選択されたモーションＦＢに対するパラメータ設定をユーザに任意に行わせる為のモーションＦＢパラメータ設定画面２５を表示する。
【００３６】
ＰＬＣエディタ２０は、上記ユーザが選択したモーションＦＢ２４ａに関して、その管理情報中の上記端子情報などに基づいて、モーションＦＢパラメータ設定画面２５の初期画面を表示する。これについては具体例を後に図示・説明するが、選択したモーションＦＢ２４ａの各端子に関する情報（端子名、データ型など）が一覧表示される。更に、その際、これら各端子に対応する変数名が、自動的に生成・設定される点が、本手法の特徴の１つであるが、これについては後述する。
【００３７】
ここで、上記初期画面上では、各端子に対応する各変数の初期値（デフォルト値）である“設定値”の欄は、空白となっている。ユーザが、この“設定値”の欄に任意の数値を入力することで、選択されたモーションＦＢのパラメータ設定が行われることになる。
【００３８】
モーションＦＢパラメータ設定画面２５上でのモーションＦＢのパラメータ設定作業が完了すると、モーションプログラムのベース情報が自動生成されることになる。このベース情報には、上記自動生成された変数名や設定値（デフォルト値）が反映されている。このベース情報の一例が後述するコードワークシート４５及びローカル変数ワークシート４３、グローバル変数ワークシート４９であり、詳しくは後述する。
【００３９】
そして、ユーザは、プログラム編集画面２６上で上記ベース情報に基づいて所望のモーションプログラム２１ｂの作成作業を行う。すなわち、上記モーションＦＢパラメータ設定画面２５上でのパラメータ設定が完了すると、ＰＬＣエディタ２０は、プログラム編集画面２６を表示する。
【００４０】
プログラム編集画面２６は、ユーザに任意のモーションプログラムを作成させる為の画面である。上記の通り、従来より、ユーザに任意のモーションプログラムを作成させる機能は存在した。これは、例えば上記のように、編集画面上で、ワークシート上にモーションＦＢを配置すると共に変数設定や結線を行ったり、変数用ワークシート上で変数名や初期値の設定を行うものであった。
【００４１】
これに対して、本手法によれば、プログラム編集画面２６には、これらワークシートには初期状態で、上記選択・自動設定された結果が反映される。
すなわち、例えば後述するコードワークシート４５は、その初期状態で、上記選択されたモーションＦＢ２４ａが配置されると共に、その各端子に対応する各変数名が自動設定・接続された状態となっている。プログラム編集画面２６には、この様なコードワークシート４５が表示され、ユーザは更に他のプログラム要素（例えばラダー図要素など）の配置や結線などの編集作業を行うことで、所望のモーションプログラム２１ｂを作成することになる。この様に、ユーザは一からプログラム作成を行うことなく、上記初期状態からプログラム作成を行うことができ、プログラム作成作業負担が軽減される。
【００４２】
更に、本手法によれば、後述するローカル変数ワークシート４３、グローバル変数ワークシート４９は、その初期状態で、上記各端子に対応する各変数名やその初期値（デフォルト値））等のパラメータが、設定された状態となっている。ユーザは、これら各変数ワークシートに関しては、必要に応じてプログラム編集画面２６上で所望の変更／編集作業を行う。
【００４３】
この様にして、プログラム編集画面２６上での所望の編集作業が終了し、コードワークシート４５及びローカル変数ワークシート４３、グローバル変数ワークシート４９が作成完了すると、モーションプログラム２１ｂが作成完了することになる。
【００４４】
ユーザは、一から作成するのではなく、上記初期状態から作成開始できるので、モーションプログラムの作成作業負担を軽減できる。
更に、上記の通り、本手法によれば、モーション画面の作成作業負担も軽減できる。
【００４５】
作成されたモーションプログラム２１ｂは、その後、ＰＬＣ１１に転送されて、ＰＬＣ１１で実行されることで、例えばサーボアンプ１２、サーボモータ１３の動作が制御される。この動作状態は、表示器１０に転送した画面データ２７によって、表示器１０上でモニタリング等されることになる。
【００４６】
上記プログラミング装置１７について、以下、具体例を示しながら更に詳細に説明する。
図３は、一実施例としてのモーションＤＢ構成図である。
【００４７】
モーションＤＢ２４のフォルダ・ファイル構成３０として、図には、上記各種モーションＦＢ２４ａが格納されるモーションＦＢフォルダと、上記各モーション画面２４ｂの名称の例として“ＰＴＰ”、“補間”、“同期”が示されている。更に、モーションＤＢ２４には図示のモーションＦＢ管理情報３１が格納されている。
【００４８】
開発者等は、新たなモーションＦＢ、モーション画面を作成すると、その管理情報をモーションＦＢ管理情報３１に登録しているものとする。
モーションＦＢ管理情報３１には、上記モーションＦＢフォルダに格納される各モーションＦＢ２４ａについて、それぞれ、所定の情報（名称や端子情報、対応するモーション画面の情報等）が登録されている。各モーションＦＢ２４ａ毎に、その名称であるＦＢ名６１や、ライブラリ名６２、ステップ数６３、機能６４、ＦＢ容量６５等の情報が登録され、更に対応するモーション画面２４ｂの名称／識別情報がモーション画面ファイル名６６の欄に格納されている。尚、ライブラリ名については、ここでは特に言及しない。ステップ数６３、機能６４、ＦＢ容量６５は、そのモーションＦＢのプログラムステップ数や機能や容量であるが、これらについても特に詳細には説明しない。
【００４９】
また、ＦＢ（ファンクションブロック）は複数の端子を有するものであり、各モーションＦＢ２４ａ毎に、そのモーションＦＢ２４ａの各端子に関する情報も登録されている。この端子情報は本例では別テーブル（端子情報テーブル７０）が作成されており、端子情報リンク６７によりリンクされている。勿論、これは一例であり、実質的に、端子情報はモーションＦＢ管理情報３１の一部である。
【００５０】
端子情報リンク６７には、そのモーションＦＢ２４ａの端子情報が登録された端子情報テーブル７０の名称／識別情報が格納される。
端子情報テーブル７０には、各端子毎に、その端子名７１、表示端子名７２、データ型７３、下限値７４、上限値７５、説明７６などが格納される。端子名７１が各端子の名称であり、表示端子名７２は人間が理解し易い名称である。例えば端子名“spd”の端子は、速度に関する端子であることが分かる。
【００５１】
下限値７４と上限値７５は、その端子に係わる入力値／出力値の許容範囲を示す。説明７６には、その端子に関する任意の説明が格納される。
上記モーションＦＢ選択画面２３、モーションＦＢパラメータ設定画面２５は、上記モーションＦＢ管理情報３１に基づいて生成される。その一例を図４、図５に示す。
【００５２】
モーションＦＢ選択画面２３には、図４に示すように、各モーションＦＢに関する情報が一覧表示される。
図４は、上記モーションＦＢ管理情報３１に基づくモーションＦＢ選択画面２３の表示例である。
【００５３】
図４においては、モーションＦＢ管理情報３１上の各データ項目と、モーションＦＢ選択画面２３の表示内容との対応関係を、図示のように点線矢印で示している。
モーションＦＢ選択画面２３には、各モーションＦＢについて、図示の機能８１、ＦＢ名８２、ライブラリ名８３、ステップ数８４、ＦＢ容量８５等が、点線矢印で示すように、上記モーションＦＢ管理情報３１の機能６４、ＦＢ名６１、ライブラリ名６２、ステップ数６３、ＦＢ容量６５に基づいて表示される。
【００５４】
ユーザが、上記モーションＦＢ選択画面２３上に一覧表示されるモーションＦＢの中から所望のモーションＦＢ（レコード）を選択すると（左端のチェック欄にチェックを入れると）、選択されたモーションＦＢに係わる端子情報が表示される。これば、当該選択されたレコードの端子情報リンク６７が示す端子情報テーブル７０に基づいて、例えば図５に示すようにモーションＦＢパラメータ設定画面２５を表示する。
【００５５】
尚、図５においても、端子情報テーブル７０の各データ項目と、設定画面２５の表示内容との対応関係を、図示の点線矢印で示している。
図５の例では、モーションＦＢパラメータ設定画面２５上には、上記選択されたモーションＦＢの各端子毎に、図示の端子名９１、単位９２、データ範囲９３、データ型９４、設定値９５、説明９６が表示される。これらのうち、設定値９５以外は、初期状態で、上記端子情報リンク６７が示す端子情報テーブル７０の端子名７１、下限値７４、上限値７５、データ型７３、説明７６に基づいて、データ表示されている。尚、データ範囲９３には「下限値７４〜上限値７５の範囲」が表示される。尚、図示していないだけであり、端子情報テーブル７０には単位９２に相当するデータも含まれている。また、図示のように表示端子名７２も端子名９１（括弧内に）に表示するようにしてもよい。
【００５６】
設定値９５は、初期状態では空欄であり、設定値９５の欄はユーザが任意のデータを入力できるようになっている。これより、ユーザは、モーションＦＢパラメータ設定画面２５上で、設定値９５の欄に任意の数値を入力する。図には、設定値９５の欄への数値入力作業途中の状態を示している。
【００５７】
なお、パラメータ（設定値９５）の値は、データ型７３（９４）に応じて、１０進または１６進、データのビット長、プラスマイナス符号の有無の表示および入力方法が変わる。また、このパラメータ（設定値９５）の値は、データ範囲９３（下限値７４〜上限値７５の範囲）で入力が制限される。つまり、ユーザがデータ範囲９３外の値を設定値９５に入力した場合、エラーと判定して、再入力を促すようにする。
【００５８】
ここで、本手法では、選択されたモーションＦＢに係わる端子情報テーブル７０のデータに基づいて、当該選択されたモーションＦＢの各端子に対応する変数名を、自動的に生成する。この生成方法は様々であってよいが、一例としては、端子名７１に基づいて生成する。端子名７１に基づく生成方法は様々であってよいが、一例としては例えば
端子変数名＝「端子名７１＿局番」
等するが、この例に限らない。
【００５９】
また、端子名７１に限らず、端子情報テーブル７０に、端子変数名生成用のデータを更に登録しておくようにしてもよく、その一例が図５に示す端子変数７７である。
この端子変数７７に基づく生成方法も様々であってよいが、一例としては例えば
端子変数名＝「端子変数７７＿局番」
等するが、この例に限らない。
【００６０】
尚、端子名７１を用いて変数名を生成する場合には、図３に示す例のように、端子情報テーブル７０には端子変数７７は無くてもよい。
例えば、ユーザが所望する（例えばユーザにとって分かり易い）変数名が自動生成されるように、端子名ではなくユーザが自由に決めた文字列を上記端子変数７７として予め登録しておく。
【００６１】
何れにしても、端子情報テーブル７０に予め登録されている所定の情報に基づいて、所定の生成規則に従って端子変数名を自動生成する。
上記モーションＦＢパラメータ設定画面２５上でのデータ入力・設定作業が完了してユーザが所定の不図示のボタンを操作すると、上述したモーションプログラムのベース情報が自動生成されて、所定の構成ツリー上に登録される。
【００６２】
図６は、自動登録後のモーションプログラム２１ｂの構成ツリーの一例を示す。
上記モーションＦＢ選択画面２３、モーションＦＢパラメータ設定画面２５上での選択／設定作業が完了すると、該当するモーションＦＢが上記自動・手動で所定のデータが設定されてモーションプログラム２１ｂに自動登録される。図６はモーションＦＢを自動登録した後のモーションプログラム２１ｂ全体のプログラム構成ツリーの一例である。
【００６３】
例えば図６に示すようなコードワークシート４５、ローカル変数ワークシート４３、グローバル変数ワークシート４９が、自動的に生成されて、図示のようにプログラム構成ツリー上の所定箇所に自動登録される。モーションＦＢを呼び出すプログラムである機能単位プログラム（ＰＯＵ）４２として、コードワークシート４５とローカル変数ワークシート４３が自動登録される。
【００６４】
コードワークシート４５の生成に関しては、まず、上記モーションＦＢ選択画面２３上で選択されたモーションＦＢ２４ａが、コードワークシート４５上にブロック図形式で自動配置される。これが図６に示すモーションＦＢ４６である。モーションＦＢ４６の各端子に対して、上記端子名７１に基づいて図示の端子名５４が設定される。このモーションＦＢ４６の各端子に対して、上記図５に示す端子情報テーブル７０の端子名７１あるいは端子変数７７に基づいて、各端子に対応する変数名を自動生成して接続する。これが図示の端子変数４７である。更に各端子に対応する上記表示端子名７２も自動設定される。これが図示の表示端子名５３、５５である。
【００６５】
その後、コードワークシート４５の編集作業をプログラム編集画面２６上でユーザに行わせることで、コードワークシート４５が完成する。従来のように一から編集を行うのではなく、上記のような自動設定が行われた状態から編集開始できるので、編集作業負担を軽減できる。変数ワークシート４３，４９についても、プログラム編集画面２６上で所望の編集を行わせるようにしてもよい。この様にしてモーションプログラム２１ｂが完成することになる。
【００６６】
ローカル変数ワークシート４３の生成に関しては、コードワークシート４５上のモーションＦＢ４６のパラメータである、上記端子に接続する変数の変数名とその初期値が、自動生成された端子変数名と上記任意に設定入力された設定値９５に基づいて、自動的に定義される。これが図示の端子変数５１と設定値５２である。
【００６７】
グローバル変数ワークシート４９に関しても、ローカル変数ワークシート４３と同様に、上記モーションＦＢ４６の各端子に接続する変数の変数名とその初期値が、上記自動生成された端子変数名と任意に設定入力された設定値９５に基づいて自動的に定義され（これが図示の端子変数５６と設定値５７）、ユーザが新たに追加作成するプログラムからパラメータヘのアクセスを可能とする。
【００６８】
尚、機能単位プログラム（ＰＯＵ）４２の実体を表すプログラムインスタンス４８は、プログラム構成ツリー内のTaskの下に挿入され、ＰＬＣ１１内で実行されるタスクヘ割付される。
【００６９】
図７は、本例のプログラミング装置１７のＰＬＣエディタ２０の処理フローチャート図である。
図示の例では、まず、プロジェクトデータ２１を読み込んで（ステップＳ１）、ユーザがＰＬＣエディタ２０の画面上で構成定義を選択すると（ステップＳ２，ＹＥＳ）、上記図２の構成定義画面２２を表示する（ステップＳ３）。上記の通り構成定義画面２２上には上記プロジェクトデータ２１の構成定義データ２１ａが表示され、ユーザが所定の操作を行うとステップＳ８以降の処理を実行する。
【００７０】
ここでは一例として所定の操作は、マウス右クリックして（ステップＳ４，ＹＥＳ）サーボを選択することで（ステップＳ５，ＹＥＳ）右クリックメニューが表示されたら（ステップＳ６）、このメニュー中にある“モーションＦＢ登録”が選択されること（ステップＳ７，ＹＥＳ）であるが、勿論、これは一例に過ぎない。
【００７１】
上記所定の操作が行われると、上記作成支援モードになり、ステップＳ８〜Ｓ１５の処理を実行する。
まず、モーションＦＢ選択画面２３を開き、モーションＤＢ２４にあるモーションＦＢ２４ａをリスト表示する（ステップＳ８）。これは例えば上記のようにモーションＦＢ管理情報３１を用いてＦＢ名などを一覧表示する。
【００７２】
ユーザが、この様なモーションＦＢ選択画面２３上で所望のモーションＦＢを選択すると（ステップＳ９）、上記モーションＦＢパラメータ設定画面２５を開き、上記選択されたモーションＦＢのパラメータ項目を当該画面２５上に表示する。これは、例えば上記のように、選択されたモーションＦＢに係わる端子情報テーブル７０の端子名７１、下限値７４、上限値７５、データ型７３、説明７６等が、表示される。更に、選択されたモーションＦＢに係わる端子情報テーブル７０の端子名７１あるいは端子変数７７に基づいて、端子変数名が自動的に生成される（ステップＳ１０）。
【００７３】
一方で、上記設定値９５の欄は初期状態では空白であり、ユーザが設定値９５の欄に任意の数値を入力して（ステップＳ１１）、入力完了の操作を行うと（ステップＳ１２）、上記のようにコードワークシート４５及びローカル変数ワークシート４３、グローバル変数ワークシート４９を生成する。そして、プログラム編集画面２６を開き（ステップＳ１３）、上記コードワークシート４５を画面２６上に表示する（ステップＳ１４）。ユーザは、このコードワークシート４５をベースにして、所望のモーションプログラムを作成する。
【００７４】
一方で、選択されたモーションＦＢに係わるモーションＦＢ管理情報３１のモーション画面ファイル名６６に基づいて、選択されたモーションＦＢに対応するモーション画面を、上記画面データ２７として自動登録する（ステップＳ１５）。
【００７５】
以上説明したように、本手法の支援装置（プログラミング装置１７）によれば、ＰＬＣでモーションシステムを開発する場合、ユーザが全て一からモーションプログラムやモーション画面を作成する必要が無くなり、開発コストの削減、開発期間の短縮が可能となる。
【００７６】
尚、上記モーションＦＢ等のファンクションブロックは、予め作成済みのプログラム部品の一例であり、この例に限らない。また、上記モーションプログラムは、ＰＬＣ（プログラマブルコントローラ）で実行させる制御用プログラムの一例であり、上記モーションＦＢ等のプログラム部品は、モーションプログラムの作成に利用されるソフトウェア部品である。
【００７７】
また、上記プログラミング装置１７は、不図示の下記の処理機能部を有するものと言うこともできる。
すなわち、上記プログラミング装置１７は、例えば不図示のプログラム部品格納部、プログラム部品選択部、端子変数生成部、プログラム生成支援部、プログラム編集部、設定値入力部、画面格納部、管理情報記憶部、画面決定部等を有する。
【００７８】
プログラム部品格納部は、１以上のプログラム部品が格納された記憶部等である。プログラム部品格納部の一例が上記モーションＤＢ２４であり、プログラム部品の一例が上記モーションＦＢ２４ａである。
【００７９】
プログラム部品選択部は、上記プログラム部品の中から任意のプログラム部品を選択させる。プログラム部品選択部の一例が、上記ＰＬＣエディタ２０の機能の１つである、上記モーションＦＢ選択画面２３を表示してユーザに任意のモーションＦＢを選択させる機能であるが、この例に限らない。
【００８０】
端子変数生成部は、上記選択されたプログラム部品の各端子に対応する変数名を、自動生成する。この生成方法は、一例としては、上記選択されたプログラム部品の各端子について予め登録されている所定の情報に基づいて、上記変数名を生成するものであるが、この例に限らない。上記所定の情報の一例が、上述した端子名７１あるいは端子変数７７であるが、これらは一例であり、この例に限らない。また、上記実施例の具体例では「端子変数名＝“端子名７１＿局番”あるいは“端子変数７７＿局番”」としたが、勿論、これは１つの具体例である。
【００８１】
プログラム生成支援部は、上記選択されたプログラム部品と上記生成した変数名を用いて、モーションプログラムのベースを生成する。プログラム生成支援部の一例が、上記ＰＬＣエディタ２０の機能の１つである、上述したローカル変数ワークシート４３、コードワークシート４５、グローバル変数ワークシート４９を自動生成する機能であるが、この例に限らない。
【００８２】
プログラム編集部は、上記モーションプログラムのベースに基づいて、任意のモーションプログラムを作成させる機能部である。プログラム編集部の一例が、上記ＰＬＣエディタ２０の機能の１つである、上述したプログラム編集画面２６上でユーザに上記ベースに基づいて所望のモーションプログラム２１ｂを作成させる機能である。
【００８３】
上記モーションプログラムのベースは、上記選択されたプログラム部品が配置されると共に該プログラム部品の各端子に対して前記生成された変数名が設定されたワークシートであり、その一例が上述したコードワークシート４５である。
【００８４】
また、上記プログラム部品は、例えばモーション用ファンクションブロック（上記モーションＦＢ）等である。
設定値入力部は、上記各端子の変数名に対する任意の設定値を入力させる機能部である。設定値入力部の一例が、上記ＰＬＣエディタ２０の機能の１つである、上述したモーションＦＢパラメータ設定画面２５上でユーザに任意の設定値を入力させる機能である。
【００８５】
上記プログラム生成支援部は、更にこの設定値も用いて上記モーションプログラムのベースを生成する。このモーションプログラムのベースは、上記各端子に対応する変数名と該各変数名に対する上記設定値が設定された変数ワークシートであり、その一例が上述したローカル変数ワークシート４３やグローバル変数ワークシート４９である。
【００８６】
画面格納部は、各プログラム部品に対応する画面データが格納された記憶部であり、その一例が上記モーションＤＢ２４である。
管理情報記憶部は、各プログラム部品に対応する画面データを示す管理情報が記憶された記憶部である。この管理情報の一例が上記モーションＦＢ管理情報３１である。
【００８７】
画面決定部は、上記選択されたプログラム部品に対応する画面データを上記管理情報に基づいて上記画面格納部から取得して、該取得した画面データを上記生成されたモーションプログラムに対応する画面とする機能部である。画面決定部の一例が、上記ＰＬＣエディタ２０の機能の１つである、上述したモーション画面ファイル名６６に基づいて、該当するモーション画面２４ｂをモーションＤＢ２４から取得して上記画面データ２７とする機能である。
【符号の説明】
【００８８】
１０  表示器
１１  プログラマブルコントローラ（ＰＬＣ）
１２  サーボアンプ
１３  サーボモータ
１４  Ｉ／Ｏバス
１５  動力線
１６  信号線
１７  プログラミング装置
２０  ＰＬＣエディタ
２１  プロジェクトデータ２１
２１ａ  構成定義データ
２１ｂ  モーションプログラム
２２  構成定義画面
２３  モーションＦＢ選択画面、
２４  モーションＤＢ
２４ａ  モーションＦＢ
２４ｂ  モーション画面
２５  モーションＦＢパラメータ設定画面
２６  プログラム編集画面
３０  モーションＤＢフォルダ・ファイル構成
３１  モーションＦＢ管理情報
４２  機能単位プログラム
４３  ローカル変数ワークシート
４４  端子変数定義
４５  コードワークシート
４６  モーションＦＢ
４７  端子変数
４８  プログラムインスタンス
４９  グローバル変数ワークシート
５１  端子変数
５２  設定値
５３  表示端子名
５４  端子名
５５  表示端子名
５６  端子変数
５７  設定値
６１  ＦＢ名
６２  ライブラリ名
６３  ステップ数
６４  機能
６５  ＦＢ容量
７１  端子名
７２  表示端子名
７３  データ型
７４  下限値
７５  上限値
７６  説明
８１  機能
８２  ＦＢ名
８３  ライブラリ名
８４  ステップ数
８５  ＦＢ容量
９１  端子名
９２  単位
９３  データ範囲
９４  データ型
９５  設定値
９６  説明
【図１】
0006794668.tif 000002
【図２】
0006794668.tif 000003
【図３】
0006794668.tif 000004
【図４】
0006794668.tif 000005
【図５】
0006794668.tif 000006
【図６】
0006794668.tif 000007
【図７】
0006794668.tif 000008