(57)【特許請求の範囲】
【請求項１】
モーションプログラムを呼び出すラダープログラムを実行する１つ以上のメインＣＰＵユニットと、前記呼び出されたモーションプログラムを実行して負荷装置の動作を制御する１つ以上のモーションＣＰＵユニットと、前記メインＣＰＵユニットおよびモーションＣＰＵユニットを夫々所定のスロット位置に接続する１つのベースユニットと、を夫々有する１つ以上のプログラマブルコントローラに対して、前記モーションプログラムおよび前記ラダープログラムの作成を行う制御プログラム作成装置であって、
１以上のモーションプログラムが実行対象のモーションＣＰＵユニット毎にグループ化されて格納されるとともに、前記１以上のモーションプログラムの夫々と前記夫々のモーションプログラムが属するグループに固有の第１識別情報および当該グループ内で固有のプログラム番号との対応関係を記憶するモーションプログラム記憶部と、
１以上のラダープログラムが実行対象のメインＣＰＵユニット毎にグループ化されて格納されるとともに、前記１以上のラダープログラムの夫々と前記夫々のラダープログラムが属するグループに固有の第２識別情報との対応関係を記憶するラダープログラム記憶部と、
前記モーションプログラム記憶部に格納されているモーションプログラムまたは前記ラダープログラム記憶部に格納されているラダープログラムを表示装置に表示する表示処理部と、
前記表示装置に表示中のモーションプログラムまたはラダープログラムの編集入力を受け付ける入力処理部と、
ベースユニットの夫々のスロット位置と接続されているモーションＣＰＵユニットおよびメインＣＰＵユニットとの対応付けと、前記接続されているモーションＣＰＵユニットと当該モーションＣＰＵユニットで実行されるモーションプログラムが属するグループの第１識別情報との対応付けと、前記接続されているメインＣＰＵユニットと当該メインＣＰＵユニットで実行されるラダープログラムが属するグループの第２識別情報との対応付けと、を含むユニット構成情報を作成する識別情報割付部と、
前記作成されたユニット構成情報を格納するユニット構成情報記憶部と、
前記表示装置が表示中のラダープログラムに含まれる、モーションＣＰＵユニットのスロット位置とプログラム番号とを指定して該モーションＣＰＵユニットに実行させるモーションプログラムを呼び出す呼び出し命令を選択する入力を前記入力処理部が受け付けると、前記呼び出し命令を含むラダープログラムに対応付けられている第２識別情報を取得し、前記ユニット構成情報記憶部を検索して前記取得した第２識別情報を使用しているユニット構成情報を取得し、前記取得したユニット構成情報から前記呼び出し命令に指定されるスロット位置に接続されているモーションＣＰＵユニットに対応付けられている第１識別情報を取得し、該取得した第１識別情報と前記呼び出し命令に指定されるプログラム番号とに基づいて前記モーションプログラム記憶部を検索して前記呼び出し命令の呼び出し対象のモーションプログラムを特定し、前記特定したモーションプログラムを前記モーションプログラム記憶部から読み出して前記表示装置に表示するプログラム検索部と、
を備えることを特徴とする制御プログラム作成装置。
【請求項２】
前記呼び出し命令は、スロット位置またはプログラム番号が変数で記述され、自命令を含むラダープログラムがメインＣＰＵユニットに実行される際に前記プログラマブルコントローラが予め保持する変数と実値との対応情報に基づいて前記変数に実値が代入される呼び出し命令であって、
前記プログラマブルコントローラが接続されている状態において前記呼び出し命令を選択する入力を前記入力処理部が受け付けると、前記対応情報を参照することによって前記呼び出し命令に記述されている前記変数に対応する実値を読み出して、前記変数で記述される前記スロット位置または前記プログラム番号に代入される実値を取得する変数変換部をさらに備える、
ことを特徴とする請求項１に記載の制御プログラム作成装置。
【請求項３】
前記プログラム検索部は、前記取得したユニット構成情報を検索して前記呼び出し命令に指定されるスロット位置に接続されているモーションＣＰＵユニットが存在するか否かを判定し、前記呼び出し命令に指定されるスロット位置に接続されているモーションＣＰＵユニットが存在しない場合、不整合である旨の表示を前記表示装置に表示する、
ことを特徴とする請求項１または２に記載の制御プログラム作成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルコントローラを制御するための制御プログラムを作成する制御プログラム作成装置に関するものである。
【背景技術】
【０００２】
産業用機械などの制御装置としてプログラマブルコントローラ（以下、ＰＬＣという）が用いられている。このＰＬＣは、複数のユニットから構成される。すなわち、電源供給源の電源ユニット、ＰＬＣ全体の制御を統率するＣＰＵユニット、生産装置や設備装置の駆動部に取り付けたサーボモータやステッピングモータなどの位置決め制御を必要とする負荷装置を制御するモーションＣＰＵユニット、生産装置や設備装置の適所に取り付けたスイッチやセンサの信号を入力する入力ユニット、アクチュエータなどに制御出力を出す出力ユニット、通信ネットワークに接続するための通信ユニットなどの各種のユニットを適時組み合わせて構成される。
【０００３】
ＣＰＵユニットにおける制御は、入力ユニットで入力した信号をＣＰＵユニットのＩ／Ｏメモリに取り込み、予め登録されたラダー言語で組み込まれたユーザプログラムに基づき論理演算をし、その演算実行結果をＩ／Ｏメモリに書き込んで出力ユニットに送り出し、その後、いわゆる周辺処理を行うということをサイクリックに繰り返し処理するようになる。
【０００４】
また、モーションＣＰＵユニットにおける制御は、予め登録されたモーションプログラム言語で組み込まれたユーザプログラムに基づきモーション指令を生成し、その指令結果をサーボアンプに送り出し、サーボアンプを介してサーボモータを制御し、サーボモータの速度、位置などの状態をモーションＣＰＵユニットに戻すことを繰り返し所定の動作を処理するようになる。
【０００５】
ところで、モーションＣＰＵユニットはＣＰＵユニットによって制御されている。つまり、ＣＰＵユニットに組み込まれたユーザプログラムには、モーションＣＰＵユニットに対する実行指令命令（呼び出し命令）が記述されており、呼び出し命令が処理されるとＣＰＵユニットからモーションＣＰＵユニットに対して、モーションプログラムの実行指令が送り出され、実行指令を受け取ったモーションＣＰＵユニットが指定のモーションプログラムを処理するということを繰り返す。
【０００６】
上記したユーザプログラムは、通常、制御プログラム作成装置を用いて生成したラダープログラム乃至モーションプログラムであり、通信回線を介して夫々ＣＰＵユニット乃至モーションＣＰＵユニットにダウンロードされる。また、作成したラダープログラム乃至モーションプログラムに不具合が生じた場合には、ユーザは制御プログラム作成装置の表示画面に夫々該当するラダープログラム乃至モーションプログラムを表示させて検証し、不良箇所を見つけて修正作業を行う。そして、修正したラダープログラム乃至モーションプログラムをＣＰＵユニット乃至モーションＣＰＵユニットにダウンロードする。
【０００７】
制御プログラムの作成の負担を軽減する従来技術として、モーションプログラムの指令内容を解析し、リンク情報データベースに基づいて機能ソフトウェア群より必要な機能ソフトウェア群を読み出しモーションプログラムを作成することが開示されている。
【０００８】
【特許文献１】特開２００７−１７９２２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記従来の技術によれば、モーションプログラム内において、機能ソフトウェア群を読み出すだけなので、ラダープログラムに記述されたモーションプログラムの呼び出し命令によって、呼び出されるモーションプログラムを特定し、表示させるといったことができないため、プログラム作成および修正作業の負担は全く軽減されないという問題があった。
【００１０】
さらに、大規模な産業用機械などを制御する場合には、１つのＣＰＵユニットと複数台のモーションＣＰＵユニットから構成される。このような制御プログラムを作成する場合、複数台のモーションＣＰＵユニットに登録するモーションプログラムを作成することになり、ラダープログラムには、多数のモーションプログラム呼び出し命令が記述されることになる。間違ったモーションプログラムの呼び出し命令を記述して、産業用機械を動作させてしまうと、機械を破損させてしまうだけでなく、人身事故の危険もあり、ユーザにとっては非常に負担を強いられる。
【００１１】
そのような状況の中で、ユーザは、ラダープログラムおよびモーションプログラムを目視で選択し、表示させ、慎重に照らし合わせながら作業を繰り返し、不具合のない制御プログラムを作成するという手間があり、制御プログラム作成に時間を要するという問題がある。
【００１２】
この発明は、上記に鑑みてなされたもので、制御プログラムの作成および修正作業の負担を軽減する制御プログラム作成装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決し、目的を達成するために、本発明は、モーションプログラムを呼び出すラダープログラムを実行する１つ以上のメインＣＰＵユニットと、前記呼び出されたモーションプログラムを実行して負荷装置の動作を制御する１つ以上のモーションＣＰＵユニットと、前記メインＣＰＵユニットおよびモーションＣＰＵユニットを夫々所定のスロット位置に接続する１つのベースユニットと、を夫々有する１つ以上のプログラマブルコントローラに対して、前記モーションプログラムおよび前記ラダープログラムの作成を行う制御プログラム作成装置であって、１以上のモーションプログラムが実行対象のモーションＣＰＵユニット毎にグループ化されて格納されるとともに、前記１以上のモーションプログラムの夫々と前記夫々のモーションプログラムが属するグループに固有の第１識別情報および当該グループ内で固有のプログラム番号との対応関係を記憶するモーションプログラム記憶部と、１以上のラダープログラムが実行対象のメインＣＰＵユニット毎にグループ化されて格納されるとともに、前記１以上のラダープログラムの夫々と前記夫々のラダープログラムが属するグループに固有の第２識別情報との対応関係を記憶するラダープログラム記憶部と、前記モーションプログラム記憶部に格納されているモーションプログラムまたは前記ラダープログラム記憶部に格納されているラダープログラムを表示装置に表示する表示処理部と、前記表示装置に表示中のモーションプログラムまたはラダープログラムの編集入力を受け付ける入力処理部と、ベースユニットの夫々のスロット位置と接続されているモーションＣＰＵユニットおよびメインＣＰＵユニットとの対応付けと、前記接続されているモーションＣＰＵユニットと当該モーションＣＰＵユニットで実行されるモーションプログラムが属するグループの第１識別情報との対応付けと、前記接続されているメインＣＰＵユニットと当該メインＣＰＵユニットで実行されるラダープログラムが属するグループの第２識別情報との対応付けと、を含むユニット構成情報を作成する識別情報割付部と、前記作成されたユニット構成情報を格納するユニット構成情報記憶部と、前記表示装置が表示中のラダープログラムに含まれる、モーションＣＰＵユニットのスロット位置とプログラム番号とを指定して該モーションＣＰＵユニットに実行させるモーションプログラムを呼び出す呼び出し命令を選択する入力を前記入力処理部が受け付けると、前記呼び出し命令を含むラダープログラムに対応付けられている第２識別情報を取得し、前記ユニット構成情報記憶部を検索して前記取得した第２識別情報を使用しているユニット構成情報を取得し、前記取得したユニット構成情報から前記呼び出し命令に指定されるスロット位置に接続されているモーションＣＰＵユニットに対応付けられている第１識別情報を取得し、該取得した第１識別情報と前記呼び出し命令に指定されるプログラム番号とに基づいて前記モーションプログラム記憶部を検索して前記呼び出し命令の呼び出し対象のモーションプログラムを特定し、前記特定したモーションプログラムを前記モーションプログラム記憶部から読み出して前記表示装置に表示するプログラム検索部と、を備えることを特徴とする。
【発明の効果】
【００１４】
この発明によれば、ラダープログラムに含まれるモーションプログラムの呼び出し命令が選択されると、該呼び出し命令によって呼び出されるモーションプログラムを特定して表示するので、制御プログラムの作成および修正作業の負担を軽減する制御プログラム作成装置を提供することができる。
【発明を実施するための最良の形態】
【００１５】
以下に、本発明にかかる制御プログラム作成装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１６】
実施の形態．
図１は、本発明にかかる制御プログラム作成装置の実施の形態のハードウェア構成を説明する図である。
【００１７】
図１において、制御プログラム作成装置１０は、所定の通信回線１６を介してＰＬＣ１７に接続されている。ここで、ＰＬＣ１７は、ＰＬＣ全体の制御を統制するＣＰＵユニット（以下、単にＣＰＵユニットという）およびモーションＣＰＵユニットを含むユニットが夫々ベースユニットの所定のスロットに接続された構成となっている。制御プログラム作成装置１０は、ラダー言語で記述され、一般的にラダープログラムと呼ばれるユーザプログラムと、モーションプログラム言語で記述され、モーションプログラムと呼ばれるユーザプログラムとを作成する。作成された該ユーザプログラムは、夫々ＣＰＵユニットおよびモーションＣＰＵユニットに通信回線１６を介してダウンロードされる。ＣＰＵユニットおよびモーションＣＰＵユニットは、夫々ダウンロードしたユーザプログラムに基づいて動作する。通信回線１６は、例えば、ＲＳ２３２Ｃなどのシリアル回線を用いて直接ケーブル接続することにより実現される。もちろん、このような直接接続するものに限ることなく、他の通信回線を用いネットワーク経由でＰＬＣ１７と制御プログラム作成装置１０とを接続する構成を採っても良い。
【００１８】
制御プログラム作成装置１０は、キーボードおよびポインティングデバイス等により構成される入力装置１１と、ＬＣＤ等により構成される表示装置１２と、中央演算装置１３と、記憶装置１４と、通信Ｉ／Ｆ（インターフェース）装置１５とをさらに備える。通信Ｉ／Ｆ装置１５は、通信回線１６を制御して制御プログラム作成装置１０とＰＬＣ１７との通信を行う通信回線１６の制御処理を行う。記憶装置１４は図示しない不揮発性記憶装置と揮発性記憶装置とがあり、不揮発性記憶装置は中央演算装置１３に実行させる基本プログラムであるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）プログラムと、ラダープログラムおよびモーションプログラムを含む制御プログラムを作成する制御プログラム作成プログラムと、該制御プログラム作成プログラムが使用および作成する各種データおよびユーザプログラムと、を記憶する。揮発性記憶装置は中央演算装置１３の実行時のワークメモリとして適宜使用される。中央演算装置１３は、記憶装置１４に記憶されるＯＳプログラムを実行することにより中央演算装置１３全体の動作の制御を行うとともに、制御プログラム作成プログラムを実行することによって後述する各種機能部を実現し、制御プログラム作成装置１０が制御プログラムを設定する動作を行う。
【００１９】
次に、中央演算装置１３が制御プログラム作成プログラムを実行することによって実現する、本実施の形態の制御プログラム作成装置１０の各種機能部を説明する。図２は、本実施の形態の制御プログラム作成装置１０の機能ブロック図である。
【００２０】
図２において、制御プログラム作成装置１０は、入力装置１１からの入力を処理する入力処理部２２、表示装置１２に出力する表示データを作成する表示処理部２０、演算部２１、演算部２１による演算結果やラダープログラム等を格納する記憶部２３、ＰＬＣ１７との通信を処理する通信処理部２４とを有する。演算部２１は、ユニット構成情報作成部２１ａ、プロジェクト割付部２１ｂ、プログラム検索部２１ｃ、変数変換部２１ｄ、整合性チェック部２１ｅ、およびユーザプログラム作成部２１ｆを有する。また、記憶部２３はユニット構成情報記憶部２３ａ、ユニット部品情報記憶部２３ｂ、ラダープログラム記憶部２３ｃ、モーションプログラム記憶部２３ｄを有する。
【００２１】
ユニット構成情報記憶部２３ａは、ユニット構成情報作成部２１ａによって作成されるユニット構成情報３０を格納する。ユニット構成情報３０は、図３に示すように複数のユニット構成情報テーブル３１から構成され、ユニット構成情報テーブル３１は、１つのＰＬＣ１７のユニット構成を示すものであり、ＰＬＣ構成名称３１ａとスロット番号３１ｂ、ユニット名称３１ｃ、属性情報３１ｄ、オブジェクトＩＤ３１ｅ、プロジェクト名称３１ｆの項目から構成される。
【００２２】
ＰＬＣ構成名称３１ａは、複数のＰＬＣの構成を区別するための名称を格納する。また、スロット番号３１ｂは、ユニットを接続するベースユニットのスロットを区別するための番号を格納し、スロット番号３１ｂの数は、ベースユニットの種類によって決定されるものである。また、ユニット名称３１ｃは、スロットに接続するユニットの名称を格納する。また、属性情報３１ｅは、ユニット固有の属性情報を格納する。また、オブジェクトＩＤ３１ｅは、ユニット構成情報３０の全ての情報に対して一意に決まる値であるオブジェクトＩＤを格納する。また、プロジェクト名称３１ｆは、ＣＰＵユニットまたはモーションＣＰＵユニットにダウンロードするユーザプログラムが属する、夫々後述するＰＬＣプロジェクト５０の名称またはモーションプロジェクト６０の名称を格納する。
【００２３】
ユニット部品情報記憶部２３ｂには、図４に示すように複数のユニット群から構成され、１つのユニット群には複数のユニット情報が含まれている。また、１つのユニット情報には、ユニット名称と属性情報から構成されている。詳しく説明すると、ユニット群には、ベースユニット群４０やＣＰＵユニット群４１、モーションＣＰＵユニット群４２、入力ユニット群４３などがあり、ユニット群は、同じ種類のユニット情報を纏めるためのものである。ベースユニット群４０には、複数の種類のベースユニットＡ（４０ａ）というユニット名称および第一の属性情報４０ａａやベースユニットＢ（４０ｂ）というユニット名称および第二の属性情報４０ｂａなどのユニット情報から構成される。また同様に、ＣＰＵユニット群４１には、複数の種類のＣＰＵユニットＡ（４１ａ）および第三の属性情報４１ａａやＣＰＵユニットＢ（４１ｂ）および第四の属性情報４１ｂａなどのユニット情報から構成される。また、モーションＣＰＵユニット群４２には、複数の種類のモーションＣＰＵユニットＡ（４２ａ）および第五の属性情報４２ａａやモーションＣＰＵユニットＢ（４２ｂ）および第六の属性情報４２ｂａなどのユニット情報から構成される。また、入力ユニット群４３には、複数の種類の入力ユニットＡ（４３ａ）および第七の属性情報４３ａａや入力ユニットＢ（４３ｂ）および第八の属性情報４３ｂａなどのユニット情報から構成される。この他、ＰＬＣを構成するのに必要となるユニット群、ユニット情報を同様の構成で格納している。
【００２４】
また、属性情報には、ユニットサイズ、消費電力、ユニット画像データ、その他ユニット固有の情報を格納している。ベースユニットＡ（４０ａ）の第一の属性情報４０ａａには、図５に示すようにベースユニットＡ（４０ａ）にユニットを装着することができるスロット数４５とスロット数の値４５ａや前記スロットに装着できるＣＰＵユニットの数であるＣＰＵユニット装着可能数４６とＣＰＵユニット装着可能数の値４６ａ、ベースユニットＡ（４０ａ）を後述するユニット構成情報表示部１２ａａに表示するためのユニット画像データ４７を格納している。なお、本発明では、属性情報に格納する情報を限定するものではない。
【００２５】
ラダープログラム記憶部２３ｃには、図６に示すように複数のラダープログラムを、実行するＣＰＵユニット毎に、ＰＬＣプロジェクト５０でグループに纏めて格納する。各ラダープログラムには、同一のＰＬＣプロジェクト５０内で区別可能なように固有のプログラム番号が割り振られている。同様にモーションプログラム記憶部２３ｄには、図７に示すように複数のモーションプログラムを、実行するモーションＣＰＵユニット毎に、モーションプロジェクト６０でグループに纏めて格納する。そして、夫々のモーションプログラムは、同一のモーションプロジェクト６０内で区別可能なように固有のプログラム番号が割り振られている。
【００２６】
ここで、ＰＬＣの構成において、複数のＣＰＵユニットで構成される場合には、ラダープログラム記憶部２３ｃには複数のＰＬＣプロジェクト５０を格納する。同様にＰＬＣの構成において、複数のモーションＣＰＵユニットで構成される場合には、モーションプログラム記憶部２３ｄには複数のモーションプロジェクト６０を格納する。夫々のＰＬＣプロジェクト５０および夫々のモーションプロジェクト６０は、一意に特定できる識別情報で区別できるようにする。ここでは、ＰＬＣプロジェクト５０および夫々のモーションプロジェクト６０は識別情報としてプロジェクト毎に固有の名称を夫々有するとするが、各プロジェクトを区別する識別情報はこれに限定されるものではない。
【００２７】
ここで、ラダープログラムおよびモーションプログラムの詳細を説明する。図８にラダープログラムの一例を、図９にモーションプログラムの一例を示す。図８に示す呼び出し命令７０は、ラダープログラムからモーションプログラムを呼び出すための命令である。図９のモーションプログラムは、プログラム番号が１０であることを示している。図１０に呼び出し命令７０の文法の例を示す。図１０において、命令７１は呼び出し命令の命令文、△７２は空白（スペース）である。
【００２８】
号機７３はモーションＣＰＵユニットを指定するための号機番号であり、前記するユニット構成情報３０におけるスロット番号３１ｂに対応する。プログラム番号７４はモーションプログラムを指定するための番号であり、前記するモーションプロジェクト６０内のモーションプログラムに割り振られている固有の番号であるプログラム番号に対応する。
【００２９】
ここで、号機７３およびプログラム番号７４は、変数で表現され、このラダープログラムがＣＰＵユニットによって実行されたとき、ＰＬＣ１７が予め保持する変数と実値との対応情報に基づいて実値が確定され、号機７３およびプログラム番号７４の変数に代入されるようにしてもよい。変数と実値との対応情報は、例えば、変数がラダープログラムを実行するＣＰＵユニットのメモリのメモリアドレスであり、実値が該メモリアドレスに格納される値とするように、メモリアドレスと該メモリアドレスに格納される値との関係によって与えられるようにしてもよい。本実施の形態の説明においては、特に断りが無い限り、ラダープログラムの呼び出し命令における号機７３およびプログラム番号７４は変数ではなく実値で表現されているとする。
【００３０】
パラメータ７５は呼び出し命令完了結果を書き込むパラメータであり、パラメータ７６は条件設定するパラメータである。
【００３１】
ラダープログラムおよびモーションプログラムは、ユーザプログラム作成部２１ｆにより作成され、夫々ラダープログラム記憶部２３ｃおよびモーションプログラム記憶部２３ｄに格納される。
【００３２】
表示処理部２０は、演算部２１による命令あるいは記憶部２３に格納される各種データに基づいて表示装置１２に出力する表示データを作成する。図１１は、表示装置１２に表示される表示画面を示している。表示画面は、図１１に示すように、ユーザプログラムの作成やユニット構成情報の作成など編集作業を行うワーク表示部１２ａと、ＰＬＣにダウンロードする全てのユーザプログラムの一覧を表示するユーザプログラム一覧情報表示部１２ｂと、ＰＬＣの構成に必要なユニット部品の一覧情報を表示するユニット部品情報表示部１２ｃとを備えている。
【００３３】
ワーク表示部１２ａは、表示処理部２０が、ＰＬＣの構成を作成するためのユニット構成情報テーブル３１をユニット構成情報記憶部２３ａから読み出して、読み出したユニット構成情報テーブル３１に保持される各ユニットを、対応するユニット画像データ４７を基に夫々３Ｄオブジェクト表示したＰＬＣ構成図を作成し、該ＰＬＣ構成図を表示する表示部分であるユニット構成情報表示部１２ａａと、ラダープログラムを個別に表示するラダープログラム表示部１２ａｂと、モーションプログラムを個別に表示する表示部分であるモーションプログラム表示部１２ａｃとをさらに備えている。
【００３４】
ユニット構成情報表示部１２ａａに表示されるＰＬＣ構成図の一例を図１２に示す。図１２において、ＰＬＣ構成図８０は、図３に示すユニット構成情報テーブル３１に対応する構成図を示しており、ベースユニットＡ（８１）のスロット上に電源ユニットＡ（８２）、ＣＰＵユニットＡ（８３）、モーションＣＰＵユニットＡ（８４）、モーションＣＰＵユニットＢ（８５）、および入力ユニットＡ（８６）が夫々のユニット画像データを基に作成された３Ｄオブジェクトとして配置されて表示される。スロットに配置されていない場合は、空き８７のように配置されていないことがわかるようになっている。なお、ＰＬＣ構成図８０の各３Ｄオブジェクトとユニット構成情報テーブル３１の各スロットに接続されているユニットとはプロジェクトＩＤを介して一対一対応する。
【００３５】
ユーザプログラム一覧情報表示部１２ｂには、表示処理部２０が、ラダープログラム記憶部２３ｃに格納されているラダープログラムおよびモーションプログラム記憶部２３ｄに格納されているモーションプログラムを読み出して一覧形式で表示する。
【００３６】
ユニット部品情報表示部１２ｃには、表示処理部２０が、ユニット部品情報記憶部２３ｂに格納されているユニット部品の一覧をユニット部品情報としてツリー表示する。なお、本発明では、予めユニット部品情報を格納するとして説明しているが、後で追加格納する機能も有していてもよい。
【００３７】
入力処理部２２は、表示装置１２の表示画面上に表示されている上述する各表示部および各表示部に表示される情報に応じて入力される入力装置１１のポインティングデバイスによるＧＵＩ入力またはキーボードによるテキスト入力を解析し、演算部２１の各機能部に伝達する。
【００３８】
ユーザプログラム作成部２１ｆは、ユーザがユーザプログラムの作成および編集を行うための機能部であり、ラダープログラム表示部１２ａｂをワークエリアとして入力されるテキスト入力をラダープログラム記憶部２３ｃに記憶されるラダープログラムに反映させることによって、ラダープログラムを作成および編集する。同様に、ユーザプログラム作成部２１ｆは、モーションプログラム表示部１２ａｃをワークエリアとし、入力されるテキスト入力をモーションプログラム記憶部２３ｄに記憶されるモーションプログラムに反映させることによってモーションプログラムを作成および編集する。
【００３９】
ユニット構成情報作成部２１ａは、ユーザが入力装置１１のポインティングデバイスを使用してユニット部品情報表示部１２ｃにツリー上に表示されるユニット部品を選択し、ユニット構成情報表示部１２ａａにドロップするなど、ＰＬＣ構成図８０を編集する入力を入力処理部２２を介して受け付け、該編集入力をユニット構成情報テーブル３１に反映させる。すなわち、ユニット構成情報作成部２１ａは、ドロップされたユニット部品のユニット名称および属性情報を、ドロップされたユニット構成情報表示部１２ａａ上の位置のスロットに対応するユニット構成情報テーブル３１中の行の、夫々ユニット名称３１ｃおよび属性情報３１ｄに格納するとともに、オブジェクトＩＤを割り振って該オブジェクトＩＤをオブジェクトＩＤ３１ｅの欄に格納する。これにより、ユニット構成情報テーブル３１が作成される。
【００４０】
プロジェクト割付部２１ｂは、ユーザに、ユニット構成情報表示部１２ａａに表示されるＰＬＣ構成図８０の構成部品のうち、ＣＰＵユニットまたはモーションＣＰＵユニットが選択されるとともに、ユーザプログラム一覧情報表示部１２ｂに表示されているユーザプログラムのうち、１つのユーザプログラムが選択される入力を、例えば入力装置１１のポインティングデバイスによるドラッグアンドドロップによって受け付けると、選択されたユニットに、選択されたユーザプログラムが属するプロジェクトを割り付ける。すなわち、プロジェクト割付部２１ｂは、選択されたユニットの３ＤオブジェクトのオブジェクトＩＤからユニット構成情報テーブル３１内に記入されている対応するユニットを検索し、該ユニットのプロジェクト名称３１ｆに、選択されたユーザプログラムが属するプロジェクト名称を格納する。
【００４１】
プログラム検索部２１ｃは、ラダープログラム表示部１２ａｂに表示されているラダープログラムに含まれている呼び出し命令が入力処理部２２を介して選択されると、ユーザがユニット構成情報作成部２１ａおよびプロジェクト割付部２１ｂを使用して予め作成したユニット構成情報テーブル３１に基づいて、該選択された呼び出し命令に対応するモーションプログラムを検索して該モーションプログラムをモーションプログラム表示部１２ａｃに表示する。ユーザは、プログラム検索部２１ｃによって検索されて表示されたモーションプログラムを、ユーザプログラム作成部２１ｆを介して編集することができるようになる。
【００４２】
変数変換部２１ｄは、ラダープログラムの呼び出し命令における号機７３またはプログラム番号７４が変数で指定されているとき、ＰＬＣ１７に通信処理部２４を介してアクセスして該変数に対応する実値を取得する。プログラム検索部２１ｃは、対象の呼び出し命令における号機７３またはプログラム番号７４が変数で指定されているとき、変数変換部２１ｄを起動して該変数で指定されている号機７３またはプログラム番号７４を指す実値を取得する。
【００４３】
整合性チェック部２１ｅは、呼び出し命令に記述されるモーションプログラムを動作させるモーションＣＰＵユニットが存在するか否かを、ユニット構成情報テーブル３１に基づいて判定し、存在しない場合には表示処理部２０にエラーを出力させる。
【００４４】
つぎに、本発明の実施の形態の制御プログラム作成装置１０の動作処理について説明する。まず、ユニット構成情報作成部２１ａによってユニット構成情報テーブル３１が作成される動作を説明する。図１３はユニット構成情報作成部２１ａがユニット構成情報３０を作成する動作を説明するフローチャートである。
【００４５】
図１３において、ユーザが入力装置１１のポインティングデバイスなどを用いてユニット部品情報表示部１２ｃにツリー上に表示されるユニット部品から１つのユニット部品を選択し（ステップＳ１０）、ユニット構成情報表示部１２ａａに前記選択したユニット部品をドロップする（ステップＳ１１）。すると入力処理部２２は、該選択されたユニット部品がユニット構成情報表示部１２ａａにドロップされたことを解析してユニット構成情報作成部２１ａに伝達し、ユニット構成情報作成部２１ａは、ユニット構成情報テーブル３１に選択されたユニット情報を格納する（ステップＳ１２）。
【００４６】
例えば、図１２に示すＰＬＣ構成図８０の構成を作成する場合について述べると、ドロップされたユニット部品がベースユニットＡの場合は、ユニット構成情報テーブル３１の先頭のユニット名称３１ｃにベースユニットＡが格納され、属性情報３１ｄにベースユニットＡの属性情報が格納され、オブジェクトＩＤ３１ｅには一意に決まる数字が格納される。さらに、ベースユニットＡの第一の属性情報４０ａａからスロット数４５ａが読み出され、スロット番号３１ｂに０から始まりスロット数分の番号が振られる。また、ドロップされたユニット部品が電源ユニットＡの場合は、スロット番号０の行に電源ユニットＡのユニット名称が、電源ユニットＡの属性情報が属性情報３１ｄに格納され、オブジェクトＩＤが振られる。また、ドロップされるユニット部品がＣＰＵユニットＡの場合は、スロット番号１の行にＣＰＵユニットＡのユニット名称が、ＣＰＵユニットＡの属性情報が属性情報３１ｄに格納され、オブジェクトＩＤが振られる。また、ドロップされるユニット部品がモーションＣＰＵユニットＡの場合は、スロット番号２の行にモーションＣＰＵユニットＡのユニット名称が、モーションＣＰＵユニットＡの属性情報が属性情報３１ｄに格納され、オブジェクトＩＤが振られる。同様にモーションＣＰＵユニットＢの場合は、スロット番号３の行にそれぞれ格納される。また、ドロップされるユニット部品が入力ユニットＡの場合は、スロット番号４の行に入力ユニットＡのユニット名称が、入力ユニットＡの属性情報が属性情報３１ｄに格納され、オブジェクトＩＤが振られる。
【００４７】
そして、ステップＳ１２の後、表示処理部２０は、作成されたユニット構成情報テーブル３１におけるユニットの構成を、ユニット構成情報表示部１２ａａに表示しているＰＬＣ構成図に反映させる（ステップＳ１３）。
【００４８】
以上により、ユニット構成情報作成部２１ａによってユニット構成情報テーブル３１が作成される。
【００４９】
次に、プロジェクト割付部２１ｂによって、ユニット構成情報テーブル３１に記入されている各ユニットにプロジェクトが割り付けられる動作を説明する。図１４は、該動作を説明するフローチャートである。
【００５０】
図１４において、まず、ユーザが入力装置１１を用いて、ユニット構成情報表示部１２ａａに表示されるユニット部品を選択し（ステップＳ２０）、ユーザプログラム一覧情報表示部１２ｂに表示されるユーザプログラムを選択する（ステップＳ２１）。すると、入力処理部２２は該選択を解析してプロジェクト割付部２１ｂに伝達し、プロジェクト割付部２１ｂは、前記選択したユニット部品のオブジェクトＩＤを基にユニット構成情報３０からユニット部品の名称を取得し、前記選択したユニット部品がＣＰＵユニットと一致するか否かを判定する（ステップＳ２２）。
【００５１】
ステップＳ２３において、ＣＰＵユニットと一致すると判定された場合（ステップＳ２２、Ｙｅｓ）、プロジェクト割付部２１ｂは、前記選択したユーザプログラムのプロジェクト名称を、選択したユニット部品に対応するユニット構成情報テーブル３１のプロジェクト名称３１ｆに格納することによって、選択したユニット部品にプロジェクトを割り付ける（ステップＳ２３）。ステップＳ２２において、ＣＰＵユニットと一致しないと判定された場合（ステップＳ２２、Ｎｏ）、プロジェクト割付部２１ｂは、前記選択したユニット部品がモーションＣＰＵユニットと一致するか否かをさらに判定する（ステップＳ２４）。
【００５２】
ステップＳ２４において、モーションＣＰＵユニットと一致すると判定された場合（ステップＳ２４、Ｙｅｓ）、プロジェクト割付部２１ｂは、選択したユーザプログラムのプロジェクト名称を、選択したユニット部品に対応するユニット構成情報テーブル３１のプロジェクト名称３１ｆに格納することによって、ユニット部品とプロジェクトを割り付ける（ステップＳ２５）。ステップＳ２４において、モーションＣＰＵユニットと一致しないと判定された場合（ステップＳ２４、Ｎｏ）、前記選択したユニット部品はＣＰＵユニットでもなく、モーションＣＰＵユニットでもないため、プロジェクト割付部２１ｂは、表示処理部２０に命令してエラーを出力させる（ステップＳ２６）。
【００５３】
このように、前記プロジェクト割付部２１ｂによって、ユニット構成情報テーブル３１に記述されているＣＰＵユニットおよびモーションＣＰＵユニットにプロジェクトが割り付けられる。
【００５４】
次に、プログラム検索部２１ｃが、ラダープログラムに記述された読み出し命令に対応するモーションプログラムを検索して取得し、取得したモーションプログラムをモーションプログラム表示部１２ａｃに表示させる動作を説明する。図１５は、該動作を説明するフローチャートである。
【００５５】
図１５において、ユーザが入力装置１１を用いてラダープログラム表示部１２ａｂに表示されているラダープログラムに記述される呼び出し命令７０を選択する（ステップＳ３０）。すると、入力処理部２２は該選択を解析してプログラム検索部２１ｃに伝達し、プログラム検索部２１ｃは、該選択された呼び出し命令７０の構文から号機７３とプログラム番号７４の値を読み出す（ステップＳ３１）。ここで、号機７３およびプログラム番号７４が変数で表現されている場合、変数変換部２１ｄを起動して該変数に代入される実値を取得する。
【００５６】
そして、プログラム検索部２１ｃは、選択元のラダープログラムが属するＰＬＣプロジェクト名称を取得し、取得したＰＬＣプロジェクト名称をユニット構成情報テーブル３１のプロジェクト名称３１ｆに有するユニット構成情報テーブル３１を、ユニット構成情報記憶部２３ａを検索して取得し、取得したユニット構成情報テーブル３１のユニット名称３１ｃからＣＰＵユニットのユニット名を取得する（ステップＳ３２）。そして、プログラム検索部２１ｃは、取得したユニット名のＣＰＵユニットが装着されているベースユニットのスロット番号の中からステップＳ３１にて読み出した号機７３に一致するモーションＣＰＵユニットを、取得したユニット構成情報テーブル３１を検索して取得する（ステップＳ３３）。
【００５７】
続いて、プログラム検索部２１ｃは、ユニット構成情報テーブル３１から取得したモーションＣＰＵユニットに割り付けられたモーションプロジェクトのプロジェクト名称を取得する（ステップＳ３４）。そして、プログラム検索部２１ｃは、モーションプログラム記憶部２３ｄを検索することによって、前記取得のモーションプロジェクトに属するモーションプログラムから前記読み出したプログラム番号に対応するモーションプログラムを読み出す（ステップＳ３５）。そして、プログラム検索部２１ｃは、読み出したモーションプログラムをモーションプログラム表示部１２ａｃに表示させる（ステップＳ３６）。
【００５８】
このように、プログラム検索部２１ｃは、ラダープログラムに記述された読み出し命令に対応するモーションプログラムを検索して読み出し、モーションプログラム表示部１２ａｃに表示させる。
【００５９】
次に、ラダープログラムの呼び出し命令における号機７３またはプログラム番号７４が変数で指定されているとき、変数変換部２１ｄが、ＰＬＣ１７に通信処理部２４を介してアクセスして該変数に対応する実値を取得する動作を説明する。図１６は、該動作を説明するフローチャートである。
【００６０】
図１６において、変数変換部２１ｄは、呼び出し命令７０の号機７３またはプログラム番号７４が変数によって記述されている場合において、呼び出し命令７０から該変数を読み出す（ステップＳ４０）。そして、変数変換部２１ｄは、通信処理部２４を介してＰＬＣ１７にアクセスし、ＰＬＣ１７に保持される変数と実値との対応情報を検索し、前記読み出した変数に対応する実値を取得する（ステップＳ４１）。続いて、変数変換部２１ｄは、ＰＬＣ１７から取得した実値でもって、前記変数で指定されている値とする（ステップＳ４２）。
【００６１】
このように、変数変換部２１ｄは、呼び出し命令に含まれる号機７３またはプログラム番号７４が変数の場合には、変数に対応する実値をＰＬＣのデバイスから読み出すことにより、変数で指示されている号機７３およびプログラム番号７４に対応する実値を取得することができる。
【００６２】
次に、整合性チェック部２１ｅが、呼び出し命令に記述されるモーションプログラムを動作させるモーションＣＰＵユニットがユニット構成情報３０の呼び出し命令に記述される号機７３のスロット番号３１ｂの位置に存在するか否かを判定する動作を説明する。図１７は、該動作を説明するフローチャートである。
【００６３】
図１７において、整合性チェック部２１ｅは、呼び出し命令からモーションＣＰＵユニットの号機７３を取得する（ステップＳ５０）。ここで、号機７３が変数で表現されている場合、整合性チェック部２１ｅは、変数変換部２１ｄを起動して該変数に代入される実値を取得する。
【００６４】
そして、整合性チェック部２１ｅは、この呼び出し命令を含むラダープログラムが属するＰＬＣプロジェクト名称を取得し、取得したＰＬＣプロジェクト名称をユニット構成情報テーブル３１のプロジェクト名称３１ｆに有するユニット構成情報テーブル３１を、ユニット構成情報記憶部２３ａを検索して取得し、取得したユニット構成情報テーブル３１のユニット名称３１ｃからこのラダープログラムを実行するＣＰＵユニットのユニット名を取得する（ステップＳ５１）。そして、整合性チェック部２１ｅは、取得したユニット名のＣＰＵユニットが装着されているベースユニットのスロット番号の中から、ステップＳ５０にて読み出した号機７３に一致するモーションＣＰＵユニットを検索する（ステップＳ５２）。
【００６５】
そして、整合性チェック部２１ｅは、モーションＣＰＵユニットが存在したか否かを判定し（ステップＳ５３）、存在したと判定した場合（ステップＳ５３、Ｙｅｓ）、整合結果を表示装置１２の表示画面に表示させる（ステップＳ５４）。また、ステップＳ５３において、存在しないと判定した場合（ステップＳ５３、Ｎｏ）、整合性チェック部２１ｅは、不整合のエラー結果を表示装置１２の表示画面に表示させる（ステップＳ５５）。
【００６６】
このように、整合性チェック部２１ｅの動作によって、ユーザは、ラダープログラム上の呼び出し命令で呼び出されるモーションプログラムを実行するモーションＣＰＵユニットが存在するか否かを簡単に確認することができる。
【００６７】
このように、本発明の実施の形態によれば、多数のモーションプログラムがあっても、ラダープログラムに含まれる呼び出し命令が選択されると、呼び出し対象のモーションプログラムを自動的に特定し、表示するようにしたので、ユーザは呼び出し命令に対応するモーションプログラムを簡単に探し出すことができるので、プログラム作成の手間が大幅に削減でき、作成時間を短縮できる。また、呼び出し命令に変数が使用されていても、ＰＬＣにアクセスして変数に代入される実値を取得するようにした。また、呼び出し命令によって呼び出されるモーションプログラムを実行するモーションＣＰＵユニットが正しく設定されていない場合、不整合エラーを出力するようにしたので、誤った制御プログラムをＰＬＣに実行させる機会が低減される。
【産業上の利用可能性】
【００６８】
以上のように、本発明にかかる制御プログラム作成装置は、プログラマブルコントローラを制御するための制御プログラムを作成する制御プログラム作成装置に適用して好適である。
【図面の簡単な説明】
【００６９】
【図１】本発明の実施の形態にかかる制御プログラム作成装置のハードウェア構成を示す図である。
【図２】本発明の実施の形態にかかる制御プログラム作成装置の機能ブロック図である。
【図３】ユニット構成情報のデータ構造を説明する図である。
【図４】ユニット部品情報のデータ構造を示す図である。
【図５】第一の属性情報のデータ構造の例を示す図である。
【図６】ＰＬＣプロジェクトのデータ構造を示す図である。
【図７】モーションプロジェクトのデータ構造を示す図である。
【図８】ラダープログラムの具体例を示す図である。
【図９】モーションプログラムの具体例を示す図である。
【図１０】呼び出し命令の構文を示す図である。
【図１１】制御プログラム作成装置の画面表示の表示を示す図である。
【図１２】ＰＬＣ構成図の例を示す図である。
【図１３】ユニット構成情報作成部の動作を説明するフローチャートである。
【図１４】プロジェクト割付部の動作を説明するフローチャートである。
【図１５】プログラム検索部の動作を説明するフローチャートである。
【図１６】変数変換部の動作を説明するフローチャートである。
【図１７】整合性チェック部の動作を説明するフローチャートである。
【符号の説明】
【００７０】
１０  制御プログラム作成装置
１１  入力装置
１２  表示装置
１２ａ  ワーク表示部
１２ａａ  ユニット構成情報表示部
１２ａｂ  ラダープログラム表示部
１２ａｃ  モーションプログラム表示部
１２ｂ  ユーザプログラム一覧情報表示部
１２ｃ  ユニット部品情報表示部
１３  中央演算装置
１４  記憶装置
１５  通信Ｉ／Ｆ装置
１６  通信回線
２０  表示処理部
２１  演算部
２１ａ  ユニット構成情報作成部
２１ｂ  プロジェクト割付部
２１ｃ  プログラム検索部
２１ｄ  変数変換部
２１ｅ  整合性チェック部
２１ｆ  ユーザプログラム作成部
２２  入力処理部
２３  記憶部
２３ａ  ユニット構成情報記憶部
２３ｂ  ユニット部品情報記憶部
２３ｃ  ラダープログラム記憶部
２３ｄ  モーションプログラム記憶部
２４  通信処理部
３０  ユニット構成情報
３１  ユニット構成情報テーブル
３１ａ  構成名称
３１ｂ  スロット番号
３１ｃ  ユニット名称
３１ｄ  属性情報
３１ｅ  オブジェクトＩＤ
３１ｆ  プロジェクト名称
４０  ベースユニット群
４０ａ、４０ｂ  ベースユニット
４０ａａ、４０ｂａ、４１ａａ、４１ｂａ、４２ａａ、４２ｂａ、４３ａａ、４３ｂａ  属性情報
４１  ＣＰＵユニット群
４１ａ、４１ｂ  ＣＰＵユニット
４２  モーションＣＰＵユニット群
４２ａ、４２ｂ  モーションＣＰＵユニット
４３  入力ユニット群
４３ａ、４３ｂ  入力ユニット
４５  スロット数
４５ａ  スロット数の値
４６  ユニット装着可能数
４６ａ  ユニット装着可能数の値
４７  ユニット画像データ
５０  ＰＬＣプロジェクト
６０  モーションプロジェクト
７０  呼び出し命令
７１  命令
７２  空白
７３  号機
７４  プログラム番号
７５、７６  パラメータ
８０  ＰＬＣ構成図
８１  ベースユニットＡ
８２  電源ユニットＡ
８３  ＣＰＵユニットＡ
８４  モーションＣＰＵユニットＡ
８５  モーションＣＰＵユニットＢ
８６  入力ユニットＡ
８７  空き
【図１】
0005153437.tif 000002
【図２】
0005153437.tif 000003
【図３】
0005153437.tif 000004
【図４】
0005153437.tif 000005
【図５】
0005153437.tif 000006
【図６】
0005153437.tif 000007
【図７】
0005153437.tif 000008
【図８】
0005153437.tif 000009
【図９】
0005153437.tif 000010
【図１０】
0005153437.tif 000011
【図１１】
0005153437.tif 000012
【図１２】
0005153437.tif 000013
【図１３】
0005153437.tif 000014
【図１４】
0005153437.tif 000015
【図１５】
0005153437.tif 000016
【図１６】
0005153437.tif 000017
【図１７】
0005153437.tif 000018