(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-08-05
(45)【発行日】2024-08-14
(54)【発明の名称】ロボット制御装置及びロボット制御システム
(51)【国際特許分類】
G05B 19/042 20060101AFI20240806BHJP
B25J 9/18 20060101ALI20240806BHJP
【FI】
G05B19/042
B25J9/18
(21)【出願番号】P 2023543023
(86)(22)【出願日】2023-03-29
(86)【国際出願番号】 JP2023012943
【審査請求日】2023-07-14
【早期審査対象出願】
【前置審査】
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100106002
【氏名又は名称】正林 真之
(72)【発明者】
【氏名】大島 尚
(72)【発明者】
【氏名】稲葉 豪
【審査官】今井 貞雄
(56)【参考文献】
【文献】国際公開第2022/097719(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/042
(57)【特許請求の範囲】
【請求項1】
産業機械から変数の値を繰り返し取得する取得部と、
前記取得部によって取得された前記変数の値をIOデータに変換するIO変換部と、
前記IO変換部によって変換された前記変数の値を、前記変数の値を格納する格納領域に書き込む格納部と、
前記変数を書き込む、前記格納領域の箇所又はアドレスを示す割り当てデータを記憶する割り当て記憶部と、を備えるロボット制御装置。
【請求項2】
前記取得部は、前記産業機械から複数の
前記変数の値を繰り返し取得
し、
前記格納部は、複数の前記変数の値を格納する
前記格納領域の1つの
前記箇所又は1つの
前記アドレスを示す割り当てデータに基づき、前記取得部によって取得された複数の前記変数の値を、前記格納領域に書き込む
、請求項1に記載のロボット制御装置。
【請求項3】
前記格納領域に書き込まれた前記変数の値が所定の値である場合、前記所定の値に対応した所定の処理を実行する実行部をさらに備える、請求項1又は請求項2に記載のロボット制御装置。
【請求項4】
前記所定の処理は、ロボットプログラムの実行又は停止である、請求項3に記載のロボット制御装置。
【請求項5】
前記変数は、アラームが発生したことを示し、
前記所定の処理は、ロボットの停止である、請求項3に記載のロボット制御装置。
【請求項6】
格納領域に格納されている値を取得するロボット変数取得部と、
前記ロボット変数取得部によって取得される値を格納する産業機械の変数を示した割り当てデータを記憶する割り当て記憶部と、
前記ロボット変数取得部によって取得された値と、前記値を書き込む前記産業機械の変数を示す変数指定データとを、前記産業機械に繰り返し送信する送信部と、を備える、ロボット制御装置。
【請求項7】
前記格納領域は、IOメモリ領域であり、
前記格納領域に記憶された値は、IOデータであり、
前記ロボット変数取得部は、前記IOデータを取得し、
前記ロボット変数取得部によって取得された値をIOデータ以外のデータ形式に変換する変換部をさらに備え、
前記送信部は、前記変換部によって変換された値を前記産業機械に送信する、請求項6に記載のロボット制御装置。
【請求項8】
ロボット制御装置及び表示装置を含み、
前記ロボット制御装置は、
産業機械から変数の値を繰り返し取得する取得部と、
前記取得部によって取得された前記変数の値をIOデータに変換するIO変換部と、
前記IO変換部によって変換された前記変数の値を、前記変数の値を格納する格納領域に書き込む格納部と、
前記変数を書き込む、前記格納領域の箇所又はアドレスを示す割り当てデータを記憶する割り当て記憶部と、を備え、
前記表示装置は、前記変数の値を表示する表示部を備える、ロボット制御システム。
【請求項9】
前記取得部は、
前記産業機械から複数の
前記変数の値を繰り返し取得
し、
前記格納部は、複数の前記変数の値を格納する
前記格納領域の1つの
前記箇所又は1つの
前記アドレスを示す割り当てデータに基づき、前記取得部によって取得された複数の前記変数の値を、前記格納領域に書き込む
、請求項8に記載のロボット制御システム。
【請求項10】
ロボット制御装置及び表示装置を含み、
前記ロボット制御装置は、
産業機械から変数の値を繰り返し取得する取得部と、
前記取得部によって取得された前記変数の値を、前記変数の値を格納する格納領域に書き込む格納部と、
前記変数を書き込む、前記格納領域の箇所又はアドレスを示す割り当てデータを記憶する割り当て記憶部と、を備え、
前記表示装置は、
前記変数の値を表示する表示部と、
前記変数の値を変更する変更部と、を備える、ロボット制御システム。
【請求項11】
ロボット制御装置及び表示装置を含み、
前記ロボット制御装置は、
産業機械から変数の値を繰り返し取得する取得部と、
前記取得部によって取得された前記変数の値を、前記変数の値を格納する格納領域に書き込む格納部と、
前記変数を書き込む、前記格納領域の箇所又はアドレスを示す割り当てデータを記憶する割り当て記憶部と、を備え、
前記表示装置は、
前記変数の値を表示する表示部と、
ロボットを制御するためのロボットプログラムを編集する編集部と、
前記ロボットプログラムの編集に応じて前記変数の値を変更する変更部と、を備える、ロボット制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボット制御装置及びロボット制御システムに関する。
【背景技術】
【0002】
工作機械などの産業機械からロボットを制御することが可能なシステムがある。このようなシステムは、ロボットと産業機械との間で通信し、お互いの状態の監視及び要求を行うことができる。
また、ロボットプログラムの命令にはCNC(computerized numerical control)産業機械と通信してCNCの設定用の変数にアクセスする機能がある。この命令で設定用の変数を取得又は書き込みすることで、ロボット又はロボット制御装置とCNC産業機械とは、互いに相手の状態確認及び要求ができる。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
CNCの設定用の変数へのアクセスはロボットプログラムでアクセス命令を実行する必要がある。このため、CNC産業機械は、任意のタイミングでロボット又はロボット制御装置に要求することができず、ロボット又はロボット制御装置においてアクセス命令が実行されるまで待たなければならない。また、同様の理由で、ロボット又はロボット制御装置と産業機械とは、相手の状態を監視することが困難である。任意のタイミングでの要求及び相手の状態の監視のために、ロボットとCNC産業機械を同期することが考えられる。ロボットとCNC産業機械を同期するためには複数の信号を用意する必要がある。しかしながら、CNCの変数は通常8バイト又は16バイトの変数である。このため、ロボット又はロボット制御装置がCNC産業機械の1つの状態を監視するために1つの変数を取得すると、通信データの量が膨大になり通信周期が遅くなる。
【0005】
本開示の実施形態が解決しようとする課題は、産業機械の設定用の変数を周期的に読み込んで(取得して)、又は書き込んで、ロボットの変数データとして使用可能なロボット制御装置及びロボット制御システムを提供することである。
【課題を解決するための手段】
【0006】
実施形態のロボット制御装置は、取得部、IO変換部、格納部及び割り当て記憶部を備える。取得部は、産業機械から変数の値を繰り返し取得する。IO変換部は、前記取得部によって取得された前記変数の値をIOデータに変換する。格納部は、前記IO変換部によって変換された前記変数の値を、前記変数の値を格納する格納領域に書き込む。割り当て記憶部は、前記変数を書き込む、前記格納領域の箇所又はアドレスを示す割り当てデータを記憶する。前記格納領域は、IOメモリ領域内にある。
【発明の効果】
【0007】
本開示は、ロボット制御装置が、産業機械の変数の読み込み(取得)、又は書き込みをして、ロボットの変数データと同様に使用することが可能である。
【図面の簡単な説明】
【0008】
【
図1】実施形態に係る制御システム及び当該制御システムに含まれる構成要素の要部構成の一例を示すブロック図。
【
図2】実施形態に係る制御システムの要部機能及び要部構成の一例を示すブロック図である。
【
図3】
図1中の制御装置のプロセッサーによる第1実施形態に係る処理の一例を示すフローチャート。
【
図4】
図1中の産業機械のプロセッサーによる第1実施形態及び第2実施形態に係る処理の一例を示すフローチャート。
【
図5】
図1中の制御装置のプロセッサーによる第1実施形態及び第2実施形態に係る処理の一例を示すフローチャート。
【
図6】
図1中の教示装置のプロセッサーによる第1実施形態及び第2実施形態に係る処理の一例を示すフローチャート。
【
図7】
図1中の制御装置のプロセッサーによる第1実施形態及び第2実施形態に係る処理の一例を示すフローチャート。
【
図8】
図1中の産業機械のプロセッサーによる第1実施形態及び第2実施形態に係る処理の一例を示すフローチャート。
【
図9】
図1中の教示装置の表示デバイスに表示される変数画面の一例を示す図。
【
図10】制御装置100及び産業機械200の動作の一例を説明するためのブロック図。
【
図11】
図1中の制御装置のプロセッサーによる第2実施形態に係る処理の一例を示すフローチャート。
【
図12】
図1中の教示装置の表示デバイスに表示される変数画面の一例を示す図。
【
図13】
図1中の教示装置のプロセッサーによる第2実施形態に係る処理の一例を示すフローチャート。
【
図14】
図1中の教示装置の表示デバイスに表示される編集画面の一例を示す図。
【発明を実施するための形態】
【0009】
以下、いくつかの実施形態に係る制御システムについて図面を用いて説明する。なお、以下の実施形態の説明に用いる各図面は、説明のため、構成を省略して示している場合がある。また、各図面及び本明細書中において、同一の符号は同様の要素を示す。
〔第1実施形態〕
実施形態に係る制御システム1について
図1及び
図2を用いて説明する。
図1は、実施形態に係る制御システム1及び制御システム1に含まれる構成要素の要部構成の一例を示すブロック図である。
図2は、実施形態に係る制御システム1の要部機能及び要部構成の一例を示すブロック図である。
制御システム1は、ロボット300の制御などを行うシステムである。制御システム1は、一例として、制御装置100、産業機械200、ロボット300及び教示装置400を含む。制御システム1は、ロボット制御システムの一例である。
【0010】
制御装置100は、ロボット300を制御する装置である。制御装置100は、一例として、プロセッサー110、ROM(read-only memory)120、RAM(random-access memory)130、補助記憶装置140、制御インターフェース150、及び通信インターフェース160を含む。そして、バス170などが、これら各部を接続する。制御装置100は、ロボット制御装置の一例である。
【0011】
プロセッサー110は、制御装置100の動作に必要な演算及び制御などの処理を行うコンピューターの中枢部分であり、各種演算及び処理などを行う。プロセッサー110は、例えば、CPU(central processing unit)、MPU(micro processing unit)、SoC(system on a chip)、DSP(digital signal processor)、GPU(graphics processing unit)、ASIC(application specific integrated circuit)、PLD(programmable logic device)又はFPGA(field-programmable gate array)などである。あるいは、プロセッサー110は、これらのうちの複数を組み合わせたものである。また、プロセッサー110は、これらにハードウェアアクセラレーターなどを組み合わせたものであっても良い。プロセッサー110は、ROM120又は補助記憶装置140などに記憶されたファームウェア、システムソフトウェア及びアプリケーションソフトウェアなどのプログラムに基づいて、制御装置100の各種の機能を実現するべく各部を制御する。また、プロセッサー110は、当該プログラムに基づいて後述する処理を実行する。なお、当該プログラムの一部又は全部は、プロセッサー110の回路内に組み込まれていても良い。
【0012】
プロセッサー110は、上記のプログラムを実行することにより、一例として、割付部111、データ変換部112、起動部113、停止部114及び対象部115として機能する。
【0013】
割付部111は、各設定変数241について、どこに格納するかを特定する。
データ変換部112は、設定変数241をIOデータに変換する。設定変数241については後述する。
【0014】
起動部113は、ロボット300を起動する。
停止部114は、ロボット300を停止する。
【0015】
対象部115は、どの設定変数241が値を格納する対象であるかを特定する。
【0016】
ROM120及びRAM130は、プロセッサー110を中枢としたコンピューターの主記憶装置である。
ROM120は、専らデータの読み出しに用いられる不揮発性メモリである。ROM120は、上記のプログラムのうち、例えばファームウェアなどを記憶する。また、ROM120は、プロセッサー110が各種の処理を行う上で使用するデータなども記憶する。なお、ROM120は、複数のメモリによって構成されていても良い。
【0017】
RAM130は、データの読み書きに用いられるメモリである。RAM130は、プロセッサー110が各種の処理を行う上で一時的に使用するデータを記憶するワークエリアなどとして利用される。RAM130は、典型的には揮発性メモリである。なお、RAM130は、複数のメモリによって構成されていても良い。
【0018】
RAM130は、例えば、メモリ領域131及びIOメモリ領域132の2種類のメモリ領域を含む。メモリ領域131は、IOデータ以外のデータを記憶するためのメモリ領域である。IOメモリ領域132は、IOデータを記憶するためのメモリ領域であり、IOデータを記憶可能なメモリ領域である。IOデータについては後述する。なお、メモリ領域131とIOメモリ領域132は、物理的に同じメモリ上に存在していても良いし、物理的に異なるメモリ上に存在していても良い。ただし、第1実施形態では、RAM130は、IOメモリ領域132を含んでいなくても良い。
なお、RAM130に代えて、ROM120又は補助記憶装置140などのRAM130以外の記憶装置がIOメモリ領域132を備えていても良い。
【0019】
また、RAM130は、起動領域133及びアラーム領域134が割り当てられる。起動領域133及びアラーム領域134については後述する。
【0020】
補助記憶装置140は、プロセッサー110を中枢としたコンピューターの補助記憶装置である。補助記憶装置140は、例えばEEPROM(electric erasable programmable read-only memory)、HDD(hard disk drive)又はフラッシュメモリなどである。補助記憶装置140は、上記のプログラムのうち、例えば、システムソフトウェア及びアプリケーションソフトウェアなどを記憶する。また、補助記憶装置140は、プロセッサー110が各種の処理を行う上で使用するデータ、プロセッサー110での処理によって生成されたデータ及び各種の設定値などを記憶する。
【0021】
また、補助記憶装置140などは、パラメーター情報、後述の割付情報及び第1実行情報を記憶している。割付情報及び第1実行情報は、制御装置100以外に記憶されていても良い。
【0022】
パラメーター情報は、例えば、産業機械200からの設定変数241の取得に関する設定、及び産業機械200への設定変数241の書き込みに関する設定の少なくともいずれかを記憶する情報である。パラメーター情報の各設定の値は、例えば、制御システム1のユーザー、管理者、又は設計者などによって設定される。パラメーター情報の各設定の値は、それぞれデフォルトの値が設定されていてもよい。パラメーター情報の各設定の値は、それぞれ変更可能であっても良いし変更不可能であっても良い。なお、補助記憶装置140は、複数のパラメーター情報を記憶しても良い。
【0023】
制御インターフェース、制御装置100がロボット300と通信するためのインターフェースである。制御装置100は、制御インターフェース150を介してロボット300と通信することでロボット300を制御する。
【0024】
通信インターフェース160は、制御装置100が産業機械200及び教示装置400などと通信するためのインターフェースである。通信インターフェース160は、例えば、ネットワークを介して通信する。あるいは、通信インターフェース160は、ネットワークを介さず通信する。ネットワークは、例えば、LAN(local area network)又はインターネットなどを含む通信網である。制御装置100は、通信インターフェース160を介して産業機械200及び教示装置400などと通信する。
【0025】
バス170は、コントロールバス、アドレスバス及びデータバスなどを含み、制御装置100の各部で授受される信号を伝送する。
【0026】
産業機械200は、例えば、工作機械又は工作機械の周辺機器である。あるいは、産業機械200は、その他の機械であっても良い。産業機械200の制御方式は、CNCである。あるいは、産業機械200の制御方式は、NC又はその他の方式であっても良い。産業機械200は、一例として、プロセッサー210、ROM220、RAM230、補助記憶装置240、通信インターフェース250、入力デバイス260及び表示デバイス270を含む。そして、バス280などが、これら各部を接続する。
【0027】
プロセッサー210は、産業機械200の動作に必要な演算及び制御などの処理を行うコンピューターの中枢部分であり、各種演算及び処理などを行う。プロセッサー210は、例えば、CPU、MPU、SoC、DSP、GPU、ASIC、PLD又はFPGAなどである。あるいは、プロセッサー210は、これらのうちの複数を組み合わせたものである。また、プロセッサー210は、これらにハードウェアアクセラレーターなどを組み合わせたものであっても良い。プロセッサー210は、ROM220又は補助記憶装置240などに記憶されたファームウェア、システムソフトウェア及びアプリケーションソフトウェアなどのプログラムに基づいて、産業機械200の各種の機能を実現するべく各部を制御する。また、プロセッサー210は、当該プログラムに基づいて後述する処理を実行する。なお、当該プログラムの一部又は全部は、プロセッサー210の回路内に組み込まれていても良い。
【0028】
ROM220及びRAM230は、プロセッサー210を中枢としたコンピューターの主記憶装置である。
ROM220は、専らデータの読み出しに用いられる不揮発性メモリである。ROM220は、上記のプログラムのうち、例えばファームウェアなどを記憶する。また、ROM220は、プロセッサー210が各種の処理を行う上で使用するデータなども記憶する。
RAM230は、データの読み書きに用いられるメモリである。RAM230は、プロセッサー210が各種の処理を行う上で一時的に使用するデータを記憶するワークエリアなどとして利用される。RAM230は、典型的には揮発性メモリである。
【0029】
補助記憶装置240は、プロセッサー210を中枢としたコンピューターの補助記憶装置である。補助記憶装置240は、例えばEEPROM、HDD又はフラッシュメモリなどである。補助記憶装置240は、上記のプログラムのうち、例えば、システムソフトウェア及びアプリケーションソフトウェアなどを記憶する。また、補助記憶装置240は、プロセッサー210が各種の処理を行う上で使用するデータ、プロセッサー210での処理によって生成されたデータ及び各種の設定値などを記憶する。
【0030】
補助記憶装置240又はRAM230などは、設定変数241を記憶する。設定変数241は、産業機械200のユーザーが値を変更可能である。設定変数241は、産業機械200又は制御システム1の各種の設定などを定める。設定変数241は、例えば、グローバル変数又は外部変数のように振る舞う。なお、補助記憶装置240又はRAM230などは、複数の設定変数241を記憶しても良い。また、1つの設定変数241は、複数の値を含んでいても良い。この場合、複数の値のそれぞれが設定を定める。なお、
図1では、一例として補助記憶装置240が記憶するものとして設定変数241を記載している。
【0031】
また、上記のプログラムは、例えば、産業機械プログラム242及びラダープログラム243を含む。なお、
図1では、一例として補助記憶装置240が記憶するものとして産業機械プログラム242及びラダープログラム243を記載している。
産業機械プログラム242は、例えば、産業機械200が加工するためのプログラムでありエンドユーザーが作成する。ラダープログラム245は、例えば、産業機械200を操作するため、また外部機器との連携をとるための処理をおこなう。
【0032】
通信インターフェース250は、産業機械200が制御装置100などと通信するためのインターフェースである。通信インターフェース250は、例えば、前述のネットワークを介して通信する。あるいは、通信インターフェース250は、ネットワークを介さず通信する。制御装置100は、通信インターフェース250を介して制御装置100などと通信する。
【0033】
入力デバイス260は、産業機械200の操作者による操作を受け付ける。入力デバイス260は、例えば、キーボード、キーパッド、タッチパッド、マウス又はコントローラーなどである。また、入力デバイス260は、音声入力用のデバイスであっても良い。
【0034】
表示デバイス270は、産業機械200の操作者などに各種情報を通知するための画面を表示する。表示デバイス270は、例えば、液晶ディスプレイ又は有機ELディスプレイなどのディスプレイである。また、入力デバイス260及び表示デバイス270としては、タッチパネルを用いることもできる。すなわち、タッチパネルが備える表示パネルを表示デバイス270として、タッチパネルが備える、タッチ入力によるポインティングデバイスを入力デバイス260として用いることができる。
【0035】
バス280は、コントロールバス、アドレスバス及びデータバスなどを含み、産業機械200の各部で授受される信号を伝送する。
【0036】
ロボット300は、例えば、マニピュレーター若しくはロボットアーム、又はこれらを備えるロボットなどである。ロボット300は、例えば多関節ロボットである。ロボット300は、一例として、1又は複数の駆動部を含む。ロボット300は、その他のロボットであっても良い。なお、ロボット300は、制御装置100を内蔵していても良い。
【0037】
教示装置400は、ロボットプログラムを作成するための装置である。ロボットプログラムの作成は、オンラインティーチング、オフラインティーチング、ダイレクトティーチング又はその他のプログラム作成方法のいずれであってもよい。教示装置400は、例えば、オンラインティーチングを行うことができるティーチングペンダントである。教示装置400は、例えば、オフラインティーチング用のソフトウェアを実行するPC(personal computer)などの装置などである。なお、制御装置100が教示装置400の機能の一部又は全部を備えていてもよい。また、ロボット300が教示装置400の機能の一部又は全部を備えていてもよい。教示装置400は、一例として、プロセッサー410、ROM420、RAM430、補助記憶装置440、通信インターフェース450、入力デバイス460及び表示デバイス470を含む。そして、バス480などが、これら各部を接続する。なお、教示装置400は、表示装置の一例である。
【0038】
プロセッサー410は、教示装置400の動作に必要な演算及び制御などの処理を行うコンピューターの中枢部分であり、各種演算及び処理などを行う。プロセッサー410は、例えば、CPU、MPU、SoC、DSP、GPU、ASIC、PLD又はFPGAなどである。あるいは、プロセッサー410は、これらのうちの複数を組み合わせたものである。また、プロセッサー410は、これらにハードウェアアクセラレーターなどを組み合わせたものであっても良い。プロセッサー410は、ROM420又は補助記憶装置440などに記憶されたファームウェア、システムソフトウェア及びアプリケーションソフトウェアなどのプログラムに基づいて、教示装置400の各種の機能を実現するべく各部を制御する。また、プロセッサー410は、当該プログラムに基づいて後述する処理を実行する。なお、当該プログラムの一部又は全部は、プロセッサー410の回路内に組み込まれていても良い。
【0039】
ROM420及びRAM430は、プロセッサー410を中枢としたコンピューターの主記憶装置である。
ROM420は、専らデータの読み出しに用いられる不揮発性メモリである。ROM420は、上記のプログラムのうち、例えばファームウェアなどを記憶する。また、ROM420は、プロセッサー410が各種の処理を行う上で使用するデータなども記憶する。
RAM430は、データの読み書きに用いられるメモリである。RAM430は、プロセッサー410が各種の処理を行う上で一時的に使用するデータを記憶するワークエリアなどとして利用される。RAM430は、典型的には揮発性メモリである。
【0040】
補助記憶装置440は、プロセッサー410を中枢としたコンピューターの補助記憶装置である。補助記憶装置440は、例えばEEPROM、HDD又はフラッシュメモリなどである。補助記憶装置440は、上記のプログラムのうち、例えば、システムソフトウェア及びアプリケーションソフトウェアなどを記憶する。また、補助記憶装置440は、プロセッサー410が各種の処理を行う上で使用するデータ、プロセッサー410での処理によって生成されたデータ及び各種の設定値などを記憶する。
【0041】
通信インターフェース450は、教示装置400が制御装置100などと通信するためのインターフェースである。通信インターフェース450は、例えば、前述のネットワークを介して通信する。あるいは、通信インターフェース450は、ネットワークを介さず通信する。教示装置400は、通信インターフェース450を介して制御装置100などと通信する。
【0042】
入力デバイス460は、教示装置400の操作者による操作を受け付ける。入力デバイス460は、例えば、キーボード、キーパッド、タッチパッド、マウス又はコントローラーなどである。また、入力デバイス460は、音声入力用のデバイスであっても良い。
【0043】
表示デバイス470は、教示装置400の操作者などに各種情報を通知するための画面を表示する。表示デバイス470は、例えば、液晶ディスプレイ又は有機ELディスプレイなどのディスプレイである。また、入力デバイス460及び表示デバイス470としては、タッチパネルを用いることもできる。すなわち、タッチパネルが備える表示パネルを表示デバイス470として、タッチパネルが備える、タッチ入力によるポインティングデバイスを入力デバイス460として用いることができる。
【0044】
バス480は、コントロールバス、アドレスバス及びデータバスなどを含み、教示装置400の各部で授受される信号を伝送する。
【0045】
以下、第1実施形態に係る制御システム1の動作を
図3~
図8などに基づいて説明する。なお、以下の動作説明における処理の内容は一例であって、同様な結果を得ることが可能な様々な処理を適宜に利用できる。
図3、
図5及び
図7は、制御装置100のプロセッサー110による処理の一例を示すフローチャートである。プロセッサー110は、例えば、ROM120又は補助記憶装置140などに記憶されたプログラムに基づいて
図3、
図5及び
図7の処理を実行する。
図4及び
図8は、産業機械200のプロセッサー210による処理の一例を示すフローチャートである。プロセッサー210は、例えば、ROM220又は補助記憶装置240などに記憶されたプログラムに基づいて
図4の処理を実行する。
図6は、教示装置400のプロセッサー410による処理の一例を示すフローチャートである。プロセッサー410は、例えば、ROM420又は補助記憶装置440などに記憶されたプログラムに基づいて
図6の処理を実行する。
【0046】
制御装置100のプロセッサー110は、例えば、
図3、
図5及び
図7の処理を並行又は並列で実行する。
産業機械200のプロセッサー210は、例えば、
図4及び
図8の処理を並行又は並列で実行する。
【0047】
図3のステップST101において制御装置100のプロセッサー110は、パラメーター情報を取得するか否かを判定する。プロセッサー110は、例えば、所定の時間TPごとにパラメーター情報を取得すると判定する。あるいは、プロセッサー110は、現在時刻が所定の時刻CT以降になったならばパラメーター情報を取得すると判定する。あるいは、プロセッサー110は、パラメーター情報を取得するように指示する入力を受けた場合にパラメーター情報を取得すると判定する。パラメーター情報を取得するように指示する入力は、例えば、制御装置100が実行するプログラムからの入力である。あるいは、パラメーター情報を取得するように指示する入力は、制御装置100の外部からの入力であっても良い。
【0048】
なお、パラメーター情報が複数ある場合、プロセッサー110は、例えば、パラメーター情報ごとにパラメーター情報を取得するか否かを判定する。あるいは、プロセッサー110は、パラメーター情報を取得すると判定した場合に、どのパラメーター情報を取得するかの判定を行う。
【0049】
パラメーター情報が複数ある場合、プロセッサー110は、取得するパラメーター情報ごとに異なる時間TPを用いても良い。プロセッサー110は、パラメーター情報の取得から、当該パラメーター情報に対応する時間TPが経過したならば、当該パラメーター情報を取得すると判定する。なお、パラメーター情報に対応する時間PTは、例えば、当該パラメーター情報に含まれる。
【0050】
一例として、第1のパラメーター情報と第2のパラメーター情報の2つのパラメーター情報があるとする。そして、第1のパラメーター情報に対応する時間TPを時間TP1とする。第1のパラメーター情報は、時間TP1を含む。また、第2のパラメーター情報に対応する時間TPを時間TP2とする。第2のパラメーター情報は、時間TP2を含む。この場合、プロセッサー110は、最後に第1のパラメーター情報を取得してからの経過時間が時間TP1以上であるならば、第1のパラメーター情報を取得すると判定する。そして、プロセッサー110は、最後に第2のパラメーター情報を取得してからの経過時間が時間TP2以上であるならば、第2のパラメーター情報を取得すると判定する。
【0051】
また、パラメーター情報が複数ある場合、プロセッサー110は、取得するパラメーター情報ごとに異なる時刻CTを用いても良い。
【0052】
プロセッサー110は、パラメーター情報を取得すると判定しないならば、ステップST101においてNoと判定してステップST101の処理を繰り返す。対して、プロセッサー110は、パラメーター情報を取得すると判定するならば、ステップST101においてYesと判定してステップST102へと進む。
【0053】
ステップST102においてプロセッサー110は、補助記憶装置140などからパラメーター情報を取得する。パラメーター情報が複数ある場合、プロセッサー110は、例えば、ステップST101で取得すると判定したパラメーター情報を取得する。
【0054】
ステップST103においてプロセッサー110は、産業機械200から設定変数241を取得するか否かを判定する。パラメーター情報は、例えば、産業機械200から設定変数241を取得するか産業機械200に設定変数241を書き込むかを示す情報(以下「設定情報」という。)を含む。プロセッサー110は、設定情報を参照して産業機械200から設定変数241を取得するか否かを判定する。プロセッサー110は、産業機械200から設定変数241を取得すると判定するならば、ステップST103においてYesと判定してステップST104へと進む。
【0055】
なお、パラメーター情報は、前述したように設定情報を含む。したがって、ステップST101において、産業機械200から設定変数241を取得すること示すパラメーター情報を取得するか否かを判定することは、産業機械200から設定変数241を取得するか否かを判定することであるともいえる。また、ステップST101において、産業機械200に設定変数241を書き込むこと示すパラメーター情報を取得するか否かを判定することは、産業機械200に設定変数241を書き込むか否かを判定することであるともいえる。
【0056】
ステップST104においてプロセッサー110は、変数要求を生成する。変数要求は、設定変数241を送信するように産業機械200に要求する情報である。また、変数要求は、送信対象の設定変数241を指定する指定情報を含んでも良い。プロセッサー110は、例えば、ステップST102で取得したパラメーター情報から当該指定情報を取得する。そして、プロセッサー110は、当該指定情報を含む変数要求を生成する。
【0057】
ステップST105においてプロセッサー110は、変数要求を産業機械200に送信するように通信インターフェース160に対して指示する。この送信の指示を受けて通信インターフェース160は、当該変数要求を産業機械200に送信する。送信された当該変数要求は、産業機械200の通信インターフェース250によって受信される。
【0058】
一方、
図4のステップST121において産業機械200のプロセッサー210は、通信インターフェース250によって変数要求が受信されたか否かを判定する。プロセッサー210は、変数要求が受信されないならば、ステップST121においてNoと判定してステップST122へと進む。
【0059】
ステップST122においてプロセッサー210は、通信インターフェース250によって書込み要求が受信されたか否かを判定する。プロセッサー210は、書込み要求が受信されないならば、ステップST122においてNoと判定してステップST121へと戻る。かくして、プロセッサー210は、変数要求又は書込み要求が受信されるまでステップST121及びステップST122を繰り返す待受状態となる。
【0060】
プロセッサー210は、ステップST121及びステップST122を繰り返す待受状態にあるときに変数要求が受信されたならば、ステップST121においてYesと判定してステップST123へと進む。
【0061】
ステップST123においてプロセッサー210は、補助記憶装置240又はRAM230などから設定変数241を取得する。プロセッサー210は、例えば、ステップST121で受信された変数要求に含まれる指定情報が対象とする設定変数241を取得する。あるいは、プロセッサー210は、設定変数241を全て取得しても良い。
【0062】
ステップST124においてプロセッサー210は、変数応答を生成する。変数応答は、ステップST123で取得した設定変数241を含む情報である。
【0063】
ステップST125においてプロセッサー210は、ステップST124で生成した変数応答を、変数要求の送信元の産業機械200に送信するように通信インターフェース160に対して指示する。この送信の指示を受けて通信インターフェース160は、当該変数応答を当該産業機械200に送信する。送信された当該変数応答は、当該産業機械200の通信インターフェース250によって受信される。プロセッサー210は、ステップST124の処理の後、ステップST121へと戻る。
【0064】
一方、
図3のステップST106において制御装置100のプロセッサー110は、通信インターフェース250によって変数応答が受信されるのを待ち受けている。プロセッサー110は、変数応答が受信されたならば、ステップST106においてYesと判定してステップST107へと進む。
【0065】
ステップST107においてプロセッサー110は、補助記憶装置140などから割付情報を取得する。割付情報は、監視変数についての情報を記憶する。監視変数は、設定変数241又は設定変数241の値を入力するための変数である。監視変数は、
図5に示す処理において監視する対象となる場合がある変数である。プロセッサー110は、例えば、
図3及び
図5に示す処理を開始するとき又は制御装置100の起動にともない、監視変数を、RAM130などに割り当てる。あるいは、補助記憶装置140が設定変数241を記憶しても良い。また、監視変数の数は、1又は複数である。
【0066】
割付情報は、各設定変数241について、どの監視変数に格納(記憶)するかを示す情報を含む。また、割付情報は、1つの監視変数に複数の設定変数241を格納可能な場合には、各設定変数241について、どの監視変数のどの部分に格納するかを示す情報を含む。なお、割付情報は、例えば、どの監視変数に格納するかを、監視変数が割り当てられたRAM130又は監視変数を記憶している補助記憶装置140などの記憶領域のアドレスによって定義する。すなわち、割付情報は、各設定変数241を記憶領域のどのアドレスに格納するかを示す情報を含む。あるいは、割付情報は、変数名などによって、どの監視変数に格納するかを定義する。変数名は、設定変数241を格納する格納領域の箇所を示す一例である。また、割付情報は、複数の監視変数の記憶領域を1つのアドレスによって定義しても良い。例えば、割付情報は、当該複数の監視変数の先頭のアドレスと、当該複数の監視変数の先頭から終わりまでの長さによって当該記憶領域を定義する。なお、当該複数の監視変数は、記憶領域上に連続して並んでいるものとする。
【0067】
RAM230又は補助記憶装置240は、変数の値を記憶する格納領域の一例である。また、監視変数を記憶する領域は、変数の値を記憶する格納領域の一例である。したがって、割付情報は、変数の値を格納する格納領域の箇所又はアドレスを示す割り当てデータの一例である。また、1つの監視変数が複数の設定変数241を格納可能な場合、割付情報は、複数の変数の値を格納する格納領域の箇所又はアドレスを記憶する割り当てデータの一例である。また、複数の監視変数の格納領域を1つのアドレスによって定義する割付情報は、複数の変数の値を格納する格納領域を示す1つのアドレスを記憶する割り当てデータの一例である。また、割付情報を記憶する補助記憶装置140などは、当該割り当てデータを記憶する割り当て記憶部の一例である。
【0068】
ステップST108において、プロセッサー110は、ステップST106で受信された設定変数241を、割付情報によって示された監視変数に入力(格納)する(書き込む)。割付情報が設定変数241をどのアドレスに格納するかを示している場合、プロセッサー110は、設定変数241を、割付情報に示されたアドレスに入力(格納)する。プロセッサー110は、ステップST108の処理の後、ステップST101へと戻る。以上のように、プロセッサー110は、ステップST101~ステップST108を繰り返す。これにより、プロセッサー110は、定期的又は不定期に産業機械200から設定変数241を繰り返し取得し、監視変数に入力する。
【0069】
以上より、プロセッサー110は、ステップST108の処理を実行することで、取得部によって取得された変数の値を、変数の値を格納する格納領域に書き込む格納部の一例として機能する。
【0070】
なお、プロセッサー110は、ステップST101の処理を行わなくても良い。この場合、プロセッサー110は、
図3に示す処理をステップST102から開始する。そして、プロセッサー110は、ステップST108の処理の後、ステップST102へと戻る。この場合、プロセッサー110は、ステップST101の判定を経ずにステップST102~ステップST108を繰り返すことで、産業機械200から設定変数241を繰り返し取得する。
【0071】
以上より、プロセッサー110は、
図3のステップST101~ステップST108の処理を実行することで、産業機械から変数の値を繰り返し取得する取得部の一例として機能する。
【0072】
また、
図5のステップST131において制御装置100のプロセッサー110は、各監視変数を確認する。すなわち、プロセッサー110は、各監視変数の値を取得する。
【0073】
ステップST132においてプロセッサー110は、各監視変数の値が前回の取得時から変更されているか否かを判定する。プロセッサー110は、いずれかの監視変数の値が前回の取得時から変更されているならば、ステップST132においてYesと判定してステップST133へと進む。対して、プロセッサー110は、いずれの監視変数の値も前回の取得時から変更されていないならば、ステップST132においてNoと判定してステップST134へと進む。
【0074】
ステップST133においてプロセッサー110は、表示要求を生成する。表示要求は、監視変数又は監視変数の値を含む。表示要求は、監視変数の値を表示するように教示装置400に要求する情報である。プロセッサー110は、表示要求を生成した後、当該表示要求を産業機械200に送信するように通信インターフェース160に対して指示する。この送信の指示を受けて通信インターフェース160は、当該表示要求を産業機械200に送信する。送信された当該表示要求は、産業機械200の通信インターフェース450によって受信される。
【0075】
表示要求を受信した教示装置400のプロセッサー410は、監視変数画面を表示デバイス470に表示させる。監視変数画面は、例えば、値が変更された監視変数の値を示す画像を含む。
【0076】
一方、
図6のステップST141において教示装置400のプロセッサー410は、通信インターフェース450によって表示要求が受信されたか否かを判定する。プロセッサー410は、表示要求が受信されないならば、ステップST141においてNoと判定してステップST142へと進む。
【0077】
ステップST142においてプロセッサー410は、変数の値を変更するか否かを判定する。プロセッサー410は、例えば、入力デバイス460に表示された変数の値を変更するように指示する操作入力が行われた場合に変数の値を変更すると判定する。プロセッサー410は、変数の値を変更すると判定しないならば、ステップST142においてNoと判定してステップST141へと戻る。かくして、プロセッサー410は、表示要求が受信されるか、変数の値を変更すると判定するまでステップST141及びステップST142を繰り返す待受状態となる。
【0078】
プロセッサー410は、ステップST141及びステップST142を繰り返す待受状態にあるときに表示要求が受信されたならば、ステップST141においてYesと判定してステップST143へと進む。
【0079】
ステップST143においてプロセッサー410は、変数画面に対応した画像を生成する。そして、プロセッサー410は、生成したこの画像を表示するように表示デバイス470に対して指示する。表示の指示を受けて表示デバイス470は、変数画面を表示する。
【0080】
変数画面の一例について
図9を用いて説明する。
図9は、表示デバイス470に表示される変数画面SC1aの一例を示す図である。変数画面は、表示要求に含まれる監視変数の値を含む画面である。変数画面は、表示された変数の値を変更するように指示する操作が可能である。また、変数画面は、変数の値をどのように変更するかを指示する操作が可能である。教示装置400の操作者は、例えば、入力デバイス460を操作することによってこれらの指示が可能である。変数画面SC1aは、一例として領域AR1を含む。
【0081】
領域AR1は、変数それぞれの数値を示している。データ[1]~データ[16]のそれぞれが変数それぞれに割り振られた番号を示す。ただし、
図9に示す状態では、データ[1]及びデータ[2]の変数のみ存在する。データ[3]~データ[16]の変数は、使用されていないか存在しない。
【0082】
領域AR1に表示された変数それぞれは、入力デバイス460などを用いて選択する操作が可能である。
【0083】
また、領域AR1に表示された各変数は、入力デバイス460などを用いて値を変更する操作が可能である。当該操作が行われた場合、プロセッサー410は、
図6のステップST142において変数の値を変更すると判定する。また、後述の変更情報は、当該操作による値の変更の内容を含む。
【0084】
プロセッサー410は、ステップST143の処理の後ステップST141へと戻る。
【0085】
以上より、プロセッサー410は、ステップST143は、表示デバイス470と協働して、変数の値を表示する表示部の一例として機能する。
【0086】
プロセッサー410は、ステップST141及びステップST142を繰り返す待受状態にあるときに変数の値を変更すると判定するならば、ステップST142においてYesと判定してステップST144へと進む。
【0087】
ステップST144においてプロセッサー410は、変更要求を生成する。変更要求は、変数の変更の内容を示す変更情報を含む。変更要求は、変更情報に従い監視変数の値を変更するように制御装置100に指示する情報である。プロセッサー410は、変更要求を生成した後、当該変更要求を制御装置100に送信するように通信インターフェース450に対して指示する。この送信の指示を受けて通信インターフェース450は、当該変更要求を制御装置100に送信する。送信された当該変更要求は、制御装置100の通信インターフェース160によって受信される。プロセッサー410は、ステップST144の処理の後、ステップST141へと戻る。
【0088】
以上より、プロセッサー410は、ステップST144の処理を実行することで、変数の値を変更する変更部の一例として機能する。
【0089】
一方、
図7のステップST151において制御装置100のプロセッサー110は、通信インターフェース160によって変更要求が受信されるのを待ち受けている。プロセッサー110は、変更要求が受信されたならば、ステップST151においてYesと判定してステップST152へと進む。
【0090】
ステップST152においてプロセッサー110は、ステップST151で受信された変更要求中の変更情報に従い監視変数の値を変更する。プロセッサー110は、ステップST152の処理の後、ステップST151へと戻る。
【0091】
一方、
図5のステップST134においてプロセッサー110は、補助記憶装置140などから第1実行情報を取得する。第1実行情報は、各監視変数について、監視変数の値がどのような値になった場合にどのような処理を実行するかを記憶する。第1実行情報は、例えば、監視変数を特定する情報、値及び実行する処理を示す情報を関連付けて記憶する。第1実行情報は、監視変数の値が関連付けられている値になった場合に関連付けられている処理を実行することを示す。
第1実行情報は、一例として、起動領域133に記憶された監視変数が所定の値になった場合にロボット300を起動することを記憶する。第1実行情報は、一例として、アラーム領域134に記憶された監視変数が所定の値になった場合にロボット300を停止することを記憶する。なお、アラーム領域134に記憶される監視変数は、値が当該所定の値である場合に産業機械200においてアラームが発生したことを示す。
【0092】
ステップST135においてプロセッサー110は、設定変数241の値に対応する処理を実行するか否かを判定する。すなわち、プロセッサー110は、例えば、各監視変数について、値が第1実行情報において関連付けられた値である場合、第1実行情報において当該監視変数及び当該値に関連付けられた処理を実行すると判定する。プロセッサー110は、当該処理を実行すると判定しないならば、ステップST135においてNoと判定してステップST131へと戻る。対して、プロセッサー110は、当該処理を実行すると判定するならば、ステップST135においてYesと判定してステップST136へと進む。
【0093】
ステップST136においてプロセッサー110は、ステップST135で実行すると判定した処理を実行する。プロセッサー110は、ステップST136の処理の後、ステップST131へと戻る。以上のように、プロセッサー110は、監視変数を監視して、監視変数の値が所定の値となった場合、所定の処理を実行する。前述したように、プロセッサー110は、
図3の処理によって監視変数に設定変数241の値を入力する。したがって、プロセッサー110は、
図3及び
図5の処理によって設定変数を監視し、設定変数の値が所定の値となった場合、所定の処理を実行する。
【0094】
第1実行情報において記憶された監視変数、所定の値、及び所定の処理の組み合わせの一例を示す。この一例における監視変数は、産業機械200においてアラームが発生したこと及びアラームの内容を示す設定変数241を格納する監視変数である。この一例における所定の値は、アラームが発生したことを示す値であり、例えば1である。この一例における所定の処理は、ロボット300の停止である。例えば停止部114がロボット300を停止する。プロセッサー110は、ステップST134においてこの一例における監視変数の値が1となったことを判定した場合、ステップST135においてロボット300を停止する。プロセッサー110は、例えば、ロボットプログラムを停止することでロボット300を停止する。
【0095】
また、所定の処理の他の例としては、ロボット300の起動、ロボット300に所定の動作をさせること、各種のロボットプログラムの実行、制御装置100が所定の処理を実行することなどがある。プロセッサー110は、例えば、起動命令を含むロボットプログラムを実行することでロボット300を起動する。例えば起動部113がロボット300を起動する。
【0096】
なお、所定の値は、範囲であっても良い。例えば、所定の値は、1~3であるとする。この場合、プロセッサー110は、監視変数の値が1~3となった場合に所定の処理を実行する。
【0097】
また、所定の値は、複数あっても良い。そして、所定の処理は、複数あっても良い。例えば、所定の値は、第1の所定の値及び第2の所定の値の2つあるとする。そして、所定の処理は、第1の所定の処理及び第2の所定の処理の2つあるとする。そして、第1の所定の値に対応する処理が第1の所定の処理で、第2の所定の値に対応する処理が第2の所定の処理であるとする。この場合、プロセッサー110は、監視変数の値が第1の所定の値である場合、第1の所定の処理を実行する。そして、プロセッサー110は、監視変数の値が第2の所定の値である場合、第2の所定の処理を実行する。
【0098】
また、監視変数の値及び所定の値は数値とは限らない。監視変数の値及び所定の値は、例えば、文字列、日付、ブーリアン型、ポインター、オブジェクト又は構造体などであっても良い。また、所定の値は、null又はnothingなどの値が無いことを示す値であっても良い。
【0099】
所定の処理について
図10を用いてさらに説明する。例えば、ある設定変数241(以下「対象変数」という。)が、産業機械200がある動作を行った場合又は産業機械200に対してある操作が行われた場合(以下「値変更トリガー」という。)に値が変わるとする。この場合、制御システム1は、値変更トリガーに応じて制御装置100に何らかの所定の処理を行わせることが可能である。このような例を
図10を用いて説明する。
【0100】
図10は、制御装置100及び産業機械200の動作の一例を説明するためのブロック図である。産業機械200は、入力デバイス260として、例えば起動ボタン261を備える。起動ボタン261は、産業機械200を起動及び停止するためのボタンである。産業機械200が停止中に起動ボタン261を操作した場合、産業機械200は、起動し、動作を開始する。産業機械200が動作中に起動ボタン261を操作した場合、産業機械200は、停止する。起動ボタン261は、産業機械200が停止中に操作された場合、起動要求信号を出力する。起動ボタン261は、産業機械200が動作中に操作された場合、停止要求信号を出力する。例えば、プロセッサー210が起動要求信号及び停止要求信号の入力を受ける。
【0101】
プロセッサー210は、起動要求信号の入力を受けた場合、設定変数241(対象変数)の値を、産業機械200が動作中であることを示す値に変更する。対して、プロセッサー210は、停止要求信号の入力を受けた場合、対象変数の値を、産業機械200が停止中であることを示す値に変更する。以上からも分かる通り、起動ボタン261に対する操作を値変更トリガーとして、この対象変数の値が変わる。あるいは、起動要求信号又は停止要求信号の入力を値変更トリガーとして、この対象変数の値が変わると言うこともできる。
【0102】
また、プロセッサー210は、ROM220又は補助記憶装置240に記憶されたプログラムの実行により産業起動部211として機能する。産業起動部211は、産業機械200が停止中である場合、起動ボタン261の操作に応じて、産業機械200を動作させるために産業機械プログラム242を起動する。
【0103】
制御装置100のプロセッサー110は、
図3及び
図4の説明で示したように、通信インターフェース160を介して、対象変数を取得する。制御装置100は、取得した対象変数又は当該対象変数の値を監視変数として起動領域133に記憶する。プロセッサー110は、起動領域133を監視することで、対象変数の値の変化を監視する。プロセッサー11は、対象変数の値が、産業機械200が停止中であることを示す値から産業機械200が動作中であることを示す値に変わった場合、所定の処理として例えばロボット300の起動を行う。例えば起動部113が当該起動を行う。また、プロセッサー11は、対象変数の値が、産業機械200が動作中であることを示す値から産業機械200が停止中であることを示す値に変わった場合、所定の処理として例えばロボット300の停止を行う。停止部114が当該停止を行う。
【0104】
このように、
図10に示した以上の例では、起動ボタン261の操作によって、産業機械200だけでなくロボット300も起動又は停止することとなる。
【0105】
以上より、プロセッサー110は、ステップST135及びステップST136の処理を実行することで、格納領域に書き込まれた変数の値が所定の値である場合、所定の値に対応した所定の処理を実行する実行部の一例として機能する。
【0106】
また、プロセッサー110は、産業機械200から設定変数241を取得すると判定しないならば、すなわち産業機械200に設定変数241を書き込むと判定するならば、
図3のステップST103においてNoと判定してステップST109へと進む。
【0107】
ステップST109においてプロセッサー110は、指示変数を取得する。指示変数は、後述の指示情報が示す書込み内容を示す変数である。プロセッサー110は、ステップST102で取得されたパラメーター情報中の取得情報を用いて、どの変数を指示変数として取得するかを決定する。取得情報は、どの変数を指示変数として取得するかを定めた情報である。プロセッサー110は、例えば、ロボット300のメモリ領域から指示変数を取得する。あるいは、プロセッサー110は、RAM130若しくは補助記憶装置140又は外部の装置などから指示変数を取得しても良い。
指示変数の値は、格納領域に格納されている値の一例である。したがって、プロセッサー110は、ステップST109の処理を実行することで、格納領域に格納されている値を取得するロボット変数取得部の一例として機能する。
【0108】
ステップST110においてプロセッサー110は、対象情報を生成する。対象情報は、書込み対象を示す情報である。書込み対象は、例えば、どの設定変数241が、値を書き込む(格納する)対象であるかを示す。対象情報は、例えば、変数名又はアドレスなどによって書込み対象又は書込み対象の位置を示す。プロセッサー110は、例えば、ステップST102で取得されたパラメーター情報中の対象決定情報を用いて書込み対象を決定する。対象決定情報は、値を書き込む対象がどの設定変数241であるかを定めた情報である。対象決定情報は、例えば、変数名又はアドレスなどによって当該設定変数241を定める。なお、対象決定情報は、ロボット変数取得部によって取得される値を格納する産業機械200の変数を示した割り当てデータの一例である。また、対象決定情報を記憶する補助記憶装置140などは、当該割り当てデータを記憶する割り当て記憶部の一例である。
【0109】
ステップST111においてプロセッサー110は、指示情報を生成する。指示情報は、設定変数241の書込み内容を示す情報である。指示情報が示す書込み内容は、例えば、ステップST109で取得された指示変数の値である。なお、対象情報は、値を書き込む産業機械の変数を示す変数指定データの一例である。
【0110】
ステップST112においてプロセッサー110は、書込み要求を生成する。書込み要求は、ステップST110で生成された対象情報、及びステップST111で生成された指示情報を含む。書込み要求は、当該対象情報で示す対象に、当該指示情報で示す内容を書き込むように産業機械200に指示する情報である。
【0111】
ステップST113においてプロセッサー110は、ステップST112で生成された書込み要求を産業機械200に送信するように通信インターフェース160に対して指示する。この送信の指示を受けて通信インターフェース160は、当該書込み要求を産業機械200に送信する。送信された当該書込み要求は、産業機械200の通信インターフェース250によって受信される。
【0112】
一方、産業機械200のプロセッサー210は、
図4のステップST121及びステップST122を繰り返す待受状態にあるときに書込み要求が受信されたならば、ステップST122においてYesと判定してステップST126へと進む。
【0113】
ステップST126においてプロセッサー210は、ステップST122で受信された書込み要求に従って、補助記憶装置240又はRAM230などに記憶された書込み対象の設定変数241に、指示情報が示す値を書き込む。プロセッサー210は、指示情報が示す値と書込み対象の設定変数241の値が異なる場合には、値を上書きすることにより値を変更する。ただし、プロセッサー210は、指示情報が示す値と書込み対象の設定変数241の値が同一である場合には上書きの必要は無い。
【0114】
ステップST127においてプロセッサー210は、完了応答を生成する。完了応答は、書込み要求に基づく値の書込みが完了したことを示す情報である。
【0115】
ステップST128においてプロセッサー210は、ステップST127で生成した完了応答を、書込み要求の送信元の制御装置100に送信するように通信インターフェース250に対して指示する。この送信の指示を受けて通信インターフェース250は、当該完了応答を制御装置100に送信する。送信された当該完了応答は、制御装置100の通信インターフェース160によって受信される。プロセッサー210は、ステップST128の処理の後、ステップST121へと戻る。
【0116】
一方、
図3のステップST114において制御装置100のプロセッサー110は、通信インターフェース160によって書込み要求が受信されるのを待ち受けている。プロセッサー110は、書込み要求が受信されたならば、ステップST114においてYesと判定してステップST101へと戻る。
【0117】
以上のように、プロセッサー110は、ステップST101~ステップST103及びステップST109~ステップST114を繰り返す。これにより、プロセッサー110は、定期的又は不定期に産業機械200に書込み要求を繰り返し送信する。
【0118】
以上より、プロセッサー110は、通信インターフェース250と協働してステップST112の処理を実行することで、ロボット変数取得部によって取得された値と、値を書き込む産業機械の変数を示す変数指定データとを、前記産業機械に周期的に繰り返し送信する送信部の一例として機能する。あるいは、プロセッサー110は、ステップST112の処理を実行することで送信部の一例として機能する。
【0119】
また、
図8のステップST161において産業機械200のプロセッサー210は、補助記憶装置240又はRAM230などを参照して、各設定変数241の値を確認する。
【0120】
ステップST162においてプロセッサー210は、各設定変数241の値に応じた処理を実行するか否かを判定する。プロセッサー110は、例えば、設定変数241の値が、設定変数241ごとに予め定められた所定の値である場合、当該処理を実行すると判定する。プロセッサー210は、当該処理を実行しないならば、ステップST162においてNoと判定してステップST161へと戻る。対して、プロセッサー210は、当該処理を実行するならば、ステップST162においてYesと判定してステップST163へと進む。
【0121】
ステップST163においてプロセッサー210は、所定の値に対応した所定の処理を実行する。プロセッサー210は、ステップST163の処理の後、ステップST161へと戻る。以上のように、プロセッサー210は、
図8の処理によって設定変数241を監視し、設定変数241の値が所定の値となった場合、所定の処理を実行する。
【0122】
第1実施形態の制御システム1によれば、制御装置100は、産業機械200から設定変数241を繰り返し読み込む(取得する)。これにより、制御装置100は、産業機械200の設定用の変数の監視が可能である。また、制御装置100は、設定変数241を取得することで、設定変数241をロボットの変数として使用することが可能である。また、従来のCNC産業機械に信号を追加する場合、ラダープログラムにその追加した信号の処理を追加する必要がある。しかしながら、CNC産業機械のエンドユーザーは通常ラダープログラムの変更を行えない。したがって、エンドユーザーは、ラダープログラムを変更するに産業機械メーカーなどに依頼する。このため、ラダープログラムの変更に多大な工数がかかることになる。一方、設定変数241であれば、ラダープログラムを変更する必要なく加工プログラム内で参照できる。
【0123】
第1実施形態の制御システム1によれば、制御装置100は、複数の変数の値を格納する割り当て記憶領域を示す1つの箇所又は1つのアドレスを記憶する割付情報を用いる。これにより、制御装置100は、複数の設定変数241をまとめて記憶することができる。
【0124】
また、第1実施形態の制御システム1によれば、制御装置100は、産業機械200から取得した設定変数241が所定の値であった場合に対応する所定の処理を実行する。これにより、産業機械200は、設定変数241を用いて制御装置100及びロボット300の操作が可能である。
【0125】
また、第1実施形態の制御システム1によれば、所定の処理は、ロボットプログラムの実行又は停止である。したがって、第1実施形態の制御システム1では、産業機械200がロボットプログラムを実行又は停止させることができる。
【0126】
また、第1実施形態の制御システム1によれば、制御装置100は、アラームが発生したことを示す設定変数241の値に基づき、ロボット300を停止させる。したがって、第1実施形態の制御装置100は、制御装置100に異常が発生した場合などにおいてロボット300を停止させることができる。
【0127】
また、第1実施形態の制御システム1によれば、制御装置100は、指示変数を繰り返し取得し、書込み要求を産業機械200に送信する。これにより、制御装置100は、指示変数の値が変化した場合に産業機械200の設定変数241を書き換えることができる。したがって、制御装置100は、指示変数を用いて産業機械200の操作が可能である。
【0128】
また、第1実施形態の制御システム1によれば、教示装置400は、設定変数241の値を変更する。これにより、第1実施形態の制御システム1は、設定変数241を人の手によって書き換え可能である。
【0129】
〔第2実施形態〕
第2実施形態の制御システム1では、第1実施形態とは異なり、制御装置100は設定変数241をIO(input/output)データに変換してIOメモリ領域に記憶する。
また、第2実施形態の制御システム1は、第1実施形態とは異なり、指示変数がIOデータである。また、指示変数は、IOメモリ領域に記憶されている。
第2実施形態の制御システム1の構成は第1実施形態と同様であるので説明を省略する。
【0130】
第2実施形態では、補助記憶装置140などは、割付情報に代えて後述のIOメモリ情報を記憶している。第2実施形態では、補助記憶装置140などは、第1実行情報に代えて後述の第2実行情報を記憶している。
【0131】
以下、第2実施形態に係る制御システム1の動作を
図4~
図8、
図11及び
図13などに基づいて説明する。なお、以下の動作説明における処理の内容は一例であって、同様な結果を得ることが可能な様々な処理を適宜に利用できる。
図11は、産業機械200のプロセッサー210による処理の一例を示すフローチャートである。プロセッサー210は、例えば、ROM220又は補助記憶装置240などに記憶されたプログラムに基づいて
図11の処理を実行する。
図13は、教示装置400のプロセッサー410による処理の一例を示すフローチャートである。プロセッサー410は、例えば、ROM420又は補助記憶装置440などに記憶されたプログラムに基づいて
図13の処理を実行する。
【0132】
第2実施形態では、制御装置100のプロセッサー110は、
図5、
図7及び
図11に示す処理を実行する。プロセッサー110は、例えば、
図5、
図7及び
図11の処理を並行又は並列で実行する。第2実施形態では、産業機械200のプロセッサー210は、第1実施形態と同様に
図4及び
図8に示す処理を実行する。第2実施形態では、教示装置400のプロセッサー410は、
図6及び
図13に示す処理を実行する。第2実施形態について第1実施形態と同様の動作については説明を省略する。
【0133】
第2実施形態では、産業機械200のプロセッサー210は、
図4のST125において設定変数241を浮動小数点型のデータとして送信する。プロセッサー210は、例えば、設定変数241を浮動小数点型に変換して送信する。あるいは、プロセッサー210は、浮動小数点型の状態で記憶されている設定変数241を送信する。なお、産業機械200は、浮動小数点型として、32ビットの浮動小数点型又は64ビットの倍精度浮動小数点型などを用いる。倍精度浮動小数点型であれば、先頭から、符号部1ビット、指数部11ビット、仮数部52ビットの順で合計64ビットが並んでいる。
【0134】
各設定変数241は、通常1ビットである。浮動小数点型の各ビットに各設定変数241の値を格納することで、倍精度浮動小数点型のデータであれば64個の1ビットの設定変数241の値を格納できる。nビットの浮動小数点型のデータであれば、n個の1ビットの設定変数241の値を格納できる。なお、nは正数である。
【0135】
産業機械200は、2ビット以上の設定変数241を用いることもできる。この場合、mビットの設定変数241であれば、浮動小数点型のデータは、mビットを用いて当該設定変数241の値を格納する。なお、mは、2以上の整数である。2ビット以上の設定変数241を用いる場合には、nビットの浮動小数点型のデータであれば、合計nビットまでの複数の設定変数241の値を格納できる。
【0136】
なお、制御装置100の補助記憶装置140及び産業機械200の補助記憶装置240などはビット情報を記憶している。ビット情報は、浮動小数点型のデータのどのビットがどの設定変数241の値を格納するかを定めたデータである。
【0137】
産業機械200のプロセッサー210は、ビット情報を用いて、設定変数241を浮動小数点型のデータに変換する。あるいは、プロセッサー210は、ビット情報を用いて、設定変数241を浮動小数点型のデータの状態で補助記憶装置240又はRAM230などに記憶する。
【0138】
第2実施形態では、制御装置100のプロセッサー110は、
図11のステップST106でYesと判定したならばステップST201へと進む。
【0139】
ステップST201においてプロセッサー110は、ステップST106で受信された設定変数241をIOデータに変換する。IOデータは、「0」及び「1」、「ON」及び「OFF」又は「True」及び「False」のように2値をとるデータが複数並んだデータである。したがって、IOデータは、ブーリアン型変数の配列のようなデータである。2値をとるデータは、1ビットの2進数のデータと見ることもできる。プロセッサー110は、設定変数241をIOデータへ変換する。IOデータへの変換の方法として以下に(i)及び(ii)の2種類を示す。
【0140】
(i)変換方法1
変換方法1では、バイナリ表現の変数の各ビットをIOとして使用する。受信した設定変数241はバイナリ表現の変数である浮動小数点型のデータである。このため、プロセッサー110は、浮動小数点型の各ビットの値をそのまま用いてIOデータとする。例えば、浮動小数点型のデータの先頭4桁が「0100」である場合、IOデータの1つ目は「0」、2つ目は「1」、3つ目は「0」、4つ目は「0」である。
【0141】
(ii)変換方法2
変換方法2は、設定変数241の値の小数点以下を四捨五入した正数の絶対値を取り出し、バイナリに変換してIOとして使用する方法である。変換前の浮動小数点型のデータを10進数で表した数が例えば「-1234.567」であるとする。この場合、プロセッサー110は、「-1234.567」の小数点以下を四捨五入して「-1234」とする。そして、プロセッサー110は、この値の絶対値を求める。ここでは、絶対値は、「1234」である。さらに、プロセッサー110は、この絶対値を2進数の整数型のデータに変換する。ここでは、2進数に変換された値は、一例として16ビットであれば「0000 0100 1101 0011」である。プロセッサー110は、この値の各ビットを、IOデータとして用いる。この値であれば、IOデータの1つ目は「0」、2つ目は「0」、3つ目は「0」、4つ目は「0」、5つ目は「0」、6つ目は「1」、7つ目は「0」…である。
【0142】
設定変数241は、浮動小数点型であるため、ビットごとの操作ができない場合がある。この場合にプロセッサー210から制御装置100の特定のIOのみを操作する場合に変換方法1を用いると、ユーザーは特定のビットを操作した場合の浮動小数点型を算出する必要があり、手間となる。変換方法2は通信するデータ量が少ない代わりに、この手間を軽くする効果がある。
【0143】
以上より、プロセッサー110は、ステップST201の処理を実行することで、取得部によって取得された変数の値をIOデータに変換するIO変換部の一例として機能する。
【0144】
ステップST202においてプロセッサー110は、IOメモリ情報を取得する。IOメモリ情報は、IOメモリ領域132についての情報を記憶する。IOメモリ情報は、IOメモリ領域132のどこにどの設定変数241の値を格納するかを示す情報を含む。IOメモリ情報は、例えば、変換されたIOデータの1個目をIOメモリ領域132のどのアドレスに記憶するかを記憶することで、各設定変数241の値をどこに記憶するかを示す。例えばIOデータの1個目記憶するアドレスがXであれば、IOデータの2個目を記憶するアドレスはX+1である。また、IOメモリ情報は、各アドレスにどのような設定変数241を格納するかを示す情報を含んでも良い。なお、IOメモリ情報は、割り当てデータの一例である。
【0145】
ステップST203においてプロセッサー110は、ステップST201で変換したIOデータを、IOメモリ領域132のIOメモリ情報で示されたアドレスに記憶する。これにより、IOメモリ領域132は、各ビットに設定変数241を記憶する。プロセッサー110は、ステップST203の処理の後、ステップST201へと戻る。
なお、IOメモリ領域132は、変数の値を記憶する格納領域の一例である。また、IOメモリ領域132のうち、設定変数241の値を格納する領域は、変数の値を記憶する格納領域の一例である。
【0146】
以上より、プロセッサー110は、
図11の処理を実行することで、産業機械から変数の値を繰り返し取得する取得部の一例として機能する。
【0147】
第2実施形態では、プロセッサー110は、
図5の処理において、監視変数に代えて、IOメモリ領域132に記憶された設定変数241を用いる。
【0148】
第2実施形態では、プロセッサー110は、ステップST134~ステップST136の処理において、第1実行情報に代えて第2実行情報を用いる。第2実行情報は、例えば、IOメモリ領域132の各アドレスについて、どのような値になった場合にどのような処理を実行するかを記憶する。第2実行情報は、例えば、IOメモリ領域132のアドレス、値及び実行する処理を示す情報を関連付けて記憶する。第2実行情報は、当該IOメモリ領域132のアドレスの値が関連付けられている値になった場合に関連付けられている所定の処理を実行することを示す。なお、第2実行情報は、複数のIOメモリ領域132のアドレスの値のそれぞれが、それぞれのアドレスごとに定められた所定の値になった場合にどのような処理を実行するかを記憶できても良い。例えば、第2実行情報は、あるアドレスY1の値が1且つあるアドレスY2の値が0である場合に所定の処理を実行することなどを記憶することができても良い。
【0149】
第2実施形態では、プロセッサー110は、ステップST135において、例えば、各IOメモリ領域132のアドレスについて、当該アドレスに記憶された値が第2実行情報において関連付けられた値である場合、第2実行情報において当該アドレス及び当該値に関連付けられた処理を実行すると判定する。以上のように、プロセッサー110は、IOメモリ領域132の各アドレスに格納された値を監視して、当該値が所定の値となった場合、所定の処理を実行する。前述したように、プロセッサー110は、
図11の処理によってIOメモリ領域132に設定変数241の値を入力する。したがって、プロセッサー110は、
図11及び
図5の処理によって設定変数241を監視し、設定変数241の値が所定の値となった場合、所定の処理を実行する。
【0150】
第2実施形態では、変更要求は、変更情報に従いIOメモリ領域132に記憶された設定変数241の値を変更するように制御装置100に指示する情報である。制御装置100のプロセッサー110は、受信された変更要求中の変更情報に従いIOメモリ領域132に記憶された設定変数241の値を変更する。
【0151】
第2実施形態における変数画面の一例について、
図12を用いて説明する。
図12は、表示デバイス470に表示される変数画面SC1bの一例を示す図である。なお、変数画面SC1bは、(ii)変換方法2で変換された設定変数241を表示する変数画面である。変数画面SC1bは、一例として、領域AR2を含む。
【0152】
領域AR2は、バイナリ表現の変数の各ビットの値を示す。なお、領域AR2に示すバイナリ表現の変数は、データ[1]の(ii)変換方法2で変換されたバイナリ表現の変数である。データ[1]は、各ビットが設定のための領域として用いられている。データ[1]を32ビットの浮動小数点型の数値として見た場合には21.123という数値になる。また、「21.123」を(ii)変換方法2で変換した値は、10進数で「21」、2進数で「0000 0000 0001 0101」である。ただし、ここでは2進数の下位16桁のみ示した。上位16桁は全て0である。
【0153】
また、領域AR2に表示された各ビットは、入力デバイス460などを用いて値を変更する操作が可能である。当該操作が行われた場合、プロセッサー410は、
図6のステップST142において変数の値を変更すると判定する。また、変更情報は、当該操作による値の変更の内容を含む。
【0154】
第2実施形態では、プロセッサー110は、監視変数に代えてIOメモリ領域132に記憶された設定変数241を変更する。
【0155】
第2実施形態では、プロセッサー110は、ステップST135において、IOメモリ領域132に記憶された設定変数241の値が予め定められた所定の値である場合に、設定変数241の値に応じた処理を実行すると判定する。
【0156】
また、教示装置400は、ロボットプログラムの確認及び編集のための画面(以下「編集画面」という。)の表示が可能である。編集画面及び編集画面に関する処理について
図13を用いて説明する。教示装置400のプロセッサー410は、例えば、編集画面を表示する指示を受けたことに応じて
図13に示す処理を開始する。
【0157】
図13のステップST211において教示装置400のプロセッサー410は、編集するロボットプログラムの指定を待ち受ける。教示装置400の操作者は、編集する対象のロボットプログラムを指定する操作を行う。プロセッサー410は、編集するロボットプログラムの指定を受けたならば、ステップST211においてYesと判定してステップST212へと進む。
【0158】
ステップST212において教示装置400のプロセッサー410は、
図14に示すような編集画面SC2に対応した画像を生成する。そして、プロセッサー410は、生成したこの画像を表示するように教示装置400に対して指示する。表示の指示を受けて教示装置400のプロセッサー410は、表示デバイス470に編集画面SC2を表示させる。
【0159】
図14は、編集画面SC2の一例を示す図である。編集画面SC2は、ロボットプログラムを編集するための画面である。編集画面SC2は、一例として、領域AR10及び領域AR20を含む。
【0160】
領域AR10は、編集対象のプログラムを表示する領域である。領域AR10は、当該プログラムを1又は複数の画像IM11を用いて表示している。画像IM1のそれぞれは、当該プログラム中の各命令を示す。画像IM1は、例えば、ピクトグラムなどによって命令の内容を示す。なお、領域AR10は、文字などによって各命令を表示しても良い。領域AR10を用いることで、命令の追加、変更及び削除などが可能である。
【0161】
また、領域AR10は、編集対象の命令を指定する操作が可能である。例えば、各画像IM1は、ボタンになっている。画像IM1を操作することで、操作した画像IM1に対応する命令が編集対象となる。なお、どの命令も編集対象として指定されていない状態では、例えば、先頭の命令が自動的に編集対象となる。
【0162】
領域AR20は、編集対象の命令を編集するための領域である。領域AR20には、編集対象の命令を表示する。領域AR20は、一例として、領域AR21~領域AR25を含む。なお、領域AR20は、編集対象の命令によっては領域AR21~領域AR25とは異なる領域を含んでも良い。
【0163】
領域AR21は、編集対象の命令を表示する領域である。
図14には、当該命令として「DO [1]」が表示されている。「DO [1]」は、出力命令である。なお、このうち「1」の部分は、領域AR22内に表示された数字である。
【0164】
領域AR22は、値の変更などを行う対象の設定変数241を指定するための領域である。領域AR22に、設定変数241を示す数字、アドレス又は変数名などを入力することで、対象の設定変数241を指定することができる。「値の変更などを行う対象として指定されている設定変数241」を以下「指定変数」という。また、領域AR22は、指定された設定変数241を特定する数字、アドレス又は変数名などを表示する。
【0165】
領域AR23は、指定変数の値を変更するための領域である。領域AR23に値を入力することで、指定変数の値の変更が可能である。また、領域AR23は、指定変数の現在の値を表示する。
【0166】
領域AR24は、領域AR21に表示された命令を実行した場合に値が変更されるデータ(以下「変更データ」という。)の現在値を表示する。変更データは、例えば、指示変数である。したがって、例えばロボット300のメモリ領域などが変更データを記憶する。
【0167】
領域AR25は、変更データについて、当該命令実行後の値を表示する。
【0168】
ステップST213においてプロセッサー410は、編集対象の命令を変更するか否かを判定する。プロセッサー410は、例えば、編集対象の命令の変更を指示する操作が行われた場合には、編集対象の命令を変更すると判定する。プロセッサー410は、編集対象の命令を変更すると判定しないならば、ステップST213においてNoと判定してステップST214へと進む。
【0169】
ステップST214においてプロセッサー410は、指定変数を指定する操作が行われたか否かを判定する。例えば、前述した領域AR22への入力が指定変数を指定する操作である。プロセッサー410は、指定変数を指定する操作が行われないならば、ステップST214においてNoと判定してステップST215へと進む。
【0170】
ステップST215においてプロセッサー410は、指定変数の値の変更を指示する操作が行われたか否かを判定する。例えば、前述した領域AR23への値の入力が値の変更を指示する操作である。プロセッサー410は、指定変数の値の変更を指示する操作が行われないならば、ステップST215においてNoと判定してステップST214へと戻る。かくして、プロセッサー410は、編集対象の命令を変更すると判定するか、指定変数を指定する操作が行われるか、指定変数の値の変更を指示する操作が行われるまでステップST213~ステップST215を繰り返す待受状態となる。
【0171】
プロセッサー410は、ステップST213~ステップST215を繰り返す待受状態にあるときに編集対象の命令を変更すると判定するならば、ステップST213においてYesと判定してステップST212へと戻る。そして、プロセッサー410は、ステップST212の処理において編集画面SC1の表示を変更後の編集対象の命令に対応した画面に更新する。
【0172】
プロセッサー410は、ステップST213~ステップST215を繰り返す待受状態にあるときに指定変数を指定する操作が行われたならば、ステップST214においてYesと判定してステップST216へと進む。
【0173】
ステップST216においてプロセッサー410は、指定変数の値を制御装置100のRAM130などから取得する。
【0174】
ステップST217においてプロセッサー410は、変更データの現在値を取得する。
【0175】
ステップST218においてプロセッサー410は、指定変数の現在の値を用いて、編集対象の命令を実行した後の変更データの値を算出する。
【0176】
ステップST219においてプロセッサー410は、ステップST217で取得した値を領域AR24に表示させる。また、プロセッサー410は、ステップST218で算出した値を領域AR25に表示させる。プロセッサー410は、ステップST219の処理の後、ステップST212へと戻る。
【0177】
プロセッサー410は、ステップST213~ステップST215を繰り返す待受状態にあるときに指定変数の値の変更を指示する操作が行われたならば、ステップST215においてYesと判定してステップST220へと進む。
【0178】
ステップST220においてプロセッサー410は、変更要求を生成する。変更要求は、変数の変更の内容を示す変更情報を含む。変更要求は、変更情報に従いIOメモリ領域132に記憶された設定変数241の値を変更するように制御装置100に指示する情報である。変更情報は、指定変数を特定する番号又はアドレス及び指定変数の変更後の値を含む。変更後の値は、指定変数の値の変更を指示する操作によって指示された値である。変更要求は、
図6のステップST144と同様のものである。プロセッサー410は、変更要求を生成した後、当該変更要求を産業機械200に送信するように通信インターフェース450に対して指示する。この送信の指示を受けて通信インターフェース450は、当該変更要求を産業機械200に送信する。送信された当該変更要求は、産業機械200の通信インターフェース450によって受信される。
【0179】
以上より、プロセッサー410は、ステップST215及びステップST220の処理を実行することで、ロボットプログラムの編集に応じて前記変数の値を変更する変更部の一例として機能する。
【0180】
ステップST221においてプロセッサー410は、指定変数の変更後の値を用いて、編集対象の命令を実行した後の変更データの値を算出する。
【0181】
ステップST222においてプロセッサー410は、ステップST221で算出した値を領域AR25に表示させる。プロセッサー410は、ステップST222の処理の後、ステップST214へと戻る。
【0182】
以上より、プロセッサー410は、
図13に示す処理を実行することでロボットを制御するためのロボットプログラムを編集する編集部の一例として機能する。
【0183】
また、第2実施形態では、制御装置100のプロセッサー110は、ステップST103においてNoと判定したならばステップST204へと進む。
【0184】
ステップST204においてプロセッサー110は、設定変数241の書込み内容を示す値をRAM130のIOメモリ領域132から取得する。当該値は、例えば、2進数のIOデータの形式の指示変数である。なお、当該値は、例えばステップST201と同様の方法によってIOデータに変換されたものである。プロセッサー110は、指示変数を、ステップST201と同様の方法によってIOデータに変換してIOメモリ領域132に記憶する。
【0185】
ステップST205においてプロセッサー110は、ステップST204で取得した値を2進数のIOデータから、IOデータへの変換前のデータ形式に変換する。変換前のデータ形式は、設定変数241のデータ形式と同一の形式である。変換前のデータ形式は、例えば10進数の数値である。
【0186】
設定変数241のデータ形式は、通常IOデータではない。以上より、プロセッサー110は、ステップST205の処理を実行することで、ロボット変数取得部によって取得された値をIOデータ以外のデータ形式に変換する変換部の一例として機能する。
【0187】
ステップST206においてプロセッサー110は、書込み要求を生成する。書込み要求は、第2実施形態と同様に対象情報及び指示情報を含む。ただし、指示情報が示す書込み内容は、ステップST205で変換された値を示す。プロセッサー110は、書込み要求を生成した後、当該書込み要求を産業機械200に送信するように通信インターフェース160に対して指示する。この送信の指示を受けて通信インターフェース160は、当該書込み要求を産業機械200に送信する。送信された当該書込み要求は、産業機械200の通信インターフェース250によって受信される。プロセッサー110は、ステップST206の処理の後、ステップST201へと戻る。
【0188】
プロセッサー210は、第2実施形態と同様に、書込み要求に従って設定変数241を書き換える。
【0189】
第2実施形態の制御システム1は、第2実施形態と同様の効果が得られる。
【0190】
また、第2実施形態の制御システム1によれば、制御装置100は、設定変数241をIOデータに変換する。ロボットのプログラムを外部から実行又は停止するなどの所定の処理を行うために、あらかじめ用途を割り当てた信号を用意しておけば、1bitのデータで操作することができ、データサイズも小さく、システムの可読性が良い。また、1bitのデータを用いることで、数値データを送信するよりもデータ通信の量を小さくできる。
【0191】
また、第2実施形態の制御システム1によれば、制御装置100は、バイナリ表現の変数の各ビットをIOとして使用する。これにより、制御装置100は、1つの数値に複数の設定を含めることができる。
【0192】
また、第2実施形態の制御システム1によれば、制御装置100は、IOメモリ領域132を有する。したがって、制御装置100は、指示変数をIOデータとして記憶可能である。
【0193】
また、第2実施形態の制御システム1によれば、教示装置400は、ロボットプログラムを編集に応じて設定変数241の値を変更する。これにより、第2実施形態の制御システム1は、設定変数241の値の変更をともなうロボットプログラムの編集が可能である。
【0194】
上記の実施形態は、以下のような変形も可能である。
実施形態の制御システムは、教示装置400に代えて、ロボットプログラムを作成する機能を備えない表示装置を含んでも良い。
【0195】
上記の実施形態において教示装置400が実行する処理の一部又は全部を制御装置100又はロボット300が実行しても良い。また、実施形態の制御装置は、教示装置400が備える構成の一部又は全部を含んでいても良い。
【0196】
プロセッサー110、プロセッサー210及びプロセッサー410は、上記実施形態においてプログラムによって実現する処理の一部又は全部を、回路のハードウェア構成によって実現するものであっても良い。
【0197】
実施形態の処理を実現するプログラムは、例えば装置内の非一時的な記憶媒体に記憶された状態で譲渡される。しかしながら、当該装置は、当該プログラムが記憶されない状態で譲渡されても良い。そして、当該プログラムが別途に譲渡され、当該装置へと書き込まれても良い。このときのプログラムの譲渡は、例えば、リムーバブルで非一時的な記憶媒体に記録して、あるいはインターネット又はLANなどのネットワークを介したダウンロードによって実現できる。
【0198】
以上、本発明の実施形態を説明したが、例として示したものであり、本発明の範囲を限定するものではない。本発明の実施形態は、本発明の要旨を逸脱しない範囲において種々の態様で実施可能である。
【符号の説明】
【0199】
1 制御システム
100 制御装置
110,210,410 プロセッサー
111 割付部
112 データ変換部
113 起動部
114 停止部
115 対象部
120,220,420 ROM
130,230,430 RAM
131 メモリ領域
132 IOメモリ領域
133 起動領域
134 アラーム領域
140,240,440 補助記憶装置
150 制御インターフェース
160,250,450 通信インターフェース
170,280,480 バス
200 産業機械
211 産業起動部
241 設定変数
242 産業機械プログラム
243 ラダープログラム
260,460 入力デバイス
261 起動ボタン
270,470 表示デバイス
300 ロボット
400 教示装置
【要約】
実施形態のロボット制御装置は、取得部、格納部及び割り当て記憶部を備える。取得部は、産業機械から変数の値を繰り返し取得する。格納部は、前記取得部によって取得された前記変数の値を、前記変数の値を格納する格納領域に書き込む。割り当て記憶部は、前記変数を書き込む、前記格納領域の箇所又はアドレスを示す割り当てデータを記憶する。