JP3658061B2 - FA system control device and method, control program generation method - Google Patents
FA system control device and method, control program generation method Download PDFInfo
- Publication number
- JP3658061B2 JP3658061B2 JP33166695A JP33166695A JP3658061B2 JP 3658061 B2 JP3658061 B2 JP 3658061B2 JP 33166695 A JP33166695 A JP 33166695A JP 33166695 A JP33166695 A JP 33166695A JP 3658061 B2 JP3658061 B2 JP 3658061B2
- Authority
- JP
- Japan
- Prior art keywords
- control
- program
- processor
- cell
- automatic machine
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Stored Programmes (AREA)
- Feedback Control In General (AREA)
- Control By Computers (AREA)
- General Factory Administration (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、ロボットを含むFAシステムの制御装置と方法に係り、特に、ロボットなどの自動機械と視覚センサなどのプログラミング可能な周辺機器を含む複数機器によって構成されるFAシステムの制御装置と方法、さらには、かかるシステムにおける制御プログラムの生成方法に関する。
【0002】
【従来の技術】
ロボットなどの自動機械と、視覚センサなどのプログラミング可能な周辺機器とを含む複数の機器によって構成されるFA(Factory Automation)システムは、既に広く知られ、かつ、実用化されている。そして、かかる従来のFAシステム及びその制御方法は、一般に、各種機器の入出力(以下、「I/O」と略記)を制御するプログラマブルコントローラと、ロボットを制御するロボットコントローラと、画像処理装置などを、パラレルI/O、または、ネットワークによって接続し、FAシステムを構成する各機器の制御を行うというものであった。そして、かかる従来技術になるFAシステムの制御においては、各機器の制御対象毎に異なる制御装置(例えば、プログラマブルコントローラ、ロボットコントローラ、画像処理装置など)を組み合わせて使用し、しかも、制御装置毎に異なるプログラミング言語を使用していた。
【0003】
このため、FAシステムを構築する場合、幾つもの異なったプログラム言語を習得する必要があり、一つのFAシステムを制御するためには、このような異なったプログラム言語を駆使して、互いに関連し合う複数のプログラムを作成しなければならなかった。また、FAシステムの機能が高度化するにつれて、FAシステムの制御装置の構成も複雑となり、そのプログラムの作成には多大な労力を要し、その際にも、上記異なるプログラミング言語の使用が、やはり、FAシステムを制御するプログラムの開発効率を向上させる上で、大きな阻害要因となっていた。
【0004】
ところで、従来、上記のような課題を解決するものとして、例えば、特開平7−84768号公報によれば、FA用機器を作動させるプログラムを一つに統合した形で作成するFAシステムの制御方法が記載されている。また、やはり上記のような課題を解決するため、例えば、特開平7−72920号公報によれば、FAシステムの制御プログラムを一括して記述するFAシステムの制御方法が既に提案されている。
【0005】
すなわち、上記従来技術の前者である特開平7−84768号公報に記載されているFAシステムの制御方法は、ロボットや画像処理装置などのFA用機器を一つのプログラミング言語で統一的に作動させるための統合プログラムを作成して、これをプログラマブルコントローラ、ロボットコントローラ、画像処理装置で実行されるプログラムに分解するものである。なお、ここで述べられている統合プログラムは、従来のプログラマブルコントローラのラダープログラムに、ロボットプログラムと画像処理プログラムをサブルーチンのような形で付加した、いわゆる拡張型ラダープログラムなどであり、これをラダープログラム、ロボットプログラム、画像処理プログラムの三つに分解する方法をとっている。
【0006】
また、上記後者の従来技術である特開平7−72920号公報に記載されているFAシステムの制御方法は、FAシステムの作業を一括して記述した制御プログラムから、シーケンス制御プログラムとロボット制御プログラムを自動的に生成するものである。ここで述べられているFAシステムの制御プログラムは、ペトリネットを応用したプログラミング言語により、FAシステム全体としての作業仕様を明示的に表現したものである。
【0007】
【発明が解決しようとする課題】
しかしながら、上記従来技術により提案されるFAシステムの制御方法や制御プログラムは、FAシステムの機能の高度化に伴うプログラムの開発の効率を向上させる上ではその効果を発揮するものの、以下に指摘する問題点については言及されていなかった。
【0008】
すなわち、FAシステムの機能が高度化するに伴い、複数の制御装置または制御用プロセッサによる分散協調化が進んだ場合、上記二つの従来技術により提案されるFAシステムの制御方法や制御プログラムのように、単に、プログラムをシーケンス制御やロボット制御などのような機能別に分離するだけでなく、さらに、制御装置や制御プロセッサの構成と性能に応じた最適な処理負荷の配分になるように、各制御装置毎またはプロセッサ毎のプログラムの分割を行う必要性が生じる。例えば、シーケンス制御プロセッサ、ロボット制御プロセッサ、画像処理プロセッサのそれぞれが複数個組み合わされたような制御システムにおいては、各プロセッサに対する最適なプログラム分割を自動的に行うことができれば、複雑なFAシステムを構築する際にも、ユーザは制御システムのハードウェア構成を意識することなく、より効率のよいFAシステムの制御プログラムを一本化して作成することができることとなる。
【0009】
そこで、本発明では、上記の従来技術における問題点に鑑み、さらには、上記発明者等による従来技術に対する認識に基づいて、すなわち、FAシステムの制御プログラムを一本化して作成することができるだけではなく、さらに、作成される制御プログラムによりFAシステムをより効率的に制御することを可能にするFAシステムの制御装置と方法、さらには、かかるシステムにおける制御プログラムの生成方法を提供することを目的とする。
【0010】
【課題を解決するための手段】
上記の本発明の目的を達成するため、本発明によれば、それぞれが、少なくとも自動機械と、前記自動機械に関連するプログラミング可能な周辺機器とを含む、複数のセルから構成されるFAシステムの制御装置であって、前記複数のセルに対して、それぞれ、前記セル全体としての作業仕様を同一言語で記述したセル制御プログラムと、前記セル制御プログラムから、前記自動機械と周辺機器の作業順序の制御に関するプログラムと、前記自動機械の動作制御に関するプログラムと、前記プログラミング可能な周辺機器の制御に関するプログラムとに分離変換する分離変換手段と、前記分離変換手段により分離変換された各プログラムに基づいて、当該セルを構成する前記自動機械と前記プログラミング可能な周辺機器の動作をそれぞれ制御する複数のプロセッサ手段とを備えており、前記分離変換手段は、さらに、少なくとも前記自動機械あるいは前記プログラミング可能な周辺機器の動作をそれぞれ制御する複数の前記プロセッサ手段における処理負荷の配分を行う処理負荷配分手段を備えているFAシステムの制御装置が提起されている。
【0011】
また、本発明によれば、やはり上記の本発明の目的を達成するため、それぞれが、少なくとも自動機械と、前記自動機械に関連するプログラミング可能な周辺機器とを含む、複数のセルから構成されるFAシステムを制御するための制御方法において、前記複数のセルの少なくとも1のセルを構成する機器をそれぞれ複数のプロセッサにより制御するため、前記セル全体としての作業仕様を同一言語で記述してセル制御プログラムを作成し、当該作成したセル制御プログラムから、前記自動機械と周辺機器の作業順序の制御に関するプログラムと、前記自動機械の動作制御に関するプログラムと、前記プログラミング可能な周辺機器の制御に関するプログラムとに分離変換し、前記分離変換した各プログラムに基づいて、当該セルを構成する前記自動機械と前記プログラミング可能な周辺機器の動作をそれぞれ前記複数のプロセッサにより制御するFAシステムの制御方法であって、当該プログラムの分離変換の際に、さらに、少なくとも前記自動機械あるいは前記プログラミング可能な周辺機器の動作を制御するそれぞれの前記複数のプロセッサにおける処理負荷の配分を行うFAシステムの制御方法が提案されている。
【0012】
さらに、本発明によれば、やはり上記の本発明の目的を達成するため、それぞれが、少なくとも自動機械と、前記自動機械に関連するプログラミング可能な周辺機器とを含む、複数のセルから構成されるFAシステムにおいて、前記複数のセルの少なくとも1のセルを構成する機器をそれぞれ複数のプロセッサにより制御するための制御プログラムを生成するためのFAシステムの制御プログラム生成方法であって、前記セル全体としての作業仕様を同一言語で記述してセル制御プログラムを作成し、当該作成したセル制御プログラムから、前記自動機械と周辺機器の作業順序の制御に関するプログラムと、前記自動機械の動作制御に関するプログラムと、前記プログラミング可能な周辺機器の制御に関するプログラムとに自動的に分離変換し、そして、少なくとも前記自動機械あるいは前記プログラミング可能な周辺機器の動作を制御するそれぞれの前記複数のプロセッサにおける処理負荷の配分を自動的に行うFAシステムの制御プログラム生成方法が提案されている。
【0013】
加えて、本発明によれば、上記の目的は、ロボットを含む自動機械と視覚センサなどのプログラミング可能な周辺機器とを含む複数機器の単位(セル)から構成されるFAシステムの制御方法において、前記セル全体としての作業仕様を直接記述し、前記複数機器の作業順序の制御に関する情報と、前記複数機器の入出力の制御に関する情報と、前記自動機械の動作制御に関する情報と、前記プログラミング可能な周辺機器の制御に関する情報と、前記複数機器間の同期をとるための動作タイミングに関する情報とを有するセル制御プログラムから、機能別モジュール分離変換手段によって、前記複数機器の作業順序に関する情報と、前記入出力の制御に関する情報を分離及び抽出して、前記複数機器の作業順序の制御と前記入出力の制御を行う処理が記述されたシーケンス制御プログラムモジュールを生成し、また、前記自動機械の動作制御と前記動作タイミングに関する情報を分離及び抽出して、前記自動機械の位置決め及び軌道の制御を行う処理が記述された自動機械制御プログラムモジュールを生成し、また、前記プログラミング可能な周辺機器の制御と前記動作タイミングに関する情報を分離及び抽出して、前記プログラミング可能な周辺機器の制御を行う処理が記述された周辺機器制御プログラムモジュールを生成し、さらにこのシーケンス制御プログラムモジュールと自動機械制御プログラムモジュールと周辺機器制御プログラムモジュールとを、それぞれシーケンス制御プロセッサ別モジュール分割手段と自動機械制御プロセッサ別モジュール分割手段と周辺機器制御プロセッサ別モジュール分割手段によって、前記セルを制御するプロセッサの構成と性能に基づいて、各プロセッサの処理負荷の配分が最適となるようなプログラムモジュールに分割し、さらにこれらの分割したプログラムモジュールを各プロセッサが実行可能な形式のプログラムに変換して、シーケンス制御プロセッサ用プログラム群と自動制御プロセッサ用プログラム群と周辺装置制御プロセッサ用プログラム群とを生成し、これらの各プロセッサ用プログラム群を、それぞれを解釈実行するプロセッサ群に対して出力するFAシステムの制御方法によって達成される。
【0014】
すなわち、本発明では、FAシステムを構成する、一つのまとまった複数機器からなる単位要素(以下、セルとする)を構築する際に、セルに含まれるロボットなどの自動機械と視覚センサなどのプログラミング可能な周辺機器とその他の機器を制御するプログラムをセル制御プログラムとして一本化して記述し、さらに、このセル制御プログラムから、FAシステムの制御装置のプロセッサの構成と性能に応じて、各プロセッサの処理負荷の配分が最適となるように、各プロセッサ用のプログラムを自動的に生成することで、従来のように制御装置の構成に応じて複数のプログラムを作成したり、幾つものプログラミング言語を習得したりする必要もなく、その結果として、FAシステムの制御プログラムの開発効率を向上することができるFAシステムの制御方法を提供することが可能となる。
【0015】
【発明の実施の形態】
以下、添付の図面を参照して、本発明の実施の形態について詳細に説明する。図2は、本発明に係るFAシステムの制御装置における処理プロセスを模式的に示すブロック図である。一般に、FAシステムは、自動機器であるロボットを含む複数の機器から構成され、これら複数の機器は、それぞれ、複数の機器の単位としての「セル」と呼ばれている。この図2の場合には、制御対象であるFAシステムの機器であるセル116は、例えば、2体のロボット116a、116bと、視覚センサ116c、116dと、そして、その他の周辺機器116e、116fなどから構成されている。
【0016】
かかるFAシステムのセル116の作業を制御するプログラミングを作成する場合、まず、このセル116全体としての作業仕様を記述したセル制御プログラム102を、コンピュータなどにより構成される、いわゆる、セル制御プログラム編集手段101によって作成する。なお、このセル制御プログラム編集手段101は、例えば、セル116の制御装置に接続された端末(図3に示す)の画面上において、セル116の各機器の動作シーケンスをペトリネットの形式で記述することができるグラフィカル・ユーザ・インタフェースを有するものである。また、セル制御プログラム102のペトリネット表現については、後に具体例を用いて説明する。
【0017】
セル制御プログラム102には、(1)ロボット116a、116bの動作制御に関する情報、(2)視覚センサ116c、116dの画像処理に関する情報、(3)その他の周辺装置に接続されるI/Oの制御に関する情報、(4)これら各機器の動作順序と各機器間の動作タイミングの同期に関する情報が、セル116全体の作業仕様として、一種類のプログラミング言語(以下、セル制御言語とする)によって記述されている。このようにセル116の作業仕様を一つのプログラムとして記述することで、セル116全体としての動作シーケンスを明示的に表現することができる。なお、セル制御言語の仕様は、前記の従来技術、特開平7−72920号公報に記載されているものに拡張を加えたものであり、シーケンス表現にペトリネットを応用しているところなど、基本的な部分は共通の手法を用いている。
【0018】
このセル制御プログラム102は、まず、機能別モジュール分離変換手段103によって、(a)シーケンス制御プログラムモジュール104と、(b)ロボット制御プログラムモジュール105と、そして、(c)画像処理プログラムモジュール106の3個のモジュールに分離及び変換される。ここで、上記のシーケンス制御プログラムモジュール104とは、セル116全体としてのシーケンス制御と、各種周辺機器116e、116fなどのI/Oの制御に関するプログラムモジュールであり、ロボット制御プログラムモジュール105とは、ロボット116a、116bの動作制御に関するモジュールであり、そして、画像処理プログラムモジュール106とは、視覚センサ116c、116dの画像処理に関するプログラムである。なお、以下の説明では、これらのシーケンス制御、ロボット制御、画像処理などのように制御機能別に分類されたプログラムモジュールのことを、場合により、まとめて機能別プログラムモジュールと呼ぶ。
【0019】
これら機能別プログラムモジュールは、それぞれが処理される制御用プロセッサ(プログマブルコントローラ、ロボットコントローラなどの独立したコントローラも、それぞれ広義の制御用プロセッサと考えるものとする)の構成に応じたプログラムモジュールに変換される。すなわち、本発明によれば、セル116の制御装置が複数の制御用プロセッサから構成されることを想定して、これらの各プロセッサの処理負荷の配分が最適になるように、機能別プログラムモジュールをプロセッサ別に分割することで、最終的に各プロセッサで実行されるプロセッサ別プログラムを生成する。具体的には、シーケンス制御プログラムモジュール104から、シーケンス制御プロセッサ別モジュール分割手段107によって、シーケンス制御プロセッサ別プログラム群110を生成する。また、ロボット制御プログラムモジュール105から、ロボット制御プロセッサ別モジュール分割手段108によって、ロボット制御プロセッサ別プログラム群111を生成する。また、画像処理プログラムモジュール106から、画像処理プロセッサ別モジュール分割手段109によって、画像処理プロセッサ別プログラム群112を生成する。
【0020】
そして、これらシーケンス制御プロセッサ別プログラム群110、ロボット制御プロセッサ別プログラム群111、画像処理プロセッサ別プログラム群112は、これら各プロセッサ用プログラム群110、111、112を解釈実行するプロセッサに対して出力される。すなわち、シーケンス制御プロセッサ用プログラム群110はシーケンス制御プロセッサ群113に対して、ロボット制御プロセッサ用プログラム114はロボット制御プロセッサ群114に対して、画像処理プロセッサ用プログラム群112は画像処理プロセッサ群115に対して出力され、それぞれのプロセッサがこれらのプログラムを解釈実行することで、セル116は制御される構成となっている。
【0021】
図3は、上記図2に示したFAシステムの制御装置の構成要件のうち、セル制御プログラム編集手段101における端末の画面表示の一例を示したものである。図示のように、このセル制御プログラム編集手段101は、セル制御プログラム102における動作シーケンスを、いわゆる、ペトリネットの形式で編集するためのグラフィカル・ユーザ・インタフェースを有している。このセル制御プログラム102の記述言語であるセル制御言語は、セル116の動作シーケンスの記述に対して、ペトリネットの図的表現形式を応用した一種のグラフィック言語である。この図3の例では、ペトリネットのプレース(図中、「○」で表記)をセル116を構成する機器の動作状態、トランジション(図中、「−」で表記)を次の動作状態に遷移するときの遷移条件、トークン(図中、表記せず)の置かれたプレースを現在の活性化された状態(以下、活性化状態とする)と定義し、各プレースには高々一個のトークンしか存在しないセーフペトリネットを考えている。
【0022】
なお、図3のネット編集ウィンドウ201では、マウス等のポインティングデバイスを用いて、画面上でグラフィックイメージのまま、ペトリネットを編集することができる。コマンド編集ウィンドウ202は、ネット編集ウィンドウ201の中でマウスのカーソルが指示している編集中の状態S106における機器の動作(ロボットの動作命令、I/OのON/OFFなど)やその他の処理を定義するためのコマンドを編集するためのウィンドウである。状態終了条件編集ウィンドウ203は、編集中のS106の正常終了の条件(OK条件)及び異常終了の条件(NG条件)を編集するためのウィンドウである。それぞれのウィンドウには、マウスやファンクションキーによるメニュー選択形式を利用した簡便な入力環境が用意されている。
【0023】
図4には、上記したセル制御プログラム編集手段101によって作成されたペトリネットの一例を示す。なお、この図4のペトリネットは、一例として、以下の図5及び図6に示す電子部品の挿入作業を表したものである。
【0024】
これら図5及び図6に示す作業は、プリント基板406にIC等の電子部品405を挿入するもので、まず、コンベアなどで搬送されてきたプリント基板406を位置決めし、パーツフィーダなどによって供給される部品405を部品挿入ロボット401の先端に設けられたハンド402により把持し、所定の位置へ挿入する。さらに、挿入の終了した部品405のリードを、プリント基板406の下方からアクセスするクリンチロボット407の先端のクリンチハンド408によって曲げ、部品405がプリント基板406から脱落するのを防止する。また、それぞれのロボット401、407のプリント基板406に対する位置補正のために、視覚センサ404、409によって位置ずれ計測を行う。図5は、このような部品挿入直前における各機器の状態を示し、図6は部品挿入直後の状態を示している。
【0025】
上記図4においてペトリネットで表されたセル全体の動作シーケンスは、大きく分けると、部品挿入ロボット401(以下、「ROB1」と略記)のモジュール304、クリンチロボット407(以下、「ROB2」と略記)のモジュール305、部品挿入用の視覚センサ404(以下、「CAM1」と略記)のモジュール306、クリンチ用の視覚センサ409(以下、「CAM2」と略記)のモジュール307の4個のモジュールから構成される。各モジュールは、あるまとまった機器群で、その機器群同士で互いに並行動作可能なもの(以下、このような機器群のことを「ユニット」とする)毎にまとめられたシーケンスであり、これらのモジュールは同期プレース303(図中、二重丸で表記)で接続されることで、互いに関連付けられる。
【0026】
次に、上記図4のプレース301は、ユニットの動作状態を示しており、これを状態プレースと呼ぶ。例えば、状態プレース301に付記された「S106」は、動作状態の整理番号を示す。この状態プレース301における動作の具体的な内容は、ロボット命令やI/O制御命令などのコマンド列として定義する。また、トランジション302は、ある状態から次の状態に遷移するための条件を示している。トランジション302の遷移条件は、ペトリネットの接続関係と各状態の終了条件によって決まる。なお、このトランジション302に付記されている「OK1」は、このトランジション302への入力となる状態の正常終了を意味し、この正常終了の判定条件は、状態終了条件の式として定義される。同期プレース303は、モジュール間の動作タイミングの同期を定義するものであり、例えば、「REQ6」は、状態S105が正常終了し、かつ、状態S204が正常終了したとき、次の状態S106への遷移条件が満たされる、という二つの状態終了の同期をとる。なお、図4の状態プレース301の横には、その状態における動作の内容を示すコメントを付記している。
【0027】
上記図4に示す動作シーケンスの概略を以下に説明する。まず、ROB1が、ハンド402で把持した部品405を、位置決めされたプリント基板406の上の所定の位置(挿入点)まで移動する(S100)と、CAM1がROB1の目標位置(プリント基板406との相対的な位置)からの位置ずれを計測し(S151)、その位置ずれ量に基づいてROB1は位置補正の動作を行う(S102)。さらに、ROB1は、そのリストを所定の高さまで下降させた後、ハンド402を開いて部品103を解放する(S103)。この間にROB2は、プリント基板406の直下の所定の位置(クリンチ点)まで移動(S200)し、CAM2によって位置ずれ計測(S251)した結果に基づいてROB2は位置補正を行い(S202)、さらに、そのリストを所定の高さまで上昇させる(S203)。ROB1のハンド402に設けられたセンサ(図示せず)によって部品405の解放が検知されると、ROB1の手先に設けられたセンタプッシャ403が下降することで部品405を押し下げ、プリント基板406の所定の穴に部品405を深く挿入する(S104)。ROB1の手先に設けられたセンサ(図示せず)によりセンタプッシャ403が所定の高さまで下降したことが検知されると、ROB2のクリンチハンド408が閉じて、部品405のリードが折り曲げられる(S204)。クリンチハンド408に設けられたセンサ(図示せず)により、クリンチが完了したことが検知されると、クリンチハンド408が開かれ(S205)、ROB1のセンタプッシャ403が上昇する(S106)。その後、ROB1は挿入準備点まで移動し(S107)、ROB2はリストを下降し(S206)、クリンチ準備点まで移動する(S207)。
【0028】
次に、図7と図8には、上記図3にも説明したセル制御プログラム編集手段101によって、図4のペトリネットを編集し、それをコード化したもの、すなわち、図2のセル制御プログラム102の一例を示す。図からも明らかなように、セル制御プログラム102は、2種類のブロックから構成されており、一つは図7に示すcellブロック(”cell”文に続くブロック)であり、もう一つは、図8に示すdefブロック(”def”文に続くブロック)である。
【0029】
このセル制御プログラム102について、さらに、その詳細な内容を説明すると、図7のcellブロックには、ペトリネットの接続関係と各状態における機器の動作が定義されている。cellラベル601には、状態の整理番号とその状態における動作主体であるユニットの種別とその整理番号が定義される。例えば、状態S106のユニットはROB1であり、これは部品挿入ロボット401とそれに付随するハンド402等の周辺機器から構成されるユニットを示す。遷移条件式602は、ペトリネットの接続関係を定義する式であり、その状態の入力トランジションに入力として接続される状態の整理番号とその状態の終了条件を定義する。状態S106の入力トランジションは、状態S105の正常終了OK1と同期プレースREQ6のOKとに接続されている。コマンド列603は、その状態におけるユニットを構成する機器の動作とその他の処理を定義するコマンド列である。状態S106における処理は、RESET Y101(出力Y101のOFF、すなわちセンタプツシャ403の上昇)と、SET TD12 10.(オンディレイタイマTD12のセット)である。
【0030】
また、図8のdefブロックには、各状態の終了条件が定義される。defラベル701には状態の整理番号が定義され、定義式702には状態の正常終了(OK)と異常終了(NG)の条件式が定義される。状態S106の正常終了条件(OK1)は、X101=OFF(入力X101がOFF、すなわち部品405の接触検出のセンサがOFF)かつTD12=OFF(オンディレイタイマTD12がOFF、すなわちタイムアップしていない)である。状態S106の異常終了条件(NG1)は、X101=ONかつTD102=ON(オンディレイタイマTD102がタイムアップしても、センサがONのまま)である。なお、図中の「==」は、条件式であることを示す。
【0031】
このように、上記図4にも示すように、セル制御プログラム102の記述にペトリネットの表現を応用することで、各機器の動作シーケンスが構造的かつ明示的に記述することができる。さらに、図7、図8のように、セル内の機器の制御プログラムをセル制御プログラム102として一本化し、しかも、各機器の動作シーケンスの明示性を持たせることで、FAシステムのソフトウェアの開発者にとって、セル内の機器の制御装置の構成やプログラム言語の違いを意識せずに、セル全体としての作業仕様を直接記述する形で、セル制御プログラム102を容易に作成することが可能になる。すなわち、セル制御プログラム102の開発者は、従来のようにいくつかの異なったプログラム言語を習得する必要がなくなり、その結果、プログラムの開発効率が向上し、ソフトウェアとしての保守性も向上する。
【0032】
そして、本発明によれば、上記図7、図8のようなセル制御プログラム102から、機能別モジュール分離変換手段103によって、セルを構成する機器の動作順序の制御とこれらの機器に接続されたI/Oの制御を行うする処理が記述されたシーケンス制御プログラムモジュール104と、ロボット116a、116bの位置決め及び軌道の制御を行う処理が記述されたロボット制御プログラムモジュール105と、視覚センサ116c、116dの画像に関する処理を記述した画像処理プログラムモジュール106を生成する。
【0033】
図9には、上記機能別モジュール分離変換手段103の処理プロセス示す。なお、セル制御プログラム102のcellブロックには、上記の図7及び図8に示したように、セル制御プログラム102のcellブロックには、ペトリネットにおける各プレースの接続関係、すなわちネット構造と、各状態における機器の動作が定義され、また、defブロックには、各状態の終了条件が定義される。
【0034】
図の機能別モジュール分離変換手段103の機能別データ抽出手段103aは、まず、cellブロックの内容からネット構造103bを、defブロックの内容から状態終了条件103cを抽出する。さらに、cellブロックからI/O制御命令列103dを抜き出す。そして、シーケンス制御プログラム生成手段103iは、上記抽出したネット構造103b、状態終了条件103c、そして、I/O制御命令列103dから、シーケンス制御プログラムモジュール104を生成する。
【0035】
また、機能別データ抽出手段103aは、cellブロックの内容から、ロボット制御命令列103eとロボット動作タイミング103fに関する情報を抽出する。そして、ロボット制御プログラム生成手段103jは、これら抽出した情報に基づいて、ロボット制御プログラムモジュール105を生成する。
【0036】
同様に、機能別データ抽出手段103aは、cellブロックの内容から画像処理命令列103gと画像処理タイミング103hに関する情報を抽出し、さらに、画像処理プログラム生成手段103kは、これらの情報に基づいて画像処理プログラムモジュール106を生成する。
【0037】
図10、図11、及び、図12には、上記図7、図8に例示したセル制御プログラム102から、上記図9に示した機能別モジュール分離変換手段103によって生成された、シーケンス制御プログラムモジュール104の一例を示す。なお、本例におけるシーケンス制御用のプログラミング言語は、IF〜THEN〜形式のルール型の記述を基本とする。すなわち、各ルールには、各状態における機器の動作の実行ステータス、センサなどの外部からの入力信号、内部変数の値などについての評価式を条件とし、ここで所定の条件が満たされれば、その状態における機器の動作を終了し、次の段階の状態における機器の動作を起動する、という処理が記述される。例えば、図11中に示したルール1001は、状態S203が正常終了し、かつ同期プレースREQ5が正常終了すれば、状態S204の実行ステータスを実行中にし(EXEC S204)、出力Y200とオンディレイタイマTD20をセットすることを表す。
【0038】
なお、シーケンス制御用のプログラミング言語としては、本例のようなルール型のプログラミング言語の他にも、例えばラダー図などのプログラミング言語を用いることも可能であり、その場合、機能別モジュール分離変換手段103は、シーケンス制御プログラムモジュール104としてラダープログラムを生成することとなることは当業者にとっては当然であろう。
【0039】
図13には、上記図7、図8のセル制御プログラム102から、上記機能別モジュール分離変換手段103によって生成された、ロボット制御プログラムモジュール105の一例を示す。この図13の中に示したブロック1203は、状態S203(STT203)において、ROB2のリストを10mmだけ上昇させる(MOVE L,*+(0.,0.,10.))ことを表す。ここで、STTn(nは状態Snのnと同じ)は、先に示したシーケンス制御プログラムモジュール104と共通する状態の整理番号(以下、状態NO.とする)を示す状態ラベルであり、この状態NO.を各プログラムの間で共有することによって、セル全体の状態遷移を制御することができる。
【0040】
図14には、上記図7、図8のセル制御プログラム102から、上記機能別モジュール分離変換手段103によって生成された画像処理プログラムモジュール106の一例を示す。ここで生成される画像処理プログラムモジュール106は、ロボット制御プログラムモジュール105と同様の構成を持っており、STTn文に続けて各種の画像処理命令列が記述されている。
【0041】
さらに、図15〜図24には、上記機能別モジュール分離変換手段103の処理の詳細を説明するフローチャートを示す。
まず、図15は、上記機能別モジュール分離変換手段103における機能別モジュール分離変換処理の概略を示す。この機能別モジュール分離変換処理では、処理がスタートすると、まず、セル制御プログラムを解析して機能別データの抽出を行い(処理1100a)、ここで得られたデータに基づいて、機能別モジュールを生成する。すなわち、シーケンス制御プログラム生成手段103iによってシーケンス制御プログラムモジュール104を生成し(処理1100b)、ロボット制御プログラム生成手段103jによってロボット制御プログラムモジュール105を生成し(処理1100c)、画像処理プログラム生成手段103kによって画像処理プログラムモジュール106を生成する(処理1100d)。
【0042】
図16は、上記図15に示した機能別モジュール分離変換処理の機能別データ抽出処理1100aの詳細を示す。
この機能別データ抽出処理1100aでは、処理がスタートすると、セル制御プログラムのcellブロック、defブロックの順にコード解析を行い、それぞれ必要なデータ抽出を行う。まず、cellブロックの解析では、各ロボット毎の動作タイミング103fとロボット制御命令列103eを格納するためのデータ領域の確保(処理1101a)、各視覚センサ毎の画像処理タイミング103hと画像処理命令列103gを格納するためのデータ領域の確保(処理1101b)、I/O制御命令列103dを格納するためのデータ領域の確保(処理1101c)を行う。次に、セル制御プログラムを、ペトリネットの1プレースに相当するブロック単位で、先頭から順に処理していき、プレースの接続関係、すなわち、ネット構造103bをコード解析によって抽出し(処理1101d)、さらに、各プレースにおいて定義されるコマンド列を解析する(処理1101e)。これらの解析は、次のプレースのブロックがなくなるまで繰り返す(処理1101f)。defブロックの解析では、1プレース毎に状態の終了条件103cをコード解析によって抽出し(処理1101g)、次のプレースのブロックがなくなるまで、これを繰り返して(処理1101h)、終了する。
【0043】
次に、図17及び図18は、1プレース毎のネット構造解析処理101dの詳細を示す。
この1プレース毎のネット構造解析処理101dでは、まず、1プレース毎のネット構造データ領域を確保し(処理1102a)、次に、cellラベル601と遷移条件式602の解析を行う。図17のcellラベルの解析では、まず、そのcellラベルが状態プレースのラベルか、あるいは、同期プレースのラベルかを調べ(処理1102b)、その結果、状態プレースであれば、その状態NO.を抽出し、ネット構造データの一つとして格納する(処理1102c)。さらに、cellラベルからユニット種別とユニットNO.を抽出し、ネット構造データとして格納する(処理1102d、1102e)。ここで、ユニット種別がロボットであれば(処理1102f)、ロボット動作タイミング103fのデータとして先に抽出した状態NO.を格納する(処理1102g)。また、ユニット種別が視覚センサであれば(処理1102h)、画像処理タイミング103hのデータとして先の状態NO.を格納する(処理1102i)。一方、cellラベルが同期プレースのラベルであれば(処理1102b)、その同期プレースの整理番号(以下、同期NO.)を抽出し、ネット構造データとして格納する(処理1102j)。
【0044】
一方、図18の遷移条件式の解析では、まず、遷移条件式602(上記図7の例では、S105:OK1 REQ6:OK)から状態NO.(S105)と終了条件(OK1)を抽出し、これらをネット構造データとして格納する(処理1103a、1103b)。ここで、同期条件があれば(処理1103c)、同期NO.(REQ6)を抽出し、ネット構造データとして格納する(処理1103d)。さらに、別の遷移条件があれば、その遷移条件について同様の解析処理を行い、遷移条件がなければ解析処理を完了する(処理1103e)。
【0045】
以上のように、上記図17と図18に示したネット構造解析処理により、与えられたセル制御プログラムと等価なペトリネットの各プレースの接続関係、すなわち、ネット構造103bの情報が得られる。
【0046】
次に、図19は、上記1プレース毎のコマンド列解析101eの詳細を示す。ここでは、cellラベル601(図7を参照)と遷移条件式602に続くコマンド列603の解析を行う。
まず、コマンド列603のブロックから1コマンドを抽出し(処理1104a)、これがI/O制御命令であれば(処理1104b)、I/O制御命令列データとして格納する(処理1104c)。また、抽出したコマンドがロボット制御命令であれば(処理1104d)、これをロボット制御命令列データとして格納する(処理1104e)。抽出したコマンドが画像処理命令であれば(処理1104f)、画像処理命令列データとして格納する(処理1104g)。なお、次のコマンドがあれば、処理1104a以降を繰り返し、コマンドがなければ、解析処理を完了する(処理1104h)。
【0047】
図20は、上記1プレース毎の終了条件解析101gの詳細を示す。ここでは、セル制御プログラムのdefブロックに定義された各プレース(状態)の終了条件の解析を行う。
まず、1プレース毎の終了条件データを格納する領域を確保する(処理1105a)。さらに、defラベル701から状態NO.(図8の例では、S106)を抽出する(処理1105b)。次に、defラベル701に続くOK条件の定義式(図8の例では、X101=OFF & TD12=OFF)を抽出し、これを終了条件データとして格納する(処理1105c)。次のOK条件がなくなるまで、この処理を繰り返す(処理1105d)。さらに、NG条件の定義式(図8の例では、X101=ON & TD12=ON)を抽出し、これを終了条件データとして格納する(処理1105e)。次のNG条件がなくなるまで、この処理を繰り返す(処理1105f)。以上の処理により、各状態の終了条件を得ることができる。
【0048】
図21及び図22は、上記シーケンス制御プログラム生成処理100bの詳細を示す。ここでは、先の機能別データ抽出処理100aによって得られたネット構造103b、状態終了条件103c、I/O制御命令列103dのデータに基づいて、各ユニット毎にシーケンス制御プログラムを生成する。
まず、各ユニット毎のプログラムバッファ領域を確保する(処理1106a)。次に、先に生成したネット構造データを1プレースずつ順に調べ、プレース毎にシーケンス制御プログラムを生成していく。
【0049】
そこで、まず、1プレース毎のネット構造データからプレース種別を獲得し(処理1106b)、そのプレースが状態プレースであれば(処理1106c)、その状態NO.(整理番号をiとおく。以下、「=i」と略記)とユニットNO.を獲得する(処理1106d)。そのプレースが状態プレースでなければ、ネット構造データから同期NO.(=i)を獲得する(処理1106e)。さらに、ネット構造データと終了条件データから、現在着目しているプレースに接続する、一つ前の状態プレースの状態NO.(=j)と終了条件の定義式を獲得する(処理1106f)。この一つ前の状態の終了条件が、”CompeleteNormally”であれば(処理1106g)、”IF Sj=CompleteNormally”をプログラムバッファに出力し(処理1106h)、”AnyErrorOccur”であれば(処理1106i)、”IF Sj=AnyErrorOccur”をバッファに出力する(処理1106j)。それ以外の定義式の場合、”IF Sj=Executing & (定義式)”をバッファに出力する(処理1106k)。
【0050】
ここで、現プレースが状態プレースであれば(処理1106l)、現プレースに接続する同期プレースがあるかどうか調べ、同期プレースがあれば(処理1107a)、その同期NO.(=k)をネット構造データから獲得し(処理1107b)、”& REQk=CompleteNormally”をバッファに出力する(処理1107c)。以上の処理で、1プレースあたりのシーケンス制御プログラム、すなわち、ルール1001(図11を参照)の条件部が生成される。
【0051】
次に、ルール1001の実行部として、まず、”−> TERM Sj”をバッファに出力する(処理1107d)。ここで、現プレースに接続する同期プレースがあれば(処理1107e)、”TERM REQk”をバッファに出力する(処理1107f)。さらに、”EXEC Si”をバッファに出力し(処理1107g)、現プレース(Si)のI/O制御命令列データの内容をバッファに出力する(処理1107h)。また、現プレースが同期プレースであれば(処理1106l)、”−> TERM Sj”と”EXEC REQi”をバッファに出力する(処理1107i、1107j)。以上の処理で、ルール1001の実行部が生成される。この後、さらに、ネット構造データを調べ、次のプレースが見つかれば(処理1107k)、処理1106b以降を繰り返す。次のプレースがなければ、各ユニット毎のプログラムバッファを結合し、シーケンス制御プログラムモジュール104(図9を参照)を生成する(処理1107l)。
【0052】
図23は、上記ロボット制御プログラム生成処理100cの詳細を示す。
まず、各ユニット毎のプログラムバッファ領域を確保する(処理1108a)。次に、先の機能別データ抽出処理100aで得られたユニット毎のロボット動作タイミング103fのデータから、状態NO.(=i)を一つずつ獲得し(処理1108b)、状態ラベル”STTi”をプログラムバッファに出力する(処理1108c)。さらに、上記の機能別データ抽出処理100aで得られたロボット制御命令列103eのデータがあれば(処理1108d)、そのロボット制御命令列データの内容をバッファに出力する(処理1108e)。ロボット制御命令列データがなければ、”NOP”をバッファに出力する(処理1108f)。以上の処理で1状態分のロボット制御プログラムが生成される。ここで、ロボット動作タイミングデータを調べ、次に続く状態が見つかれば(処理1108g)、処理1108b以降を繰り返す。次の状態がなければ、これで1ユニット分のロボット制御プログラムが生成されたことになる。さらに、次のユニットのロボット動作タイミングデータがあるかどうか調べ、次のユニットのデータがあれば(処理1108h)、処理1108b以降を繰り返す。次のユニットのデータがなければ、各ユニット毎のプログラムバッファを結合し、ロボット制御プログラムモジュール105(図9を参照)を生成する(処理1108i)。
【0053】
図24は、画像処理プログラム生成処理100dの詳細を示す。なお、図からも明らかなように、ここでは、上記図23と同様の処理により、図15の機能別データ抽出処理1100aで得られた画像処理タイミング103h(図9を参照)のデータと、画像処理命令列103gのデータから、画像処理プログラムモジュール106を生成する。
【0054】
次に、図25は、セル制御プログラム102(図9を参照)からシーケンス制御プログラム104と、ロボット制御プログラムモジュール105とを生成する手順を、上記図7、図8に示したセル制御プログラムの一部を例にして、具体的に示すものである。
【0055】
この図25の符号1401、1402は、それぞれ、上記セル制御プログラム102のcellブロック、defブロックの一部を示す。このcellブロック1401において、先に述べたcellラベル601(図7を参照)と状態遷移式602を合わせたものが、この図中のペトリネットの状態接続関係1401a、1401cである。この状態接続関係1401aは、状態S106への入力トランジションが一つであり、そこに状態S105の正常終了OK1と同期プレースREQ6のOKが入力として接続されていることを示す。同様に、状態接続関係1401cは、状態S107のトランジションは一つで、そこに状態S106のOK1が接続されていることを示す。
【0056】
また、defブロック1402には、各状態の終了条件が定義されており、状態S105の正常終了OK1の状態終了条件1402aは、状態S105における動作がエラーなしで完了することを示す。同様に、状態S106のOK1の状態終了条件1402cは、入力X101がOFFであり、かつ、オンディレイタイマTD12がタイムアップしていないことを示す。
【0057】
これら状態接続関係1401aと状態終了条件1402aから、シーケンス制御プログラム1403におけるルールの条件部1403aと、実行部の状態遷移命令1403b(EXEC S106など)が生成される(処理1405、1406)。すなわち、ルール条件部1403aとして「もし、状態S105が正常終了であり、かつ同期プレースREQ6が満たされれば」が生成され、状態遷移命令1403bとして「状態S106を実行する」などが生成される。同様にして、状態接続関係1401cと状態終了条件1402cから、ルールの条件部1403dと、実行部の状態遷移命令1403eが生成される(処理1407、1408)。
【0058】
また、このとき同時に、状態接続関係1401a、1401cから、状態NO.すなわちロボット動作タイミング103fが抜き出され、ロボット制御プログラム1404の中の状態ラベル1404a、1404cが生成される(処理1409、1410)。
【0059】
さらに、cellブロック1401のコマンド列から、I/O制御命令列1401bが抜き出されて、シーケンス制御プログラム1403のルールの後件部のコマンド列1403cが生成される(処理1411)。さらに、cellブロック1401のコマンド列のうち、ロボット制御命令列1401dが抜き出され、ロボット制御プログラム1404のコマンド列1404b、1404dが生成される(処理1412、1413)。
【0060】
図26は、セル制御プログラム102(図9を参照)から、シーケンス制御プログラム104と画像処理プログラムモジュール106を生成する手順を、やはり、図7、図8に示したセル制御プログラムの一部を例にして、具体的に示すものである。すなわち、上記の図25と同様に、セル制御プログラム102のcellブロック1501と、defブロック1502とから、シーケンス制御プログラム1503と、画像処理プログラム1504とを生成する手順を示している。
【0061】
以上のようにして、機能別モジュール分離変換手段103によって生成される機能別プログラムモジュールは、共通のプログラム構造を持ち、その構造を図27に示す。すなわち、図27に示すように、そのプログラム構造において、機能別プログラムモジュール1601は、いくつかのユニットブロック1602によって構成され、さらに、このユニットブロック1602は、状態ブロック1603によって構成される。このユニットブロック1602は、ユニットラベル(#UNITn、#ROBn、#CAMnなど、nはユニットの整理番号)に続くプログラムのブロックである。また、状態ブロック1603は、シーケンス制御プログラムではルール1001に相当し、ロボット制御プログラムと画像処理プログラムでは状態ラベル(STTn、nは状態NO.)に続くブロックに相当する。
【0062】
例えば、図11に例示したシーケンス制御プログラムは、ROB1のユニットブロック1602であり、ルール1001は状態S203の状態ブロック1603に相当する。また、図14のロボット制御プログラムは、ROB1のユニットブロック1201と、ROB2のユニットブロック1202から構成されており、また、図中のブロック1203は、図27の状態S203の状態ブロック1603に相当する。また、図14の画像処理プログラムも、図13と同様、図27に示す、CAM1のユニットブロック1602と、CAM2のユニットブロック1602とから構成されている。
【0063】
この図27に示した機能別プログラムモジュール1601のブロック構造は、この機能別プログラムモジュール1601を分割することで得られるプロセッサ別プログラムのコード実行手順と密接な関係がある。すなわち、プログラム実行時には、あるユニットブロック1602の中のうち、現在活性化されている状態ブロック1603が選び出され、そのブロックに記述された命令列が順番に実行される。さらに、別のユニットブロック1602においても、同様の処理が行われる。ここで、処理中のユニットブロック1602を指すユニットラベルの番号(#UNITnのnなど)は、ユニットそのものの整理番号(以下、ユニットNO.とする)と同じものであり、このユニットNO.は、プログラムの実行時にプログラム制御を行うための情報(以下、プログラム制御用データとする)として管理される。また、機器の現在の状態、すなわち活性化状態における動作が記述された状態ブロック1603を指す状態ラベルの番号は、状態NO.として管理される。
【0064】
次に、図28には、このプロセッサ別プログラムの実行手順を示す。同図に示す処理フローにおいて、まず、現在のユニットNO.をプログラム制御用データから読み込み(処理1701)、そのユニットNO.と同じ番号を持つユニットラベルへジャンプする(処理1702)。次に、活性化状態の状態NO.を読み込み(処理1703)、その状態ラベルへジャンプする(処理1704)。この状態ラベルに続く命令列を順番に実行し(処理1705、1706)、その実行が終了すると次のユニットブロック1602を処理するためにユニットNO.を更新し(処理1707)、再びフローの最初に戻る。このように、プログラムはユニットブロック1602を単位として実行されるので、機能別プログラムモジュール1601はこのユニットブロック1602を単位として、さらに分割することができる。また、先に述べたプロセッサ別プログラムは、機能別プログラムモジュール1601を、上記ユニットブロック1602を単位として分解することによって、生成される。
【0065】
続いて、図1には、上記の機能別プログラムモジュール1601から、プロセッサ別プログラム群1803を生成する、いわゆる、プロセッサ別モジュール分割手段1801の処理プロセスを示す。このプロセッサ別モジュール分割手段1801では、まず、機能別プログラムモジュール1601をユニットブロック分割手段1801aによって、個々のユニットブロック1602に分解して、ユニットブロック群1801bを生成する。
【0066】
なお、ここで、実際に機器を制御するプロセッサ構成及びその性能に関するデータ(プロセッサ構成及び性能データ)1801c、すなわち、制御用プロセッサを何台用いて、それらをどのような形態で接続するか、ということに関する情報と、制御用プロセッサのプログラムコードの処理時間などに関する情報に基づいて、各ユニットブロック1602(図27を参照)の処理時間を推定し、それが制御上必要とされる処理時間(例えば、シーケンス制御におけるスキャンタイムやロボット制御におけるサンプリング周期など)の基準を満たしているかどうかを評価する。これを行うのがユニットブロック処理時間推定及び評価手段1801dであり、これにより各ユニットブロック1602の処理時間に関するデータが作成される。なお、プログラムコードの処理時間については、各命令コードの処理に要する時間(制御用プロセッサ毎に予め調べられているものとする)を実行される命令コードの分だけ加算することで求めることができる。例えば、シーケンス制御プロセッサにおけるスキャンタイム(1処理に要する時間)であれば、1スキャンで実行する分だけ命令コードの処理時間を加算することにより、スキャンタイムを推定することができる。
【0067】
次に、ユニットブロック結合手段1801eは、各ユニットブロック1602の処理時間の推定データに基づいて、いくつかのユニットブロック1602を結合し、最終的に各プロセッサで実行されるプロセッサ別プログラム群1803を生成する。本実施例では、図28のようなプログラムコードの実行手順をとるため、各プロセッサにおいては、その制御上必要とされる処理時間の基準を満たす範囲内で、複数のユニットブロック1602を実行することが可能である。すなわち、いくつかのユニットブロック1602の推定処理時間を加算して、それが制御上の基準の範囲内であれば、それらのユニットブロック1602を結合し、それをプロセッサ別プログラム1802とすることができる。ただし、ユニットブロック1602を結合するとき、特定のプロセッサに処理負荷が集中しないように、プロセッサの性能に応じた最適な負荷配分がされていることが望ましい。そこで、ユニットブロック結合手段1801eは、このように処理負荷の配分が最適になるように、ユニットブロック1801eを結合して、プロセッサ別プログラム群1803を生成する。すなわち、個々のプロセッサの能力をオーバーしないよう、かつ、最大時間を要するプロセッサの処理時間が最小になるように処理負荷を配分する。
【0068】
図29には、上記のプロセッサ別モジュール分割手段1801によって、機能別プログラムモジュール1601を分割して、プロセッサ別プログラム群1802を生成した例を示す。ここでは、機能別プログラムモジュール1601に含まれる3個のユニットブロック1901、1902、1903から、2個のプロセッサ別プログラム1904、1905を生成した例を示している。
【0069】
既述の図10、図11、図12に示したシーケンス制御プログラムを例に取って説明すると、これらのプログラムを実行するシーケンス制御プロセッサが1個であり、これらのプログラムの全てを実行した場合のスキャンタイムが所定の時間以内であれば、これらのプログラムを一つのシーケンス制御プログラムとして結合する。これに対し、例えばシーケンス制御プロセッサが2個の場合、例えば、図10を一つのプログラム、図11と図12を結合して一つのプログラムとし、これら二つのプログラムをそれぞれのシーケンス制御プロセッサに対して出力する。
【0070】
なお、上記図1に示したユニットブロック結合手段1801eにおいて生成されるプロセッサ別プログラム1802は、さらに、その出力先となるプロセッサで実行可能な形式のプログラムコードに変換する必要があることも想定される。このような場合、ユニットブロック結合手段1801eの後に、各プロセッサ用言語に変換するためのプロセッサ別のコード変換手段を予め設けることで対応することができる。
【0071】
続いて、図30には、以上のようにしてセル制御プログラム102(図9を参照)から生成されたプロセッサ別プログラム群1803(図1を参照)、すなわち、シーケンス制御プロセッサ用プログラム群110、ロボット制御プロセッサ用プログラム群111、画像処理プロセッサ用プログラム群112(図2を参照)を解釈実行し、セルを制御するFAコントローラの一例を示す。なお、この図30に示されるコントローラは、シーケンス制御プロセッサ群113、ロボット制御プロセッサ群114、画像処理プロセッサ群115を共有バス2004によって結合した、いわゆる、マルチプロセッサ型コントローラ2001を構成している。また、図中の符号2014はセルを示しており、このセルは、周辺機器(I/O)2011、ロボット2012、視覚センサ2013を含んでいる。
【0072】
この図の構成において、シーケンス制御プロセッサ2005は、共有バス2004とのインタフェースであるバスドライバ2005d、さらに、シーケンス制御プロセッサ用プログラムを解釈実行する演算手段2005aなどを含んで構成されており、また、I/Oインタフェース2008を介して、その制御対象である周辺機器(I/O)2011に接続されている。
【0073】
ロボット制御プロセッサ2006は、バスドライバ2006f、ロボットの手先の位置姿勢を教示するための教示手段2006b、ロボット制御プロセッサ用プログラムを解釈実行する演算手段2006aなどから構成され、モータ駆動回路2009を介して、その制御対象であるロボット2012に接続される。
【0074】
そして、画像処理プロセッサ2007は、バスドライバ2007f、基準画像を教示するための教示手段2007b、画像処理プロセッサ用プログラムを解釈実行する演算手段2007aなどから構成され、画像インタフェース2010を介して、工業用テレビカメラなどで構成される視覚センサ2013に接続されている。
【0075】
さらに、上記のシーケンス制御プロセッサ群113、ロボット制御プロセッサ群114、画像処理プロセッサ群115で実行されるプログラムには、機器の動作タイミングに関する情報が組み込まれており、各プログラムを実行する際に、このような動作タイミングの同期を取るためには、各プロセッサの間で必要なデータを共有する必要がある。そこで、各プロセッサがアクセスできる共有バス2004には、共有データ記憶手段2003が接続されている。
【0076】
図31には、上記共有データ記憶手段2003に格納される共有データ2101の構成を示す。先に述べたように、セル制御プログラム102(図9を参照)では、各ユニットの動作シーケンスを状態遷移の考え方に基づいて記述しているので、それから生成された各プログラムを実行する際にも、活性化された状態NO.を各プロセッサの間で共有することによって、ユニットの動作タイミングの同期をとることができる。そこで、共有データ2101には、ユニット別状態データ2102として、活性化された状態NO.2101aと、その実行ステータス2102b(活性化状態に関するより詳細な情報)が格納されている。各プロセッサは、それぞれのプログラムを実行中に、このユニット別状態データ2102にアクセスすることで、各プログラム中に記述された動作タイミングの同期をとることができる。また、共有データ2101には、ユニット別状態データ2102の他に、各プロセッサ間で共有すべき各種データを、共有変数2103として格納することができる。
【0077】
なお、上記の図30に示したマルチプロセッサ型コントローラ2001は、通信手段2002によって、例えばパーソナルコンピュータなどのホストコンピュータ2015と接続される。このホストコンピュータ2015には、セル制御プログラム編集手段101(図2を参照)や機能別モジュール分離変換手段103、プロセッサ別モジュール分割手段1801のソフトウェアを搭載することが可能であり、ここで作成されたプログラムは、上記の通信手段2002によって各プロセッサに送信することができる。
【0078】
また、図32は、上記図30に示したマルチプロセッサ型コントローラ2001とは異なり、従来の一般的な構成を持つFAシステムの制御装置の構成を示すものである。すなわち、セル2207を制御するために、プログラマブルコントローラ2201、ロボットコントローラ2202、画像処理装置2203をネットワーク2208で接続した例である。このように幾つかのコントローラを組み合わせた構成の場合でも、図31に示したような共有データ2101を、ネットワーク2208を通じて、それぞれのコントローラ同士で交換し、共有することで、ユニット間の動作タイミングの同期をとることができる。よって、本発明の制御方法は、従来型の構成を持つ制御装置にも適用することが可能である。
【0079】
また、図33には、さらに別の構成を持つFAシステムの制御装置を示す。これは複数のマルチプロセッサ型コントローラ2301、2302をネットワーク2306で接続したもので、この場合でも、各コントローラが、ネットワーク2306を経由して、図31に示したような共有データ2101を交換することで、ユニット間の同期を取ることができ、よって、図33のようなセル集合2305、つまり、より規模の大きいFAシステムに対しても、本発明は適用可能であることが理解される。
【0080】
さらに、上記の図30に示したようなマルチプロセッサ型コントローラ2001と、上記の図32に示したような従来型のコントローラが混在した制御システムの場合でも、上記の図33と同様にして、本発明は適用可能である。なお、上記した実施の形態の例では、自動機械としてロボットを含んだセルを対象としたが、ロボット以外の自動機械、例えばNC工作機械などを含んだセルに対しても、同様にして本発明を適用することは可能である。
【0081】
また、上記の例ではプログラミング可能な周辺機器として視覚センサを含んだセルを対象としたが、視覚センサ以外のプログラミング可能な周辺機器を含んだセルに対しても、同様にして本発明を適用することは可能である。加えて、上記の実施の形態では、通常のFAシステムを対象としたが、さらに、複数のマニピュレータ、センサ、周辺機器などから構成される知能ロボットシステムに対しても、同様にして本発明を適用することは可能であり、それ故、本発明におけるFAシステムとは、かかる知能ロボットシステムをも含む概念である。
【0082】
【発明の効果】
以上の詳細な説明からも明らかなように、本発明によれば、ユーザが、ロボットなどの自動機械と視覚センサなどのプログラミング可能な周辺機器を含む複数機器を組み合わせて、FAシステムを構築する際に、各機器を制御するプログラムをセル制御プログラムとして一本化して記述することができることはもちろんのこと、さらに、このセル制御プログラムから、FAシステムの制御装置のプロセッサの構成と性能に応じて、各プロセッサの処理負荷の配分が最適となるように、各プロセッサ用のプログラムを自動的に生成することができるので、従来のように制御装置の構成に応じて複数のプログラムを作成したり、幾つものプログラミング言語を習得したりする必要がなくなり、その結果として、FAシステムの制御プログラムの開発効率を向上することができるという効果を発揮する。
【図面の簡単な説明】
【図1】本発明の特徴点であるFAシステムの制御装置におけるプロセッサ別モジュール分割手段のプロセッサ別プログラム生成の処理プロセスを示す図である。
【図2】本発明の実施の形態になるFAシステムの制御装置における処理プロセスを模式的に示すブロック図である。
【図3】上記図2のセル制御プログラム編集手段における端末の画面表示の一例を示す図である。
【図4】上記本発明を適用した電子部品挿入作業の一部を表すペトリネットの一例を示す図である。
【図5】上記図4の電子部品挿入作業における部品挿入直前の様子を示す図である。
【図6】上記図4の電子部品挿入作業における部品挿入直後の様子を示す図である。
【図7】上記図4のペトリネットをコード化したセル制御プログラムのcellブロックを示す図である。
【図8】上記図4のペトリネットをコード化したセル制御プログラムのdefブロックを示す図である。
【図9】上記図2の機能別モジュール分離変換手段において、機能別プログラムモジュールを生成する処理プロセスを示すブロック図である。
【図10】上記図7及び図8に示したセル制御プログラムから生成したシーケンス制御プログラムの一部(ROB1のユニットブロック)を示す図である。
【図11】上記図7及び図8に示したセル制御プログラムから生成したシーケンス制御プログラムの一部(ROB2のユニットブロック)を示す図である。
【図12】上記図7及び図8に示したセル制御プログラムから生成したシーケンス制御プログラムの一部(CAM1及びCAM2のユニットブロック)を示す図である。
【図13】上記図7及び図8に示したセル制御プログラムから生成したロボット制御プログラムの一例を示す図である。
【図14】上記図7及び図8に示したセル制御プログラムから生成した画像処理プログラムの一例を示す図である。
【図15】上記図9に示す機能別モジュール分離変換手段の処理の概略を示すフローチャートである。
【図16】上記図15に示すフローの機能別データ抽出処理の詳細を示すフローチャートである。
【図17】上記図16に示すフローの1プレース毎のネット構造解析処理の詳細を示すフローチャートの前半部分である。
【図18】上記図16に示すフローの1プレース毎のネット構造解析処理の詳細を示すフローチャートの後半部分である。
【図19】上記図16に示すフローの1プレース毎のコマンド列解析処理の詳細を示すフローチャートである。
【図20】上記図16に示すフローの1プレース毎の終了条件解析処理の詳細を示すフローチャートである。
【図21】上記図15に示すフローのシーケンス制御プログラム生成処理の詳細を示すフローチャートの前半部分である。
【図22】上記図15に示すフローシーケンス制御プログラム生成処理の詳細を示すフローチャートの後半部分である。
【図23】上記図15に示すフローのロボット制御プログラム生成処理の詳細を示すフローチャートである。
【図24】上記図15に示すフローの画像処理プログラム生成処理の詳細を示すフローチャートである。
【図25】上記図9に示した機能別モジュール分離変換手段によって、セル制御プログラムからシーケンス制御プログラムとロボット制御プログラムを生成する処理プロセスの一例を示す図である。
【図26】上記図9に示した機能別モジュール分離変換手段によって、セル制御プログラムからシーケンス制御プログラムと画像処理プログラムを生成する処理プロセスの一例を示す図である。
【図27】上記図1に示した機能別プログラムモジュールのブロック構成を示す図である。
【図28】上記図1に示した機能別プログラムモジュールのコード実行手順を示すフロー図である。
【図29】上記図2に示した機能別プログラムモジュールからプロセッサ別プログラム群を生成する処理プロセスの一例を示す図である。
【図30】本発明を適用した一実施の形態になる制御装置(マルチプロセッサ型コントローラ)の構成を示すブロック図である。
【図31】上記図30に示した制御装置における共有データの構成を示す図である。
【図32】本発明を適用した他の実施の形態になる制御装置(従来型のコントローラを組み合わせた制御システム)の構成を示す図である。
【図33】本発明を適用したさらに他の実施の形態になる制御装置(マルチプロセッサ型コントローラを複数個組み合わせた制御システム)の構成を示す図である。
【符号の説明】
101 セル制御プログラム編集手段
102 セル制御プログラム
103 機能別モジュール分離変換手段
103a 機能別データ抽出手段
103b ネット構造
103c 状態終了条件
103d I/O制御命令列
103e ロボット制御命令列
103f ロボット動作タイミング
103g 画像処理命令列
103h 画像処理タイミング
103i シーケンス制御プログラム生成手段
103j ロボット制御プログラム生成手段
103k 画像処理プログラム生成手段
104 シーケンス制御プログラムモジュール
105 ロボット制御プログラムモジュール
106 画像処理プログラムモジュール
107 シーケンス制御プロセッサ別モジュール分割手段
108 ロボット制御プロセッサ別モジュール分割手段
109 画像処理プロセッサ別モジュール分割手段
110 シーケンス制御プロセッサ用プログラム群
111 ロボット制御プロセッサ用プログラム群
112 画像処理プロセッサ用プログラム群
113 シーケンス制御プロセッサ群
114 ロボット制御プロセッサ群
115 画像処理プロセッサ群
116 セル
116a、116b ロボット
116c、116d 視覚センサ
116e、116f 周辺機器
1601 機能別プログラムモジュール
1801 プロセッサ別モジュール分割手段
1801a ユニットブロック分割手段
1801b ユニットブロック群
1801c プロセッサ構成及び性能データ
1801d ユニットブロック処理時間推定及び結合手段
1801e ユニットブロック結合手段
1802 プロセッサ別プログラム
1803 プロセッサ別プログラム群[0001]
BACKGROUND OF THE INVENTION
BACKGROUND OF THE
[0002]
[Prior art]
2. Description of the Related Art An FA (Factory Automation) system configured by a plurality of devices including an automatic machine such as a robot and programmable peripheral devices such as a visual sensor has already been widely known and put into practical use. Such a conventional FA system and its control method generally include a programmable controller that controls input / output (hereinafter abbreviated as “I / O”) of various devices, a robot controller that controls a robot, an image processing apparatus, and the like. Are connected by parallel I / O or a network, and each device constituting the FA system is controlled. In the control of the FA system which is the conventional technique, different control devices (for example, a programmable controller, a robot controller, an image processing device, etc.) are used in combination for each control target of each device, and for each control device. I used a different programming language.
[0003]
For this reason, when constructing an FA system, it is necessary to learn several different programming languages, and in order to control a single FA system, these different programming languages are used and related to each other. I had to create multiple programs. Further, as the functions of the FA system become more sophisticated, the configuration of the control device of the FA system becomes complicated, and it takes a lot of labor to create the program. This has been a major impediment to improving the development efficiency of programs that control FA systems.
[0004]
Conventionally, as a solution to the above-described problems, for example, according to Japanese Patent Laid-Open No. 7-84768, a method for controlling an FA system that creates a program for operating FA devices in one integrated form Is described. In order to solve the above-described problems, for example, according to Japanese Patent Application Laid-Open No. 7-72920, a FA system control method that collectively describes FA system control programs has been proposed.
[0005]
That is, the FA system control method described in Japanese Patent Laid-Open No. 7-84768, which is the former of the above-described prior art, is for operating FA devices such as robots and image processing apparatuses in a single programming language. Are integrated into a program executed by a programmable controller, a robot controller, and an image processing apparatus. The integrated program described here is a so-called extended ladder program in which a robot program and an image processing program are added in the form of a subroutine to a ladder program of a conventional programmable controller. , A robot program, and an image processing program.
[0006]
Further, the FA system control method described in the latter prior art, Japanese Patent Laid-Open No. 7-72920, includes a sequence control program and a robot control program from a control program that collectively describes the work of the FA system. It is generated automatically. The FA system control program described here expresses the work specifications of the FA system as a whole in a programming language using Petri nets.
[0007]
[Problems to be solved by the invention]
However, although the control method and control program of the FA system proposed by the above-mentioned prior art are effective in improving the efficiency of program development accompanying the advancement of the functions of the FA system, the following problems are pointed out: The point was not mentioned.
[0008]
That is, as the functions of the FA system become more advanced, when distributed coordination by a plurality of control devices or control processors advances, the FA system control methods and control programs proposed by the above two conventional technologies In addition to simply separating the program into functions such as sequence control and robot control, each control device can be optimized to distribute the processing load according to the configuration and performance of the control device and control processor. It becomes necessary to divide the program for each or each processor. For example, in a control system in which a plurality of sequence control processors, robot control processors, and image processing processors are combined, a complex FA system can be constructed if optimum program division for each processor can be automatically performed. In this case, the user can unify and create a more efficient control program for the FA system without being aware of the hardware configuration of the control system.
[0009]
Therefore, in the present invention, in view of the above-mentioned problems in the prior art, further, based on the recognition of the prior art by the inventors, that is, it is only possible to create a control program for the FA system in a unified manner. Furthermore, an object of the present invention is to provide a control apparatus and method for an FA system that enables the FA system to be more efficiently controlled by a control program that is created, and a method for generating a control program in such a system. To do.
[0010]
[Means for Solving the Problems]
In order to achieve the above object of the present invention, according to the present invention, an FA system comprising a plurality of cells, each including at least an automatic machine and a programmable peripheral device associated with the automatic machine. A control device, for each of the plurality of cells, a cell control program in which work specifications of the entire cell are described in the same language, and from the cell control program, the operation sequence of the automatic machine and peripheral devices Based on the programs related to control, the program related to the operation control of the automatic machine, the separation conversion means for converting to the program related to the control of the programmable peripheral device, and the respective programs separated and converted by the separation conversion means, The operation of the automatic machine and the programmable peripheral device constituting the cell are respectively controlled. A plurality of processor means, and the separation conversion means further distributes the processing load in the plurality of processor means respectively controlling at least the operation of the automatic machine or the programmable peripheral device. There has been proposed a control device for an FA system provided with distribution means.
[0011]
Also, according to the present invention, in order to achieve the above-described object of the present invention, each of the plurality of cells includes at least an automatic machine and a programmable peripheral device related to the automatic machine. In the control method for controlling the FA system, the devices constituting at least one cell of the plurality of cells are controlled by a plurality of processors, respectively, so that the work specifications of the entire cell are described in the same language and the cell control is performed. A program is created, and from the created cell control program, a program relating to control of the work order of the automatic machine and peripheral devices, a program relating to operation control of the automatic machine, and a program relating to control of the programmable peripheral device Separation conversion is performed, and the cell is configured based on each of the separation conversion programs. A method of controlling an FA system in which operations of the automatic machine and the programmable peripheral device are controlled by the plurality of processors, respectively, and at the time of separate conversion of the program, at least the automatic machine or the programmable A FA system control method has been proposed in which processing loads are distributed among the plurality of processors that control the operation of peripheral devices.
[0012]
Furthermore, according to the present invention, in order to achieve the above-mentioned object of the present invention, each of the plurality of cells includes at least an automatic machine and a programmable peripheral device related to the automatic machine. In the FA system, a FA system control program generation method for generating a control program for controlling a device constituting at least one cell of the plurality of cells by a plurality of processors, A work control is written in the same language to create a cell control program, from the created cell control program, a program related to control of the work order of the automatic machine and peripheral devices, a program related to operation control of the automatic machine, Automatically separate conversion into programmable peripheral control program And, at least the automatic machine or the control program generating method of automatically performing FA system the distribution of the processing load in each of said plurality of processors for controlling the operation of said programmable peripheral device have been proposed.
[0013]
In addition, according to the present invention, the above object is achieved in a method for controlling an FA system including a plurality of units (cells) including an automatic machine including a robot and programmable peripheral devices such as visual sensors. Directly describes work specifications for the entire cell, information related to control of work order of the multiple devices, information related to input / output control of the multiple devices, information related to operation control of the automatic machine, and the programmable From a cell control program having information relating to control of peripheral devices and information relating to operation timing for synchronization between the plurality of devices, information relating to the work order of the plurality of devices by the module separation / conversion means by function, Separate and extract information related to output control to control the work order of the multiple devices and the input / output A sequence control program module in which processing is described is generated, and processing for performing positioning and trajectory control of the automatic machine by separating and extracting information related to the operation control and operation timing of the automatic machine is described. Peripheral device in which a process for generating the automatic machine control program module, and controlling and controlling the programmable peripheral device is described by separating and extracting information on the control of the programmable peripheral device and the operation timing. A control program module is generated, and the sequence control program module, automatic machine control program module, and peripheral device control program module are respectively divided into sequence control processor-specific module dividing means, automatic machine control processor-specific module dividing means, and peripheral devices. Based on the configuration and performance of the processor that controls the cell, the module dividing means for each processor divides the program module so that the distribution of the processing load of each processor is optimal, and further divides the divided program module into each program module. The program is converted into a program executable by the processor to generate a sequence control processor program group, an automatic control processor program group, and a peripheral device control processor program group. This is achieved by the control method of the FA system that outputs to the processor group that performs interpretation.
[0014]
That is, according to the present invention, when constructing a unit element (hereinafter referred to as a cell) that constitutes a single unit constituting an FA system, an automatic machine such as a robot and a visual sensor included in the cell are programmed. A program for controlling possible peripheral devices and other devices is described as a single cell control program. Further, from this cell control program, each processor is controlled according to the configuration and performance of the processor of the control device of the FA system. By automatically generating a program for each processor to optimize the processing load distribution, you can create multiple programs according to the configuration of the controller as in the past, and learn several programming languages. As a result, the development efficiency of the FA system control program can be improved. The method of the FA system can be provided.
[0015]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. FIG. 2 is a block diagram schematically showing a processing process in the FA system control apparatus according to the present invention. In general, the FA system is composed of a plurality of devices including a robot which is an automatic device, and each of the plurality of devices is called a “cell” as a unit of the plurality of devices. In the case of FIG. 2, the
[0016]
When creating a program for controlling the operation of the
[0017]
The
[0018]
This
[0019]
These function-specific program modules are program modules according to the configuration of the control processors (programmable controllers, robot controllers, and other independent controllers are considered to be control processors in a broad sense). Converted. That is, according to the present invention, assuming that the control device of the
[0020]
The sequence control processor-
[0021]
FIG. 3 shows an example of the screen display of the terminal in the cell control program editing means 101 among the constituent requirements of the control device of the FA system shown in FIG. As shown in the figure, the cell control program editing means 101 has a graphical user interface for editing an operation sequence in the
[0022]
In the
[0023]
FIG. 4 shows an example of a Petri net created by the cell control
[0024]
These operations shown in FIGS. 5 and 6 involve inserting an
[0025]
4 is roughly divided into the
[0026]
Next, the
[0027]
The outline of the operation sequence shown in FIG. 4 will be described below. First, when the
[0028]
Next, FIG. 7 and FIG. 8 show the result of editing the Petri net of FIG. 4 by the cell control program editing means 101 described in FIG. 3 and coding it, that is, the cell control program of FIG. An example of 102 is shown. As is clear from the figure, the
[0029]
The detailed contents of the
[0030]
In addition, end conditions for each state are defined in the def block of FIG. The
[0031]
As described above, as shown in FIG. 4, the operation sequence of each device can be described structurally and explicitly by applying the Petri net expression to the description of the
[0032]
According to the present invention, the
[0033]
FIG. 9 shows a processing process of the function-based module separation / conversion means 103. As shown in FIG. 7 and FIG. 8 above, the cell block of the
[0034]
The function-specific data extraction means 103a of the function-specific module separation / conversion means 103 first extracts the
[0035]
The function-specific
[0036]
Similarly, the function-specific
[0037]
10, FIG. 11, and FIG. 12 show the sequence control program module generated by the function-specific module separation / conversion means 103 shown in FIG. 9 from the
[0038]
As a programming language for sequence control, in addition to the rule type programming language as in this example, a programming language such as a ladder diagram can be used. It will be obvious to those skilled in the art that 103 generates a ladder program as the sequence
[0039]
FIG. 13 shows an example of the robot
[0040]
FIG. 14 shows an example of the image
[0041]
Further, FIGS. 15 to 24 show flowcharts for explaining the details of the processing of the function-based module separation / conversion means 103.
First, FIG. 15 shows an outline of the function-specific module separation / conversion process in the function-specific module separation / conversion means 103. In this function-specific module separation / conversion process, when the process starts, first, the cell control program is analyzed to extract function-specific data (process 1100a), and a function-specific module is generated based on the data obtained here. To do. That is, the sequence control
[0042]
FIG. 16 shows details of the function-specific data extraction process 1100a of the function-specific module separation conversion process shown in FIG.
In this function-specific data extraction process 1100a, when the process starts, code analysis is performed in the order of the cell block and def block of the cell control program, and necessary data extraction is performed. First, in the analysis of the cell block, an operation timing 103f for each robot and a data area for storing the robot
[0043]
Next, FIGS. 17 and 18 show details of the net structure analysis processing 101d for each place.
In the net structure analysis process 101d for each place, first, a net structure data area for each place is secured (
[0044]
On the other hand, in the analysis of the transition condition expression of FIG. 18, first, the state number is changed from the transition condition expression 602 (S105: OK1 REQ6: OK in the example of FIG. 7). (S105) and the end condition (OK1) are extracted and stored as net structure data (
[0045]
As described above, by the net structure analysis processing shown in FIGS. 17 and 18, the connection relation of each place of the Petri net equivalent to the given cell control program, that is, information of the
[0046]
Next, FIG. 19 shows the details of the command string analysis 101e for each place. Here, the cell 601 (refer to FIG. 7) and the
First, one command is extracted from the block of the command string 603 (
[0047]
FIG. 20 shows details of the end condition analysis 101g for each place. Here, the end condition of each place (state) defined in the def block of the cell control program is analyzed.
First, an area for storing the end condition data for each place is secured (
[0048]
21 and 22 show details of the sequence control program generation process 100b. Here, a sequence control program is generated for each unit based on the data of the
First, a program buffer area for each unit is secured (
[0049]
Therefore, first, the place type is acquired from the net structure data for each place (process 1106b). If the place is a status place (
[0050]
If the current place is a status place (process 1106l), it is checked whether there is a synchronous place connected to the current place. If there is a synchronous place (
[0051]
Next, as an execution unit of the
[0052]
FIG. 23 shows details of the robot control program generation processing 100c.
First, a program buffer area for each unit is secured (
[0053]
FIG. 24 shows details of the image processing program generation processing 100d. As is clear from the figure, here, the
[0054]
Next, FIG. 25 shows a procedure for generating the
[0055]
[0056]
The
[0057]
From the
[0058]
At the same time, from the
[0059]
Further, the I / O
[0060]
FIG. 26 shows a procedure for generating the
[0061]
The function-specific program modules generated by the function-specific module separation / conversion means 103 as described above have a common program structure, and the structure is shown in FIG. That is, as shown in FIG. 27, in the program structure, the function-
[0062]
For example, the sequence control program illustrated in FIG. 11 is the
[0063]
The block structure of the function-
[0064]
Next, FIG. 28 shows the execution procedure of this processor-specific program. In the processing flow shown in FIG. Is read from the program control data (process 1701). Jump to the unit label having the same number as (Step 1702). Next, the activated state NO. Is read (process 1703) and jumps to the state label (process 1704). The instruction sequence following this status label is executed in order (
[0065]
Next, FIG. 1 shows a processing process of a so-called processor
[0066]
Here, the processor configuration and the performance data (processor configuration and performance data) 1801c that actually control the device, that is, how many control processors are used and in what form they are connected. The processing time of each unit block 1602 (see FIG. 27) is estimated on the basis of the information related to this and the information related to the processing time of the program code of the control processor, and the processing time required for control (for example, , Whether the scan time in sequence control, sampling period in robot control, etc.) are satisfied. This is performed by the unit block processing time estimation / evaluation means 1801d, whereby data relating to the processing time of each
[0067]
Next, the unit
[0068]
FIG. 29 shows an example in which the function-
[0069]
The sequence control program shown in FIGS. 10, 11, and 12 will be described as an example. When there is one sequence control processor that executes these programs, all of these programs are executed. If the scan time is within a predetermined time, these programs are combined as one sequence control program. On the other hand, when there are two sequence control processors, for example, FIG. 10 is combined into one program, and FIGS. 11 and 12 are combined into one program, and these two programs are assigned to the respective sequence control processors. Output.
[0070]
It is assumed that the processor-
[0071]
Next, FIG. 30 shows a processor-specific program group 1803 (see FIG. 1) generated from the cell control program 102 (see FIG. 9) as described above, that is, a sequence control
[0072]
In the configuration of this figure, the
[0073]
The
[0074]
The
[0075]
Furthermore, the programs executed by the sequence
[0076]
FIG. 31 shows the configuration of shared
[0077]
Note that the
[0078]
FIG. 32 shows a configuration of a control device of an FA system having a conventional general configuration, unlike the
[0079]
FIG. 33 shows an FA system control apparatus having still another configuration. In this case, a plurality of
[0080]
Further, even in the case of a control system in which the
[0081]
Further, in the above example, a cell including a visual sensor is targeted as a programmable peripheral device, but the present invention is similarly applied to a cell including a programmable peripheral device other than the visual sensor. It is possible. In addition, in the above embodiment, a normal FA system is targeted, but the present invention is similarly applied to an intelligent robot system including a plurality of manipulators, sensors, peripheral devices, and the like. Therefore, the FA system in the present invention is a concept including such an intelligent robot system.
[0082]
【The invention's effect】
As is clear from the above detailed description, according to the present invention, when a user constructs an FA system by combining an automatic machine such as a robot and a plurality of devices including programmable peripheral devices such as a visual sensor. In addition, the program for controlling each device can be described as a single cell control program, and further, from this cell control program, according to the configuration and performance of the processor of the control device of the FA system, Since the program for each processor can be automatically generated so that the distribution of the processing load of each processor is optimal, a plurality of programs can be created according to the configuration of the control device as in the prior art. As a result, it is no longer necessary to learn a programming language. To exert the effect that it is possible to improve the efficiency.
[Brief description of the drawings]
FIG. 1 is a diagram showing a processing process of generating a program for each processor of a module dividing unit for each processor in a control device of an FA system, which is a feature of the present invention.
FIG. 2 is a block diagram schematically showing a processing process in the control device of the FA system according to the embodiment of the present invention.
3 is a diagram showing an example of a screen display of a terminal in the cell control program editing means of FIG.
FIG. 4 is a diagram showing an example of a Petri net representing a part of the electronic component insertion work to which the present invention is applied.
5 is a diagram showing a state immediately before component insertion in the electronic component insertion work of FIG. 4; FIG.
6 is a diagram showing a state immediately after component insertion in the electronic component insertion work of FIG. 4; FIG.
7 is a diagram showing a cell block of a cell control program in which the Petri net of FIG. 4 is coded. FIG.
8 is a diagram showing a def block of a cell control program in which the Petri net shown in FIG. 4 is coded.
FIG. 9 is a block diagram showing a processing process for generating a function-specific program module in the function-specific module separation / conversion means of FIG. 2;
10 is a diagram showing a part of a sequence control program (unit block of ROB1) generated from the cell control program shown in FIGS. 7 and 8; FIG.
11 is a diagram showing a part of a sequence control program (unit block of ROB 2) generated from the cell control program shown in FIGS. 7 and 8; FIG.
12 is a diagram showing a part of the sequence control program (CAM1 and CAM2 unit blocks) generated from the cell control program shown in FIGS. 7 and 8; FIG.
13 is a diagram showing an example of a robot control program generated from the cell control program shown in FIGS. 7 and 8. FIG.
14 is a diagram showing an example of an image processing program generated from the cell control program shown in FIGS. 7 and 8. FIG.
15 is a flowchart showing an outline of processing of the function-based module separation / conversion means shown in FIG.
FIG. 16 is a flowchart showing details of function-specific data extraction processing in the flow shown in FIG. 15;
FIG. 17 is the first half of a flowchart showing details of the net structure analysis processing for each place in the flow shown in FIG. 16;
18 is the latter half of the flowchart showing details of the net structure analysis processing for each place in the flow shown in FIG.
FIG. 19 is a flowchart showing details of command sequence analysis processing for each place in the flow shown in FIG. 16;
20 is a flowchart showing details of an end condition analysis process for each place in the flow shown in FIG.
FIG. 21 is the first half of a flowchart showing details of the sequence control program generation process of the flow shown in FIG. 15;
22 is the latter half of the flowchart showing the details of the flow sequence control program generation process shown in FIG.
23 is a flowchart showing details of the robot control program generation process of the flow shown in FIG.
24 is a flowchart showing details of image processing program generation processing in the flow shown in FIG.
25 is a diagram showing an example of a processing process for generating a sequence control program and a robot control program from a cell control program by the function-based module separation / conversion means shown in FIG. 9;
FIG. 26 is a diagram showing an example of a processing process for generating a sequence control program and an image processing program from a cell control program by the function-based module separation / conversion unit shown in FIG. 9;
FIG. 27 is a diagram showing a block configuration of the function-specific program module shown in FIG. 1;
28 is a flowchart showing a code execution procedure of the function-specific program module shown in FIG.
29 is a diagram showing an example of a processing process for generating a processor-specific program group from the function-specific program modules shown in FIG.
FIG. 30 is a block diagram showing a configuration of a control device (multiprocessor controller) according to an embodiment to which the invention is applied.
FIG. 31 is a diagram showing a configuration of shared data in the control device shown in FIG. 30;
FIG. 32 is a diagram showing a configuration of a control device (control system combining a conventional controller) according to another embodiment to which the present invention is applied.
FIG. 33 is a diagram showing a configuration of a control device (control system in which a plurality of multiprocessor controllers are combined) according to still another embodiment to which the present invention is applied.
[Explanation of symbols]
101 Cell control program editing means
102 Cell control program
103 Function-specific module separation / conversion means
103a Function-specific data extraction means
103b Net structure
103c Condition end condition
103d I / O control instruction sequence
103e Robot control instruction sequence
103f Robot operation timing
103g Image processing instruction sequence
103h Image processing timing
103i Sequence control program generation means
103j Robot control program generating means
103k image processing program generation means
104 Sequence control program module
105 Robot control program module
106 Image processing program module
107 Module division means by sequence control processor
108 Module division means by robot control processor
109 Module dividing means for each image processor
110 Program group for sequence control processor
111 Program group for robot control processor
112 Image processor program group
113 Sequence control processor group
114 Robot control processor group
115 Image processing processors
116 cells
116a, 116b Robot
116c, 116d visual sensor
116e, 116f Peripheral devices
1601 Function-specific program modules
1801 Module division means by processor
1801a Unit block dividing means
1801b unit block group
1801c Processor configuration and performance data
1801d Unit block processing time estimation and combining means
1801e Unit block coupling means
1802 Programs by processor
1803 Program group by processor
Claims (7)
前記セル全体としての作業仕様を同一言語で記述したセル制御プログラムと、
前記セル制御プログラムから、前記自動機械と周辺機器の作業順序の制御に関するプログラムと、前記自動機械の動作制御に関するプログラムと、前記プログラミング可能な周辺機器の制御に関するプログラムとに分離変換する分離変換手段と、
前記分離変換手段により分離変換された各プログラムに基づいて、当該セルを構成する前記自動機械と前記プログラミング可能な周辺機器の動作をそれぞれ制御する複数のプロセッサ手段と、
を備えており、前記分離変換手段は、さらに、少なくとも前記自動機械あるいは前記プログラミング可能な周辺機器の動作をそれぞれ制御する複数の前記プロセッサ手段における処理負荷の配分を行う処理負荷配分手段を備えていることを特徴とするFAシステムの制御装置。Each of the control devices of the FA system composed of a plurality of cells, each including at least an automatic machine and a programmable peripheral device related to the automatic machine, each of the plurality of cells,
A cell control program describing the work specifications of the entire cell in the same language;
Separation and conversion means for separating and converting from the cell control program into a program related to control of the work order of the automatic machine and peripheral equipment, a program related to operation control of the automatic machine, and a program related to control of the programmable peripheral equipment; ,
A plurality of processor means for controlling the operations of the automatic machine and the programmable peripheral device constituting the cell based on each program separated and converted by the separation conversion means;
The separation conversion unit further includes a processing load distribution unit that distributes a processing load among a plurality of the processor units that respectively control operations of at least the automatic machine or the programmable peripheral device. A FA system control device.
当該セルを構成する前記自動機械あるいは前記プログラミング可能な周辺機器の動作をそれぞれ制御する複数のプロセッサ手段の構成あるいは性能に関するデータを提供する手段とを備え、
前記ユニット毎に分解されたプログラムの処理時間を評価する手段は、前記データ提供手段からのプロセッサ手段の構成あるいは性能に関するデータを基にして評価するように構成されていることを特徴とするFAシステムの制御装置。2. The FA system control apparatus according to claim 1, wherein the processing load distribution means of the separation conversion means further includes means for decomposing the separated and converted program for each unit, and a program decomposed for each unit. Means for evaluating processing time by the processor means;
Means for providing data relating to the configuration or performance of a plurality of processor means for controlling the operation of the automatic machine or the programmable peripheral device constituting the cell,
The FA system is characterized in that the means for evaluating the processing time of the program decomposed for each unit is configured to evaluate based on data relating to the configuration or performance of the processor means from the data providing means. Control device.
前記複数のセルの少なくとも1のセルを構成する機器をそれぞれ複数のプロセッサにより制御するため、前記セル全体としての作業仕様を同一言語で記述してセル制御プログラムを作成し、当該作成したセル制御プログラムから、前記自動機械と周辺機器の作業順序の制御に関するプログラムと、前記自動機械の動作制御に関するプログラムと、前記プログラミング可能な周辺機器の制御に関するプログラムとに分離変換し、前記分離変換した各プログラムに基づいて、当該セルを構成する前記自動機械と前記プログラミング可能な周辺機器の動作をそれぞれ前記複数のプロセッサにより制御するFAシステムの制御方法であって、当該プログラムの分離変換の際に、さらに、少なくとも前記自動機械あるいは前記プログラミング可能な周辺機器の動作を制御するそれぞれの前記複数のプロセッサにおける処理負荷の配分を行うことを特徴とするFAシステムの制御方法。In a control method for controlling an FA system comprised of a plurality of cells, each comprising at least an automatic machine and a programmable peripheral device associated with the automatic machine,
In order to control devices constituting at least one cell of the plurality of cells by a plurality of processors, a cell control program is created by describing work specifications as the whole cell in the same language, and the created cell control program To a program related to control of the work order of the automatic machine and peripheral devices, a program related to operation control of the automatic machine, and a program related to control of the programmable peripheral device, and Based on the FA system control method, wherein the operations of the automatic machine and the programmable peripheral device constituting the cell are controlled by the plurality of processors, respectively, at the time of separating and converting the program, The automatic machine or the programmable peripheral The method of FA system characterized by performing the allocation of processing load in each of the plurality of processors for controlling the operation of the vessel.
前記セル全体としての作業仕様を同一言語で記述してセル制御プログラムを作成し、
当該作成したセル制御プログラムから、前記自動機械と周辺機器の作業順序の制御に関するプログラムと、前記自動機械の動作制御に関するプログラムと、前記プログラミング可能な周辺機器の制御に関するプログラムとに自動的に分離変換し、そして、
少なくとも前記自動機械あるいは前記プログラミング可能な周辺機器の動作を制御するそれぞれの前記複数のプロセッサにおける処理負荷の配分を自動的に行う、
ことを特徴とするFAシステムの制御プログラム生成方法。In an FA system composed of a plurality of cells, each including at least an automatic machine and a programmable peripheral device related to the automatic machine, a plurality of devices each constituting at least one cell of the plurality of cells A FA system control program generation method for generating a control program to be controlled by a processor of
Create a cell control program by describing the work specifications of the entire cell in the same language,
The cell control program thus created is automatically separated and converted into a program related to control of the work order of the automatic machine and peripheral devices, a program related to operation control of the automatic machines, and a program related to control of the programmable peripheral devices. And then
Automatically allocating processing load in each of the plurality of processors that control operation of at least the automatic machine or the programmable peripheral device;
A method for generating a control program for an FA system.
前記セル全体としての作業仕様を直接記述し、前記複数機器の作業順序の制御に関する情報と、前記複数機器の入出力の制御に関する情報と、前記自動機械の動作制御に関する情報と、前記プログラミング可能な周辺機器の制御に関する情報と、前記複数機器間の同期をとるための動作タイミングに関する情報とを有するセル制御プログラムから、機能別モジュール分離変換手段によって、前記複数機器の作業順序に関する情報と、前記入出力の制御に関する情報を分離及び抽出して、前記複数機器の作業順序の制御と前記入出力の制御を行う処理が記述されたシーケンス制御プログラムモジュールを生成し、また、前記自動機械の動作制御と前記動作タイミングに関する情報を分離及び抽出して、前記自動機械の位置決め及び軌道の制御を行う処理が記述された自動機械制御プログラムモジュールを生成し、また、前記プログラミング可能な周辺機器の制御と前記動作タイミングに関する情報を分離及び抽出して、前記プログラミング可能な周辺機器の制御を行う処理が記述された周辺機器制御プログラムモジュールを生成し、さらにこのシーケンス制御プログラムモジュールと自動機械制御プログラムモジュールと周辺機器制御プログラムモジュールとを、それぞれシーケンス制御プロセッサ別モジュール分割手段と自動機械制御プロセッサ別モジュール分割手段と周辺機器制御プロセッサ別モジュール分割手段によって、前記セルを制御するプロセッサの構成と性能に基づいて、各プロセッサの処理負荷の配分が最適となるようなプログラムモジュールに分割し、さらにこれらの分割したプログラムモジュールを各プロセッサが実行可能な形式のプログラムに変換して、シーケンス制御プロセッサ用プログラム群と自動制御プロセッサ用プログラム群と周辺装置制御プロセッサ用プログラム群とを生成し、これらの各プロセッサ用プログラム群を、それぞれを解釈実行するプロセッサ群に対して出力することを特徴とするFAシステムの制御方法。In an FA system control method composed of a plurality of device units (cells) including an automatic machine such as a robot and a programmable peripheral device such as a visual sensor,
Directly describes work specifications for the entire cell, information related to control of work order of the multiple devices, information related to input / output control of the multiple devices, information related to operation control of the automatic machine, and the programmable From a cell control program having information relating to control of peripheral devices and information relating to operation timing for synchronization between the plurality of devices, information relating to the work order of the plurality of devices by the module separation / conversion means by function, Separating and extracting information related to output control, generating a sequence control program module describing processing for controlling the work order of the plurality of devices and controlling the input / output, and controlling the operation of the automatic machine Separating and extracting information on the operation timing to control the positioning and trajectory of the automatic machine A process for generating an automatic machine control program module in which processing is described, and controlling and controlling the programmable peripheral device by separating and extracting information on the control of the programmable peripheral device and the operation timing. The described peripheral device control program module is generated, and the sequence control program module, the automatic machine control program module, and the peripheral device control program module are divided into a sequence control processor-specific module dividing unit and an automatic machine control processor-specific module dividing unit, respectively. And the peripheral device control processor module dividing means, which divides the program modules into the program modules that optimize the distribution of the processing load of each processor based on the configuration and performance of the processor that controls the cell. The divided program modules are converted into a program executable by each processor to generate a sequence control processor program group, an automatic control processor program group, and a peripheral device control processor program group. A FA system control method comprising: outputting a program group to a processor group that interprets and executes each program group.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP33166695A JP3658061B2 (en) | 1995-12-20 | 1995-12-20 | FA system control device and method, control program generation method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP33166695A JP3658061B2 (en) | 1995-12-20 | 1995-12-20 | FA system control device and method, control program generation method |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09171405A JPH09171405A (en) | 1997-06-30 |
JP3658061B2 true JP3658061B2 (en) | 2005-06-08 |
Family
ID=18246229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP33166695A Expired - Fee Related JP3658061B2 (en) | 1995-12-20 | 1995-12-20 | FA system control device and method, control program generation method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3658061B2 (en) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000066706A (en) * | 1998-08-21 | 2000-03-03 | Matsushita Electric Ind Co Ltd | Robot controller and its control method |
JP3780732B2 (en) | 1999-03-10 | 2006-05-31 | 株式会社日立製作所 | Distributed control system |
JP4870956B2 (en) * | 2005-09-15 | 2012-02-08 | 株式会社リコー | Embedded program generation method, embedded program development system, and information table section |
JP2007199869A (en) * | 2006-01-24 | 2007-08-09 | Univ Nagoya | Automatic decentralization program and apparatus of device cooperation mechanism, and device cooperation mechanism |
JP4898365B2 (en) * | 2006-09-15 | 2012-03-14 | 株式会社リコー | Embedded program development apparatus and program automatic generation method |
EP2153322A1 (en) * | 2007-05-22 | 2010-02-17 | Philips Intellectual Property & Standards GmbH | Compiler and compiling method for a networked control system comprising a plurality of devices |
JP2008299763A (en) * | 2007-06-01 | 2008-12-11 | Hitachi Ltd | Distributed object development tool |
JP5170408B2 (en) * | 2008-03-31 | 2013-03-27 | 日本電気株式会社 | Automatic decentralized system and automatic decentralized method |
JP5479942B2 (en) * | 2010-02-22 | 2014-04-23 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Parallelization method, system, and program |
JP5605109B2 (en) * | 2010-09-14 | 2014-10-15 | 日本電気株式会社 | Program generating apparatus, method and program, and remote management system |
CN102591306B (en) | 2012-03-08 | 2013-07-10 | 南京埃斯顿机器人工程有限公司 | Dual-system assembly type industrial robot controller |
DE112013006915T5 (en) | 2013-04-08 | 2015-12-24 | Mitsubishi Electric Corp. | Program editing device, program editing method and program editing program |
JP2017134722A (en) | 2016-01-29 | 2017-08-03 | ファナック株式会社 | Manufacturing system for driving multiple kinds of manufacturing apparatuses in accordance with program of common language specification |
KR101906823B1 (en) | 2016-03-07 | 2018-12-05 | 주식회사 럭스로보 | Multi-module compilation system, multi-module compilation method, and non-transitory computer-readable storage medium |
JP7077848B2 (en) * | 2018-07-30 | 2022-05-31 | オムロン株式会社 | Control device |
CN115769187A (en) | 2020-07-07 | 2023-03-07 | 三菱电机株式会社 | Program creation assistance device |
-
1995
- 1995-12-20 JP JP33166695A patent/JP3658061B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH09171405A (en) | 1997-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3658061B2 (en) | FA system control device and method, control program generation method | |
JP3446256B2 (en) | Control method and apparatus for FA system | |
US5504902A (en) | Multi-language generation of control program for an industrial controller | |
JP5636378B2 (en) | Method and apparatus for creating a user program for a safety controller and computer program | |
US7734357B2 (en) | System for operating an installation by editing graphic objects | |
US5970243A (en) | Online programming changes for industrial logic controllers | |
EP0467629B1 (en) | A loop compiler method & apparatus for a data processing system | |
US6625500B1 (en) | Self-optimizing method and machine | |
US5367468A (en) | Design aid method and design aid apparatus for integrated circuits | |
CA2299995A1 (en) | Self-optimization with interactions | |
EP0184423B1 (en) | Universal process control device and method | |
US20210182101A1 (en) | Program generating device, program generating method, and information storage medium | |
US20200104103A1 (en) | Method for modifying models for generating source code | |
CN109683881A (en) | A kind of code format method of adjustment and device | |
KR102220139B1 (en) | Apparatus and method generating master pattern of PLC control logic | |
CN107295810B (en) | Engineering tools | |
Bourne | CML: a meta-interpreter for manufacturing | |
JP7067520B2 (en) | Development support equipment, control methods for development support equipment, information processing programs, and recording media | |
US20050166190A1 (en) | Method for generating an automation program | |
Miyagi et al. | A programming language for discrete event production systems based on production flow schema and mark flow graph | |
CN101615016A (en) | Engineering tools | |
CN112230618B (en) | Method for automatically synthesizing multi-robot distributed controller from global task | |
US20100063606A1 (en) | Automated derivation of a logic-controller-behavior-model from a mechanical-machine-operation-model | |
US20030069651A1 (en) | Design and implementation device for real-time controllers | |
EP3940472B1 (en) | Ladder diagram program creation assistance device, ladder diagram program creation assistance method, and ladder diagram program creation assistance program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041214 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050208 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050308 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050311 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090318 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090318 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100318 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |