(57)【要約】【課題】設備の制御プログラムの作成作業の効率を向上させることのできる制御プログラム生成方法の提供を目的とする。【解決手段】設備の動作を制御するコントローラの制御プログラムを生成する制御プログラム生成装置によって実行される制御プログラム生成方法であって、前記制御プログラムによって制御されるコントローラに関する情報を入力させるコントローラ情報入力段階と、前記設備を構成する設備要素を駆動する駆動装置の一覧情報を入力させる駆動装置入力段階と、前記設備要素ごとに、当該設備要素の位置と速度との関係を示すポジションチャートによって当該設備要素の動作情報を入力させる動作情報入力段階と、前記コントローラに関する情報、前記駆動装置の一覧情報、及び前記動作情報を前記制御プログラムのテンプレートに当てはめることにより前記制御プログラムを生成するプログラム生成段階とを有することにより上記課題を解決する。【選択図】図１
2008129922.tif 000002
【特許請求の範囲】
【請求項１】
設備の動作を制御するコントローラの制御プログラムを生成する制御プログラム生成装置によって実行される制御プログラム生成方法であって、
前記制御プログラムによって制御されるコントローラに関する情報を入力させるコントローラ情報入力段階と、
前記設備を構成する設備要素を駆動する駆動装置の一覧情報を入力させる駆動装置入力段階と、
前記設備要素ごとに、当該設備要素の位置と速度との関係を示すポジションチャートによって当該設備要素の動作情報を入力させる動作情報入力段階と、
前記コントローラに関する情報、前記駆動装置の一覧情報、及び前記動作情報を前記制御プログラムのテンプレートに当てはめることにより前記制御プログラムを生成するプログラム生成段階とを有することを特徴とする制御プログラム生成方法。
【請求項２】
前記駆動装置入力段階は、前記駆動装置ごとに予め定義された駆動パターンを入力させ、
前記動作情報入力段階は、前記駆動パターンにより決定される前記設備要素の動作パターンに応じた前記ポジションチャートのパターンデータを変形させることにより前記動作情報を入力させると共に、前記パターンデータごとに予め用意された当該パターンデータに応じた制御を行う単位プログラムに対し前記パターンデータの変形に応じたパラメータの値を設定し、
前記プログラム生成段階は、前記動作情報として前記単位プログラムを前記制御プログラムに当てはめることを特徴とする請求項１記載の制御プログラム生成方法。
【請求項３】
前記設備のＣＡＤデータを表示装置に表示させるＣＡＤデータ表示段階を有し、
前記動作情報入力段階は、前記ＣＡＤデータの座標系と前記ポジションチャートの座標系とを同期させて前記動作情報を入力させることを特徴とする請求項１又は２記載の制御プログラム生成方法。
【請求項４】
前記ＣＡＤデータと、前記駆動装置の一覧情報との関連付けを入力させる関連付け段階と、
前記関連付け及び前記動作情報に基づいて、前記ＣＡＤデータによる前記設備の動作のシミュレーションを表示装置に表示させる動作シミュレーション段階とを有することを特徴とする請求項１乃至３いずれか一項記載の制御プログラム生成方法。
【請求項５】
設備の動作を制御するコントローラの制御プログラムを生成する制御プログラム生成装置であって、
前記制御プログラムによって制御されるコントローラに関する情報を入力させるコントローラ情報入力手段と、
前記設備を構成する設備要素を駆動する駆動装置の一覧情報を入力させる駆動装置入力手段と、
前記設備要素ごとに、当該設備要素の位置と速度との関係を示すポジションチャートによって当該設備要素の動作情報を入力させる動作情報入力手段と、
前記コントローラに関する情報、前記駆動装置の一覧情報、及び前記動作情報を前記制御プログラムのテンプレートに当てはめることにより前記制御プログラムを生成するプログラム生成手段とを有することを特徴とする制御プログラム生成装置。
【請求項６】
前記駆動装置入力手段は、前記駆動装置ごとに予め定義された駆動パターンを入力させ、
前記動作情報入力手段は、前記駆動パターンにより決定される前記設備要素の動作パターンに応じた前記ポジションチャートのパターンデータを変形させることにより前記動作情報を入力させると共に、前記パターンデータごとに予め用意された当該パターンデータに応じた制御を行う単位プログラムに対し前記パターンデータの変形に応じたパラメータの値を設定し、
前記プログラム生成手段は、前記動作情報として前記単位プログラムを前記制御プログラムに当てはめることを特徴とする請求項５記載の制御プログラム生成装置。
【請求項７】
前記設備のＣＡＤデータを表示装置に表示させるＣＡＤデータ表示手段を有し、
前記動作情報入力手段は、前記ＣＡＤデータの座標系と前記ポジションチャートの座標系とを同期させて前記動作情報を入力させることを特徴とする請求項５又は６記載の制御プログラム生成装置。
【請求項８】
前記ＣＡＤデータと、前記駆動装置の一覧情報との関連付けを入力させる関連付け手段と、
前記関連付け及び前記動作情報に基づいて、前記ＣＡＤデータによる前記設備の動作のシミュレーションを表示装置に表示させる動作シミュレーション手段とを有することを特徴とする請求項５乃至７いずれか一項記載の制御プログラム生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御プログラム生成方法及び制御プログラム生成装置に関し、特に設備の動作を制御するコントローラの制御プログラムを生成する制御プログラム生成方法及び制御プログラム生成装置に関する。
【背景技術】
【０００２】
生産設備、工程の自動化、及び省力化に用いられる産業用コントローラの動作、特に、動作シーケンスに関わるプログラムは、まず制御対象となる設備を理解し、設備を構成する各機械要素の駆動方法を理解し、各機械要素の動作の組み合わせをタイミングチャートやフローチャートを作成した上でシーケンスを検討し、実際のプログラムを行う。プログラムのデバッグは、実際の設備を動作させつつ行うケースが多い。
【特許文献１】特開平７−３１１６１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来、同じような設備や設備要素の組み合わせが異なる設備を構築する場合においても、プログラム全体、又は特定の動作に関連する部分的なプログラムを入れ替える等の作業が標準とされていた。その際、各プログラマーの熟練度の個人差によるプログラムミスや、ミスではないが、プログラマー独自のスタイルによる実装が行われることがあった。そのようにして作成されたプログラムは、その後のメンテナンス時にプログラムの可読性が失われ、デバッグ作業やメンテナンス作業等の効率を劣化させる要因になっていた。
【０００４】
また、タイミングチャートによって各設備要素の動作を定義する場合、あるタイミングにおける設備要素の位置が直感的に分かりづらいという問題がある。したがって、一つの設備要素のタイミングチャートに変更が生じた場合、当該設備要素との相対的な位置関係を考慮しつつ他の設備要素のタイミングチャートを変更するためには、煩雑な作業が必要とされていた。
【０００５】
本発明は、上記の点に鑑みてなされたものであって、設備の制御プログラムの作成作業の効率を向上させることのできる制御プログラム生成方法及び制御プログラム生成装置の提供を目的とする。
【課題を解決するための手段】
【０００６】
そこで上記課題を解決するため、本発明は、設備の動作を制御するコントローラの制御プログラムを生成する制御プログラム生成装置によって実行される制御プログラム生成方法であって、前記制御プログラムによって制御されるコントローラに関する情報を入力させるコントローラ情報入力段階と、前記設備を構成する設備要素を駆動する駆動装置の一覧情報を入力させる駆動装置入力段階と、前記設備要素ごとに、当該設備要素の位置と速度との関係を示すポジションチャートによって当該設備要素の動作情報を入力させる動作情報入力段階と、前記コントローラに関する情報、前記駆動装置の一覧情報、及び前記動作情報を前記制御プログラムのテンプレートに当てはめることにより前記制御プログラムを生成するプログラム生成段階とを有することを特徴とする。
【０００７】
このような制御プログラム生成方法では、設備の制御プログラムの作成作業の効率を向上させることができる。
【発明の効果】
【０００８】
本発明によれば、設備の制御プログラムの作成作業の効率を向上させることのできる制御プログラム生成方法及び制御プログラム生成装置を提供することができる。
【０００９】
すなわち、ポジションチャートによって、設備の駆動装置の動作情報を視覚的に分かり易く入力することができる。また、予め定義された動作パターンの入力によって、簡便な操作で駆動装置の動作を定義することができる。また、単位プログラムに対するパラメータの値の設定に基づいて制御プログラムが生成されるため、生成される制御プログラムに対するプログラマーの熟練度の影響を小さくすることができる。また、ＣＡＤデータの座標系とポジションチャートの座標系とを同期させることにより、視覚的に分かり易い状態でポジションチャートの入力を行うことができる。また、ＣＡＤデータによる設備の動作のシミュレーションを実行することにより、ポジションチャート等によって定義した駆動装置の動作を視覚的に把握することができる。また、ポジジョンチャートは各駆動装置の位置関係でトリガーを設定することができるので、ある駆動装置の動きを変更したとしても他の駆動装置を変更する必要がなく調整が容易である。
【発明を実施するための最良の形態】
【００１０】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態におけるプログラム生成装置の機能構成例を示す図である。図１において、プログラム生成装置１０は、制御プログラム生成ソフト１１によって実現される、ＧＵＩ（Graphical  User  Interface）部１１１、ワークスペース管理部１１２、プロジェクト管理部１１３、デバイス処理部１１４、チャート処理部１１５、ＣＡＤデータ処理部１１６、及びプログラム生成部１１７等より構成される。プログラム生成装置１０は、これら各部によって生産設備又は機械設備（以下「生産設備」で統一する。）の動作を制御するためのプログラム、例えば、ＰＬＣ（Programmable  Logic  Controller）やモーションコントローラに記述される制御プログラムの開発環境を提供し、当該開発環境において入力された情報に基づいて制御プログラムを自動生成する。なお、制御プログラム生成ソフト１１は、ＸＭＬ（eXtensible  Markup  Language）、ＳＯＡＰ（Simple  Object  Access  Protocol）、ＷＳＤＬ（Web  Services  Description  Language）、ＵＤＤＩ（Universal  Description,  Discovery,  and  Integration）、ＡＳＰ（Active  Server  Pages）、サーブレット、Ａｊａｘ（Asynchronous  Java（登録商標）Script  +  XML）等の技術を利用した、サーバとクライアントが密接に関わりあって動作するＷｅｂアプリケーションとして実装してもよい。
【００１１】
図２は、本発明の実施の形態におけるプログラム生成装置のハードウェア構成例を示す図である。図２のプログラム生成装置１０は、それぞれバスBで相互に接続されているドライブ装置１００と、補助記憶装置１０２と、メモリ装置１０３と、演算処理装置１０４と、インタフェース装置１０５と、表示装置１０６と、入力装置１０７とを有するように構成される。
【００１２】
プログラム生成装置１０での処理を実現する制御プログラム生成ソフト１１は、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。制御プログラム生成ソフト１１を記録した記録媒体１０１がドライブ装置１００にセットされると、制御プログラム生成ソフト１１が記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。補助記憶装置１０２は、インストールされた制御プログラム生成ソフト１１を格納すると共に、必要なファイルやデータ等を格納する。
【００１３】
メモリ装置１０３は、制御プログラム生成ソフト１１の起動指示があった場合に、補助記憶装置１０２から制御プログラム生成ソフト１１を読み出して格納する。演算処理装置１０４は、メモリ装置１０３に格納された制御プログラム生成ソフト１１に従ってプログラム生成装置１０に係る機能を実現する。インタフェース装置１０５は、ＬＡＮ（Local  Area  Network）又はインターネット等のネットワークに接続するためのインタフェースとして用いられる。表示装置１０６は制御プログラム生成ソフト１１に係るＧＵＩ等を表示する。入力装置１０７はキーボード及びマウス等で構成され、様々な操作指示を入力させるために用いられる。
【００１４】
なお、制御プログラム生成ソフト１１のインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。
【００１５】
また、制御プログラム生成ソフト１１がＷｅｂアプリケーションとして提供される場合は、サーバ側の記憶装置に制御プログラム生成ソフト１１がインストールされる。サーバ側の記憶装置には、インストールされた制御プログラム生成ソフト１１が格納されると共に、必要なファイルやデータ等が格納される。
【００１６】
クライアント側の入力装置１０７から制御プログラム生成ソフト１１の起動指示がＬＡＮ又はインターネット等のネットワークを介して通知された場合に、サーバ側に格納された制御プログラム生成ソフト１１が読み出され、制御プログラム生成ソフト１１に係るＧＵＩ等の情報（プログラム）がＬＡＮ又はインターネット等のネットワークを介してクライアント側のメモリ装置１０３に格納され、ＧＵＩが表示装置１０６に表示される。
【００１７】
クライアント側の入力装置１０７からの様々な操作指示の入力の情報は、サーバ側の処理が必要な場合にはその必要に応じてネットワークを介してサーバ側に送られ、サーバ側の演算処理装置により制御プログラム生成ソフト１１に従って制御プログラム生成装置１０に係る機能を実現する。
【００１８】
このように構成することで、サーバに対して複数のクライアントが制御プログラム生成ソフト１１を利用することが可能となり、様々なファイルやデータを複数のクライアントで共有することも可能となる。
【００１９】
また、図１に示す制御プログラム生成ソフト１１の構成全てを同一の記録媒体に格納する必要はない。例えば、プログラム生成部１１７をＰＬＣやモーションコントローラに実装し、処理したデータやファイル等を送信することで、ＰＬＣやモーションコントローラの内部で制御プログラムを生成することも可能である。すなわち、データやファイルを処理するコンピュータと、ＰＬＣやモーションコントローラとを含めてプログラム生成装置１０を構成してもよい。
【００２０】
以下、図１のプログラム生成装置の処理手順について説明する。図３は、プログラム生成装置において実行される処理手順の概要を説明するためのフローチャートである。
【００２１】
制御プログラム生成ソフト１１が起動されると、ＧＵＩ部１１１は、表示装置１０６にメイン画面を表示させる（Ｓ１０）。
【００２２】
図４は、メイン画面の表示例を示す図である。図４において、メイン画面５００は、メニュー５１０、領域５２０、領域５３０、領域５４０、及び領域５５０等より構成される。
【００２３】
続いて、ワークスペース管理部１１２は、ユーザによる対話的な入力に応じてワークスペース作成処理を実行する（Ｓ２０）。ここでワークスペースとは、一つ以上のプロジェクトを管理するための単位をいう。すなわち、一つのワークスペースには複数のプロジェクトが含まれうる。関連する複数のプロジェクトが一つのワークスペースにまとめられることにより、ユーザは、プロジェクトごとにメイン画面５００を表示させる必要がなくなるといった利便性を享受することができる。ワークスペース作成処理の結果、作成されたワークスペースに関する属性情報がメモリ装置１０３に保持されると共に、ワークスペース管理ファイル２１として補助記憶装置１０２に保存される。
【００２４】
続いて、プロジェクト管理部１１３は、ユーザによる対話的な入力に応じてプロジェクト作成処理を実行する（Ｓ３０）。ここでプロジェクトとは、一つの制御プログラムを生成するために必要な情報が管理される単位をいう。すなわち、一つのプロジェクトからは一つの制御プログラムが生成される。プロジェクト作成処理の結果、作成されたプロジェクトに関する属性情報と当該プロジェクトに対応したデバイスリストとがメモリ装置１０３に保持されると共に、プロジェクト管理ファイル２２又はデバイスリストファイル２３として補助記憶装置１０２に保存される。ここで、デバイスリストとは、制御の対象となる設備（以下、「対象設備」という。）を構成する各設備要素（又は各機械要素）を駆動させるためのデバイス（例えば、モータ、アクチュエータ、センサ等。以下「駆動デバイス」という。）の一覧情報をいい、駆動デバイスごとにその属性情報を含む。なお、センサは、厳密には、ワークの検出や設備要素の動作の検出等に用いられ、直接的に設備要素を駆動させるものではないが、本実施の形態においては、設備要素の駆動のトリガーを生成するという観点より、駆動デバイスに含めて説明する。また、本実施の形態においては、対象設備として、ガラス板の搬入、ガラス板の曲げ成形、ガラス板の搬出という作業を実行するガラス板の曲げ成形装置を例として説明する。但し、このことは、本実施の形態における発明の適用範囲がガラス板の曲げ成形装置に限定されることを意味するものではない。なお、ガラス板の曲げ成形装置については、例えば、特開２００５−２０６４５８号公報等に詳しい。
【００２５】
続いて、デバイス処理部１１４は、ユーザによる対話的な入力によって、デバイスリスト編集処理を実行する（Ｓ４０）。デバイスリスト編集処理では、メモリ装置１０３上に展開されているデバイスリストが更新され、また、その更新は、必要に応じてデバイスリストファイル２３に反映される。
【００２６】
続いて、チャート処理部１１５は、ユーザによる対話的な入力によって、デバイスリストに含まれる各駆動デバイスが駆動させる設備要素の動作をチャート（グラフ）によって定義させるための処理（チャート作成処理）を実行する（Ｓ５０）。チャート作成処理の結果、駆動デバイスごとに入力されたチャートに関する情報（チャート情報）が、メモリ装置１０３上に生成される。チャート情報は、ユーザからの指示に応じてチャートファイル２４として補助記憶装置１０２に保存される。
【００２７】
続いて、プログラム生成部１１７は、ワークスペース管理ファイル２１、プロジェクト管理ファイル２２、デバイスリストファイル２３、チャートファイル２４及びプログラムテンプレート２６に基づいて、対象設備の制御プログラム３０を生成し、出力する処理（制御プログラム生成処理）を実行する（Ｓ６０）。制御プログラム生成処理によって生成される制御プログラム３０をＰＬＣ等に処理させることにより、対象設備の制御を実現することができる。
【００２８】
ここで、プログラムテンプレート２６とは、制御プログラムの雛形をいい、制御プログラムに基づいて生産設備を制御するＰＬＣ等の制御装置（コントローラ）の種類や、当該生産設備の構成、当該生産設備に属する各設備要素に対して具体的に定義される動作（チャート情報）等に応じて変化する部分が変数化（パラメータ化）されているプログラムである。換言すれば、これらの項目によって変化しない共通ロジックが予め定義されたプログラムである。
【００２９】
以下、図３の各ステップについて更に詳しく説明する。
【００３０】
まず、ステップＳ２０のワークスペース作成処理について説明する。図５は、ワークスペース作成処理を説明するためのフローチャートである。
【００３１】
ユーザが、メイン画面５００のメニュー５１０を選択することによって表示されるメニュー項目の中で、ワークスペースの作成に関するメニュー項目を選択すると、ＧＵＩ部１１１は、ワークスペースの作成指示を検知する（Ｓ２１）。
【００３２】
ユーザによって新規作成が指示された場合（Ｓ２２でＹｅｓ）、ＧＵＩ部１１１は、ワークスペースの属性情報をユーザに設定させる（Ｓ２３）。ワークスペースの属性情報の設定としては、ワークスペースの種類（ＭＥＳ（Manufacturing  Execution  System））の選択、選択されたワークスペースの種類に応じたワークスペーステンプレートの選択、作成するワークスペースの名前（ワークスペース名）の入力、作成するワークスペースの保存場所の選択等が行われる。ここで、ワークスペーステンプレートとは、ワークスペースの雛形をいい、予め作成されている。
【００３３】
ワークスペースの属性情報の設定に応じ、ワークスペース管理部１１２は、設定された属性情報に基づいてワークスペースを作成し、当該ワークスペースに係るワークスペース管理ファイル２１を補助記憶装置１０２に生成する（Ｓ２４）。ワークスペース管理ファイル２１には、例えば、ＭＥＳプロジェクトに関する情報が保存される。ＭＥＳは、制御プログラムに基づいて動作するＰＬＣ等の複数のコントローラを管理するシステムであり、主にコントローラにおけるデータ管理や稼働実績情報を扱う。したがって、ワークスペース管理ファイル２１に保存される情報は、制御プログラムのデータ管理や稼働実績情報に関する部分に対して影響を与える。
【００３４】
一方、ユーザによって既存のワークスペースの編集が指示された場合、すなわち、「ワークスペースを開く」のメニュー項目が選択された場合（Ｓ２２でＮｏ）、ＧＵＩ部１１１は、既存のワークスペースを選択させるための画面を表示させ、当該画面を介して既存のワークスペースの選択を受け付ける（Ｓ２５）。続いて、ワークスペース管理部１１２は、選択された既存ワークスペースに係るワークスペース管理ファイル２１を読み込み、その内容をメモリ装置１０３に展開する（Ｓ２６）。
【００３５】
なお、ワークスペースが新規に作成された後、又は既存のワークスペースが読み込まれた後、ワークスペース管理部１１２は、当該ワークスペースの表示をＧＵＩ部１１１に実行させる。
【００３６】
図６は、ワークスペースが表示されたときの表示内容を詳細に示す図である。図６では、メイン画面５００の領域５２０及び領域５３０のみが表示されている。領域５２０は、タブによって表示内容が切り替えられるように構成されている。すなわち、ＷｏｒｋＳｐａｃｅタブ５２１、Ｄｅｖｉｃｅタブ５２２、Ｃｈａｒｔタブ５２３、及びＣＡＤタブ５２４が設けられている。新規のワークスペースが生成されたとき又は既存のワークスペースが開かれたときは、ＷｏｒｋＳｐａｃｅタブ５２１が自動的に選択され、当該ワークスペースを構成する項目をノードとするツリー部品が領域５２０に表示される。
【００３７】
領域５３０には、領域５２０において選択されたアイテム（項目）に対する属性情報が表示される。
【００３８】
次に、ステップＳ３０のプロジェクト作成処理について説明する。図７は、プロジェクト作成処理を説明するためのフローチャートである。
【００３９】
メイン画面５００の領域５２０においてＷｏｒｋＳｐａｃｅタブ５２１が選択されている状態において、ユーザがワークスペースに対応するアイテムを選択すると、プロジェクト管理部１１３は、選択されたワークスペースをプロジェクトの作成対象のワークスペース（以下「対象ワークスペース」という。）として認識する（Ｓ３１）。ワークスペースが選択された状態において、ＧＵＩ部１１１は、プロジェクトの追加指示をユーザより受け付ける（Ｓ３２）。
【００４０】
ユーザによる追加指示が新規作成だった場合（Ｓ３３でＹｅｓ）、ＧＵＩ部１１１は、プロジェクトの属性情報をユーザに設定させる（Ｓ３４）。プロジェクトの属性情報の設定としては、プロジェクトの種類（コントローラの種類）の選択、選択されたプロジェクトの種類に応じたプロジェクトテンプレートの選択、作成するプロジェクトの名前（プロジェクト名）の入力等が行われる。なお、一つのプロジェクトは、一つの制御盤（コントローラの集合）に対応する（但し、必ずしも一対一でない場合もある。）。この一つの制御盤で制御される駆動デバイスが、対応するプロジェクトに属することになる。このプロジェクト単位で制御プログラムが生成される。
【００４１】
また、プロジェクトテンプレートとは、プロジェクトの雛形をいい、予め作成されている。図８は、プロジェクトテンプレートの定義例を示す図である。
【００４２】
図８に示されるように、プロジェクトテンプレートには、制御プログラムの構成パターンが定義されている。
【００４３】
プロジェクトの属性情報の設定に応じ、プロジェクト管理部１１３は、設定された属性情報に基づいてプロジェクトを作成し、当該プロジェクトに係るプロジェクト管理ファイル２２を補助記憶装置１０２に生成する（Ｓ３５）。プロジェクト管理ファイル２２には、制御プログラムによって制御されるコントローラの構成や、制御プログラムのプログラム構成及びパターンに関する情報が保存される。
【００４４】
一方、ユーザによって既存のプロジェクトの編集が指示された場合（Ｓ３３でＮｏ）、ＧＵＩ部１１１は、既存のプロジェクトを選択させるための画面を表示させ、当該画面を介して既存のプロジェクトの選択を受け付ける（Ｓ３６）。続いて、プロジェクト管理部１１３は、選択された既存プロジェクトに係るプロジェクト管理ファイル２２を読み込み、その内容をメモリ装置１０３に展開する（Ｓ３７）。
【００４５】
なお、プロジェクトが新規に作成された後、又は既存のプロジェクトが読み込まれた後、プロジェクト管理部１１３は、当該プロジェクトの表示をＧＵＩ部１１１に実行させる。これによって、領域５２０のツリー部品には、対象ワークスペースに対応するアイテムに子アイテムとして追加されたプロジェクトに対応するアイテムが表示される。追加された直後は、当該アイテムは選択状態とされている。したがって、領域５３０には追加されたプロジェクトの属性情報が表示される。
【００４６】
次に、ステップＳ４０のデバイスリスト編集処理について説明する。図９は、デバイスリスト編集処理を説明するためのフローチャートである。
【００４７】
ユーザが、メイン画面５００の領域５２０においてＤｅｖｉｃｅタブ５２２を選択すると、ＧＵＩ部１１１は、対象設備の駆動デバイスを編集させるための画面（以下「デバイスリスト編集画面」という。）を領域５２０に表示させる（Ｓ４０１）。
【００４８】
図１０は、デバイスリスト編集画面の表示例を示す図である。図１０に示されるように、デバイスリスト編集画面は、各アイテムが駆動デバイスに対応したツリー部品によって構成されている。駆動デバイスは、制御区分（電源の異同に基づく区分）によって分類され、更に、制御区分ごとに入力デバイスか出力デバイスかによって分類される。デバイスリスト編集画面のツリー部品ではかかる分類の階層関係が表現されている。
【００４９】
したがって、ＧＵＩ部１１１は、ツリー部品のアイテムを選択させることにより、編集対象となる駆動デバイス（以下、「対象デバイス」という。）が入力デバイス（Ｉｎｐｕｔ  Ｄｅｖｉｃｅ）であるのか出力デバイス（Ｏｕｔｐｕｔ  Ｄｅｖｉｃｅ）であるのかの選択を受け付ける（Ｓ４０２）。図中では、出力デバイスが選択された例が示されている。
【００５０】
続いて、ユーザによる入力に応じて処理が分岐する（Ｓ４０３）。駆動デバイスの追加指示が入力された場合（Ｓ４０３で「新規追加」）、デバイス処理部１１４は、新たな駆動デバイスのエントリをメモリ装置１０３上に展開されているデバイスリスト（以下、単に「デバイスリスト」という。）に追加する（Ｓ４０４）。新たに追加される駆動デバイスは、ＧＵＩ部１１１が表示する駆動デバイスの一覧の中から選択される。駆動デバイスの一覧は、デバイス処理部１１４が、例えば非図示のデバイス管理ＤＢより取得し、ＧＵＩ部１１１に出力する。駆動デバイスの追加に応じて、ＧＵＩ部１１１は、追加された駆動デバイスを現在選択されているアイテム（例えば、Ｏｕｔｐｕｔ  Ｄｅｖｉｃｅアイテム）の子アイテムとして表示させる。
【００５１】
駆動デバイスが追加されると、ＧＵＩ部１１１は、当該駆動デバイスに対応するアイテムを選択状態にすると共に、領域５３０に当該駆動デバイスの属性情報（デバイスリストに登録されている属性情報）を表示させる。
【００５２】
デバイスリストにおける駆動デバイスの属性情報は、図１０の領域５３０に示されるように、名前、タイプ、制御方法、制御方法詳細、原点復帰方法、速度上限、加速度上限、位置上限、及び位置下限等の項目より構成される。すなわち、デバイスリスト及びデバイスリストファイル２３には、駆動デバイスごとにこれらの情報が管理されている。
【００５３】
名前は、駆動デバイスの名前である。制御方法は、駆動デバイスの制御方法である。制御方法は、駆動デバイスに応じて選択肢が限定される。例えば、ＡＣサーボモータについては、位置決め制御、補間制御、速度制御、速度位置切替制御、トルク制御、又はＣＡＭ（Computer  Aided  Manufacturing）制御等の選択が可能である。また、インバータについては、ＯＮ／ＯＦＦ制御又は速度制御等の選択が可能である。また、電磁弁については、シングル制御又はダブル制御等の選択が可能である。制御方法詳細は、制御方法が更に詳細に分類される場合にその分類を特定するための情報である。例えば、位置決め制御であれば、速度の切り替えが１段又は２段の選択が可能である。また、ＣＡＭ制御であれば、往復ＣＡＭ、送りＣＡＭ等の選択が可能である。
【００５４】
したがって、ユーザは必要に応じて、領域５３０において、選択されている駆動デバイスの属性情報の編集（変更）を行う。ユーザが属性情報の編集を行うと、デバイス処理部１１４は、編集結果をデバイスリストに反映する（Ｓ４０５）。
【００５５】
ステップＳ４０３において、領域５２０に表示されているいずれかの駆動デバイスに対応するアイテムが選択された場合（Ｓ４０３で「アイテム選択」）、ＧＵＩ部１１１は、選択された駆動デバイスの属性情報を領域５３０に表示させる（Ｓ４０６）。なお、駆動デバイスの属性情報は、ＧＵＩ部１１１からの要求に応じてデバイス処理部１１４が、デバイスリストより取得する。
【００５６】
ユーザが、領域５３０において属性情報の編集を行うと（Ｓ４０７で「属性編集」）、デバイス処理部１１４は、編集結果をデバイスリストに反映する（Ｓ４０８）。
【００５７】
一方、アイテムの選択後、削除指示が入力された場合（Ｓ４０７で「削除指示」）、デバイス処理部１１４は、選択されている駆動デバイスのエントリをデバイスリストより削除する（Ｓ４０９）。
【００５８】
なお、ステップＳ４０３以降は、その後もユーザの入力応じて継続的に実行され得る。以上の処理によって、デバイスリストの内容は対象設備に対応したものに更新される。また、デバイスリストの内容は、メニュー５００等を介したユーザによる指示に応じて適宜デバイスリストファイル２３に反映（保存）される。
【００５９】
図１１は、デバイスリストファイルの内容の例を示す図である。図１１のデバイスリストファイル２３の内容は、図１０の領域５２０のツリー部品によって表現されているデバイスリストに対応する。例えば、図１１において、ＩｎｐｕｔＤｅｖｉｃｅタグ２３１以下には、各入力デバイス（ＰＨ１、ＰＨ２、Ｓｅｎｓｏｒ１、ＰＨ３）の情報がそれぞれについて一行ずつ記述されている。また、ＯｕｔｐｕｔＤｅｖｉｃｅタグ２３２以下には、各出力デバイス（Ｓｏｌｅｎｏｉｄ１、Ｓｏｌｅｎｏｉｄ２、搬入ホイスト走行、Ｉｎｖ１、搬入ホイスト上下、Ｓｅｒｖｏ３）の情報がそれぞれについて一行ずつ記述されている。
【００６０】
次に、ステップＳ５０のチャート作成処理について説明する。図１２は、チャート作成処理を説明するためのフローチャートである。
【００６１】
ユーザが、メイン画面５００の領域５２０においてＣｈａｒｔタブ５２３を選択すると、ＧＵＩ部１１１は、シーケンスの構成を編集させるための画面（以下「シーケンス構成編集画面」という。）を領域５２０に表示させる（Ｓ５０１）。
【００６２】
図１３は、シーケンス構成編集画面の表示例を示す図である。図１３に示されるように、シーケンス構成編集画面は、各アイテムがシーケンスに対応したツリー部品によって構成されている。ツリー部品によって表現されるツリーは制御区分によって構成されている。ここで、シーケンスとは、対象設備における各作業単位をいう。例えば、図中では、制御区分１のシーケンスとして、出口ＣＶシーケンス、搬出シーケンス、及び搬入シーケンスが追加された例が示されている。
【００６３】
シーケンスの追加は、ＧＵＩ部１１１がシーケンスの追加指示の入力を受け付けることによって行われる（Ｓ５０３）。追加されたシーケンスに対応するアイテムは、選択状態とされる。
【００６４】
続いて、ＧＵＩ部１１１は、領域５２０で選択されているアイテムに対応するシーケンスに対する属性情報の入力を領域５３０において受け付ける（Ｓ５０４）。図１３に示されるように、領域５２０においてＣｈａｒｔタブ５２３が選択されているときは、領域５３０は、Ｐｒｏｐｅｒｔｙタブ５３１及びＣｈａｒｔタブ５３２によって表示内容が切り替えられるように構成される。Ｐｒｏｐｅｒｔｙタブ５３１が選択されているときは、領域５２０で選択されているアイテムに対応するシーケンスに対する属性情報の入力が可能となる。したがって、ユーザは、例えば新たに追加したシーケンスの名前等を入力したり、既存のシーケンスの名前等を変更したりすることができる。シーケンスの編集内容は、チャート情報の一部としてメモリ装置１０３上に保持される。
【００６５】
シーケンスの構成の編集に続いて、ＧＵＩ部１１１は、ユーザによる対話的な入力に応じて、選択中のシーケンスに属するチャートの作成を行う。以降の処理は、図１４も参照しつつ説明する。図１４は、チャートの作成処理の概要を説明するための図である。図１４では、メイン画面５００における領域５３０及び領域５５０が表示されている。
【００６６】
図１４に示されるように、領域５５０は、複数の行に分割されている。例えば、図中では、一部の行として行５５１、５５２、５５３及び５５４が表示されている。各行は、一つのステップに対応する。ステップとは、シーケンス内において、一つの駆動デバイスの一連の動作に対応した工程をいう。駆動デバイスが、往復動作や上下動作を行う場合、一つの駆動デバイスに対して複数のステップ（例えば、行きのステップ及び戻りのステップ、又は上昇のステップ及び下降のステップ）が定義され得る。表示対象とする行（ステップ）はスクロールによって変更可能である。これらの行ごとに、駆動デバイスが関連付けられ、その駆動デバイスに対するチャートが入力される。なお、図中では、行５５１に既にチャート５５１ｃが入力された状態が示されているが、これは、以降に説明する処理の結果が示されたものである。
【００６７】
ユーザが、領域５５０においていずれかの行を選択すると、ＧＵＩ部１１１は、選択された行を編集対象の行として選択する（Ｓ５０５）。ここでは、行５５１が選択されたこととする。続いて、ＧＵＩ部１１１は、チャートの編集方法の選択を受け付ける（Ｓ５０６）。
【００６８】
チャートの編集方法の選択は、領域５３０においてＣｈａｒｔタブ５３２が選択されることにより表示される画面（以下「画面５３２」という。）において行われる。図１４では、Ｃｈａｒｔタブ５３２が選択された状態が示されている。図中に示されるように、画面５３２は、領域５３３及び領域５３４より構成される。領域５３３には、現在編集対象とされているシーケンスのシーケンス名が表示され（５３３ａ）、また、編集方法を選択させるためのラジオボタン５３３ｂが配置されている。ラジオボタン５３３ｂにおいては、「Ｐｏｓｉｔｉｏｎ」又は「Ｔｉｍｉｎｇ」の選択が可能とされている。「Ｐｏｓｉｔｉｏｎ」は、ポジションチャートによる編集方法を示す。「Ｔｉｍｉｎｇ」は、タイミングチャートによる編集方法を示す。
【００６９】
タイミングチャートとは、従来より用いられているチャートであり、時間と速度との関係によって設備要素の動作を定義するものである。すなわち、水平方向に移動する設備要素であれば、横軸に時間、縦軸に速度をとり、時間の推移に応じて設備要素の移動速度を定義する。
【００７０】
一方、ポジションチャートは、位置と速度との関係によって設備要素の動作を定義するものである。すなわち、水平方向に移動する設備要素であれば、横軸に位置、縦軸に速度をとり、位置の推移に応じて設備要素の移動速度を定義する。なお、ポジションチャートという言葉は、タイミングチャートに対する言葉として本実施の形態において定義されたものである。ポジションチャートによる定義は、位置を基準に設備要素の動作が定義されるため、設備要素間の相対的な位置関係を把握し易いというメリットがある。また、相対的な位置関係で設備要素間の関係が定義されるため、一つの設備要素の動作（ポジションチャート）について変更が生じた場合、他の設備要素のポジションチャートは、単に相対的な位置関係を考慮して平行移動させることで修正することができる。したがって、本実施の形態では、編集方法として視覚的に動作が把握し易いポジションチャートによる編集が選択された場合を説明する。
【００７１】
続いて、ＧＵＩ部１１１は、編集コマンドの入力を受け付ける（Ｓ５０７）。編集コマンドの入力は、領域５３４において行われる。領域５３４には、各アイテムが編集コマンドに対応するツリー部品（以下「コマンドツリー」という。）が表示されている。したがって、ユーザは、所望の編集コマンドに対応したアイテムを選択することによって編集コマンドを入力する。なお、コマンドツリーは、コマンドの分類に応じて階層化されている。
【００７２】
編集コマンドとして追加コマンドが選択されると、チャート処理部１１５は、ユーザによる対話的な入力に応じてチャートの追加処理を実行する（Ｓ５０９）。この結果、例えば、行５５１は、図１３に示されるような状態となる。なお、チャートの追加処理の詳細については後述する。
【００７３】
また、編集コマンドとして削除コマンドが選択されると、チャート処理部１１５は、選択されているチャートを削除する（Ｓ５１０）。また、編集コマンドとして移動コマンドが選択されると、チャート処理部１１５は、ユーザによる入力に応じて、チャートの位置の移動させる（Ｓ５１１）。
【００７４】
なお、図１２の処理は、作成するチャートの数に応じて繰り返される。
【００７５】
ステップＳ５０９のチャートの追加処理の詳細について説明する。図１５は、ポジションチャートの追加処理を説明するためのフローチャートである。
【００７６】
チャート処理部１１５は、ユーザによる対話的な入力応じて、デバイスリストに登録されている駆動デバイスの中から、ポジションチャートの作成対象とする駆動デバイス（以下「対象デバイス」という。）を選択し、選択された駆動デバイスを対象デバイスとする（Ｓ５９１）。
【００７７】
なお、行５５１において、ｌ１は、仮想原点を示す。また、ｌ２は、移動下限点を示し、ｌ３は、移動上限点を示す。移動下限点及び移動上限点については、デバイスリストに登録されている対象デバイスの属性値に基づいて表示される。
【００７８】
続いて、チャート処理部１１５は、ＧＵＩ部１１１を介して、領域５５０において選択されている行に対象デバイスを関連付ける（Ｓ５９２）。図１４では、行５５１に「搬入ホイスト走行」が関連付けられた例が示されている。続いて、ユーザが、行５５１においてポジションチャートを入力する位置を選択すると、チャート処理部１１５は、選択された位置をポジションチャートの位置として決定すると共に、選択された位置にポジションチャートを表示させる（Ｓ５９３）。図１４には、ポジションチャート５５１ｃが表示された例が示されている。
【００７９】
ここで表示されるポジションチャート５５１ｃは、ポジションチャートパターンテーブルに登録されているポジションチャートのパターンデータ（ポジションチャートパターンデータ）が表示されたものである。
【００８０】
図１６は、ポジションチャートパターンテーブルの構成例を示す図である。図１６に示されるように、ポジションチャートパターンテーブル２４０には、駆動デバイスのタイプや制御方法及び制御方法詳細等（駆動パターン）に応じて、ポジションチャートパターンデータ（設備要素の動作パターン）が登録されている。すなわち、ポジションチャートのパターンは、駆動デバイスのタイプ、制御方法及び制御方法詳細によってある程度特定されため、予めこれらの属性の組み合わせに応じてポジションチャートパターンデータの候補が登録されているのである。したがって、ステップＳ５９３において、チャート処理部１１５は、対象デバイスのタイプ、制御方法及び制御方法詳細に基づいて、対象デバイスに対応するポジションチャートパターンデータをポジションチャートパターンテーブル２４０より取得し、当該ポジションチャートパターンデータの表示をＧＵＩ部１１１に実行させる。
【００８１】
なお、各ポジションチャートパターンデータは、当該ポジションパターンデータに示される動作を駆動デバイスに実行させるためのプログラム（以下「単体要素プログラム」という。）と関連付けられている。但し、ポジションチャートパターンデータは、各駆動デバイスの具体的な動作に応じて編集（変形）され得る。したがって、単体要素プログラムにおいて、当該編集に応じて変化する部分については変数化されている。
【００８２】
続いて、チャート処理部１１５は、ユーザによる入力に応じてポジションチャート５５１ｃに対して起動条件（インターロック）を設定する（Ｓ５９４）。なお、請求項における動作情報には、インターロックも含まれる。
【００８３】
図１７は、ポジションチャートに対して起動条件（インターロック）を設定させるためのＧＵＩの例を示す図である。まず、図１７に示されるように、ポジションチャート５５１ｃにおいて起動条件を設定する位置（通常はポジションチャートの端点）を選択して、「起動条件」メニュー項目と「トリガー生成」メニュー項目と含むコンテキストメニュー５５１ｃｍを表示させる。「起動条件」メニュー項目が選択されると、ＧＵＩ部１１１は、起動条件に関連する駆動デバイスを選択させる。駆動デバイスの選択は、例えば、駆動デバイスの一覧を表示するダイアログにおいて行われる。駆動デバイスとして入力デバイスが選択されると、チャート処理部１１５は、ポジションチャート５５１ｃの起動条件として選択された入力デバイスを設定する。これは、選択された入力デバイスに何らかの入力があったときにポジションチャート５５１ｃによって定義された動作が起動されることを意味する。ポジションチャート５５１ｃに起動条件が設定されると、ＧＵＩ部１１１は、起動条件が設定されたことを示す記号ｍ１を表示させる（Ｓ５９５）。
【００８４】
続いて、チャート処理部１１５は、ユーザによる入力に応じてポジションチャート５５１ｃに対してトリガーを生成する（Ｓ５９６）。
【００８５】
図１８は、ポジションチャートに対してトリガーを生成させるためのＧＵＩの例を示す図である。まず、図１８（Ａ）に示されるように、ポジションチャート５５１ｃにおいてトリガーを生成する位置が右クリックされると、ＧＵＩ部１１１は、コンテキストメニュー５５１ｃｍを表示させる。コンテキストメニュー５５１ｃｍにおいて「トリガー」メニュー項目が選択されると、ＧＵＩ部１１１は、トリガーの名称及びトリガーの種類（位置データ又は時間）（以下「トリガー情報」という。）を入力させるためのダイアログを表示させる。当該ダイアログにおいてトリガー情報が入力されると、チャート処理部１１５は、トリガー情報に基づくトリガーをポジションチャート５５１ｃに対して生成する。ポジションチャート５５１ｃにトリガーが生成されると、ＧＵＩ部１１１は、図１８（Ｂ）に示されるようにトリガーが生成されたことを示す記号ｍ２を表示させる（Ｓ５９７）。なお、位置データによるトリガーとは、設備要素の移動距離に基づくトリガーをいい、時間によるトリガーとは、設備要素の移動時間に基づくトリガーをいう。
【００８６】
なお、ポジションチャートに対して起動条件やトリガーが設定又は生成されると、チャート処理部１１５は、当該ポジションチャートに対応する単体要素プログラムにおいて起動条件やトリガーに応じて値が変化する変数（パラメータ）に対して、設定又は生成された起動条件又はトリガーに応じた値を設定する。
【００８７】
図１２及び図１５において説明した処理が、各駆動デバイスについて行われることにより、領域５５０の各行には、各駆動デバイスに対するポジションチャートが入力される。図１９は、各駆動デバイスに対してポジションチャートが入力された状態を示す図である。図１９には、行５５１、行５５２，行５５３、及び行５５４において、搬入ホイスト走行、及び搬入ホイスト上下のポジションチャートが入力された例が示されている。なお、各駆動デバイス名の下に表示されている矢印は、動作の方向を示す。すなわち、行５５１には、搬入ホイスト走行の行き動作のポジションチャートが入力されている。また、行５５２には、搬入ホイスト上下の下降動作のポジションチャートが入力されている。また、行５５３には、搬入ホイスト上下の上昇動作のポジションチャートが入力されている。また、行５５４には、搬入ホイスト走行の戻り動作のポジションチャートが入力されている。
【００８８】
ところで、ポジションチャートパターンデータは、ポリラインや曲線で構成されている。したがって、ユーザは、簡易な操作でポジションチャートの形状を変更することができる。ポジションチャートの形状が変更されると、チャート処理部１１５は、当該ポジションチャートに対応する単体要素プログラムにおいてポジションチャートの形状に応じて値が変化する変数に対して、変更された形状に応じた値を設定する。
【００８９】
なお、ポジションチャートの形状の変更は、デバイスリストにおいて設定された当該駆動デバイスの属性情報の範囲内に限られる。例えば、制御方法が位置決め制御の２段として設定されている駆動デバイスのポジションチャートの形状を１段に変更しようとすると、チャート処理部１１５は、その変更を禁止し、エラーメッセージを表示させる。
【００９０】
ポジションチャートの編集後、メニュー５００等を介した入力により、ポジションチャートの保存が指示されると、チャート処理部１１５は、メモリ装置１０３上に保持されているポジションチャートの情報（チャート情報）をチャートファイル２４に出力する。
【００９１】
図２０は、チャートファイルの内容の例を示す図である。図２０のチャートファイル２４の内容は、図１９のポジションチャートに対応する。チャートファイル２４には、ステップごとにＳｔｅｐの内訳が記述され、Ｓｔｅｐの内訳ごとに、当該ステップのポジションチャートの形状データ、開始条件、トリガー等が記述されている。例えば、図２０においてＳｔｅｐ２４１、２４２，２４３、２４４は、図１９における行５５１、５５２，５５３，５５４に順番に対応する。Ｓｔｅｐ２４１には、Ｓｅｑｕｅｎｃｅ２４１１、ＳｔａｒｔＴｒｉｇｅｒ２４１２、及びＴｒｉｇｅｒＣｒｅａｔｅ２４１３が属している。Ｓｅｑｕｅｎｃｅ２４１１では、その下の行にポジションチャート５５１ｃの形状データが格納されているファイル（ポジションチャート形状ファイル２４１ｐｄ）のファイル名が記述されている。すなわち、ポジションチャートの形状データは、ポジションチャートごとに別個に作成され、チャートファイル２４にはその参照情報が記述される。また、ＳｔａｒｔＴｒｉｇｅｒ２４１３の下の行には設定された開始条件に関する情報が記述され、ＴｒｉｇｅｒＣｒｅａｔｅ２４１２の下には、生成されたトリガーに関する情報が記述されている。
【００９２】
ところで、領域５３３のラジオボタン５３３ｂにおいてタイミングチャート（「Ｔｉｍｉｎｇ」）が選択されると、チャート処理部１１５は、ポジションチャートをタイミングチャートに変換する。ＧＵＩ部１１１は、変換されたタイミングチャートを表示させる。
【００９３】
図２１は、タイミングチャートの表示例を示す図である。図２１では、各駆動デバイスの動作がタイミングチャートによって表現されている。
【００９４】
次に、ステップＳ６０の制御プログラム生成処理について説明する。図２２は、制御プログラム生成処理を説明するためのフローチャートである。
【００９５】
ユーザによって制御プログラム３０の出力指示が入力されると、ＧＵＩ部１１１は、制御プログラムのオプション情報、制御プログラムの名称、及び制御プログラム３０の出力先等の情報をユーザに設定させる（Ｓ６１）。当該情報の設定は、例えば、ダイアログを介して行われる。
【００９６】
続いて、プログラム生成部１１７は、ワークスペース管理ファイル２１、プロジェクト管理ファイル２２、デバイスリストファイル２３、チャートファイル２４及びプログラムテンプレート２６に格納されている情報を読み込み（Ｓ６２）、これらの情報と、ステップＳ６１において設定された情報とに基づいて、制御プログラム３０を自動生成する（Ｓ６３）。より詳しくは、プログラム生成部１１７は、プログラムテンプレート２６において変数化されている部分である、制御対象となるコントローラ等に関する情報、生産設備の構成等に関する情報、生産設備に属する各設備要素の動作に関する情報等に対して具体的な値を設定する。制御対象となるコントローラ等に関する情報は、ワークスペース管理ファイル２１やプロジェクト管理ファイル２２より取得される。生産設備の構成等に関する情報については、デバイスリストファイル２３より取得される。また、各設備要素の動作に関する情報については、チャートファイル２４より取得される各ポジションチャートに関連付けられている単位要素プログラムが組み込まれる（当てはめられる）。
【００９７】
続いて、プログラム生成部１１７は、ステップＳ６１において設定された出力先に、生成した制御プログラム３０を出力する（Ｓ６４）。
【００９８】
上述したように、本実施の形態におけるプログラム生成装置１０によれば、プログラムの作成者は、デバイスリストを定義したり、ポジションチャートを入力したりすることで効率的に生産設備の制御プログラムを作成することができる。また、プログラムテンプレート２６が予め定義され、制御対象等に応じて変更される部分に対して定義を行うような形で制御プログラムが作成されるため、作成される制御プログラム３０の品質が均質化される。したがって、各プログラマーの熟練度の違いに基づくプログラムミスや、独自のプログラミングスタイルが実装されることによるメンテナンス性の低下等を防止することができる。
【００９９】
ところで、メイン画面５００の領域５４０は、ＣＡＤデータを表示させるためのビューアである。領域５４０に対象設備のＣＡＤデータを表示させることにより、制御プログラム生成プログラム１１は、その処理過程において、ＣＡＤデータとの連携によってユーザに対してより高い操作性を提供することができる。
【０１００】
図２３は、ＣＡＤデータの取り込み処理を説明するためのフローチャートである。図２３の処理は、プロジェクトの作成後、任意のタイミングで行うことができる。
【０１０１】
ＣＡＤデータ処理部１１６は、ＧＵＩ部１１１は、ユーザによって選択されたＣＡＤデータを取り込む（Ｓ７０１）。ＧＵＩ部１１１は、ＣＡＤデータ処理部１１６によって取り込まれたＣＡＤデータ２５を領域５４０に表示させる（Ｓ７０２）。なお、更に別のＣＡＤデータ２５を組み合わせて表示させる場合は（Ｓ７０３でＹｅｓ）、ステップＳ７０１及びＳ７０２の処理が繰り返される。
【０１０２】
必要なＣＡＤデータ２５の全てが取り込まれると（Ｓ７０３でＮｏ）、ＣＡＤデータ処理部１１６は、ユーザによる入力に応じて、領域５４０において表示されているＣＡＤデータに含まれている設備要素の中から、プロジェクトに取り込む設備要素を選択する（Ｓ７０４）。
【０１０３】
続いて、ＣＡＤデータ処理部１１６は、プロジェクトに取り込まれた設備要素のみを領域５４０に表示させる（Ｓ７０５）。図２４は、プロジェクトに取り込まれた設備要素のみが表示された状態を示す図である。
【０１０４】
次に、取り込まれたＣＡＤデータとデバイスリストとを関連付けるための処理について説明する。図２５は、ＣＡＤデータとデバイスリストとを関連付けるための処理を説明するためのフローチャートである。図２５の処理は、デバイスリストの作成後、任意のタイミングで行うことができる。
【０１０５】
まず、ＣＡＤデータ処理部１１６は、ユーザによる入力に応じて、ＣＡＤデータを操作するためのコマンドを入力させるための画面（以下「ＣＡＤ操作画面」という。）を領域５３０に表示させる（Ｓ７１１）。ＣＡＤ操作画面は、例えば、各アイテムがＣＡＤの操作コマンドに対応したツリー部品によって構成されている。ＣＡＤ操作コマンドとしては、例えば、表示方法に関するコマンド、ブロック化に関するコマンド、座標系の設定に関するコマンド、デバイスリストとの紐付け（関連付け）に関するコマンドに分類されている。
【０１０６】
続いて、ＣＡＤデータ処理部１１６は、ユーザによる入力に応じて、ＣＡＤデータを構成する設備要素を、同一の駆動デバイスによって駆動される単位でブロック化する（Ｓ７１２）。より詳しくは、ユーザは、領域５４０において、同一の駆動デバイスによって駆動される設備要素を一つ以上選択する。設備要素が選択された状態において、ＣＡＤ操作画面においてブロックの生成が指示されると、ＣＡＤデータ処理部１１６は、選択されている設備要素をブロック化すると共に、ブロックに対する駆動デバイスを示すマーク（以下「デバイスマーク」という。）を当該ブロックに表示させる。
【０１０７】
図２６は、デバイスマークの表示例等を説明するための図である。図中において、各ブロックに関連付けられたバルーン記号Ｂがデバイスマークに相当する。但し、この時点では、ブロックに対して特定の駆動デバイスは関連付けられていないため、デバイスマークには特定の駆動デバイスを示す情報は表示されない。また、ブロック化は、駆動デバイスごとに行われる。したがって、各ブロックを識別するために、それぞれのブロックに属する設備要素の表示色を設定可能としてもよい。なお、図２６には、後述の処理によって表示される記号や図形等も含まれている。
【０１０８】
続いて、ＣＡＤデータ処理部１１６は、ＣＡＤ操作画面におけるユーザによる入力に応じて、各ブロックと、デバイスリストに含まれている駆動デバイスとの関連付けを行う（Ｓ７１３）。例えば、デバイスリスト処理部１１４は、デバイスリストに登録されている駆動デバイスの一覧を表示させる。ユーザが一覧の中から一つの駆動デバイスを選択し、続けて領域５４０におけるブロックを選択すると、ＣＡＤデータ処理部１１６は、当該ブロックに当該駆動デバイスを関連付ける。ＧＵＩ部１１１は、駆動デバイスが関連付けられたブロックのデバイスマークに、当該駆動デバイスを識別するための番号又は名称を表示させる。
【０１０９】
続いて、ＣＡＤデータ処理部１１６は、ＣＡＤ操作画面におけるユーザによる入力に応じて、ブロックごとに座標系及び動作方向と、対象設備の動作のシミュレーション処理の際における各ブロックのアニメーションの表示のさせ方とを設定し、各ブロックの座標系を識別するための座標記号Ｃ１（図２６参照）を表示させる（Ｓ７１４）。
【０１１０】
続いて、ＣＡＤデータ処理部１１６は、ユーザによる入力に応じ、各ブロックの動作方法の設定を行う（Ｓ７１５）。ブロックの動作方法としては、例えば、コンベヤータイプ、単純移動、回転移動等がある。続いて、ＣＡＤデータ処理部１１６は、ユーザによる入力に応じ、アニメーション表示の際のブロック間の関係を設定する（Ｓ７１６）。続いて、ＣＡＤデータ処理部１１６は、ユーザによる入力に応じ、ワーク（ガラス板）のＣＡＤデータ（ワークＷ（図２６参照））を取り込む（Ｓ７１７）。
【０１１１】
続いて、ＣＡＤデータ処理部１１６は、ユーザによる入力に応じ、アニメーション表示の際のワークＷと設備要素のブロックとの関係を設定する（Ｓ７１８）。より、詳しくは、ワークＷの動きを駆動デバイスの動きと関連付けて設定する。例えば、ワークＷのハンドリングや搬送方法等が設定される。続いて、ＣＡＤデータ処理部１１６は、ユーザによる入力に応じ、センサに関する設定を行う（Ｓ７１９）。具体的には、領域５４０においてブロックと関連付けられている駆動デバイスのうち、センサとしての駆動デバイスについて、アニメーション内で各種の検出を行う方法等が設定される。例えば、センサとブロックとの接触を検知するための関係や、センサがワークＷを検知するための関係等が設定される。
【０１１２】
次に、ＣＡＤデータを用いた、対象設備の動作のシミュレーション処理について説明する。図２７は、対象設備の動作のシミュレーション処理を説明するためのフローチャートである。図２７の処理は、ＣＡＤデータ（ブロック）とデバイスリストとの関連付けが行われ、更に、チャート作成処理が行われた後、任意に実行することができる。
【０１１３】
例えば、ＣＡＤ操作画面において動作確認の実行指示が入力されると、ＣＡＤデータ処理部１１６は、選択されたシーケンスをシミュレーションの対象として選択する（Ｓ７２１）。
【０１１４】
続いて、ＣＡＤ操作画面の動作確認操作部７２１において、再生ボタンがクリックされると（Ｓ７２２）、ＣＡＤデータ処理部１１６は、選択されたシーケンスに属するチャート情報、ＣＡＤデータとデバイスリストとの関連付け、及び図２５において説明した処理によって設定された情報等に基づいて、対象設備の動作のシミュレーションを実行し、その動作のアニメーションを領域５４０に表示させる（Ｓ７２３）。
【０１１５】
ところで、領域５５０においてポジションチャートを作成する際、領域５４０に対象設備のＣＡＤデータを表示させておき、そのＣＡＤデータを参照させながら、ポジションチャートを入力させてもよい。
【０１１６】
図２８は、ＣＡＤデータとの連携によるポジションチャートの入力の様子を示す図である。図２８は、ガラス板を搬入するホイストのブロックを表示させている。図２８では、メイン画面５００における領域５４０及び領域５５０のみが表示されている。図２８における領域５４０と領域５５０との座標系は同期がとられている。二つの領域における座標系の同期は、例えば、ＣＡＤ操作画面におけるユーザによる入力に応じて、ＣＡＤデータ処理部１１６が実行する。
【０１１７】
図２８に示されるように、領域５４０及び領域５５０の座標系の同期がとられている状態では、ユーザは、領域５４０に表示されている対象設備のＣＡＤデータを参照しつつ、より直感的にポジションチャートを入力することができる。なお、ＣＡＤデータとブロックとの関連付けが行われている状態においては、ポジションチャートの作成対象とする駆動デバイスは、領域５４０に表示されているＣＡＤデータ上において当該ブロックが存在する位置をクリックすることにより選択することができる。
【０１１８】
以上、本発明の実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【０１１９】
【図１】本発明の実施の形態におけるプログラム生成装置の機能構成例を示す図である。
【図２】本発明の実施の形態におけるプログラム生成装置のハードウェア構成例を示す図である。
【図３】プログラム生成装置において実行される処理手順の概要を説明するためのフローチャートである。
【図４】メイン画面の表示例を示す図である。
【図５】ワークスペース作成処理を説明するためのフローチャートである。
【図６】ワークスペースが表示されたときの表示内容を詳細に示す図である。
【図７】プロジェクト作成処理を説明するためのフローチャートである。
【図８】プロジェクトテンプレートの定義例を示す図である。
【図９】デバイスリスト編集処理を説明するためのフローチャートである。
【図１０】デバイスリスト編集画面の表示例を示す図である。
【図１１】デバイスリストファイルの内容の例を示す図である。
【図１２】チャート作成処理を説明するためのフローチャートである。
【図１３】シーケンス構成編集画面の表示例を示す図である。
【図１４】チャートの作成処理の概要を説明するための図である。
【図１５】ポジションチャートの追加処理を説明するためのフローチャートである。
【図１６】ポジションチャートパターンテーブルの構成例を示す図である。
【図１７】ポジションチャートに対して起動条件（インターロック）を設定させるためのＧＵＩの例を示す図である。
【図１８】ポジションチャートに対してトリガーを生成させるためのＧＵＩの例を示す図である。
【図１９】各駆動デバイスに対してポジションチャートが入力された状態を示す図である。
【図２０】チャートファイルの内容の例を示す図である。
【図２１】タイミングチャートの表示例を示す図である。
【図２２】制御プログラム生成処理を説明するためのフローチャートである。
【図２３】ＣＡＤデータの取り込み処理を説明するためのフローチャートである。
【図２４】プロジェクトに取り込まれた設備要素のみが表示された状態を示す図である。
【図２５】ＣＡＤデータとデバイスリストとを関連付けるための処理を説明するためのフローチャートである。
【図２６】デバイスマークの表示例等を説明するための図である。
【図２７】対象設備の動作のシミュレーション処理を説明するためのフローチャートである。
【図２８】ＣＡＤデータとの連携によるポジションチャートの入力の様子を示す図である。
【符号の説明】
【０１２０】
１０          プログラム生成装置
１１          制御プログラム生成ソフト
２１          ワークスペース管理ファイル
２２          プロジェクト管理ファイル
２３          デバイスリスト管理ファイル
２４          チャートファイル
２５          ＣＡＤデータ
２６          プログラムテンプレート
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        演算処理装置
１０５        インタフェース装置
１０６        表示装置
１０７        入力装置
１１１        ＧＵＩ部
１１２        ワークスペース管理部
１１３        プロジェクト管理部
１１４        デバイス処理部
１１５        チャート処理部
１１６        ＣＡＤデータ処理部
１１７        プログラム生成部
Ｂ            バス
【図１】
2008129922.tif 000003
【図２】
2008129922.tif 000004
【図３】
2008129922.tif 000005
【図４】
2008129922.tif 000006
【図５】
2008129922.tif 000007
【図６】
2008129922.tif 000008
【図７】
2008129922.tif 000009
【図８】
2008129922.tif 000010
【図９】
2008129922.tif 000011
【図１０】
2008129922.tif 000012
【図１１】
2008129922.tif 000013
【図１２】
2008129922.tif 000014
【図１３】
2008129922.tif 000015
【図１４】
2008129922.tif 000016
【図１５】
2008129922.tif 000017
【図１６】
2008129922.tif 000018
【図１７】
2008129922.tif 000019
【図１８】
2008129922.tif 000020
【図１９】
2008129922.tif 000021
【図２０】
2008129922.tif 000022
【図２１】
2008129922.tif 000023
【図２２】
2008129922.tif 000024
【図２３】
2008129922.tif 000025
【図２４】
2008129922.tif 000026
【図２５】
2008129922.tif 000027
【図２６】
2008129922.tif 000028
【図２７】
2008129922.tif 000029
【図２８】
2008129922.tif 000030