(57)【要約】【課題】互いに変数が整合するコントローラ用プログラムとＵＩプログラムとの作成を容易にする。【解決手段】プログラム開発支援部１１は、シーケンスプログラム編集部、ＵＩ編集部、および、複写機能部を実現する演算部１１１とプログラム開発支援プログラム１１２と、表示部１４と、操作入力部１２と、を備える。複写機能部は、操作入力部１２によってシーケンスプログラムの要素を選択してユーザインターフェースプログラムの編集画面内に移動させたことを検出して、シーケンスプログラムの要素に応じたユーザインターフェースプログラムの要素を、ユーザインターフェースプログラムの編集画面に反映させる。複写機能部は、編集中のシーケンスプログラムの種類を検出し、シーケンスプログラムの種類に応じて、ユーザインターフェースプログラムの要素の種類を決定する。【選択図】図１
2018205857.tif 000002
【特許請求の範囲】
【請求項１】
コントローラ用プログラムの編集または前記コントローラ用プログラムで用いられる変数の設定を行うコントローラ編集部と、
ユーザインターフェースプログラムの編集を行うＵＩ編集部と、
前記コントローラ用プログラムの編集画面または前記変数の設定画面と、前記ユーザインターフェースプログラムの編集画面と、を表示する表示部と、
前記表示部に表示された前記コントローラ用プログラムの要素の選択、移動または前記変数の選択、移動の操作入力を受け付ける操作入力部と、
前記ユーザインターフェースプログラムの編集画面内に移動させた前記コントローラ用プログラムの要素または前記変数に応じた前記ユーザインターフェースプログラムの要素を、前記ユーザインターフェースプログラムの編集画面に反映させる複写機能部と、を備え、
前記複写機能部は、
編集中の前記コントローラ用プログラムの種類に応じて、前記ユーザインターフェースプログラムの要素の種類を決定する、
プログラム開発支援装置。
【請求項２】
前記複写機能部は、
前記コントローラ用プログラムの要素または前記変数の移動先に、前記ユーザインターフェースプログラムの要素がないと、前記ユーザインターフェースプログラムの編集画面に対して、前記ユーザインターフェースプログラムの要素を新たに表示させる、
請求項１に記載のプログラム開発支援装置。
【請求項３】
前記複写機能部は、
前記コントローラ用プログラムの要素の変数または前記変数がグローバル変数であれば、前記ユーザインターフェースプログラムの要素を新たに表示させ、
前記コントローラ用プログラムの要素の変数または前記変数がグローバル変数でなければ、前記ユーザインターフェースプログラムの要素を追加しない、
請求項２に記載のプログラム開発支援装置。
【請求項４】
前記複写機能部は、
前記コントローラ用プログラムの要素または前記変数の移動先に、前記コントローラ用プログラムの要素に対応する前記ユーザインターフェースプログラムの要素があると、当該要素の変数マッピングを更新する、
請求項１に記載のプログラム開発支援装置。
【請求項５】
前記複写機能部は、
前記コントローラ用プログラムの要素の変数または前記変数がグローバル変数であれば、前記変数マッピングを更新し、
前記コントローラ用プログラムの要素の変数または前記変数がグローバル変数でなければ、前記変数マッピングを更新しない、
請求項４に記載のプログラム開発支援装置。
【請求項６】
前記複写機能部は、
前記選択したコントローラ用プログラムの要素の変数のデータ型を検出して、該変数のデータ型に応じて、前記ユーザインターフェースプログラムの要素の表示態様を決定する、
請求項１乃至請求項５のいずれかに記載のプログラム開発支援装置。
【請求項７】
前記複写機能部は、
複数のコントローラ用プログラムを並行して編集することが可能であり、
前記選択したコントローラ用プログラムを検出して、この検出されたコントローラ用プログラムに対する変数マッピングを行う、
請求項１乃至請求項６のいずれかに記載のプログラム開発支援装置。
【請求項８】
前記コントローラ用プログラムは、ラダープログラム、または、ＳＴプログラムである、
請求項１乃至請求項７のいずれかに記載のプログラム開発支援装置。
【請求項９】
前記コントローラ用プログラムが前記ＳＴプログラムであると、ＳＴ要素の位置によって、前記ユーザインターフェースプログラムの要素の形状を決定する、
請求項８に記載のプログラム開発支援装置。
【請求項１０】
コントローラ用プログラムの編集または変数の設定を行うコントローラ編集処理と、
ユーザインターフェースプログラムの編集を行うＵＩ編集処理と、
前記コントローラ用プログラムの編集画面または前記変数の設定画面と、前記ユーザインターフェースプログラムの編集画面と、を表示する表示処理と、
前記表示部に表示された前記コントローラ用プログラムの要素を選択、移動させる操作入力を受け付ける操作入力処理と、
前記ユーザインターフェースプログラムの編集画面内に移動させた前記コントローラ用プログラムの要素または前記変数に応じた前記ユーザインターフェースプログラムの要素を、前記ユーザインターフェースプログラムの編集画面に反映させる複写機能処理と、を有し、
前記複写機能処理では、
編集中の前記コントローラ用プログラムの種類に応じて、前記ユーザインターフェースプログラムの要素の種類を決定する、
プログラム開発支援方法。
【請求項１１】
コントローラ用プログラムの編集または変数の設定を行うコントローラ編集処理と、
ユーザインターフェースプログラムの編集を行うＵＩ編集処理と、
前記コントローラ用プログラムの編集画面または前記変数の設定画面と、前記ユーザインターフェースプログラムの編集画面と、を表示する表示処理と、
前記表示部に表示された前記コントローラ用プログラムの要素を選択、移動させる操作入力を受け付ける操作入力処理と、
前記ユーザインターフェースプログラムの編集画面内に移動させた前記コントローラ用プログラムの要素または前記変数に応じた前記ユーザインターフェースプログラムの要素を、前記ユーザインターフェースプログラムの編集画面に反映させる複写機能処理と、情報処理装置に実行させ、
前記複写機能処理では、
編集中の前記コントローラ用プログラムの種類に応じて、前記ユーザインターフェースプログラムの要素の種類を情報処理装置に決定させる、
プログラム開発支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、コントローラ用プログラムの編集とユーザインターフェース画面（ＵＩ画面）の編集とを実行するプログラム開発支援技術に関する。
【背景技術】
【０００２】
現在、シーケンス制御装置が多く実用化されている。このようなシーケンス制御装置には、ユーザインターフェースを備える表示器が接続されている。オペレータは、当該表示器への操作入力によって、シーケンス制御装置への設定を行う。
【０００３】
シーケンス制御装置は、コントローラ用プログラムであるシーケンスプログラムに基づいて動作し、表示器は、ユーザインターフェースプログラム（ＵＩプログラム）に基づいて動作する。シーケンスプログラムとＵＩプログラムとは、グローバル変数によって関連付けられている。したがって、表示器のユーザインターフェース画面を操作することによって、シーケンス制御装置の変数の設定、変更等が実現できる。
【０００４】
従来、シーケンスプログラムとＵＩプログラムとは、個別のエディタを用いて作成される。したがって、プログラマは、シーケンスプログラムで設定した変数を別途記録しておき、この記録した変数に基づいてＵＩプログラムを作成しなければならなかった。このため、シーケンスプログラムの変数とＵＩプログラムの変数とを正確に整合させて、これらのプログラムを作成することは容易ではなかった。
【０００５】
これに対し、特許文献１に記載のエディタ装置は、シーケンスプログラムの一種であるラダープログラムの要素（ラダー要素）をドラッグして、ＵＩの編集画面にドロップすることで、ラダー要素に応じたＵＩプログラムの要素を設定している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−１４０１０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載のエディタ装置では、ラダープログラムにしか対応できない。また、変数のデータ型等、シーケンスプログラムの要素に対する詳細な情報に応じて、ＵＩプログラムの要素等を設定できない。このため、プログラムの作成の容易性の向上には限界があった。
【０００８】
したがって、本発明の目的は、互いに変数が整合するコントローラ用プログラムとＵＩプログラムとの作成を容易にするプログラム開発支援技術を提供することにある。
【課題を解決するための手段】
【０００９】
この発明のプログラム開発支援装置は、コントローラ用プログラム編集部、ＵＩ編集部、表示部、操作入力部、および、複写機能部を備える。コントローラ用プログラム編集部は、コントローラ用プログラムの編集またはコントローラ用プログラムで用いられる変数の設定を行う。ＵＩ編集部は、ユーザインターフェースプログラムの編集を行う。表示部は、コントローラ用プログラムの編集画面または変数の設定画面と、ユーザインターフェースプログラムの編集画面と、を表示する。操作入力部は、表示部に表示されたコントローラ用プログラムの要素の選択、移動または記変数の選択、移動の操作入力を受け付ける。複写機能部は、ユーザインターフェースプログラムの編集画面内に移動させたコントローラ用プログラムの要素または変数に応じたユーザインターフェースプログラムの要素を、ユーザインターフェースプログラムの編集画面に反映させる。複写機能部は、編集中のコントローラ用プログラムの種類に応じて、ユーザインターフェースプログラムの要素の種類を決定する。
【００１０】
この構成では、コントローラ用プログラムの種類と要素、または変数に応じて、ユーザインターフェースプログラムの要素が自動的に設定される。例えば、ラダープログラムであれば、ラダープログラムの要素に応じて、ユーザインターフェースプログラムの要素が自動的に設定される。ＳＴプログラムであれば、ＳＴプログラムの要素に応じて、ユーザインターフェースプログラムの要素が自動的に設定される。変数設定であれば、変数設定プログラムの要素に応じて、ユーザインターフェースプログラムの要素が自動的に設定される。
【００１１】
また、このプログラム開発支援装置では、複写機能部は、コントローラ用プログラムの要素または変数の移動先に、ユーザインターフェースプログラムの要素がないと、ユーザインターフェースプログラムの編集画面に対して、ユーザインターフェースプログラムの要素を新たに表示させる。
【００１２】
この構成では、コントローラ用プログラムの種類と要素または変数に応じて、ユーザインターフェースプログラムの要素が自動的で追加される。
【００１３】
また、このプログラム開発支援装置では、複写機能部は、コントローラ用プログラムの要素または変数の移動先に、ユーザインターフェースプログラムの要素があると、当該要素の変数マッピングを更新する。
【００１４】
この構成では、ユーザインターフェースプログラムの要素の変数が自動的で更新される。
【発明の効果】
【００１５】
この発明によれば、互いに変数が整合するコントローラ用プログラムとＵＩプログラムとを、容易に作成できる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態に係るプログラム開発支援装置を含む情報処理装置の概略構成図である。
【図２】本発明のプログラム開発支援技術の処理を示すフローチャートである。
【図３】（Ａ）は、ラダープログラムの接点のドラッグ状態を示す画面図であり、（Ｂ）は、ラダープログラムの接点のドロップ状態を示す画面図である。
【図４】（Ａ）は、ラダープログラムのコイルのドラッグ状態を示す画面図であり、（Ｂ）は、ラダープログラムのコイルのドロップ状態を示す画面図である。
【図５】（Ａ）は、ラダープログラムの接点のドラッグ状態を示す画面図であり、（Ｂ）は、ラダープログラムの接点のドロップ状態を示す画面図である。
【図６】（Ａ）は、ＳＴプログラムの第１要素のドラッグ状態を示す画面図であり、（Ｂ）は、ＳＴプログラムの第１要素のドロップ状態を示す画面図である。
【図７】（Ａ）は、ＳＴプログラムの第２要素のドラッグ状態を示す画面図であり、（Ｂ）は、ＳＴプログラムの第２要素のドロップ状態を示す画面図である。
【図８】（Ａ）は、変数設定プログラムの変数のドラッグ状態を示す画面図であり、（Ｂ）は、変数設定編集領域の変数のドロップ状態を示す画面図である。
【図９】変数とＵＩプログラムの要素との関係を示す表である。
【図１０】本発明のプログラム開発支援技術の処理を示すフローチャートである。
【図１１】（Ａ）は、ＵＩプログラムのボタンのドラッグ状態を示す画面図であり、（Ｂ）は、ＵＩプログラムのボタンのドロップ状態を示す画面図である。
【発明を実施するための形態】
【００１７】
本発明の実施形態に係るプログラム開発支援技術について、図を参照して説明する。図１は、本発明の実施形態に係るプログラム開発支援装置を含む情報処理装置の概略構成図である。
【００１８】
図１に示すように、情報処理装置１０は、プログラム開発支援部１１、操作入力部１２、通信制御部１３、および、表示部１４を備える。情報処理装置１０は、パーソナルコンピュータ等によって実現される。操作入力部１２は、例えば、マウスやキーボードである。通信制御部１３は、シーケンス制御装置との通信制御を行う。表示部１４は、例えば、液晶ディプレイ等であり、後述の処理によって、シーケンスプログラム編集領域１４１、および、ＵＩ（ユーザインターフェース）プログラム編集領域１４２の少なくとも一方を表示する。シーケンスプログラム編集領域１４１、および、ＵＩプログラム編集領域１４２は、表示画面における所謂ウィンドウを形成しており、これらの領域の表示画面における位置および大きさは、操作入力部１２によって、変更可能に設定できる。シーケンスプログラム編集領域１４１が、本発明の「コントローラ用プログラムの編集画面」に対応し、ＵＩプログラム編集領域１４２が、本発明の「ユーザインターフェースプログラムの編集画面」に対応する。
【００１９】
プログラム開発支援部１１は、演算部１１１、記憶部１１２を備える。記憶部１１２には、プログラム開発支援プログラム２１０が記憶されている。プログラム開発支援プログラム２１０は、シーケンスプログラム編集プログラム２１１、ＵＩ編集プログラム２１２、および、複写機能プログラム２１３を有する。
【００２０】
演算部１１１は、シーケンスプログラム編集プログラム２１１を記憶部１１２から読み出して実行する。これによって、本願の「コントローラ編集部」が実現される。シーケンスプログラムの編集とは、シーケンス制御装置の動作を設定するプログラム、すなわち、コントローラ用プログラムであるシーケンスプログラム、および、このプログラムに利用される変数の編集である。変数には、グローバル変数とローカル変数とを含んでいる。
【００２１】
本願では、シーケンスプログラムとしては、ラダープログラム、および、ＳＴプログラムを含むものであり、これら２種類のプログラムを含んでいることが好適である。
【００２２】
演算部１１１は、このシーケンスプログラムの編集内容を、表示部１４のシーケンスプログラム編集領域１４１に表示する。
【００２３】
演算部１１１は、ＵＩ編集プログラム２１２を記憶部１１２から読み出して実行する。これによって、本願の「ＵＩ編集部」が実現される。ＵＩの編集とは、シーケンス制御装置に通信可能な表示装置（例えば、シーケンス制御装置に備え付けた表示装置）における、操作オブジェクトや表示オブジェクトの配置、それぞれオブジェクトに対する変数（グローバル変数とローカル変数）の設定等である。
【００２４】
演算部１１１は、このＵＩの編集内容を、表示部１４のＵＩプログラム編集領域１４２に表示する。
【００２５】
演算部１１１は、複写機能プログラム２１３を記憶部１１２から読み出して実行する。これによって、本願の「複写機能部」が実現される。複写機能とは、シーケンスプログラムの要素を、操作入力部１２を用いた所謂ドラッグ＆ドロップによって、ＵＩプログラム編集領域１４２に配置することによって、シーケンスプログラムの要素に応じたオブジェクト（ＵＩプログラムの要素）の追加、変数の更新を行うことである。また、複写機能とは、この処理によって、ＵＩプログラム編集領域１４２を更新することも含む。この際、複写機能プログラム２１３は、シーケンスプログラムの種類に応じて、シーケンスプログラムの要素を用いたＵＩプログラムの要素の自動設定を行う。
【００２６】
具体的には、プログラム開発支援部１１は、図２に示すような処理を実行する。図２は、本発明のプログラム開発支援技術の処理を示すフローチャートである。
【００２７】
プログラム開発支援部１１は、操作入力部１２の入力に基づいて、ドラッグ位置を検出する（Ｓ１１）。具体的には、プログラム開発支援部１１は、操作入力部１２によって、表示部１４に表示されているシーケンスプログラム編集領域１４１、および、ＵＩプログラム編集領域１４２の内、アクティブな（現在選択されている）領域を検出する。
【００２８】
プログラム開発支援部１１は、アクティブな領域がシーケンスプログラム編集領域１４１であれば、当該領域における選択されているシーケンスプログラムの要素を検出する。一方、プログラム開発支援部１１は、アクティブな領域がＵＩプログラム編集領域１４２であれば、当該領域における選択されているＵＩプログラムの要素を検出する。なお、ＵＩプログラムの要素を検出した場合の処理は、図２には示しておらず、図１０に示しており、ここでの説明は省略して、後述する。
【００２９】
アクティブな領域がシーケンスプログラム編集領域１４１の場合、プログラム開発支援部１１は、次の処理を実行する。
【００３０】
プログラム開発支援部１１は、シーケンスプログラムの種類を検出する。すなわち、プログラム開発支援部１１は、アクティブな領域で編集されているシーケンスプログラムが、ラダープログラム、ＳＴプログラム、および、変数設定プログラムのいずれであるかを検出する（Ｓ１２）。
【００３１】
プログラム開発支援部１１は、ラダープログラムであれば、ラダープログラムの要素、および、この要素の変数を検出する（Ｓ１３）。なお、ここで選択されるラダープログラムの要素は、接点やコイルであってもよく、接点やコイルとともに表示される変数名も、選択されるラダープログラムの要素に含んでもよい。プログラム開発支援部１１は、ＳＴプログラムであれば、ＳＴプログラムの要素、この要素の位置、および、この要素の変数を検出する（Ｓ１４）。プログラム開発支援部１１は、変数設定プログラムであれば、選択されている変数を検出する（Ｓ１５）。なお、プログラム開発支援部１１は、変数の検出にあたり、変数のデータ型も検出する。
【００３２】
プログラム開発支援部１１は、シーケンスプログラムの要素毎に対応するＵＩプログラムの要素（ＵＩプログラムの要素）と、変数のデータ型に応じた表示形式とを、記憶部１１２に記憶している。
【００３３】
プログラム開発支援部１１は、選択された要素に対応するＵＩプログラムの要素と、変数のデータ型に応じた表示形式を抽出する（Ｓ１６）。
【００３４】
プログラム開発支援部１１は、操作入力部１２の入力に基づいて、ドロップ位置を検出する（Ｓ１７）。具体的には、プログラム開発支援部１１は、操作入力部１２によって指定されたＵＩプログラム編集領域１４２の位置を検出する。
【００３５】
プログラム開発支援部１１は、ＵＩプログラムの要素が配置されていなかったら（Ｓ１８：ＮＯ）、ＵＩプログラム用の変数を生成する（Ｓ１９）。プログラム開発支援部１１は、抽出したＵＩプログラムの要素を、ドロップ位置に配置する（Ｓ２０）。プログラム開発支援部１１は、配置したＵＩプログラムの要素の表示形式を設定する（Ｓ２１）。プログラム開発支援部１１は、追加したＵＩプログラムの要素に応じて、ＵＩプログラムの変数マッピングを更新する（Ｓ２２）。
【００３６】
この際、プログラム開発支援部１１は、変数がグローバル変数であれば、すなわち、シーケンスプログラムとＵＩプログラムとで共通の変数であれば、ＵＩ要素の配置を実行し、変数マッピングを更新する。一方、プログラム開発支援部１１は、変数がグローバル変数でなければ、すなわち、シーケンスプログラムに固有の変数であれば、ドロップ処理によるＵＩ要素の配置を実行しない。
【００３７】
一方、プログラム開発支援部１１は、ＵＩプログラムの要素が配置されていたら（Ｓ１８：ＹＥＳ）、ドロップ位置に既に配置されているＵＩプログラムの要素の変数を変更するように、ＵＩプログラムの変数マッピングを更新する（Ｓ２２）。
【００３８】
この際、プログラム開発支援部１１は、変数がグローバル変数であれば、すなわち、シーケンスプログラムとＵＩプログラムとで共通の変数であれば、変数マッピングを更新する。一方、プログラム開発支援部１１は、変数がグローバル変数でなければ、すなわち、シーケンスプログラムに固有の変数であれば、変数マッピングを更新しない。
【００３９】
このような処理を行うことによって、シーケンスプログラムがいずれの種類であっても、シーケンスプログラムの要素に応じたＵＩプログラムの要素を、ＵＩ画面の指定された位置に自動で設定できる。この際、指定された位置にＵＩプログラムの要素が無ければ、ＵＩプログラムの要素を自動で追加するとともに、変数マッピングを自動で更新できる。一方、指定された位置にＵＩプログラムの要素が有れば、このＵＩプログラムの要素の変数を変更するように、変数マッピングを自動で更新できる。これにより、プログラマは、煩雑な処理を行うことなく、シーケンスプログラムとＵＩプログラムとの互いの変数を整合させながら、これらのプログラムを作成、編集することができる。
【００４０】
以下、各シーケンスプログラムからＵＩプログラムへのドラッグ＆ドロップを行った場合についてのより詳細な具体例を示す。
【００４１】
（実施例１）ラダープログラムからＵＩプログラムの要素を追加する場合
図３（Ａ）は、ラダープログラムの接点のドラッグ状態を示す画面図であり、図３（Ｂ）は、ラダープログラムの接点のドロップ状態を示す画面図である。図４（Ａ）は、ラダープログラムのコイルのドラッグ状態を示す画面図であり、図４（Ｂ）は、ラダープログラムのコイルのドロップ状態を示す画面図である。
【００４２】
図３（Ａ）、図３（Ｂ）、図４（Ａ）、図４（Ｂ）に示すように、ラダープログラムの編集とＵＩプログラムの編集を行う場合には、表示部１４の表示画面１４０には、ラダープログラム編集領域（ウィンドウ）１４１０、ＵＩプログラム編集領域（ウィンドウ）１４２が少なくとも表示される。また、表示画面１４０には、マルチビューエクスプローラ４１２、編集用のツールボックス４１３等も表示される。
【００４３】
ラダープログラム編集領域１４１０には、ラダー図が表示されており、ＵＩプログラム編集領域１４２には、ＵＩ画面が表示されている。
【００４４】
プログラマがマウス等の操作入力部１２を操作すると、当該マウスの動きに合わせて、表示画面１４０内をポインタが移動する。そして、ラダープログラムの要素の表示領域とポインタとが重なると、図３（Ａ）、図４（Ａ）に示すように、当該ラダープログラムの要素の表示領域の表示態様が変化する。この状態で、プログラマがドラッグ操作を行うと、当該ラダープログラムの要素が選択される。
【００４５】
次に、プログラマが、このドラッグ操作状態を維持して、マウスをＵＩプログラム編集領域１４２に移動させると、ＵＩプログラム編集領域１４２には、図３（Ｂ）、図４（Ｂ）に示すように、ラダープログラムの要素に応じたＵＩプログラムの要素が表示される。
【００４６】
具体的には、プログラム開発支援部１１は、ラダープログラムの要素とＵＩプログラムの要素との関係を予め記憶している。プログラム開発支援部１１は、ラダープログラムの要素が接点であれば、これに対応するＵＩプログラムの要素は、ボタンであると記憶しており、ラダープログラムの要素がコイルであれば、これに対応するＵＩプログラムの要素は、ビットランプであると記憶している。
【００４７】
したがって、図３（Ａ）に示すように、ラダープログラム編集領域１４１０において接点がドラッグ操作されて、ＵＩプログラム編集領域１４２にドロップ操作されると、図３（Ｂ）に示すように、ＵＩプログラム編集領域１４２の指定位置に、ボタンが配置され、表示される。この際、ボタンには、固有のインデックスを添付して表示するとよい。固有のインデックスとは、当該ボタンに対応する接点の変数名等である。
【００４８】
この際、このボタンには、対応する接点の変数が設定される。また、ＵＩプログラムの変数マッピングに、当該ボタンおよびその変数が追加される。
【００４９】
また、図４（Ａ）に示すように、ラダープログラム編集領域１４１０においてコイルがドラッグ操作されて、ＵＩプログラム編集領域１４２にドロップ操作されると、図４（Ｂ）に示すように、ＵＩプログラム編集領域１４２の指定位置に、ビットランプが配置され、表示される。この際、ビットランプには、固有のインデックスを添付して表示するとよい。固有のインデックスとは、当該ビットランプに対応するコイルの変数名等である。
【００５０】
この際、このビットランプには、対応するコイルの変数が設定される。また、ＵＩプログラムの変数マッピングに、当該ビットランプおよびその変数が追加される。
【００５１】
（実施例２）ラダープログラムからＵＩプログラムの要素の変数を更新する場合
図５（Ａ）は、ラダープログラムの接点のドラッグ状態を示す画面図であり、図５（Ｂ）は、ラダープログラムの接点のドロップ状態を示す画面図である。なお、図５（Ａ）は、図３（Ａ）と同じであり、図５（Ｂ）は、図３（Ｂ）に対して、ドロップ位置に既にＵＩプログラムの要素が存在する点のみにおいて異なる。したがって、図５（Ａ）、図５（Ｂ）を用いて説明する処理において、図３（Ａ）、図３（Ｂ）を用いて説明する処理を動揺の箇所の説明は省略する。
【００５２】
図５（Ａ）に示すように、ラダープログラム編集領域１４１０において接点がドラッグ操作されて、ＵＩプログラム編集領域１４２にドロップ操作される。ここで、図５（Ｂ）に示すように、ドロップ位置には、ボタンが既に配置され、表示される。この場合、プログラム開発支援部１１は、ボタンをそのまま表示し、当該ボタンの変数のみを変更する更新を実行する。これとともに、ボタンに添付された固有のインデックスも変更される。当該ビットランプの変数の変更を示すＵＩプログラムの変数マッピングの更新が行われる。
【００５３】
（実施例３）ＳＴプログラムからＵＩプログラムの要素を追加する場合
図６（Ａ）は、ＳＴプログラムの第１要素のドラッグ状態を示す画面図であり、図６（Ｂ）は、ＳＴプログラムの第１要素のドロップ状態を示す画面図である。図７（Ａ）は、ＳＴプログラムの第２要素のドラッグ状態を示す画面図であり、図７（Ｂ）は、ＳＴプログラムの第２要素のドロップ状態を示す画面図である。
【００５４】
図６（Ａ）、図６（Ｂ）、図７（Ａ）、図７（Ｂ）に示すように、ＳＴプログラムの編集とＵＩプログラムの編集を行う場合には、表示部１４の表示画面１４０には、ＳＴプログラム編集領域（ウィンドウ）１４４、ＵＩプログラム編集領域（ウィンドウ）１４２が少なくとも表示される。
【００５５】
ＳＴプログラム編集領域１４４には、ＳＴプログラムの式が表示されており、ＵＩプログラム編集領域１４２には、ＵＩ画面が表示されている。
【００５６】
プログラマがマウス等の操作入力部１２を操作すると、当該マウスの動きに合わせて、表示画面１４０内をポインタが移動する。そして、ＳＴプログラムの要素の表示領域とポインタとが重なると、図６（Ａ）、図７（Ａ）に示すように、当該ＳＴプログラムの要素の表示領域の表示態様が変化する。この状態で、プログラマがドラッグ操作を行うと、当該ＳＴプログラムの要素が選択される。
【００５７】
次に、プログラマが、このドラッグ操作状態を維持して、マウスをＵＩプログラム編集領域１４２に移動させると、ＵＩプログラム編集領域１４２には、図６（Ｂ）、図７（Ｂ）に示すように、ＳＴプログラムの要素に応じたＵＩプログラムの要素が表示される。
【００５８】
具体的には、プログラム開発支援部１１は、ＳＴプログラムの要素とＵＩプログラムの要素との関係を予め記憶している。プログラム開発支援部１１は、ＳＴプログラムの要素が”＝”の右側にあれば、これに対応するＵＩプログラムの要素は、ボタンであると記憶しており、ＳＴプログラムの要素が”＝”の左側にあれば、これに対応するＵＩプログラムの要素は、ビットランプであると記憶している。
【００５９】
したがって、図６（Ａ）に示すように、ＳＴプログラム編集領域１４４において”＝”の右側の要素がドラッグ操作されて、ＵＩプログラム編集領域１４２にドロップ操作されると、図６（Ｂ）に示すように、ＵＩプログラム編集領域１４２の指定位置に、ボタンが配置され、表示される。この際、ボタンには、固有のインデックスを添付して表示するとよい。固有のインデックスとは、当該ボタンに対応するＳＴプログラムの要素の変数名等である。
【００６０】
この際、このボタンには、対応するＳＴプログラムの要素の変数が設定される。また、ＵＩプログラムの変数マッピングに、当該ボタンおよびその変数が追加される。
【００６１】
また、図７（Ａ）に示すように、ＳＴプログラム編集領域１４４において”＝”の左側の要素がドラッグ操作されて、ＵＩプログラム編集領域１４２にドロップ操作されると、図７（Ｂ）に示すように、ＵＩプログラム編集領域１４２の指定位置に、ビットランプが配置され、表示される。この際、ビットランプには、固有のインデックスを添付して表示するとよい。固有のインデックスとは、当該ビットランプに対応するＳＴプログラムの要素の変数名等である。
【００６２】
この際、このビットランプには、対応するＳＴプログラムの要素の変数が設定される。また、ＵＩプログラムの変数マッピングに、当該ビットランプおよびその変数が追加される。
【００６３】
なお、ここでは詳細に説明していないが、ラダープログラムの要素と同様に、ＳＴプログラムの要素に対して、ＵＩプログラムの要素がドロップ先に既に配置されていれば、当該ＵＩプログラムの要素の変数の更新を行う。
【００６４】
（実施例３）変数設定編集領域からＵＩプログラムの要素を追加する場合
図８（Ａ）は、変数設定編集領域の変数のドラッグ状態を示す画面図であり、図８（Ｂ）は、変数設定編集領域の変数のドロップ状態を示す画面図である。
【００６５】
図８（Ａ）、図８（Ｂ）に示すように、変数設定の編集とＵＩプログラムの編集を行う場合には、表示部１４の表示画面１４０には、変数設定編集領域（ウィンドウ）１４５、ＵＩプログラム編集領域（ウィンドウ）１４２が少なくとも表示される。この変数設定編集領域１４５が、本発明の「変数の設定画面」に対応する。また、表示画面１４０には、マルチビューエクスプローラ４１２、編集用のツールボックス４１３等も表示される。さらには、必要に応じて、ラダープログラム編集領域、ＳＴプログラム編集領域当も表示可能である。
【００６６】
変数設定編集領域１４５には、変数の一覧が表示されている。変数には、それぞれに変数型が設定されている。ＵＩプログラム編集領域１４２には、ＵＩ画面が表示されている。
【００６７】
プログラマがマウス等の操作入力部１２を操作すると、当該マウスの動きに合わせて、表示画面１４０内をポインタが移動する。そして、変数設定プログラムの要素（一覧表示された変数の内、選択する変数）の表示領域とポインタとが重なると、図８（Ａ）に示すように、当該変数設定プログラムの変数の表示領域の表示態様が変化する。この状態で、プログラマがドラッグ操作を行うと、当該変数が選択される。
【００６８】
次に、プログラマが、このドラッグ操作状態を維持して、マウスをＵＩプログラム編集領域１４２に移動させると、ＵＩプログラム編集領域１４２には、図８（Ｂ）に示すように、変数に応じたＵＩプログラムの要素が表示される。この際、変数型を用いて、ＵＩプログラムの要素が設定される。
【００６９】
具体的には、プログラム開発支援部１１は、変数型とＵＩプログラムの要素との関係を予め記憶している。図９は、変数とＵＩプログラムの要素との関係を示す表である。図９に示すように、変数型がＢＯＯＬ型であれば、ＵＩプログラムの要素は、ビットランプである。変数型が整数型または実数型であれば、ＵＩプログラムの要素は、右寄せ型のデータディスプレイである。変数型がＳＴＲＩＮＧ型であれば、ＵＩプログラムの要素は、左寄せ型のデータディスプレイである。変数型が構造体型であれば、ＵＩプログラムの要素は、構造体のメンバに応じた形状および態様の表示枠となる。
【００７０】
したがって、図８（Ａ）に示すように、変数設定編集領域１４５において、ＩＮＴ（整数）型の変数がドラッグ操作されて、ＵＩプログラム編集領域１４２にドロップ操作されると、図８（Ｂ）に示すように、ＵＩプログラム編集領域１４２の指定位置に、データディスプレイ（右寄せ型）が配置され、表示される。この際、ＵＩプログラムの変数マッピングに、当該変数が追加される。
【００７１】
なお、上述の説明では、プログラム開発支援部１１は、シーケンスプログラムの要素からＵＩプログラムの要素を設定したが、逆の処理を行うこともできる。すなわち、プログラム開発支援部１１は、ＵＩプログラムの要素からシーケンスプログラムの要素を設定できる。
【００７２】
具体的には、プログラム開発支援部１１は、図１０に示すような処理を実行する。図１０は、本発明のプログラム開発支援技術の処理を示すフローチャートである。なお、図１０では、シーケンスプログラムがラダープログラムである態様を示しているが、ＳＴプログラム、変数設定プログラムに対しても同様の処理を行うことができる。
【００７３】
プログラム開発支援部１１は、操作入力部１２の入力に基づいて、ドラッグ位置を検出する（Ｓ１１）。この処理は、図２のＳ１１の処理を同じである。
【００７４】
プログラム開発支援部１１は、ドラッグされたＵＩプログラムの要素の種類と変数を抽出する（Ｓ３２）。
【００７５】
プログラム開発支援部１１は、操作入力部１２の入力に基づいて、ドロップ位置を検出する（Ｓ３３）。具体的には、プログラム開発支援部１１は、操作入力部１２によって指定されたラダープログラム編集領域１４１０内の位置を検出する。
【００７６】
プログラム開発支援部１１は、抽出したＵＩプログラムの要素に応じたラダープログラム用の変数を生成する（Ｓ３４）。
【００７７】
プログラム開発支援部１１は、抽出したＵＩプログラムの要素に応じたラダープログラムの要素（ラダー要素）を、ドロップ位置に配置する（Ｓ３５）。
【００７８】
プログラム開発支援部１１は、配置したラダープログラムの要素に対して変数を設定する（Ｓ３６）。この際、プログラム開発支援部１１は、追加したラダープログラムの要素に応じて、ラダープログラムの変数マッピングを更新する。
【００７９】
図１１（Ａ）は、ＵＩプログラムのボタンのドラッグ状態を示す画面図であり、図１１（Ｂ）は、ＵＩプログラムのボタンのドロップ状態を示す画面図である。
【００８０】
プログラマがマウス等の操作入力部１２を操作すると、当該マウスの動きに合わせて、表示画面１４０内をポインタが移動する。そして、ＵＩプログラムの要素の表示領域とポインタとが重なると、当該ＵＩプログラムの要素の表示領域の表示態様が変化する。この状態で、プログラマがドラッグ操作を行うと、当該ＵＩプログラムの要素が選択される。
【００８１】
次に、プログラマが、このドラッグ操作状態を維持して、マウスをラダープログラム編集領域１４１０に移動させると、ラダープログラム編集領域１４１０には、図１１（Ｂ）に示すように、ＵＩプログラムの要素に応じたラダープログラムの要素が表示される。
【００８２】
したがって、図１１（Ａ）に示すように、ＵＩプログラム編集領域１４２においてボタンがドラッグ操作されて、ラダープログラム編集領域１４１０にドロップ操作されると、図１１（Ｂ）に示すように、ラダープログラム編集領域１４１０の指定位置に、接点が配置され、表示される。この際、接点には、固有のインデックスを添付して表示するとよい。固有のインデックスとは、当該ボタンに対応する接点の変数名等である。また、この新たに追加された接点は、近接する両側のラダープログラムの要素に自動的に接続される。
【００８３】
この際、この接点には、対応するボタンの変数が設定される。また、ラダープログラムの変数マッピングに、当該接点およびその変数が追加される。
【００８４】
なお、この処理においても、上述の実施例１と同様に上書き更新の処理を適用することもできる。
【００８５】
なお、上述の説明では特に詳細に説明していないが、シーケンスプログラムが適用されるコントローラ名も、ドラッグ＆ドロップ時の情報として利用される。例えば、複数のコントローラが並行して編集されている状態、例えば、上述の各図に示すように、コントローラ１（ＣＴＲＬ１）とコントローラ（ＣＴＲＬ２）とが並行して編集されている状態では、編集がアクティブなコントローラ名（各図におけるコントローラ１（ＣＴＲＬ１））を含むように、変数マッピングを更新する。これによって、複数のコントローラを並行して編集していても、互いに変数が整合するシーケンスプログラムとＵＩプログラムとを、容易に作成できる。
【００８６】
また、上述の説明では、変数が配列の場合について記載していないが、変数が配列の場合には、上述の処理を基本として、シーケンスプログラムの要素の配列数に応じて、ＵＩプログラムの要素を配列表示することができる。したがって、配列された変数に対しても、シーケンスプログラムとＵＩプログラムとを、互いに整合させて容易に作成できる。
【００８７】
また、上述の説明では、シーケンスプログラムまたは変数設定からＵＩプログラムへのドラッグ＆ドロップを行う態様を示したが、ＵＩプログラムからシーケンスプログラムへのドラッグ＆ドロップを行うことも、同様の原理を用いて可能である。
【００８８】
また、上述の説明では、シーケンスプログラム編集領域１４１、ＵＩプログラム編集領域１４２、および、変数設定編集領域１４５を、表示画面１４０に同時に表示する態様を示した。しかしながら、例えば、シーケンスプログラム編集領域１４１、ＵＩプログラム編集領域１４２、および、変数設定編集領域１４５をそれぞれ表示画面１４０に対する全画面表示で設定し、各領域に対するタブ操作等によって切り替えて表示する態様であっても、上述の処理を適用することが可能である。この場合、例えば、タブにマウスを重ねることでカレント（編集対象）の編集領域を切り替えて、マウスによるドラッグ＆ドロップを実行すればよい。また、シーケンスプログラム編集領域１４１、ＵＩプログラム編集領域１４２、および、変数設定編集領域１４５の表示態様はこれに限らず、複数の領域を表示画面に表示させる各種の方法を用いて適宜設定することができる。
【符号の説明】
【００８９】
１０：情報処理装置
１１：プログラム開発支援部
１２：操作入力部
１３：通信制御部
１４：表示部
１１１：演算部
１１２：記憶部
１４０：表示画面
１４１：シーケンスプログラム編集領域
１４２：ＵＩプログラム編集領域
１４４：ＳＴプログラム編集領域
１４５：変数設定編集領域
２１０：プログラム開発支援プログラム
２１１：シーケンスプログラム編集プログラム
２１２：ＵＩ編集プログラム
２１３：複写機能プログラム
４１２：マルチビューエクスプローラ
４１３：ツールボックス
１４１０：ラダープログラム編集領域
【図１】
2018205857.tif 000003
【図２】
2018205857.tif 000004
【図３】
2018205857.tif 000005
【図４】
2018205857.tif 000006
【図５】
2018205857.tif 000007
【図６】
2018205857.tif 000008
【図７】
2018205857.tif 000009
【図８】
2018205857.tif 000010
【図９】
2018205857.tif 000011
【図１０】
2018205857.tif 000012
【図１１】
2018205857.tif 000013