(57)【特許請求の範囲】
【請求項１】
プログラム編集画面上で図形を用いて記述されるプログラムを編集するプログラム編集用プログラムにおいて、
コンピュータを
プログラム編集画面上に入力される座標情報、前記座標情報の軌跡の形状を含む入力ジェスチャ特性情報を取得する入力ジェスチャ特性情報取得手段と、
入力ジェスチャ特性情報に基づいて、操作対象を特定し、前記操作対象に適用するコマンドも特定して、前記コマンドを実行し、前記プログラム編集画面に表示する処理実行手段と、
して機能させ、
前記処理実行手段は、前記操作対象の種類と、前記軌跡の形状と、実行するコマンドと、を対応付けたジェスチャ定義に基づいて、前記コマンドを特定し、特定した前記コマンドを実行し、前記コマンドを実行した結果を前記プログラム編集画面に表示するプログラム編集用プログラム。
【請求項２】
プログラム編集画面上で図形を用いて記述されるプログラムを編集するプログラム編集用プログラムにおいて、
コンピュータを
プログラム編集画面上に入力される座標情報、前記座標情報の軌跡の形状と前記軌跡の向きとを含む入力ジェスチャ特性情報を取得する入力ジェスチャ特性情報取得手段と、
入力ジェスチャ特性情報に基づいて、操作対象を特定し、前記操作対象に適用するコマンドも特定して、前記コマンドを実行し、前記プログラム編集画面に表示する処理実行手段と、
して機能させ、
前記処理実行手段は、前記操作対象の種類と、前記軌跡の形状および向きと、実行するコマンドと、を対応付けたジェスチャ定義に基づいて、前記コマンドを特定し、特定した前記コマンドを実行し、前記コマンドを実行した結果を前記プログラム編集画面に表示するプログラム編集用プログラム。
【請求項３】
前記処理実行手段は、前記入力ジェスチャ特性情報に含まれる情報に基づいて入力文字列を取得し、前記入力文字列に対応するコマンドが前記ジェスチャ定義に存在する場合に、前記操作対象に前記入力文字列を登録することを特徴とする請求項１または２に記載のプログラム編集用プログラム。
【請求項４】
前記入力ジェスチャ特性情報取得手段は、第１解像度での前記座標情報の始点から終点までの通過点の記録である第１入力軌跡と、前記第１解像度よりも高い第２解像度での前記座標情報の前記始点から前記終点までの前記通過点の記録である第２入力軌跡と、を取得し、
前記処理実行手段は、前記ジェスチャ定義に、前記第１入力軌跡に対応するコマンドが存在するか確認するとともに、前記第２入力軌跡に対応するコマンドが存在するか確認することを特徴とする請求項１または２に記載のプログラム編集用プログラム。
【請求項５】
前記処理実行手段は、前記第２入力軌跡に基づいて入力文字列を取得し、前記入力文字列に対応するコマンドが前記ジェスチャ定義に存在する場合に、前記操作対象に前記入力文字列を登録することを特徴とする請求項４に記載のプログラム編集用プログラム。
【請求項６】
前記処理実行手段は、前記操作対象が文字入力用の構成要素であるか否かを判定し、
前記入力ジェスチャ特性情報取得手段は、前記操作対象が文字入力用の構成要素でないと判断された場合に、第１解像度での前記座標情報の始点から終点までの通過点の記録である第１入力軌跡を取得し、前記操作対象が文字入力用の構成要素であると判断された場合に、前記第１解像度よりも高い第２解像度での前記座標情報の前記始点から前記終点までの前記通過点の記録である第２入力軌跡を取得することを特徴とする請求項１または２に記載のプログラム編集用プログラム。
【請求項７】
前記処理実行手段は、前記第２入力軌跡が取得された場合に、前記第２入力軌跡に基づいて入力文字列を取得し、前記操作対象に前記入力文字列を登録することを特徴とする請求項６に記載のプログラム編集用プログラム。
【請求項８】
前記入力ジェスチャ特性情報取得手段は、前記プログラム編集画面に左母線と右母線のみが配置されている場合に、前記第１解像度よりも低い第３解像度での前記座標情報の前記始点から前記終点までの前記通過点の記録である第３入力軌跡を取得することを特徴とする請求項４から７のいずれか１つに記載のプログラム編集用プログラム。
【請求項９】
前記処理実行手段は、前記座標情報に基づいて前記操作対象を特定する際に、前記操作対象の候補が複数存在する場合に、前記複数の操作対象の候補を一覧表示する機能を有することを特徴とする請求項１から８のいずれか１つに記載のプログラム編集用プログラム。
【請求項１０】
前記処理実行手段は、前記複数の操作対象の候補から前記操作対象を選択できる機能を有することを特徴とする請求項９に記載のプログラム編集用プログラム。
【請求項１１】
前記処理実行手段は、前記操作対象の種類の変更の際に、前記種類の選択肢を一覧表示する機能と、前記選択肢から前記種類を選択できる機能と、を有することを特徴とする請求項１から１０のいずれか１つに記載のプログラム編集用プログラム。
【請求項１２】
前記プログラム編集画面には、入力操作の軌跡が表示されることを特徴とする請求項１から１１のいずれか１つに記載のプログラム編集用プログラム。
【請求項１３】
前記プログラム編集画面には、入力操作が可能な範囲を示すガイド線が表示されることを特徴とする請求項１から１２のいずれか１つに記載のプログラム編集用プログラム。
【請求項１４】
前記処理実行手段は、前記軌跡の始点が前記操作対象の予め定められた位置にある場合に、前記操作対象を入力操作に沿って移動させることを特徴とする請求項１から１３のいずれか１つに記載のプログラム編集用プログラム。
【請求項１５】
前記処理実行手段は、前記操作対象が移動状態にある場合には、前記操作対象の表示状態を変更する処理を行うことを特徴とする請求項１４に記載のプログラム編集用プログラム。
【請求項１６】
前記処理実行手段は、プログラム編集可否の情報に合せて実行するコマンドを変更できることを特徴とする請求項１から１５のいずれか１つに記載のプログラム編集用プログラム。
【請求項１７】
前記処理実行手段は、制御装置の入出力の状態を変更できることを特徴とする請求項１から１６のいずれか１つに記載のプログラム編集用プログラム。
【請求項１８】
前記処理実行手段は、前記ジェスチャ定義についてのヘルプ情報の表示を指示するコマンドを含むことを特徴とする請求項１から１７のいずれか１つに記載のプログラム編集用プログラム。
【請求項１９】
前記ジェスチャ定義には、前記操作対象の種類として命令文を含むプログラム構成要素が定義され、前記コマンドとして前記命令文を含むプログラム構成要素の前記命令文の変更が定義され、
前記処理実行手段は、前記操作対象の種類が前記命令文を含むプログラム構成要素である場合に、前記入力ジェスチャ特性情報と前記ジェスチャ定義に基づいて、前記プログラム構成要素に既に格納されている前記命令文を変更することを特徴とする請求項１，２から１８のいずれか１つに記載のプログラム編集用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、制御装置のプログラム編集用プログラムに関するものである。
【背景技術】
【０００２】
ＦＡ（Factory  Automation）システムを構成するプログラマブルコントローラなどの制御装置で実行させるプログラムは、一般的にリレー制御回路の考えを基本とした、リレーシンボリック語による回路図形式（以下、ラダープログラムという）で図形を用いて記述される。また、このほかにもＦＢ（Function  Block）、ＦＢＤ（Function  Block  Diagram）、ＳＦＣ（Sequential  Function  Chart）などの形式で図形を用いて記述されることもある。このような図形を用いて記述されるプログラムの作成は、情報処理端末で、エンジニアリングツールと呼ばれるプログラム編集用プログラムを用いて、グラフィカルに行われている。【０００３】
一般的な制御装置のエンジニアリングツールでは、図形を用いて記述されるプログラムはマウスとキーボードを用いて編集されている。たとえば、ラダープログラムに回路記号あるいは接続線などのプログラム構成要素を追加する場合は、プログラムを編集するための編集画面において、マウスまたはキーボードを用いて、プログラム構成要素を追加する位置を指定した後に、追加したいプログラム構成要素を選択する、という処理を繰り返して、プログラムの編集を可能にしている。また、プログラム構成要素を追加する以外の操作を行う場合も、操作の対象を指定し、実行したい処理（以下、コマンドという）を選択する、という処理を繰り返して、プログラムの編集を可能にしている。【０００４】
一方、近年では、タッチパネル入力機能を有する情報処理装置（以下、タブレット端末という）を使った入力技術が盛んになってきている。このタブレット端末にて、エンジニアリングツールを利用する場合には、タッチパネルに指を当てる操作を、マウスカーソルにて操作の対象を指定してマウスボタンを押す操作と同等に扱って、プログラムの編集を可能にする方法が一般的な方法となっている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２５９０８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、タブレット端末にて、エンジニアリングツールを利用する場合には、上記した従来の一般的な方法を用いると、プログラム構成要素の配置先を指定し、プログラム構成要素の種類を指定する操作を、指を用いて繰り返すことになるため、マウスで操作する場合と比べて手の移動距離が大きくなり、操作が煩雑になるという課題があった。また、指がマウスポインタより大きいために、プログラム編集画面上に、プログラム構成要素の種類あるいはコマンドを指定するための選択肢の一覧を大きく表示する必要があり、マウスで操作する場合と比べて、画面に表示できる情報を減らす必要が生じるという課題があった。【０００７】
この発明は上記に鑑みてなされたもので、図形を用いて記述されるプログラムを、タブレット端末を用いて容易に編集できるプログラム編集用プログラムを得ることを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、この発明にかかるプログラム編集用プログラムは、プログラム編集画面上で図形を用いて記述されるプログラムを編集するプログラム編集用プログラムにおいて、コンピュータをプログラム編集画面上に入力される座標情報、前記座標情報の軌跡の形状を含む入力ジェスチャ特性情報を取得する入力ジェスチャ特性情報取得手段と、入力ジェスチャ特性情報に基づいて、操作対象を特定し、前記操作対象に適用するコマンドも特定して、前記コマンドを実行し、前記プログラム編集画面に表示する処理実行手段と、して機能させ、前記処理実行手段は、前記操作対象の種類と、前記軌跡の形状と、実行するコマンドと、を対応付けたジェスチャ定義に基づいて、前記コマンドを特定し、特定した前記コマンドを実行し、前記コマンドを実行した結果を前記プログラム編集画面に表示する。
【発明の効果】
【０００９】
この発明によれば、図形を用いて記述されるプログラムのプログラム編集画面にユーザが指を当てたまま動かす入力操作から得られる入力ジェスチャ特性情報を取得し、入力ジェスチャ特性情報に基づいて、操作の対象を特定するとともに、その操作対象に適用するコマンドを特定して、そのコマンドを実行してプログラム編集画面に表示するようにしたので、タブレット端末にて、指をプログラム編集画面に当てたまま動かす入力操作を用いて、操作の対象（以下、操作対象という）の指定と、その操作対象に対して行うコマンドの指定と、を同時に行うことができ、図形を用いて記述されるプログラムの編集を容易に行うことができるという効果を有する。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施の形態１によるプログラム編集用プログラムの構成の一例を示すブロック図である。
【図２】図２は、ジェスチャ定義の一例を示す図である。
【図３】図３は、ジェスチャ定義の一例を示す図である。
【図４】図４は、実施の形態１によるプログラム編集方法の処理手順の一例を示すフローチャートである。
【図５】図５は、実施の形態１によるプログラム編集処理の手順の一例を示す図である。
【図６】図６は、実施の形態１によるプログラム編集処理の手順の一例を示す図である。
【図７】図７は、実施の形態２によるジェスチャ定義の一例を示す図である。
【図８】図８は、実施の形態２によるプログラム編集方法の手順の一例を示すフローチャートである。
【図９】図９は、実施の形態２によるプログラム編集の処理手順の一例を示す図である。
【図１０】図１０は、実施の形態２によるプログラム編集の処理手順の一例を示す図である。
【図１１】図１１は、実施の形態２による具体的なプログラム編集処理の手順の一例を示す図である。
【図１２】図１２は、実施の形態２による具体的なプログラム編集処理の手順の一例を示す図である。
【図１３】図１３は、実施の形態２による具体的なプログラム編集処理の手順の一例を示す図である。
【図１４】図１４は、実施の形態２による具体的なプログラム編集処理の手順の一例を示す図である。
【図１５】図１５は、実施の形態２による具体的なプログラム編集処理の手順の一例を示す図である。
【図１６】図１６は、実施の形態２による具体的なプログラム編集処理の手順の一例を示す図である。
【図１７】図１７は、実施の形態２による具体的なプログラム編集処理の手順の一例を示す図である。
【図１８】図１８は、実施の形態２による具体的なプログラム編集処理の手順の一例を示す図である。
【図１９】図１９は、実施の形態２による具体的なプログラム編集処理の手順の一例を示す図である。
【図２０】図２０は、実施の形態２による具体的なプログラム編集処理の手順の一例を示す図である。
【図２１】図２１は、実施の形態２による具体的なプログラム編集処理の手順の一例を示す図である。
【図２２】図２２は、実施の形態２による具体的なプログラム編集処理の手順の一例を示す図である。
【図２３】図２３は、実施の形態２による具体的なプログラム編集処理の手順の一例を示す図である。
【図２４】図２４は、実施の形態２による具体的なプログラム編集処理の手順の一例を示す図である。
【図２５】図２５は、実施の形態２による具体的なプログラム編集処理の手順の一例を示す図である。
【図２６】図２６は、実施の形態２による具体的なプログラム編集処理の手順の一例を示す図である。
【図２７】図２７は、実施の形態２による具体的なプログラム編集処理の手順の一例を示す図である。
【図２８】図２８は、実施の形態２による具体的なプログラム編集処理の手順の一例を示す図である。
【図２９】図２９は、実施の形態２による具体的なプログラム編集処理の手順の一例を示す図である。
【図３０】図３０は、一般的なエンジニアリングツールにおけるプログラム編集手順を模式的に示す図である。
【図３１】図３１は、実施の形態３による領域管理情報の概念を模式的に示す図である。
【図３２】図３２は、実施の形態３によるラダープログラムにおける文字入力領域の区分の一例を示す図である。
【図３３】図３３は、実施の形態３によるジェスチャ定義の一例を示す図である。
【図３４】図３４は、実施の形態３によるプログラム構成要素が何も配置されていないプログラム編集画面でのプログラム編集方法の処理手順の一例を示すフローチャートである。
【図３５】図３５は、実施の形態３によるプログラム編集処理の手順の一例を示す図である。
【図３６】図３６は、実施の形態３によるプログラム編集処理の手順の一例を示す図である。
【図３７】図３７は、実施の形態３によるプログラム構成要素が配置されている場合のプログラム編集画面でのプログラム編集方法の処理手順の一例を示すフローチャートである。
【図３８】図３８は、実施の形態３によるプログラム編集の処理手順の一例を示す図である。
【図３９】図３９は、実施の形態３によるプログラム編集の処理手順の一例を示す図である。
【図４０】図４０は、実施の形態３によるプログラム編集の処理手順の一例を示す図である。
【図４１】図４１は、実施の形態３によるプログラム編集の処理手順の一例を示す図である。
【図４２】図４２は、実施の形態３によるプログラム編集処理の手順の一例を示す図である。
【図４３】図４３は、実施の形態３によるプログラム編集処理の手順の一例を示す図である。
【図４４】図４４は、実施の形態３による軌跡を描く入力操作による文字入力時のガイド表示の一例を示す図である。
【図４５】図４５は、プログラム編集画面の一例を示す図である。
【図４６】図４６は、実施の形態４によるジェスチャ定義の一例を示す図である。
【図４７】図４７は、実施の形態５によるプログラムの編集処理の手順の一例を示す図である。
【図４８】図４８は、実施の形態６による具体的なプログラムの編集処理の手順の一例を示す図である。
【図４９】図４９は、実施の形態７によるプログラム構成要素の移動条件の一例を示す図である。
【図５０】図５０は、実施の形態７によるプログラム構成要素の移動方法の一例を示す図である。
【図５１】図５１は、実施の形態７によるプログラム構成要素の移動方法の一例を示す図である。
【図５２】図５２は、実施の形態７によるプログラム構成要素の移動方法の一例を示す図である。
【図５３】図５３は、実施の形態７によるプログラムの編集の処理手順の一例を示す図である。
【図５４】図５４は、実施の形態８によるプログラムの編集の処理手順の一例を示す図である。
【図５５】図５５は、実施の形態８によるプログラムの編集の処理手順の一例を示す図である。
【図５６】図５６は、実施の形態８によるプログラムの編集の処理手順の一例を示す図である。
【図５７】図５７は、実施の形態９によるプログラム編集用プログラムが行う処理の手順の一例を示すフローチャートである。
【図５８】図５８は、実施の形態９によるテストモード状態における処理の手順の一例を示す図である。
【図５９】図５９は、実施の形態９によるテストモード状態における処理の手順の一例を示す図である。
【図６０】図６０は、実施の形態１０によるヘルプ情報表示の処理手順の一例を示す図である。
【図６１】図６１は、実施の形態１１によるプログラム編集用プログラムの機能構成の一例を模式的に示すブロック図である。
【図６２】図６２は、実施の形態１１によるデバイス名入力処理の手順の一例を示す図である。
【図６３】図６３は、入力操作から入力ジェスチャ特性情報の座標情報を取得する方法の他の例を示す図である。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照して、この発明にかかるプログラム編集用プログラムの好適な実施の形態を詳細に説明する。なお、以下では、ラダープログラムを編集する場合を例に挙げて説明するが、これらの実施の形態によりこの発明が限定されるものではない。
【００１２】
実施の形態１．
図１は、実施の形態１によるプログラム編集用プログラムの構成の一例を示すブロック図である。プログラム編集用プログラム１０は、入力ジェスチャ特性情報取得手段１１と、処理実行手段１２と、を備える。
【００１３】
入力ジェスチャ特性情報取得手段１１は、指などの入力指示体を介してプログラム編集画面上に入力される座標情報、前記座標の軌跡、前記軌跡の向きから成る入力ジェスチャ特性情報を取得する。座標情報としては、プログラム編集画面に定義した座標系に基づいて得られる座標を用いることができる。
【００１４】
処理実行手段１２は、入力ジェスチャ特性情報に含まれる座標情報を、プログラム編集画面の構成要素の座標と照合して操作対象を特定するとともに、入力ジェスチャ特性情報に含まれる座標の軌跡とその軌跡の向きを、前記操作対象に関するジェスチャ定義に含まれる軌跡の形状と向きの情報と照合して前記操作対象に適用するコマンドも特定して、そのコマンドを実行し、プログラム編集画面に表示する。
【００１５】
プログラム編集画面の構成要素は少なくとも、ａ接点を表す図形、ｂ接点を表す図形、コイルを表す図形、図形と図形を接続する接続線などのプログラム構成要素、および、それ以外の領域を構成する下地要素からなる。下地要素としては、左母線の左側に配置される左側下地要素、右母線の右側に配置される右側下地要素、左母線と右母線の間に配置される図形配置可能下地要素がある。
【００１６】
ジェスチャ定義は、前記構成要素の種類と、軌跡の形状と向きの情報と、実行するコマンドを対応付けたものである。図２と図３は、ジェスチャ定義の一例を示す図である。ここでは、タイル状の構成要素をプログラム編集画面に敷き詰めて、タイルの種類で軌跡の経過を把握する方法について例示している。図２（ａ）は、あるタイル状のマス目を中心として、水平方向または垂直方向に２マス用いて定義する場合のタイル状のマス目の配置関係を示す図であり、図２（ｂ）は、図２（ａ）の場合のジェスチャ定義の一例を示す図である。また、図３（ａ）は、あるタイル状のマス目を中心として、水平方向、垂直方向または斜め方向に直線状の軌跡を２マスを用いて定義する場合のタイル状のマス目の配置関係を示す図であり、図３（ｂ）は、図３（ａ）の場合のジェスチャ定義の一例を示す図である。
【００１７】
この例では、ジェスチャ定義は、入力操作の軌跡の形状とその向きと、構成要素と、その構成要素に適用するコマンドと、を対応付けたものである。ジェスチャの軌跡は、上記したようにプログラム編集画面に定義された座標系に基づいて得られる座標の軌跡となっている。また、この軌跡の描画に対して、ジェスチャ描画領域に描かれるプログラム構成要素が定義されている。軌跡の形状の定義は、軌跡を判別できる範囲で最小限の点で表現してよい。すなわち、たとえば、軌跡の形状として、直線のみを用いる場合は、２つのマス目を用いて定義できる。
【００１８】
これに直線以外の形状を加える場合は、３つ以上のマス目を用いて定義できる。２つのマス目で定義する場合は、軌跡は始点から終点までの向きで判別され、２つ以上のマス目を用いて定義する場合は、軌跡の形状は、始点から終点に至るまでに経由したマス目の座標で判別され、軌跡の向きは、始点から終点に至るまでに経由したマス目の順序で判別される。
【００１９】
ジェスチャ定義のマス目は、物理的な寸法を用いて定義してもよいが、物理的な特定の寸法を持たない論理的な位置関係のみを定義してもよい。図２、図３に示したジェスチャ定義は、論理的な位置関係を定義した場合を表している。
【００２０】
なお、ここでは矩形のマス目で説明したが、たとえば正六角形など、ほかの形状のマス目を用いてもよい。
【００２１】
つぎに、プログラム編集方法について説明する。図４は、実施の形態１によるプログラム編集方法の処理手順の一例を示すフローチャートである。まず、入力ジェスチャ特性情報取得手段１１は、ユーザによってプログラム編集画面に入力される入力ジェスチャ特性情報を取得する（ステップＳ１１）。入力ジェスチャ特性情報は、入力指示体の接触位置である座標情報、座標の軌跡、および軌跡の向きからなる。
【００２２】
ついで、処理実行手段１２は、入力ジェスチャ特性情報に格納されている座標情報に基づいて操作対象を特定し（ステップＳ１２）、入力ジェスチャ特性情報に対応する軌跡の形状とその向きがその操作対象のジェスチャ定義に存在するかを判定する（ステップＳ１２）。入力ジェスチャ特性情報に対応する軌跡の形状とその向きがジェスチャ定義にある場合（ステップＳ１３でＹｅｓの場合）には、処理実行手段１２は、ジェスチャ定義に定義されているコマンドを実行し（ステップＳ１４）、プログラム編集画面の情報を更新する（ステップＳ１５）。以上によって、プログラムの編集処理が終了する。
【００２３】
また、ステップＳ１３で入力ジェスチャ特性情報に対応する軌跡がジェスチャ定義にない場合（ステップＳ１３でＮｏの場合）には、コマンドの実行は不要と判定して（ステップＳ１６）、処理が終了する。
【００２４】
なお、処理実行手段１２は、入力指示体を用いた入力操作が完了する前から処理を開始してもよい。また、そのとき、入力操作が完了するまでコマンドの実行を保留するとともに、入力操作が完了したときに実行される予定のコマンドをプログラム編集画面に表示するように構成してもよい。また、このとき、入力操作が完了したときにコマンドが適用される操作対象を特定できる情報をプログラム編集画面に表示するように構成してもよい。
【００２５】
以下に、プログラム作成処理の具体例について説明する。図５と図６は、実施の形態１によるプログラム作成処理の手順の一例を示す図である。図５は、左母線１０１と、右母線１０２と、これらの母線間を結ぶ接続線１１１と、を配置する入力操作を示している。まず、プログラム構成要素が何も配置されていないプログラム編集画面上に、図５(ａ)に示されるように、ユーザがプログラム編集画面に入力指示体の先端を当て（Ｆ１）、先端を画面に当てたまま画面の右方向に入力指示体を移動させ（Ｆ２）、ある点で先端を画面から離す（Ｆ３）。図では、画面に触れた先端の軌跡が点線の矢印によって示されている。
【００２６】
入力ジェスチャ特性情報取得手段１１は入力操作Ｊから入力ジェスチャ特性情報を取得し、処理実行手段１２はこの入力ジェスチャ特性情報に対応する操作対象およびコマンドをジェスチャ定義から取得する。
【００２７】
すなわち、はじめに、入力ジェスチャ特性情報取得手段１１は、入力操作ＪのＦ１，Ｆ２，Ｆ３の座標情報および座標の軌跡、並びにＦ１に始まってＦ３で終わる軌跡の向きを取得する。
【００２８】
次に、処理実行手段１２は、入力ジェスチャ特性情報取得手段１１が取得した入力ジェスチャ特性情報に含まれる座標情報に基づいて、操作対象を特定する。この例では、図５（ａ）は母線を表示する前の状態を表しており、プログラム編集画面は全ての領域が図形配置可能下地要素のみで構成されているので、操作対象は図形配置可能下地要素と特定される。
【００２９】
次に、処理実行手段１２は、特定された操作対象、すなわちこの例では図形配置可能下地要素に関するジェスチャ定義に含まれる軌跡の形状とその向きと、入力ジェスチャ特性情報に含まれる軌跡の形状とその向きを照合し、図形配置可能下地要素に適用するコマンドを特定する。すなわちこの例では、入力ジェスチャ特性情報に含まれる軌跡が水平方向の直線であって、その軌跡の向きは右向きであるため、水平方向の接続線を追加するコマンドが実行される。このとき、母線はまだ表示される前であるため、プログラム編集画面に、左母線、右母線および左母線と右母線をつなぐ接続線を表示して、処理を終了する。
【００３０】
その結果、図５（ｂ）に示されるように、プログラム編集画面の入力操作を行った付近には、左母線１０１と、右母線１０２と、これらを結ぶ接続線１１１と、が描かれる。
【００３１】
図６は、左母線１０１と、右母線１０２と、ａ接点記号１２１およびコイル記号１３１を有する２つの母線１０１，１０２間を結ぶ接続線１１１と、を配置するジェスチャ動作を示している。図６（ａ）に示されるように、プログラム編集画面に入力指示体の先端を当て（Ｆ１）、先端をプログラム編集画面に当てたままプログラム編集画面の下方向に指を移動させ（Ｆ２）、ある点で先端をプログラム編集画面から離す（Ｆ３）。入力ジェスチャ特性情報取得手段１１は入力操作Ｊから入力ジェスチャ特性情報を取得し、処理実行手段１２はこの入力ジェスチャ特性情報に対応する操作対象およびコマンドをジェスチャ定義から取得する。その結果、図６（ｂ）に示されるように、ジェスチャ描画領域付近には、左母線１０１と、右母線１０２と、これらを結ぶ接続線１１１が描かれるとともに、接続線１１１上の左側の領域にａ接点記号１２１が配置され、接続線１１１上の右側の領域にコイル記号１３１が配置される。これは、ラダープログラムではよく使われる基本的なプログラムであり、このようによく使われるプログラムを生成するコマンドを、ジェスチャ定義を用いて入力操作に関連付けることで、プログラムの編集工程数を減らすことができる。
【００３２】
これらは一例であり、ジェスチャと、プログラム構成要素との組み合わせは任意に設定することができる。
【００３３】
たとえば、図５では、入力操作Ｊに図５（ｂ）に示した構成要素を追加するコマンドを組み合わせたが、図５（ｂ）の代わりに図６（ｂ）に示した構成要素を追加するコマンドを組み合わせてもよい。
【００３４】
なお、以上では、入力ジェスチャ特性情報に入力される座標情報は、入力指示体がプログラム編集画面に接触している間入力されるという前提で説明したが、タブレット端末のプログラム編集画面が、入力指示体がプログラム編集画面に接触している間に加えて、入力指示体がプログラム編集画面に近接している間も入力指示体を検出するように構成されている場合は、入力ジェスチャ特性情報には、入力指示体とプログラム編集画面が接触しているか、接触せずに近接しているか、またはまったく離れているかといった近接状態情報を加えて、前記近接状態情報に基づいて、入力指示体とプログラム編集画面が接触している場合と、接触していないが近接している場合を区別して、実行するコマンドを区別できるようにしてもよい。
【００３５】
また、図４のステップＳ１３でＮｏの場合に、近傍の別の操作対象について改めてステップＳ１２およびステップＳ１３を行ってもよい。
【００３６】
さらに、入力終了からコマンドが実行されるまでの時間を短縮するために、入力ジェスチャ特性情報取得手段１１が行う処理と、処理実行手段１２が行う処理を並行して行ってもよい。つまり、入力ジェスチャ特性情報取得手段１１が入力ジェスチャ特性情報を取得している最中、すなわち軌跡の入力が終了する前に、処理実行手段１２が操作対象およびコマンドの特定を開始するように構成してもよい。
【００３７】
また、ジェスチャ検出中に、図５（ｃ）に示されるように、入力指示体とプログラム編集画面の接触位置の軌跡を表示するようにしてもよい。軌跡の表示の仕方として、たとえば所定の時間ごとに検出した位置を示すマークＴを配置することができる。こうすることで、入力がどのように受け付けられているかを確認しやすくなるという効果を奏する。
【００３８】
実施の形態１では、何も配置されていないプログラム編集画面にユーザが入力指示体で入力操作を行うことで、その入力操作に対応するプログラム構成要素を、プログラム編集画面に配置するようにした。
【００３９】
これによって、操作対象の指定とその操作対象に対して行なうコマンドの指定を同時に行なうことができるようになるため、タブレット端末において、図形を用いて記述されるプログラムをより少ない入力操作労力で編集できるという効果をする。さらに、操作対象に対して行なう処理を一覧から選択する過程が不要となるので、プログラム編集画面に操作対象に対して行なうコマンドを指定するための選択肢の一覧を表示する必要がなくなるため、プログラム編集画面を有効に利用できるという効果を奏する。
【００４０】
また、ジェスチャ定義に、軌跡として、プログラムに加えたい変化と相似している図形を定義することで、ユーザにとって、入力操作に用いる軌跡の記憶が容易になり、より少ない期間で操作方法を習得できるという効果も有する。
【００４１】
実施の形態２．
実施の形態１では、何も配置されていないプログラム編集画面に入力指示体にて入力操作を行ってラダープログラムを編集する場合について説明した。ラダープログラムでは、一般的に左母線と右母線との間に記号を配置し、左母線、記号および右母線の間を接続線で結ぶことによって、プログラミングを行う。そのため、実施の形態２では、プログラム編集画面に左母線と右母線とが配置された状態で、入力指示体を用いる入力操作によってラダープログラムを編集する場合について説明する。
【００４２】
実施の形態２のプログラム編集用プログラムでは、ジェスチャ定義は、軌跡が通過した構成要素に関する情報をさらに含み、処理実行手段１２は、軌跡が通過した構成要素を判定してコマンドを特定する機能をさらに有する。
【００４３】
図７は、実施の形態２によるジェスチャ定義の一例を示す図である。この図７は、図３（ａ）のように、あるタイル状のマス目を中心として、水平方向、垂直方向または斜め方向に２マス用いて定義する場合のジェスチャ定義を示している。この図に示されるように、ジェスチャ定義では、プログラム構成要素に対して、入力操作の軌跡と、その軌跡が通過する構成要素と、が対応付けられている。これによって、同一の軌跡を複数のプログラム構成要素に対応付けることが可能になる。
【００４４】
図８は、実施の形態２によるプログラム編集方法の手順の一例を示すフローチャートである。まず、入力ジェスチャ特性情報取得手段１１は、プログラム編集画面に入力される入力ジェスチャ特性情報を取得する（ステップＳ３１）。入力ジェスチャ特性情報は、入力指示体の接触位置である座標情報、座標の軌跡、および軌跡の向きからなる。
【００４５】
ついで、処理実行手段１２は、入力ジェスチャ特性情報に対応する操作対象を特定する（ステップＳ３２）。これは、たとえば、入力ジェスチャ特性情報に格納されている座標情報と、処理実行手段１２が構成要素をプログラム編集画面に表示する際に構成要素の配置先として指定した座標情報を比較することによって取得することができる。
【００４６】
なお、ここでは、入力操作の軌跡の中央付近に存在する構成要素を操作対象として特定する例を示すが、ほかの特定方法を用いてもよい。たとえば、入力操作の軌跡の始点に在る構成要素を操作対象として特定するように構成してもよい。あるいは、入力操作の軌跡の終点に在る構成要素を操作対象として特定するように構成してもよい。あるいは、入力操作の軌跡の重心に在る構成要素を操作対象として特定してもよい。
【００４７】
操作対象が下地要素の場合には、処理実行手段１２は、入力ジェスチャ特性情報に格納されている軌跡の形状とその向きがその下地要素に関するジェスチャ定義に存在するかを判定する（ステップＳ３３）。入力ジェスチャ特性情報に格納されている軌跡の形状とその向きに対応するコマンドがジェスチャ定義に存在する場合（ステップＳ３３でＹｅｓの場合）には、処理実行手段１２は、そのコマンドを実行し（ステップＳ３４）、プログラム構成要素をプログラム編集画面に表示する（ステップＳ３５）。以上によって、プログラムの編集処理が終了する。
【００４８】
すなわち、ジェスチャが左母線と右母線を横切るものであれば、ステップＳ３２にて下地要素が操作対象であると判定し、ジェスチャ描画領域内の左母線と右母線の間に、ジェスチャ定義で定義されるプログラム構成要素が配置される。また、ジェスチャが接続線を跨ぐものである場合には、ステップＳ３３にてプログラム構成要素の一つである接続線が操作対象であると判定し、ジェスチャ描画領域の接続線が、ジェスチャ定義のコマンドに従って別のプログラム構成要素によって置換される。
【００４９】
なお、入力操作が描く軌跡が、ａ接点などの回路記号のほかに、その記号に接続される接続線の一部を横断する場合もある。この場合には、回路記号と接続線の２つが操作対象の候補に含まれることになるが、接続線を除く記号を優先して取得するような設定を設けてもよい。その後、ステップＳ３５のプログラム構成要素をプログラム編集画面に表示する処理を行う。
【００５０】
ステップＳ３３で入力ジェスチャ特性情報に対応する軌跡の形状とその向きに対応するコマンドが操作対象に関するジェスチャ定義にない場合（ステップＳ３３でＮｏの場合）には、該当するコマンドが無いと判断し（ステップＳ３６）、処理が終了する。なお、認識エラーとなったときに、エラーメッセージを表示してもよいし、エラーメッセージを表示しないように構成してもよい。
【００５１】
以下に、（１）プログラム構成要素が配置されていないプログラム編集画面に入力操作を行う場合、（２）既にプログラム構成要素が配置されたプログラム編集画面に入力操作を行う場合、についてプログラム編集処理の具体例を説明する。
【００５２】
（１）プログラム構成要素が配置されていないプログラム編集画面に入力操作を行う場合
図９〜図１０は、実施の形態２によるプログラム編集の処理手順の一例を示す図である。図９（ａ）のように、左母線１０１と右母線１０２のみが配置されたプログラム編集画面２００Ａに、図９（ｂ）のように、ユーザが入力指示体で、左母線１０１の左側を始点とし、右方向に移動しながら右母線１０２の右側の領域で終点となるように（領域Ｌ→領域Ｍ→領域Ｒと画面をなぞるように）入力操作Ｊを入力する。
【００５３】
すなわち、はじめに、入力ジェスチャ特性情報取得手段１１は、入力操作ＪのＦ１，Ｆ２，Ｆ３の座標情報および座標の軌跡、並びにＦ１に始まってＦ３で終わる軌跡の向きを取得する。
【００５４】
ついで、処理実行手段１２は、入力ジェスチャ特性情報取得手段１１が取得した入力ジェスチャ特性情報に含まれる座標情報に基づいて、操作対象を特定する。この例では、操作は左側下地要素（Ｌ）を始点として（Ｆ１）、図形配置可能下地要素（Ｍ）を経由して（Ｆ２）、右側下地要素（Ｒ）で入力を終了している（Ｆ３）ことから、操作対象は図形配置可能下地要素と特定される。
【００５５】
その後、処理実行手段１２は、特定された操作対象、すなわちこの例では図形配置可能下地要素に関するジェスチャ定義に含まれる軌跡の形状とその向きと、入力ジェスチャ特性情報に含まれる入力操作の軌跡の形状とその向きを照合し、図形配置可能下地要素に適用するコマンドを特定する。すなわちこの例では、入力ジェスチャ特性情報に含まれる軌跡が水平方向の直線であって、その軌跡の向きは右向きであるため、水平方向の接続線を追加するコマンドが実行される。
【００５６】
これによって、図９（ｃ）のように、プログラム編集画面２００には、左母線１０１と右母線１０２との間を接続する接続線１１１が配置される。
【００５７】
また、図９（ｂ）に示される入力操作Ｊを入力することによって、図１０に示されるように、左母線１０１と右母線１０２との間を接続する接続線１１１と、接続線１１１の左母線１０１側にａ接点記号１２１と、接続線１１１の右母線１０２側にコイル記号１３１と、が配置されるようにしてもよい。
【００５８】
これは、ラダープログラムではよく使われる基本的なプログラムであり、このようによく使われるプログラムを生成するコマンドを、ジェスチャ定義を用いて入力操作に関連付けることで、接続線１１１のみを配置する場合に比してプログラムの編集工程数をさらに減らすことができる。
【００５９】
（２）既にプログラム構成要素が配置されたプログラム編集画面に入力操作を行う場合
図１１〜図２９は、実施の形態２による具体的なプログラム編集処理の手順の一例を示す図である。
【００６０】
（２−１）接続線に対して構成要素を配置する例
図１１〜図１５は、接続線を跨ぐようにジェスチャを描く場合の例を示している。図１１では、（ａ）のように接続線１１１の上側の領域から下側の領域に向かって入力操作Ｊを行うと、（ｂ）のようにその位置に接続線の代わりにａ接点記号１２１が配置される場合が示されている。また、図１２では、（ａ）のように接続線１１１の下側の領域から上側の領域に向かって入力操作Ｊを行うと、（ｂ）のようにその位置に接続線の代わりにｂ接点記号１２２が配置される場合が示されている。このように軌跡の形状が同一の入力操作でしかも操作対象が同じでも、軌跡の向きが異なれば異なるコマンドを実行し、その結果、異なるプログラム構成要素に置き換える編集操作を行うことが可能になる。
【００６１】
図１３では、（ａ）のように図形配置可能下地要素中の接続線１１１の上側を始点とし、下側の領域に向かって半円弧を描きながら、接続線１１１の下側が終点となるように入力操作Ｊを行う。
【００６２】
すなわち、はじめに、入力ジェスチャ特性情報取得手段１１は、入力操作ＪのＦ１，Ｆ２，Ｆ３の座標情報および座標の軌跡、並びにＦ１に始まってＦ３で終わる軌跡の向きを取得する。
【００６３】
ついで、処理実行手段１２は、入力ジェスチャ特性情報取得手段１１が取得した入力ジェスチャ特性情報に含まれる座標情報に基づいて、操作対象を特定する。この例では、接続線１１１の上側の領域を始点として（Ｆ１）、接続線１１１を経由して（Ｆ２）、接続線１１１の下側の領域で入力を終了している（Ｆ３）ことから、操作対象はプログラム構成要素である接続線１１１と特定される。
【００６４】
その後、処理実行手段１２は、特定された操作対象、すなわちこの例では接続線１１１に関するジェスチャ定義に含まれる軌跡の形状とその向きと、入力ジェスチャ特性情報に含まれる軌跡の形状とその向きを照合し、接続線１１１に適用するコマンドを特定する。すなわちこの例では、入力ジェスチャ特性情報に含まれる軌跡が上下方向の半円弧状の曲線であって、その軌跡の向きは下向きであるため、コイル記号１３１を追加するコマンドが実行される。
【００６５】
これによって、図１３（ｂ）のように、入力操作Ｊが行われた位置にコイル記号１３１が配置される。
【００６６】
また、図１４では、（ａ）のように接続線１１１の右上側の領域で接続線１１１の上側を始点とし、接続線１１１に平行に移動した後、接続線１１１の下側の領域に向かって約９０度向きを変えて接続線１１１を跨いだ後、接続線１１１の下側が終点となるように入力操作Ｊを行う。
【００６７】
すなわち、はじめに、入力ジェスチャ特性情報取得手段１１は、入力操作ＪのＦ１，Ｆ２，Ｆ３の座標情報および座標の軌跡、並びにＦ１に始まってＦ３で終わる軌跡の向きを取得する。
【００６８】
ついで、処理実行手段１２は、入力ジェスチャ特性情報取得手段１１が取得した入力ジェスチャ特性情報に含まれる座標情報に基づいて、操作対象を特定する。この例では、接続線１１１の上側の領域を始点として（Ｆ１）、接続線１１１を経由して（Ｆ２）、接続線１１１の下側の領域で入力を終了している（Ｆ３）ことから、操作対象はプログラム構成要素である接続線１１１と特定される。
【００６９】
その後、処理実行手段１２は、特定された操作対象、すなわちこの例では接続線１１１に関するジェスチャ定義に含まれる軌跡の形状とその向きと、入力ジェスチャ特性情報に含まれる軌跡の形状とその向きと座標情報を照合し、接続線１１１に適用するコマンドを特定する。すなわちこの例では、入力ジェスチャ特性情報に含まれる軌跡が、接続線１１１に平行方向の直線と、接続線１１１に垂直方向の直線とを組み合わせたものであるため、命令行１３２を追加するコマンドが実行される。
【００７０】
これによって、図１４（ｂ）のように、入力操作Ｊが行われた位置に命令行１３２が配置される。配置された時点では、この命令行１３２には命令が何も入力されていない状態にある。
【００７１】
上述した例では、入力指示体を１本使用する場合を示したが、２本以上同時にプログラム編集画面に触れて行う入力操作に対しても、コマンドを割り当ててもよい。図１５では、（ａ）のように、ａ接点記号１２１ａとコイル記号１３１との間で、２本の入力指示体を接続線１１１の上側を始点とし、下側の領域に向かって直線的に移動した後、接続線１１１の下側が終点となるように入力操作Ｊを行う。
【００７２】
すなわち、はじめに、入力ジェスチャ特性情報取得手段１１は、入力操作ＪのＦ１，Ｆ２，Ｆ３の座標情報および座標の軌跡、並びにＦ１に始まってＦ３で終わる軌跡の向きを取得する。
【００７３】
ついで、処理実行手段１２は、入力ジェスチャ特性情報取得手段１１が取得した入力ジェスチャ特性情報に含まれる座標情報に基づいて、操作対象を特定する。この例では、入力操作は、接続線１１１の上側の領域を始点として（Ｆ１）、接続線１１１を経由して（Ｆ２）、接続線１１１の下側の領域で入力を終了している（Ｆ３）ことから、操作対象はプログラム構成要素である接続線１１１と特定される。
【００７４】
その後、処理実行手段１２は、特定された操作対象、すなわちこの例では接続線１１１に関するジェスチャ定義に含まれる軌跡の形状とその向きと、入力ジェスチャ特性情報に含まれる軌跡の形状とその向きを照合し、接続線１１１に適用するコマンドを特定する。すなわちこの例では、入力ジェスチャ特性情報に含まれる軌跡が２本の上下方向の直線であって、その軌跡の向きは下向きであるため、ａ接点記号１２１ｂを追加するコマンドが実行される。
【００７５】
これによって、図１５（ｂ）のように、入力操作Ｊが行われた位置にａ接点記号１２１ｂが配置される。
【００７６】
以上、図１１〜図１５にて説明したように、接続線１１１を横切る入力操作Ｊを行なうことで、接続線に関するジェスチャ定義に基づいて入力ジェスチャ特性情報に対応するコマンドが実行されて、別のプログラム構成要素に置き換えられる。
【００７７】
すなわち、操作対象の指定とその操作対象に対して行なうコマンドの指定を同時に行なうことができるようになるため、タブレット端末において、図形を用いて記述されるプログラムを、より少ない労力で編集できるという効果を奏する。さらに、操作対象に対して行なう処理を一覧から選択する過程が不要となるので、プログラム編集画面に操作対象に対して行なうコマンドを指定するための選択肢の一覧を表示する必要がなくなるため、プログラム編集画面を有効に利用できるという効果を奏する。
【００７８】
（２−２）記号を変更する例
図１６では、（ａ）のようにａ接点記号１２１の右上の領域から左下の領域に向かって入力操作Ｊを行う。
【００７９】
すなわち、はじめに、入力ジェスチャ特性情報取得手段１１は、入力操作ＪのＦ１，Ｆ２，Ｆ３の座標情報および座標の軌跡、並びにＦ１に始まってＦ３で終わる軌跡の向きを取得する。
【００８０】
ついで、処理実行手段１２は、入力ジェスチャ特性情報取得手段１１が取得した入力ジェスチャ特性情報に含まれる座標情報に基づいて、操作対象を特定する。この例では、入力操作は、接続線１１１の上側の領域を始点として（Ｆ１）、ａ接点記号１２１を経由して（Ｆ２）、接続線１１１の下側の領域で入力を終了している（Ｆ３）ことから、操作対象はプログラム構成要素であるａ接点記号１２１と特定される。
【００８１】
その後、処理実行手段１２は、特定された操作対象、すなわちこの例ではａ接点記号１２１に関するジェスチャ定義に含まれる軌跡の形状とその向きと、入力ジェスチャ特性情報に含まれる軌跡の形状とその向きを照合し、ａ接点記号１２１に適用するコマンドを特定する。すなわちこの例では、入力ジェスチャ特性情報に含まれる軌跡が斜め方向の直線であって、その軌跡の向きは左下向きであるため、ａ接点記号１２１をｂ接点記号１２２に置き換えるコマンドが実行される。
【００８２】
これによって、図１６（ｂ）のように、入力操作Ｊが行われた位置にｂ接点記号１２２が配置される。
【００８３】
図１７は、図１６の場合と逆である。すなわち（ａ）のようにｂ接点記号１２２の右上の領域から左下の領域に向かって入力操作Ｊを行うと、（ｂ）のようにａ接点記号１２１が配置される。この処理の詳細は、図１６の場合と略同様であるので、その説明を省略する。
【００８４】
また、図１８では、（ａ）のようにａ接点記号１２１の上側の領域から下側の領域に向かって入力操作Ｊを行うと、（ｂ）のように立ち下がりａ接点記号１２３が配置される。この処理の詳細は、図１６の場合と略同様であるので、その説明を省略する。
【００８５】
以上、図１６〜図１８にて説明したように、プログラム構成要素を横切る入力操作Ｊを行なうことによって、プログラム構成要素に関するジェスチャ定義に基づいて入力ジェスチャ特性情報に対応するコマンドが実行されて、別のプログラム構成要素に置き換えられる。
【００８６】
すなわち、操作対象の指定とその操作対象に対して行なうコマンドの指定を同時に行なうことができるようになるため、タブレット端末において、図形を用いて記述されるプログラムを、より少ない労力で編集できるという効果を奏する。さらに、操作対象に対して行なう処理を一覧から選択する過程が不要となるので、プログラム編集画面に操作対象に対して行なうコマンドを指定するための選択肢の一覧を表示する必要がなくなるため、プログラム編集画面を有効に利用できるという効果を奏する。
【００８７】
（２−３）並列回路を作成する例
図１９では、（ａ）のように、領域Ｌを始点として（Ｆ１）、領域Ｍに向かって水平方向に所定の距離を移動した後、上に向かって約９０度方向転換し、接続線１１１を経由して（Ｆ２）、接続線１１１の上側の領域まで移動させる（Ｆ３）ように入力操作Ｊを行う。
【００８８】
すなわち、はじめに、入力ジェスチャ特性情報取得手段１１は、入力操作ＪのＦ１，Ｆ２，Ｆ３の座標情報および座標の軌跡、並びにＦ１に始まってＦ３で終わる軌跡の向きを取得する。
【００８９】
ついで、処理実行手段１２は、入力ジェスチャ特性情報取得手段１１が取得した入力ジェスチャ特性情報に含まれる座標情報に基づいて、操作対象を特定する。この例では、入力操作は、接続線１１１の下側の領域を始点として（Ｆ１）、左母線１０１と図形配置可能下地要素内の接続線１１１を経由して（Ｆ２）、接続線１１１の上側の領域で入力を終了している（Ｆ３）ことから、操作対象は図形配置可能下地要素と特定される。
【００９０】
その後、処理実行手段１２は、特定された操作対象、すなわちこの例では図形配置可能下地要素に関するジェスチャ定義に含まれる軌跡の形状とその向きと、入力ジェスチャ特性情報に含まれる軌跡の形状とその向きを照合し、図形配置可能下地要素に適用するコマンドを特定する。すなわちこの例では、入力ジェスチャ特性情報に含まれる水平な直線と垂直な直線の組み合わせであって、その軌跡の向きは左から右方向に向かい、途中から上向きに変わるものであり、その軌跡は接続線１１１を横切る。その結果、（ｂ）のように入力操作を行った位置にａ接点記号１２１ｂ、左母線１０１とａ接点記号１２１ｂを結ぶ接続線１１２ａ、およびａ接点記号１２１ｂと接続線１１１を結ぶ接続線１１２ｂを有する並列回路が配置される。
【００９１】
なお、（ｃ）に示されるように、接続線１１１の上側の領域から下側の領域に向かって所定の距離を移動した後、領域Ｌに向かって約９０度方向転換し、左母線１０１の左側の領域Ｌまで移動させる入力操作Ｊに対応して、（ｂ）の並列回路が配置されるようにしてもよい。図１９はａ接点記号の並列回路であったが、同様にして図２０に示されるようにコイル記号１３１ａ，１３１ｂの並列回路を配置することもできる。
【００９２】
図１９と図２０では、左母線１０１または右母線１０２に接続する並列回路を作成する例を示したが、接続線１１１の途中で分岐するような並列回路とすることも可能である。図２１では、（ａ）のように接続線１１１に左から２つのａ接点記号１２１ａ，１２１ｂと１つのコイル記号１３１が配置されている。このうち、ａ接点記号１２１ａ、１２１ｂの間に在る接続線１１１の上側の領域を始点として、ａ接点記号１２１ｂを囲むようにＵ字型の入力操作Ｊを行う。その結果、（ｂ）のように、入力操作を行った位置にａ接点記号１２１ｃが接続線１１１から分岐されて、ａ接点記号１２１ｂに並列して配置される。この処理の詳細は、図１９の場合と略同様であるので、その説明を省略する。
【００９３】
以上、図１９と図２０にて説明したように、ラダープログラムの追加先をなぞる入力操作Ｊを行なうことによって、下地要素に関するジェスチャ定義に基づいて入力ジェスチャ特性情報に対応するコマンドが実行されて、下地要素が、プログラム構成要素と接続線からなるラダープログラムに置き換えられる。
【００９４】
すなわち、操作対象の指定とその操作対象に対して行なうコマンドの指定を同時に行なうことができるようになるため、タブレット端末において、図形を用いて記述されるプログラムを、より少ない労力で編集できるという効果を奏する。さらに、操作対象に対して行なう処理を一覧から選択する過程が不要となるので、プログラム編集画面に操作対象に対して行なうコマンドを指定するための選択肢の一覧を表示する必要がなくなるため、プログラム編集画面を有効に利用できるという効果を奏する。
【００９５】
（２−４）記号を切り取り・削除する例
図２２では、（ａ）のように入力指示体をａ接点記号１２１の左上側から右下側に向かって移動させ、ａ接点記号１２１の右下側で水平方向に左方に向かって移動させた後、ａ接点記号１２１の左下側から右上側に向かって移動させるように入力操作Ｊを行う。
【００９６】
すなわち、はじめに、入力ジェスチャ特性情報取得手段１１は、入力操作ＪのＦ１，Ｆ２，Ｆ３の座標情報および座標の軌跡、並びにＦ１に始まってＦ３で終わる軌跡の向きを取得する。
【００９７】
ついで、処理実行手段１２は、入力ジェスチャ特性情報取得手段１１が取得した入力ジェスチャ特性情報に含まれる座標情報に基づいて、操作対象を特定する。この例では、操作は、ａ接点記号１２１の左上側の領域を始点として（Ｆ１）、右下側に向かって移動させ、ａ接点記号１２１の右下側で水平方向に左方に向かって移動させた後、ａ接点記号１２１の左下側から右上側に向かって移動させ（Ｆ２）、ａ接点記号１２１の右上側の領域で入力を終了している（Ｆ３）ことから、操作対象はプログラム構成要素であるａ接点記号１２１と特定される。
【００９８】
その後、処理実行手段１２は、特定された操作対象、すなわちこの例ではａ接点記号１２１に関するジェスチャ定義に含まれる軌跡の形状とその向きと、入力ジェスチャ特性情報に含まれる軌跡の形状とその向きを照合し、ａ接点記号１２１に適用するコマンドを特定する。すなわちこの例では、ａ接点記号１２１を切り取って接続線に置き換えるコマンドが実行される。
【００９９】
これによって、（ｂ）に示されるように、入力操作Ｊの軌跡が横切るａ接点記号１２１が切り取られ、その領域に接続線１１１が配置される。
【０１００】
なお、切り取られたａ接点記号１２１は、他の領域に貼り付けることを可能としてもよい。また、この場合のジェスチャ定義は、全てのプログラム構成要素を対象として定義してもよい。
【０１０１】
図２３も図２２と同様であるが、図２２では入力操作Ｊの軌跡が横切るプログラム構成要素が切り取られる処理であったのに対して、図２３では入力操作Ｊの軌跡が横切るプログラム構成要素（この場合にはａ接点記号１２１）が削除されて、接続線に置き換わる場合を示している。この処理の詳細は、図２２の場合と略同様であるので、その説明を省略する。
【０１０２】
なお、削除されたａ接点記号１２１は、他の領域に貼り付けるとことを不能としてもよい。また、この場合のジェスチャ定義は、全てのプログラム構成要素を対象として定義してもよい。
【０１０３】
図２４では、並列回路を削除する場合を示している。（ａ）に示されるように、並列回路の接続線１１２ａ，１１２ｂとａ接点記号１２１ｂをなぞるように、入力指示体を領域Ｌ中の接続線１１１よりも下側の領域から領域Ｍに向かって水平方向に移動させた後、上側に向かって約９０度方向転換し、接続線１１１の上側の領域まで移動させるように入力操作Ｊを行う。その結果、（ｂ）のように入力操作を行った位置の並列回路が削除される。この処理の詳細は、図１９の場合と略同様であるので、その説明を省略する。
【０１０４】
以上、図２２から図２４にて説明したように、削除したいプログラム構成要素をなぞる入力操作Ｊを行なうことによって、そのプログラム構成要素に関するジェスチャ定義に基づいて入力ジェスチャ特性情報に対応するコマンドが実行されて、プログラム構成要素が、接続線ないし下地要素に置き換えられる。
【０１０５】
すなわち、操作対象の指定とその操作対象に対して行なうコマンドの指定を同時に行なうことができるようになるため、タブレット端末において、図形を用いて記述されるプログラムを、より少ない労力で編集できるという効果を奏する。さらに、操作対象に対して行なう処理を一覧から選択する過程が不要となるので、プログラム編集画面に操作対象に対して行なうコマンドを指定するための選択肢の一覧を表示する必要がなくなるため、プログラム編集画面を有効に利用できるという効果を奏する。
【０１０６】
（２−５）その他の例
（２−５−１）２つ以上の構成要素とジェスチャとを組み合わせた配置処理
上記した例では、プログラム編集画面の構成要素と入力操作の組み合わせで、その構成要素に適用するコマンドを定義していた。しかし、これに限られず、たとえば入力操作の対象の近傍に存在するプログラム構成要素の有無によって実行されるコマンドを区別できように、ジェスチャ定義を構成してもよい。
【０１０７】
図２５では、プログラム構成要素の一つである命令行の左側の近傍で接続線を跨ぐように入力操作を行って、接続線を別のプログラム構成要素に変更する場合を示している。すなわち、（ａ）のように、命令行１３２の左側に接続線１１１の上側の領域から下側の領域に向かう入力操作Ｊを行う。
【０１０８】
すなわち、はじめに、入力ジェスチャ特性情報取得手段１１は、入力操作ＪのＦ１，Ｆ２，Ｆ３の座標情報および座標の軌跡、並びにＦ１に始まってＦ３で終わる軌跡の向きを取得する。
【０１０９】
ついで、処理実行手段１２は、入力ジェスチャ特性情報取得手段１１が取得した入力ジェスチャ特性情報に含まれる座標情報に基づいて、操作対象を特定する。この例では、入力操作の軌跡が、命令行１３２の左側の接続線１１１の上側の領域を始点として（Ｆ１）、接続線１１１を経由して（Ｆ２）、接続線１１１の下側の領域で入力を終了している（Ｆ３）ことから、操作対象はプログラム構成要素である命令行１３２の左に在る接続線１１１と特定される。
【０１１０】
その後、処理実行手段１２は、特定された操作対象、すなわちこの例では接続線１１１に関するジェスチャ定義に含まれる軌跡の形状とその向きと、入力ジェスチャ特性情報に含まれる軌跡の形状とその向きを照合し、適用するコマンドを特定する。すなわちこの例では、入力ジェスチャ特性情報に含まれる軌跡が上下方向の直線であって、その軌跡の向きは下向きであって、この接続線１１１の右に命令行１３２が隣接しているため、命令行１３２を立ち下がり命令行１３２ａに変更するコマンドが実行される。
【０１１１】
これによって、（ｂ）に示されるように、命令行１３２が、命令行の左側に下向きの矢印が付加された立ち下がり命令行１３２ａに変更される。
【０１１２】
図２６では、（ａ）のように、一本の接続線１１１には、２つのａ接点記号１２１ａ，１２１ｂとコイル記号１３１とが配置されている。このラダープログラムで、（ｂ）のように２つのａ接点記号１２１ａとａ接点記号１２１ｂの間にａ接点記号を追加する入力操作Ｊが行われたとする。このとき、処理実行手段１２は、操作対象として接続線１１１を特定し、接続線１１１に関するジェスチャ定義から入力操作Ｊに該当するコマンドを実行する。すなわち、接続線１１１をａ接点記号に置き換える。
【０１１３】
このとき、処理実行手段１２は、単に入力操作Ｊを行った領域にａ接点記号を配置するだけでもよいし、領域が小さい場合に２つのａ接点記号１２１ａ，１２１ｂ間の距離を広げてそこにａ接点記号を配置するようにしてもよい。後者の場合には、たとえば処理実行手段１２を、論理的にラダープログラムの該当箇所にプログラム構成要素（ａ接点）を挿入した上で、プログラム全体を表示する機能を有するように構成することで実現できる。あるいは、処理実行手段１２に、プログラム構成要素（ａ接点記号）を配置する領域がそのプログラム構成要素を配置するのに十分な面積を有しているかを判定する機能と、十分な面積を有していない場合にその領域に隣接するプログラム構成要素間の距離を広げてからプログラム構成要素を配置する機能と、を設けるようにしてもよい。
【０１１４】
その結果、２つの構成要素が近接している場合に、（ｃ）のようにその距離を広げるとともに、その広げた領域に入力操作Ｊに対応するａ接点記号１２１ｃを配置することが可能になる。
【０１１５】
すなわち、操作対象の指定とその操作対象に対して行なうコマンドの指定を同時に行なうことができるようになるため、タブレット端末において、図形を用いて記述されるプログラムを、より少ない労力で編集できるという効果を奏する。さらに、操作対象に対して行なう処理を一覧から選択する過程が不要となるので、プログラム編集画面に操作対象に対して行なうコマンドを指定するための選択肢の一覧を表示する必要がなくなるため、プログラム編集画面を有効に利用できるという効果を奏する。
【０１１６】
（２−５−２）２画以上の軌跡と配置要素とを組み合わせた配置処理
上記した例では、ジェスチャ定義が、１画の軌跡で定義される場合を説明したが、２画以上の軌跡を有するジェスチャ定義を定義してもよい。
【０１１７】
図２７は、２つのジェスチャ定義を組合わせた編集の例を示す図である。（ａ）のようなプログラムＰ１０，Ｐ１１を含むラダープログラムがあり、この中のプログラムＰ１１の実行要否を指定できるようにマスタコントロールと呼ばれるプログラムを行ないたい場合の例を説明する。
【０１１８】
このような場合には、（ｂ）に示されるように、まず１画目として、プログラムＰ１１の外縁をコの字形状の入力操作Ｊ１でなぞるように描く。この入力操作によって、処理実行手段１２はプログラムＰ１１を選択状態にするコマンドを実行する。ついで、（ｃ）に示されるように、２画目として、プログラムＰ１０とプログラムＰ１１との間の左母線１０１を左から右に向かって横切るような入力操作Ｊ２を描く。これによって、処理実行手段１２は、（ｄ）に示されるように、プログラムＰ１０とプログラムＰ１１との間に、マスタコントロール回路の開始を指示するプログラムＰ１３が配置され、プログラムＰ１１の下には、マスタコントロールの終了を指示するプログラムＰ１４が配置されたマスタコントロール回路が作成される。なお、マスタコントロール回路は一例であり、このように処理の対象となるプログラムを選択する入力操作と、そうして選択されたプログラムに対してコマンドを実行する入力操作を組み合わせる手順は、他の処理に対して適用できることはもちろんである。
【０１１９】
このように、一度の入力操作にて、その入力操作にて指定した構成要素に対してコマンドを行うだけでなく、操作対象を選択する入力操作と、選択した操作対象に対して実行するコマンドを指定する入力操作を組み合わせられるように構成することで、入力操作に対応付けることができる操作の種類をさらに増やすことができる。
【０１２０】
すなわち、プログラムに加えたい変化と相似している同一の軌跡を用いて、操作対象に応じた異なるコマンドを実行できるようになるため、ユーザにとって、入力操作に用いる軌跡の記憶が容易になり、タブレット端末において、図形を用いて記述されるプログラムの編集方法を、より少ない期間で習得できるという効果を有する。
【０１２１】
加えて、操作対象の指定とその操作対象に対して行なうコマンドの指定を同時に行なうことができるため、タブレット端末において、図形を用いて記述されるプログラムを、より少ない労力で編集できるという効果を奏する。さらに、操作対象に対して行なう処理を一覧から選択する過程が不要となるので、プログラム編集画面に操作対象に対して行なうコマンドを指定するための選択肢の一覧を表示する必要がなくなるため、プログラム編集画面を有効に利用できるという効果を奏する。
【０１２２】
（２−５−３）入力操作にプログラム編集画面に対するコマンドを定義する場合
上記した例では、ジェスチャ定義にて、入力操作と構成要素に対するコマンドを定義づける場合を示したが、入力操作に、プログラム編集画面に対するコマンド、すなわち、たとえば、プログラム編集画面に表示するプログラムの範囲を変更する処理（以下、スクロール処理という）、直前に実行したコマンドを実行する前の状態に戻す処理または、直前に実行したコマンドと同じコマンドを実行する処理などを定義してもよい。
【０１２３】
たとえば、構成要素の上で行った入力操作によってスクロール処理が行われるように、２本の入力指示体で行う入力操作を全ての構成要素のジェスチャ定義にてスクロール処理に関する軌跡として定義したり、２本の入力指示体で行う入力操作をプログラム編集画面に対する処理と判別する機能を処理実行手段１２に設けたりしてもよい。または、ジェスチャ定義にて、左母線の左側の領域Ｌ（左側下地要素Ｌ）もしくは右母線の右側の領域Ｒ（右側下地要素Ｒ）に関するコマンドとしてスクロール処理を定義してもよい。
【０１２４】
図２８では、２本の入力指示体による入力操作によるスクロール処理の例を示している。（ａ）のプログラム編集画面１８０に表示されているラダープログラムよりも下部に在るラダープログラムを見たい場合には、（ｂ）のようにプログラム編集画面１８０のラダープログラムが描かれている領域を２本の入力指示体でスクロールしたい方向に入力操作Ｊを行う。その結果、入力指示体の移動とともにプログラム編集画面１８０に表示されているラダープログラムの範囲が移動する。そして、（ｃ）のように、所望の範囲が現れたところで、入力指示体をプログラム編集画面１８０から離して入力操作Ｊを終了することで、スクロール処理が終了する。
【０１２５】
図２９では、左側下地要素に関するジェスチャ定義に直線の軌跡に対応するコマンドとしてスクロール処理を定義した場合の例を示している。（ａ）のプログラム編集画面１８０の状態よりも後方（下部）に存在するラダープログラムを見たい場合には、（ｂ）のようにプログラム編集画面１８０の左側下地要素Ｌに対して１本の入力指示体にてスクロールしたい方向に入力操作Ｊを行う。その結果、入力指示体の移動とともにプログラム編集画面１８０に表示されているラダープログラムの範囲が変わる。そして、（ｃ）のように、所望の範囲が現れたところで、入力指示体をプログラム編集画面１８０から離して入力操作Ｊを終了することで、スクロール処理が終了する。なお、ここでは入力操作Ｊを左側下地要素Ｌに対して行う場合を説明したが、右側下地要素Ｒに対して行なう場合についても同様のジェスチャ定義を行なってもよい。また、入力操作の軌跡の時間変化の大小によって、入力操作を終えた後のスクロールの継続時間を変化するようにしてもよい。また、スクロール以外の編集処理についても、ジェスチャ定義に定義することによって、実行することが可能である。例えば、処理を取り消すコマンド、取り消した処理をやり直すコマンド、または処理を繰り返すコマンドをジェスチャ定義に定義することによって実行するようにしてもよい。
【０１２６】
ここで、一般的なエンジニアリングツールでのラダープログラムの作成処理と比較した効果について説明する。図３０は、一般的なエンジニアリングツールにおけるプログラム編集手順を模式的に示す図である。ここで示される手順は、入力部としてマウスなどのポインティングデバイスを有するパーソナルコンピュータ用のエンジニアリングツールをタブレット端末で実行させるものである。一般的な場合には、まず、図３０（ａ）に示されるように、左母線１０１と右母線１０２をプログラム編集画面に配置する。その後、図３０（ｂ）に示されるように、プログラム構成要素を配置したいプログラム編集画面上の位置Ｐ１を入力指示体でタップし、ついで、プログラム構成要素の配置用ボタンが並べて配置されたツールバーからたとえばａ接点記号配置用ボタン１４１を入力指示体でタップする。これによって、図３０（ｃ）に示されるように、プログラム編集画面にａ接点記号１２１ａが追加される。このａ接点記号１２１ａは、左母線１０１と接続線１１１ａで接続されているが、ａ接点記号１２１ａの右側に配置される接続線１１１ｂは右母線１０２に接続されていない。
【０１２７】
その後、図３０（ｄ）に示されるように、ツールバー中のコイル記号配置用ボタン１４２を入力指示体でタップすると、ａ接点記号１２１ａと右母線１０２との間にコイル記号１３１が追加されるとともに、コイル記号１３１とａ接点記号１２１ａとの間が接続線１１１ｂで結ばれ、コイル記号１３１と右母線１０２との間が接続線１１１ｃで結ばれる。
【０１２８】
ついで、図３０（ｅ）に示されるように、ツールバー中のａ接点記号配置用ボタン１４１をタップすると、図３０（ｆ）に示されるように、上記で作成したａ接点記号１２１ａの下に、ａ接点記号１２１ｂが配置される。このａ接点記号１２１ｂも左母線１０１とは接続線１１２ａで接続されているが、ａ接点記号１２１ｂの右側に配置される接続線１１２ｂは右母線１０２に接続されていない。
【０１２９】
その後、図３０（ｇ）に示されるように、接続線１１１ｂを置きたい位置Ｐ２、すなわちここでは、ａ接点記号１２１ｂに接続される接続線１１２ｂの右端に対応する接続線１１１ｂ上の位置Ｐ２をタップし、ツールバー中の上下方向に延在する接続線配置用ボタン１４３をタップする。これによって、図３０（ｈ）に示されるように、接続線１１１ｂ上の位置Ｐ２と接続線１１２ｂの右端との間を接続する接続線１１２ｃが配置され、ａ接点記号１２１ａ，１２１ｂが並列に配置された並列回路が作成される。
【０１３０】
このように、一般的なエンジニアリングツールでは、左母線１０１と右母線１０２との間にプログラム構成要素を配置する場合に、記号を配置する位置を選択し、ツールバーで配置する記号を選択するという手順が必要であった。
【０１３１】
これに対して、実施の形態２では、入力操作を入力ジェスチャ特性情報取得手段１１にて取得し、処理実行手段１２は、入力ジェスチャ特性情報取得手段１１にて取得した入力ジェスチャ特性情報の座標情報に基づいて、操作対象を特定し、前記ジェスチャ特性情報に含まれる軌跡の形状とその向きと、前記構成要素に関するジェスチャ定義に定義されている軌跡の形状とその向きとコマンドに基づいてコマンドを実行するようにした。その結果、操作対象の指定とその操作対象に対して実行するコマンドの指定を一つの入力操作で行うことができる。
【０１３２】
つまり、図３０で行なった操作を、実施の形態２で説明した手順で入力する場合、図３０（ｉ）に示したように、２つの入力操作、すなわち、左母線１０１の左側の領域から右母線１０２の右側の領域に至る水平方向の入力操作Ｊ１を行なったのち、左母線の左側の領域から母線間の領域に水平方向に移動し、上に向かって約９０度方向転換し、入力操作Ｊ１によって引かれた接続線１１１に交差する入力操作Ｊ２を行なうことで、図３０（ｇ）のラダープログラムを入力できる。
【０１３３】
つまり、タブレット端末において、一般的なエンジニアリングツールに比して少ない操作回数および労力でプログラムを編集することができるという効果を奏する。
【０１３４】
さらに、操作対象に対して行なう処理を一覧から選択する過程が不要となるので、プログラム編集画面に操作対象に対して行なうコマンドを指定するための選択肢の一覧を表示する必要がなくなるため、プログラム編集画面を有効に利用できるという効果を奏する。
【０１３５】
また、ジェスチャ定義を、構成要素と入力操作の軌跡の形状とその向きとコマンドの組み合わせで定義するようにしたので、同一の軌跡の形状とその向きに対応するコマンドを、構成要素ごとに定義することが可能であるので、軌跡の種類（数）を抑えることが可能となる。つまり、ユーザが覚える軌跡の種類（数）が少なくて済むので、ユーザにとって、入力操作に用いる軌跡の記憶が容易になり、より少ない期間で操作方法を習得しやすいプログラム作成環境を提供することができるという効果も有する。
【０１３６】
なお、以上では、処理実行手段１２は、入力ジェスチャ特性情報に含まれる座標情報に基づいて操作対象を特定し、その操作対象に関するジェスチャ定義に基づいて、実行されるコマンドを特定する例を説明したが、構成要素の上下左右で領域を区別して、その領域に関するジェスチャ定義に基づいて、実行されるコマンドを特定するように構成してもよい。
【０１３７】
すなわち、たとえば、左母線の左側の領域と、左母線と右母線の間の領域と、右母線の右側の領域を座標情報で区別して、処理実行手段１２にて、入力操作Ｊが各領域をどのような順序で横切ったかを判定し、ジェスチャ定義には、座標情報と軌跡の形状とその向きと実行するコマンドのほかに、構成要素の代わりに、領域を横切る順序の組み合わせを定義し、ジェスチャ定義に基づいて対応するコマンドを実行するように構成して、図９、図１０について説明した効果を得てもよい。
【０１３８】
また、たとえば、接続線の上側の領域と下側の領域を区別し、上側の領域と下側の領域を座標情報で区別して、処理実行手段１２にて、入力操作Ｊが各領域をどのような順序で横切ったかを判定し、ジェスチャ定義には、座標情報と軌跡の形状とその向きと実行するコマンドのほかに、構成要素の代わりに、領域を横切る順序の組み合わせを定義し、ジェスチャ定義に基づいて対応するコマンドを実行するように構成して、図１１について説明した効果を得てもよい。
【０１３９】
また、たとえば、ａ接点記号の上下左右斜めの領域とａ接点記号の領域を座標情報で区別して、処理実行手段１２にて、入力操作Ｊが各領域をどのような順序で横切ったかを判定し、ジェスチャ定義には、座標情報と軌跡の形状とその向きと実行するコマンドのほかに、構成要素の代わりに、領域を横切る順序の組み合わせを定義し、ジェスチャ定義に基づいて対応するコマンドを実行するように構成して、図１６について説明した効果を得てもよい。
【０１４０】
実施の形態３．
ジェスチャ定義に定義する軌跡の形状とその向きは、文字を模して定義してもよい。実施の形態３では、文字に模した軌跡をジェスチャ定義に定義する場合について説明する。
【０１４１】
ジェスチャ定義に文字を模した軌跡を定義する場合には、ジェスチャ定義に文字を模した軌跡を定義しない場合に比して、入力ジェスチャ特性情報には高い解像度の位置情報を格納することが必要になる。そこで、実施の形態３では、入力ジェスチャ特性情報取得手段１１は、入力ジェスチャ特性情報から２種類の解像度で入力軌跡を生成する。
【０１４２】
プログラム編集画面は、所定の大きさの第１分割単位によって複数の領域に区切られている。この領域は、入力指示体から文字が入力された場合を識別するときに用いられるものである。以下では、第１分割単位で区切られる領域を詳細領域という。また、プログラム編集画面は、第１分割単位よりも大きく、かつ第１分割単位の面積の整数倍の大きさの第２分割単位によっても領域管理される。この領域は、入力指示体から文字を模していない軌跡が入力された場合を識別するときに用いられるものである。以下では、第２分割単位で管理される領域を粗領域という。そして、入力ジェスチャ特性情報取得手段１１は、詳細領域と粗領域とを対応付けた領域管理情報に基づいて、２つの入力ジェスチャ特性情報を生成する。
【０１４３】
プログラム編集画面を、詳細領域と粗領域に対応付けるのは、プログラム編集画面に表示する文字情報に含まれる文字の大きさ（面積）が、プログラム構成要素の大きさと比して大幅に小さいため、処理実行手段１２にて、文字を模した軌跡と文字を模していない軌跡を区別することを可能し、演算処理の量を減らせるようにするためである。
【０１４４】
プログラム編集画面に表示する文字の大きさがプログラム編集画面に表示するプログラム構成要素と比してさほど小さくない場合は、ひとつの領域で構成してもよい。
【０１４５】
また、粗領域に対応付けた管理情報を設けずに、詳細領域に対応付けた領域管理情報に基づいて、１つの入力ジェスチャ特性情報を生成して、処理実行手段１２にて、文字を模した軌跡と文字を模していない軌跡を区別しないように構成してもよい。
【０１４６】
領域管理情報は、プログラム編集画面上で設定された領域を管理する。ここでは、領域管理情報として、プログラム編集画面上で設定された詳細領域を区分する情報と、詳細領域を粗領域と対応付けた情報と、を例示する。図３１は、領域管理情報の概念を模式的に示す図であり、（ａ）はプログラム編集画面での詳細領域と粗領域との関係を示す図であり、（ｂ）は領域管理情報の一例を示す図である。図３１（ａ）に示されるように、プログラム編集画面は、たとえば画面左上を原点として、左右方向にｘ軸が設けられ、ｘ軸に垂直な方向にｙ軸が設けられるものとする。このｘｙ面上に第１分割単位の詳細領域ＦＭｘｉｙｊ（ｉ，ｊは自然数）が複数配置されている。詳細領域の大きさは、入力指示体のプログラム編集画面との接触領域の大きさに応じて任意に設定することができる。たとえば、入力指示体として指のみが用いられる場合には、スタイラスペンが用いられる場合に比して、接触領域の大きさを大きくすることができる。また、１つの粗領域ＣＭｘｍｙｎ（ｍ，ｎは自然数）は、この例では５行×２列の詳細領域ＦＭｘｉｙｊからなる。さらに、１つの詳細領域ＦＭｘｉｙｊは、座標の単位が１０×１０の大きさの領域からなるものとする。このような関係が、図３１（ｂ）に示されるようにたとえばテーブル形式で表されている。すなわち、各詳細領域ＦＭｘｉｙｊに含まれるプログラム編集画面上での座標範囲が規定され、各粗領域ＣＭｘｍｙｎに含まれる詳細領域ＦＭｘｉｙｊが規定されている。
【０１４７】
入力ジェスチャ特性情報取得手段１１は、座標単位で得られる入力ジェスチャ特性情報と、領域管理情報と、から、粗領域単位での粗入力軌跡（第１入力軌跡）と、詳細領域単位での詳細入力軌跡（第２入力軌跡）と、を生成する。
【０１４８】
処理実行手段１２は、たとえば、粗入力軌跡に含まれる座標情報に基づいて操作対象を特定し、その操作対象に関するジェスチャ定義について、最初に粗入力軌跡に対応する軌跡が存在するか判定し、存在する場合には、その軌跡に対応するコマンドを実行する。この場合には、詳細入力軌跡を用いた操作対象の特定処理は行われない。また、処理実行手段１２は、粗入力軌跡に対応する軌跡がジェスチャ定義に存在しない場合には、詳細入力軌跡に含まれる座標情報に基づいて操作対象を特定し、その操作対象に関するジェスチャ定義について、詳細入力軌跡に対応する軌跡が存在するか判定し、存在する場合には、その軌跡に対応するコマンドを実行する。詳細入力軌跡を用いる場合は、ジェスチャが文字である場合であるので、詳細入力軌跡に含まれる軌跡の形状とその向きを用いて文字認識を行って、入力された文字を特定する。
【０１４９】
さらに、構成要素配置可能下地要素の一種として、標準下地要素と、プログラム構成要素のデバイス名を入力するためのデバイス名入力下地要素と、構成要素のコメント情報を入力するためのコメント入力下地要素をそれぞれ定義し、操作対象を特定することで、入力された文字がプログラム構成要素に対するデバイス名であるのか、またはコメント情報であるのかを判別できるようにしてもよい。たとえば、処理実行手段１２は、操作対象がデバイス名入力下地要素の場合は、ジェスチャ定義に定義されているコマンドに基づいて、入力ジェスチャ特性情報に格納されている軌跡の形状、または軌跡の形状およびその向きに基づいて文字認識処理を行って取得した文字を、そのデバイス名入力下地要素に関連付けられているプログラム構成要素のデバイス名として登録し、そのデバイス名をプログラム編集画面の所定の位置に配置する処理を行う。また、操作対象がコメント入力下地要素である場合は、ジェスチャ定義に定義されているコマンドに基づいて、入力ジェスチャ特性情報に格納されている軌跡の形状、または軌跡の形状およびその向きに基づいて文字認識処理を行って取得した文字をそのデバイス名入力下地要素と関連付けられている構成要素のコメント情報として登録し、そのコメント情報をプログラム編集画面の所定の位置に配置する処理を行う。なお、ここに、デバイス名は、プログラム構成要素のひとつひとつを区別するための名前である。コメントはプログラム構成要素につける説明文である。
【０１５０】
なお、このとき、処理実行手段１２と入力ジェスチャ特性情報取得手段１１は、１画目の入力操作に基づいて操作対象を特定するように構成してもよい。また、入力操作が予め定めた時間無いことをもって入力操作の終了と判定するように構成することで、下地要素の領域の外に入力操作が続いた場合にも文字入力を継続できるようにしてもよい。
【０１５１】
図３２は、デバイス名入力下地要素とコメント入力下地要素を用いて、ラダープログラムにおける文字入力領域を指定する一例を示す図である。この図に示されるように、ラダープログラムは、左母線１０１と右母線１０２との間を結ぶ接続線１１１，１１２に貫かれてプログラム構成要素記号が配置され、接続線１１１，１１２は、左母線１０１と右母線１０２との間で上下方向に配置される。また、ラダープログラムでは、記号よりも上側にその記号に対するデバイス名を表記し、記号よりも下側にその記号に対するコメントを表記するのが一般的である。そのため、接続線１１１，１１２で挟まれた領域では、入力された文字がデバイス名なのかコメントなのかが不明になる虞がある。そこで、実施の形態３では、接続線１１１，１１２の上側の所定の範囲にデバイス名入力下地要素を配置してデバイス名入力領域Ｒｄを設け、接続線１１１，１１２の下側の所定の範囲にコメント入力下地要素を配置してコメント入力領域Ｒｃを設けるようにしている。そして、各構成要素には、デバイス名入力下地要素とコメント入力下地要素が結び付けられている。
【０１５２】
また、接続線１１１のａ接点記号１２１ａの上部には、デバイス名入力領域Ｒｄ１２１ａが設けられ、下部にはコメント入力領域Ｒｃ１２１ａが設けられている。接続線１１１のコイル記号１３１ａの上部には、デバイス名入力領域Ｒｄ１３１ａが設けられ、下部にはコメント入力領域Ｒｃ１３１ａが設けられている。さらに、接続線１１２のａ接点記号１２１ｂの上部には、デバイス名入力領域Ｒｄ１２１ｂが設けられ、下部にはコメント入力領域Ｒｃ１２１ｂが設けられている。接続線１１２のコイル記号１３１ｂの上部には、デバイス名入力領域Ｒｄ１３１ｂが設けられ、下部にはコメント入力領域Ｒｃ１３１ｂが設けられている。
【０１５３】
図３３は、ジェスチャ定義の一例を示す図である。ここでは、図２または図３と同様に、タイル状の領域をプログラム編集画面に敷き詰めて、領域を１単位として軌跡の経過を把握する方法について例示している。図３３（ａ）は、粗領域の場合のタイル状のマス目の配置関係を示す図であり、図３３（ｂ）は、詳細領域の場合のタイル状のマス目の配置関係を示す図であり、図３３（ｃ）は、図３３（ａ）、（ｂ）の場合のジェスチャ定義の一例を示す図である。
【０１５４】
この例では、ジェスチャ定義は、構成要素の種類と、軌跡の形状と、その向きと、実行するコマンドと、を対応付けたものである。軌跡の形状とその向きの情報は、粗領域用の情報と詳細領域用の情報を備える。入力ジェスチャ特性情報に格納される座標情報は、上記したようにプログラム編集画面に定義された座標系に基づいて得られる座標となっている。この例では、粗領域用の情報は、図２または図３の場合と同様である。詳細領域用の情報は、粗領域のマス目をさらに９分割し、入力操作の軌跡を粗領域の場合よりも詳細に区別することができる。ここでは、複数のマス目を用いて軌跡の形状を定義している。すなわち、軌跡の形状は、始点から終点に至るまでに経由したマス目の座標で判別され、軌跡の向きは、始点から終点に至るまでに経由したマス目の順序で判別される。
【０１５５】
粗領域および詳細領域のマス目の大きさは、プログラム編集画面に表示している構成要素の大きさと、入力指示体の太さに基づいてユーザが調整することも可能な物理的な寸法を有するが、ジェスチャ定義のマス目は、物理的な寸法を定義してもよいが、物理的な特定の寸法を持たない論理的な位置関係のみを定義してもよい。図３３に示したジェスチャ定義は、論理的な位置関係を定義した場合を表している。
【０１５６】
なお、ここでは矩形のマス目で説明したが、たとえば正六角形など、ほかの形状のマス目を用いてもよい。
【０１５７】
つぎに、プログラムの編集方法について説明する。図３４は、実施の形態３によるプログラム構成要素が何も配置されていないプログラム編集画面でのプログラム編集方法の処理手順の一例を示すフローチャートである。
【０１５８】
まず、入力ジェスチャ特性情報取得手段１１は、プログラム編集画面に入力される入力ジェスチャ特性情報を取得する（ステップＳ５１）。入力ジェスチャ特性情報は、入力指示体の接触位置である座標情報、座標の軌跡、および軌跡の向きからなる。
【０１５９】
ここで、入力ジェスチャ特性情報取得手段１１は、座標情報に基づいて、軌跡の形状とその向きの情報として、粗領域単位で粗入力軌跡を生成するとともに、詳細領域単位での詳細入力軌跡を作成する（ステップＳ５２）。
【０１６０】
ついで、処理実行手段１２は、詳細入力軌跡から文字を認識し、入力文字を取得する（ステップＳ５３）。その後、処理実行手段１２は、入力文字を取得できたかを判定する（ステップＳ５４）。
【０１６１】
詳細入力軌跡から入力文字を取得できた場合（ステップＳ５４でＹｅｓの場合）には、詳細入力軌跡の形状とその向きに対応するコマンド、すなわちステップＳ５７で取得した文字に対応するコマンドがジェスチャ定義に定義されているかを判定する（ステップＳ５５）。詳細入力軌跡の形状とその向きに対応するコマンド、すなわちステップＳ５３で取得した文字に対応するコマンドがジェスチャ定義に存在する場合（ステップＳ５５でＹｅｓの場合）には、処理実行手段１２は、ジェスチャ定義に格納されているコマンドを実行し（ステップＳ５６）、プログラム構成要素に登録した文字をプログラム編集画面に表示する（ステップＳ５７）。以上によって、プログラムの編集処理が終了する。
【０１６２】
一方、ステップＳ５４で詳細入力軌跡から入力文字を取得できなかった場合（ステップＳ５４でＮｏの場合）には、処理実行手段１２は、粗入力軌跡の形状とその向きに対応するコマンドがジェスチャ定義に存在するかを判定する（ステップＳ５８）。粗入力軌跡の形状とその向きに対応するコマンドがジェスチャ定義に存在する場合（ステップＳ５８でＹｅｓの場合）には、処理実行手段１２は、ジェスチャ定義に格納されているコマンドを実行し（ステップＳ５９）、プログラム構成要素をプログラム編集画面に表示する（ステップＳ６０）。以上によって、プログラムの編集処理が終了する。
【０１６３】
また、ステップＳ５８で粗入力軌跡の形状とその向きに対応するコマンドが操作対象に関するジェスチャ定義にない場合（ステップＳ５８でＮｏの場合）またはステップＳ５５で詳細入力軌跡の形状とその向きに対応するコマンドが操作対象に関するジェスチャ定義にない場合（ステップＳ５５でＮｏの場合）には、該当するコマンドが無いと判定し（ステップＳ６１）、処理が終了する。なお、該当するコマンドが無いと判定したときに、エラーメッセージを表示するように構成してもよいし、エラーメッセージを表示しないように構成してもよい。
【０１６４】
なお、入力ジェスチャ特性情報取得手段１１は、ステップＳ５１で入力ジェスチャ特性情報として、入力操作の軌跡を取得しながら、ステップＳ５２での粗入力軌跡と詳細入力軌跡の生成とを、実行するようにしてもよい。また、処理実行手段１２は、粗入力軌跡を用いたステップＳ５８〜Ｓ６０の処理と、詳細入力軌跡を用いたステップＳ５３〜Ｓ５７の処理と、を同時並行的に処理するようにしてもよい。
【０１６５】
ここで、プログラム構成要素が配置されていないプログラム編集画面に文字に模した軌跡の入力操作を行う場合の具体例について説明する。
【０１６６】
図３５は、実施の形態３によるプログラム編集処理の手順の一例を示す図である。この図３５では、左母線１０１と、右母線１０２と、ａ接点記号１２１およびコイル記号１３１を有する２つの母線１０１，１０２間を結ぶ接続線１１１と、を配置する入力操作を示している。まず、図３５（ａ）に示されるように、ユーザが入力指示体を用いてプログラム編集画面上に入力操作Ｊを行う。入力操作Ｊから入力ジェスチャ特性情報が取得され、粗入力軌跡と詳細入力軌跡とが生成される。
【０１６７】
処理実行手段１２は、ステップＳ５７にて入力ジェスチャ特性情報（詳細入力軌跡）を用いて文字認識を行い「Ｘ１」という入力文字を取得する。次に、入力ジェスチャ特性情報の最初の１文字「Ｘ」に対応するコマンドを実行する。その結果、図３５（ｂ）に示されるように、プログラム構成要素が配置される。この例では、左母線１０１と、右母線１０２と、ａ接点記号１２１およびコイル記号１３１を有する２つの母線１０１，１０２間を結ぶ接続線１１１と、を有するプログラム構成要素がプログラム編集画面上に配置される。また、認識された入力文字「Ｘ１」が、プログラム構成要素のａ接点記号１２１の上の領域にデバイス名１５１として配置される。
【０１６８】
これは一例であり、ジェスチャと、実行されるコマンドの組み合わせはジェスチャ定義にて他の定義をおこなってもよい。
【０１６９】
また、図３５では、文字に模した軌跡の入力操作を行うことによってプログラム編集画面へのプログラムの追加およびプログラム構成要素のデバイス名への文字入力を行う例を示したが、文字入力を他の方法で実行してもよい。図３６は、実施の形態３によるプログラム編集処理の手順の一例を示す図である。（ａ）のようにプログラム編集画面２００内で所定の入力操作Ｊを行う（たとえば、この例ではタップ動作を行っている）ことで、（ｂ）のようにプログラム編集画面２００上に文字入力ウインドウ２１０を表示させるとともに、入力操作Ｊを行った領域に文字入力領域２２０を配置する。そして、（ｃ）のように文字入力ウインドウ２１０から文字を入力することによって、（ｄ）のようにプログラム１００を配置するようにしてもよい。なお、ここで例示されている文字入力ウインドウ２１０は、「Ｘ」、「Ｙ」、「Ｍ」、「Ｌ」のアルファベットと、「０（００）」〜「９」の数字と、「←（戻る）」、「取消」、「決定」の各命令と、からなる。これは、ラダープログラムで使用される文字は決まっているので、すべてのアルファベットを配置せず、よく使用されるもののみを配置するようにしている。これによって、文字を誤り無く入力（選択）し易くなるとともに、文字入力ウインドウ２１０のプログラム編集画面２００内で占める割合を小さくしてプログラム編集画面２００の視認性を高めることができる。
【０１７０】
また、たとえば、デバイス名と関連付けられて用いられるラベルと呼ばれる変数名の一覧を配置するようにして、ラベルを誤り無く入力（選択）し易くするようにしてもよい。
【０１７１】
つぎに、プログラム構成要素がプログラム編集画面に配置されている場合のプログラム編集方法について説明する。図３７は、実施の形態３によるプログラム構成要素が配置されている場合のプログラム編集画面でのプログラム編集方法の処理手順の一例を示すフローチャートである。まず、入力ジェスチャ特性情報取得手段１１は、プログラム編集画面上に入力される入力ジェスチャ特性情報を取得する（ステップＳ７１）。
【０１７２】
ついで、入力ジェスチャ特性情報取得手段１１は、領域管理情報を用いて、粗領域単位の座標で粗入力軌跡および詳細領域単位の座標で詳細入力軌跡を含む入力ジェスチャ特性情報を生成する（ステップＳ７２）。処理実行手段１２は、操作対象が文字入力用の構成要素であるか否かを判定する（ステップＳ７３）。
【０１７３】
操作対象が文字入力用の構成要素でない場合（ステップＳ７３でＮｏの場合）には、処理実行手段１２は、粗入力軌跡の形状とその向きに対応するコマンドが操作対象に関するジェスチャ定義に存在するかを判定する（ステップＳ７４）。ここでは、粗入力軌跡を含む入力ジェスチャ特性情報に格納されている座標情報に基づいて軌跡が通過した構成要素を特定し、その構成要素を操作対象として位置づける。
【０１７４】
粗入力軌跡の形状とその向きに対応するコマンドが操作対象に関するジェスチャ定義に存在する場合（ステップＳ７４でＹｅｓの場合）には、処理実行手段１２は、ジェスチャ定義に格納されているコマンドを実行し（ステップＳ７５）、コマンドを実行した後のプログラムがプログラム編集画面に表示される（ステップＳ７６）。以上によって、プログラムの編集処理が終了する。
【０１７５】
一方、ステップＳ７３で操作対象が文字入力用の構成要素である場合（ステップＳ７３でＹｅｓの場合）には、処理実行手段１２は、詳細入力軌跡から文字を認識し、入力文字を取得する（ステップＳ７７）。
【０１７６】
ついで、処理実行手段１２は、入力ジェスチャ特性情報に格納されている座標情報に基づいて、操作対象がデバイス名入力領域Ｒｄであるかを判定する（ステップＳ７８）。操作対象がデバイス名入力領域Ｒｄである場合（ステップＳ７８でＹｅｓの場合）には、認識した文字列を、ジェスチャ定義に定義されているコマンドに基づいてそのデバイス名入力領域Ｒｄが関連付けられているプログラム構成要素のデバイス名情報として登録するとともに、そのプログラム構成要素のデバイス名表示領域に、認識した入力文字をデバイス名として配置したプログラム編集画面を表示する（ステップＳ７９）。以上によって、プログラムの編集処理が終了する。
【０１７７】
さらに、ステップＳ７８で操作対象がデバイス名入力領域Ｒｄではない場合（ステップＳ７８でＮｏの場合）には、操作対象がコメント入力領域Ｒｃであるかを判定する（ステップＳ８０）。操作対象がコメント入力領域Ｒｃである場合（ステップＳ８０でＹｅｓの場合）には、認識した文字列を、ジェスチャ定義に定義されているコマンドに基づいて、そのコメント入力領域Ｒｃが関連付けられている構成要素のコメント情報として登録するとともに、プログラム構成要素のコメント表示領域に認識した入力文字を配置したプログラム編集画面を表示する（ステップＳ８１）。以上によって、プログラムの編集処理が終了する。
【０１７８】
また、ステップＳ７４で粗入力軌跡の形状とその向きに対応するコマンドが操作対象に関するジェスチャ定義に存在しない場合（ステップＳ７４でＮｏの場合）には、該当するコマンドは無いと判定し（ステップＳ８２）、処理が終了する。さらに、ステップＳ８０で操作対象がコメント入力領域Ｒｃでない場合（ステップＳ８０でＮｏの場合）には、処理が終了する。
【０１７９】
以下に、プログラム構成要素が既に配置されているプログラム編集画面に、（１）接続線をプログラム構成要素に置き換える場合、（２）既に配置されているプログラム構成要素にデバイス名を配置する場合、（３）デバイス名の文字を文字の一覧表を用いて入力する場合についてのプログラムの編集処理の具体例を説明する。
【０１８０】
（１）接続線をプログラム構成要素に置き換える場合
図３８〜図４０は、実施の形態３によるプログラム編集の処理手順の一例を示す図である。図３８では、左母線１０１と、右母線１０２と、２つの母線１０１，１０２間を結び、コイル記号１３１を有する接続線１１１と、が配置されたプログラム編集画面で、デバイス名入力領域にデバイス名を入力してａ接点記号を配置する入力操作を示している。
【０１８１】
まず、図３８（ａ）のように、ユーザが入力指示体を用いてプログラム編集画面の接続線１１１よりも上で接続線１１１の中央よりも左寄りのデバイス名入力領域で入力操作Ｊを行う。入力操作Ｊから入力ジェスチャ特性情報が取得され、入力ジェスチャ特性情報から入力操作Ｊの軌跡の下にデバイス名入力下地要素が在るため、処理実行手段１２が、操作対象はデバイス名入力下地要素であると判別する。
【０１８２】
その後、処理実行手段１２は、入力ジェスチャ特性情報（詳細入力軌跡）から文字認識を行い「Ｘ１」という入力文字を取得する。次に、ジェスチャ定義に基づいて、入力文字の最初の１文字「Ｘ」に対応するコマンドを実行する。その結果、図３８（ｂ）に示されるように、プログラム構成要素が配置される。この例では、入力操作Ｊが行われた領域に対応する位置の接続線１１１がａ接点１２１に置き換わり、また、認識された入力文字「Ｘ１」が、プログラム構成要素のａ接点記号１２１の上の領域にデバイス名１５１として配置される。
【０１８３】
図３９では、左母線１０１と、右母線１０２と、２つの母線１０１，１０２間を結び、ａ接点記号を有する接続線１１１と、が配置されたプログラム編集画面で、デバイス名入力領域にデバイス名を入力してコイル記号またはａ接点記号を配置する入力操作を示している。
【０１８４】
まず、図３９（ａ）のように、ユーザが入力指示体を用いてプログラム編集画面の接続線１１１よりも上で接続線１１１の中央よりも右寄りのデバイス名入力領域で入力操作Ｊを行う。入力操作Ｊから入力ジェスチャ特性情報が取得され、入力ジェスチャ特性情報から入力操作Ｊの軌跡の下にデバイス名下地要素が在るため、処理実行手段１２は、操作対象がデバイス名入力下地要素であると判別する。
【０１８５】
その後、処理実行手段１２は、入力ジェスチャ特性情報（詳細入力軌跡）から文字認識を行い「Ｙ１」という入力文字列を取得する。次に、入力文字列の最初の１文字「Ｙ」に対応するコマンドを実行する。その結果、図３９（ｂ）に示されるように、プログラム構成要素が配置される。この例では、入力操作Ｊが行われた領域に対応する位置の接続線１１１がコイル記号１３１に置き換わり、また、認識された入力文字「Ｙ１」が、コイル記号１３１に重ねられてデバイス名１５１として配置される。
【０１８６】
なお、ラダープログラムにおいて、ここでは、「Ｙ」は出力デバイスのコイルを指すデバイス名であるとともに、コイルの励磁状態を表す入力デバイスを指すデバイス名でもある。そのため、（ｃ）のように、接続線１１１上における出力デバイス（コイル記号１３１）となる領域と、入力デバイス（ａ接点記号１２１）となる領域とを予め定めておくことで、どの領域に入力操作が行なわれたかによって、配置する記号の種類を変えてもよい。この例では、左母線１０１と右母線１０２との間をａ：ｂに区切り、それぞれの領域をＲａ，Ｒｂとする。領域Ｒｂに「Ｙ」というジェスチャの入力が行われた場合には、（ｂ）のようにコイル記号１３１がデバイス名１５１とともに配置され、領域Ｒａに「Ｙ」というジェスチャの入力が行われた場合には、（ｃ）のようにａ接点記号１２１がデバイス名１５１とともに配置される。
【０１８７】
また、接続線１１１の上側の領域に配置したデバイス名流力領域Ｒｄにおいて、（ｄ）のように「Ｙ」という入力操作によって、入力ジェスチャ特性情報の座標情報に対応する接続線１１１上にプログラム構成要素を配置するときに、配置する記号は「ａ接点」であるのか「コイル」であるのかを選択することができる選択ウインドウ１６１を表示させるようにしてもよい。
【０１８８】
なお、図３９では、ａ接点記号、コイル記号に関する例を説明したが、ほかのプログラム構成要素を配置する場合も、ジェスチャ定義に定義することによって、同様のことを行なってよい。たとえば、領域Ｒａに図１４（ｂ）に示した入力操作Ｊを行なったときに、命令行の代わりに、条件入力行を配置するようにしてもよい。
【０１８９】
図４０では、左母線１０１と、右母線１０２と、２つの母線１０１，１０２間を結び、ａ接点記号を有する接続線１１１と、が配置されたプログラム編集画面で、デバイス名入力領域にデバイス名を入力して命令行を配置し、さらに、命令行に引数を設定する入力操作を示している。
【０１９０】
まず、図４０（ａ）のように、ユーザが入力指示体を用いてプログラム編集画面の接続線１１１よりも上で接続線１１１の中央よりも左寄りのデバイス名入力領域で入力操作Ｊを行う。入力操作Ｊから入力ジェスチャ特性情報が生成される。
【０１９１】
その後、処理実行手段１２は、入力ジェスチャ特性情報（詳細入力軌跡）から文字認識を行い「ＭＯＶ」という入力文字を取得する。次に、入力ジェスチャ特性情報の最初の１文字「Ｍ」に対応するコマンドを実行する。この例では、２文字目以降に「ＯＶ」という文字が続いており、これが命令後に該当するため、入力操作Ｊが行われた領域に対応する接続線１１１上の位置に命令行１３２が配置され、また、認識された入力文字「ＭＯＶ」が、プログラム構成要素の命令行１３２の所定の位置に重ねて配置される。
【０１９２】
なお、図４０（ａ）、（ｂ）ではデバイス名入力領域Ｒｄに描いた文字によって命令文を含む命令行１３２を配置する場合を示しているが、命令行１３２には通常、命令文のほかに引数の入力操作が必要である。そこで、（ｃ）のように、引き続いて命令行１３２の上のデバイス名入力領域Ｒｄに入力操作Ｊによる文字を入力していくと、（ｄ）のように命令行１３２の内部に引数１５２ｂを入力するようにしてもよい。引数が複数ある場合には、この工程を引数の個数分繰り返せばよい。
【０１９３】
これらは一例であり、入力操作の軌跡の形状とその向きと、実行されるコマンドの組み合わせはジェスチャ定義にて他の定義をおこなってもよい。
【０１９４】
以上、図３８から図４０にて説明したように、文字に模した軌跡の入力操作Ｊを行なうことによって、下地要素に関するジェスチャ定義に基づいて入力ジェスチャ特性情報に対応するコマンドが実行されて、下地要素が、デバイス名が登録されたプログラム構成要素に置き換えられる。
【０１９５】
すなわち、文字に相似している軌跡を用いてプログラム構成要素を追加できるので、ユーザにとって、入力操作に用いる軌跡の記憶が容易になり、タブレット端末において、図形を用いて記述されるプログラムの編集方法を、より少ない期間で習得できるという効果を有する。
【０１９６】
加えて、対象の指定とその操作対象に対して行なうコマンドの指定を同時に行なって、文字情報の登録も同時に行なうことができるようになるため、タブレット端末において、図形を用いて記述されるプログラムを、より少ない労力で編集できるという効果を奏する。さらに、操作対象に対して行なう処理を一覧から選択する過程が不要となるので、プログラム編集画面に操作対象に対して行なうコマンドを指定するための選択肢の一覧を表示する必要がなくなるため、プログラム編集画面を有効に利用できるという効果を奏する。
【０１９７】
（２）既に配置されているプログラム構成要素にデバイス名を配置する場合
図４１は、実施の形態３によるプログラム編集の処理手順の一例を示す図である。図４１では、ａ接点記号１２１とコイル記号１３１とが配置された接続線１１１が配置され、各記号にはデバイス名もコメントも付加されていない状態のプログラム編集画面で、ａ接点記号１２１のデバイス名入力領域Ｒｄにデバイス名を配置する入力操作を示している。
【０１９８】
まず、図４１（ａ）のように、ユーザが入力指示体を用いてプログラム編集画面のａ接点記号１２１の上部にあるデバイス名入力領域Ｒｄで入力操作Ｊを行う。入力操作Ｊから入力ジェスチャ特性情報が生成される。
【０１９９】
その後、処理実行手段１２は、入力ジェスチャ特性情報（詳細入力軌跡）から文字認識を行い「Ｘ１」という入力文字を取得する。この入力操作Ｊは接続線１１１を横切らないので、操作対象はデバイス名入力領域Ｒｄと特定され、デバイス名入力領域Ｒｄに関するジェスチャ定義に基づいてコマンドが実行されて、ａ接点記号１２１にデバイス名が登録される。その結果、図４１（ｂ）に示されるように、ａ接点記号１２１の上部に入力文字「Ｘ１」がデバイス名１５１として配置されることになる。また、図示しないがコメント入力領域に文字の形を模した入力操作が行われた場合も同様の過程を経て、ａ接点記号にコメント情報が登録される。
【０２００】
以上、図４１にて説明したように、文字に模した軌跡の入力操作Ｊを行なうことによって、下地要素に関するジェスチャ定義に基づいて入力ジェスチャ特性情報に対応するコマンドが実行されて、プログラム構成要素にデバイス名が登録される。
【０２０１】
すなわち、文字に相似している軌跡を用いてプログラム構成要素に文字情報を登録できるので、ユーザにとって、入力操作に用いる軌跡の記憶が容易になり、タブレット端末において、図形を用いて記述されるプログラムの編集方法を、より少ない期間で習得できるという効果を有する。
【０２０２】
加えて、対象の指定とその操作対象に対して行なうコマンドの指定を同時に行なうことができるようになるため、タブレット端末において、図形を用いて記述されるプログラムを、より少ない労力で編集できるという効果を奏する。さらに、操作対象に対して行なう処理を一覧から選択する過程が不要となるので、プログラム編集画面に操作対象に対して行なうコマンドを指定するための選択肢の一覧を表示する必要がなくなるため、プログラム編集画面を有効に利用できるという効果を奏する。
【０２０３】
（３）デバイス名の文字を文字の一覧表を用いて入力する例
上記した説明では、ジェスチャ定義に文字の形に模した軌跡を用いてデバイス名またはコメントをプログラム構成要素に登録する処理について説明した。タブレット端末では、文字入力は軌跡を用いる入力だけに限られず、たとえば文字の一覧表（以下、文字入力ウインドウという）を用いた入力も行われることがある。この場合には、ジェスチャ定義に、文字入力ウインドウを表示して、そのウインドウから入力された文字を操作対象の特定の領域に格納するコマンドを定義して、文字入力ウインドウによる文字入力の後に、ステップＳ７９以降の処理が実行されるようにしてもよい。図４２と図４３は、実施の形態３によるプログラム編集処理の手順の一例を示す図である。
【０２０４】
図４２では、（ａ）のようにａ接点記号１２１の上側のデバイス名入力領域Ｒｄで入力操作Ｊが行われる。この文字入力処理用の入力操作Ｊが入力されると、（ｂ）のように文字入力ウインドウ１６３が表示されるとともに、入力操作Ｊが行われた領域に文字入力領域１６２が設けられる。その後、（ｃ）に示されるように、ユーザは、文字入力ウインドウ１６３に表示された文字または数字をタップすることでその内容が文字入力領域１６２に入力される。ここでは、Ｉ１→Ｉ２→Ｉ３の順にタップしたものとする。最後に決定ボタンをタップする（Ｉ４）ことで文字入力領域１６２に入力された文字が確定され、（ｄ）のようにプログラムに反映される。ここでは、ａ接点記号１２１の上側のデバイス名入力領域Ｒｄで入力処理が行われたので、入力された文字「Ｘ１０」はａ接点記号１２１のデバイス名１５１として、ラダープログラムに登録される。
【０２０５】
図４３は、文字を修正する場合である。この場合には、（ａ）のようにａ接点記号１２１の上に配置された「Ｘ１」というデバイス名１５１ａの上部で、（ｂ）のように入力操作Ｊを行うと、（ｃ）のように文字入力ウインドウ１６３が表示されるとともに、入力操作Ｊが行われた領域に文字入力領域１６２が設けられる。そして、文字入力ウインドウ１６３に表示された文字または数字などをタップすることで、その内容が文字入力領域１６２に入力される。ここでは、Ｉ１→Ｉ２→Ｉ３の順にタップし「Ｘ１０」と入力したものとする。最後に決定ボタンをタップする（Ｉ４）ことで文字入力領域１６２に入力された文字が確定され、入力された文字「Ｘ１０」は（ｄ）のようにａ接点記号１２１の新たなデバイス名１５１ｂとして、ラダープログラムに登録される。
【０２０６】
なお、図４２と図４３では、文字入力用の入力操作をデバイス名入力領域Ｒｄで行う場合を示しているが、コメント入力領域で行う場合も同様である。また、ここでは、デバイス名またはコメントについての入力について説明したが、たとえば図４０（ｂ）に示されるような命令行１３２に対しても同様の処理を適用することができる。
【０２０７】
なお、図４２、図４３では、入力操作として、水平方向の直線状の軌跡を用いる場合を示したが、他の入力操作を文字入力処理に割り当ててもよい。たとえば、水平方向の直線状の軌跡の代わりに、タップ操作またはダブルタップ操作を割り当ててもよい。
【０２０８】
また、上記の説明では、文字の形を模した入力操作が行われた場合に、プログラム構成要素の配置、またはプログラム構成要素に対するデバイス名またはコメントの配置に関する処理を行う場合を示したが、これに限定されるものではない。たとえば、実施の形態２の図１４の例では、命令行１３２を配置しているが、この命令行１３２への文字の入力についても、同様の処理を適用することができる。
【０２０９】
また、図４２と図４３では、デバイス名の配置の例を示したが、プログラム構成要素が配置されていない接続線１１１の上側のデバイス名入力領域で同様の入力操作を行うことで、入力操作を行った座標に対応する接続線１１１上の位置にデバイス名が配置されたプログラム構成要素を配置するように構成してもよい。
【０２１０】
このような構成によれば、プログラム構成要素の上下の領域の何も配置されていない領域で文字入力処理が行われると、そのプログラム構成要素にデバイス名またはコメントが登録され、ラダープログラムが更新される。また、プログラム構成要素の上下の領域の文字が配置されている領域で文字入力処理が行われると、そのプログラム構成要素のデバイス名またはコメントが変更され、その変更に基づいてラダープログラムが更新される。
【０２１１】
すなわち、文字に相似している軌跡を用いてプログラム構成要素を編集できるので、ユーザにとって、入力操作に用いる軌跡の記憶が容易になり、タブレット端末において、図形を用いて記述されるプログラムの編集方法を、より少ない期間で習得できるという効果を有する。
【０２１２】
加えて、対象の指定とその操作対象に対して行なうコマンドの指定を同時に行なって、文字情報の編集も同時に行なうことができるようになるため、タブレット端末において、図形を用いて記述されるプログラムを、より少ない労力で編集できるという効果を奏する。さらに、操作対象に対して行なう処理を一覧から選択する過程が不要となるので、プログラム編集画面に操作対象に対して行なうコマンドを指定するための選択肢の一覧を表示する必要がなくなるため、プログラム編集画面を有効に利用できるという効果を奏する。
【０２１３】
なお、上記した軌跡を描く入力操作による文字入力の場合は、たとえば、デバイス名入力領域を判別できずに、プログラム編集画面のデバイス名入力領域よりも上の領域に入力操作を行って、デバイス名入力領域に入力したかったものがコメント入力領域に入力されてしまう可能性もある。そのような事態を防ぐために、デバイス名の入力、コメントの入力などの文字列を、軌跡を描く入力操作で入力できる領域を区別できる図形をプログラム編集画面に表示するようにしてもよい。
【０２１４】
図４４は、実施の形態３による文字入力領域のガイド表示の一例を示す図である。図４４（ａ）では、デバイス名またはコメントの入力操作を受け付ける領域がユーザに認識できるように文字入力操作受付領域１６４をプログラム編集画面上に明示する場合を示している。
【０２１５】
また、図４４（ｂ）では、ユーザが入力操作Ｊの入力中に、認識処理の領域を示すガイド線１６５をプログラム編集画面に表示する場合を示している。
【０２１６】
実施の形態３では、プログラム編集画面に文字を模した軌跡を描く入力操作を行った場合に、操作対象が文字を入力可能な構成要素である場合には、詳細入力軌跡を含む入力ジェスチャ特性情報に含まれる入力操作の軌跡または軌跡の形状とその向きから入力文字を識別する。そして、詳細入力軌跡に対応するコマンドをジェスチャ定義から取得し、実行するとともに、操作対象のデバイス名またはコメントに入力された文字を配置するようにした。これによって、文字の形を模した入力操作によって、所望の位置にプログラム構成要素をそのデバイス名またはコメントとともに配置することができるようになるため、文字の形を模した軌跡を描く操作によって図形を用いて記述されるプログラムの編集を少ない操作で容易に行えるという効果を奏する。
【０２１７】
実施の形態４．
左母線と右母線のみが配置されている初期プログラム編集画面にプログラミングを行う場合には、接続線を最初に配置するのが通常である。そのため、初期プログラム編集画面の場合と、他のプログラム構成要素が配置されたプログラム編集画面の場合とで、取得する入力ジェスチャ特性情報の解像度を変えることができる。以下に、その場合の例について説明する。
【０２１８】
左母線と右母線のみが配置されているプログラム編集画面では、第２分割単位よりも大きな大領域の単位で、プログラム編集画面を区切ることができる。図４５は、母線のみが配置されているプログラム編集画面の一例を示す図である。この図に示されるように、母線のみが配置されているプログラム編集画面２００Ａでは、予め所定の位置に左母線１０１と右母線１０２とが配置された状態にある。また、母線のみが配置されているプログラム編集画面２００Ａは、左母線１０１よりも左側の領域Ｌ（左側下地要素）と、左母線１０１と右母線１０２とに挟まれた領域Ｍ（図形配置可能下地要素）と、右母線１０２よりも右側の領域（右側下地要素）Ｒと、を有する。なお、これらの領域Ｌ，Ｍ，Ｒを、大領域というものとする。なお、ここでは、プログラム編集画面に母線が表示されている例を示したが、大領域を定義する一方で、母線を表示しないように構成してもよい。
【０２１９】
また、領域管理情報として、大領域と粗領域との間を対応付ける情報が含まれる構成となる。具体的には、領域管理情報は、粗領域に対応する座標範囲と、大領域に含まれる粗領域と、を含む。なお、この実施の形態４では、文字を模した軌跡を入力操作する場合は扱わないので、実施の形態３のように詳細領域を設けていないが、実施の形態３のように入力操作を詳細領域単位の座標で検出する場合には、詳細領域を設けてもよい。
【０２２０】
入力ジェスチャ特性情報取得手段１１は、プログラム編集画面に左母線と右母線以外のプログラム構成要素が配置されていない場合には、大入力軌跡（第３入力軌跡）を作成し、プログラム編集画面に左母線と右母線以外のプログラム構成要素が配置されている場合には、粗入力軌跡を作成する。
【０２２１】
図４６は、ジェスチャ定義の一例を示す図である。ここでは、図２と同様に、タイル状の構成要素をプログラム編集画面に敷き詰めて、タイルの種類で軌跡の経過を把握する方法について例示している。図４６（ａ）は、ジェスチャ定義に用いるタイル状のマス目の配置関係を示す図であり、図４６（ｂ）は、プログラム編集画面のタイル状のマス目の配置関係を示す図であり、図４６（ｃ）は、図４６（ａ）、（ｂ）の場合のジェスチャ定義の一例を示す図である。なお、ここで、Ｌには左側下地要素、Ｍには図形配置可能下地要素、Ｒには右側下地要素をそれぞれ敷き詰めている。
【０２２２】
この例では、ジェスチャ定義は、入力操作の軌跡の形状とその向きと、構成要素と、その構成要素に適用するコマンドと、を対応付けたものである。ジェスチャの軌跡は、上記したようにプログラム編集画面に定義された座標系に基づいて得られる座標の軌跡となっている。また、この軌跡の描画に対して、ジェスチャ描画領域に描かれるプログラム構成要素が定義されている。粗領域の場合は、図２または図３の場合と同様である。大領域の場合には、プログラム編集画面を領域Ｌ，Ｍ，Ｒに分割し、入力操作の軌跡を粗領域の場合よりも大まかに取得することができる。ここでは、複数の領域Ｌ，Ｍ，Ｒを用いて軌跡の形状を定義している。すなわち、始点と終点までの向きに加えて、始点から終点に至るまでに経由した領域Ｌ，Ｍ，Ｒの座標で判別され、軌跡の向きは、始点から終点に至るまでに経由した領域Ｌ，Ｍ，Ｒの順序で判別される。
【０２２３】
処理実行手段１２は、入力ジェスチャ特性情報取得手段１１で生成作成された入力ジェスチャ特性情報に含まれる大入力軌跡または粗入力軌跡と座標情報に基づいて、軌跡が通過した領域の組み合わせに対応するコマンドを実行し、コマンドを実行した結果を反映した後のプログラムをプログラム編集画面に表示する処理を行う。
【０２２４】
つぎに、このようなプログラム編集用プログラムでのプログラム編集方法について説明する。実施の形態２の図８のフローチャートのステップＳ３３で操作対象が下地要素である場合には、入力ジェスチャ特性情報取得手段１１は、大領域を単位とした大入力軌跡を生成し、処理実行手段１２は、ステップＳ３３で、入力ジェスチャ特性情報に基づいて大入力軌跡に対応する軌跡が存在するかを判定すればよい。
【０２２５】
また、ステップＳ３３で操作対象がプログラム構成要素である場合には、入力ジェスチャ特性情報取得手段１１は、入力ジェスチャ特性情報から粗領域を単位とした粗入力軌跡を生成し、処理実行手段１２は、粗入力軌跡と操作対象（構成要素）との組み合わせに対応する軌跡が存在するかを判定すればよい。なお、その他の処理については、たとえば図８で説明したものと同様であるので、その説明を省略する。
【０２２６】
実施の形態４では、プログラム編集画面２００Ａにおいて、左母線１０１よりも左側の領域Ｌと、右母線１０２よりも右側の領域Ｒと、左母線１０１と右母線１０２との間の領域Ｍとに区切り、領域Ｌから領域Ｍを介して領域Ｒに至るジェスチャ（またはその逆の軌跡のジェスチャ）によって、プログラム編集画面２００Ａに、ラダープログラムの基本構成要素となる接続線１１１、またはラダープログラムで一般的に使用されるａ接点記号１２１、コイル記号１３１およびこれらの間を結ぶ接続線１１１などが配置されるようにした。これによって、プログラムを作成する初期の段階においては、実施の形態３のような詳細領域または粗領域よりも大きな領域を単位としてジェスチャの検出を行って、基本的なプログラム構成要素を配置することができる。その結果、プログラムの作成処理にかかる演算負荷を実施の形態３に比して抑えることができるという効果を有する。
【０２２７】
実施の形態５．
実施の形態５では、命令行内の命令の変更について説明する。
【０２２８】
実施の形態５による入力ジェスチャ特性情報取得手段１１は、粗入力軌跡と詳細入力軌跡を生成する。
【０２２９】
また、処理実行手段１２は、入力操作の軌跡が通過した領域の構成要素に命令行が存在する場合に、命令行に関するジェスチャ定義に基づいてコマンドを実行する。具体的には、命令行上で所定の文字を模した軌跡が入力された場合に、ジェスチャ定義で定義されている内容にしたがって、命令行中の命令の変更を行う。
【０２３０】
命令行に関するジェスチャ定義には、所定の軌跡が描画された場合の処理がさらに規定されている。具体的には、軌跡の形状とその向きに対応して、すでに格納されている命令文の種類に応じて実行するコマンドを切り替えるための定義を有する。
【０２３１】
図４７は、実施の形態５によるプログラムの編集処理の手順の一例を示す図である。ここでは、（ａ）に示されるように、「ＭＯＶ」命令１５２ａが入力された命令行１３２を有するラダープログラムが配置されている。（ｂ）に示されるように、命令行１３２の「ＭＯＶ」命令１５２ａの上で命令行１３２を跨ぐように「Ｄ」という入力操作Ｊが描かれると、（ｃ）に示されるように１６ビットで演算を行う「ＭＯＶ」命令１５２ａが３２ビットで演算を行う「ＤＭＯＶ」命令１５２ｂに変更される。
【０２３２】
さらに、（ｄ）に示されるように、命令行１３２の「ＤＭＯＶ」命令１５２ｂの上で、命令行１３２を跨ぐように「Ｄ」という文字の形に模した入力操作Ｊ２が行なわれると、（ｅ）に示されるように、「ＤＭＯＶ」命令が「ＭＯＶ」命令に変更される。
【０２３３】
実施の形態５では、命令行１３２上で所定の入力操作を行うことによって、命令行１３２中の命令文を変更するようにしたので、構成要素に格納されている命令文の変更を容易に行うことができるという効果を有する。
【０２３４】
実施の形態６．
この実施の形態６では、上記の実施の形態で配置されたプログラム構成要素を変更する場合について説明する。
【０２３５】
処理実行手段１２は、プログラム構成要素上で所定の入力操作を行ったときに、そのプログラム構成要素と類似する１以上のプログラム構成要素を変更候補として表示する機能をさらに有する。この変更候補は、たとえば形状が類似した記号を集めた変更候補情報から取得される。この変更候補情報は、たとえばジェスチャ定義に含まれる。また、変更候補は、変更候補ウインドウ内に表示され、この変更候補ウインドウが、入力操作が行われた位置付近のプログラム編集画面上に表示される。
【０２３６】
図４８は、実施の形態６による具体的なプログラムの編集処理の手順の一例を示す図である。図４８（ａ）には、左母線１０１と右母線１０２との間に、ａ接点記号１２１とコイル記号１３１とが配置され、接続線１１１で結ばれたラダープログラムが記載されている。ここで、（ｂ）のように、入力操作Ｊとして、ａ接点記号１２１に所定の時間以上入力指示体を当てることで、変更対象となる記号の選択と、変更候補情報の表示と、を指示することになるようジェスチャ定義に定義しておく。ａ接点記号１２１上で入力操作Ｊが行われると、入力ジェスチャ特性情報取得手段１１は入力ジェスチャ特性情報を生成し、処理実行手段１２は、ジェスチャ定義に定義されているコマンドに基づいて、ａ接点記号１２１に類似する記号を含む変更候補情報をジェスチャ定義から取得する。そして、処理実行手段１２は、（ｃ）のように取得した変更候補情報に基づいて変更候補ウインドウ１６６を表示する。この例では、ａ接点記号１２１の変更候補情報として、ａ接点記号１６６ａ、ｂ接点記号１６６ｂ、立ち上がりａ接点記号１６６ｃ、および立ち下がりａ接点記号１６６ｄが変更候補ウインドウ１６６に表示される場合が挙げられている。そして、（ｄ）のようにユーザによって、この変更候補ウインドウ１６６中からいずれか（たとえばｂ接点記号１６６ｂ）が選択されると（Ｔ１）、（ｅ）のように、ユーザによって選択されたａ接点記号１２１が、ユーザによって変更候補ウインドウ１６６から選択されたｂ接点記号１２２に置き換えられる。
【０２３７】
なお、変更候補情報には、構成要素の変更の中止を指示する選択肢を含んでもよい。また、変更候補ウインドウの外の領域に入力操作が行なわれた場合に変更を中止するようにしてもよい。また、変更候補ウインドウを表示した後に、予め定めた期間、入力が無い場合に、変更を中止するようにしてもよい。
【０２３８】
この実施の形態６では、プログラム構成要素上で所定の入力操作を行うことで、操作対象の構成要素に対応付けられた変更候補を表示するようにしたので、プログラム構成要素の変更を容易に実行することができるという効果を有する。
【０２３９】
実施の形態７． 
実施の形態７では、上記のようにして配置されたプログラム構成要素の移動に関する実施の形態を説明する。
【０２４０】
処理実行手段１２は、入力ジェスチャ特性情報取得手段１１で取得された入力ジェスチャ特性情報を用いて、描かれた軌跡の始点が構成要素の所定の位置にあるかを判定し、構成要素の所定の位置上に軌跡の始点がある場合には、その構成要素をジェスチャの軌跡に沿って移動させる処理を行う。また、構成要素の所定の位置上にジェスチャの始点がない場合には、上記した実施の形態で説明した場合に相当する処理を行う。
【０２４１】
図４９は、実施の形態７によるプログラム構成要素の移動条件の一例を示す図である。図４９（ａ）に示されるように、軌跡の下に配置されているプログラム構成要素が接続線１１１である場合には、所定の位置は接続線１１１上の位置（移動操作領域Ｒｍ）であるものとする。また、図４９（ｂ）に示されるように、軌跡の下に配置されているプログラム構成要素が接続線１１１以外の記号１２０である場合には、たとえば記号１２０を含む所定の範囲の領域の右上に設けられる移動操作領域Ｒｍを所定の位置とする。この移動操作領域Ｒｍを軌跡の始点として入力操作を行うことで、記号の移動が可能になる。
【０２４２】
図５０〜図５２は、実施の形態７によるプログラム構成要素の移動方法の一例を示す図である。図５０は、接続線を移動させる場合を示している。（ａ）には、２つのコイル記号１３１ａ，１３１ｂが並列回路構成となっているラダープログラムが示されている。この並列部分の母線１０１，１０２に平行な上下方向の接続線１１２ａの位置を左に移動したい場合には、（ｂ）に示されるように、接続線１１２ａ上を入力指示体で押さえ、その後、接続線１１２ａを押さえた状態で、左方向に向かって入力指示体を移動させ、移動を終えたい位置で入力指示体を離す入力操作Ｊを行う。これによって、（ｃ）に示されるように、接続線１１２ａが移動される。ここでは、接続線１１２ａを画面内の左右方向に移動させる場合を示したが、たとえば接続線１１１に平行な方向の並列回路部分の接続線１１２ｂを上下方向に移動させる場合も同様の処理によって行うことができる。
【０２４３】
図５１は、ａ接点記号を移動する場合を示している。（ａ）には、接続線１１１に１つのａ接点記号１２１ａが配置され、このａ接点記号１２１ａと並列回路を構成するように接続線１１１と左母線１０１との間に２つのａ接点記号１２１ｂ，１２１ｃが配置された接続線１１２が設けられている。このうちのａ接点記号１２１ｃを移動する場合には、ａ接点記号１２１ｃの右上の移動操作領域Ｒｍを押さえながら、移動したい位置まで入力指示体を移動させるように入力操作Ｊを行う。そして、移動後に配置したい位置で入力指示体をプログラム編集画面から離すことによって、（ｂ）のようにａ接点記号１２１ｃが接続線１１１上に移動することになる。
【０２４４】
また、実施の形態３の図３９で、デバイス名の先頭の文字が「Ｙ」であるプログラム構成要素は、出力にも入力にもなることを述べた。そこで、デバイス名の先頭の文字が「Ｙ」であるプログラム構成要素の移動を行う場合には、図５２（ａ）のように、記号の移動先の位置によって記号の種類を変えるようにしてもよい。たとえば、コイル記号１３１を（ａ）の入力操作Ｊのように領域Ｒｂ内から領域Ｒａ内へと移動させる場合には、（ｂ）のようにコイル記号１３１からａ接点記号１２１ｂへと変更されて、ａ接点記号１２１ｂが配置されるようにすることができる。
【０２４５】
さらに、移動操作領域Ｒｍを押さえながら入力指示体を移動させている場合に、記号を移動させていることがわかるように、移動対象の記号をゆがめさせたり、浮き上がるような形状としたり、移動対象である記号の形を変形させてもよい。
【０２４６】
また、ここでは、移動の場合を説明したが、移動ではなくプログラム構成要素の複製の追加（以下、コピーという）も同様の方法で行うことができる。図５３は、実施の形態７によるプログラムの編集の処理手順の一例を示す図である。この図５３（ａ）に示されるように、記号にコピー操作領域Ｒｃを設け、コピーしたい場合には、入力指示体でコピー操作領域Ｒｃを押さえながら移動させることにより、押さえつけたプログラム構成要素が複製されたものが移動する。この例では、並列回路を構成するａ接点記号１２１ａの中央のコピー操作領域Ｒｃを押さえながら、複製したａ接点記号を配置したい位置まで入力指示体を移動させるように入力操作Ｊを描く。そして、新たなａ接点記号を配置したい位置で入力指示体をプログラム編集画面から離すことによって、図５３（ｂ）のように、指定した位置にａ接点記号１２１ｂが配置されることになる。
【０２４７】
なお、ここではコピー操作領域Ｒｃを設ける例を説明したが、この後で説明する実施の形態８で示す編集用のボタンとしてコピー操作を指定するための編集ボタンを設けて、その編集ボタンと移動操作領域Ｒｍの組み合わせを用いることで、コピー操作領域Ｒｃを設けずに、その編集ボタンを押している状態でプログラム構成要素を移動する入力操作を行うことでプログラム構成要素をコピーできるように構成してもよい。また、同様に、コピー操作を指定するための編集ボタンを設けて、その編集ボタンを押している状態では、プログラム構成要素に対する全ての入力操作が、そのプログラム構成要素をコピーする入力操作として処理されるように構成してもよい。
【０２４８】
この実施の形態７では、構成要素の所定の位置を入力指示体を用いて入力操作を行うことで、プログラム構成要素の再配置またはコピーを容易に行うことができるという効果を有する。
【０２４９】
実施の形態８．
上記した実施の形態では、入力指示体による入力操作で、実行するコマンドを特定するようにしていた。実施の形態８では、編集ボタンを設け、その編集ボタンの選択の有無と入力操作との組み合わせによって、実行するコマンドを選択できるようにする場合について説明する。
【０２５０】
実施の形態８によるプログラム編集用プログラムが導入されるエンジニアリングツールには、所定の編集機能の許可／不許可を選択可能な編集ボタンが設けられている。編集ボタンとして、たとえば入力操作によるプログラムの変更の許可／不許可を設定する変更許可ボタン、入力操作によるプログラム構成要素の移動の許可／不許可を設定する移動許可ボタン、入力操作によるプログラム構成要素のコピーの許可／不許可を設定するコピー許可ボタン、またはプログラム構成要素の削除の許可／不許可を設定する削除許可ボタンなどを例示することができる。
【０２５１】
編集ボタンが許可状態の場合には、その編集ボタンに対応付けられた編集処理（変更、移動、削除など）が可能になる。一方、編集ボタンが不許可状態の場合には、その編集ボタンに対応付けられた編集処理（変更、移動、削除など）が不可能になる。この場合、単にその編集処理を実行することができない状態とするだけでなく、編集処理の不許可と入力指示体を用いる入力操作とを対応付けた処理を実行可能な状態とするようにしてもよい。
【０２５２】
その場合、ジェスチャ定義は、構成要素の種類と、軌跡の形状とその向きと、編集ボタンの許可状態または不許可状態と、実行するコマンドと、の組み合わせに対して処理を規定したレコードを格納する。
【０２５３】
処理実行手段１２は、入力ジェスチャ特性情報取得手段１１から取得した入力ジェスチャ特性情報に含まれる座標情報に基づいて操作対象を特定し、入力ジェスチャ特性情報に含まれる軌跡の形状とその向きと、編集ボタンの許可／不許可の状態と、に基づいて、操作対象に関するジェスチャ定義に格納されているコマンドを実行し、コマンドを実行した後で得られるプログラムをプログラム編集画面に表示する。なお、編集ボタンの許可状態または不許可状態は、編集ボタンの状態を示す編集許可状態情報としてプログラム編集画面に表示してもよい。
【０２５４】
なお、この実施の形態８におけるプログラム作成処理の基本的な流れは、ジェスチャ定義における、コマンドを特定するための選択肢として編集ボタンの状態が加わる点を除いて、上記した実施の形態と同様であるので、その説明を省略する。
【０２５５】
以下では、（１）編集ボタンが不許可状態の場合にプログラムが変更されるコマンドを実行しない場合、（２）編集ボタンが不許可状態の場合に異なるジェスチャを実行するようにジェスチャ定義を行う場合、の編集ボタンを用いたプログラムの編集処理の具体例について説明する。図５４〜図５６は、実施の形態８によるプログラムの編集の処理手順の一例を示す図である。
【０２５６】
（１）不許可状態の場合にプログラムが変更されるコマンドを実行しない場合
ここでは、編集ボタンが許可（オン）状態の場合には、上記した実施の形態で説明したプログラム構成要素の配置の変更などの処理を行うことができるが、編集ボタンが不許可（オフ）状態の場合には、プログラム構成要素の配置の変更などの処理を行うことができない状態となる例について示す。
【０２５７】
図５４（ａ）のように編集ボタンとしての変更許可ボタン１７１を押して変更許可状態とした場合は、上記したようにプログラム構成要素の配置を変更する処理などを行うことができるので、プログラム編集画面上でたとえばａ接点記号を配置するための入力操作Ｊ１を行うと、（ｂ）のようにその入力操作に対応するａ接点記号１２１が配置される。
【０２５８】
その後、変更許可ボタン１７１を押して変更不許可状態とした場合は、ジェスチャ定義にて、変更不許可状態のときに該当するコマンドを実行しない定義を行うことにより、上記したようにプログラム構成要素の配置を変更する処理などを行うことができない。そのため、（ｃ）のようにプログラム編集画面上でたとえばａ接点記号を配置するための入力操作Ｊ２を行っても、（ｄ）のようにプログラム編集画面にはａ接点記号は配置されない。
【０２５９】
また、編集ボタンとして、変更許可ボタンのほかに移動許可ボタンを設けた場合も動作は同様である。この場合には、移動許可ボタンが許可状態の場合にはプログラム構成要素の移動が可能であるが、不許可状態の場合には、移動が起こらない。
【０２６０】
図５５では、編集ボタンとして削除許可ボタン１７２を設けた場合を示している。（ａ）のように、削除許可ボタン１７２を押して削除許可状態にし、接続線１１１に対して設けられる並列回路の接続線１１２をなぞるように入力操作Ｊを行うと、（ｂ）のように、入力操作Ｊの下に配置されていた接続線１１２が削除される。なお、削除許可ボタン１７２を再度押して削除不許可状態とした場合には、図５４（ｃ）、（ｄ）の場合と同様に、描画されるジェスチャに対応した処理が行われる。
【０２６１】
（２）不許可状態の場合に異なるジェスチャを実行するようにジェスチャ定義を行う場合
ここでは、編集ボタンを不許可状態として入力操作を行ったときに、編集ボタンを許可状態として入力操作を行ったときとは別のコマンドを実行する例について示す。
【０２６２】
図５６（ａ）のように編集ボタンとしての変更許可ボタン１７１を押して変更許可状態とした場合は、たとえば、入力操作に対応して実行されるコマンドとして、プログラム構成要素を配置するコマンドを定義しておくことで、プログラム編集画面にてたとえばａ接点記号を配置するための入力操作Ｊ１を行うと、（ｂ）のようにその入力操作に対応するａ接点記号１２１が配置される。
【０２６３】
その後、変更許可ボタン１７１を押して変更不許可状態とした場合に、（ｃ）のようにプログラム編集画面で（ａ）と同様の入力操作Ｊ２を行う。すると、変更許可が不許可状態での入力操作Ｊ２に対して、ジェスチャ定義にて、スクロール処理が定義されている場合には、プログラム編集画面に表示されるプログラムの範囲が移動する。そして、（ｄ）のように、ユーザが入力指示体をプログラム編集画面２００から離して入力操作Ｊ２を終了させると、スクロール処理が終了する。
【０２６４】
なお、編集ボタンは、１回押すごとに許可と不許可が切替るものであってもよいし、通常は不許可状態で、押し続けることで許可状態とするものであってもよい。このような編集ボタンはタブレット端末の表示部上に表示させるものであってもよいし、タブレット端末のタッチ入力装置が有するマルチタッチ機能を用いて構成してもよい。あるいは、タブレット端末に接続したキーボードの入力キーを用いて構成してもよい。タブレット端末に物理的な操作ボタンを設け、そのボタンを編集ボタンに割り当ててもよい。
【０２６５】
実施の形態８では、編集ボタンを設け、編集ボタンのオンまたはオフによって、実行されるコマンドを変更できるようにした。これによって、軌跡の形状とその向きの向きが同一の入力操作に割り当てられる処理を増やすことができるという効果を有する。また、削除または移動などの編集処理について、誤ってプログラムを変更することを防止できる効果が得られるため、ユーザによる操作性を向上させることができるという効果も有する。
【０２６６】
実施の形態９．
上記した実施の形態は、プログラム編集用プログラムでプログラムの編集を行う場合を示した。この実施の形態９では、実際に動作中の制御装置の内部の変数（以下、デバイス変数という）の値などの動作状態をプログラム編集画面に表示しているときに、実行中のデバイス変数の状態を、入力指示体を用いる入力操作によって制御する場合を説明する。
【０２６７】
プログラム編集用プログラムにおいて、入力ジェスチャ特性情報取得手段１１が、入力操作から入力ジェスチャ特性情報を取得する処理は、上述した実施の形態と同じである。
【０２６８】
処理実行手段１２は、入力ジェスチャ特性情報に対応するコマンドをジェスチャ定義から取得し、通信回線を介して接続されるプログラマブルコントローラなどの制御装置に対して制御装置の内部のデバイス変数の値を変更するコマンドを実行する処理を行う。たとえば、ラダープログラム中のａ接点記号がオン状態にあるときに、デバイス変数の状態を変更するコマンドに対応する入力操作をユーザが行ったときには、実際にそのラダープログラムが実行されている制御装置において、対応するａ接点記号が指しているデバイス変数の状態をオフに変更し、プログラム編集画面のａ接点記号をオフ状態に変更する機能を有する。
【０２６９】
ここでは、操作対象に関するジェスチャ定義に、デバイス変数の状態を変更するコマンドを定義する場合を説明したが、操作対象に関するジェスチャ定義に、デバイス変数の状態がオンのときに実行するコマンドと、デバイス変数の状態がオフのときに実行するコマンドをそれぞれ定義して、処理実行手段１２が、デバイス状態の状態に応じて実行するコマンドを切り替えるように構成してもよい。
【０２７０】
図５７は、実施の形態９によるプログラム編集用プログラムが行う処理の手順の一例を示すフローチャートである。ここでは、制御装置で実行中のラダープログラムがプログラム編集画面に表示されており、ラダープログラムのプログラム構成要素に、そのプログラム構成要素が指すデバイス変数の、制御装置内部での現在の状態が合せて表示されており、制御装置に指令を送ることでデバイス変数の状態を変更できる状態（以下、テストモード状態という）にあるものとする。
【０２７１】
まず、入力ジェスチャ特性情報取得手段１１は、入力操作に基づいて入力ジェスチャ特性情報を生成する（ステップＳ１１１）。なお、入力ジェスチャ特性情報には、上記したように、入力指示体のプログラム編集画面上における軌跡の形状とその向きのほかに、その軌跡が描画された座標情報も含まれる。
【０２７２】
ついで、処理実行手段１２は、入力ジェスチャ特性情報に基づいて操作対象を特定する（ステップＳ１１２）。その後、処理実行手段１２は、入力ジェスチャ特性情報に含まれる軌跡の形状とその向きが操作対象に関するジェスチャ定義に存在するかを判定する（ステップＳ１１３）。
【０２７３】
入力ジェスチャ特性情報に含まれる軌跡の形状とその向きが操作対象に関するジェスチャ定義に存在する場合（ステップＳ１１２でＹｅｓの場合）には、処理実行手段１２は、入力ジェスチャ特性情報の軌跡の形状とその向きに対応するコマンドを実行する（ステップＳ１１４）。すなわち、処理実行手段１２は、通信部を介して制御装置に対して、操作対象として指定されたプログラム構成要素の状態を変更する指令を実行し（ステップＳ１１５）、ついで、処理実行手段１２は、操作対象の表示の状態を、制御装置内部での現在の状態に合せて変更し（ステップＳ１１６）、処理が終了する。
【０２７４】
また、ステップＳ１１３で、入力ジェスチャ特性情報に含まれる軌跡の形状とその向きが操作対象のジェスチャ定義に存在しない場合（ステップＳ１１３でＮｏの場合）には、処理実行手段１２は、コマンドを何も実行せずに処理が終了する。
【０２７５】
以下に、具体例を挙げて、テストモード状態にしてあるプログラム編集画面を用いた編集処理について説明する。図５８と図５９は、実施の形態９によるテストモード状態における処理の手順の一例を示す図である。
【０２７６】
図５８は、テストモード状態においてａ接点の状態をオフからオンにする場合である。（ａ）に示されるように、プログラム編集画面にオフ状態のａ接点記号１２１ａと、コイル記号１３１を有するラダープログラムが表示されている。この状態で、（ｂ）のようにａ接点記号１２１ａの左上の領域から右下の領域にかけて入力指示体を移動する入力操作Ｊが行われたとする。その結果、通信部を介してａ接点記号１２１ａ（１２１ｂ）に対応するデバイス名Ｍ０の接点がオン状態となるように指示がプログラム編集用プログラムを実行しているタブレット端末から制御装置に出される。そして、（ｃ）に示されるように、オフ状態のａ接点記号１２１ａはオン状態のａ接点記号１２１ｂに切り替わる。
【０２７７】
図５９は、テストモード状態においてａ接点の状態をオンからオフにする場合の例を示している。（ａ）に示されるように、プログラム編集画面にオン状態のａ接点記号１２１ｂと、コイル記号１３１を有するラダープログラムが表示されている。この状態で、（ｂ）のようにａ接点記号１２１ｂの左上の領域から右下の領域にかけて入力指示体を移動する入力操作Ｊが行われたとする。その結果、（ｃ）に示されるように、通信部を介してａ接点記号１２１ｂ（１２１ａ）に対応するデバイス名Ｍ０の接点がオフ状態となるように指示が、プログラム編集用プログラムを実行しているタブレット端末から制御装置に出される。そして、オン状態のａ接点記号１２１ｂはオフ状態のａ接点記号１２１ａに切り替わる。
【０２７８】
この実施の形態９では、プログラム編集画面で制御装置の内部のデバイス変数の状態をラダープログラムに重ね合わせて表示している際に、プログラム構成要素上に入力指示体を用いる入力操作を行うと、そのプログラム構成要素に対応するデバイス変数の状態を変更する指示を出すとともに、動作の表示状態を変更するようにした。これによって、制御装置のテストモード状態中に、制御装置内部のプログラム構成要素の状態を容易に切り替えることができるという効果を有する。
【０２７９】
なお、たとえば、右側下地要素のジェスチャ定義に、制御装置のテストモードなどの動作状態を変更するコマンドを定義して、入力操作によって制御装置の動作状態を変更できるように構成してもよい。
【０２８０】
実施の形態１０．
この実施の形態１０では、プログラム編集に関するヘルプ情報を表示することができるプログラム編集用プログラムについて説明する。
【０２８１】
処理実行手段１２は、入力ジェスチャ特性情報取得手段１１で取得された入力ジェスチャ特性情報がヘルプ情報を表示するコマンドである場合には、ジェスチャ定義に格納されているコマンドに基づいて、ヘルプ情報をヘルプ情報表示ウインドウに表示させる処理を行う。ヘルプ情報は、プログラムの編集方法、あるいは記号を配置するための軌跡の形状とその向きの一覧などを含む。また、ヘルプ情報は、記号ごとの入力操作方法に関するアニメーションをファイル化したものを含んでいてもよい。
【０２８２】
なお、ジェスチャ定義には、ヘルプ情報を表示させるコマンドに対応付けたジェスチャの定義がさらに含まれている。なお、この実施の形態１０におけるプログラム編集処理の基本的な流れは、上記した実施の形態と同様であるので、その説明を省略する。
【０２８３】
以下では、ヘルプ情報の表示処理の具体例について説明する。図６０は、実施の形態１０によるヘルプ情報表示の処理手順の一例を示す図である。図６０では、ユーザは、ａ接点記号を配置したいがどのようにジェスチャ入力したらよいのかわからない場合を例に挙げる。
【０２８４】
まず、（ａ）のように、ユーザは、ヘルプ情報を表示させる入力操作Ｊをプログラム編集画面上で行う。ついで、入力ジェスチャ特性情報取得手段１１は入力ジェスチャ特性情報を取得し、処理実行手段１２はジェスチャ定義に基づいて（ｂ）のようにヘルプ情報検索ウインドウ１８５をジェスチャ描画領域の近傍に表示する。このヘルプ情報検索ウインドウ１８５には、検索したい内容を入力することができる検索条件入力領域１８５ａと検索ボタン１８５ｂが設けられている。ここでは、ユーザは検索条件入力領域１８５ａに「ａ接点」と入力し、検索ボタン１８５ｂを押したものとする。
【０２８５】
すると、（ｃ）のようにａ接点記号の配置方法を示すヘルプ情報が検索され、ヘルプ情報表示ウインドウ１８６に表示される。ユーザは、このヘルプ情報表示ウインドウ１８６を参照しながら、プログラムの編集を行うことができる。
【０２８６】
この実施の形態１０によれば、ヘルプ情報の表示を入力指示体を用いる入力操作に対応付けたので、プログラムの編集に慣れないユーザ、またはプログラムの編集中に操作がわからなくなったユーザなどに対してプログラムの編集方法の説明を提供できるという効果を有する。
【０２８７】
実施の形態１１．
ラダープログラムの編集では、デバイス名を配置せず、記号のみを配置してラダープログラムを作成した後、各記号に対してデバイス名を設定することがある。このような場合でのデバイス名の設定方法について説明する。
【０２８８】
図６１は、実施の形態１１によるプログラム編集用プログラムの機能構成の一例を模式的に示すブロック図である。このプログラム編集用プログラム１０Ｂは、実施の形態１の構成に、デバイス名入力処理手段１４と、をさらに備える。
【０２８９】
デバイス名入力処理手段１４は、ユーザによって入力されたデバイス名をデバイス名入力順序にしたがって、各記号にデバイス名を入力する。デバイス名入力順序は、プログラム編集画面に表示されたラダープログラム中の各記号について、デバイス名を入力する順序を規定する情報である。デバイス名入力順序として、たとえば、上の接続線から下の接続線に向かって、また各接続線では左母線から右母線に向かう順序とすることができる。なお、このデバイス名入力順序はユーザによって任意に設定することができる。
【０２９０】
なお、上記した実施の形態と同一の構成要素には同一の符号を付してその説明を省略している。また、この実施の形態１１におけるプログラム編集処理の基本的な流れは、上記した実施の形態と同様であるので、その説明を省略する。
【０２９１】
以下では、デバイス名の入力処理の具体例について説明する。図６２は、実施の形態１１によるデバイス名入力処理の手順の一例を示す図である。（ａ）のようなデバイス名が入力されていないラダープログラムがユーザによって作成される。ついで、（ｂ）のようにデバイス名が、たとえばタブレット端末に接続されたキーボードを用いてキー入力される。ここではデバイス名とデバイス名との間には、区切りを示す「エンター」キーが入力されるものとする。デバイス名の入力終了後、デバイス名入力処理手段１４は、（ｂ）のデバイス名とデバイス名入力順序とから、ラダープログラムの各記号のデバイス名入力領域に（ｂ）で入力したデバイス名を入力する。ここでは、デバイス名入力順序を上で説明した順序であるとすると、（ｃ）のように一番上の接続線１１１の左側のａ接点記号１２１ａから一番下の接続線１１３の右側のコイル記号１３１ｃに向かって順に入力されたデバイス名が配置される。
【０２９２】
なお、上記した例では、タブレット端末に接続されたキーボードを用いてデバイス名を入力する場合を示したが、これに限定されるものではない。たとえば、タブレット端末のタッチパネルにソフトウェアキーボードを表示し、そのソフトウェアキーボードを用いてキー入力するようにしてもよい。あるいは、音声によって、図６２（ｂ）のようにデバイス名と区切り記号を入力し、その入力された音声を識別してデバイス名入力順序にしたがってラダープログラムのプログラム構成要素にデバイス名を設定するようにしてもよい。
【０２９３】
この実施の形態１１によれば、プログラム構成要素に与える文字列を、キーボードなどの文字入力に向いた装置を用いて、画面へのタッチ操作などのほかの入力操作を途中にはさむことなく、連続して入力することが可能になるため、ユーザがプログラム構成要素に文字列を効率よく指定できるという効果を有する。
【０２９４】
なお、上述した実施の形態では、入力操作から入力軌跡を取得する際の解像度を、プログラム編集画面に一様に粗入力軌跡、詳細入力軌跡または大入力領域に関する軌跡を複数生成する場合を示した。しかし、この発明がこれに限定されるものではない。図６３は、入力操作から入力ジェスチャ特性情報の座標情報を取得する方法の他の例を示す図である。図６３（ａ）に示されるように、プログラム編集画面に左母線１０１と右母線１０２とそれらの間を接続する接続線１１１とが描かれると、接続線１１１よりも上の所定の領域と下の所定の領域を詳細領域Ｒｆとし、詳細領域Ｒｆに挟まれた領域を粗領域Ｒｃｏとしている。そして、入力操作の軌跡がどの領域で描かれるかによって、入力軌跡の解像度を変えるようにしてもよい。すなわち、入力ジェスチャ特性情報取得手段１１は詳細領域でジェスチャが描かれる場合には、詳細入力軌跡を生成し、粗領域でジェスチャが描かれる場合には、粗入力軌跡を生成する。
【０２９５】
また、図６３（ａ）の状態からプログラム構成要素が配置され、たとえば図６３（ｂ）のように接続線１１１に２つのａ接点記号１２１ａ，１２１ｂとコイル記号１３１がプログラム構成要素として配置された場合には、プログラム構成要素の上と下の所定の領域を詳細領域Ｒｆとし、それ以外の領域を粗領域Ｒｃｏとしてもよい。これによって、入力ジェスチャ特性情報取得手段１１は詳細領域に入力操作が行われる場合には、詳細入力軌跡を生成し、粗領域に入力操作が行われる場合には、粗入力軌跡を生成する。
【０２９６】
また、詳細領域と粗領域を重ね合わせて定義し、一方の領域に入力が始まった後に、もう一方の領域に軌跡が移ったと判定する境界が、もう一方の領域に重なるように構成してもよい。そうすることで、例えば、詳細領域に入力する文字に模した軌跡をより大きな軌跡で描くことが可能になり、ユーザの操作性を向上することが可能になる。
【０２９７】
また、上述した実施の形態では、入力ジェスチャ特性情報には、軌跡に関する情報として、軌跡の形状とその向きを格納していたが、これに、軌跡の筆圧の情報を加えたり、形状、向き、筆圧の情報の３種の情報のうち、１つまたは２つを用いるように構成してもよい。すなわち、たとえば、軌跡に関する情報として、軌跡の形状のみを用いるように構成してもよい。
【０２９８】
なお、上述した実施の形態では、プログラム編集用プログラムを実行する情報処理装置としてタブレット端末を例に挙げて説明したが、マウスなどのポインティングデバイスを有するパーソナルコンピュータ、または表示部にタッチパネルが設けられ、タブレット端末に比して表示部のサイズが小さい携帯情報端末もしくは多機能携帯電話などの情報処理装置を用いることもできる。
【０２９９】
また、上述した実施の形態では、ラダープログラムを作成する場合を例に挙げたが、このほかにもＦＢ、ＦＢＤ、ＳＦＣなどの図形を用いたプログラミングに対して上記した実施の形態を適用することができる。
【０３００】
なお、上述したプログラム編集用プログラムでのプログラム編集方法および制御装置の制御方法は、その処理手順を格納したプログラムとして構成することができる。そして、このプログラムを上記した情報処理装置で実行させることによって実現することができる。また、このプログラムは、ハードディスク、ＳＳＤ（Solid  State  Drive）、ＣＤ（Compact  Disk）−ＲＯＭ（Read  Only  Memory）、ＭＯ（Magneto-Optical  disk）、ＤＶＤ（Digital  Versatile  DiskまたはDigital  Video  Disk）、メモリカードなどの、情報処理装置で読取可能な記録媒体に記録される。この場合、情報処理装置によって記録媒体からプログラムが読み出されるようになる。また、このプログラムは、インターネットなどのネットワーク（通信回線）を介して配布することもできる。
【産業上の利用可能性】
【０３０１】
以上のように、この発明にかかるプログラム編集用プログラムは、タブレット端末において、図形を用いて記述されるプログラムを、より少ない労力で編集できる効果を有するとともに、プログラム編集画面を有効に利用できるという効果、および、プログラムの編集方法をより少ない期間で習得できるという効果を有しているので、プログラマブルコントローラなどの図形を用いたプログラミングに有用である。
【符号の説明】
【０３０２】
１０，１０Ｂ  プログラム編集用プログラム、１１  入力ジェスチャ特性情報取得手段、１２  処理実行手段、１４  デバイス名入力処理手段、１０１  左母線、１０２  右母線、１１１，１１１ａ〜１１１ｃ，１１２，１１２ａ〜１１２ｃ，１１３  接続線、１２０  記号、１２１，１２１ａ〜１２１ｃ  ａ接点記号、１２２  ｂ接点記号、１２３  立ち下がりａ接点記号、１３１，１３１ａ〜１３１ｃ  コイル記号、１３２  命令行、１３２ａ  立ち下がり命令行、１５１，１５１ａ，１５１ｂ  デバイス名、１６１  選択ウインドウ、１６２  文字入力領域、１６３  文字入力ウインドウ、１６４  文字入力操作受付領域、１６５  ガイド線、１６６  変更候補ウインドウ、１７１  変更許可ボタン、１７２  削除許可ボタン、１８０，２００，２００Ａ  プログラム編集画面、１８５  ヘルプ情報検索ウインドウ、１８５ａ  検索条件入力領域、１８５ｂ  検索ボタン、１８６  ヘルプ情報表示ウインドウ、２１０  文字入力ウインドウ、２２０  文字入力領域。
【要約】
プログラム編集画面上で図形を用いて記述されるプログラムを編集するプログラム編集用プログラム（１０）において、コンピュータをプログラム編集画面上に入力される座標情報、座標の軌跡を含む入力ジェスチャ特性情報を取得する入力ジェスチャ特性情報取得手段（１１）と、入力ジェスチャ特性情報に基づいて、操作対象を特定するとともに、前記操作対象に適用するコマンドを特定して、前記コマンドを実行し、プログラム編集画面に表示する処理実行手段（１２）と、して機能させる。【図１】
0005677623.tif 000002
【図２】
0005677623.tif 000003
【図３】
0005677623.tif 000004
【図４】
0005677623.tif 000005
【図５】
0005677623.tif 000006
【図６】
0005677623.tif 000007
【図７】
0005677623.tif 000008
【図８】
0005677623.tif 000009
【図９】
0005677623.tif 000010
【図１０】
0005677623.tif 000011
【図１１】
0005677623.tif 000012
【図１２】
0005677623.tif 000013
【図１３】
0005677623.tif 000014
【図１４】
0005677623.tif 000015
【図１５】
0005677623.tif 000016
【図１６】
0005677623.tif 000017
【図１７】
0005677623.tif 000018
【図１８】
0005677623.tif 000019
【図１９】
0005677623.tif 000020
【図２０】
0005677623.tif 000021
【図２１】
0005677623.tif 000022
【図２２】
0005677623.tif 000023
【図２３】
0005677623.tif 000024
【図２４】
0005677623.tif 000025
【図２５】
0005677623.tif 000026
【図２６】
0005677623.tif 000027
【図２７】
0005677623.tif 000028
【図２８】
0005677623.tif 000029
【図２９】
0005677623.tif 000030
【図３０】
0005677623.tif 000031
【図３１】
0005677623.tif 000032
【図３２】
0005677623.tif 000033
【図３３】
0005677623.tif 000034
【図３４】
0005677623.tif 000035
【図３５】
0005677623.tif 000036
【図３６】
0005677623.tif 000037
【図３７】
0005677623.tif 000038
【図３８】
0005677623.tif 000039
【図３９】
0005677623.tif 000040
【図４０】
0005677623.tif 000041
【図４１】
0005677623.tif 000042
【図４２】
0005677623.tif 000043
【図４３】
0005677623.tif 000044
【図４４】
0005677623.tif 000045
【図４５】
0005677623.tif 000046
【図４６】
0005677623.tif 000047
【図４７】
0005677623.tif 000048
【図４８】
0005677623.tif 000049
【図４９】
0005677623.tif 000050
【図５０】
0005677623.tif 000051
【図５１】
0005677623.tif 000052
【図５２】
0005677623.tif 000053
【図５３】
0005677623.tif 000054
【図５４】
0005677623.tif 000055
【図５５】
0005677623.tif 000056
【図５６】
0005677623.tif 000057
【図５７】
0005677623.tif 000058
【図５８】
0005677623.tif 000059
【図５９】
0005677623.tif 000060
【図６０】
0005677623.tif 000061
【図６１】
0005677623.tif 000062
【図６２】
0005677623.tif 000063
【図６３】
0005677623.tif 000064