特開2018-205857(P2018-205857A)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オムロン株式会社の特許一覧
特開2018-205857プログラム開発支援装置、プログラム開発支援方法、および、プログラム開発支援プログラム
<>
  • 特開2018205857-プログラム開発支援装置、プログラム開発支援方法、および、プログラム開発支援プログラム 図000003
  • 特開2018205857-プログラム開発支援装置、プログラム開発支援方法、および、プログラム開発支援プログラム 図000004
  • 特開2018205857-プログラム開発支援装置、プログラム開発支援方法、および、プログラム開発支援プログラム 図000005
  • 特開2018205857-プログラム開発支援装置、プログラム開発支援方法、および、プログラム開発支援プログラム 図000006
  • 特開2018205857-プログラム開発支援装置、プログラム開発支援方法、および、プログラム開発支援プログラム 図000007
  • 特開2018205857-プログラム開発支援装置、プログラム開発支援方法、および、プログラム開発支援プログラム 図000008
  • 特開2018205857-プログラム開発支援装置、プログラム開発支援方法、および、プログラム開発支援プログラム 図000009
  • 特開2018205857-プログラム開発支援装置、プログラム開発支援方法、および、プログラム開発支援プログラム 図000010
  • 特開2018205857-プログラム開発支援装置、プログラム開発支援方法、および、プログラム開発支援プログラム 図000011
  • 特開2018205857-プログラム開発支援装置、プログラム開発支援方法、および、プログラム開発支援プログラム 図000012
  • 特開2018205857-プログラム開発支援装置、プログラム開発支援方法、および、プログラム開発支援プログラム 図000013
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2018-205857(P2018-205857A)
(43)【公開日】2018年12月27日
(54)【発明の名称】プログラム開発支援装置、プログラム開発支援方法、および、プログラム開発支援プログラム
(51)【国際特許分類】
   G06F 8/00 20180101AFI20181130BHJP
【FI】
   G06F9/06 620A
【審査請求】未請求
【請求項の数】11
【出願形態】OL
【全頁数】16
(21)【出願番号】特願2017-107429(P2017-107429)
(22)【出願日】2017年5月31日
(71)【出願人】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110000970
【氏名又は名称】特許業務法人 楓国際特許事務所
(72)【発明者】
【氏名】岩村 慎太郎
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376BC08
5B376BC31
5B376BC52
(57)【要約】
【課題】互いに変数が整合するコントローラ用プログラムとUIプログラムとの作成を容易にする。
【解決手段】プログラム開発支援部11は、シーケンスプログラム編集部、UI編集部、および、複写機能部を実現する演算部111とプログラム開発支援プログラム112と、表示部14と、操作入力部12と、を備える。複写機能部は、操作入力部12によってシーケンスプログラムの要素を選択してユーザインターフェースプログラムの編集画面内に移動させたことを検出して、シーケンスプログラムの要素に応じたユーザインターフェースプログラムの要素を、ユーザインターフェースプログラムの編集画面に反映させる。複写機能部は、編集中のシーケンスプログラムの種類を検出し、シーケンスプログラムの種類に応じて、ユーザインターフェースプログラムの要素の種類を決定する。
【選択図】図1
【特許請求の範囲】
【請求項1】
コントローラ用プログラムの編集または前記コントローラ用プログラムで用いられる変数の設定を行うコントローラ編集部と、
ユーザインターフェースプログラムの編集を行うUI編集部と、
前記コントローラ用プログラムの編集画面または前記変数の設定画面と、前記ユーザインターフェースプログラムの編集画面と、を表示する表示部と、
前記表示部に表示された前記コントローラ用プログラムの要素の選択、移動または前記変数の選択、移動の操作入力を受け付ける操作入力部と、
前記ユーザインターフェースプログラムの編集画面内に移動させた前記コントローラ用プログラムの要素または前記変数に応じた前記ユーザインターフェースプログラムの要素を、前記ユーザインターフェースプログラムの編集画面に反映させる複写機能部と、を備え、
前記複写機能部は、
編集中の前記コントローラ用プログラムの種類に応じて、前記ユーザインターフェースプログラムの要素の種類を決定する、
プログラム開発支援装置。
【請求項2】
前記複写機能部は、
前記コントローラ用プログラムの要素または前記変数の移動先に、前記ユーザインターフェースプログラムの要素がないと、前記ユーザインターフェースプログラムの編集画面に対して、前記ユーザインターフェースプログラムの要素を新たに表示させる、
請求項1に記載のプログラム開発支援装置。
【請求項3】
前記複写機能部は、
前記コントローラ用プログラムの要素の変数または前記変数がグローバル変数であれば、前記ユーザインターフェースプログラムの要素を新たに表示させ、
前記コントローラ用プログラムの要素の変数または前記変数がグローバル変数でなければ、前記ユーザインターフェースプログラムの要素を追加しない、
請求項2に記載のプログラム開発支援装置。
【請求項4】
前記複写機能部は、
前記コントローラ用プログラムの要素または前記変数の移動先に、前記コントローラ用プログラムの要素に対応する前記ユーザインターフェースプログラムの要素があると、当該要素の変数マッピングを更新する、
請求項1に記載のプログラム開発支援装置。
【請求項5】
前記複写機能部は、
前記コントローラ用プログラムの要素の変数または前記変数がグローバル変数であれば、前記変数マッピングを更新し、
前記コントローラ用プログラムの要素の変数または前記変数がグローバル変数でなければ、前記変数マッピングを更新しない、
請求項4に記載のプログラム開発支援装置。
【請求項6】
前記複写機能部は、
前記選択したコントローラ用プログラムの要素の変数のデータ型を検出して、該変数のデータ型に応じて、前記ユーザインターフェースプログラムの要素の表示態様を決定する、
請求項1乃至請求項5のいずれかに記載のプログラム開発支援装置。
【請求項7】
前記複写機能部は、
複数のコントローラ用プログラムを並行して編集することが可能であり、
前記選択したコントローラ用プログラムを検出して、この検出されたコントローラ用プログラムに対する変数マッピングを行う、
請求項1乃至請求項6のいずれかに記載のプログラム開発支援装置。
【請求項8】
前記コントローラ用プログラムは、ラダープログラム、または、STプログラムである、
請求項1乃至請求項7のいずれかに記載のプログラム開発支援装置。
【請求項9】
前記コントローラ用プログラムが前記STプログラムであると、ST要素の位置によって、前記ユーザインターフェースプログラムの要素の形状を決定する、
請求項8に記載のプログラム開発支援装置。
【請求項10】
コントローラ用プログラムの編集または変数の設定を行うコントローラ編集処理と、
ユーザインターフェースプログラムの編集を行うUI編集処理と、
前記コントローラ用プログラムの編集画面または前記変数の設定画面と、前記ユーザインターフェースプログラムの編集画面と、を表示する表示処理と、
前記表示部に表示された前記コントローラ用プログラムの要素を選択、移動させる操作入力を受け付ける操作入力処理と、
前記ユーザインターフェースプログラムの編集画面内に移動させた前記コントローラ用プログラムの要素または前記変数に応じた前記ユーザインターフェースプログラムの要素を、前記ユーザインターフェースプログラムの編集画面に反映させる複写機能処理と、を有し、
前記複写機能処理では、
編集中の前記コントローラ用プログラムの種類に応じて、前記ユーザインターフェースプログラムの要素の種類を決定する、
プログラム開発支援方法。
【請求項11】
コントローラ用プログラムの編集または変数の設定を行うコントローラ編集処理と、
ユーザインターフェースプログラムの編集を行うUI編集処理と、
前記コントローラ用プログラムの編集画面または前記変数の設定画面と、前記ユーザインターフェースプログラムの編集画面と、を表示する表示処理と、
前記表示部に表示された前記コントローラ用プログラムの要素を選択、移動させる操作入力を受け付ける操作入力処理と、
前記ユーザインターフェースプログラムの編集画面内に移動させた前記コントローラ用プログラムの要素または前記変数に応じた前記ユーザインターフェースプログラムの要素を、前記ユーザインターフェースプログラムの編集画面に反映させる複写機能処理と、情報処理装置に実行させ、
前記複写機能処理では、
編集中の前記コントローラ用プログラムの種類に応じて、前記ユーザインターフェースプログラムの要素の種類を情報処理装置に決定させる、
プログラム開発支援プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、コントローラ用プログラムの編集とユーザインターフェース画面(UI画面)の編集とを実行するプログラム開発支援技術に関する。
【背景技術】
【0002】
現在、シーケンス制御装置が多く実用化されている。このようなシーケンス制御装置には、ユーザインターフェースを備える表示器が接続されている。オペレータは、当該表示器への操作入力によって、シーケンス制御装置への設定を行う。
【0003】
シーケンス制御装置は、コントローラ用プログラムであるシーケンスプログラムに基づいて動作し、表示器は、ユーザインターフェースプログラム(UIプログラム)に基づいて動作する。シーケンスプログラムとUIプログラムとは、グローバル変数によって関連付けられている。したがって、表示器のユーザインターフェース画面を操作することによって、シーケンス制御装置の変数の設定、変更等が実現できる。
【0004】
従来、シーケンスプログラムとUIプログラムとは、個別のエディタを用いて作成される。したがって、プログラマは、シーケンスプログラムで設定した変数を別途記録しておき、この記録した変数に基づいてUIプログラムを作成しなければならなかった。このため、シーケンスプログラムの変数とUIプログラムの変数とを正確に整合させて、これらのプログラムを作成することは容易ではなかった。
【0005】
これに対し、特許文献1に記載のエディタ装置は、シーケンスプログラムの一種であるラダープログラムの要素(ラダー要素)をドラッグして、UIの編集画面にドロップすることで、ラダー要素に応じたUIプログラムの要素を設定している。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2002−140107号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1に記載のエディタ装置では、ラダープログラムにしか対応できない。また、変数のデータ型等、シーケンスプログラムの要素に対する詳細な情報に応じて、UIプログラムの要素等を設定できない。このため、プログラムの作成の容易性の向上には限界があった。
【0008】
したがって、本発明の目的は、互いに変数が整合するコントローラ用プログラムとUIプログラムとの作成を容易にするプログラム開発支援技術を提供することにある。
【課題を解決するための手段】
【0009】
この発明のプログラム開発支援装置は、コントローラ用プログラム編集部、UI編集部、表示部、操作入力部、および、複写機能部を備える。コントローラ用プログラム編集部は、コントローラ用プログラムの編集またはコントローラ用プログラムで用いられる変数の設定を行う。UI編集部は、ユーザインターフェースプログラムの編集を行う。表示部は、コントローラ用プログラムの編集画面または変数の設定画面と、ユーザインターフェースプログラムの編集画面と、を表示する。操作入力部は、表示部に表示されたコントローラ用プログラムの要素の選択、移動または記変数の選択、移動の操作入力を受け付ける。複写機能部は、ユーザインターフェースプログラムの編集画面内に移動させたコントローラ用プログラムの要素または変数に応じたユーザインターフェースプログラムの要素を、ユーザインターフェースプログラムの編集画面に反映させる。複写機能部は、編集中のコントローラ用プログラムの種類に応じて、ユーザインターフェースプログラムの要素の種類を決定する。
【0010】
この構成では、コントローラ用プログラムの種類と要素、または変数に応じて、ユーザインターフェースプログラムの要素が自動的に設定される。例えば、ラダープログラムであれば、ラダープログラムの要素に応じて、ユーザインターフェースプログラムの要素が自動的に設定される。STプログラムであれば、STプログラムの要素に応じて、ユーザインターフェースプログラムの要素が自動的に設定される。変数設定であれば、変数設定プログラムの要素に応じて、ユーザインターフェースプログラムの要素が自動的に設定される。
【0011】
また、このプログラム開発支援装置では、複写機能部は、コントローラ用プログラムの要素または変数の移動先に、ユーザインターフェースプログラムの要素がないと、ユーザインターフェースプログラムの編集画面に対して、ユーザインターフェースプログラムの要素を新たに表示させる。
【0012】
この構成では、コントローラ用プログラムの種類と要素または変数に応じて、ユーザインターフェースプログラムの要素が自動的で追加される。
【0013】
また、このプログラム開発支援装置では、複写機能部は、コントローラ用プログラムの要素または変数の移動先に、ユーザインターフェースプログラムの要素があると、当該要素の変数マッピングを更新する。
【0014】
この構成では、ユーザインターフェースプログラムの要素の変数が自動的で更新される。
【発明の効果】
【0015】
この発明によれば、互いに変数が整合するコントローラ用プログラムとUIプログラムとを、容易に作成できる。
【図面の簡単な説明】
【0016】
図1】本発明の実施形態に係るプログラム開発支援装置を含む情報処理装置の概略構成図である。
図2】本発明のプログラム開発支援技術の処理を示すフローチャートである。
図3】(A)は、ラダープログラムの接点のドラッグ状態を示す画面図であり、(B)は、ラダープログラムの接点のドロップ状態を示す画面図である。
図4】(A)は、ラダープログラムのコイルのドラッグ状態を示す画面図であり、(B)は、ラダープログラムのコイルのドロップ状態を示す画面図である。
図5】(A)は、ラダープログラムの接点のドラッグ状態を示す画面図であり、(B)は、ラダープログラムの接点のドロップ状態を示す画面図である。
図6】(A)は、STプログラムの第1要素のドラッグ状態を示す画面図であり、(B)は、STプログラムの第1要素のドロップ状態を示す画面図である。
図7】(A)は、STプログラムの第2要素のドラッグ状態を示す画面図であり、(B)は、STプログラムの第2要素のドロップ状態を示す画面図である。
図8】(A)は、変数設定プログラムの変数のドラッグ状態を示す画面図であり、(B)は、変数設定編集領域の変数のドロップ状態を示す画面図である。
図9】変数とUIプログラムの要素との関係を示す表である。
図10】本発明のプログラム開発支援技術の処理を示すフローチャートである。
図11】(A)は、UIプログラムのボタンのドラッグ状態を示す画面図であり、(B)は、UIプログラムのボタンのドロップ状態を示す画面図である。
【発明を実施するための形態】
【0017】
本発明の実施形態に係るプログラム開発支援技術について、図を参照して説明する。図1は、本発明の実施形態に係るプログラム開発支援装置を含む情報処理装置の概略構成図である。
【0018】
図1に示すように、情報処理装置10は、プログラム開発支援部11、操作入力部12、通信制御部13、および、表示部14を備える。情報処理装置10は、パーソナルコンピュータ等によって実現される。操作入力部12は、例えば、マウスやキーボードである。通信制御部13は、シーケンス制御装置との通信制御を行う。表示部14は、例えば、液晶ディプレイ等であり、後述の処理によって、シーケンスプログラム編集領域141、および、UI(ユーザインターフェース)プログラム編集領域142の少なくとも一方を表示する。シーケンスプログラム編集領域141、および、UIプログラム編集領域142は、表示画面における所謂ウィンドウを形成しており、これらの領域の表示画面における位置および大きさは、操作入力部12によって、変更可能に設定できる。シーケンスプログラム編集領域141が、本発明の「コントローラ用プログラムの編集画面」に対応し、UIプログラム編集領域142が、本発明の「ユーザインターフェースプログラムの編集画面」に対応する。
【0019】
プログラム開発支援部11は、演算部111、記憶部112を備える。記憶部112には、プログラム開発支援プログラム210が記憶されている。プログラム開発支援プログラム210は、シーケンスプログラム編集プログラム211、UI編集プログラム212、および、複写機能プログラム213を有する。
【0020】
演算部111は、シーケンスプログラム編集プログラム211を記憶部112から読み出して実行する。これによって、本願の「コントローラ編集部」が実現される。シーケンスプログラムの編集とは、シーケンス制御装置の動作を設定するプログラム、すなわち、コントローラ用プログラムであるシーケンスプログラム、および、このプログラムに利用される変数の編集である。変数には、グローバル変数とローカル変数とを含んでいる。
【0021】
本願では、シーケンスプログラムとしては、ラダープログラム、および、STプログラムを含むものであり、これら2種類のプログラムを含んでいることが好適である。
【0022】
演算部111は、このシーケンスプログラムの編集内容を、表示部14のシーケンスプログラム編集領域141に表示する。
【0023】
演算部111は、UI編集プログラム212を記憶部112から読み出して実行する。これによって、本願の「UI編集部」が実現される。UIの編集とは、シーケンス制御装置に通信可能な表示装置(例えば、シーケンス制御装置に備え付けた表示装置)における、操作オブジェクトや表示オブジェクトの配置、それぞれオブジェクトに対する変数(グローバル変数とローカル変数)の設定等である。
【0024】
演算部111は、このUIの編集内容を、表示部14のUIプログラム編集領域142に表示する。
【0025】
演算部111は、複写機能プログラム213を記憶部112から読み出して実行する。これによって、本願の「複写機能部」が実現される。複写機能とは、シーケンスプログラムの要素を、操作入力部12を用いた所謂ドラッグ&ドロップによって、UIプログラム編集領域142に配置することによって、シーケンスプログラムの要素に応じたオブジェクト(UIプログラムの要素)の追加、変数の更新を行うことである。また、複写機能とは、この処理によって、UIプログラム編集領域142を更新することも含む。この際、複写機能プログラム213は、シーケンスプログラムの種類に応じて、シーケンスプログラムの要素を用いたUIプログラムの要素の自動設定を行う。
【0026】
具体的には、プログラム開発支援部11は、図2に示すような処理を実行する。図2は、本発明のプログラム開発支援技術の処理を示すフローチャートである。
【0027】
プログラム開発支援部11は、操作入力部12の入力に基づいて、ドラッグ位置を検出する(S11)。具体的には、プログラム開発支援部11は、操作入力部12によって、表示部14に表示されているシーケンスプログラム編集領域141、および、UIプログラム編集領域142の内、アクティブな(現在選択されている)領域を検出する。
【0028】
プログラム開発支援部11は、アクティブな領域がシーケンスプログラム編集領域141であれば、当該領域における選択されているシーケンスプログラムの要素を検出する。一方、プログラム開発支援部11は、アクティブな領域がUIプログラム編集領域142であれば、当該領域における選択されているUIプログラムの要素を検出する。なお、UIプログラムの要素を検出した場合の処理は、図2には示しておらず、図10に示しており、ここでの説明は省略して、後述する。
【0029】
アクティブな領域がシーケンスプログラム編集領域141の場合、プログラム開発支援部11は、次の処理を実行する。
【0030】
プログラム開発支援部11は、シーケンスプログラムの種類を検出する。すなわち、プログラム開発支援部11は、アクティブな領域で編集されているシーケンスプログラムが、ラダープログラム、STプログラム、および、変数設定プログラムのいずれであるかを検出する(S12)。
【0031】
プログラム開発支援部11は、ラダープログラムであれば、ラダープログラムの要素、および、この要素の変数を検出する(S13)。なお、ここで選択されるラダープログラムの要素は、接点やコイルであってもよく、接点やコイルとともに表示される変数名も、選択されるラダープログラムの要素に含んでもよい。プログラム開発支援部11は、STプログラムであれば、STプログラムの要素、この要素の位置、および、この要素の変数を検出する(S14)。プログラム開発支援部11は、変数設定プログラムであれば、選択されている変数を検出する(S15)。なお、プログラム開発支援部11は、変数の検出にあたり、変数のデータ型も検出する。
【0032】
プログラム開発支援部11は、シーケンスプログラムの要素毎に対応するUIプログラムの要素(UIプログラムの要素)と、変数のデータ型に応じた表示形式とを、記憶部112に記憶している。
【0033】
プログラム開発支援部11は、選択された要素に対応するUIプログラムの要素と、変数のデータ型に応じた表示形式を抽出する(S16)。
【0034】
プログラム開発支援部11は、操作入力部12の入力に基づいて、ドロップ位置を検出する(S17)。具体的には、プログラム開発支援部11は、操作入力部12によって指定されたUIプログラム編集領域142の位置を検出する。
【0035】
プログラム開発支援部11は、UIプログラムの要素が配置されていなかったら(S18:NO)、UIプログラム用の変数を生成する(S19)。プログラム開発支援部11は、抽出したUIプログラムの要素を、ドロップ位置に配置する(S20)。プログラム開発支援部11は、配置したUIプログラムの要素の表示形式を設定する(S21)。プログラム開発支援部11は、追加したUIプログラムの要素に応じて、UIプログラムの変数マッピングを更新する(S22)。
【0036】
この際、プログラム開発支援部11は、変数がグローバル変数であれば、すなわち、シーケンスプログラムとUIプログラムとで共通の変数であれば、UI要素の配置を実行し、変数マッピングを更新する。一方、プログラム開発支援部11は、変数がグローバル変数でなければ、すなわち、シーケンスプログラムに固有の変数であれば、ドロップ処理によるUI要素の配置を実行しない。
【0037】
一方、プログラム開発支援部11は、UIプログラムの要素が配置されていたら(S18:YES)、ドロップ位置に既に配置されているUIプログラムの要素の変数を変更するように、UIプログラムの変数マッピングを更新する(S22)。
【0038】
この際、プログラム開発支援部11は、変数がグローバル変数であれば、すなわち、シーケンスプログラムとUIプログラムとで共通の変数であれば、変数マッピングを更新する。一方、プログラム開発支援部11は、変数がグローバル変数でなければ、すなわち、シーケンスプログラムに固有の変数であれば、変数マッピングを更新しない。
【0039】
このような処理を行うことによって、シーケンスプログラムがいずれの種類であっても、シーケンスプログラムの要素に応じたUIプログラムの要素を、UI画面の指定された位置に自動で設定できる。この際、指定された位置にUIプログラムの要素が無ければ、UIプログラムの要素を自動で追加するとともに、変数マッピングを自動で更新できる。一方、指定された位置にUIプログラムの要素が有れば、このUIプログラムの要素の変数を変更するように、変数マッピングを自動で更新できる。これにより、プログラマは、煩雑な処理を行うことなく、シーケンスプログラムとUIプログラムとの互いの変数を整合させながら、これらのプログラムを作成、編集することができる。
【0040】
以下、各シーケンスプログラムからUIプログラムへのドラッグ&ドロップを行った場合についてのより詳細な具体例を示す。
【0041】
(実施例1)ラダープログラムからUIプログラムの要素を追加する場合
図3(A)は、ラダープログラムの接点のドラッグ状態を示す画面図であり、図3(B)は、ラダープログラムの接点のドロップ状態を示す画面図である。図4(A)は、ラダープログラムのコイルのドラッグ状態を示す画面図であり、図4(B)は、ラダープログラムのコイルのドロップ状態を示す画面図である。
【0042】
図3(A)、図3(B)、図4(A)、図4(B)に示すように、ラダープログラムの編集とUIプログラムの編集を行う場合には、表示部14の表示画面140には、ラダープログラム編集領域(ウィンドウ)1410、UIプログラム編集領域(ウィンドウ)142が少なくとも表示される。また、表示画面140には、マルチビューエクスプローラ412、編集用のツールボックス413等も表示される。
【0043】
ラダープログラム編集領域1410には、ラダー図が表示されており、UIプログラム編集領域142には、UI画面が表示されている。
【0044】
プログラマがマウス等の操作入力部12を操作すると、当該マウスの動きに合わせて、表示画面140内をポインタが移動する。そして、ラダープログラムの要素の表示領域とポインタとが重なると、図3(A)、図4(A)に示すように、当該ラダープログラムの要素の表示領域の表示態様が変化する。この状態で、プログラマがドラッグ操作を行うと、当該ラダープログラムの要素が選択される。
【0045】
次に、プログラマが、このドラッグ操作状態を維持して、マウスをUIプログラム編集領域142に移動させると、UIプログラム編集領域142には、図3(B)、図4(B)に示すように、ラダープログラムの要素に応じたUIプログラムの要素が表示される。
【0046】
具体的には、プログラム開発支援部11は、ラダープログラムの要素とUIプログラムの要素との関係を予め記憶している。プログラム開発支援部11は、ラダープログラムの要素が接点であれば、これに対応するUIプログラムの要素は、ボタンであると記憶しており、ラダープログラムの要素がコイルであれば、これに対応するUIプログラムの要素は、ビットランプであると記憶している。
【0047】
したがって、図3(A)に示すように、ラダープログラム編集領域1410において接点がドラッグ操作されて、UIプログラム編集領域142にドロップ操作されると、図3(B)に示すように、UIプログラム編集領域142の指定位置に、ボタンが配置され、表示される。この際、ボタンには、固有のインデックスを添付して表示するとよい。固有のインデックスとは、当該ボタンに対応する接点の変数名等である。
【0048】
この際、このボタンには、対応する接点の変数が設定される。また、UIプログラムの変数マッピングに、当該ボタンおよびその変数が追加される。
【0049】
また、図4(A)に示すように、ラダープログラム編集領域1410においてコイルがドラッグ操作されて、UIプログラム編集領域142にドロップ操作されると、図4(B)に示すように、UIプログラム編集領域142の指定位置に、ビットランプが配置され、表示される。この際、ビットランプには、固有のインデックスを添付して表示するとよい。固有のインデックスとは、当該ビットランプに対応するコイルの変数名等である。
【0050】
この際、このビットランプには、対応するコイルの変数が設定される。また、UIプログラムの変数マッピングに、当該ビットランプおよびその変数が追加される。
【0051】
(実施例2)ラダープログラムからUIプログラムの要素の変数を更新する場合
図5(A)は、ラダープログラムの接点のドラッグ状態を示す画面図であり、図5(B)は、ラダープログラムの接点のドロップ状態を示す画面図である。なお、図5(A)は、図3(A)と同じであり、図5(B)は、図3(B)に対して、ドロップ位置に既にUIプログラムの要素が存在する点のみにおいて異なる。したがって、図5(A)、図5(B)を用いて説明する処理において、図3(A)、図3(B)を用いて説明する処理を動揺の箇所の説明は省略する。
【0052】
図5(A)に示すように、ラダープログラム編集領域1410において接点がドラッグ操作されて、UIプログラム編集領域142にドロップ操作される。ここで、図5(B)に示すように、ドロップ位置には、ボタンが既に配置され、表示される。この場合、プログラム開発支援部11は、ボタンをそのまま表示し、当該ボタンの変数のみを変更する更新を実行する。これとともに、ボタンに添付された固有のインデックスも変更される。当該ビットランプの変数の変更を示すUIプログラムの変数マッピングの更新が行われる。
【0053】
(実施例3)STプログラムからUIプログラムの要素を追加する場合
図6(A)は、STプログラムの第1要素のドラッグ状態を示す画面図であり、図6(B)は、STプログラムの第1要素のドロップ状態を示す画面図である。図7(A)は、STプログラムの第2要素のドラッグ状態を示す画面図であり、図7(B)は、STプログラムの第2要素のドロップ状態を示す画面図である。
【0054】
図6(A)、図6(B)、図7(A)、図7(B)に示すように、STプログラムの編集とUIプログラムの編集を行う場合には、表示部14の表示画面140には、STプログラム編集領域(ウィンドウ)144、UIプログラム編集領域(ウィンドウ)142が少なくとも表示される。
【0055】
STプログラム編集領域144には、STプログラムの式が表示されており、UIプログラム編集領域142には、UI画面が表示されている。
【0056】
プログラマがマウス等の操作入力部12を操作すると、当該マウスの動きに合わせて、表示画面140内をポインタが移動する。そして、STプログラムの要素の表示領域とポインタとが重なると、図6(A)、図7(A)に示すように、当該STプログラムの要素の表示領域の表示態様が変化する。この状態で、プログラマがドラッグ操作を行うと、当該STプログラムの要素が選択される。
【0057】
次に、プログラマが、このドラッグ操作状態を維持して、マウスをUIプログラム編集領域142に移動させると、UIプログラム編集領域142には、図6(B)、図7(B)に示すように、STプログラムの要素に応じたUIプログラムの要素が表示される。
【0058】
具体的には、プログラム開発支援部11は、STプログラムの要素とUIプログラムの要素との関係を予め記憶している。プログラム開発支援部11は、STプログラムの要素が”=”の右側にあれば、これに対応するUIプログラムの要素は、ボタンであると記憶しており、STプログラムの要素が”=”の左側にあれば、これに対応するUIプログラムの要素は、ビットランプであると記憶している。
【0059】
したがって、図6(A)に示すように、STプログラム編集領域144において”=”の右側の要素がドラッグ操作されて、UIプログラム編集領域142にドロップ操作されると、図6(B)に示すように、UIプログラム編集領域142の指定位置に、ボタンが配置され、表示される。この際、ボタンには、固有のインデックスを添付して表示するとよい。固有のインデックスとは、当該ボタンに対応するSTプログラムの要素の変数名等である。
【0060】
この際、このボタンには、対応するSTプログラムの要素の変数が設定される。また、UIプログラムの変数マッピングに、当該ボタンおよびその変数が追加される。
【0061】
また、図7(A)に示すように、STプログラム編集領域144において”=”の左側の要素がドラッグ操作されて、UIプログラム編集領域142にドロップ操作されると、図7(B)に示すように、UIプログラム編集領域142の指定位置に、ビットランプが配置され、表示される。この際、ビットランプには、固有のインデックスを添付して表示するとよい。固有のインデックスとは、当該ビットランプに対応するSTプログラムの要素の変数名等である。
【0062】
この際、このビットランプには、対応するSTプログラムの要素の変数が設定される。また、UIプログラムの変数マッピングに、当該ビットランプおよびその変数が追加される。
【0063】
なお、ここでは詳細に説明していないが、ラダープログラムの要素と同様に、STプログラムの要素に対して、UIプログラムの要素がドロップ先に既に配置されていれば、当該UIプログラムの要素の変数の更新を行う。
【0064】
(実施例3)変数設定編集領域からUIプログラムの要素を追加する場合
図8(A)は、変数設定編集領域の変数のドラッグ状態を示す画面図であり、図8(B)は、変数設定編集領域の変数のドロップ状態を示す画面図である。
【0065】
図8(A)、図8(B)に示すように、変数設定の編集とUIプログラムの編集を行う場合には、表示部14の表示画面140には、変数設定編集領域(ウィンドウ)145、UIプログラム編集領域(ウィンドウ)142が少なくとも表示される。この変数設定編集領域145が、本発明の「変数の設定画面」に対応する。また、表示画面140には、マルチビューエクスプローラ412、編集用のツールボックス413等も表示される。さらには、必要に応じて、ラダープログラム編集領域、STプログラム編集領域当も表示可能である。
【0066】
変数設定編集領域145には、変数の一覧が表示されている。変数には、それぞれに変数型が設定されている。UIプログラム編集領域142には、UI画面が表示されている。
【0067】
プログラマがマウス等の操作入力部12を操作すると、当該マウスの動きに合わせて、表示画面140内をポインタが移動する。そして、変数設定プログラムの要素(一覧表示された変数の内、選択する変数)の表示領域とポインタとが重なると、図8(A)に示すように、当該変数設定プログラムの変数の表示領域の表示態様が変化する。この状態で、プログラマがドラッグ操作を行うと、当該変数が選択される。
【0068】
次に、プログラマが、このドラッグ操作状態を維持して、マウスをUIプログラム編集領域142に移動させると、UIプログラム編集領域142には、図8(B)に示すように、変数に応じたUIプログラムの要素が表示される。この際、変数型を用いて、UIプログラムの要素が設定される。
【0069】
具体的には、プログラム開発支援部11は、変数型とUIプログラムの要素との関係を予め記憶している。図9は、変数とUIプログラムの要素との関係を示す表である。図9に示すように、変数型がBOOL型であれば、UIプログラムの要素は、ビットランプである。変数型が整数型または実数型であれば、UIプログラムの要素は、右寄せ型のデータディスプレイである。変数型がSTRING型であれば、UIプログラムの要素は、左寄せ型のデータディスプレイである。変数型が構造体型であれば、UIプログラムの要素は、構造体のメンバに応じた形状および態様の表示枠となる。
【0070】
したがって、図8(A)に示すように、変数設定編集領域145において、INT(整数)型の変数がドラッグ操作されて、UIプログラム編集領域142にドロップ操作されると、図8(B)に示すように、UIプログラム編集領域142の指定位置に、データディスプレイ(右寄せ型)が配置され、表示される。この際、UIプログラムの変数マッピングに、当該変数が追加される。
【0071】
なお、上述の説明では、プログラム開発支援部11は、シーケンスプログラムの要素からUIプログラムの要素を設定したが、逆の処理を行うこともできる。すなわち、プログラム開発支援部11は、UIプログラムの要素からシーケンスプログラムの要素を設定できる。
【0072】
具体的には、プログラム開発支援部11は、図10に示すような処理を実行する。図10は、本発明のプログラム開発支援技術の処理を示すフローチャートである。なお、図10では、シーケンスプログラムがラダープログラムである態様を示しているが、STプログラム、変数設定プログラムに対しても同様の処理を行うことができる。
【0073】
プログラム開発支援部11は、操作入力部12の入力に基づいて、ドラッグ位置を検出する(S11)。この処理は、図2のS11の処理を同じである。
【0074】
プログラム開発支援部11は、ドラッグされたUIプログラムの要素の種類と変数を抽出する(S32)。
【0075】
プログラム開発支援部11は、操作入力部12の入力に基づいて、ドロップ位置を検出する(S33)。具体的には、プログラム開発支援部11は、操作入力部12によって指定されたラダープログラム編集領域1410内の位置を検出する。
【0076】
プログラム開発支援部11は、抽出したUIプログラムの要素に応じたラダープログラム用の変数を生成する(S34)。
【0077】
プログラム開発支援部11は、抽出したUIプログラムの要素に応じたラダープログラムの要素(ラダー要素)を、ドロップ位置に配置する(S35)。
【0078】
プログラム開発支援部11は、配置したラダープログラムの要素に対して変数を設定する(S36)。この際、プログラム開発支援部11は、追加したラダープログラムの要素に応じて、ラダープログラムの変数マッピングを更新する。
【0079】
図11(A)は、UIプログラムのボタンのドラッグ状態を示す画面図であり、図11(B)は、UIプログラムのボタンのドロップ状態を示す画面図である。
【0080】
プログラマがマウス等の操作入力部12を操作すると、当該マウスの動きに合わせて、表示画面140内をポインタが移動する。そして、UIプログラムの要素の表示領域とポインタとが重なると、当該UIプログラムの要素の表示領域の表示態様が変化する。この状態で、プログラマがドラッグ操作を行うと、当該UIプログラムの要素が選択される。
【0081】
次に、プログラマが、このドラッグ操作状態を維持して、マウスをラダープログラム編集領域1410に移動させると、ラダープログラム編集領域1410には、図11(B)に示すように、UIプログラムの要素に応じたラダープログラムの要素が表示される。
【0082】
したがって、図11(A)に示すように、UIプログラム編集領域142においてボタンがドラッグ操作されて、ラダープログラム編集領域1410にドロップ操作されると、図11(B)に示すように、ラダープログラム編集領域1410の指定位置に、接点が配置され、表示される。この際、接点には、固有のインデックスを添付して表示するとよい。固有のインデックスとは、当該ボタンに対応する接点の変数名等である。また、この新たに追加された接点は、近接する両側のラダープログラムの要素に自動的に接続される。
【0083】
この際、この接点には、対応するボタンの変数が設定される。また、ラダープログラムの変数マッピングに、当該接点およびその変数が追加される。
【0084】
なお、この処理においても、上述の実施例1と同様に上書き更新の処理を適用することもできる。
【0085】
なお、上述の説明では特に詳細に説明していないが、シーケンスプログラムが適用されるコントローラ名も、ドラッグ&ドロップ時の情報として利用される。例えば、複数のコントローラが並行して編集されている状態、例えば、上述の各図に示すように、コントローラ1(CTRL1)とコントローラ(CTRL2)とが並行して編集されている状態では、編集がアクティブなコントローラ名(各図におけるコントローラ1(CTRL1))を含むように、変数マッピングを更新する。これによって、複数のコントローラを並行して編集していても、互いに変数が整合するシーケンスプログラムとUIプログラムとを、容易に作成できる。
【0086】
また、上述の説明では、変数が配列の場合について記載していないが、変数が配列の場合には、上述の処理を基本として、シーケンスプログラムの要素の配列数に応じて、UIプログラムの要素を配列表示することができる。したがって、配列された変数に対しても、シーケンスプログラムとUIプログラムとを、互いに整合させて容易に作成できる。
【0087】
また、上述の説明では、シーケンスプログラムまたは変数設定からUIプログラムへのドラッグ&ドロップを行う態様を示したが、UIプログラムからシーケンスプログラムへのドラッグ&ドロップを行うことも、同様の原理を用いて可能である。
【0088】
また、上述の説明では、シーケンスプログラム編集領域141、UIプログラム編集領域142、および、変数設定編集領域145を、表示画面140に同時に表示する態様を示した。しかしながら、例えば、シーケンスプログラム編集領域141、UIプログラム編集領域142、および、変数設定編集領域145をそれぞれ表示画面140に対する全画面表示で設定し、各領域に対するタブ操作等によって切り替えて表示する態様であっても、上述の処理を適用することが可能である。この場合、例えば、タブにマウスを重ねることでカレント(編集対象)の編集領域を切り替えて、マウスによるドラッグ&ドロップを実行すればよい。また、シーケンスプログラム編集領域141、UIプログラム編集領域142、および、変数設定編集領域145の表示態様はこれに限らず、複数の領域を表示画面に表示させる各種の方法を用いて適宜設定することができる。
【符号の説明】
【0089】
10:情報処理装置
11:プログラム開発支援部
12:操作入力部
13:通信制御部
14:表示部
111:演算部
112:記憶部
140:表示画面
141:シーケンスプログラム編集領域
142:UIプログラム編集領域
144:STプログラム編集領域
145:変数設定編集領域
210:プログラム開発支援プログラム
211:シーケンスプログラム編集プログラム
212:UI編集プログラム
213:複写機能プログラム
412:マルチビューエクスプローラ
413:ツールボックス
1410:ラダープログラム編集領域
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11