IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ THK株式会社の特許一覧

<>
  • 特開-編集装置及び編集方法 図1
  • 特開-編集装置及び編集方法 図2
  • 特開-編集装置及び編集方法 図3
  • 特開-編集装置及び編集方法 図4
  • 特開-編集装置及び編集方法 図5
  • 特開-編集装置及び編集方法 図6
  • 特開-編集装置及び編集方法 図7
  • 特開-編集装置及び編集方法 図8
  • 特開-編集装置及び編集方法 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024041330
(43)【公開日】2024-03-27
(54)【発明の名称】編集装置及び編集方法
(51)【国際特許分類】
   G05B 19/042 20060101AFI20240319BHJP
【FI】
G05B19/042
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022146077
(22)【出願日】2022-09-14
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り [1] 販売・納入日(公開日) 令和4年6月17日 販売・納入先 シンフォニアテクノロジー株式会社 伊勢製作所(三重県伊勢市竹ケ鼻町100) [2] 貸し出し日(公開日) 令和4年8月5日 貸し出し先 東京女子医科大学(東京都新宿区河田町8-1) [3] 販売・納入日(公開日) 令和4年8月7日 販売・納入先 日本電気株式会社 関西支社(大阪市中央区城見一丁目4―24) [4] 販売・納入日(公開日) 令和4年9月1日 販売・納入先 東京女子医科大学(東京都新宿区河田町8-1) [5] 開催日 令和4年9月1日 開催場所 ロボットアーム説明会 主催 THK株式会社 東京都大田区東糀谷4丁目9-16 THK(株)テクノセンター
(71)【出願人】
【識別番号】390029805
【氏名又は名称】THK株式会社
(74)【代理人】
【識別番号】100141139
【弁理士】
【氏名又は名称】及川 周
(74)【代理人】
【識別番号】100161506
【弁理士】
【氏名又は名称】川渕 健一
(74)【代理人】
【識別番号】100188891
【弁理士】
【氏名又は名称】丹野 拓人
(72)【発明者】
【氏名】奥 成郁
【テーマコード(参考)】
5H220
【Fターム(参考)】
5H220AA05
5H220BB12
5H220CC06
5H220CX02
5H220DD04
5H220HH08
5H220JJ12
5H220JJ24
5H220JJ42
5H220JJ53
(57)【要約】
【課題】視認性の良いプログラムを作成及び編集する。
【解決手段】編集装置は、ユーザの操作に基づき、プログラムを構成するタスクの始点又は終点を示す2つの母線間に複数の要素を配置し、前記要素を介して前記母線間を接続することにより、コンピュータに実行させる処理を記載する編集装置であって、前記ユーザの操作を取得する操作取得部と、取得された操作に基づき、前記要素の配置を制御し、前記コンピュータに実行させる処理に影響を与えないメモであり1以上の前記要素に対応するメモであるメモブロックの配置を制御する配置制御部と、前記配置制御部により配置された前記要素及び前記メモブロックの表示に関する制御をする表示制御部とを備え、前記メモブロックには、前記メモブロックに含まれる前記要素を特定する情報と、前記メモブロックに含まれる前記要素の接続についての情報とが対応付けられる。
【選択図】図5
【特許請求の範囲】
【請求項1】
ユーザの操作に基づき、プログラムを構成するタスクの始点又は終点を示す2つの母線間に複数の要素を配置し、前記要素を介して前記母線間を接続することにより、コンピュータに実行させる処理を記載する編集装置であって、
前記ユーザの操作を取得する操作取得部と、
取得された操作に基づき、前記要素の配置を制御し、前記コンピュータに実行させる処理に影響を与えないメモであり1以上の前記要素に対応するメモであるメモブロックの配置を制御する配置制御部と、
前記配置制御部により配置された前記要素及び前記メモブロックの表示に関する制御をする表示制御部と
を備え、
前記メモブロックには、前記メモブロックに含まれる前記要素を特定する情報と、前記メモブロックに含まれる前記要素の接続についての情報とが対応付けられる
編集装置。
【請求項2】
前記要素は、プログラムを構成するタスクの始点である第1母線とプログラムを構成するタスクの終点である第2母線との間に配置され、
前記メモブロックは、前記メモブロックに含まれる前記要素のうち、第1母線に最も近い要素から前記第2母線までの間に含まれる要素を含む
請求項1に記載の編集装置。
【請求項3】
前記操作取得部は、前記メモブロックに含まれる前記要素を表示する表示状態又は前記メモブロックに含まれる前記要素を表示しない非表示状態のいずれとするかに関する操作を受け付け、
前記表示制御部は、前記表示状態が選択された場合、前記メモブロックに含まれる前記要素を表示し、前記非表示状態が選択された場合、前記メモブロックに含まれる前記要素を表示しない
請求項1又は請求項2に記載の編集装置。
【請求項4】
前記操作取得部は、複数の前記メモブロックについて、それぞれ前記表示状態又は前記非表示状態のいずれとするかに関する操作を受け付け、
前記表示制御部は、複数の前記メモブロックが存在する場合であって、いずれかの前記メモブロックについて前記非表示状態が選択された場合、前記非表示状態が選択された前記メモブロックの次のメモブロックまでの間に存在する前記要素を表示しない
請求項3に記載の編集装置。
【請求項5】
前記操作取得部は、前記ユーザによる前記メモブロックのドラッグアンドドロップ操作を受け付け、
前記配置制御部は、前記メモブロックがドロップされた位置に応じて、前記メモブロックに含まれる前記要素を特定する
請求項1又は請求項2に記載の編集装置。
【請求項6】
前記配置制御部は、前記ユーザの操作に基づき、前記メモブロック及び前記メモブロックに含まれる前記要素をコピー又は移動するよう制御する
請求項5に記載の編集装置。
【請求項7】
ユーザの操作に基づき、プログラムを構成するタスクの始点又は終点を示す2つの母線間に複数の要素を配置し、前記要素を介して前記母線間を接続することにより、コンピュータに実行させる処理を記載する編集方法であって、
前記ユーザの操作を取得する操作取得工程と、
取得された操作に基づき、前記要素の配置を制御し、前記コンピュータに実行させる処理に影響を与えないメモであり1以上の前記要素に対応するメモであるメモブロックの配置を制御する配置制御工程と、
前記配置制御工程により配置された前記要素及び前記メモブロックの表示に関する制御をする表示制御工程と
を有し、
前記メモブロックには、前記メモブロックに含まれる前記要素を特定する情報と、前記メモブロックに含まれる前記要素の接続についての情報とが対応付けられる
編集方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、編集装置及び編集方法に関する。
【背景技術】
【0002】
従来、プログラマブルロジックコントローラ(PLC:Programmable Logic Controller)を制御するための制御プログラムとして、ラダー言語、SFC(シーケンシャル・ファンクション・チャート)言語、ST(ストラクチャード・テキスト)言語、FB(ファンクション・ブロック)言語等が知られている。一例として、ラダー言語の規則に則って作成された図面(以下、ラダープログラム等と記載する場合がある。)を編集するソフトウェアが知られている。このような制御プログラムの編集ソフトウェアによれば、ユーザの操作によりプログラムを構成する要素や接続線等が入力される。
【0003】
制御プログラムの編集ソフトウェアを用いて、サービスロボット等を制御するための処理を記述しようとした場合、プログラムの規模が大きくなり、処理の記述が膨大な量になる場合がある。プログラムの編集効率を向上させるため、例えば特許文献1に記載されたような技術が知られている。特許文献1に記載されたような技術によれば、プログラムの回路要素に関連するコメントであって、ユーザにより編集可能なコメントを表示させることができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】国際公開第2018/051441号
【発明の概要】
【発明が解決しようとする課題】
【0005】
ここで、プログラムの規模が大きくなった場合、複数人により制御プログラムを作成する場合がある。複数人により制御プログラムを作成する場合、他人が見てどのような機能のブロックであるかを明示するため、プログラム内にメモを残しておきたい場合がある。このような場合、特許文献1に記載されたような技術を用いることは、編集効率の向上に資するかもしれない。
【0006】
しかしながら、プログラム中にコメントを多用した場合、視認性が悪くなってしまう場合もある。特に、コメントを挿入した後に、回路要素を移動又はコピー等することにより、回路のレイアウトが変わったような場合は、コメントと回路要素との不整合が生じ、かえってコメントを挿入したことにより編集効率が悪くなってしまうことも考えられる。
【0007】
そこで本発明は、視認性の良いプログラムを作成及び編集可能な技術を提供しようとするものである。
【課題を解決するための手段】
【0008】
上記の課題を解決するため、本発明の一態様は、ユーザの操作に基づき、プログラムを構成するタスクの始点又は終点を示す2つの母線間に複数の要素を配置し、前記要素を介して前記母線間を接続することにより、コンピュータに実行させる処理を記載する編集装置であって、前記ユーザの操作を取得する操作取得部と、取得された操作に基づき、前記要素の配置を制御し、前記コンピュータに実行させる処理に影響を与えないメモであり1以上の前記要素に対応するメモであるメモブロックの配置を制御する配置制御部と、前記配置制御部により配置された前記要素及び前記メモブロックの表示に関する制御をする表示制御部とを備え、前記メモブロックには、前記メモブロックに含まれる前記要素を特定する情報と、前記メモブロックに含まれる前記要素の接続についての情報とが対応付けられる編集装置である。
【0009】
また、上記の課題を解決するため、本発明の一態様は、ユーザの操作に基づき、プログラムを構成するタスクの始点又は終点を示す2つの母線間に複数の要素を配置し、前記要素を介して前記母線間を接続することにより、コンピュータに実行させる処理を記載する編集方法であって、前記ユーザの操作を取得する操作取得工程と、取得された操作に基づき、前記要素の配置を制御し、前記コンピュータに実行させる処理に影響を与えないメモであり1以上の前記要素に対応するメモであるメモブロックの配置を制御する配置制御工程と、前記配置制御工程により配置された前記要素及び前記メモブロックの表示に関する制御をする表示制御工程とを有し、前記メモブロックには、前記メモブロックに含まれる前記要素を特定する情報と、前記メモブロックに含まれる前記要素の接続についての情報とが対応付けられる編集方法である。
【発明の効果】
【0010】
本発明によれば、視認性の良いプログラムを作成及び編集することができる。
【図面の簡単な説明】
【0011】
図1】第1の実施形態に係るロボットシステムの概要について説明するための図である。
図2】実施形態に係る情報処理装置の機能構成の一例を示す図である。
図3】実施形態に係るロボットの機能構成の一例を示す図である。
図4】実施形態に係る編集ソフト操作画面の一例を示す図である。
図5】実施形態に係る編集装置の機能構成の一例を示す図である。
図6】実施形態に係る編集装置の一連の動作の一例を示すフローチャートである。
図7】実施形態に係るメモブロックについて説明するための図である。
図8】実施形態に係るメモブロックが複数存在する場合における折りたたみ機能の一例について説明するための図である。
図9】実施形態に係るメモブロックの移動の一例について説明するための図である。
【発明を実施するための形態】
【0012】
以下、本発明の実施形態について図面を参照して説明する。以下に示す実施形態は、発明の趣旨をより良く理解させるために、例を挙げて説明するものであり、特に指定のない限り、本発明を限定するものではない。
【0013】
[実施形態]
まず、実施形態の前提となる事項を説明する。
【0014】
本実施形態に係るロボットシステム1は、所定の制御プログラムに基づいてロボットを制御する。本実施形態に係るロボットには、サービスロボットや産業用ロボット等、所定の制御プログラムに基づいた処理を行うロボットが広く含まれる。以下に説明する実施形態においては、ロボットシステム1が自律的に移動し、物体を把持して移動させるサービスロボットを制御する場合の一例について説明する。
また、本実施形態に係る所定の制御プログラムとは、ラダー図(LD言語、又はラダー言語)、FB(ファンクション・ブロック)言語、SFC(シーケンシャル・ファンクション・チャート)言語、及びこれらに類似した言語等を用いて作成された制御プログラムを広く含む。これらに類似した言語とは、例えば、ラダー図に似た図を用いたものであってもよく、ユーザの操作に基づき2つの母線間に複数の要素を配置し、配置された要素を介して母線間が接続されることにより、ロボットに実行させる処理が記載されるものであってもよい。2つの母線とは、ラダー図の場合と同様の役割を有する。一方の母線はプログラムを構成するタスクの始点を示し、他方の母線はタスクの終点を示すものである。また、本実施形態に係る所定の制御プログラムは、ロボットに実行させる処理が記載されるものに限定されず、コンピュータに実行させる処理が記載されたものであってもよい。以下の説明においては、一例として、本実施形態に係る所定の制御プログラムがラダー図である場合について説明する。
【0015】
図1は、実施形態に係るロボットシステムの概要について説明するための図である。同図を参照しながら、ロボットシステム1の概要について説明する。ロボットシステム1は、情報処理装置10と、ロボット30とを備える。ロボットシステム1は、情報処理装置10とロボット30とを備えることにより、ユーザからの操作に基づいてロボット30に所定の処理を行わせる。ここで、ユーザからの操作とは、ロボット30が駆動している最中に行われる操作(リアルタイム操作)であってもよいし、ロボット30が駆動する前に予め行われる制御プログラム作成等の操作であってもよい。ユーザとは、ロボット30を最終的に使用するエンドユーザであってもよいし、ロボット30が工場から出荷される前に作業する作業員であってもよい。
【0016】
情報処理装置10は、編集ソフト11を有する。編集ソフト11は、情報処理装置10にインストールされて動作するアプリケーションである。情報処理装置10は、インターネット上で動作するWebアプリケーションであってもよい。編集ソフト11は、ユーザからの操作に基づき制御プログラム20を生成する。具体的には、編集ソフト11は、情報処理装置10に備えられた不図示のキーボード等の入力デバイスにより、ユーザの操作を取得し、取得した操作に基づいた制御プログラム20を生成する。例えば制御プログラム20は、編集ソフト11によりコンパイルが行われた結果として生成される。生成された制御プログラム20は、ロボット30に出力される。
なお、情報処理装置10は、例えば、パーソナルコンピュータや、タブレット端末、スマートフォン等の一般に用いられるコンピュータであってもよい。
【0017】
ロボット30は、記憶部31を備える。情報処理装置10により出力された制御プログラム20は、所定の通信方式によりロボット30に送信され、記憶部31に記憶される。ロボット30は、不図示の制御部により記憶部31に記憶された制御プログラム20を実行することにより、制御プログラム20にしたがってシーケンス制御される。所定の処理とは、例えばロボット30の移動や、周囲の状況の撮像、物体の把持、物体の移動等であってもよい。
【0018】
なお、ロボット30は、予め記憶部31に記憶された制御プログラム20を実行することにより所定の処理を行ってもよいし、記憶部31に記憶された制御プログラム20のうち変数部分がリアルタイムで書き換えられることによりリアルタイムで制御されてもよい。ロボット30がリアルタイムで制御される場合、制御プログラム20がロボット30の記憶部31に記憶される場合の一例に代えて、制御プログラム20が情報処理装置10に備えられた不図示の記憶部に記憶されてもよい。この場合、情報処理装置10は、自身に備えられた記憶部に記憶された制御プログラム20を実行することにより、ロボット30を制御する。情報処理装置10とロボット30とは、所定の有線又は無線による通信方式により双方向通信を行う。所定の通信方式とは、ブルートゥース(登録商標)(Bluetooth)又はWi-Fi(登録商標)等であってもよい。
【0019】
図2は、実施形態に係る情報処理装置の機能構成の一例を示す図である。同図を参照しながら、情報処理装置10の機能構成の一例について説明する。情報処理装置10は、編集ソフト11と、OS(Operating System)12と、ハードウェア13とを備える。
ハードウェア13は、バスで接続された中央処理装置(CPU:Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)、入出力ポート、及び入出力デバイス等を含む。
OS12は、ハードウェア13と編集ソフト11との間に位置し、ハードウェア13の上で動作する。OS12は、プログラムに対して標準的なインターフェイスを提供する。OS12は、ハードウェア13に含まれる各リソースの使用状況について効率的な管理を行う。
編集ソフト11は、情報処理装置10に予めインストールされるソフトウェアである。編集ソフト11は、ユーザからの操作に基づいて制御プログラム20を生成する。
なお、以下の説明において、編集ソフト11を実行する情報処理装置10を、編集装置40と記載する場合がある。
【0020】
図3は、実施形態に係るロボットの機能構成の一例を示す図である。同図を参照しながら、ロボット30の機能構成の一例について説明する。ロボット30は、記憶部31と、制御部32と、入力デバイス33と、出力デバイス34とを備える。
記憶部31は、RAM又はROMを少なくとも含んで構成される。記憶部31は、制御プログラム20を記憶する。記憶部31は、その他、ロボット30の制御に必要な情報等を記憶する。
制御部32は、CPUを少なくとも含んで構成される。制御部32は、ASIC(Application Specific Integrated Circuit)又はFPGA(Field-Programmable Gate Array)等のハードウェア資源を含んで構成されていてもよい。
【0021】
入力デバイス33は、ロボット30の外部環境から情報を取得し、取得した情報を制御部32に提供する。入力デバイス33は、ロボット30のアプリケーションに応じた複数のセンサやエンコーダ等を含む。入力デバイス33に含まれる要素としては、カメラ、位置センサ(GPSセンサ:Global Positioning System Sensor)、加速度センサ、光センサ、温度センサ、湿度センサ、磁気センサ、触覚センサ、超音波センサ等を例示することができる。ロボット30が自律的に移動し、物体を把持して移動させるサービスロボットである場合、入力デバイス33の一例としては、カメラ、位置センサ、触覚センサ等を例示することができる。
【0022】
出力デバイス34は、制御部32の制御に基づいて駆動される。出力デバイス34は、ロボット30のアプリケーションに応じた複数のモータ等を含む。出力デバイス34に含まれる要素としては、ステッピングモータ、DCモータ、ソレノイド、クラッチ、発光ダイオード(LED:Light-Emitting Diode)ディスプレイ等を例示することができる。ロボット30が自律的に移動し、物体を把持して移動させるサービスロボットである場合、出力デバイス34の一例としては、車輪駆動用モータ、アーム駆動用モータ、状態表示用LED等を例示することができる。
【0023】
図4は、実施形態に係る編集ソフト操作画面の一例を示す図である。同図を参照しながら、編集ソフト11の操作画面である編集ソフト操作画面D10の一例について説明する。編集ソフト操作画面D10は、情報処理装置10に備えられる不図示の表示部に表示される。なお、表示部は情報処理装置10に備えられなくてもよく、情報処理装置10により外部の表示部に出力されてもよい。
【0024】
編集ソフト操作画面D10は、ツールバーD11と回路入力ウィンドウD12とを少なくとも画面の構成要素として備える。編集ソフト操作画面D10は、ユーザに対し、サービスロボットに処理させるタスクを容易に編集可能な操作画面を提供する。一例として、編集ソフト操作画面D10は、ラダー図を編集可能な操作画面を提供する。
【0025】
ツールバーD11は、選択可能な要素を表示する。選択可能な要素としては、ラダー図における接点、タイマ、又はEND命令等を例示することができる。図示する一例では、ツールバーD11は、第1要素D111乃至第7要素D117を画面の構成要素として備える。各要素は、それぞれ接点、タイマ、又はEND命令等であってもよい。また、各要素には、ユーザによりプログラミングされた処理等が含まれていてもよい。
【0026】
ここで、第1要素D111乃至第6要素D116は、要素を示すアイコンであり、第7要素D117は、メモブロックを示すアイコンである。要素とは、コンピュータが実行する処理に影響を与えるものである。メモブロックとは、コンピュータが実行する処理に影響を与えないメモである。メモブロックとは、配置された要素又は要素の集合ごとに配置することができるメモである。すなわちメモブロックとは、1以上の要素に対応するメモである。なお、メモブロックは、配置された要素又は要素の集合ごとに配置される一例に加えて、既に配置されたメモブロックに対応するメモブロックを新たに配置可能なよう構成されていてもよい。
【0027】
回路入力ウィンドウD12は、ユーザにより現在編集が行われている回路を表示する。ユーザにより現在編集が行われている回路とは、例えばラダー図である。ユーザはツールバーD11からいずれかの要素を選択し、選択した要素を回路入力ウィンドウD12に配置する。回路入力ウィンドウD12には、第1母線B1と、第2母線D2とが示されている。第1母線とは、プログラムを構成するタスクの始点を示す線である。第2母線とは、プログラムを構成するタスクの終点を示す線である。ユーザは、これら2つの母線間に複数の要素を配置する。図示する一例においては、2つの母線間に要素E1乃至要素E6が配置されている。
ユーザによる操作の一例として、ユーザは情報処理装置10が備える入力デバイス33としてのマウスを操作することにより、カーソルCの位置を動かし、ツールバーD11に含まれるいずれかの要素をドラッグし、回路入力ウィンドウD12の領域内においてドロップすることにより要素を配置する操作を例示することができる。
【0028】
また、ユーザは選択した要素同士を接続する。図示する一例においては、要素E1乃至要素E4が直列に接続され、要素E2及び要素E3に対して並列に要素E5及び要素E6が接続されている。ユーザは、要素を介して母線間を接続することにより、コンピュータに実行させる処理を記載する。すなわち、これらの配置操作や接続操作等のユーザの操作により、ロボット30に処理させるタスクが記載されたラダー図が作成される。
編集ソフト操作画面D10は、その他、様々な画面の構成要素を有していてもよい。
【0029】
図5は、実施形態に係る編集装置の機能構成の一例を示す図である。同図を参照しながら、編集装置40の機能構成の一例について説明する。編集装置40は、操作取得部43と、配置制御部46と、表示制御部45とを備える。これらの各機能部は、情報処理装置10により編集ソフト11を実行することにより実現されてもよい。また、各機能部は、例えば、電子回路を用いて実現されてもよい。また、各機能部は、必要に応じて、半導体メモリや磁気ハードディスク装置などといった記憶手段を内部に備えていてもよい。
【0030】
操作取得部43は、ユーザの操作を取得する。操作取得部43は、例えば、ユーザによる入力デバイス33としてのマウスやキーボード等の操作を取得する。ユーザは、マウスやキーボード等の入力デバイス33を操作することにより、要素を選択したり、選択した要素を回路入力ウィンドウD12に配置したり、選択を解除したりする。操作取得部43は、このようなユーザの操作を取得する。すなわち、操作取得部43は、選択された要素に対するユーザの操作を取得する。操作取得部43は、取得したユーザの操作に関する情報を、操作情報OIとして判定部44に出力する。
【0031】
配置制御部46は、操作取得部43から操作情報OIを取得する。配置制御部46は、取得した操作情報OIに基づき、要素やメモブロック等の配置を制御する。ここで、配置を制御するとは、ユーザが指定した箇所に要素やメモブロック等が配置可能であるか否かを判定したり、回路入力ウィンドウD12内における配置位置を決定したりすることであってもよい。また、メモブロックの配置を制御するとは、当該メモブロックに含まれる要素を特定することであってもよい。配置制御部46は、これらの処理を行った結果として、要素やメモブロック等の配置に関する情報を表示制御情報DCIとして表示制御部45に出力する。
【0032】
なお、配置制御部46により配置されたメモブロックには、当該メモブロックに対応付けられた要素(当該メモブロックに含まれる要素ということもできる)に関する情報、及びこれらの要素同士の接続に関する情報が含まれる。すなわちメモブロックには、メモブロックに含まれる要素を特定する情報と、メモブロックに含まれる要素の接続についての情報とが対応付けられる。
【0033】
表示制御部45は、配置制御部46から表示制御情報DCIを取得する。表示制御部45は、取得した表示制御情報DCIに基づき、配置制御部46により配置された要素及びメモブロックの表示に関する制御をする。表示に関する制御をするとは、要素やメモブロック等を、不図示の表示部における表示制御情報DCIにより指定された位置に表示させることであってもよい。
【0034】
図6は、実施形態に係る編集装置の一連の動作の一例を示すフローチャートである。同図を参照しながら、実施形態に係る編集装置40が要素又はメモブロックを配置する際における一連の動作の一例について説明する。
【0035】
(ステップS110)まず、操作取得部43は、何らかの要素又はメモブロック等がドラッグされたことを検出すると、何らかの要素又はメモブロック等がドラッグアンドドロップされたことを示す情報を操作情報OIとして配置制御部46に出力する。配置制御部46は、操作取得部43から何らかの要素又はメモブロック等がドラッグアンドドロップされたことを示す情報を取得すると(すなわち、ステップS110;YES)、処理をステップS120に進める。配置制御部46は、操作取得部43から何らかの要素又はメモブロック等がドラッグアンドドロップされたことを示す情報を取得するまで、ステップS110を繰り返す(すなわち、ステップS110;NO)。なお、ステップS110をユーザからの操作を取得する操作取得工程と記載することもできる。
【0036】
(ステップS120)次に、配置制御部46は、ドラッグアンドドロップされた要素又はメモブロック等が、メモブロックであるか否かを判定する。配置制御部46は、メモブロックがドラッグアンドドロップされたと判定された場合(すなわち、ステップS120;YES)、処理をステップS130に進める。配置制御部46は、メモブロックがドラッグアンドドロップされたと判定されなかった場合(すなわち、ステップS120;NO)、処理をステップS140に進める。
【0037】
(ステップS130)次に、配置制御部46は、ドロップされた位置に応じて、配置するメモブロックに、どの要素が含まれるかを判定する。配置制御部46は、判定された要素が含まれるような位置にメモブロックを配置するよう制御する。換言すれば、配置制御部46は、ドロップされた位置に応じた範囲のメモブロックを配置するよう制御する。配置制御部46は、表示制御情報DCIを出力することにより、表示制御部45に対して、メモブロックの配置に関する表示をさせる。
【0038】
(ステップS140)次に、配置制御部46は、ドラッグアンドドロップされた要素又はメモブロック等が、要素であるか否かを判定する。配置制御部46は、要素がドラッグアンドドロップされたと判定された場合(すなわち、ステップS140;YES)、処理をステップS150に進める。配置制御部46は、要素がドラッグアンドドロップされたと判定されなかった場合(すなわち、ステップS140;NO)、処理をステップS110に戻す。
【0039】
(ステップS150)次に、配置制御部46は、ドロップされた位置に要素を配置するよう制御する。配置制御部46は、表示制御情報DCIを出力することにより、表示制御部45に対して、要素の配置に関する表示をさせる。
なお、ステップS130及びステップS150のうち、メモブロック又は要素の配置を制御する工程を配置制御工程と記載することもできる。また、配置制御工程により制御された情報に基づき表示を行う工程を表示制御工程と記載することもできる。
【0040】
次に、図7から図9を参照しながら、本実施形態に係るメモブロックの一例について説明する。
【0041】
図7は、実施形態に係るメモブロックについて説明するための図である。同図を参照しながら、実施形態に係るメモブロックについて説明する。
図7(A)は、メモブロックを配置する前の状態の一例についての状態を示す図である。図7(B)は、メモブロックを配置した後の状態の一例についての状態を示す図である。図7(C)は、メモブロックを折りたたんだ状態の一例についての状態を示す図である。図7(A)乃至図7(C)に示す図は、いずれも回路入力ウィンドウD12に表示される図の一例である。
【0042】
図7(A)に示すように、メモブロックを配置する前の状態においては、要素E21乃至要素E25が、第1母線B1及び第2母線B2の間に配置されている。要素E21と要素E22と要素E23とは、第1母線B1及び第2母線B2の間に直列に接続されている。要素E24は、要素E23と並列に接続されている。要素E25は、要素E22及び要素E23が直列接続された構成と並列に接続されている。
【0043】
ここで、ユーザによりメモブロックがドロップされる位置の一例として、範囲AR1乃至範囲AR3を例示することができる。本実施形態に係るメモブロックは、ユーザによりメモブロックがドロップされる位置に応じて、メモブロックに含まれる要素が特定されてもよい。この場合、ユーザによるメモブロックのドラッグアンドドロップ操作は、操作取得部43により受け付けられる。また、配置制御部46は、メモブロックがドロップされた位置に応じて、メモブロックに含まれる要素を特定する。
【0044】
ユーザによりメモブロックがドロップされる位置に応じてメモブロックに含まれる要素が特定される場合における、メモブロックに含まれる要素の特定方法について説明する。説明の都合上、特定の要素より第1母線B1側(図中左側)のことを上流側、特定の要素より第2母線B2側(図中右側)のことを下流側と記載する場合がある。また、特定の要素より上流側及び下流側と記載した場合は、特定の要素と同一の階層に存在する要素を含んでもよい。特定の要素と同一の階層に存在する要素とは、特定の要素と並列に接続されている要素であり、換言すれば、特定の要素と第1母線B1側の交点を共通にする要素である。
以下の説明において、メモブロックに含まれることとなる要素は、例えば、ドロップされた位置と同一階層を含み、ドロップされた位置から下流側に存在する要素である場合について説明する。この場合、メモブロックは、メモブロックに含まれる要素のうち、第1母線B1に最も近い要素から第2母線B2までの間に含まれる要素を含むと記載することもできる。
【0045】
範囲AR1とは、要素E21の近傍の範囲であり、要素E21に対応付けられた範囲である。例えば、ユーザにより範囲AR1にメモブロックがドロップされた場合、要素E21及び要素E21と同一階層を含み要素E21の下流側に存在する要素がメモブロックに含まれることとなる。具体的には、要素E22乃至要素E25は全て要素E21の下流側又は同一階層に存在するため、ユーザにより範囲AR1にメモブロックがドロップされた場合、要素E21乃至要素E25の全てがメモブロックに含まれることとなる。
【0046】
範囲AR2とは、要素E22の近傍の範囲であり、要素E22に対応付けられた範囲である。例えば、ユーザにより範囲AR2にメモブロックがドロップされた場合、要素E22及び要素E22と同一階層を含み要素E22の下流側に存在する要素がメモブロックに含まれることとなる。具体的には、要素E21は要素E22の上流側に存在し、要素E23乃至要素E25は要素E22の下流側又は同一階層に存在するため、ユーザにより範囲AR2にメモブロックがドロップされた場合、要素E22乃至要素E25がメモブロックに含まれることとなる。
【0047】
範囲AR3とは、要素E23の近傍の範囲であり、要素E23に対応付けられた範囲である。例えば、ユーザにより範囲AR3にメモブロックがドロップされた場合、要素E23及び要素E23と同一階層を含み要素E23の下流側に存在する要素がメモブロックに含まれることとなる。具体的には、要素E21、要素E22及び要素E25は要素E23の上流側に存在し、要素E24は要素E23と同一階層に存在するため、ユーザにより範囲AR3にメモブロックがドロップされた場合、要素E23及び要素E24がメモブロックに含まれることとなる。
【0048】
図7(B)には、ユーザによりメモブロックが範囲AR2にドロップされた場合の一例を示す。図中、メモブロックが表示される範囲を、範囲ARMBとして記載する。範囲ARMBには、要素E22乃至要素E25が含まれる。なお、メモブロックが挿入されることにより、メモブロックに含まれる各要素の位置は、移動されてもよい。換言すれば、メモブロックが挿入されることにより、回路のレイアウトが変更されてもよい。要素E22乃至要素E25が移動した後の位置における各要素を要素E22A乃至要素E25Aとして記載する。要素E22A乃至要素E25Aは、メモブロックが範囲AR2に挿入されたことに伴い、図7(A)に示した要素E22乃至要素E25と比較して、下方に移動している。
【0049】
メモブロックには、ユーザの操作により、ユーザが所望する任意のメモを記載することができる。当該メモには、例えばメモブロックに含まれる要素により実現される処理を識別するための名称等が含まれていてもよい。当該メモは、例えば所定の位置をダブルクリックすることにより編集可能なよう構成されていたり、メモブロックのプロパティ値の編集画面等で編集可能なよう構成されていたりしてもよい。
また、図示するように、ユーザによりメモを記載することができる位置には、デフォルト状態(すなわち、ユーザによりメモが記載される前の状態)の一例として、“メモを記入できます”等と表示されていてもよい。
【0050】
なお、本実施形態に係るメモブロックは、折りたたみ機能を有していてもよい。折りたたみ機能とは、メモブロックに含まれる要素を表示状態又は非表示状態のいずれかに切り替える機能である。表示状態では、メモブロックに含まれる要素が表示される。非表示状態では、メモブロックに含まれる要素が表示されない。メモブロックに含まれる要素の表示状態又は非表示状態への切り替えは、ユーザの操作により行われる。この場合、操作取得部43は、表示状態又は非表示状態のいずれとするかに関する操作を受け付ける。表示制御部45は、ユーザにより表示状態が選択された場合、メモブロックに含まれる要素を表示し、ユーザにより非表示状態が選択された場合、メモブロックに含まれる要素を表示しない。
【0051】
具体的には、表示状態又は非表示状態の選択は、折りたたみボタンBを用いて実現されてもよい。この場合、メモブロックは、図示するように折りたたみボタンBを画面構成として有していてもよい。折りたたみボタンBには、表示状態又は非表示状態のいずれであるかに応じて、“-”又は“+”のいずれかが表示される。ユーザは、“-”をクリックすることにより非表示状態になるよう選択し、“+”をクリックすることにより表示状態となるよう選択する。すなわち折りたたみボタンBは、表示状態において“-”を表示し、非表示状態において“+”を表示していてもよい。図7(B)は表示状態であるため、折りたたみボタンBには“-”が表示されている。
【0052】
図7(C)は、ユーザにより非表示状態が選択された場合の一例を示す図である。図7(B)に示した表示状態において、ユーザにより折りたたみボタンBがクリックされると、図7(C)のようにメモブロックに含まれる要素が非表示にされる。非表示状態では、要素が非表示となるものの、ユーザにより入力されたメモは表示されていてもよい。図示する一例では、ユーザによりメモが入力されていないため、デフォルトの状態である“メモを記入してください”とのメモが表示されている。また、図7(C)は非表示状態であるため、折りたたみボタンBには“+”が表示されている。
【0053】
なお、本実施形態に係るメモブロックは、階層構造を有していてもよい。メモブロックの階層構造とは、第1のメモブロックの中に、第1のメモブロックとは異なる第2のメモブロックが挿入されることである。以下の説明において、階層構造を有する複数のメモブロックについて説明する場合、上述した第1のメモブロックを上位階層のメモブロックと、第2のメモブロックを下位階層のメモブロックと記載する場合がある。上位階層のメモブロックの中に、複数の下位階層のメモブロックが存在していてもよい。また、下位階層のメモブロックの中に、更に下位階層のメモブロックが存在するような構成(すなわち、メモブロックが3階層となるような構成)を採用してもよい。メモブロックは、N階層(Nは1以上の自然数)に構成されていてもよい。
なお、ユーザにより階層構造のメモブロックが挿入される場合、下位階層のメモブロックが挿入された後に上位階層のメモブロックが挿入されてもよいし、上位階層のメモブロックが挿入された後に下位階層のメモブロックが挿入されてもよい。
【0054】
階層構造を有する複数のメモブロックのそれぞれについても、上述した折りたたみ機能を適用することができる。例えば、上位階層のメモブロックが折りたたまれると、下位階層のメモブロックについても非表示にされてもよい。また、下位階層のメモブロックが折りたたまれると、上位階層のメモブロックの中で、特定の下位階層のメモブロックのみを非表示にされてもよい。
【0055】
図8は、実施形態に係るメモブロックが複数存在する場合における折りたたみ機能の一例について説明するための図である。同図を参照しながら、下位階層のメモブロックが折りたたまれた場合の一例について説明する。図8(A)は、下位階層のメモブロックが折りたたまれる前の状態の一例を示す図である。図8(B)は、下位階層のメモブロックが折りたたまれた後の状態の一例を示す図である。
【0056】
図8(A)に示すように、図示する一例には、要素E31乃至要素E40が含まれる。また、図示する一例には、メモブロックMB1乃至メモブロックMB4が含まれる。要素E31は、いずれのメモブロックにも含まれない。メモブロックMB1には、要素E32乃至要素E37が含まれる。メモブロックMB2には、要素E33乃至要素E35が含まれる。メモブロックMB3には、要素E36及び要素E37が含まれる。メモブロックMB4には、要素E38乃至要素E40が含まれる。また、メモブロックMB1には、メモブロックMB2及びメモブロックMB3が含まれる。すなわちメモブロックMB1は、メモブロックMB2及びメモブロックMB3を下位階層として有する階層構造を有している。図示する一例において、メモブロックMB1乃至メモブロックMB4は、いずれも折りたたまれていない表示状態である。
【0057】
図8(B)は、図8(A)の状態において、メモブロックMB2が折りたたまれた状態の一例を示す図である。図8(A)の状態において、メモブロックMB2が折りたたまれると、メモブロックMB2に含まれる要素E33乃至要素E35のみが非表示状態となる。換言すれば、メモブロックを非表示状態とすることが選択されると、次のメモブロックまでの間に存在する要素を非表示状態にすると記載することもできる。この場合、配置制御部46は、複数のメモブロックが存在する場合であって、いずれかのメモブロックについて非表示状態が選択された場合、非表示状態が選択されたメモブロックの次のメモブロックまでの間に存在する要素を表示しないよう制御する。
【0058】
図9は、実施形態に係るメモブロックの移動の一例について説明するための図である。同図を参照しながら、メモブロックの移動について説明する。以下に説明するように、本実施形態に係るメモブロックは移動及びコピーすることができるよう構成されていてもよい。この場合、ユーザは、メモブロックを一度折りたたんだ状態で移動又はコピーさせてもよい。なお、説明は省略するが、ユーザは、メモブロックを折りたたまない状態で移動又はコピーさせてもよい。
同図を参照しながら、ユーザによりメモブロックを折りたたみ、移動する場合の一例について説明する。図9(A)は、折りたたむ前の状態の一例を示す図である。図9(B)は、折りたたんだ後の状態の一例を示す図である。図9(C)は、折りたたんだ状態でドラッグアンドドロップをした場合の一例を示す図である。図9(D)は、移動後に表示状態にした場合の一例を示す図である。
【0059】
図9(A)に示すように、図示する一例には、要素E41乃至要素E46が含まれる。また、図示する一例には、メモブロックMB43及びメモブロックMB46が含まれる。要素E41及び要素E42は、いずれのメモブロックにも含まれない。メモブロックMB43には、要素E43乃至要素E45が含まれる。メモブロックM46には、要素E46が含まれる。図示する一例において、メモブロックMB43及びメモブロックMB46は、同一階層に存在するため、それぞれ別個独立して折りたたむことができる。
【0060】
図9(B)は、メモブロックMB43を折りたたんだ状態を示す。図示する一例では、メモブロックMB43が折りたたまれているため、メモブロックMB43に含まれる要素E43乃至要素E45は非表示となっている。この状態において、メモブロックMB43をドラッグアンドドロップすることにより、ユーザは任意の場所にメモブロックMB43及びメモブロックMB43に含まれる要素E43乃至要素E45を移動又はコピーすることができる。
【0061】
図9(C)は、メモブロックMB43を要素E42の上方にドラッグアンドドロップし、移動させる場合の一例を示す図である。図示するように、メモブロックMB43が要素E42の上方に移動されている。メモブロックMB43の大きさは、ユーザによりドラッグされた場合、挿入箇所を容易に判断できるよう小さく表示されてもよい。図示する一例では移動の場合を示しているが、コピーの場合は、メモブロックMB43が存在していた場所に、メモブロックMB43が表示され続けてもよい。
【0062】
図9(D)は、メモブロックMB43が図9(C)に示した位置でドロップされた後の表示の一例を示す図である。メモブロックMB43及びメモブロックMB43に含まれる要素E43乃至要素E45は、要素E42の上方に、要素E42と並列に挿入される。図示するように、メモブロックMB43に含まれる要素E43乃至要素E45は、移動前には非表示であったものの、移動後には表示状態となっている。すなわち、移動前には非表示であった要素が、ユーザの操作によらず、移動後には表示状態となっている。また、メモブロックMB43に含まれる要素E43乃至要素E45は、移動後においても接続を維持したまま、移動されている。なお、移動後にメモブロックに含まれる要素を移動後に表示状態にすることにより、ユーザに対し、メモブロックに含まれる要素が変化していないことの確認を容易にさせることができる。しかしながら本実施形態はこの一例に限定されず、移動後にも非表示状態を維持したまま、ユーザの操作により表示状態とするよう構成されていてもよい。
【0063】
図9(A)乃至図9(D)を参照しながら説明したように、本実施形態によれば、メモブロック及びメモブロックに含まれる要素をコピー又は移動することができる。これらのコピー又は移動は、ユーザの操作に基づき、配置制御部46により行われる。すなわち配置制御部46は、ユーザの操作に基づき、メモブロック及びメモブロックに含まれる要素をコピー又は移動するよう制御する。
【0064】
[実施形態のまとめ]
以上説明した実施形態によれば、編集装置40は、ユーザの操作に基づき、プログラムを構成するタスクの始点又は終点を示す2つの母線間に複数の要素を配置し、要素を介して母線間を接続することにより、コンピュータに実行させる処理を記載する。また、編集装置40は、操作取得部43を備えることによりユーザの操作を取得し、配置制御部46を備えることにより取得された操作に基づき要素の配置を制御し、コンピュータに実行させる処理に影響を与えないメモであり1以上の要素に対応するメモであるメモブロックの配置を制御し、表示制御部45を備えることにより配置制御部46により配置された要素及びメモブロックの表示に関する制御をする。また、メモブロックには、メモブロックに含まれる要素を特定する情報と、メモブロックに含まれる要素の接続についての情報とが対応付けられる。すなわち、編集装置40によれば、ユーザは、プログラム内にメモブロックとして、ブロックごとにメモを残すことができる。当該メモブロックは複数の要素を含み、回路のレイアウトが変更された場合であっても、複数の要素とメモブロックとの関係は変わらない。したがって、回路のレイアウトが変更された場合であっても、コメントと回路要素との間に不整合が生じることがない。したがって本実施形態によれば、ユーザは、視認性の良いプログラムを作成及び編集することができる。
【0065】
また、以上説明した実施形態によれば、要素は、プログラムを構成するタスクの始点である第1母線とプログラムを構成するタスクの終点である第2母線との間に配置される。また、メモブロックは、メモブロックに含まれる要素のうち、第1母線に最も近い要素から第2母線までの間に含まれる要素を含む。メモブロックに含まれる要素は、例えばメモブロックがドロップされた位置に応じて特定されてもよい。すなわち、編集装置40によれば、ユーザは、メモブロックに含まれる要素を個別に選択することを要せず、メモブロックに含まれる要素を容易に特定することができる。
【0066】
また、以上説明した実施形態によれば、操作取得部43は、メモブロックに含まれる要素を表示する表示状態又はメモブロックに含まれる要素を表示しない非表示状態のいずれとするかに関する操作を受け付け、表示制御部45は、表示状態が選択された場合、メモブロックに含まれる要素を表示し、非表示状態が選択された場合、メモブロックに含まれる要素を表示しない。すなわち、編集装置40によれば、メモブロックに含まれる要素を折りたたむことができる。メモブロックには、当該メモブロックに含まれる要素により実現される機能をメモとして記載することができる。したがって、メモブロックを折りたたむことにより、視認性のよいプログラムを編集することができる。
【0067】
また、以上説明した実施形態によれば、操作取得部43は、複数のメモブロックについて、それぞれ表示状態又は非表示状態のいずれとするかに関する操作を受け付け、表示制御部45は、複数のメモブロックが存在する場合であって、いずれかのメモブロックについて非表示状態が選択された場合、非表示状態が選択されたメモブロックの次のメモブロックまでの間に存在する要素を表示しない。すなわち、本実施形態によれば、折りたたみ機能の範囲は、次のメモブロックまでとすることができる。したがって、編集装置40によれば、メモブロックを折りたたむことにより、視認性のよいプログラムを編集することができる。
【0068】
また、以上説明した実施形態によれば、操作取得部43は、ユーザによるメモブロックのドラッグアンドドロップ操作を受け付け、配置制御部46は、メモブロックがドロップされた位置に応じて、メモブロックに含まれる要素を特定する。すなわち、編集装置40によれば、ユーザは、メモブロックに含まれる要素を個別に選択することを要せず、メモブロックに含まれる要素を容易に特定することができる。
【0069】
また、以上説明した実施形態によれば、配置制御部46は、ユーザの操作に基づき、メモブロック及びメモブロックに含まれる要素をコピー又は移動するよう制御する。すなわち、編集装置40によれば、メモブロックを移動又はコピーすることができる。したがって本実施形態によれば、ユーザは要素を個別に移動又はコピーすることを要せず、機能(処理)単位で容易にプログラムを移動又はコピーすることができる。
【0070】
なお、上述した実施形態における編集装置40が備える各部の機能全体あるいはその一部は、これらの機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
【0071】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶部のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバーやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0072】
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。また、本発明はこうした実施形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【0073】
1…ロボットシステム、10…情報処理装置、11…編集ソフト、12…OS、13…ハードウェア、20…制御プログラム、30…ロボット、31…記憶部、32…制御部、33…入力デバイス、34…出力デバイス、40…編集装置、43…操作取得部、45…表示制御部、46…配置制御部、D10…編集ソフト操作画面、D11…ツールバー、D12…回路入力ウィンドウ、C…カーソル、B1…第1母線、B2…第2母線、OI…操作情報、DCI…表示制御情報、E…要素、AR…領域
図1
図2
図3
図4
図5
図6
図7
図8
図9