(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-04
(45)【発行日】2023-12-12
(54)【発明の名称】データ処理方法
(51)【国際特許分類】
G05B 19/05 20060101AFI20231205BHJP
【FI】
G05B19/05 F
(21)【出願番号】P 2020005122
(22)【出願日】2020-01-16
【審査請求日】2022-11-07
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110002860
【氏名又は名称】弁理士法人秀和特許事務所
(72)【発明者】
【氏名】安田 圭
(72)【発明者】
【氏名】大谷 拓
(72)【発明者】
【氏名】関本 英彦
【審査官】大古 健一
(56)【参考文献】
【文献】特開2019-36043(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/04 -19/05
(57)【特許請求の範囲】
【請求項1】
実行毎に全体が実行される第1の実行形式に従ったプログラムと、逐次実行される第2の実行形式に従ったプログラムと、を有する制御装置におけるデータ処理方法であって、
前記制御装置は、
予め定められた制御周期毎に前記第1の実行形式に従ったプログラムを実行して第1の制御対象を制御するための第1の指令値を演算可能に構成された第1処理部と、
前記第2の実行形式に従ったプログラムを実行してインタプリタにより該プログラムの少なくとも一部が解釈されて生成される中間コードに従って前記制御周期毎に第2の制御対象を制御するための第2の指令値を演算可能に構成された第2処理部と、
を備え、
前記データ処理方法は、
前記第1の実行形式に従ったプログラム及びそれに
よって前記第1の制御対象を制御するために必要な所定の第1データと、前記第2の実行形式に従ったプログラム及びそれに
よって前記第2の制御対象を制御するために必要な所定の第2データと、を抽出し、これらから1つのバックアップファイルを生成するステップと、
前記制御装置の前記第1処理部に相当する第3処理部と前記第2処理部に相当する第4処理部とを有するように構成された、該制御装置とは異なる別の制御装置に対して、前記1つのバックアップファイルに従って、前記第3処理部に対応するプログラム及びそれに
よって該第3処理部による制御対象を制御するために必要なデータと、前記第4処理部に対応するプログラム及びそれに
よって該第4処理部による制御対象を制御するために必要なデータをインストールするステップと、
を含む、データ処理方法。
【請求項2】
前記第3処理部に対応するプログラム及びそれに
よって該第3処理部による制御対象を制御するために必要なデータは、前記第1処理部に対応する前記第1の実行形式に従ったプログラムと同じプログラム及び前記所定の第1データと同じデータであり、
前記第4処理部に対応するプログラム及びそれに
よって該第4処理部による制御対象を制御するために必要なデータは、前記第2処理部に対応する前記第2の実行形式に従ったプログラムと同じプログラム及び前記所定の第2データと同じデータである、
請求項1に記載のデータ処理方法。
【請求項3】
前記インストールするステップでは、
前記別の制御装置に対して、記憶装置に記憶された前記1つのバックアップファイルに従って、前記第3処理部に対応するプログラム及びそれに
よって該第3処理部による制御対象を制御するために必要なデータとして、前記第1処理部に対応する前記第1の実行形式に従ったプログラムと前記所定の第1データの一部が変更された、又は、新たなプログラム及び/又は新たなデータが追加されたプログラム及びデータがインストールされ、
及び/又は、
前記別の制御装置に対して、前記記憶装置に記憶された前記1つのバックアップファイルに従って、前記第4処理部に対応するプログラム及びそれに
よって該第4処理部による制御対象を制御するために必要なデータとして、前記第2処理部に対応する前記第2の実行形式に従ったプログラムと前記所定の第2データの一部が変更された、又は、新たなプログラム及び/又は新たなデータが追加されたプログラム及びデータがインストールされる、
請求項1に記載のデータ処理方法。
【請求項4】
前記インストールするステップでは、前記別の制御装置、前記第3処理部による制御対象、及び前記第4処理部による制御対象の相関に基づいて、前記第3処理部に対応するプログラム及びそれに
よって該第3処理部による制御対象を制御するために必要なデータのインストール順と、前記第4処理部に対応するプログラム及びそれに
よって該第4処理部による制御対象を制御するために必要なデータのインストール順とが調整される、
請求項1から請求項3の何れか1項に記載のデータ処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の制御対象を制御するための制御装置における、バックアップ等のデータ処理方法に関する。
【背景技術】
【0002】
様々な生産現場において、PLC(プログラマブルコントローラ)などの制御装置を用いたFA(Factory Automation)技術が広く普及している。このような制御装置は、直接的に制御対象を制御するだけではなく、他の装置に制御指令を与えることで、間接的に制御対象を制御する場合もある。また、これまで複数の専用装置を用いて実現されていた制御システムを、より少ない数の制御装置に統合したいというニーズも生じている。例えば、特許文献1に示す技術では、PLCのCPUユニットにおいて、モーション演算プログラムおよびユーザプログラムが同期して実行される。
【0003】
また、特許文献2では、実行形式の異なる複数種類のプログラムに従う制御演算を単一の制御装置で実現する技術が開示されている。当該技術では、例えば、制御周期毎にプログラム全体が実行される形式のプログラムと、一部の解釈により生成される中間コードに従って逐次実行される形式のプログラムとに関して、それぞれの指令値演算を行い、制御周期毎に各指令値を併せて出力する構成が採用されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2012-194662号公報
【文献】特開2019-36043号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
複数の制御対象を制御するために、実行形式の異なる複数種類のプログラムに従う制御演算が異なる制御装置で行われる場合、各制御装置における制御環境、すなわち制御演算のためのプログラム、及び当該プログラムで制御対象を駆動制御する際に使用される制御パラメータ(例えば、制御対象を構成するモータのサーボ制御パラメータ等)をバックアップする必要性が生じてくる。例えば、当該制御環境を、他の制御装置にも適用するためにそのバックアップを行う場合がある。従来においては、このような制御環境のバックアップは、制御対象とその制御装置との組合せごとに行われるため、複数の制御対象を制御するシステムにおけるバックアップの作業は煩雑なものとなる。また、複数の制御対象を制御するために、実行形式の異なる複数種類のプログラムに従う制御演算が単一の制御装置で行われる場合であっても同様にバックアップの必要性は生じ得るが、これまで十分な検討が為されていない。
【0006】
更に、バックアップを行った後に、そのバックアップされた制御環境の情報(ファイル)を、改めて制御装置に適用する(インストールする)場合、制御対象とその制御装置との組合せごとに行われていると、ユーザはインストールすべき制御対象と制御装置の組合せが適切になるように注意を払う必要があり、ユーザによるインストール作業の負荷は小さくはない。
【0007】
本発明は、このような問題に鑑みてなされたものであり、複数の制御対象を制御するための、実行形式の異なる複数種類のプログラムに従う制御演算が単一の制御装置で行われる場合であっても、ユーザによる制御環境の管理負荷を軽減し得る技術を提供することを
目的とする。
【課題を解決するための手段】
【0008】
本発明においては、上記課題を解決するために、複数の制御対象を制御するための、実行形式の異なる複数種類のプログラムを実行する単一の制御装置に関し、複数の制御対象のための制御プログラムとそれらに関連するデータを1つのバックファイルアップとしてバックアップし、その後、当該1つのバックアップファイルに従って、他の制御装置へのインストールを行う構成を採用した。当該構成の採用により、制御環境のバックアップファイルは1つに生成されるため、ユーザの管理負荷が大きく軽減される。
【0009】
具体的に、本発明は、実行毎に全体が実行される第1の実行形式に従ったプログラムと、逐次実行される第2の実行形式に従ったプログラムと、を有する制御装置におけるデータ処理方法であって、前記制御装置は、予め定められた制御周期毎に前記第1の実行形式に従ったプログラムを実行して第1の制御対象を制御するための第1の指令値を演算可能に構成された第1処理部と、前記第2の実行形式に従ったプログラムを実行してインタプリタにより該プログラムの少なくとも一部が解釈されて生成される中間コードに従って前記制御周期毎に第2の制御対象を制御するための第2の指令値を演算可能に構成された第2処理部と、を備える。そして、前記データ処理方法は、前記第1の実行形式に従ったプログラム及びそれに関連する所定の第1データと、前記第2の実行形式に従ったプログラム及びそれに関連する所定の第2データと、を抽出し、これらから1つのバックアップファイルを生成するステップと、前記制御装置の前記第1処理部に相当する第3処理部と前記第2処理部に相当する第4処理部とを有するように構成された、該制御装置とは異なる別の制御装置に対して、前記1つのバックアップファイルに従って、前記第3処理部に対応するプログラム及びそれに関連するデータと、前記第4処理部に対応するプログラム及びそれに関連するデータをインストールするステップと、を含む。なお、生成するステップで生成された前記1つのバックアップファイルは、前記制御装置に対して取り外し可能な記憶装置に一度、記憶されてもよい。
【0010】
上記の制御装置は、実行形式の種類が異なるプログラムである、第1の実行形式に従ったプログラムと第2の実行形式に従ったプログラムを有している。前者の実行形式は、その実行毎にプログラム全体が実行される形式であり、後者の実行形式は逐次実行の形式である。このように異なる実行形式のプログラムが利用可能となることで、ユーザは、制御対象の制御に適したプログラムを適宜選択でき制御装置の利便性が高められる。
【0011】
そして、第1処理部が、制御周期毎に第1の実行形式に従ったプログラムを実行しそれに基づく第1の指令値を演算する。また、第2処理部は、インタプリタの解釈を経て生成される中間コードに従って制御周期毎に第2の実行形式に従ったプログラムに基づく第2の指令値を演算するように構成される。そして、第1の指令値と第2の指令値とが出力されることで、異なる実行形式のプログラムに基づいた各指令値を同期して出力することができる。
【0012】
このように構成される制御装置では、上記の通り利便性の高い制御対象の制御が実現される一方で、異なる種類のプログラムや、そのプログラムによって制御対象を制御するために必要な関連データ(上記の第1データ、第2データ等)が単一の制御装置に内在している。このことは、これらのプログラムや関連データによって、当該制御装置の制御環境が形成されていることを意味する。そこで、このような制御装置の制御環境のバックアップのためのデータ処理方法としては、当該制御環境全体を1つのバックアップファイルとして生成するのが好ましい。このようにすることで、ユーザは、制御装置におけるプログラム同士の相関や各プログラムに関連するデータとの組合せ等を管理する必要が無くなる。
【0013】
そして、上記のように1つのバックアップファイルが生成されると、当該1つのバックアップファイルに従って、別の制御装置への制御環境に関する情報のインストールが可能となる。1つのバックアップファイルには、バックアップ元の制御装置における制御対象を制御するためのプログラムと関連データが含まれている。そのため、別の制御装置が、バックアップ元の制御装置と同じように第1処理部に相当する構成である第3処理部と、第2処理部に相当する構成である第4処理部を備えていれば、バックアップ元の制御装置と同様の制御環境、もしくはバックアップ元の制御装置の制御環境を利用した新たな制御環境を、当該別の制御装置に形成することが可能となる。
【0014】
このように上記のデータ処理方法によれば、ユーザは、バックアップ元の制御装置におけるプログラム同士の相関や各プログラムに関連するデータとの組合せ等を管理することなく、容易に別の制御装置に新たな制御環境を形成することが可能となり、以て、ユーザの作業負荷が軽減される。
【0015】
ここで、上記のデータ処理方法において、前記第3処理部に対応するプログラム及びそれに関連するデータは、前記第1処理部に対応する前記第1の実行形式に従ったプログラムと同じプログラム及び前記所定の第1データと同じデータであってもよい。また、前記第4処理部に対応するプログラム及びそれに関連するデータは、前記第2処理部に対応する前記第2の実行形式に従ったプログラムと同じプログラム及び前記所定の第2データと同じデータであってもよい。この場合、本願のデータ処理方法によれば、別の制御装置には、バックアップ元の制御装置と同等の制御環境が形成されることになる。
【0016】
また、上記のデータ処理方法において、前記インストールするステップでは、前記別の制御装置に対して、記憶装置に記憶された前記1つのバックアップファイルに従って、前記第3処理部に対応するプログラム及びそれに関連するデータとして、前記第1処理部に対応する前記第1の実行形式に従ったプログラムと前記所定の第1データの一部が変更された、又は、新たなプログラム及び/又は新たなデータが追加されたプログラム及びデータがインストールされてもよい。また、前記インストールするステップでは、前記別の制御装置に対して、前記記憶装置に記憶された前記1つのバックアップファイルに従って、前記第4処理部に対応するプログラム及びそれに関連するデータとして、前記第2処理部に対応する前記第2の実行形式に従ったプログラムと前記所定の第2データの一部が変更された、又は、新たなプログラム及び/又は新たなデータが追加されたプログラム及びデータがインストールされてもよい。この場合、本願のデータ処理方法によれば、別の制御装置には、バックアップ元の制御装置の制御環境を利用した新たな制御環境、例えば、バックアップ元の制御装置の制御環境の一部を変更した制御環境や、バックアップ元の制御装置の制御環境に新たなデータやプログラムを追加した制御環境等が形成されることになる。
【0017】
また、上述までのデータ処理方法において、前記インストールするステップでは、前記別の制御装置、前記第3処理部による制御対象、及び前記第4処理部による制御対象の相関に基づいて、前記第3処理部に対応するプログラム及びそれに関連するデータのインストール順と、前記第4処理部に対応するプログラム及びそれに関連するデータのインストール順とが調整されてもよい。別の制御装置にプログラムおよび関連データをインストールする際に、当該別の制御装置とその複数の制御対象との相関、すなわち両者の依存関係によっては、プログラムや関連データのインストール順が適切でないと、インストールに際してエラーが発生し円滑な作業が阻害され得る。そこで、インストールするステップにおいては上記のようにインストール順が調整されることで、良好なインストール作業が実現される。
【発明の効果】
【0018】
複数の制御対象を制御するための、実行形式の異なる複数種類のプログラムに従う制御演算が単一の制御装置で行われる場合であっても、ユーザによる制御環境の管理負荷を軽減し得る。
【図面の簡単な説明】
【0019】
【
図1】統合コントローラを含む制御システムの概略構成を示す図である。
【
図2】統合コントローラの機能をイメージ化した機能ブロック図である。
【
図3】統合コントローラで制御周期に従って実行される処理の流れを示す図である。
【
図4】統合コントローラで実行される、制御環境データのバックアップ及びインストールの概略を説明する図である。
【
図5】統合コントローラで実行される、制御環境データのバックアップ及びインストールの流れを示すフローチャートである。
【発明を実施するための形態】
【0020】
<適用例>
実施形態に係る制御装置の適用例について、
図1及び
図2に基づいて説明する。
図1は、当該制御装置100が適用される制御システム1の概略構成図であり、
図2は、制御装置100に形成される機能部をイメージ化した図である。
【0021】
制御装置100は、各種の設備や装置などの制御対象を制御する産業用コントローラに相当する。制御装置100は、後述するような制御演算を実行する一種のコンピュータである。制御装置100は、フィールドネットワーク2を介して各種のフィールド機器と接続されてもよい。フィールド機器は、製造装置や生産ラインなど(以下、「フィールド」とも総称する。)に対して何らかの物理的な作用を与えるアクチュエータ、および、フィールドとの間で情報をやり取りする入出力装置などを含み、
図1においては、フィールド機器として、ロボット210や、サーボドライバ220及びモータ222が例示されている。サーボドライバ220は、制御装置100からの指令値(例えば、位置指令や速度指令など)に従って、モータ222を駆動する。また、ロボット210としては、パラレルロボット、スカラロボット、多関節ロボットが例示できる。このように制御装置100は、ロボット210やサーボドライバ220及びモータ222を統合的に制御し得るように構成された統合コントローラであり、その詳細については後述する。
【0022】
制御装置100は、フィールドネットワーク2などを介して、1または複数のフィールド機器との間でデータをやり取りする。一般的に「フィールドネットワーク」は、「フィールドバス」とも称されるが、説明の簡素化のため、本願においては、「フィールドネットワーク」と総称する。制御装置100は、各種のフィールド機器において収集または生成されたデータ(以下、「入力データ」とも称す。)を収集する処理(入力処理)、フィールド機器に対する指令などのデータ(以下、「出力データ」とも称す。)を生成する処理(演算処理)、生成した出力データを対象のフィールド機器へ送信する処理(出力処理)等を行う。
【0023】
ここで、フィールドネットワーク2は、データの到達時間が保証される、定周期通信を行うバスまたはネットワークを採用することが好ましい。このような定周期通信を行うバスまたはネットワークとしては、EtherCAT(登録商標)等が知られている。そして、フィールドネットワーク2を介して、制御装置100とフィールド機器との間でやり取りされるデータは、数100μsecオーダ~数10msecオーダのごく短い周期で更新されることになる。なお、このようなやり取りされるデータの更新処理は、入出力リフレッシュ処理とも称される。
【0024】
また、制御装置100は、上位ネットワーク6を介して、他の装置にも接続されている。上位ネットワーク6には、一般的なネットワークプロトコルであるイーサネット(登録商標)やEtherNet/IP(登録商標)が採用されてもよい。より具体的には、上位ネットワーク6には、1または複数のサーバ装置10が接続されてもよい。サーバ装置10としては、データベースシステム、製造実行システム(MES:Manufacturing Execution System)などが想定される。製造実行システムは、制御対象の製造装置や設備からの情報を取得して、生産全体を監視および管理するものであり、オーダ情報、品質情報、出荷情報などを扱うこともできる。これに限らず、情報系サービスを提供する装置を上位ネットワーク6に接続するようにしてもよい。
【0025】
ここで、
図2に基づいて、制御装置100の構成について説明する。制御装置100は、上記の通り所定の制御演算を実行する一種のコンピュータであり、当該制御演算に必要なプロセッサやメモリを備えている。当該プロセッサは、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)などで構成される。プロセッサとしては、複数のコアを有する構成を採用してもよいし、当該プロセッサを複数配置してもよい。当該メモリとしては、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置や、HD
D(Hard Disk Drive)やSSD(Solid State Drive)などの不揮発性記憶装置などで構成される。そして、プロセッサは、メモリに格納された各種プログラムを読出して実行することで、制御対象に応じた制御、および、後述するような各種処理を実現する。メモリには、基本的な機能を実現するためのシステムプログラムに加えて、制御対象の製造装置や設備に応じて作成されるユーザプログラム(IECプログラム51およびアプリケーションプログラム52)が格納される。
【0026】
なお、本願におけるIECプログラム51とは、実行毎に全体がスキャンされて、実行毎に1または複数の指令値が演算されるプログラムであり、典型的には、国際電気標準会議(International Electrotechnical Commission:IEC)によって規定された国際規
格IEC61131-3に従って記述された1または複数の命令からなるプログラムを包含する。IECプログラム51には、シーケンス制御およびモーション制御の命令が含まれる。このようなIECプログラム51は、制御周期毎にすべてのプログラムが実行(スキャン)される実行形式に対応するものであり、即時性および高速性が要求される制御に好適である。一方で、本願におけるアプリケーションプログラム52は、ロボットを用いて特定の加工や動作を行うための制御プログラムであり、ロボットによる制御アプリケーションを実現するための1または複数の命令からなるプログラムを包含し、IECプログラム51とは区別される。ロボット制御に関するアプリケーションプログラム52は、一例として、ロボット言語を用いて記述され、1行ずつ逐次実行されるインタプリタ方式が採用される。
【0027】
そして、
図2に示すように、制御装置100は、制御アプリケーション処理部30と、IECプログラム処理部40と、上位ネットワークインターフェイス20と、下位ネットワークインターフェイス60と、共有メモリ50と、データ処理部70とを有する。下位ネットワークインターフェイス60は、IECプログラム処理部40および制御アプリケーション処理部30と、フィールドネットワーク2を介して接続されているフィールド機器との間のデータのやり取りを仲介する。上位ネットワークインターフェイス20は、IECプログラム処理部40および制御アプリケーション処理部30と、上位ネットワーク6を介して接続されているサーバ装置10との間のデータのやり取りを仲介する。例えば、制御装置100は、上位ネットワーク6を介して接続されているサーバ装置10から、生産の開始/終了といった指示を受ける。サーバ装置10は、制御アプリケーションを動作させるためのアプリケーションプログラムおよびレシピ情報(生産に適したパラメータ
などの情報)などを制御装置100に送信することもある。
【0028】
IECプログラム処理部40は、モーション処理部42とパラメータ保持部45とを有し、予め定められた制御周期毎にIECプログラム51を実行(スキャン)して1または複数の指令値を演算する。すなわち、IECプログラム処理部40は、モーション処理部42とパラメータ保持部45の作用によって、IECプログラム51に従って制御周期毎に指令値を演算する。なお、本願では、モータ222を含んで構成される所定の装置を制御するためにIECプログラム51の実行が行われるものとする。
【0029】
パラメータ保持部45は、所定の装置を構成するモータ222の制御に必要な制御パラメータ(例えば、サーボ制御に必要なゲイン等のサーボパラメータ)を保持しており、当該制御パラメータは、モーション処理部42での指令値の演算処理に供される。そして、モーション処理部42は、IECプログラム51に含まれるモーション命令に従って、制御周期毎に指令値を演算する機能を提供する。すなわち、IECプログラム51に含まれるモーション命令は、複数の制御周期に亘る挙動を指示する命令(例えば、モータ222で構成される所定の装置の出力が何らかの軌道を描くための命令)を含む。このようなモーション命令が実行されると、実行されたモーション命令の指示内容に従って、モーション処理部42が制御周期毎に指令値を演算する。すなわち、モーション処理部42は、上記の所定の装置に対して制御周期毎に指令値を出力することで、モーション命令により指示された挙動を実現する。
【0030】
次に、制御アプリケーション処理部30は、アプリケーションプログラム52およびレシピ情報などに基づいて、制御アプリケーションを制御するための指令値を演算する。なお、本願では、ロボット210を制御するためにアプリケーションプログラム52が制御アプリケーション処理部30によって実行されるものとする。制御アプリケーション処理部30は、IECプログラム処理部40による指令値の演算および出力と同期して、制御アプリケーション用の指令値を演算および出力する。すなわち、制御アプリケーション処理部30は、IECプログラム処理部40による演算処理と同期して、ロボット210を制御するための指令値の演算処理を実行する。なお、このIECプログラム処理部40と制御アプリケーション処理部30の同期処理については、後述する。IECプログラム処理部40による指令値の演算処理と同期した指令値の演算を実現するために、制御アプリケーション処理部30は、モーション処理部32と、バッファ33と、インタプリタ34と、パラメータ保持部35とを含む。
【0031】
インタプリタ34は、逐次アプリケーションプログラム52の少なくとも一部を解釈して中間コードを生成するとともに、生成した中間コードを格納するバッファ33を有する。本願における中間コードは、制御周期毎に指令値を演算するための命令を包含する概念であり、1または複数の命令、あるいは、1または複数の関数を含んでもよい。また、パラメータ保持部35は、ロボット210を構成するアクチュエータの制御に必要な制御パラメータ(例えば、サーボ制御に必要なゲイン等のサーボパラメータ)を保持しており、当該制御パラメータは、モーション処理部32での指令値の演算処理に供される。そして、モーション処理部32は、インタプリタ34が事前に生成しバッファ33に格納されている中間コードに従って、制御周期毎に指令値を演算する。一般的に、アプリケーションプログラム52に記述される命令(コード)は、逐次実行されるために、指令値の演算周期を保証できないが、本願開示では、このように中間コードを利用することで、モーション処理部32は、制御周期毎に指令値を演算できるようになる。中間コードにおいて記述される命令には、各制御アプリケーションに応じた座標系が用いられてもよい。
【0032】
制御装置100が備える共有メモリ50には、IECプログラム処理部40による処理結果の一部または全部が格納され、制御アプリケーション処理部30は、IECプログラ
ム処理部40の共有メモリ50に格納されたデータを参照することができる。また、制御アプリケーション処理部30から共有メモリ50へのデータ書込みも可能であってもよく、このように制御アプリケーション処理部30から書込まれたデータは、モーション処理部42から参照可能とされる。
【0033】
次に、制御装置100が備えるデータ処理部70は、制御装置100における制御環境に関するデータ、すなわち、制御アプリケーション処理部30に対応するアプリケーションプログラム52及び当該プログラムに従って制御されるロボット210用の制御パラメータ(パラメータ保持部35が保持しているパラメータ)と、IECプログラム処理部40に対応するIECプログラム51及び当該プログラムに従って制御される所定の装置用の制御パラメータ(パラメータ保持部45が保持しているパラメータ)とを少なくとも含むデータ(以下、「制御環境データ」という)のバックアップやインストールに関連するデータ処理を行う機能部である。すなわち、データ処理部70は、バックアップについては、制御装置100で行われる実行形式の異なるプログラムとそれに関連するデータ(上記の制御パラメータ)を纏めてバックアップを行うためのデータ処理を行う。また、インストールについては、データ処理部70は、そのように纏められた制御環境データに従って、制御装置100内に上記プログラムやそれに関連するデータをインストールするためのデータ処理を行う。なお、制御環境データには上述のプログラムやデータ以外のデータ等が含まれていてもよい。
【0034】
<プログラムの同期実行>
制御装置100においては、IECプログラム51とアプリケーションプログラム52の同期実行が実現される。制御アプリケーション処理部30のインタプリタ34は、制御周期より長い周期、例えば、制御周期の2倍分の周期毎にアプリケーションプログラム52を逐次実行する。ただし、IECプログラム処理部40のモーション処理部42および制御アプリケーション処理部30のモーション処理部32は、いずれも同一の制御周期毎に指令値を演算する。したがって、制御装置100からの指令値の出力は、いずれも予め定められた制御周期で同期して行われる。このように、IECプログラム処理部40および制御アプリケーション処理部30は、アクチュエータの動きを連続的に制御するためのモーション処理部をそれぞれ有しており、これらのモーション処理部が同期して指令値を演算することで、IECプログラム51に従う制御およびアプリケーションプログラム52に従う制御の両方を制御周期と同期させて実行することができ、これによって制御周期単位での精密な制御が実現される。
【0035】
次に、制御装置100におけるIECプログラム51およびアプリケーションプログラム52の実行タイミングの詳細について、
図3に基づいて説明する。
図3は、制御装置100におけるプログラムの実行タイミングの一例を示す図である。なお、制御装置100においては、プロセッサのリソースを考慮して、優先度が高い高優先度タスク(
図3中の上段の処理)と優先度が低い低優先度タスク(
図3中の下段の処理)が設定されている。具体的には、下位ネットワークインターフェイス60、IECプログラム処理部40とそのモーション処理部42の実行、および制御アプリケーション処理部30のモーション処理部32の実行は、高優先度タスクとして設定され、制御アプリケーション処理部30のインタプリタ34の実行は低優先度タスクとして設定されている。
【0036】
すなわち、下位ネットワークインターフェイス60に関連する入出力リフレッシュ処理B60、IECプログラム51の実行処理B40、IECプログラム51に従ってモーション処理部42によって行われる指令値の演算処理B42、アプリケーションプログラム52に従ってモーション処理部32によって行われる指令値の演算処理B32は、高優先度タスクとして実行される。一方、アプリケーションプログラム52を逐次解釈する処理B34は、低優先度タスクとして実行される。
【0037】
ここで、高優先度タスクは、予め定められた制御周期T1毎に繰返し実行される。低優先度タスクは、各制御周期内で高優先度タスクが実行されていない期間に都度実行される。すなわち、制御周期毎に、高優先度タスクの実行時間が割当てられ、高優先度タスクの実行時間以外の時間において、低優先度タスクが実行される。
【0038】
まず、高優先度タスクについて説明すると、各制御周期が到来すると、入出力リフレッシュ処理B60が実行された後、IECプログラム処理部40によりIECプログラム51の全体が実行(スキャン)されて、シーケンス制御についての1または複数の指令値が演算される(実行処理B40)。併せて、モーション処理部42によりIECプログラム51に含まれるモーション命令に関するモーション処理が実行されて、モーション命令についての1または複数の指令値が演算される(実行処理B42)。さらに、制御アプリケーション処理部30のモーション処理部32により、バッファ33に格納されている中間コードに従ってロボット210の制御用のモーション指令が準備される(実行処理B32)。以下、同様の処理が制御周期毎に繰返される。なお、モーション処理部32がバッファ33から中間コードを読み出すタイミングは、各制御周期でなくともよい。これは、読み出された中間コードは、複数の制御周期T1にわたって指令値を演算できるだけの命令を含む場合、その複数の制御周期T1においては中間コードの読み出しを一度で行える。
【0039】
このように、ある制御周期における高優先度タスクの実行が完了すると、モータ222等に関するシーケンス制御についての指令値及びそのモーション制御についての指令値と、ロボット210に関する制御アプリケーションについての指令値のセットが用意される。これらの指令値は、基本的には、次の制御周期が到来すると、フィールド側に反映される。すなわち、IECプログラム処理部40および制御アプリケーション処理部30は、同一の制御周期で入力データに応じた指令値を演算するので、入力に同期した出力を実現できる。
【0040】
一方、低優先度タスクについては、制御アプリケーション処理部30のインタプリタ34は、アプリケーションプログラム52を逐次実行する。すなわち、インタプリタ34は、アプリケーションプログラム52の読込みおよび解析を低優先度で実行する。インタプリタ34がアプリケーションプログラム52を解析処理して生成された中間コードは、バッファ33の容量を考慮しながら、逐次、バッファ33に格納される。バッファ33に格納された中間コードは、制御アプリケーション処理部30のモーション処理部32により順次参照されて、演算処理B32での指令値の生成に用いられる。このとき、インタプリタ34は、高優先度タスクの演算周期である制御周期の整数倍分の中間コードを事前に余分に生成しておくことで、モーション処理部32による処理に影響を与えることなく、制御アプリケーションに対する指令値を制御周期毎に演算できる。
【0041】
また、インタプリタ34は、予め定められた制御アプリケーション同期周期(制御周期の整数倍)が到来する前に、アプリケーションプログラム52の解釈を一時停止する。その一時停止したタイミングで、IECプログラム処理部40と制御アプリケーション処理部30との間でデータ同期を行うことで、双方に整合性をもつデータを共有する。このように、インタプリタ34は、同期周期毎に、IECプログラム処理部40との間で共有するデータを更新する。共有データの更新に併せて、フィールド側から取得される入力データおよび出力データについても更新(データ同期)するようにしてもよい。これにより、制御アプリケーション処理部30側でも、IECプログラム処理部40で取得されたデータを利用してロボット210の制御が可能となる。制御アプリケーション同期周期は、制御周期の整数倍に設定されれば、どのような長さであってもよい。制御アプリケーションにおいて要求される制御の精度などに応じて、適宜設定される。
【0042】
<制御環境データのバックアップ及びインストール>
このように制御装置100は、異なる実行形式のプログラムを実行することで複数の制御対象に所望の動作を実現させるように統合コントローラとして構成されている。ここで、一の統合コントローラである制御装置100で形成された制御環境と同じ環境、もしくは、当該制御環境に基づいた新たな環境を他の統合コントローラである制御装置101~103にも形成させるための技術について、
図4及び
図5に基づいて説明する。
図4は、制御環境のバックアップ及びインストールを、制御装置100等に電気的に脱着可能なメモリ装置200を用いて行う場合の概略を説明する図である。なお、
図4に示す制御装置101~103の何れも、
図2に示す制御装置100と同じ機能部(制御アプリケーション処理部30、IECプログラム処理部40、データ処理部70等)を有しており、それぞれの制御対象についても、制御装置100と同じようにロボット210と、モータ222を含む所定の装置の組合せ(
図1を参照)となっているものとする。そして、
図5は、制御環境データのバックアップ及びインストールの流れを示すフローチャートである。
【0043】
ここで、
図4に示すメモリ装置200の記憶領域には、バックアップ指示ファイル201、バックアップファイル202、インストール指示ファイル203が格納されているが、この格納状態は、制御装置100の制御環境データを格納した直後の格納状態(すなわち、後述のステップS105の処理が行われた後の格納状態)である。したがって、制御装置100の制御環境データを格納する前の状態では、メモリ装置200の記憶領域にはバックアップ指示ファイル201のみが格納されている。
【0044】
ここで、バックアップ指示ファイル201、バックアップファイル202、インストール指示ファイル203について説明する。バックアップ指示ファイル201は、バックアップ元となる制御装置(本願開示の例では制御装置100)で形成されている制御環境のうちどの部分、もしくはその全部をバックアップするのかを指示する指令を含んでいる。当該指示は、バックアップ元となる制御装置内のデータ処理部70により処理され、バックアップファイル202が生成されることになる。バックアップファイル202は、1つのファイルである。すなわち、本願開示においては、バックアップを指示された制御環境データは複数のファイルに分割されるのではなく、その全てが1つのファイルに纏められてバックアップファイルとして生成される。
【0045】
そして、インストール指示ファイル203は、インストール先となる制御装置(本願開示の例では制御装置101~103)におけるインストールの具体的な態様を指示する指令を含んでいる。当該指示は、インストール先となる制御装置内のデータ処理部70により処理される。上記の通り、バックアップファイル202内の制御環境データには、実行形式に応じた制御プログラム(アプリケーションプログラム52やIECプログラム51等)や、それらに関連した制御パラメータ等のデータが要素(以下、「データ要素」という)として含まれている。ここで、制御装置101~103においてインストール処理を行うときに、インストール先の制御装置と、それにより制御される制御対象(例えば、所定の装置やロボット等)との制御的な相関によって、各データ要素をインストールする順序を特定の順序とする必要がある場合がある。その特定の順序を外れた順序で各データ要素がインストールされると、最終的に制御装置として良好な制御環境が形成されないことになる。そこで、インストール指示ファイル203には、このような各データ要素のインストール順序を指定する指令等が、インストールの具体的な態様を指示する指令として含まれている。
【0046】
続いて、制御装置100の制御環境データのバックアップ、及び制御装置101~103へのインストールの処理の流れについて、
図5に基づいて説明する。先ず、S101では、メモリ装置200が、バックアップ元となる制御装置100に電気的に接続される。具体的には、制御装置100の所定のスロットにメモリ装置200が挿入されると、制御
装置100のデータ処理部70がその挿入を検知する。その検知後、データ処理部70によって、メモリ装置200内に格納されているバックアップ指示ファイル201が読み込まれる(S102の処理)。データ処理部70は、バックアップ指示ファイル201に含まれるバックアップ対象を指示する指令に従って、そのバックアップ対象となる、制御環境データに関するデータ要素を特定する。
【0047】
そして、S103において、データ処理部70は、特定されたデータ要素を全て含む1つのバックアップファイル202を生成する。本願開示では、制御装置100に形成された制御環境に関連する全てのデータ要素、すなわち、アプリケーションプログラム52とそれに関連する、パラメータ保持部35に保持されている制御パラメータのデータ、及び、IECプログラム51とそれに関連する、パラメータ保持部45に保持されている制御パラメータのデータの全てを含めて1つのバックアップファイル202が作成されるものとする。更に、併せてS104において、データ処理部70が、1つのバックアップファイル202に含まれるデータ要素のインストール順に関する指令を含めて、インストール指示ファイル203を生成する。本願開示では、一例として、当該指令は、アプリケーションプログラム52及びIECプログラム51、IECプログラム51に関連する制御パラメータのデータ、アプリケーションプログラム52に関連する制御パラメータのデータの順で、インストール順を指示しているものとする。
【0048】
S103でバックアップファイル202の生成が終了し、S104でインストール指示ファイルの生成が終了すると、生成されたこれらのファイルがメモリ装置200に格納される(S105の処理)。S105の処理が終了した格納状態が、上記の通り、
図4に示されている。ファイルの格納が終了すると、メモリ装置200が制御装置100のスロットから取り出される。
【0049】
続いて、S106では、上記のメモリ装置200が、インストール先の制御装置101~103のそれぞれに電気的に接続される。接続の形態は、制御装置100の場合と同様である。代表的に制御装置101について説明する。制御装置101のデータ処理部70がメモリ装置200の接続を検知すると、当該データ処理部70が、メモリ装置200内に格納されているインストール指示ファイル203を読み込む(S107の処理)。そして、制御装置101のデータ処理部70は、インストール指示ファイル203に含まれるインストール順序を指示する指令に従って、バックアップファイル202に含まれるデータ要素のインストール順序を調整し制御装置101内へのインストール処理を進めていく。具体的には、制御装置101のデータ処理部70は、バックアップファイル202に含まれる各プログラムを、制御装置101の制御アプリケーション処理部30とIECプログラム処理部40に対応するようにインストールし、更に、バックアップファイル202に含まれる各制御パラメータのデータを、制御装置101のパラメータ保持部35、45に対応するようにインストールする。
【0050】
また、他の制御装置102、103についても、前の制御装置でのインストール処理の終了後にそれらにメモリ装置200が電気的に接続されることで、制御装置101と同じようにインストール処理が順次行われていく。
【0051】
このように本願開示の制御環境データのバックアップ及びインストールの方法(データ処理方法)によると、統合コントローラとして構成されている制御装置100内の制御環境を、容易に他の制御装置内に形成することができる。このとき、制御装置100内の複数のプログラムやデータが、1つのバックアップファイルとして纏められることで、ユーザの管理負荷が軽減され、インストール作業も容易なものとなる。
【0052】
<変形例>
上記の開示では、制御装置101~103の制御対象(ロボット210と所定の装置の組合せ)は、制御装置100の制御対象(ロボット210と所定の装置の組合せ)と同一とした。そこで、変形例としては、そのような形態に代えて、例えば、制御装置102の制御対象は、制御装置100の制御対象であるロボット210の数が一台多く、また、制御装置103の制御対象は、制御装置100の制御対象である所定の装置の数が一台少ないものとする。このような場合でも、制御装置102のデータ処理部70や制御装置103のデータ処理部70が、それぞれの制御対象であるロボットや所定の装置の種類と数を識別しておくことで、メモリ装置200に格納されている1つのバックアップファイルに従って、各制御対象の具体的な態様に応じたインストール作業を実施することができる。
【0053】
すなわち、制御装置102のデータ処理部70は、制御装置100の場合より増加して接続されているロボット210が、他のロボット210と種類が同じであると判断できれば、その他のロボット210に関連するアプリケーションプログラム52や制御パラメータ等のデータに基づいて、増加分のロボット210に関連するプログラムや制御パラメータ等のデータをインストールすることができる。また、制御装置103のデータ処理部70は、制御装置100の場合より接続されている所定の装置の数が少ないため、その減少分に応じて、所定の装置に関連するプログラムや制御パラメータ等のデータをインストールすることができる。
【0054】
<付記1>
実行毎に全体が実行される第1の実行形式に従ったプログラム(51)と、逐次実行される第2の実行形式に従ったプログラム(52)と、を有する制御装置(100)におけるデータ処理方法であって、
前記制御装置(100)は、
予め定められた制御周期毎に前記第1の実行形式に従ったプログラム(51)を実行して第1の制御対象(222)を制御するための第1の指令値を演算可能に構成された第1処理部(40)と、
前記第2の実行形式に従ったプログラム(52)を実行してインタプリタ(34)により該プログラムの少なくとも一部が解釈されて生成される中間コードに従って前記制御周期毎に第2の制御対象(210)を制御するための第2の指令値を演算可能に構成された第2処理部(30)と、
を備え、
前記データ処理方法は、
前記第1の実行形式に従ったプログラム(51)及びそれに関連する所定の第1データと、前記第2の実行形式に従ったプログラム(52)及びそれに関連する所定の第2データと、を抽出し、これらから1つのバックアップファイル(202)を生成するステップ(S103)と、
前記制御装置の前記第1処理部に相当する第3処理部と前記第2処理部に相当する第4処理部とを有するように構成された、該制御装置とは異なる別の制御装置(101-103)に対して、前記1つのバックアップファイル(202)に従って、前記第3処理部に対応するプログラム及びそれに関連するデータと、前記第4処理部に対応するプログラム及びそれに関連するデータをインストールするステップ(S107)と、
を含む、データ処理方法。
【符号の説明】
【0055】
2: フィールドネットワーク
6: 上位ネットワーク
10: サーバ装置
30: 制御アプリケーション処理部
40: IECプログラム処理部
51: IECプログラム
52: アプリケーションプログラム
70: データ処理部
100: 制御装置
210: ロボット
220: サーボドライバ
222: モータ