(57)【特許請求の範囲】
【請求項１】
２以上の制御単位を同期させて動作させる同期制御装置の動作プログラムを作成するプログラム作成装置であって、
制御単位毎のタイミングチャートを縦方向に配列した編集画面を表示装置に表示し、
前記タイミングチャートに表示オブジェクトを配置位置を指定して配置する第１入力を受け付けて、
前記タイミングチャート上の前記第１入力によって指定された配置位置に前記表示オブジェクトを表示し、
前記表示オブジェクトの表示後に、種別の指定およびパラメータの入力を含む第２入力を受け付けて、
前記第２入力によって入力されたパラメータを適用した前記第２入力によって指定された種別の動作命令を前記第１入力によって指定された配置位置に応じた実行タイミングで実行する動作プログラムを生成する、
処理部を備えることを特徴とするプログラム作成装置。
【請求項２】
前記編集画面に表示される各タイミングチャートの横軸は、共通の同期基準を示し、
前記処理部は、
各タイミングチャートの横軸に直交し、かつ、各タイミングチャートに共通の第１直線を、前記編集画面に表示し、
前記第１直線を横軸方向に移動する第３入力を受け付けて、
各タイミングチャートに配置された表示オブジェクトに夫々対応する前記動作プログラムを構成する夫々の動作命令の実行タイミングを前記第３入力に応じて一律に変更する、
ことを特徴とする請求項１に記載のプログラム作成装置。
【請求項３】
前記処理部は、２以上の前記第１直線を前記編集画面に表示し、
前記第３入力は、前記２以上の第１直線のうちの２つの第１直線で区切られる区間の間隔を変更する入力である、
ことを特徴とする請求項２に記載のプログラム作成装置。
【請求項４】
前記処理部は、
配置位置とゼロ値以上の間隔とを指定して新たな区間を挿入する第４入力を受け付けて、
前記編集画面の前記指定された配置位置に前記指定された間隔の２つの第１直線で区切られる新たな区間を挿入するとともに、前記編集画面の前記指定された配置位置に応じたタイミングよりも後に実行される全ての動作命令の実行タイミングを前記指定された間隔に応じた量だけ一律に変更する、
ことを特徴とする請求項３に記載のプログラム作成装置。
【請求項５】
前記処理部は、
各タイミングチャートの横軸に平行な第２直線を前記編集画面に表示し、
前記第２直線を縦軸方向に移動する第５入力を動作命令毎に受け付けて、
前記第５入力と前記第５入力が入力された動作命令の種別とに応じて当該動作命令の軌跡を変更する、
ことを特徴とする請求項１に記載のプログラム作成装置。
【請求項６】
前記第５入力が入力された動作命令は、位置指令であって、
前記処理部は、
前記第５入力の前に動作命令の軌跡上のポイントを前記第５入力によって移動される前記第２直線に関連付ける第６入力を受け付けて、
前記第５入力が入力されたとき、前記第６入力により関連付けられたポイントを前記第２直線の移動に追随させて移動させ、前記第６入力により関連付けられていないポイントは前記第２直線の移動に追随させないように前記動作命令の軌跡を変更する、
ことを特徴とする請求項５に記載のプログラム作成装置。
【請求項７】
前記第１入力によって指定される配置位置は、第１の配置位置と前記第１の配置位置よりも横軸座標値が大きい第２の配置位置を含み、
各表示オブジェクトは、第１の配置位置から第２の配置位置までを覆う大きさを有し、
前記処理部は、前記第１の配置位置に応じたタイミングを動作命令の開始タイミングとし、前記第２の配置位置に応じたタイミングを動作命令の終了タイミングとする、
ことを特徴とする請求項１から６の何れか１項に記載のプログラム作成装置。
【請求項８】
前記処理部は、
２以上の表示オブジェクトを選択するとともに前記第１の配置位置と前記第２の配置位置との間隔を変更する第７入力を受け付けて、
前記第７入力によって選択された全ての表示オブジェクトに対応する各動作命令について動作時間を前記第７入力に応じて変更する、
ことを特徴とする請求項７に記載のプログラム作成装置。
【請求項９】
前記処理部は、
２以上の表示オブジェクトを選択するとともに配置位置を変更する第８入力を受け付けて、
前記第８入力によって選択された全ての表示オブジェクトに対応する各動作命令の開始タイミングを前記第８入力に応じて変更する、
ことを特徴とする請求項１に記載のプログラム作成装置。
【請求項１０】
前記処理部は、
２以上の表示オブジェクトをグループ化する第９入力を受け付けて、
前記２以上の表示オブジェクトを１つのグループとして記憶し、
前記グループを構成する表示オブジェクトの第１および第２の配置位置のうちの両端に位置する配置位置間の間隔を変更する第１０入力を受け付けて、
前記グループを構成する表示オブジェクトに対応する夫々の動作命令のうちの最も早く実行される動作命令の開始タイミングから前記夫々の動作命令の開始タイミングまでの時間の変更率と、前記夫々の動作命令の動作時間の変更率と、前記第９入力による配置位置間の間隔の変更率と、が変更の前後で等しくなるように、前記夫々の動作命令の開始タイミングおよび動作時間を変更する、
ことを特徴とする請求項６に記載のプログラム作成装置。
【請求項１１】
前記処理部は、
動作命令を個別に編集するための、前記編集画面と異なる作業画面を前記表示装置にさらに表示する、
ことを特徴とする請求項１に記載のプログラム作成装置。
【請求項１２】
表示装置を備えるコンピュータが２以上の制御単位を同期させて動作させる同期制御装置の動作プログラムを作成するプログラム作成方法であって、
前記コンピュータが、制御単位毎のタイミングチャートを縦方向に配列した編集画面を表示装置に表示するステップと、
前記コンピュータが、前記タイミングチャートに表示オブジェクトを配置位置を指定して配置する第１入力を受け付けるステップと、
前記コンピュータが、前記タイミングチャート上の前記第１入力によって指定された配置位置に前記表示オブジェクトを表示するステップと、
前記コンピュータが、前記表示オブジェクトの表示後に、種別の指定およびパラメータの入力を含む第２入力を受け付けるステップと、
前記コンピュータが、前記第２入力によって入力されたパラメータを適用した前記第２入力によって指定された種別の動作命令を前記第１入力によって指定された配置位置に応じた実行タイミングで実行する動作プログラムを生成するステップと、
を備えることを特徴とするプログラム作成方法。
【請求項１３】
２以上の制御単位を同期させて動作させる同期制御装置の動作プログラムをコンピュータに作成させるプログラムであって、
前記コンピュータに、
制御単位毎のタイミングチャートを縦方向に配列した編集画面を表示装置に表示するステップと、
前記タイミングチャートに表示オブジェクトを配置位置を指定して配置する第１入力を受け付けるステップと、
前記タイミングチャート上の前記第１入力によって指定された配置位置に前記表示オブジェクトを表示するステップと、
前記表示オブジェクトの表示後に、種別の指定およびパラメータの入力を含む第２入力を受け付けるステップと、
前記第２入力によって入力されたパラメータを適用した前記第２入力によって指定された種別の動作命令を前記第１入力によって指定された配置位置に応じた実行タイミングで実行する動作プログラムを生成するステップと、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同期駆動装置の動作プログラムを作成するためのプログラム作成装置、プログラム作成方法、およびプログラムに関する。
【背景技術】
【０００２】
従来からサーボモータの同期制御として、カムデータを用いて同期を実現する電子カム制御が広く知られている。カムデータは、同期制御のタイミングを決定するための軸であるマスタ軸に取り付けたマスタエンコーダの位相と、スレーブ軸の位置と、を一対一に対応付けるデータである。また、カムデータを複数の区間に区切り、各区間を任意の順番、任意の回数で呼出す電子カム制御が知られている（例えば特許文献１参照）。この電子カム制御によれば、繰返しを含む同期制御を容易に実現することができるとされている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第３６６５００８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
電子カム制御における実行タイミングの調整は、一般に、マスタ軸とスレーブ軸との間の同期位相の変更、または、カムデータの編集によって実現される。同期位相の変更は、各スレーブ軸のパラメータを１つ調整するだけで完了する。しかしながら、カムデータの編集が行われる場合には、整合性が維持される必要があるため、一部の変更がカムデータ全体へ影響する。よって、調整作業に多くの時間を要する場合がある。また、カムデータの編集によって、同期が必要となる他軸の実行タイミング、動作命令、または同期が必要となるＩ／Ｏの実行タイミングが影響を受ける場合、影響を受ける部分の変更の必要が生じるため、更に多くの調整時間を要する。各スレーブ軸の実行タイミングに時間的な余裕が無い場合または各スレーブ軸のサーボ性能の余裕がない場合、整合性を保つための変更が多岐にわたることが多い。各スレーブ軸の実行タイミングおよび各スレーブ軸のサーボ性能に余裕を持たせた設計が行われている場合には調整作業での変更が多岐にわたる可能性は減るが、制御対象のシステム全体の性能（即ち単位時間当たりの仕事量）が下がる。つまり、システム全体の性能を引出すためには、ユーザは、これらの余裕を切り詰めながら各スレーブ軸の実行タイミングをつき合わせたり動作命令を調整したりする必要がある。よって、カムデータの編集が行われる場合にはしばしば手戻りが発生し、ユーザにとっての負荷が高いという課題がある。【０００５】
また、特許文献１の技術は、カムデータを区切って呼出す方式が採用されている。したがって、同期位相の変更による影響が区切ったカムデータにだけ影響するため、同期位相の変更で調整が可能な場合は増える。しかしながら、特許文献１の技術によれば、ユーザは、カムデータを個別に作成した後に、個別のカムデータを複数のスレーブ軸間でつき合わせながら全体のタイミング調整を行う必要がある。特許文献１の技術によれば、カムデータを変更してタイミングを調整する場合には手戻りが発生するため、ユーザにとっての負荷が高いという問題は解決されていない。また、特許文献１の技術によれば、調整を補助する方法も提供されない。【０００６】
本発明は、上記に鑑みてなされたものであって、同期制御装置の動作プログラムを可及的に簡単に作成することができるプログラム作成装置、プログラム作成方法、およびプログラムを得ることを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明は、２以上の制御単位を同期させて動作させる同期制御装置の動作プログラムを作成するプログラム作成装置であって、制御単位毎のタイミングチャートを縦方向に配列した編集画面を表示装置に表示し、前記タイミングチャートに表示オブジェクトを配置位置を指定して配置する第１入力を受け付けて、前記タイミングチャート上の前記第１入力によって指定された配置位置に前記表示オブジェクトを表示し、前記表示オブジェクトの表示後に、種別の指定およびパラメータの入力を含む第２入力を受け付けて、前記第２入力によって入力されたパラメータを適用した前記第２入力によって指定された種別の動作命令を前記第１入力によって指定された配置位置に応じた実行タイミングで実行する動作プログラムを生成する、処理部を備えることを特徴とする。
【発明の効果】
【０００８】
本発明にかかるプログラム作成装置は、タイミングチャートに配置された表示オブジェクトに基づいて動作命令の実行タイミングを決定することを可能とするので、詳細設定における実行タイミングの調整を不要とすることができるので、ユーザは同期制御装置の動作プログラムを可及的に簡単に作成することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、各軸の動作を示すタイミングチャートの一例を示す図である。
【図２】図２は、実施の形態１のプログラム作成装置を用いて構成される、システムを説明する図である。
【図３】図３は、実施の形態１のプログラム作成装置のハードウェア構成例を示す図である。
【図４】図４は、実施の形態１のプログラム作成装置の機能構成を示す図である。
【図５】図５は、表示装置に表示される編集画面の一例を示す図である。
【図６】図６は、実施の形態１のプログラム作成装置の動作を示すフローチャートである。
【図７】図７は、範囲指定の入力がなされた状態の編集画面を示す図である。
【図８】図８は、関連付け入力がなされた状態の編集画面を示す図である。
【図９】図９は、動作命令の種別の入力がなされようとする状態の編集画面を示す図である。
【図１０】図１０は、テンプレートを指定する入力を受け付ける状態の編集画面を示す図である。
【図１１】図１１は、第２パラメータの入力を受け付ける状態の編集画面を示す図である。
【図１２】図１２は、実施の形態２の編集画面を示す図である。
【図１３】図１３は、実施の形態２のプログラム作成装置の動作を示すフローチャートである。
【図１４】図１４は、実施の形態３のプログラム作成装置の動作を示すフローチャートである。
【図１５】図１５は、実施の形態４の第２直線の表示様態を示す図である。
【図１６】図１６は、第２直線を移動する入力を受け付けた状態の第２直線の表示様態を示す図である。
【発明を実施するための形態】
【００１０】
以下に、本発明にかかる実施の形態のプログラム作成装置、プログラム作成方法、およびプログラムを図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１１】
実施の形態１．
一般に、同期制御装置を動作させる動作プログラムが作成される際には、各スレーブ軸の動作がタイミングチャートを用いて動作プログラムが概要的に設計され、その後、詳細な動作プログラムが記述されることがある。以降、単に軸という場合にはスレーブ軸を意味する。図１は、各軸の動作を示すタイミングチャートの一例を示す図である。タイミングチャートには、軸毎およびＩ／Ｏ毎に動作が記述される。ここで、横軸は同期の基準として使用される量であって、例えばマスタ軸の角度またはシステム時間が該当する。各軸および各Ｉ／Ｏの動作は、夫々１以上の動作命令を用いて設定される。タイミングチャート作成の段階では各動作命令についての詳細な設定は行われず、代わりに、各動作命令のおおよその開始タイミング、動作時間、および指令値が設定される。Ｉ／Ｏの動作には、変化がＯＮ／ＯＦＦなどの２値で表現されるものがある。ここでは、Ｉ／Ｏとして、「吸着（ＯＮ）」である状態と「破壊（ＯＦＦ）」である状態との２値で表現される状態を取りうるハンドが示されている。一般に、タイミングチャートが作成された後に、このタイミングチャートに基づいて動作プログラムが記述される。
【００１２】
制御対象のシステムの規模が大きくなると、タイミングチャートを基に動作設計を行う作業者と、動作プログラムを記述する作業者とで分業が行われる。ここで、タイミングチャートに記述される内容と動作プログラムで記述できる内容とに差異があるため、仕様の齟齬が発生する。例えば、タイミングチャートの記述においては、各動作命令の動作時間はおおよその値で記述されるため、実際の動作時間とは齟齬が発生する。タイミングチャート上に実行タイミングを合わせる部分が明確に記述されていれば、それを考慮して動作プログラムを記述することが可能となるが、一般に、動作プログラムの構造に基づいて事前にタイミングチャートに実行タイミングを合わせる部分を十分に記述することは困難である。また、他軸のある動作命令の途中で動作命令を開始させる場合があったり、外部信号の入力遅れ等を考慮したタイミングチャートが記述されたりすることがある。一般に、これらのような設計事項を齟齬無くタイミングチャートから制御プログラムへ伝達することが困難である。
【００１３】
また、動作プログラムは、各軸の詳細な動作命令を呼出す形で記述されることが多い。電子カム制御の場合、マスタ軸の角度に対するスレーブ軸の位置がカムデータとして記述される。同期制御装置は、マスタ軸の角度とカムデータとに基づいてスレーブ軸に対する指令値を生成する。よって、カムデータの作成時においては、ユーザは、実際に制御を実行した時にモータのトルク不足などが発生しないように配慮する必要がある。また、従来、電子カム制御の場合、各軸がマスタ軸の角度に同期することによって、各軸の同期が実現される。即ち、各軸のカムデータの設定は、軸間のタイミング調整とは切り離されて実行されていた。このため、各軸のカムデータの作成時においては、前述のトルク不足等が発生しないような設定をしながら、他軸とのタイミングを調整する必要があった。即ち、カムデータの設定は、トルクおよびタイミングの両方を考慮する必要がある、困難な作業であった。
【００１４】
実施の形態１のプログラム作成装置によれば、編集画面上で複数軸間の実行タイミングの調整といった装置全体の概要設計が実行され、その後、各軸の動作命令を段階的に詳細設定されることが可能である。これにより、ユーザは、軸間の実行タイミングの調整を最初に行った後は、その実行タイミングの調整結果を保ったまま各動作命令を詳細設定することができる。軸間の実行タイミングの調整で発生していた動作命令の詳細設定の手戻りを防ぐことができ、結果として装置全体の調整時間を短くすることができる。
【００１５】
図２は、本発明にかかる実施の形態１のプログラム作成装置を用いて構成される、システムを説明する図である。同期制御装置２００は、マスタ軸に取り付けられたマスタエンコーダ３００と、複数の制御単位４００とに接続される。制御単位４００とは、同期制御装置２００によって指令値が算出され、入力される単位をいう。Ｘ軸、Ｙ軸、Ｚ軸の夫々に別個に指令値が入力されるサーボシステムは、Ｘ軸方向のサーボ軸、Ｙ軸方向のサーボ軸、およびＺ軸方向のサーボ軸が夫々制御単位４００に該当する。また、Ｉ／Ｏも制御単位４００に該当する。図２の例では、Ｘ軸方向、Ｙ軸方向、およびＺ軸方向のサーボ軸と、Ｉ／Ｏと、合計４つの制御単位４００が同期制御装置２００に接続されている。同期制御装置２００は、４つの制御単位４００の夫々をマスタエンコーダ３００からの信号に同期して動作させる。結果として、４つの制御単位４００は、互いに同期して動作することができる。
【００１６】
同期制御装置２００は、変化量算出部２１０および主制御部２２０を備える。主制御部２２０は、動作プログラム２２２を記憶する記憶部２２１を備える。変化量算出部２１０は、マスタエンコーダ３００からの信号に基づいてマスタ軸の角度（位相）を演算する。主制御部２２０は、マスタ軸の角度と動作プログラム２２２とに基づいて制御単位４００毎の指令値を生成する。そして主制御部２２０は、生成した制御単位４００毎の指令値を出力する。なお、変化量算出部２１０および主制御部２２０のうちの一部または全部は、ソフトウェア、ハードウェア、または両者の組合せとして実現されてもよい。ソフトウェアで実現されるとは、演算装置および主記憶装置を備えるコンピュータにおいて所定のプログラムが実行されることによって実現されることをいう。
【００１７】
実施の形態１のプログラム作成装置１００は、同期制御装置２００に接続される。プログラム作成装置１００は、ユーザからの入力に基づいて、動作プログラム２２２を作成したり動作プログラム２２２を記憶部２２１に設定したりすることができる。なお、同期制御装置２００の動作中には、プログラム作成装置１００は同期制御装置２００に接続されていなくてもよい。
【００１８】
図３は、プログラム作成装置１００のハードウェア構成例を示す図である。プログラム作成装置１００は、演算装置１０１、主記憶装置１０２、補助記憶装置１０３、入力装置１０５、表示装置１０６、および接続インタフェース装置１０７を備える。演算装置１０１、主記憶装置１０２、補助記憶装置１０３、入力装置１０５、表示装置１０６、および接続インタフェース装置１０７はバスで互いに接続されている。
【００１９】
演算装置１０１は、実施の形態１のプログラム作成方法を実現するためのプログラムであるプログラム作成プログラム１０４を実行する。表示装置１０６は、各種情報をユーザが視認可能に表示するための装置であって、例えば液晶モニタである。表示装置１０６は、演算装置１０１からの指示に基づいて後述の編集画面を表示する。入力装置１０５は、マウスやキーボードを備えて構成され、ユーザからのプログラム作成装置１００に対する操作情報が入力される。入力装置１０５へ入力された操作情報は、演算装置１０１へ送られる。接続インタフェース装置１０７は、同期制御装置２００が接続されるインタフェース装置である。同期制御装置２００とプログラム作成装置１００との間の接続規格は任意である。
【００２０】
主記憶装置１０２は、プログラム展開領域および演算装置１０１のワークエリアとして使用される。主記憶装置１０２は、例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）によって構成される。補助記憶装置１０３は、プログラム作成プログラム１０４を予め記憶する記録媒体である。補助記憶装置１０３は、例えばＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）によって構成される。プログラム作成プログラム１０４は、補助記憶装置１０３から読み出され、バスを介して主記憶装置１０２へロードされる。演算装置１０１は、主記憶装置１０２内にロードされたプログラム作成プログラム１０４を実行する。演算装置１０１は、主記憶装置１０２に展開されたプログラム作成プログラム１０４を実行することによって、後述の処理部１２０として動作する。動作プログラム２２２は、演算装置１０１によって、主記憶装置１０２上で作成されたり編集されたりされ、その後、補助記憶装置１０３に記憶されて不揮発化されることができる。主記憶装置１０２または補助記憶装置１０３に記憶された動作プログラム２２２は同期制御装置２００に送られて記憶部２２１に設定される。
【００２１】
なお、プログラム作成プログラム１０４を、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより主記憶装置１０２に展開されるように構成してもよい。また、プログラム作成プログラム１０４をインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、プログラム作成プログラム１０４を予め記憶する記録媒体は、一時的でない有形の記録媒体であれば、ＲＯＭ以外の記録媒体であっても適用可能である。例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  ）、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、または着脱可能なメモリデバイスがプログラム作成プログラム１０４を予め記憶する記録媒体として適用可能である。また、補助記憶装置１０３は、これらの記録媒体の組合せによって実現されてもよい。
【００２２】
図４は、実施の形態１のプログラム作成装置１００の機能構成を示す図である。主記憶装置１０２には、編集中の動作プログラム２２２を一時記憶する。演算装置１０１は、処理部１２０を備える。処理部１２０は、ＧＵＩとして機能する編集画面を表示装置１０６に表示したり、編集画面を介して入力された編集内容を主記憶装置１０２に一時記憶される動作プログラム２２２に反映させたりする。
【００２３】
図５は、処理部１２０によって表示装置１０６に表示される編集画面の一例を示す図である。編集画面１３０には、３つの軸（軸１〜軸３）の夫々と、Ｉ／Ｏとしてのデバイス「Ｙ０」とについて、動作を記述したタイミングチャートが紙面縦方向に配列されて表示されている。縦軸は制御単位４００に固有の量を示し、横軸は同期基準としてのマスタ軸の角度（位相）を示す。横軸に採用される同期基準および同期基準のスケールは、編集画面１３０に配列された複数のタイミングチャートで共通する。縦軸としては、制御単位４００が軸である場合には例えばストローク（ｓｔ）または速度が採用される。制御単位４００がＩ／Ｏである場合には縦軸としてＯＮ／ＯＦＦの２値をとる量が採用される。処理部１２０は、編集画面１３０に表示されているタイミングチャートが入力装置１０５を用いて編集される毎に、編集内容を主記憶装置１０２に記憶する動作プログラム２２２に反映させることができる。なお、タイミングチャートに対する編集内容を動作プログラム２２２に反映させるタイミングは任意である。また、動作プログラム２２２の形式は、同期制御装置２００を動作させることができるものであれば任意である。動作プログラム２２２は所定のプログラム言語で記述されるものであってもよいし、プロセステーブルで表現されるものであってもよい。また、タイミングチャート自体が動作プログラム２２２として扱われてもよい。
【００２４】
図６は、実施の形態１のプログラム作成装置１００の動作を示すフローチャートである。まず、処理部１２０は、表示装置１０６に編集画面１３０を表示する（ステップＳ１）。ユーザは、入力装置１０５を操作することによって、制御単位４００毎の設定項目または複数の制御単位４００に共通する設定項目を設定することができる。設定項目は、例えば、制御単位４００を識別するラベル、縦軸の定義およびラベル、ならびに、横軸の定義およびラベルを含む。同期基準としては、マスタ軸の角度、仮想サーボの角度、およびシステム内の時間など、制御単位４００間で共有できる量であれば任意の量が指定可能である。ここでは一例として、マスタ軸の角度（位相）が同期基準として指定される。即ち、各タイミングチャートの横軸はマスタ軸の角度（位相）を示す。
【００２５】
続いて、処理部１２０は、範囲指定の入力を受け付ける（ステップＳ２）。図７は、範囲指定の入力がなされた状態の編集画面１３０を示す図である。処理部１２０は、範囲指定された個々の領域に矩形の表示オブジェクト１３１を描画する（表示オブジェクト１３１）。なお、範囲指定の入力は、横軸方向において第１の配置位置の入力と第１の配置位置よりも横軸座標値が大きい第２の配置位置の入力とを含み、表示オブジェクトはちょうど第１の配置位置から第２の配置位置に至るまでの大きさを有する。範囲指定の入力の形式は任意である。例えば、範囲指定の入力は、マウスポインタ１３２を用いて始点（第１および第２の配置位置のうちの１つ）が指定された後にドラッグされることによって終点（第１および第２の配置位置のうちの他の１つ）が指定されることで、実現される。なお、各表示オブジェクト１３１は、編集画面１３０に描画された後であっても、ドラッグアンドドロップの操作または数値入力などによって、編集画面１３０上で移動せしめられたり伸縮せしめられたりすることが可能である。
【００２６】
各表示オブジェクト１３１は、夫々個別の動作命令に対応する。動作命令には、カム命令、位置決め命令、速度命令、時間固定命令、トルク命令、およびギア命令など、多様な種別が存在する。ステップＳ２の時点においては各表示オブジェクト１３１が示す動作命令の種別は未定である。
【００２７】
処理部１２０は、各表示オブジェクト１３１の横軸座標値に基づいて各動作命令の実行タイミングを決定する（ステップＳ３）。例えば、処理部１２０は、第１の配置位置の横軸座標値が示す位相を開始タイミングに決定する。さらに、処理部１２０は、第２の配置位置の横軸座標値が示す位相を終了タイミングに決定する。
【００２８】
続いて、処理部１２０は、複数の表示オブジェクト１３１間を相互に関連付ける入力（関連付け入力）を受け付ける（ステップＳ４）。例えば、１つの動作命令の開始タイミングを他の動作命令の終了タイミングとする場合に、各動作命令に対応する２つの表示オブジェクト１３１を相互に関連付ける入力がなされる。関連付け入力の形式は任意である。例えば、２つの表示オブジェクト１３１が順番に選択されたとき、処理部１２０は、選択された２つの表示オブジェクト１３１を関連付ける入力として認識することができる。また、表示オブジェクト１３１上のコンテキストメニューから項目「関連付け」が選択された後に２つの表示オブジェクト１３１が順番に選択されたとき、処理部１２０は選択された２つの表示オブジェクト１３１を互いに関連付ける関連付け入力として認識するようにしてもよい。処理部１２０は、関連付け入力によって関連付けられた複数の表示オブジェクト１３１間の関係が視認可能になるように、例えば複数の表示オブジェクト１３１間を結ぶ矢印などの線分を表示してもよい。
【００２９】
図８は、関連付け入力がなされた状態の編集画面１３０を示す図である。図８の例においては、「軸１．動作命令１」とラベルされた表示オブジェクト１３１を「軸３．動作命令１」とラベルされた表示オブジェクト１３１に関連付ける関連付け入力がマウスポインタ１３３を用いて入力されている。矢印１３４は、関連付けの関係を示している。この関連付け入力によって、「軸１．動作命令１」とラベルされた表示オブジェクト１３１が示す動作命令の終了タイミングが「軸３．動作命令１」とラベルされた表示オブジェクト１３１が示す動作命令の開始タイミングに設定される。なお、選択された２つの表示オブジェクト１３１のうちの何れの表示オブジェクト１３１の終了タイミングを当該２つの表示オブジェクトのうちの他の表示オブジェクト１３１の開始タイミングとするかは、当該２つの表示オブジェクト１３１が夫々配置される位置関係に応じて決定される。
【００３０】
続いて、処理部１２０は、関連付け入力に基づいて動作命令の実行条件を決定する（ステップＳ５）。動作命令の実行条件とは、図８の例においては、「軸３．動作命令１」とラベルされた表示オブジェクト１３１が示す動作命令の実行条件は、「軸１．動作命令１」とラベルされた表示オブジェクト１３１が示す動作命令の終了タイミングが開始タイミングであることである。
【００３１】
続いて、処理部１２０は、動作命令の種別の入力を受け付ける（ステップＳ６）。図９は、動作命令の種別の入力がなされようとする状態の編集画面１３０を示す図である。処理部１２０は、「軸３．動作命令１」とラベルされた表示オブジェクト１３１に一部が重なるように、「指定なし」、「カム命令」、「位置決め命令」、「速度命令」、および「時間固定命令」のうちの１つを選択入力可能なコンテキストメニュー１３５を表示する。そして、「カム命令」の表示の近傍にマウスポインタ１３２が置かれている。処理部１２０は、「カム命令」が選択されようとしていることをマウスポインタ１３２の位置に基づいて認識して「カム命令」をアクティブ表示している。
【００３２】
続いて、処理部１２０は、種別が入力された表示オブジェクト１３１について、その表示オブジェクト１３１の縦軸方向、横軸方向、またはその両方に基づいて、種別に固有のパラメータ（第１パラメータ）の値を決定する（ステップＳ７）。第１パラメータは、動作命令を規定する可変パラメータのうちの、縦軸方向、横軸方向、またはその両方に基づいて値を決めることができる設定項目である。後述の第２のパラメータは、縦軸方向、横軸方向、またはその両方に基づいて値を決めることができない、残りの設定項目である。ステップＳ７においては、例えばカム命令の場合、処理部１２０は、表示オブジェクト１３１の上端および下端の縦軸座標値に基づいてストロークを設定し、表示オブジェクト１３１の左端および右端の横軸座標値に基づいてサイクル長を設定する。位置決め命令の場合、処理部１２０は、表示オブジェクト１３１の上端および下端の縦軸座標値に基づいて指令位置を設定する。速度命令の場合、処理部１２０は、表示オブジェクト１３１の上端および下端の縦軸座標値に基づいて指令速度を設定する。ただし、処理部１２０は、第１パラメータを自動で決定しなくてもよい。
【００３３】
続いて、処理部１２０は、テンプレートを指定する入力を受け付ける（ステップＳ８）。テンプレートとは、典型的な動作を可変パラメータ（第１パラメータおよび第２パラメータ）を用いて記述した、予め用意された動作命令パターンである。テンプレートは、第１および第２パラメータに値が設定されることにより動作命令として機能することができる。例えば、カム命令は、軸の速度変化が台形形状となるように軸を動作させるカム曲線パターン、一定加速度で軸を動作させるカム曲線パターン等のテンプレートが用意される。カム曲線パターンには、例えば、軌跡が不連続なポイントを規定する座標値が第２パラメータとして用意されている。軌跡が不連続なポイントを規定する座標値とは、例えば、加速状態から一定速度状態に変化したり、一定速度状態から加速状態に変化したりするタイミングにおける位相とストロークとの対である。例えば軸の速度変化が台形形状となるように軸を動作させるカム曲線パターンの場合、加速状態から一定速度状態に移行するポイントと、一定速度状態から減速状態に移行するポイントと、を規定する各座標値が第２パラメータとして設定されることで、軌跡が確定する。また、位置決め命令の場合には、絶対位置決め、相対位置決め、複数軸の補間位置決め等がテンプレートとして用意されている。また、テンプレートが円弧など、数値パラメータで規定される曲線を含んでいてもよい。円弧は、半径および角度が設定されることによって形状が確定する。円弧を含むテンプレートは、円弧の半径および角度など、円弧を規定するための数値パラメータが第２パラメータとして用意される。複数軸の補間命令では、第２パラメータとして同時に動作する軸を設定すると、その同時に動作する軸にも補間命令の動作命令を実行している表示をしてもよい。なお、命令種別が指定された時と同様に、処理部１２０は、第２パラメータを自動で決定してもよい。
【００３４】
図１０は、テンプレートを指定する入力を受け付ける状態の編集画面１３０を示す図である。処理部１２０は、「軸３．動作命令１」とラベルされた表示オブジェクト１３１に一部を重ねるように、「台形加減速」、「送り動作」、「２段台形加減速」、「張力制御（送り）」、「張力制御（巻取り）」、および「張力制御（カッター）」がテンプレートとして選択入力可能なコンテキストメニュー１３６を表示している。そして、「２段台形加減速」の表示の近傍にマウスポインタ１３２が置かれている。処理部１２０は、「２段台形加減速」のテンプレートが選択されようとしていることをマウスポインタ１３２の位置に基づいて認識して、「２段台形加減速」をアクティブ表示し、かつ、「２段台形加減速」によるカム曲線パターンの概要図をウインドウ１３７に表示している。
【００３５】
続いて、処理部１２０は、第２パラメータの入力を受け付ける（ステップＳ９）。このとき、処理部１２０は、ステップＳ８の処理によって指定されたテンプレートに固有の入力画面を表示することができる。図１１は、第２パラメータの入力を受け付けることができる状態の編集画面１３０を示す図である。処理部１２０は、「軸３．動作命令１」とラベルされた表示オブジェクト１３１に一部を重ねるように、第２パラメータの入力画面１３８を表示する。入力画面１３８は、入力部１３９と、詳細表示部１４０とを備える。入力部１３９は、「２段台形加減速」のカム曲線パターンの不連続なポイントを規定する座標値が、編集可能な状態で表示される。なお、「２段台形加減速」のカム曲線パターンのうちの左端（Ｐ１の横軸座標値）、右端（Ｐ６の横軸座標値）および上端（Ｐ４およびＰ５の縦軸座標値）は、ステップＳ７の処理により第１パラメータとして決定され、入力部１３９に表示される。ユーザは、決定されていない残りの座標値を入力部１３９に入力したり、入力部１３９に表示されている座標値を編集したりすることができる。なお、第１パラメータが自動で決定されない場合は、ユーザは、ステップＳ９の処理において第１パラメータを入力するようにしてもよい。詳細表示部１４０は、指定されたテンプレートに入力部１３９に入力され表示された座標値を適用することで決まるカム曲線をグラフィカルに表示するものである。処理部１２０は、入力部１３９に入力された座標値に基づいてカム曲線の画像データを生成し、生成した画像データを詳細表示部１４０に表示する。処理部１２０は、座標値が変更されると、変更に応じて詳細表示部１４０に表示中のカム曲線を変更する。
【００３６】
また、テンプレートに円弧など、数値パラメータで規定される曲線が含まれる場合には、入力部１３９は、数値パラメータが第２パラメータとして入力される。処理部１２０は、画像データを生成する際に、第２パラメータを用いて曲線を演算することができる。また、テンプレートとして位置決め命令が指定された場合には、入力部１３９は、目標位置または目標速度などが第２パラメータとして入力される。また、張力制御のテンプレートまたはプラント用途などの特殊用途向けのテンプレートが指定された場合、複数の軸、センサ入力、信号出力が視覚的に行えるように入力部１３９が構成される。
【００３７】
続いて、処理部１２０は、第１パラメータおよび第２パラメータを適用したテンプレートに基づく動作を、ステップＳ３の処理によって決定した実行タイミングで動作させる動作命令を生成する（ステップＳ１０）。そして、処理部１２０は、生成した動作命令を動作プログラム２２２に記述することによって（ステップＳ１１）、動作プログラム２２２を生成する。動作プログラム２２２の生成後、処理部１２０は、動作を終了する。なお、処理部１２０は、生成した動作プログラム２２２をユーザからの指示入力に応じて記憶部２２１に格納することができる。
【００３８】
なお、ステップＳ２〜ステップＳ１０の動作は、動作命令毎に個別に実行されてもよいし、全ての動作命令について並行して実行されてもよい。ユーザは、一部の軸の一部の動作命令について動作プログラムを作成してもよいし、動作命令毎の詳細設定（ステップＳ８〜ステップＳ１１）を後回しにして、複数の動作命令の簡易設定（ステップＳ２〜ステップＳ７）を実行してもよい。また、ユーザは、既存の動作プログラムを流用してステップＳ２〜ステップＳ１０の動作のうちの所望の処理を処理部１２０に実行させてもよい。また、関連付け入力の受け付け（ステップＳ４）および実行条件の決定（ステップＳ５）は、行われなくてもよい。
【００３９】
以上述べたように、実施の形態１によれば、プログラム作成装置１００は、制御単位４００毎のタイミングチャートを縦方向に配列した編集画面１３０を表示装置１０６に表示する処理部１２０を備える。処理部１２０は、タイミングチャートに表示オブジェクト１３１を配置位置を指定して配置する第１入力を受け付けると（ステップＳ２）、タイミングチャート上の第１入力によって指定された配置位置に表示オブジェクト１３１を表示する。また、処理部１２０は、表示オブジェクト１３１の表示後に、種別の指定およびパラメータの入力を含む第２入力を受け付ける（ステップＳ６およびステップＳ９）。そして、処理部１２０は、第２入力によって入力されたパラメータを適用した第２入力によって指定された種別の動作命令を第１入力によって指定された配置位置に応じた実行タイミングで実行する動作プログラムを生成する（ステップＳ１０およびステップＳ１１）。プログラム作成装置１００は、タイミングチャート上で表示オブジェクト１３１を配置する入力に基づいて動作命令の実行タイミングの調整を行うことを可能としているので、動作命令毎のパラメータの決定を含む詳細設計の段階で実行タイミングの設定を行うことを不要とすることができる。その結果、動作命令の詳細設計での手戻りが防止されるので、ユーザは、同期制御装置２００の動作プログラム２２２を簡単に作成することができるようになる。
【００４０】
なお、処理部１２０は、範囲指定がされ表示オブジェクト１３１の描画を行って動作命令を追加した後に、動作命令種別を含む動作命令のパラメータの入力を受け付ける、として説明した。処理部１２０は、テンプレートを指定する入力と、表示オブジェクト１３１の範囲指定の入力とをこの順番で受け付けるように構成されてもよい。まず、ユーザは、テンプレートの種類を指定した後に、編集画面１３０に範囲指定を行って、動作命令を追加する。範囲指定は行わずに開始位置だけを設定した場合には、処理部１２０は、テンプレートごとの固有のパラメータに従って表示オブジェクト１３１を追加する。表示オブジェクト１３１が配置される範囲が指定された後は、上記に説明したように、処理部１２０が第１パラメータまたは第２パラメータを自動で設定するようにしてもよい。このように、先にテンプレートを指定した後に動作命令を追加する入力を処理部１２０が受け付けることができる場合、編集画面１３０上で表示オブジェクト１３１毎にテンプレートを設定する方法と比較してユーザによる入力の手間を減らすことができるという効果が得られる。
【００４１】
なお、ここでは、先にテンプレートを追加するとして説明したが、動作命令の種別だけを指定した後に表示オブジェクトを範囲指定で追加できるように処理部１２０が構成されてもよい。
【００４２】
実施の形態２．
図１２は、実施の形態２の編集画面１３０を示す図である。処理部１２０は、編集画面１３０にグリッド線を表示する。グリッド線は、縦軸に平行な複数の直線（第１直線）と、横軸に平行な複数の直線（第２直線）とによって構成される。図１２においては、複数の第１直線は等間隔に表示されている。また、図１２においては、制御単位４００毎に２本の第２直線が表示されている。また、第１直線および第２直線は、破線の様態で表示されている。なお、第１直線および第２直線の表示様態は任意である。
【００４３】
制御単位４００毎の２本の第２直線は、範囲指定の入力が可能な範囲を示している。即ち、ユーザは、第２直線で区切られている範囲内にステップＳ２の範囲指定の入力を行うことができる。サーボ軸のタイミングチャートの縦軸の量はストロークまたは速度を示す。縦軸に示されるストロークまたは速度は、最大ストロークまたは定格速度に対する比を用いて表示される。最大ストロークまたは定格速度は、数値として入力されることが一般的である。サーボ軸のタイミングチャートに表示される２つの第２直線は、最大ストロークおよび最小ストロークを示している。Ｉ／Ｏのタイミングチャートに表示される２つの第２直線は、ＯＮ状態およびＯＦＦ状態を示す。
【００４４】
実施の形態２においては、処理部１２０は、グリッド線の間隔を変更する入力を受け付けることができる。図１３は、実施の形態２のプログラム作成装置１００の動作を示すフローチャートである。
【００４５】
まず、処理部１２０は、編集画面１３０にグリッド線を表示する（ステップＳ２１）。ユーザは、任意のタイミングでグリッド線を表示する入力を行うことができる。処理部１２０は、ユーザからグリッド線を表示する入力を受け付けたとき、グリッド線の表示を行う。処理部１２０は、グリッド線のうちの第１直線を、例えば、予め決められた間隔、ユーザが指定する間隔、または、以前に表示されていた間隔で表示する。
【００４６】
続いて、処理部１２０は、区間を指定して第１直線の間隔を変更する入力があったか否かを判定する（ステップＳ２２）。ここで、区間とは、隣接するまたは隣接しない２つの直線によって区切られる領域をいう。間隔を変更する入力とは、第１直線を横軸方向に移動する入力である。例えば、ポインティングデバイスを用いて区間の端部の第１直線がドラッグされたり、間隔を指定する数値が入力されたりしたとき、処理部１２０は、間隔を変更する入力として認識することができる。
【００４７】
第１直線の間隔を変更する入力があった場合（ステップＳ２２、Ｙｅｓ）、処理部１２０は、全ての軸について、指定された区間（指定区間）内の動作と、指定区間内の動作の後に実行される全ての動作命令の実行タイミングと、を間隔の変更に応じて変更する（ステップＳ２３）。即ち、処理部１２０は、動作プログラム２２２を更新する。そして、処理部１２０は、編集画面１３０の表示を更新する（ステップＳ２４）。処理部１２０は、間隔に比例するように、指定区間内の軌跡の横軸の単位量当たりの縦軸の変化量（即ち傾き）を変化させる。例えば指定区間の間隔が「１０」から「２０」に変更された場合、指定区間の間隔が２倍に拡大され、指定区間内の軌跡の傾きは変更前に比べて０．５倍に縮小される。なお、実行タイミングが指定区間よりも後の動作命令は全て、変更前に比べて「１０」だけ遅れて実行される。このように、指定区間の間隔の変更によって、指定区間内の全ての軸の全ての動作命令と、実行タイミングが指定区間よりも後の全ての軸の全ての動作命令の実行タイミングとは、指定区間の間隔の変更に応じて一律に変更される。実行タイミングが指定区間よりも後の全ての軸の全ての動作命令の実行タイミングは同じ量だけ一律に変更されるため、実行タイミングが指定区間よりも後の夫々異なる軸の任意の２つの動作命令の間の実行タイミングの関係は、間隔の変更前後で変化しない。なお、第１直線の間隔の変更は、指定区間内の動作の変更を伴う。処理部１２０は、ステップＳ２３の処理の際、指定区間内の動作の実行タイミングと指定区間内の動作を規定するパラメータ（第１パラメータおよび第２パラメータ）とを変更する。このように、処理部１２０は、第１直線の間隔の変更に応じて、編集画面１３０の表示および動作プログラム２２２を更新する。
【００４８】
第１直線の間隔を変更する入力がない場合（ステップＳ２２、Ｎｏ）、または、ステップＳ２３の処理の後、処理部１２０は、区間を指定して第２直線の間隔を変更する入力があったか否かを判定する（ステップＳ２５）。
【００４９】
第２直線の間隔を変更する入力があった場合（ステップＳ２５、Ｙｅｓ）、処理部１２０は、指定された区間内の表示間隔を、入力された第２直線の間隔の変更に応じて拡大または縮小する（ステップＳ２６）。軸のタイミングチャートの場合、第２直線の間隔の変更によってストロークまたは速度が変更されるのではなく、第２直線の間隔の変更によって表示上の間隔の拡大または縮小が行われる。Ｉ／Ｏのタイミングチャートの場合、縦軸の量は、ＯＮ／ＯＦＦの２値を表現するためのものである。よって、Ｉ／Ｏのタイミングチャートの場合、軸のタイミングチャートの場合と同様に、第２直線の間隔の変更に応じて表示上の間隔が拡大または縮小される。このように、処理部１２０は、第２直線の間隔の変更に応じて編集画面１３０の表示を更新するが、動作プログラム２２２の更新は実行しない。
【００５０】
第２直線の間隔を変更する入力がない場合（ステップＳ２５、Ｎｏ）、または、ステップＳ２６の処理の後、処理部１２０は、ステップＳ２２の処理を再び実行する。
【００５１】
なお、処理部１２０は、ユーザからの指示に基づいてグリッド線を表示したり非表示したりすることができる。処理部１２０は、第１直線と第２直線とを個別に表示／非表示可能に構成されてもよい。また、処理部１２０は、ユーザからの指示に基づいて、グリッド線を、動作プログラム２２２を変更せずに間隔を変更して再配置することができる。また、処理部１２０は、グリッド線を表示開始する際に、ユーザから指定されたポイントに第１直線が乗るようにグリッド線の表示位置を自動で決定するようにしてもよい。また、処理部１２０は、グリッド線を表示する際に、動作が特徴的なポイントに第１直線が乗るようにグリッド線の表示位置を自動で決定するようにしてもよい。動作が特徴的なポイントとは、例えば、動作命令の開始タイミング、終了タイミング、軌跡が不連続に変化するポイント、移動方向または速度が急激に変化するポイント、などである。また、処理部１２０は、ユーザから第１直線が指定されたとき、指定された第１直線の表示を消去するようにしてもよい。第１直線が消去されると、消去前の第１直線の両側の２つの区間が１つの区間にマージされる。
【００５２】
このように、実施の形態２によれば、処理部１２０は、各タイミングチャートの横軸に直交し、かつ、各タイミングチャートに共通の第１直線を、編集画面１３０に表示し、第１直線を横軸方向に移動する入力を受け付けることができる。処理部１２０は、第１直線を横軸方向に移動する入力を受け付けたとき、各タイミングチャートに配置された表示オブジェクト１３１に夫々対応する夫々の動作命令の実行タイミングを一律に変更する。ユーザは、動作命令間の実行タイミングの関係を維持させたまま全ての軸における動作命令および動作命令の実行タイミングを一括して変更することができるので、動作プログラム２２２の調整時間を短くすることが可能となる。
【００５３】
実施の形態３．
実施の形態３においては、処理部１２０は、ユーザが指定する位置に新たな区間を挿入することができる。ユーザは、間隔がゼロ値の区間を挿入した後、挿入した区間の間隔を変更することによって、全ての軸における動作命令の実行タイミングを一括して、かつ、任意に調整することができるようになる。図１４は、実施の形態３のプログラム作成装置１００の動作を示すフローチャートである。
【００５４】
処理部１２０は、位置を指定して区間を挿入する入力を受け付ける（ステップＳ３１）。すると、処理部１２０は、指定された位置（指定位置）に２本の第１直線を重ねて表示する（ステップＳ３２）。なお、第１直線の上が指定された場合には、処理部１２０は、１つの新たな第１直線を指定位置に表示する。第１直線上でない位置が指定された場合には、処理部１２０は、２つの新たな第１直線を重ねて表示する。なお、処理部１２０は、重なった２つの第１直線を、単一の第１直線と同一の様態で表示してもよいし単一の第１直線とは異なる様態で表示してもよい。
【００５５】
続いて、処理部１２０は、２つの重なった第１直線の間隔を指定する入力を受け付ける（ステップＳ３３）。すると、処理部１２０は、全ての軸について、指定された位置が示すタイミングの後に実行される全ての動作命令の実行タイミングを間隔の変更に応じて変更する（ステップＳ３４）。そして、処理部１２０は、編集画面１３０の表示を更新する（ステップＳ３５）。なお、挿入された区間内の動作を如何に設定するかについては任意である。例えば、処理部１２０は、挿入された区間内で縦軸の値が一定となるように区間内の動作を設定する。
【００５６】
このように、実施の形態３によれば、処理部１２０は、配置位置とゼロ値以上の間隔とを指定して新たな区間を挿入する入力を受け付けることができる。処理部１２０は、当該新たな区間を挿入する入力を受け付けたとき、編集画面１３０上において前記指定された配置位置に前記指定された間隔の２つの第１直線で区切られる新たな区間を挿入するとともに、前記指定された配置位置に応じたタイミングよりも後に実行される全ての動作命令の実行タイミングを指定された間隔に応じた量だけ一律に変更する。これにより、ユーザは、全ての軸における動作命令の実行タイミングを一括して、かつ、任意に調整することができるようになる。
【００５７】
例えば、ユーザは、１の動作命令の完了タイミングが他の動作命令の開始タイミングに設定されている場合において、前記１の動作命令の完了タイミングを変更しないまま前記他の動作命令の開始タイミングを遅らせたい場合には、前記１の動作命令の完了タイミングに新たな区間を挿入することで、前記他の動作命令の開始タイミングを遅らせることができる。その場合には、区間の挿入位置の後の全ての軸の全ての動作命令の実行タイミングが一律に遅らされる。なお、間隔がゼロ値の区間が編集画面１３０上に複数存在してもよい。
【００５８】
実施の形態４．
実施の形態４においては、処理部１２０は、制御単位４００毎のタイミングチャートの任意の位置に第２直線を表示する。例えば、処理部１２０は、実施の形態２における第１直線の処理と同様に、動作が特徴的なポイントに第２直線が乗るように第２直線の表示位置を自動で決定してもよい。また、処理部１２０は、ユーザが指定したポイントに第２直線が乗るように第２直線の表示位置を決定してもよい。
【００５９】
図１５は、実施の形態４の第２直線の表示様態を示す図である。２本の第２直線１４１は、ステップＳ２１の処理によって表示されるものである。「軸１」とラベルされたタイミングチャートには、２段の台形パターンのカム曲線が規定されている。このカム曲線は、動作が特徴的な少なくとも４つのポイント１４３、１４４、１４５、１４６を有する。ポイント１４３〜１４６の縦軸座標値は夫々等しい。処理部１２０は、４つのポイント１４３〜１４６を自動で検出し、検出した４つのポイント１４３〜１４６が乗る第２直線１４２を表示することができる。これにより、２段の台形パターンのように、中間値を有する軌跡の場合、中間値上に第２直線が乗るように第２直線が表示される。なお、処理部１２０は、ユーザから第２直線が指定されたとき、実施の形態１と同様に、指定された第２直線の表示を消去するようにしてもよい。
【００６０】
なお、処理部１２０は、第２直線１４２を縦軸方向に移動する入力を受け付けることができる。処理部１２０は、第２直線１４２を縦軸方向に移動する入力を受け付けたとき、第２直線１４２の位置の変更に応じて動作命令による軌跡を動作命令毎に変更する。また、処理部１２０は、第２直線１４２を縦軸方向に移動する入力に応じて編集画面１３０の表示を更新する。
【００６１】
軌跡の変更手法は、動作命令の種別に応じて決められている。例えば動作命令がカム命令の場合には、処理部１２０は、第２直線１４２の変更に応じて、第２直線１４２を下側の境界とする区間（第１区間）および第２直線１４２を上側の境界とする区間（第２区間）の軌跡を夫々変更する。具体的には、第１区間においては、第１区間の間隔の変化量に比例するように、第１区間の縦軸の単位量当たりの横軸の変化量を変化させる。第１区間の間隔が変更前の倍に変更された場合には、処理部１２０は、第１区間の軌跡の傾きを０．５倍に変更する。処理部１２０は、第２区間においても第１区間と同様の変更を実行する。即ち、処理部１２０は、第２直線の変更に応じて軌跡の傾きを変更する。処理部１２０は、第２直線１４２が変更されてもポイント１４３〜１４６の横軸の座標値は変更せず、かつ、ポイント１４３〜１４６の縦軸の座標値を第２直線１４２の変更に応じて変更する。
【００６２】
また、例えば動作命令が位置決め命令の場合には、処理部１２０は、軌跡の傾きを変更しない代わりに、動作命令の完了タイミングを変更する。位置決め命令の開始タイミング、指令速度および加速度は一定のまま目標位置が変更されるためである。ただし、十分な加減速時間を取れない場合には、指令速度での動作区間が確保できないので、結果的に処理部１２０は、軌跡の傾きを変更してもよい。
【００６３】
また、縦軸がストロークではなく速度を示す場合には、第２直線１４２の変更は、目標速度の変更に該当する。また、処理部１２０は、動作命令の開始タイミングまたは位置指令をポインティングデバイスを用いてドラッグアンドドロップした場合には、ドロップ位置に最も近いグリッド線またはグリッド線の交点にドロップされたものとして認識し、ドロップ位置に最も近いグリッド線またはグリッド線の交点にドラッグ対象が一致するように変更を行ってもよい。
【００６４】
また、処理部１２０は、ポイント１４３〜１４６のうちの一部を第２直線１４２に関連付ける入力を受け付けることができるように構成されてもよい。処理部１２０は、第２直線１４２の位置を変更する入力を受け付けたとき、ポイント１４３〜１４６のうちの第２直線１４２に関連付けられたポイントを第２直線１４２の変更に追随するように変更し、ポイント１４３〜１４６のうちの第２直線１４２に関連付けられていないポイントを変更しない。
【００６５】
また、処理部１２０は、複数の第２直線を同一の位置に重ねて表示してもよい。同一位置に重ねて表示された各第２直線は、夫々異なるポイントを関連付けることが可能となる。
【００６６】
このように、実施の形態４によれば、処理部１２０は、第２直線を縦軸方向に移動する入力を受け付けたとき、入力された動作命令の種別に応じて当該動作命令の軌跡を変更する。これにより、ユーザは、動作命令の調整を簡単に実行することができるようになる。
【００６７】
また、処理部１２０は、第２直線に関連付けられたポイントを移動する入力を受け付けることができるように構成されてもよい。第２直線に関連付けられたポイントを移動する入力を受け付けた場合、処理部１２０は、第２直線に関連付けられたポイントが第２直線の移動に追随するように、かつ、第２直線に関連付けれられていないポイントは第２直線の移動に追随しないように、軌跡を変更する。これにより、ユーザは、同一の中間値をとる複数のポイントのうちの一部のみを変更対象に指定して軌跡を調整することが可能となる。
【００６８】
図１６は、変更後の軌跡を示す図である。図１６は、図１５のタイミングチャートにおいてポイント１４３およびポイント１４４が第２直線１４２に関連付けられるとともに、第２直線１４２が縦軸の正方向に移動する入力がなされた状態のタイミングチャートを示している。図示するように、ポイント１４３およびポイント１４４が第２直線に追随して移動し、ポイント１４５およびポイント１４６は第２直線に追随していない。
【００６９】
実施の形態５．
実施の形態５においては、処理部１２０は、２以上の表示オブジェクト１３１を指定して間隔または位置を変更する入力を受け付けることができる。複数の表示オブジェクト１３１を指定する入力の形式は任意である。例えば、処理部１２０は、キー操作の入力によって、複数の表示オブジェクト１３１を選択できるモードに移行する。そのモードにおいてポインティングデバイスを用いて複数の表示オブジェクト１３１が押下される入力がなされたとき、処理部１２０は、押下された複数の表示オブジェクト１３１が指定されたことを認識することができる。
【００７０】
複数の表示オブジェクト１３１が指定された後に数値入力またはドラッグアンドドロップの操作の入力により開始タイミングを変更する入力がなされると、処理部１２０は、指定された複数の表示オブジェクト１３１に対応する夫々の動作命令の開始タイミングを、開始タイミングを変更する入力に応じて変更する。例えば、処理部１２０は、前記夫々の動作命令の開始タイミングを、開始タイミングを変更する入力による変更量だけ変更する。指定された複数の表示オブジェクト１３１に夫々対応する動作命令の開始タイミングが同じ量だけ変更されるので、指定された複数の表示オブジェクト１３１に夫々対応する動作命令間の実行タイミングの関係は変更の前後で変化しない。
【００７１】
また、ユーザが横軸方向に伸縮する入力を行った場合には、処理部１２０は、指定された各動作命令の動作期間を入力に応じた共通の比率で変更する。なお、処理部１２０は、指定された各動作命令の動作期間を変更する際に、各動作命令の開始タイミングを固定した状態で各動作命令の動作期間を変更してもよいし、各動作命令の開始タイミングを固定しないで各動作命令の動作期間を変更してもよい。各動作命令の動作期間の変更によって各動作命令の実行タイミング間の関係が変更の前後で変化してもよい。また、ユーザが横軸方向の量を数値入力した場合には、処理部１２０は、指定された各動作命令の動作期間を入力された数値に変更する。また、ユーザが指令値を入力した場合には、指定された各動作命令の指令値を入力された指令値に変更する。
【００７２】
このように、実施の形態５によれば、処理部１２０は、２以上の表示オブジェクト１３１を選択するとともに第１の配置位置と第２の配置位置との間隔を変更する入力を受け付けたとき、選択された全ての表示オブジェクト１３１に応じた各動作命令の動作期間を入力に応じて変更する。これにより、ユーザは、任意の複数の動作命令の動作期間を一括して変更することが可能となる。
【００７３】
また、処理部１２０は、２以上の表示オブジェクト１３１を選択するとともに配置位置を変更する入力を受け付けたとき、選択された全ての表示オブジェクト１３１に応じた各動作命令の開始タイミングを入力に応じて変更する。これにより、ユーザは、任意の複数の動作命令の開始タイミングを一括して変更することが可能となる。
【００７４】
実施の形態６．
実施の形態６によれば、処理部１２０は、選択された２以上の表示オブジェクト１３１をグループ化する入力を受け付けることができる。処理部１２０は、選択された２以上の表示オブジェクト１３１をグループ化する入力を受け付けたとき、選択された２以上の表示オブジェクト１３１を１つのグループとして記憶する。その後、処理部１２０は、グループを構成する２以上の表示オブジェクト１３１の第１および第２の配置位置のうちの最も右端の配置位置と最も左端の配置位置との間の間隔を変更する入力を受け付けることができる。処理部１２０は、両端の配置位置間の間隔を変更する入力を受け付けたとき、グループを構成する各表示オブジェクト１３１に対応する夫々の動作命令のうちの最も早く実行される動作命令の開始タイミングから各動作命令の開始タイミングまでの時間の変更率と、前記夫々の動作命令の動作時間の変更率と、間隔を変更する入力による間隔の変更前後の変更率と、が等しくなるように、前記夫々の動作命令の開始タイミングおよび動作時間を変更する。これにより、ユーザは、動作命令間で実行タイミングの順序を入れ替えることなく複数の動作命令の開始タイミングおよび動作時間を一括して変更することが可能となる。
【００７５】
実施の形態７．
なお、処理部１２０は、表示装置１０６に編集画面１３０とは異なる別の作業画面を表示してもよい。作業画面は、プログラム作成プログラム１０４またはプログラム作成プログラム１０４とは異なるプログラムによって作成された動作命令を展開して編集することが可能な画面である。ユーザは、所望の動作命令を個別に編集したい場合には、その動作命令を作業画面にコピーして、作業画面上で編集し、作業画面上において編集された動作命令を編集画面１３０にコピーすることが可能となる。ユーザは作業画面上で動作命令を編集して編集された動作命令を編集画面１３０上にコピーすることが可能となるので、類似の動作命令を多数含む動作プログラム２２２を作成する場合、編集画面１３０上で全ての動作命令を作成する場合に比べてユーザの負担が軽減される。
【００７６】
なお、実施の形態１〜７の説明において、処理部１２０は、ソフトウェアにより実現されるものとして説明したが、処理部１２０のうちの一部または全部は、ハードウェア、又はハードウェアとソフトウェアの組み合わせとして実現することができる。
【符号の説明】
【００７７】
１００  プログラム作成装置、１０１  演算装置、１０２  主記憶装置、１０３  補助記憶装置、１０４  プログラム作成プログラム、１０５  入力装置、１０６  表示装置、１０７  接続インタフェース装置、１２０  処理部、１３０  編集画面、１３１  表示オブジェクト、１３２，１３３  マウスポインタ、１３４  矢印、１３５，１３６  コンテキストメニュー、１３７  ウインドウ、１３８  入力画面、１３９  入力部、１４０  詳細表示部、１４１，１４２  第２直線、１４３  ポイント、２００  同期制御装置、２１０  変化量算出部、２２０  主制御部、２２１  記憶部、２２２  動作プログラム、３００  マスタエンコーダ、４００  制御単位。
【図１】
0006045716.tif 000002
【図２】
0006045716.tif 000003
【図３】
0006045716.tif 000004
【図４】
0006045716.tif 000005
【図５】
0006045716.tif 000006
【図６】
0006045716.tif 000007
【図７】
0006045716.tif 000008
【図８】
0006045716.tif 000009
【図９】
0006045716.tif 000010
【図１０】
0006045716.tif 000011
【図１１】
0006045716.tif 000012
【図１２】
0006045716.tif 000013
【図１３】
0006045716.tif 000014
【図１４】
0006045716.tif 000015
【図１５】
0006045716.tif 000016
【図１６】
0006045716.tif 000017