JP2006276951A - データ取得装置、分散システムおよび分散システムのデータ更新方法 - Google Patents

データ取得装置、分散システムおよび分散システムのデータ更新方法 Download PDF

Info

Publication number
JP2006276951A
JP2006276951A JP2005090835A JP2005090835A JP2006276951A JP 2006276951 A JP2006276951 A JP 2006276951A JP 2005090835 A JP2005090835 A JP 2005090835A JP 2005090835 A JP2005090835 A JP 2005090835A JP 2006276951 A JP2006276951 A JP 2006276951A
Authority
JP
Japan
Prior art keywords
data
controller
distributed system
function
monitoring
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.)
Pending
Application number
JP2005090835A
Other languages
English (en)
Inventor
Hideki Yamamoto
英樹 山本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yaskawa Electric Corp
Original Assignee
Yaskawa Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yaskawa Electric Corp filed Critical Yaskawa Electric Corp
Priority to JP2005090835A priority Critical patent/JP2006276951A/ja
Publication of JP2006276951A publication Critical patent/JP2006276951A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

【課題】複数のコントローラから構成されるネットワーク型の分散システムにおいて、データ更新の際に、通信量を減らす方法を提供する。
【解決手段】コントローラ12aのデータを他のコントローラやエンジニアリングツール11などネットワーク上の外部機器から取得する処理で、データ取得先である前記コントローラ12aのデータの変化傾向に応じて、最小時間間隔と最大時間間隔の間で更新周期を変化させて、コントローラ12aからデータ取得元である前記外部機器の該当データを更新する。
【選択図】図1

Description

本発明は、複数のコントローラなどの機器から構成されるネットワーク型の分散システムに関し、特にデータ更新方法に関する。
コントローラとそのエンジニアリングを行うためのエンジニアリングツールとの間では、コントローラに指令を送ったり、コントローラの状態を取得したりといったデータの授受処理を行っている。同様に、コントローラ同士で一方のコントローラが他方のコントローラの機能を呼び出す機能呼び出し処理もしている。機能呼び出し処理には、機能を呼び出す電文の書式を規定し、通信により電文を伝達することで実現する手段や、RPC(リモートプロシージャコール)を用いた遠隔関数呼び出しにより実現する手段や、CORBA(Common Object Request Broker Architecture)などの分散オブジェクト技術を用いてリモート関数呼び出しによって実現する手段などがある。いずれの実現手段においても、エンジニアリングツールやコントローラが別のコントローラのデータを取得する場合には、取得元のコントローラから取得先のコンローラが持つデータ取得機能を周期的に呼び出すことで処理を行っている。データ取得機能を周期的に呼び出すことにより、演算処理や通信処理などに一定の処理負荷がかかることは明らかであり、取得先のコントローラの状態が変化していない場合にも電文による通信やRPCまたはリモート関数呼び出しによる処理が行われていることは、コントローラやエンジニアリングツールの演算処理や通信処理などに無駄が生じているといえる。
このような無駄を減らす対策として、従来は、監視する対象のデータを減らすことで通信量を削減している(例えば、特許文献1参照)。ここで、従来の方法を適用する分散システムを図6に示す。図6において、監視装置61から、コントローラ62aの監視を行う場合、監視部612が周期的にコントローラ62a通信部に指令を出し、制御部621が記憶手段623に記録したレジスタデータを読み出して、監視を行っている。定期的に監視したいレジスタデータ数が多い場合は通信処理量が多くなり、コントローラや監視装置の負荷が高くなる。これに対する対策として、特許文献1記載のの技術では、監視装置が監視すべきプログラマブル・コントローラが持つデータ領域を複数レジスタ毎に区切り、その領域内でデータが変化したレジスタのうち、最も小さいレジスタ番号と最も大きいレジスタ番号を格納するエリアであるアドレス格納レジスタのみを監視させ、アドレス格納レジスタのデータ変化が発生した場合のみ、そのデータ値に従ったレジスタを監視するという手段をとっていた。
特開2001−195118号公報(第3−4頁、図3)
従来の方法では、取得したいデータそのものではなく変化した範囲を監視対象のデータとし、実際に値を取得するデータの個数を減らすことで通信量を削減するという手順をとっているため、取得元が一定周期で監視対象データを取得しており、監視の為の工程数や通信処理回数は削減されていない。また、データ領域内で値が変化した最も小さいレジスタ番号と最も大きいレジスタ番号を用いて実際にデータを取得する範囲を制限しているが、レジスタの割付はアプリケーションやシステムの設計に依存するものであり、監視装置のデータ量を削減するのに都合よく配置されているとは限らず、レジスタの割り付け方によっては必ずしもデータ量が減るとはいえず、取得するデータ量が減らない場合には、データ監視処理とデータ取得処理とに分離したことで、全体としての処理量が増えることが予測される。
本発明はこのような問題点に鑑みてなされたものであり、データ更新処理で通信処理量を減らすことのできる分散システムを提供することを目的とする。
上記問題を解決するため、本発明は、次のようにしたのである。
請求項1に記載の発明は、複数のコントローラを備えたネットワーク型の分散システムに接続され、前記コントローラのデータを取得するためのデータ取得装置において、前記コントローラのデータの変化傾向に基づいてデータ更新周期を最小時間間隔と最大時間間隔の間で変化させることにより、取得する前記コントローラのデータが更新されることを特徴とするものである。
請求項2に記載の発明は、複数のコントローラと、前記コントローラのデータを取得するためのデータ取得装置と、が接続されるネットワーク型の分散システムにおいて、前記データ取得装置は、前記コントローラのデータの変化傾向に基づいてデータ更新周期を最小時間間隔と最大時間間隔の間で変化させることにより、取得する前記コントローラのデータが更新されることを特徴とするものである。
請求項3に記載の発明は、複数のコントローラと、前記コントローラのデータを取得するためのデータ取得装置と、が接続されるネットワーク型の分散システムにおいて、前記コントローラのデータの変化傾向に基づいてデータ更新周期を最小時間間隔と最大時間間隔の間で変化させることにより、前記外部機器が取得する前記コントローラのデータが更新されることを特徴とするものである。
請求項1〜3に記載の発明によると、複数のコントローラから構成されるネットワーク型の分散システムにおいて、コントローラのデータを他のコントローラやエンジニアリングツールなどネットワーク上のデータ取得装置が取得する場合に、データ取得のために行う通信量を減らすことができる。
以下、本発明の方法の具体的実施例について、図に基づいて説明する。
図1は、本発明の方法を実施する分散システムの構成を示す概略図である。図1において、コントローラ12aは、制御部121と監視部122と記憶手段123を備えている。他のコントローラ12bおよび12cとの間やエンジニアリングツール11との間は通信伝送路13によって接続され、お互いに通信を行うことが出来る。コントローラ12aは被制御機器14と信号伝送路15によって接続されている。被制御機器とは例えばサーボドライバであり、コントローラがサーボドライバに信号伝送路15を通じて位置指令を与えてサーボモーターの制御を行っている。コントローラは、サーボモーターよりエンコーダーパルスの値や状態値を取得することができる。エンジニアリングツール11は、表示部111を備えており、コントローラと通信伝送路13により接続されており、コントローラのデータを取得して表示する機能を持っている。
図2は、本発明の方法を実施する分散システムのソフトウェア構成例を示す概略図である。図2において、コントローラA・22とコントローラB・23とコントローラC・24は通信伝送路13で相互に接続されている。コントローラAは分散ミドルウェア222を搭載し、分散協調タスク221が実行されている。分散協調タスク221は、分散して動作する他のコントローラB・23およびC・24が備える関数に対して、分散ミドルウェアを用いてダイレクトに呼び出し要求を出して協調作業の指令を行うことができる。コントローラB・23およびコントローラC・24は分散ミドルウェア231、241を搭載し、機器制御タスク232、242が実行されている。分散ミドルウェアにより、他のコントローラA・22からの関数呼び出し要求に応えて実際の機器制御タスク232、242内の関数処理を実行することができる。
他のコントローラやエンジニアリングツールからコントローラが持つ機能を呼び出す場合を、分散オブジェクト実行環境のミドルウェアであるCORBAを例に説明する。機能を提供する側をサーバー、機能を利用する側をクライアントとする。本実施例においては、サーバーはコントローラであり、クライアントは、エンジニアリングツールである。サーバーとクライアント間のインターフェースは、実装するプログラミング言語に依存しないインターフェース定義言語(IDL)で記述される。分散オブジェクトミドルウェアに付属のIDLコンパイラにより、ユーザーがIDLで定義したインターフェースから、サーバー機能を実装する抽象クラスとなるスケルトンクラス、クライアントよりサーバー機能を呼び出す抽象クラスとなるスタブクラスが、プログラミング言語用の言語バインディングとしてそれぞれ生成される。クライアントはスタブクラスを使用してサーバーの関数をローカル関数の呼び出しとして呼び出すことができる。リモート関数呼び出しは、関数の実装をサーバー側に持たせ、データを取得する関数を呼び出す処理をクライアントで実行する。クライアントで実行された関数呼び出しは、分散オブジェクトミドルウェアを通じてコントローラ内部で動作するサーバーの関数呼び出しに変換され、サーバーでの関数の実行結果がクライアントでの関数呼び出しの実行結果へと伝達される。
図3は、本発明の方法を実施する分散システムのソフトウェア構成例のうち、コントローラとエンジニアリングツールのみを抜き出して表した、コントローラ32およびエンジニアリングツール31内部のタスクを表す概略図である。エンジニアリングツール31は、コントローラと通信伝送路33によって接続されている。コントローラ内部32では、サーボモーターなどの被制御機器34を制御する機器制御タスク321が実行される。機器制御タスク321は被制御機器34に対する指令をデータ格納部324に書き込み、また、被制御機器34から受け取った応答をデータ格納部324に書き込む。エンジニアリングツール31の内部では、コントローラ32のデータを内部のデータ格納部314に格納するためのデータ保存関数を備えたデータ更新タスク311と表示更新タスク312が実行される。分散ミドルウェアを組み込んだエンジニアリングツール31およびコントローラ32間で、一方が提供する分散オブジェクトのリモート関数を他方から直接呼び出すことができる。
本発明におけるデータ更新は、以下の手順で行う。図4はUML(Unified Modeling Language)記法により本発明の方法のインターフェースを表す図である。サーバーは、図4に示すようなデータを監視するタスク起動のためのデータ監視インターフェース41を提供する。インターフェース41は、監視開始関数411(start)、監視停止関数412(stop)、監視対象データ設定関数413(addVariable)、最大更新間隔設定関数414(setIntervalMax)、最小更新間隔設定関数415(setIntervalMin)を持つ。クライアントは、図4に示すような、データ更新インターフェース42を提供する。データ更新インターフェース42は、各データ型の引数に対して内部データを書き換えるための公開関数421〜425(updateData)を持つ。データ監視インターフェース41はまた、クライアントが実装するデータ更新インターフェース42を実体化したオブジェクトのリモート参照を、サーバーが実装するデータ監視インターフェース41に設定する関数417(setCallbackObject)を持つ。クライアントは、サーバーのデータ監視インターフェース41を実体化したオブジェクトのリモート参照をミドルウェアの機能を使って取得し、クライアント自身が持つデータ更新オブジェクトの参照を関数417によってサーバーに渡し、監視対象データ設定関数413により取得したいデータを設定し、最大更新間隔設定関数414および最小更新間隔設定関数415を用いて更新間隔を設定し、監視開始関数412によりデータ監視タスクを起動する。
図5は本発明の方法の処理手順を表すフローチャートである。図5のフローチャートに示すように、データ監視タスクは、クライアントにより設定された監視対象データをクライアントにより設定された最小更新間隔で周期的にデータ格納部から読み出し(ステップ51)、監視の初回であれば比較なしで、初回以降であればデータ格納用変数には前回の値が格納されており、今回読み出した値と比較して異なれば、クライアントのデータを前記データ更新インターフェース42が備える、各データ型の引数に対して内部データを書き換えるための前記公開関数421〜425(updateData)を呼び出して更新し(ステップ55)た後で、今回読み出した値をデータ格納用変数に格納する(ステップ55)。このようにして、クライアントのデータは、サーバーからのリモート関数呼び出しによって更新される。
データ変化の傾向に応じて更新周期を一定間隔で変化させて、コントローラ内でのデータ変化がない場合にも更新する手順は以下のようにする。
図5のフローチャートにおいて、監視対象のデータをi回読み出したときの値をX={x,x,・・・,x|iは正の整数}とする。また、xが繰り返された回数をa(nは正の整数)とする。
ある時点で新たに得られたxに対し、前回読み出した値xi−1と今回読み出した値xを比較して(ステップ54)、xi−1と異なる値であれば、nに1を加算(ステップ511)して新たなaを作成し、xが、xi−1と同じ値であれば、aに1を加算する(ステップ55)。このとき、A={a,a,・・・,a}は格納域に記憶しておく。
データの変化傾向を調べるため、定数count回データを読み出すこととし、この回数になるまで一連の監視処理を繰り返した回数を、変数iに記憶する。変数iが所定の回数countよりも大きくなれば(ステップ56)、iに0を格納し(ステップ57)、休眠時間を決定するための係数bを次のようにして求める(ステップ58)。
変数iが定数countに達したとき、監視対象データが変化した回数がnに格納され、変数{a〜a}には監視対象データが変化するまで同じ値を繰り返した回数が格納されているので、nに関するaの平均値(Σa / n)の整数部分(floor関数により求める)と、最大更新時間間隔Tmaxのうち小さいほうの値(min関数により求める)により係数bを求め(ステップ58)、係数bを最小更新時間間隔Tminに乗じてタスクを休眠させる時間を伸ばすことで監視周期を変化させる(ステップ513)。なお、最大更新時間間隔Tmaxおよび最小更新時間間隔Tminは、事前にクライアントから、最大更新間隔設定関数414(setIntervalMax)、最小更新間隔設定関数415(setIntervalMin)を使ってそれぞれ設定しておくものである。
このように、データ取得先であるコントローラのデータが変化する傾向に応じて更新周期を変化させて、データ取得先のコントローラからデータ取得元である外部機器の該当データを更新しているので、分散システムにおけるデータ更新処理で通信処理を減らすことができるのである。
コントローラ以外の一般機器での通信を伴うデータ更新にも適用することが出来る。
本発明の方法を実施する分散システムの構成を示す概略図 本発明の方法を実施する分散システムのソフトウェア構成例を示す概略図 本発明の方法のコントローラおよびエンジニアリングツール内部のタスクを表す概略図 本発明の方法のインターフェースを表す図 本発明の方法の処理手順を表すフローチャート 従来の方法を適用する分散システムの構成を示す概略図
符号の説明
11 エンジニアリングツール
12a、12b、12c コントローラ
13 通信伝送路
14a、14b、14c 被制御機器
15a、15b、15c 信号伝送路
111 表示部
121 制御部
122 監視部
123 記憶手段
22、23,24 コントローラ
221、231、241 分散協調タスク
222 分散ミドルウェア
232、242 機器制御タスク
31 エンジニアリングツール
32 コントローラ
33 通信伝送路
34 被制御機器
311 データ更新タスク
312 表示更新タスク
313、323 分散ミドルウェア
314、324 データ格納部
321 機器制御タスク
325 監視タスク
41 データ監視制御インターフェース
42 データ更新インターフェース
61 監視装置
62a、62b、62c コントローラ
63 通信伝送路
64a、64b、64c 被制御機器
65a、65b、65c 信号伝送路
611 表示部
621 制御部
622 監視部
623 記憶手段

Claims (3)

  1. 複数のコントローラを備えたネットワーク型の分散システムに接続され、前記コントローラのデータを取得するためのデータ取得装置において、
    前記コントローラのデータの変化傾向に基づいてデータ更新周期を変化させることにより、
    取得する前記コントローラのデータが更新されることを特徴とするデータ取得装置。
  2. 複数のコントローラと、前記コントローラのデータを取得するためのデータ取得装置と、が接続されるネットワーク型の分散システムにおいて、
    前記データ取得装置は、前記コントローラのデータの変化傾向に基づいてデータ更新周期を変化させることにより、
    取得する前記コントローラのデータが更新されることを特徴とする分散システム。
  3. 複数のコントローラと、前記コントローラのデータを取得するためのデータ取得装置と、が接続されるネットワーク型の分散システムにおいて、
    前記コントローラのデータの変化傾向に基づいてデータ更新周期を変化させることにより、
    前記外部機器が取得する前記コントローラのデータが更新されることを特徴とする分散システムのデータ更新方法。
JP2005090835A 2005-03-28 2005-03-28 データ取得装置、分散システムおよび分散システムのデータ更新方法 Pending JP2006276951A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005090835A JP2006276951A (ja) 2005-03-28 2005-03-28 データ取得装置、分散システムおよび分散システムのデータ更新方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005090835A JP2006276951A (ja) 2005-03-28 2005-03-28 データ取得装置、分散システムおよび分散システムのデータ更新方法

Publications (1)

Publication Number Publication Date
JP2006276951A true JP2006276951A (ja) 2006-10-12

Family

ID=37211696

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005090835A Pending JP2006276951A (ja) 2005-03-28 2005-03-28 データ取得装置、分散システムおよび分散システムのデータ更新方法

Country Status (1)

Country Link
JP (1) JP2006276951A (ja)

Similar Documents

Publication Publication Date Title
CN106033215B (zh) 针对工业过程网络的自动过程数据发送和监视
CN106161165B (zh) 用于在工业过程网络上传送数据的方法和现场设备
JP6626240B2 (ja) コントローラ
WO2016130873A1 (en) Extending a programmable logic controller with apps
US10877803B2 (en) Control apparatus, control method and non-transitory storage medium
US11061377B2 (en) Control device
EP1916579B1 (en) Process control system for generating function blocks
EP3657278B1 (en) Method for proxy execution and computation with an industrial controller
WO2015104790A1 (ja) 制御装置、開発装置、および開発プログラム
JP6460137B2 (ja) 制御装置、制御方法、およびプログラム
KR101214488B1 (ko) 설비 관제 시스템 및 이의 운전 방법
US20160196700A1 (en) Universal Software Platform For Work Vehicles
US8301273B2 (en) Method for providing functions in an industrial automation system, control program and industrial automation system
JP2006276951A (ja) データ取得装置、分散システムおよび分散システムのデータ更新方法
CN113867271B (zh) 生产系统、上级控制装置、控制装置、通信方法以及存储介质
JP5140652B2 (ja) ロボット用ソフトウェアコンポーネントのスレッド処理システム及び方法
US20220140888A1 (en) Control system, relay device, and relay program
WO2019244327A1 (ja) 管理装置、管理方法及びプログラム
US10078314B2 (en) Method for providing functions within an industrial automation system, and industrial automation system
JP4633319B2 (ja) 汎用運動制御システム
JP4283421B2 (ja) コントローラ通信処理方法
US20220171361A1 (en) Control system, relay device, and relay program
JPH06149320A (ja) プログラマブルコントローラのリモートi/oシステム
JP4231465B2 (ja) 組込み制御装置
JP3890877B2 (ja) 車両用制御装置