(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024041331
(43)【公開日】2024-03-27
(54)【発明の名称】変数の突合方法及びプログラム
(51)【国際特許分類】
G05B 19/042 20060101AFI20240319BHJP
G06F 8/30 20180101ALI20240319BHJP
【FI】
G05B19/042
G06F8/30
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022146078
(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)【発明者】
【氏名】佐野 将人
(72)【発明者】
【氏名】奥 成郁
(72)【発明者】
【氏名】永塚 正樹
【テーマコード(参考)】
5B376
5H220
【Fターム(参考)】
5B376AA21
5B376AA32
5B376BC23
5B376BC31
5B376BC38
5B376BC80
5H220AA05
5H220BB12
5H220CC06
5H220CX02
5H220DD04
5H220HH08
5H220JJ12
5H220JJ24
5H220JJ53
(57)【要約】
【課題】異なるファイル間にそれぞれ用いられた変数を、好適に突合させる。
【解決手段】変数の突合方法は、第1ファイルに含まれる変数と第2ファイルに含まれる変数とを突合する突合方法であって、第1ファイルに記載された変数を特定する情報を取得する第1特定工程と、第1ファイルに記載された複数の変数のうち、第1ファイルとは異なるファイルとの間で引数として渡す変数として選択された変数についての情報を取得する第1選択工程と、第2ファイルに記載された変数を特定する情報を取得する第2特定工程と、第2ファイルに記載された複数の変数のうち、第2ファイルとは異なるファイルとの間で引数として渡す変数として選択された変数についての情報を取得する第2選択工程と、第1選択工程により選択された変数と、第2選択工程により選択された変数とを所定の対応表に基づき突合する突合工程とを有する。
【選択図】
図8
【特許請求の範囲】
【請求項1】
読込元のファイルである第1ファイルに含まれる変数と、前記第1ファイルから読み込まれる読込先のファイルである第2ファイルに含まれる変数とを突合する突合方法であって、
前記第1ファイルに記載された変数を特定する情報を取得する第1特定工程と、
前記第1ファイルに記載された複数の変数のうち、前記第1ファイルとは異なるファイルとの間で引数として渡す変数として選択された変数についての情報を取得する第1選択工程と、
前記第2ファイルに記載された変数を特定する情報を取得する第2特定工程と、
前記第2ファイルに記載された複数の変数のうち、前記第2ファイルとは異なるファイルとの間で引数として渡す変数として選択された変数についての情報を取得する第2選択工程と、
前記第1選択工程により選択された変数と、前記第2選択工程により選択された変数とを所定の対応表に基づき突合する突合工程と
を有する変数の突合方法。
【請求項2】
前記第1特定工程は、前記第1ファイルに含まれる複数の変数を表示し、
前記第1選択工程は、表示された複数の変数のうち特定の変数が選択される操作を取得することにより、前記第1ファイルとは異なるファイルとの間で引数として渡す変数として選択された変数についての情報を取得し、
前記第2特定工程は、前記第2ファイルに含まれる複数の変数を表示し、
前記第2選択工程は、表示された複数の変数のうち特定の変数が選択される操作を取得することにより、前記第2ファイルとは異なるファイルとの間で引数として渡す変数として選択された変数についての情報を取得する
請求項1に記載の変数の突合方法。
【請求項3】
前記第1選択工程は、前記第1ファイルとは異なるファイルとの間で引数として渡す変数のうち、読込元ファイルから引き渡される変数と、読込先ファイルから引き渡される変数とを区別して選択された変数についての情報を取得し、
前記第2選択工程は、前記第2ファイルとは異なるファイルとの間で引数として渡す変数のうち、読込元ファイルから引き渡される変数と、読込先ファイルから引き渡される変数とを区別して選択された変数についての情報を取得する
請求項2に記載の変数の突合方法。
【請求項4】
前記第1ファイルに含まれる変数のうちいずれの変数と、前記第2ファイルに含まれる変数のうちいずれの変数とを突合させるかを示す対応表を作成する対応表作成工程を更に有する
請求項1に記載の変数の突合方法。
【請求項5】
前記突合工程は、前記第1ファイル及び前記第2ファイルを含むコンピュータプログラムが実行され、最初に前記第1ファイルから前記第2ファイルの呼び出しが行われる際に行われる
請求項1に記載の変数の突合方法。
【請求項6】
前記第1ファイル及び前記第2ファイルは、いずれもユーザの操作に基づき、プログラムを構成するタスクの始点又は終点を示す2つの母線間に複数の要素が配置され、前記要素を介して前記母線間が接続されることにより、コンピュータに実行させる処理が記載された図である
請求項1から請求項5のいずれか一項に記載の変数の突合方法。
【請求項7】
前記第1ファイル及び前記第2ファイルは、いずれもラダープログラムである
請求項1から請求項5のいずれか一項に記載の変数の突合方法。
【請求項8】
読込元のファイルである第1ファイルと、前記第1ファイルから読み込まれる読込先のファイルである第2ファイルとを含むコンピュータプログラムを実行するコンピュータに、
前記第1ファイルに記載された変数を特定する情報を取得する第1特定ステップと、
前記第1ファイルに記載された複数の変数のうち、前記第1ファイルとは異なるファイルとの間で引数として渡す変数として選択された変数についての情報を取得する第1選択ステップと、
前記第2ファイルに記載された変数を特定する情報を取得する第2特定ステップと、
前記第2ファイルに記載された複数の変数のうち、前記第2ファイルとは異なるファイルとの間で引数として渡す変数として選択された変数についての情報を取得する第2選択ステップと、
前記第1選択ステップにより選択された変数と、前記第2選択ステップにより選択された変数とを所定の対応表に基づき突合する突合ステップと
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、変数の突合方法及びプログラムに関する。
【背景技術】
【0002】
従来、ラダー方式のエディタとしては、複数のラダーファイルをそれぞれ別個に作成し、作成した複数のラダーファイルについて実行タイミングを設定することにより、それぞれ別個に作成した複数のラダーファイルを連携させることが一般的であった。また、一つのラダーファイル内に、階層状に別のラダーファイルを読み込むことを可能とする技術も知られている。ここで、複数のラダーファイルを連携する場合、異なるファイル間にそれぞれ記載された変数を突合させることが行われる。変数の突合については、例えば、特許文献1に記載されたような技術が知られている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
異なるラダーファイル間にそれぞれ記載された変数を突合させる場合、同名の変数については複数のラダーファイルで共通化される。すなわち、変数を異なるラダーファイル間で共通化させたくない場合は、複数のラダーファイルにおいて一度も使用されていない変数名を用いる必要があった。
例えば、複数の異なるラダーファイルをそれぞれ異なる者が作成する場合、既に存在しているラダーファイルに使用されている変数名を確認して、未だ使用されていない変数名を使用しなければならない。したがって、従来技術によれば、既に作成されたラダーファイルや、作成者の異なるラダーファイルを再利用しにくいという問題があった。特に、サービスロボットのように複数人数で複雑な動作が記載されたプログラムをラダー方式で記述する場合、大量のラダーファイルにそれぞれ記載された変数名を意識しながら作成する必要があり、ラダープログラムの作成に多大な時間を要してしまうという問題があった。
【0005】
そこで本発明は、異なるファイル間にそれぞれ用いられた変数を、好適に突合させることが可能な技術を提供しようとするものである。
【課題を解決するための手段】
【0006】
上記の課題を解決するため、本発明の一態様は、読込元のファイルである第1ファイルに含まれる変数と、前記第1ファイルから読み込まれる読込先のファイルである第2ファイルに含まれる変数とを突合する突合方法であって、前記第1ファイルに記載された変数を特定する情報を取得する第1特定工程と、前記第1ファイルに記載された複数の変数のうち、前記第1ファイルとは異なるファイルとの間で引数として渡す変数として選択された変数についての情報を取得する第1選択工程と、前記第2ファイルに記載された変数を特定する情報を取得する第2特定工程と、前記第2ファイルに記載された複数の変数のうち、前記第2ファイルとは異なるファイルとの間で引数として渡す変数として選択された変数についての情報を取得する第2選択工程と、前記第1選択工程により選択された変数と、前記第2選択工程により選択された変数とを所定の対応表に基づき突合する突合工程とを有する変数の突合方法である。
【0007】
また、上記の課題を解決するため、本発明の一態様は、読込元のファイルである第1ファイルと、前記第1ファイルから読み込まれる読込先のファイルである第2ファイルとを含むコンピュータプログラムを実行するコンピュータに、前記第1ファイルに記載された変数を特定する情報を取得する第1特定ステップと、前記第1ファイルに記載された複数の変数のうち、前記第1ファイルとは異なるファイルとの間で引数として渡す変数として選択された変数についての情報を取得する第1選択ステップと、前記第2ファイルに記載された変数を特定する情報を取得する第2特定ステップと、前記第2ファイルに記載された複数の変数のうち、前記第2ファイルとは異なるファイルとの間で引数として渡す変数として選択された変数についての情報を取得する第2選択ステップと、前記第1選択ステップにより選択された変数と、前記第2選択ステップにより選択された変数とを所定の対応表に基づき突合する突合ステップとを実行させるプログラムである。
【発明の効果】
【0008】
本発明によれば、異なるファイル間にそれぞれ用いられた変数を、好適に突合させることができる。
【図面の簡単な説明】
【0009】
【
図1】実施形態に係るロボットシステムの概要について説明するための図である。
【
図2】実施形態に係る情報処理装置の機能構成の一例を示す図である。
【
図3】実施形態に係るロボットの機能構成の一例を示す図である。
【
図4】実施形態に係る編集ソフト操作画面の一例を示す図である。
【
図5】実施形態に係る回路入力画面の一例を示す図である。
【
図6】実施形態に係るラダーファイルの階層構造について説明するための図である。
【
図7】実施形態に係る階層ブロックについて説明するための図である。
【
図8】実施形態に係る変数の突合について説明するための第1の図である。
【
図9】実施形態に係る変数の突合について説明するための第2の図である。
【
図10】実施形態に係る入力パラメータ設定画面と出力パラメータ設定画面の一例について示す図である。
【
図11】実施形態に係る突合方法の一例について示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、本発明の実施形態について図面を参照して説明する。以下に示す実施形態は、発明の趣旨をより良く理解させるために、例を挙げて説明するものであり、特に指定のない限り、本発明を限定するものではない。
【0011】
[実施形態]
まず、実施形態の前提となる事項を説明する。
【0012】
本実施形態に係るロボットシステム1は、所定の制御プログラムに基づいてロボットを制御する。本実施形態に係るロボットには、サービスロボットや産業用ロボット等、所定の制御プログラムに基づいた処理を行うロボットが広く含まれる。以下に説明する実施形態においては、ロボットシステム1が自律的に移動し、物体を把持して移動させるサービスロボットを制御する場合の一例について説明する。
また、本実施形態に係る所定の制御プログラムとは、ラダー図(LD言語、又はラダー言語)、FB(ファンクションブロック)言語、SFC(シーケンシャル・ファンクション・チャート)言語、及びこれらに類似した言語等を用いて作成された制御プログラムを広く含む。これらに類似した言語とは、例えば、ラダー図に似た図を用いたものであってもよく、ユーザの操作に基づき2つの母線間に複数の要素を配置し、配置された要素を介して母線間が接続されることにより、ロボットに実行させる処理が記載されるものであってもよい。2つの母線とは、ラダー図の場合と同様の役割を有する。一方の母線はプログラムを構成するタスクの始点を示し、他方の母線はタスクの終点を示すものである。また、本実施形態に係る所定の制御プログラムは、ロボットに実行させる処理が記載されるものに限定されず、コンピュータに実行させる処理が記載されたものであってもよい。以下の説明においては、一例として、本実施形態に係る所定の制御プログラムがラダー図である場合について説明する。
【0013】
図1は、実施形態に係るロボットシステムの概要について説明するための図である。同図を参照しながら、ロボットシステム1の概要について説明する。ロボットシステム1は、情報処理装置10と、ロボット30とを備える。ロボットシステム1は、情報処理装置10とロボット30とを備えることにより、ユーザからの操作に基づいてロボット30に所定の処理を行わせる。ここで、ユーザからの操作とは、ロボット30が駆動している最中に行われる操作(リアルタイム操作)であってもよいし、ロボット30が駆動する前に予め行われる制御プログラム作成等の操作であってもよい。ユーザとは、ロボット30を最終的に使用するエンドユーザであってもよいし、ロボット30が工場から出荷される前に作業する作業員であってもよい。
【0014】
情報処理装置10は、編集ソフト11を有する。編集ソフト11は、情報処理装置10にインストールされて動作するアプリケーションである。情報処理装置10は、インターネット上で動作するWebアプリケーションであってもよい。編集ソフト11は、ユーザからの操作に基づき制御プログラム20を生成する。具体的には、編集ソフト11は、情報処理装置10に備えられた不図示のキーボード等の入力デバイスにより、ユーザの操作を取得し、取得した操作に基づいた制御プログラム20を生成する。例えば制御プログラム20は、編集ソフト11によりコンパイルが行われた結果として生成される。生成された制御プログラム20は、ロボット30に出力される。
なお、情報処理装置10は、例えば、パーソナルコンピュータや、タブレット端末、スマートフォン等の一般に用いられるコンピュータであってもよい。
【0015】
ロボット30は、記憶部31を備える。情報処理装置10により出力された制御プログラム20は、所定の通信方式によりロボット30に送信され、記憶部31に記憶される。ロボット30は、不図示の制御部により記憶部31に記憶された制御プログラム20を実行することにより、制御プログラム20にしたがってシーケンス制御される。所定の処理とは、例えばロボット30の移動や、周囲の状況の撮像、物体の把持、物体の移動等であってもよい。
【0016】
なお、ロボット30は、予め記憶部31に記憶された制御プログラム20を実行することにより所定の処理を行ってもよいし、記憶部31に記憶された制御プログラム20のうち変数部分がリアルタイムで書き換えられることによりリアルタイムで制御されてもよい。ロボット30がリアルタイムで制御される場合、制御プログラム20がロボット30の記憶部31に記憶される場合の一例に代えて、制御プログラム20が情報処理装置10に備えられた不図示の記憶部に記憶されてもよい。この場合、情報処理装置10は、自身に備えられた記憶部に記憶された制御プログラム20を実行することにより、ロボット30を制御する。情報処理装置10とロボット30とは、所定の有線又は無線による通信方式により双方向通信を行う。所定の通信方式とは、ブルートゥース(登録商標)(Bluetooth)又はWi-Fi(登録商標)等であってもよい。
【0017】
図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を生成する。
【0018】
図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)等のハードウェア資源を含んで構成されていてもよい。
【0019】
入力デバイス33は、ロボット30の外部環境から情報を取得し、取得した情報を制御部32に提供する。入力デバイス33は、ロボット30のアプリケーションに応じた複数のセンサやエンコーダ等を含む。入力デバイス33に含まれる要素としては、カメラ、位置センサ(GPSセンサ:Global Positioning System Sensor)、加速度センサ、光センサ、温度センサ、湿度センサ、磁気センサ、触覚センサ、超音波センサ等を例示することができる。ロボット30が自律的に移動し、物体を把持して移動させるサービスロボットである場合、入力デバイス33の一例としては、カメラ、位置センサ、触覚センサ等を例示することができる。
【0020】
出力デバイス34は、制御部32の制御に基づいて駆動される。出力デバイス34は、ロボット30のアプリケーションに応じた複数のモータ等を含む。出力デバイス34に含まれる要素としては、ステッピングモータ、DCモータ、ソレノイド、クラッチ、発光ダイオード(LED:Light-Emitting Diode)ディスプレイ等を例示することができる。ロボット30が自律的に移動し、物体を把持して移動させるサービスロボットである場合、出力デバイス34の一例としては、車輪駆動用モータ、アーム駆動用モータ、状態表示用LED等を例示することができる。
【0021】
図4は、実施形態に係る編集ソフト操作画面の一例を示す図である。同図を参照しながら、編集ソフト11の操作画面である編集ソフト操作画面D10の一例について説明する。編集ソフト操作画面D10は、情報処理装置10に備えられる不図示の表示部に表示される。なお、表示部は情報処理装置10に備えられなくてもよく、情報処理装置10により外部の表示部に出力されてもよい。
【0022】
編集ソフト操作画面D10は、ツールバーD11と回路入力ウィンドウD12とを少なくとも画面の構成要素として備える。編集ソフト操作画面D10は、ユーザに対し、サービスロボットに処理させるタスクを容易に編集可能な操作画面を提供する。一例として、編集ソフト操作画面D10は、ラダー図を編集可能な操作画面を提供する。
【0023】
ツールバーD11は、選択可能な要素を表示する。選択可能な要素としては、ラダー図における接点、タイマ、又はEND命令等を例示することができる。図示する一例では、ツールバーD11は、第1要素D111と、第2要素D112と、…、第n要素D11n(nは1以上の自然数)とを画面の構成要素として備える。各要素は、それぞれ接点、タイマ、又はEND命令等を示している。
回路入力ウィンドウD12は、ユーザにより現在編集が行われている回路を表示する。ユーザにより現在編集が行われている回路とは、例えばラダー図である。ユーザはツールバーD11からいずれかの要素を選択し、選択した要素を回路入力ウィンドウD12に配置する。また、ユーザは選択した要素同士を接続する。これらのユーザの操作により、ロボット30に処理させるタスクが記載されたラダー図が作成される。
編集ソフト操作画面D10は、その他、様々な画面構成要素を有していてもよい。
【0024】
図5は、実施形態に係る回路入力画面の一例を示す図である。同図を参照しながら、回路入力画面D20の一例について説明する。回路入力画面D20は、回路入力ウィンドウD12に表示される。
回路入力画面D20には、第1タスク表示部D21と、第2タスク表示部D22と、第3タスク表示部D23とが表示されている。これらタスクはユーザにより入力されたものであり、ラダー図入力開始時点においては、回路入力画面D20は空白であってもよい。同図には一例として回路入力画面D20に第1タスク表示部D21乃至第3タスク表示部D23の3つのタスクが表示される場合について示したが、表示されるタスクの数はユーザにより任意に設定されてもよい。
【0025】
ユーザは、各タスクにそれぞれ含まれる各要素をダブルクリックすることにより、ロボットやコンピュータ等に実行させたい処理を入力する。ロボットやコンピュータ等に実行させたい処理はプラグイン化されており、予め用意されていてもよい。ユーザは、各要素をダブルクリックすることにより、選択肢として表示される複数のプラグインのうちいずれかのプラグインを選択する。各プラグインは、C++等のプログラミング言語によりコーディングすることができ、ユーザによって自作されたプラグインが追加されてもよい。
【0026】
また、ユーザは、要素同士を接続することによりロボット30に行わせる処理が記載されたラダー図を作成する。
図示する一例では、第1タスク表示部D21には要素E211乃至要素E214が含まれており、要素E211と要素E212、要素E212と要素E213、要素E212と要素E214が互いに接続されている。また、第2タスク表示部D22には要素E221乃至要素E224が含まれており、要素E221と要素E222、要素E222と要素E223、要素E222と要素E224が互いに接続されている。また、第3タスク表示部D23には要素E231乃至要素E233が含まれており、要素E231と要素E232、要素E231と要素E233が互いに接続されている。
回路入力画面D20は、その他、様々な画面構成要素を有していてもよい。
【0027】
図6は、実施形態に係るラダーファイルの階層構造について説明するための図である。同図を参照しながら、ラダーファイルの階層構造について説明する。本実施形態に係るラダーファイルは、第1階層L1乃至第n階層Ln(nは1以上の自然数)の階層構造を有する。階層構造を構成する複数のラダーファイルは、それぞれ別個独立したファイルである。また、複数のラダーファイルは、それぞれ異なる担当者により作成されたものであってもよい。
なお、以下の説明において、所定のラダー図が記載された電子ファイルをラダーファイルと記載する。また、1又は複数のラダー図(又はラダーファイル)を含んで構成されるコンピュータプログラムをラダープログラムと記載する。
【0028】
図示する一例では、第1階層L1に第1タスクTask1、第2タスクTask2及び第3タスクTask3が記載されている。第1階層L1は、例えばロボット30が有する機能を設定できる階層であってもよい。
第2階層L2には、第1タスクTask1、第2タスクTask2及び第3タスクTask3の詳細なラダー図が記載されている。図示する一例では、第1タスクTask1についての詳細な処理が示されている。第2階層L2には、第1タスクTask1に応じた処理である第1中タスクETask1、第2タスクTask2に応じた処理である第2中タスクETask2及び第3タスクTask3に応じた処理である第3中タスクETask3等が含まれる。第2階層L2は、例えばロボット30が有する機能それぞれについての作業シーケンスが記載されている。第2階層L2の中にも階層構造を作成することが可能であり、第2階層L2が更に階層構造を有する場合、第3階層L3として記載される。
図示する一例では、第3階層L3には、第1中タスクETask1についての詳細なラダー図が記載されている。第3階層L3には、例えばロボットが行う具体的な作業内容が記載される。第2中タスクETask2及び第3中タスクETask3の詳細については図示を省略するが、第1中タスクETask1と同様に、詳細なラダー図が用意されていてもよい。
このように、第1階層L1乃至第n階層Lnにおいて、階層別に異なる役割を持たせてラダー図を設計することが可能である。
【0029】
図6には、一例として第1階層L1を最上位階層とし、その下に第2階層L2を、更にその下に第3階層L3を有する場合について説明した。ここで、それぞれの階層に含まれるラダーファイルは、1対m(mは1以上の自然数)の関係であってもよい。すなわち、第1階層L1を構成する1つのラダーファイルの下位階層には、複数のラダーファイルが対応付けられていてもよい。図示する一例では、第1階層L1に記載された第1タスクTask1、第2タスクTask2及び第3タスクTask3に対して、それぞれ異なるラダーファイルが下位階層である第2階層L2として対応付けられていてもよい。
【0030】
図7は、実施形態に係る階層ブロックについて説明するための図である。同図を参照しながら、階層ブロックについて説明する。階層ブロックとは、ある階層に含まれる所定の機能を、下位の階層に個別に作成したブロックである。図示する一例では、編集画面D21に含まれる“layer1”という機能を、階層ブロックとして作成している。“layer1”についての階層ブロックは、編集画面D22に示されている。
階層ブロックを用いて異なる階層に機能をまとめることにより、ある階層に含まれる所定の機能を、個別に保存することができる。また、個別に保存した所定の機能を読み込むことができる。階層ブロックは、階層ごとに異なる名前を付けて保存することもできる。
【0031】
ここで、異なる階層同士のラダーファイルを対応付けるためには、それぞれのラダーファイルに含まれる変数を突合させ、変数の対応付けを行うことを要する。
図8乃至
図10を参照しながら、本実施形態に係る変数の突合について説明する。
【0032】
図8は、実施形態に係る変数の突合について説明するための第1の図である。同図には、読込元ファイルF31と読込先ファイルF32とが示されている。読込元ファイルF31及び読込先ファイルF32は、互いに別個独立したラダーファイルである。読込元ファイルF31は上位階層、読込先ファイルF32は下位階層の階層構造を構成する。読込元ファイルF31は、読込先ファイルF32を読み込む。以下の説明において読込元のファイルである読込元ファイルF31を第1ファイル、読込元ファイルF31から読み込まれる読込先のファイルである読込先ファイルF32を第2ファイルと記載する場合がある。第1ファイル及び第2ファイルは、いずれもラダープログラムである。
【0033】
本実施形態においては、ラダーファイルの階層構造を実現するため、読込元ファイルF31に含まれる変数と、読込先ファイルF32に含まれる変数とを突合し、対応付けを行う。読込元ファイルF31に含まれる変数を、図中に読込元変数テーブルT31として示す。また、読込先ファイルF32に含まれる変数を、図中に読込先変数テーブルT32として示す。
【0034】
以下の説明において、読込元変数テーブルT31及び読込先変数テーブルT32を区別しない場合、単に変数テーブルと記載する場合がある。図示する変数テーブルは、編集ソフト11が情報処理装置10の表示部に表示させる画面構成の一例を示している。変数テーブルには、変数ごとに、入力変数情報と、出力変数情報と、変数名と、値と、メモとが対応付けられている。変数名は、当該変数をラダーファイル内で識別する名称である。値は、当該変数の値を示す。メモは、当該変数についての情報を示す。メモは、必要に応じて記載されていればよく、必ずしも記載がなくてもよい。
【0035】
ここで、ラダーファイルに含まれる複数の変数は、上位階層から下位階層に引数として入力される第1の変数と、下位階層から上位階層へ引数として出力される第2の変数と、引数としては用いられず同一階層内におけるラダーファイル内でのみ使用される第3の変数とに区別することができる。
入力変数情報及び出力変数情報は、当該変数が上述した第1の変数から第3の変数のうち、いずれの変数であるかについての情報を示す。具体的には、入力変数情報は、上位階層から引数として入力される第1の変数であるか否かを示し、出力変数情報は、上位階層へ引数として出力される第2の変数であるか否かを示す。第1の変数でも第2の変数でもない場合は、第3の変数である。すなわち、ラダーファイルに含まれる複数の変数は、入力変数情報と出力変数情報との組み合わせにより、第1の変数から第3の変数のうち、いずれかに区別することができる。
【0036】
ラダーファイルに含まれる複数の変数それぞれが、第1の変数から第3の変数のうちいずれであるかは、ユーザによる選択に基づいて決定されてもよい。具体的には、変数テーブルに備えられたチェックボックスCBを用いることにより、ユーザにより当該変数が第1の変数から第3の変数のうちいずれであるかが選択される。
【0037】
ユーザによる引数の選択についての具体例について説明する。ユーザによる引数の選択は、編集ソフト11により行われる。編集ソフト11により、まず読込元ファイルF31に記載された変数を特定する情報が取得される。当該工程を第1特定工程と記載する。第1特定工程では、特定した読込元ファイルF31に含まれる複数の変数を表示してもよい。図示する一例では、特定した変数が読込元変数テーブルT31として表示されている。一例として、読込元変数テーブルT31には、変数名が“a0”、“a1”及び“a2”である変数が表示されている。これらの変数は、ラダーファイルである読込元ファイルF31の中で使用される変数である。
【0038】
次に、特定された変数のうち異なるファイル間で引数として用いられる変数についての情報が取得される。引数として用いられるか否かは、ユーザにより選択される。当該工程を第1選択工程と記載する。換言すれば、第1選択工程では、読込元ファイルF31に記載された複数の変数のうち、読込元ファイルF31とは異なるファイルとの間で引数として渡す変数として選択された変数についての情報が取得される。
第1選択工程では、第1特定工程により表示された複数の変数のうち、いずれの変数が引数として用いられるかがユーザにより選択される。すなわち、第1選択工程では、特定の変数が選択される操作を取得することにより、引数として渡す変数として選択された変数についての情報を取得してもよい。特定の変数が選択される操作とは、ユーザによるチェックボックスのチェック操作であってもよい。
【0039】
次に、編集ソフト11により、読込先ファイルF32に記載された変数を特定する情報が取得される。当該工程を第2特定工程と記載する。第2特定工程では、特定した読込先ファイルF32に含まれる複数の変数を表示してもよい。図示する一例では、特定した変数が読込先変数テーブルT32として表示されている。一例として、読込先変数テーブルT32には、変数名が“b0”、“b1”、“b2”及び“a2”である変数が表示されている。これらの変数は、ラダーファイルである読込先ファイルF32の中で使用される変数である。
【0040】
更に、特定された変数のうち異なるファイル間で引数として用いられる変数についての情報が取得される。引数として用いられるか否かは、ユーザにより選択される。当該工程を第2選択工程と記載する。換言すれば、第2選択工程では、読込先ファイルF32に記載された複数の変数のうち、読込先ファイルF32とは異なるファイルとの間で引数として渡す変数として選択された変数についての情報が取得される。
第2選択工程では、第2特定工程により表示された複数の変数のうち、いずれの変数が引数として用いられるかがユーザにより選択される。すなわち、第2選択工程では、特定の変数が選択される操作を取得することにより、引数として渡す変数として選択された変数についての情報を取得してもよい。特定の変数が選択される操作とは、ユーザによるチェックボックスのチェック操作であってもよい。
【0041】
ここで、チェックボックスCBについて、より詳細に説明する。チェックボックスCBには、変数ごとに引数として渡される変数を選択することができる。具体的には、チェックボックスCBには変数ごとに“入”と“出”の欄が設けられている。“入”の欄にチェックがされた変数は、読込元ファイルから引き渡される変数(上位階層から下位階層に引数として渡される変数)として設定される。“出”の欄にチェックがされた変数は、読込先ファイルから引き渡される変数(下位階層から上位階層に引数として渡される変数)として設定される。すなわち、第1選択工程及び第2選択工程では、それぞれ読込元ファイルから引き渡される変数と、読込先ファイルから引き渡される変数とを区別して選択された変数についての情報を取得する。
【0042】
第1選択工程により選択された変数と、第2選択工程により選択された変数とは、突合工程により突合され、対応付けが行われる。突合工程では、所定の対応表に基づき異なるファイルに含まれる変数同士を突合する。
図8には、所定の対応表の一例として、対応テーブルCTが示されている。対応テーブルCTには、読込元ファイルF31に含まれる変数のうちいずれの変数と、読込先ファイルF32に含まれる変数のうちいずれの変数とが対応するかが示されている。同図に示す一例では、読込元ファイルF31に含まれる変数のうち変数名が“a0”の変数と、読込先ファイルF32に含まれる変数のうち変数名が“b0”の変数とが対応する。
【0043】
読込元ファイルF31と読込先ファイルF32とを突合させるために用いられる所定の対応表は、編集ソフト11を介してユーザにより作成されてもよい。編集ソフト11により所定の対応表を作成する工程を対応表作成工程と記載する。換言すれば、対応表とは、読込元ファイルF31に含まれる変数のうちいずれの変数と、読込先ファイルF32に含まれる変数のうちいずれの変数とを突合させるかを示す表である。
【0044】
図9は、実施形態に係る変数の突合について説明するための第2の図である。同図を参照しながら、変数の突合についてより詳細に説明する。
図9(A)は、上位層の変数テーブルである上位層変数テーブルT41の一例を示す。
図9(B)は、下位層の変数テーブルである下位層変数テーブルT42の一例を示す。
【0045】
上位層変数テーブルT41及び下位層変数テーブルT42は、不図示の対応テーブルCTにより対応付けがされる。対応テーブルCTにより、上位層変数テーブルT41の変数“a0”と下位層変数テーブルT42の変数“b0”とが、上位層変数テーブルT41の変数“a1”と下位層変数テーブルT42の変数“b1”とが、それぞれ対応づけられているとする。
対応テーブルCTにより対応付けが行われることにより、各ラダーファイルにおいては、変数名を意識することなく設計を行うことができる。また、異なるラダーファイル間において変数名の重複があった場合であっても、好適に対応付けを行うことができる。
【0046】
図10は、実施形態に係る入力パラメータ設定画面と出力パラメータ設定画面の一例について示す図である。同図を参照しながら、入力パラメータ設定画面と出力パラメータ設定画面の一例について説明する。入力パラメータ設定画面及び出力パラメータ設定画面は、いずれも対応テーブルCTに含まれる。対応テーブルCTの表示画面において、入力パラメータ設定画面及び出力パラメータ設定画面はタブの選択により切り替えられてもよい。
【0047】
図10(A)は、入力パラメータ設定画面の一例を示す。入力パラメータ設定画面では、読込元ファイルから読込先ファイルに渡す変数を編集する。入力パラメータ設定画面には、引数名と、メモと、変数名と、値とが対応付けられている。同図に示す一例では、引数名として“b0”が、変数名として“a0”が、値として“0”が対応付けられている。また、引数名“b1”には変数が対応付けられていない。メモ欄には、必要に応じて当該変数に関する事項が記載されてもよい。この場合、読込先のラダーファイルが初めて呼ばれた際に、読込元の変数“a0”の値が、読込先の変数“b0”の値に代入される。
【0048】
図10(B)は、出力パラメータ設定画面の一例を示す。出力パラメータ設定画面では、読込先ファイルから読込元ファイルに渡す変数を編集する。出力パラメータ設定画面には、引数名と、メモと、変数名と、値とが対応付けられている。同図に示す一例では、引数名として“b2”が、変数名として“a2”が、値として“0”が対応付けられている。また、引数名“b1”には変数が対応付けられていない。メモ欄には、必要に応じて当該変数に関する事項が記載されてもよい。この場合、読込先の処理が全て終了した際に、読込先の変数“b2”の値が、読込元の変数“a2”の値に代入される。
なお、読込先の処理とは、同一階層内における処理に限定されず、更に下位階層の処理を含む場合、当該下位階層の処理も含む処理であってもよい。
【0049】
ここで、ラダープログラムをサービスロボットに適用しようとした場合、複数のタスクを並列処理させた方がよい場合がある。並列処理とは、ラダープログラムに含まれる複数のタスクのうち、それぞれのタスクが終了するか否かによらず、時分割でタスク間の処理を遷移させていく処理である。すなわち並列処理によれば、処理を高速回転させて複数のタスクを並列に実行させる。本実施形態に係る突合方法は、当該並列処理において、下位階層のラダープログラムが最初に呼び出された場合に変数の突合が行われる。すなわち、突合工程は、読込元ファイルF31及び読込先ファイルF32を含むコンピュータプログラム(ラダープログラム)が実行され、最初に読込元ファイルF31から読込先ファイルF32の呼び出しが行われる際に行われる。
【0050】
図11は、実施形態に係る突合方法の一例について示すフローチャートである。同図を参照しながら、本実施形態に係る突合方法の一例について説明する。
(ステップS110)まず、読込元ファイルに含まれる変数を特定し表示する。すなわち、第1特定工程が行われる。
(ステップS120)次に、表示された変数のうち、外部に引数として引き渡される変数がユーザにより選択される。すなわち、第1選択工程が行われる。
(ステップS130)次に、読込先ファイルに含まれる変数を特定し表示する。すなわち、第2特定工程が行われる。
(ステップS140)次に、表示された変数のうち、外部に引数として引き渡される変数がユーザにより選択される。すなわち、第2選択工程が行われる。
(ステップS150)最後に、第1選択工程及び第2選択工程でそれぞれ選択された変数同士を突合する。
【0051】
[実施形態のまとめ]
以上説明した実施形態によれば、本実施形態に係るラダープログラムは階層構造を有するため、階層ごとに役割を分担してラダープログラムを編集することができる。したがって、サービスロボットのような複雑な処理についても、ラダー方式を用いて記述することができる。また、作成されたラダープログラムは、階層ごとに個別に保存、読込が可能であるため、複雑な処理であっても階層ごとに分けて異なるラダーファイルとして作成することができる。
【0052】
また、以上説明した実施形態によれば、本実施形態に係る変数の突合方法は、読込元のファイルである第1ファイルに含まれる変数と、第1ファイルから読み込まれる読込先のファイルである第2ファイルに含まれる変数とを突合する。また、本実施形態に係る変数の突合方法は、第1特定工程を有することにより第1ファイルに記載された変数を特定する情報を取得し、第1選択工程を有することにより第1ファイルに記載された複数の変数のうち第1ファイルとは異なるファイルとの間で引数として渡す変数として選択された変数についての情報を取得し、第2特定工程を有することにより第2ファイルに記載された変数を特定する情報を取得し、第2選択工程を有することにより第2ファイルに記載された複数の変数のうち第2ファイルとは異なるファイルとの間で引数として渡す変数として選択された変数についての情報を取得し、突合工程を有することにより第1選択工程により選択された変数と第2選択工程により選択された変数とを所定の対応表に基づき突合する。すなわち、本実施形態に係る変数の突合方法によれば、所定の対応表を用いることにより異なる2つのラダープログラムにそれぞれ用いられる変数を突合する。したがって、本実施形態に係る変数の突合方法によれば、異なるファイル間にそれぞれ用いられた変数を、好適に突合させることができる。また、変数名が異なっていても好適に突合させることができるため、各ラダープログラムの作成中は、他のファイル間での変数の重複等を意識することを要しない。
【0053】
また、本実施形態に係る変数の突合方法によれば、第1特定工程は第1ファイルに含まれる複数の変数を表示し、第1選択工程は表示された複数の変数のうち特定の変数が選択される操作を取得することにより第1ファイルとは異なるファイルとの間で引数として渡す変数として選択された変数についての情報を取得し、第2特定工程は第2ファイルに含まれる複数の変数を表示し、第2選択工程は、表示された複数の変数のうち特定の変数が選択される操作を取得することにより第2ファイルとは異なるファイルとの間で引数として渡す変数として選択された変数についての情報を取得する。すなわち、本実施形態に係る変数の突合方法によれば、引数として渡される変数をユーザの選択に基づいて決定することができる。したがって、本実施形態に係る変数の突合方法によれば、ラダープログラムの内部でのみ使用する変数と、他のラダープログラムに引き渡す変数とを区別することができる。また、引数として用いられる変数であるか否かを任意に設定することができる。
【0054】
また、本実施形態に係る変数の突合方法によれば、第1選択工程は第1ファイルとは異なるファイルとの間で引数として渡す変数のうち読込元ファイルから引き渡される変数と読込先ファイルに引き渡される変数とを区別して選択された変数についての情報を取得し、第2選択工程は第2ファイルとは異なるファイルとの間で引数として渡す変数のうち読込元ファイルから引き渡される変数と読込先ファイルから引き渡される変数とを区別して選択された変数についての情報を取得する。すなわち、本実施形態に係る変数の突合方法によれば、入力される変数と、出力される変数とを区別して選択することができる。したがって、本実施形態に係る変数の突合方法によれば、上位階層及び下位階層を有する場合であっても、異なるファイル間にそれぞれ用いられた変数を、好適に突合させることができる。
【0055】
また、以上説明した実施形態によれば、本実施形態に係る変数の突合方法は、対応表作成工程を更に有することにより、第1ファイルに含まれる変数のうちいずれの変数と第2ファイルに含まれる変数のうちいずれの変数とを突合させるかを示す対応表を作成することができる。したがって、本実施形態によれば、突合させる変数の組み合わせをユーザにより任意に選択することができる。
【0056】
また、本実施形態に係る変数の突合方法は、ラダープログラムの並列処理にも用いられることができる。以上説明した実施形態によれば、突合工程は、第1ファイル及び第2ファイルを含むコンピュータプログラムが実行された場合、最初に第1ファイルから第2ファイルの呼び出しが行われる際に行われる。すなわち、ラダープログラムに含まれる複数のタスクが並列処理された場合、タスクが最初に呼び出されたタイミングで、変数の突合が行われる。換言すれば、2回目以降に変数が呼び出された場合には、既に変数の対応付けが完了しているため、再度の突合を要しない。したがって、本実施形態によれば、並列処理を高速に行うことができる。
【0057】
また、本実施形態に係る変数の突合方法によれば、第1ファイル及び第2ファイルとは、いずれもラダープログラムである。したがって、本実施形態に係る変数の突合方法によれば、異なるラダープログラム間にそれぞれ用いられた変数を、好適に突合させることができる。
【0058】
なお、上述した実施形態におけるロボットシステム1が備える各部の機能全体あるいはその一部は、これらの機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
【0059】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶部のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバーやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0060】
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。また、本発明はこうした実施形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【0061】
1…ロボットシステム、10…情報処理装置、11…編集ソフト、12…OS、13…ハードウェア、20…制御プログラム、30…ロボット、31…記憶部、32…制御部、33…入力デバイス、34…出力デバイス、L1…第1階層、L2…第2階層、L3…第3階層、D21…編集画面、D22…編集画面、F31…読込元ファイル、F32…読込先ファイル、T31…読込元変数テーブル、T32…読込先変数テーブル、CT…対応テーブル、CB…チェックボックス、T41…上位層変数テーブル、T42…下位層変数テーブル