JP2004199670A - データ収集装置及びデータ収集システム - Google Patents

データ収集装置及びデータ収集システム Download PDF

Info

Publication number
JP2004199670A
JP2004199670A JP2003406577A JP2003406577A JP2004199670A JP 2004199670 A JP2004199670 A JP 2004199670A JP 2003406577 A JP2003406577 A JP 2003406577A JP 2003406577 A JP2003406577 A JP 2003406577A JP 2004199670 A JP2004199670 A JP 2004199670A
Authority
JP
Japan
Prior art keywords
unit
data
time
data collection
storage
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
JP2003406577A
Other languages
English (en)
Inventor
Yoshihide Nishiyama
佳秀 西山
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.)
Omron Corp
Original Assignee
Omron Corp
Omron Tateisi Electronics Co
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 Omron Corp, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2003406577A priority Critical patent/JP2004199670A/ja
Publication of JP2004199670A publication Critical patent/JP2004199670A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 この発明は、PLCのCPUユニットから確実かつ高速でデータ収集ができるデータ収集装置及びデータ収集システムを提供すること
【解決手段】 PLCのPLCバス22に接続可能なPLCバスドライバ11と、所定のタイミングに収集命令を指示する時間管理部13と、時間管理部からのデータ収集命令を受けて、内部バスを介してIOメモリ21の所定アドレスに格納されたデータを収集するとともに、その収集したデータをストレージ制御部15に渡すレコーダ部14を備え、ストレージ制御部は、取得したデータを、ストレージに格納する。
【選択図】 図1

Description

この発明は、データ収集装置及びデータ収集システムに関するものである。
FA(ファクトリーオートメーション)で用いられるPLC(プログラマブルコントローラ)は、スイッチやセンサなどの入力機器のON/OFF情報を入力し、ラダー言語などで書かれたシーケンスプログラム(ユーザプログラム)に沿って論理演算を実行する。そして、PLCは、得られた演算結果にしたがって、リレー,バルブ,アクチュエータなどの出力機器に対し、ON/OFF情報の信号を出力することで制御が実行される。
またPLCシステムは、ユーザプログラムを実行するCPUユニット,入/出力機器が接続されてON/OFF信号を扱うI/Oユニット,外部パソコンやプログラマブル表示器などのモニタ機器と接続してネットワーク通信する通信ユニット,アナログ信号を制御したり温度や位置決めの制御などを行う高機能ユニットなど、各ユニットをPLCバスで接続して成り立っている。そしてCPUユニットと各ユニットとの間でPLCバス通信をすることによってデータをやりとりするようになっている。また、PLCシステムには、各ユニットに電力を供給する電源ユニットが取り付けてある。この電源ユニットからの電源ラインは、バスラインと同様にすべてのユニットに対して接続されている。
CPUユニットの処理を説明すると、まず初期処理をした後、I/Oユニットや高機能ユニットとの間で入/出力データ(I/Oデータ)を交換するI/Oリフレッシュ処理,ユーザプログラムに沿って入力データを論理演算するプログラム実行処理,主に通信ユニットによりネットワークを通じて外部とデータ交換をしたり、外部からのメッセージ要求処理などを行う周辺処理、といった各処理をサイクリックに実行する。なお、一般に各処理が行われる1サイクルに所要する時間は、サイクルタイムと言われる。
CPUユニットはIOメモリを持っており、そのIOメモリにIOユニットや高機能ユニットからの入力データを格納するとともに、ユーザプログラムを実行した結果を出力データとして格納するようになっている。CPUユニットは、出力データをIOユニットや高機能ユニットに送り、それらユニットは受け取った出力データに基づいて出力機器を動作させる。
またモニタ機器は、通信ユニットを介してPLCに接続され、外部からCPUユニットに対してアクセス通信し、IOメモリに格納されたデータを読んだり、所定のデータをIOメモリに書き込む。この種の機器には、例えば各種のモニタツールやプログラマブル表示器がある。なお、これらモニタ機器の一部には、通信ユニットを介してPLCに接続するのではなく、CPUユニットのシリアル通信ポートを経由してネットワーク接続するものもある。さらに、モニタツールやプログラマブル表示器の中には、所定のタイミングで周期的にIOメモリに格納されたIOデータを収集し、その収集データを順次格納して記憶保持することにより、PLCの履歴(IOデータがどのように変化したかの履歴)を確認できるようにしたものもある。この履歴を確認することにより、PLCの動作状態の履歴や被制御機器への制御履歴を知ることができる。上記した従来のシステムは、特許文献1,2などに示されている。
特開平5−324015号公報 特開2001−84013号公報
しかしながら、上記の従来のシステムでは、モニタツールなどのモニタ機器がPLCに対してRS232C等のシリアル通信またはネットワークを介して接続されていたため、データの転送に時間を要していた。よってPLCのサイクルタイムごとに外部のモニタ機器でPLCのデータを収集しようとする場合には、データ通信のための周辺処理時間が非常に長くなって、その分、全体のサイクルタイムが長くなり、本来の被制御機器(入出力機器)に対する制御の応答速度が遅くなるといった問題点があった。よって、PLCの制御の応答速度が遅くすることなく、PLCのサイクルタイムごとのデータを収集したいという要望を満たすことができなかった。さらには、PLCの制御の応答速度を遅くすることなく、PLCのサイクリック処理ごとのIOデータを収集することができなかった。
この発明は、PLCの制御の応答速度を遅くすることなく、PLCのサイクルタイムごとのIOデータを確実に収集することができるデータ収集装置及びデータ収集システムを提供することを目的とする。
この発明によるデータ収集装置は、所定のサイクルタイムでサイクリック処理を実行してIOデータを入力および出力するCPUユニット(20)に対してPLCバス(22)を介して取り付けられ、CPUユニットのIOデータを収集するリアルタイム処理と大容量のストレージ部(16)へ収集データを格納するタイムシェア処理とを行うデータ収集装置(10)であって、CPUユニットのサイクルタイムと同等の周期内でリアルタイム処理期間とタイムシェア処理期間とに分割してそれぞれ処理させるための時間管理を行う時間管理部(13)と、時間管理部の管理に基づいてリアルタイム処理期間にPLCバスを介してCPUユニットの収集対象のIOデータを収集して高速メモリ(12または11a)に一時的に記憶するバスドライバ部(11)と、時間管理部の管理に基づいてタイムシェア処理期間にバスドライバ部が収集した収集データを一括で読み出して高速メモリよりも低速の前記ストレージ部に格納する処理を行い、ストレージ部への格納処理に要する時間が1周期内のタイムシェア処理期間内に収まらないときは、レコーダ部の格納に関する処理を複数サイクルのタイムシェア処理期間にまたがって分割して行うようにするストレージ制御部(15)とを備えたものである。なお符号は、各構成要件に対応する実施の形態の部材のものを便宜上付けたもので、本発明の技術的範囲が符号に特定される構成に限定されるものではない。
本発明によれば、データ収集装置の処理周期をCPUユニットのサイクルタイムと同等(またはそれ以下)とすることで、1周期ごとにPLCバスを介して高速にデータ収集できる。その収集したデータはCPUユニットの1サイクルごとのIOデータであるので、PLCの毎サイクルのデータを獲得することができる。また、ストレージ制御部が収集したデータをすべてストレージ部へ格納する。よって確実にデータを収集し記録することができる。
ここで、「PLCバスを介してデータ収集する」とは、データ収集装置とCPUユニットとをつなぐPLCバスラインを使って、CPUユニットのIOメモリに記憶されたデータにアクセスして収集することであり、幾つかの方式で実現できる。例えば、データ収集装置にイベントメモリを設けるとともにCPUユニットにデータ要求をし、CPUユニットがその要求に応じたデータをレスポンス信号としてデータ収集装置に返信し、データ収集装置がそれをイベントメモリに記憶させる方式である。他に、データ収集装置が持つイベントメモリとCPUユニットのIOメモリとの間でデータリンク(連続したメモリエリア同士で一括して共有化する技術)してデータ交換するものでもよい。なお、CPUユニットのIOメモリをデータ収集ユニットにとって共有メモリの扱いとし、データ収集装置はCPUユニットのメモリを読み出し、読み出したデータを直接バッファに一時的に蓄積することでもよい(実施の形態に照らして言うと、イベントメモリ12を省略し、バッファをPLCバスドライバ11の内部メモリ11aとする構成である。この場合は内部メモリ11aに記憶した収集データをレコーダ部14がバッファ17に転送し記憶するような構成となる。他の構成例ではレコーダ部14がPLCバスを経由して直接CPUユニットのメモリを読み、読出データをバッファ17に保存するような構成でもよい)。
「高速メモリに一時的に記憶する」とは、バスドライバ部11が、比較的高速な記録媒体に収集データを保管することである。実施の形態では記憶ドする場所を、レコーダ部14とストレージ制御部15との間に設けたバッファ17としている。実施の形態では、リアルタイム処理部をなす、プロセッサにより行われる。
なお、本発明のデータ収集装置は、PLCシステムを構成するユニットの1つとして実現することができる。つまり、PLCバスと接続可能であればよく、いわゆるビルディングブロック式のユニットタイプや、小型PLCのユニットタイプでなくてもよい。例えば、ベースユニットのバスラインコネクタに引き出しケーブルで接続するような装置タイプであってもよい。すなわち、PLCとは別の装置として構成することは妨げない。
また、より好ましい形態では、バスドライバ部とストレージ制御部との間に高速メモリにアクセス可能なレコーダ部を設け、レコーダ部とストレージ制御部との両方がアクセス可能なバッファメモリを設け、レコーダ部は時間管理部の管理に基づいてリアルタイム処理期間に高速メモリから読み出した収集データを前記バッファメモリに記憶し、ストレージ制御部は時間管理部の管理に基づいてリアルタイム処理期間にバッファメモリに記憶された収集データを一括で読み出すような構成にすることができる。
ここでの「バスドライバ部」は、少なくともCPUユニットのIOメモリにアクセスする機能を持たせたものであり、必ずしも、バスドライバ部自身がCPUユニットのIOデータを収集する機能や収集データを記憶する機能を持っていなくもよい。PLCバスを介してデータ通信をする方式については、前述のようにイベント要求方式(この場合はバスドライバ部自身がデータ収集機能をもつ)でも、データリンク方式(この場合はバスドライバ部自身がデータ収集機能を持っても持たなくても良い)でも、共有メモリ方式(同左)でもよい。
さらに、これらのデータ収集装置においては、ストレージ部の構成を、同一内容のデータを並列に格納する二重化記録構造とするのが望ましい。こうすることで、収集データの記録の信頼性が向上する。
これらのうちのいずれかのデータ収集装置と、そのデータ収集装置に接続される管理コンピュータとを備えたデータ収集システムであって、管理コンピュータは、データ収集システムとの接続に伴い、データ収集装置から所定のアイテムを含む情報を得て、ストレージに格納された収集データを収集可能とするデータ収集システムを構成することができる。これにより、データ収集装置が実時間で収集したデータを管理コンピュータで取得し、各種の解析や保管等が行える。
以上のように、この発明では、PLCのCPUユニットのサイクルタイムを延ばすことなく、CPUユニットの毎サイクルごとのIOデータを確実に収集することができる。
図1は、本発明の好適な一実施の形態を示している。本実施の形態におけるデータ収集ユニット10は、PLCシステムに取り付けられてPLCを構成するユニットの1つであり、CPUユニット20とPLCバス22を介して接続される。もちろん、他のユニットともバス接続してもよい。そしてCPUユニット20は、PLCバスを介してIOユニット(図示せず)を接続していて、そのIOユニットにはIOデバイス30が接続されている。IOデバイス30は、例えばオン・オフ動作をするセンサやスイッチ等の入力機器や、アクチュエータやパワーリレー等の出力機器のことである。そしてCPUユニット20のIOメモリ21は、IOデバイスの入力機器のオンオフ状態に関するデータおよび出力機器の動作状態に関するデータを格納している。
データ収集ユニット10の構成を図1に基づいて説明をする。PLCバスドライバ11は、PLCバス22に対して通信制御をするものである。このPLCバスドライバ11は、IC回路化されたASICチップの形態となってデータ収集ユニット内のプリント基板に実装されている。イベントメモリ12は、CPUユニット20のIOメモリ21から読み出したIOデータを一時格納するもので、プロセッサに内蔵されている高速メモリである。このイベントメモリ12は、具体的には古いデータが格納されたエリアを新しいデータに順次上書き更新するリングバッファの構成となっている。また、イベントメモリ12は、レコーダ部14からアクセス可能で、またPLCバスドライバ11からもアクセス可能であり、レコーダ部14からの処理要求をPLCバスドライバ11に伝えるためのものである。時間管理部13は、レコーダ部13およびストレージ制御部15に対して動作指示を与えるもので、データ収集ユニット10におけるデータ収集の動作タイミングを制御する部分である。レコーダ部14は、CPUユニット20のIOメモリ21のデータ読み出し要求を生成し、PLCバスドライバ11を動作させるものである。さらにこのレコーダ部14は、IOメモリ21から収集してきたデータをイベントメモリ12から読み出す動作に関与する。ストレージ制御部15は、イベントメモリに格納されたデータをストレージ16へ格納するための制御をするものである。なお、これら時間管理部13とレコーダ部14とストレージ制御部15は、一つのプロセッサからなるハードウエア構成となって、この図1では3つの機能ブロックに分けて開示している。ストレージ16は大容量のメモリであり、その書き込み処理のスピードはイベントメモリ12に比べてずっと低速である。ウインドウズ・ファイル・サーバ・インタフェース19a、FTP(ファイル転送プロトコル)・サーバ・インターフェース19b、メッセージ通信インタフェース19cは、いずれもイーサネットを介して外部機器と接続するためのインタフェースである。
このデータ収集ユニット10は、PLCバスに接続されていることでCPUユニット20内のIOメモリ21に格納されたデータを、PLCバス経由で読み出して収集することができるようになっている。なお、このデータ収集ユニット10は、CPUユニットの電源供給系統と同じ系統で電源供給がされるようになっていて、CPUユニットを含むPLCシステム全体が稼動していればデータ収集ユニット10も確実に稼動し、データ収集を継続する。
データ収集ユニット10は、前述のようにPLCバスドライバ11を備えており、そのPLCバスドライバ11を介してPLCバス22に接続される。そしてデータ収集ユニット10は、PLCバス・サイクリック通信によりCPUユニット20のIOメモリ21に格納されたデータを取得する。
バス・サイクリック通信とは、データ収集ユニット10の中で独自に制御されるもので、具体的にいうと、データ収集ユニット10がPLCバス22を介してPLCのCPUユニット20との間で行うデータ通信処理であり、処理の詳細は図2や図6で後述する。バス・サイクリック通信は、相手のPLCのCPUユニット20においてはサイクリック処理のうち周辺処理中に行われる。
つまり、このバス・サイクリック通信によって、データ収集ユニット10が自らPLCバス22を介してCPUユニット20に対してIOメモリ21へのデータアクセス要求を出す。この動作の詳細を述べると、時間管理部13が、自らのタイミング制御によってレコーダ部14に対して動作指示をし、レコーダ部14がその指示によってIOメモリデータ読み出しをする要求をイベントメモリ12に対して出力する。そしてPLCバスドライバ11がその要求をイベントメモリを経由して受信することで、バス・サイクリック処理を実行するようになっている。そのバス・サイクリック処理により、CPUユニットがその要求を受信し、周辺処理の中でレスポンス信号を生成する。要求されたIOメモリ21のデータは、そのレスポンス信号の中に含まれてデータ収集ユニット10へ返信される。そして、IOメモリ21から読み出したデータは、PLCバスドライバ11によってイベントメモリ12に格納される。
さらに、データ収集ユニット10は、バス・サイクリック通信とは別にバス・メッセージ通信も可能となっている。バス・メッセージ通信とは、データ収集ユニット10が、外部機器からネットワークを経由してデータ収集ユニット10に届いたメッセージコマンドを、PLCバス22を介してCPUユニット20のメッセージサービス処理部24に送信し、メッセージサービス処理部24からそのレスポンスを受け取るような通信処理のことを言う。
つまり、データ収集ユニット10は外部機器とメッセージ通信インタフェース19cを介してネットワーク接続できるようにもなっていて、言わば通信ユニットの一部の機能を併せ持つ構成となっている。データ収集ユニット10は、外部機器から受け取ったメッセージをCPUユニット20へ送信し、CPUユニットからそのメッセージに対するレスポンスを受け取り、受け取ったレスポンスを外部機器に送信する。このように外部機器は、このバス・サイクリック通信を利用してCPUユニット20との間でデータの送受信が行えるようになっている。なお、このバス・メッセージ通信も、CPUユニットが実行するサイクリック処理のうち周辺処理の中で行われる処理の一つである。
以上のバス・サイクリック通信およびバス・メッセージ通信を利用して、データ収集ユニット10がPLCのどのようなデータをどのようなタイミングで収集するかを設定できるようになっている。なお図1中では、バス・サイクリック通信の線とバス・メッセージ通信の線との2本が別々に書かれているが、物理的には共通であり、一つのバスラインである。
図2は、IOメモリ21からのデータ読み出しに関わる動作を示している。まず、データ収集ユニット10の時間管理部13がレコーダ部14に対して動作指示をし、レコーダ部14がデータ読み出し要求を生成し、イベントメモリに記憶する。PLCバスドライバ11はイベントメモリ12を定期的に監視しているので、イベントメモリ12に読出要求が記憶されたことを時間遅れなく判読する。そして、PLCバスドライバ12は読出要求に従って予め定められた動作をし、CPUユニット20のIOメモリ21の所定アドレスにアクセスし、IOメモリ21の所望のデータ(CIO,DM)を読み出す。読み出されたデータは、PLCバスドライバ11の内部メモリ11aに取り込まれる。この取り込む処理に要する時間は微小で、CPUユニット20のサイクルタイムに比べて充分短い時間となっている。その後、すぐさまPLCバスドライバ11が、この内部メモリ11aに取り込んだデータを、イベントメモリ12の所定エリアに記憶する。つまり図2に示すように、内部メモリ11aにはCIO´、DM´が取り込まれていて、イベントメモリ12にもCIO´、DM´が格納される。この格納に要する時間も微小で、CPUユニット20のサイクルタイムに比べて充分短い時間である。
このPLCバスドライバ11がIOメモリ21の読み出してイベントメモリ12に格納する処理を行うための所要時間は非常に短く、PLCのサイクルタイムに比べて充分短い。なお、読み出したデータはPLCバスドライバ11の内部メモリ11aに取り込まれるが、内部メモリ11aはデータを読み出すごとに上書きされる構成なので前のデータが残らない。よって、PLCバスドライバ11は、読み出し処理をするたびにイベントメモリ12へ読出しデータを格納するようにしている。イベントメモリ12は、複数〜数10サイクルぶんの読出しデータを格納することができるぐらいには充分な容量をもつ。
このようなPLC(IOメモリ21)へのアクセス手順はユーザによって予めデータ収集ユニット10に設定されている。設定される情報は、PLCのIOメモリのどのアドレスを読み出すかに関する情報で、例えば読み出す対象のメモリ(複数のメモリが存在する場合、どのメモリなのかを特定するため)、メモリのエリアの初めのアドレスと終わりのアドレス(読み出し範囲)、読み出すデータ量などとなる。具体的には、図中のマップ設定11bに示されているように、IOメモリ21のCIOエリアの0チャネルから512チャネルまでの連続したエリア、およびDMエリアの500チャネルから100チャネルぶん(つまり600チャネルまで)の連続したエリアと設定されている。なお、読み出す対象のユニットの号機番号、メモリの読出し範囲(メモリエリア)を設定すれば、図示のCPUユニット以外にも、PLCバスでつながっている他ユニットが持つデータをデータ収集することができる。
つまり、データ収集ユニット10の読み取り動作により、マップ設定11bの格納情報をもとに、PLCバスドライバ11の内部メモリ11aの所定エリア(CIO´、DM´)のデータ内容を、PLCのIOメモリの所定アドレス範囲のデータ内容と同一にすることができる。さらに、マップ設定11bの情報をもとに、PLCバスドライバ11の内部メモリ11aの所定エリアのデータを、イベントメモリ12の所定エリアに読出結果データとして記憶することができる。なおイベントメモリ12の読出結果データは、後述するようにレコーダ部14に送られる。
次に、時間管理部13、レコーダ部14、ストレージ16、インタフェース19について、より詳細な構成・機能を追加説明しておく。
時間管理部13は、タイマ機能により経過時間を監視することが可能で、一定間隔で周期的にタイマ割込みが生じるようになっている。そのタイマ割込みによって一定間隔毎にレコーダ部14に対してCPUユニット10のデータを読み出す旨の動作指示を出力する。これはレコーダ部14にデータ収集命令を指示することを意味する。この収集命令を出す周期はタイマ機能によって予めユーザが任意に設定できる。また、レコーダ部からデータ収集完了の通知を受け取る構成となっている。
ここで図3に基づいて時間管理部13の動作について説明する。まずは事前にタイマ機能の周期タイマをセットしておく(ST1)。このセットはユーザによって行われ、ここではユーザが事前にCPUユニット10のサイクルタイムを別途算出して求めておき、周期タイマ(タイマ機能のタイマ割り込み周期)をそのサイクルタイムの周期と同じ周期に設定しておく。そして、時間管理部13は係るタイマ割り込みが発生するのを待ち(ST2)、タイマ割り込みが発生したならば、レコーダ部14に対して収集命令を発する(ST3、図1の動作指示)。その後、レコーダ部14から収集完了の通知を受信するのを待つ(ST4)。そして、収集完了の通知(図1の動作報告)を受信したならば、ステップ2に戻り、周期タイマに基づく次のタイマ割り込みの発生を待つ。なお、時間管理部13がレコーダ部14およびストレージ制御部15に対して収集したデータをストレージ16に格納するための制御については図6、図7のところで後述する。
レコーダ部14は、時間管理部13からのデータ収集命令を受信すると、PLCバスドライバ11に対して読出要求を出す。その後のレコーダ部14は、図2で説明した動作をPLCバスドライバ11にさせる。レコーダ部14がPLCバスドライバ11に動作させる仕組みを具体的に言うと、まずレコーダ部14がイベントメモリ12の予め定められたビットフラグ(収集処理フラグ)を立てる。PLCバスドライバ11は常にイベントメモリ12のビットフラグの状態を読み出しているので、そのフラグがLOWからHIGHになったことを判読すると、CPUユニット20のIOメモリ21の予め定められた所定の変数データ(IOデータ)を読み出すようになっている。これら一連の動作を終えた後、レコーダ部14は収集完了の旨を時間管理部に通知する。なお、収集したデータをストレージ16に格納する際のレコーダ部14の動作については、図6、図7のところで後述する。
ストレージ16は大容量の記録媒体であり、たくさんの収集データを長時間連続して記録保存するものである。このストレージ16は例えば、メモリカード、コンパクトフラッシュメモリ、フラッシュメモリカードなどを用い、データ収集ユニット10に対して着脱自在で交換できるようにしてもよい(図8でも後述)。もちろん、他の記録媒体でも良く、データ収集ユニット10に初めから内蔵していて交換を想定しないものでも良い。また、メモリカードの一例ではPCカード型ハードディスクがある。このPCカード型ハードディスクは、現在5GBの容量のものが市販されているので、収集するデータの種類やデータ数にもよるが、例えば数日間分の読出データを連続して保持することができるであろう。
そしてストレージ16は、1サイクルごとにIOメモリ21から収集した収集データ(読出データ)を格納するデータ記録部16aと、データ収集ユニット10の全体の動作履歴や異常・故障の履歴を格納する動作記録部16dを備えている。データ記録部16aへの格納はストレージ制御部によってなされる。このデータ記録部16aの容量は、イベントメモリ12に比べると莫大である。動作記録部16への動作記録は時間管理部13によってなされる。またストレージ16はOPCアイテム記録部16bとSCADAプロジェクト16cと動作記録部16dを備えている。OPCアイテム記録部16bは、収集すべきデータを特定するための情報をXML形式で記述したOPCのItem定義を記録するものである。そして、このXMLでの記述は、PLCで使われるタグ名とそのタグ名に対応した実際に収集すべきデータのIOメモリのアドレス情報等を関連付けていて、必要に応じてマップ設定11bの情報を合わせることで、収集したデータとタグ名が関連付けられるので、ユーザは、収集したデータのタグ名を知ることにより、その収集したデータの内容を容易に理解することができる。
SCADAプロジェクト16cには、SCADAソフトと同様の機能が格納されている。具体的には、「PLCの変数データを収集する機能」,「収集した変数データを時系列に記録する機能」,「記録した時系列の変数データを画面に表示する機能」,「収集した変数を実時間に表示する機能」などがある。これら各機能を適宜に実行することにより、収集したデータの表示等が行える。なお、表示についてはデータ収集ユニット10につなげた外部装置,管理コンピュータにて表示させるようにしてもよい。
なお、データ収集ユニット10は、Windows(登録商標)ファイルサーバインタフェース19aやFTPサーバ19bを備えている。これにイーサネット(登録商標)などのネットワークを接続することで、他のコンピュータやモニタ機器等からデータ収集ユニット10のストレージ16にアクセスし、収集データを参照することができるようになっている。つまり、データ収集ユニット10を標準ネットワーク上のファイルサーバとして利用するわけである。
次に、上記した時間管理部13,レコーダ部14並びにストレージ制御部15のより具体的な動作を説明する。図6はそれらの動作のタイムチャートであり、CPUユニット20の1サイクルごとのデータを収集し、ストレージ16に格納する動作を示している。この図の横軸は、構成各部の処理の流れと読出データの流れを示している。縦軸は時間で、データ収集ユニット10におけるデータ収集からデータ記録までの1回分のサイクリック処理を示している。このサイクリック処理の周期は前述のように時間管理部13のタイマ機能への設定次第であるが、CPUユニット20のサイクルタイムに一致するように予め設定しておく。なお、設定可能な時間は短周期だとデータ収集ユニット10のマイクロプロセッサの能力とイベントメモリの書き込み処理速度に依存するが、1ms〜5ms、5ms〜数10msまでを可能としている。長周期についてはユーザ用途の必要によって数10msから数秒,または数分以上に設定することも可能であるが、CPUユニット20のサイクルタイムよりも長い周期を設定してもPLCのサイクルタイムごとのデータを収集できないのであまり意味がない。普通、CPUユニットのサイクルタイムは高速のものだと1ms〜5ms、IO点数が増えると5ms〜数10msのものが多い。この図では周期を20msとした場合を例とする。
図6のように、データ収集ユニット10は、時間管理部13でタイマ割込が20ms毎に生じ、その間の1周期でリアルタイム処理とタイムシェア処理とを行う。リアルタイム処理は、主に図2のところで説明したようにデータ収集ユニット10がPLCのCPUユニットの1サイクルごとに変化するIOデータ(変数データ)を収集する処理である。タイムシェア処理は、ストレージ制御部15がストレージ16に収集データ(読出データ)を格納する処理である。なお、ストレージ16へのデータ格納処理は、あるひとつの周期期間中のリアルタイム処理にて収集した収集データをその周期期間中のタイムシェア処理で完結させることができないので、複数周期ぶんの収集データを複数周期にまたがる複数回のタイムシェア処理によって行うようにしている(詳細は図7のところで説明する)。
リアルタイム処理は、まず、時間管理部13がタイマ割込によりレコーダ部14にデータ収集の開始指令(データ収集命令)を出す。レコーダ部14はそれを受けてイベントメモリ12の収集処理フラグを立てて、PLCバスドライバ11がそのフラグに基づいてCPUユニット20のIOメモリ21へのデータ収集処理を始め、CPUユニット20から所望のデータを得る。
このときのCPUユニット20側の処理内容を詳しく言うと、PLCバスドライバ11からCPUユニット20に対してデータ要求コマンドが送られてくる。CPUユニット20はデータ要求コマンドを受け取ると、CPUユニット20はいったん内部のバッファ(図示せず)にコマンド要求内容を記憶するとともに、コマンド要求を受け取った旨の所定フラグを立てておく(CPUユニット20は周辺処理期間に限らず、起動中であればいつでもこのバッファ記憶とフラグの処理ができる)。そして、CPUユニット20の処理においてサイクリック処理の周辺処理期間に入ると、CPUユニット20がこのフラグを読んで、フラグがONになっているとデータ収集ユニット10からデータ要求を受けていると判断し、OFFだと要求なしと判断する。フラグがONになっている場合には、CPUユニット20は、CPUユニット内部のバッファの要求コマンドを読み出し、その要求コマンドに基づいてIOメモリ21の所定エリアの変数データをPLCバスドライバ11に送信する(なお別方式として、CPUユニット20がPLCバスを介して、CPUユニット20のIOメモリ21の読み出し対象エリアとPLCバスドライバ11の内部メモリ11aとの間をデータリンクするような処理をしてもよい。また逆にPLCバスドライバ11がCPUユニット20のIOメモリ21に対してデータリンクすることでもよい。なおデータリンクとは複数のメモリ同士の間でデータを共有する技術で、あるひとつのメモリの予め定めた連続したメモリエリア内のデータを他のメモリの同じサイズの連続したメモリエリアに転送して、互いのメモリエリアを同一のデータにするものである。これらの場合はCPUユニット20またはPLCバスドライバ11のいずれかのバスアービタ手段によってバス通信制御がされる)。そしてCPUユニット20は、この周辺処理期間中にその他の要求処理がさらにあればその処理を行い、すべての処理が終わるかタイムアウトする(タイムアウトした場合は他の要求処理は中断されることとなる)ことで周辺処理を終了し、次サイクルのサイクリック処理に移る。
さてリアルタイム処理の説明に戻り、PLCバスドライバ11は、CPUユニット20(正確にはCPUユニット10に内蔵されたIOメモリ21)から収集したIOデータをイベントメモリ12に転送し記憶させる。PLCバスドライバ11は収集処理を完了するとイベントメモリの完了フラグを立てる。レコーダ部14はその完了フラグをイベントメモリ12から読み出す。それと同時にレコーダ部14は、イベントメモリ12に格納された収集データを読出し、バッファ17に格納する。このバッファ17への格納は、CPUユニットからIOデータを読み出すごとに毎回のリアルタイム処理のなかで行う。そしてレコーダ部14は時間管理部13に読出完了通知をするとともにストレージ制御部15に記録依頼をする。この読出完了通知は、レコーダ部14がストレージ制御部15に対してリアルタイム処理期間からタイムシェア処理期間に切り替えるよう依頼をすることを意味する。また記録依頼はレコーダ部14がストレージ制御部15にストレージへの格納処理をさせることを意味する。(なおこの格納処理については図7にて具体的に述べるが、あるサイクルのタイムシェア処理ではバッファ17から読出データを読み出す(ジャーナル書出し)動作をし、違うサイクルタイムシェア処理ではストレージ16へ読出データを格納する動作をすることとなる)。これら一連の処理は、実際にはいずれもデータ収集ユニット10に内蔵されたプロセッサの内部処理によって行われる。以上のリアルタイム処理は、一連の動作として連続して行われ、かつ高速に処理される。
さて、ここでレコーダ部14が行う処理について図4のフローチャートに基づいて説明する。まずは事前に初期処理として収集テーブルを作成する(ST11)。この収集テーブルはどのようなデータを収集するかに関する情報を登録するものである。その内容は、ストレージ16のOPCアイテム記録部16bに格納されたタグ情報から、収集すべき対象のデータを特定して、その情報をテーブル化する。この収集テーブルは、収集データに関する項目名の意味を表すヘッダ(先頭行),レコードの順序を表すインデックス番号,レコードの取得時刻1(年月日,時分秒),レコードの取得時刻2(より細かい単位のミリ,マイクロ,ナノ秒),収集した変数の値(複数個)を関連付けて格納するようになっている。
次いで、レコーダ部14は、ストレージ制御部15との間での通信接続を行う。この通信接続には、ストレージ制御部15とストレージ16と間のデータの書き込み、読み出しが正しく行えるように各部の関係を確立するステップと捉えても良い。(ST12)事前の準備を終えた後、レコーダ部14は時間管理部13からの収集指示を受信するのを待つ(ST13)。そして、収集指示を受信すると(図1の動作指示)、PLCバスドライバ11に対してIOメモリ21のデータ読み出しを実行させるためにイベントメモリ12のデータ読出フラグを立てる(ST14)。次にレコーダ部14は、ストレージ制御部15に記録依頼をする。このときイベントメモリ12に格納された収集データをストレージ制御部に送信し、ストレージ制御部15はタイムシェア処理を行ってストレージ16へ収集データの一部を格納し始める(ST15)。それとほぼ同時にレコーダ部14は時間管理部13に対して収集完了を通知する(ST16、図1の動作報告)。この通知の後、レコーダ部14はタイムシェア処理を経て、再び時間管理部13からの収集指示を受信するのを待つ(ST13)。
続いて、タイムシェア処理として、ストレージ制御部15がストレージ16へ収集データの記録を始める。具体的な処理手順は図7のところで説明する。このとき時間管理部13は、周期時間を計時していて、設定した周期(20ms)に達するとタイマ割込みによって次サイクルの処理の開始指令をレコーダ部14とストレージ制御部15に対して出す。これにより、レコーダ部14は再びデータ収集処理を始め、ストレージ制御部15の記録処理は中断され、記録処理の続きは次のサイクルのタイムシェア処理中にて行われる。
レコーダ部14、ストレージ制御部15、ストレージ16におけるデータの書き込み手順とその構成を図7に示す。この図7の構成・手順によって収集データを効率的にストレージ16へ格納する処理を実行可能としている。この背景には、大容量のストレージ16に読出データを格納する際の処理速度は速くないので、図6で説明した1周期内のタイムシェア処理の時間ではデータを格納し終えることができない場合が多いという事情がある。また、ストレージ16は、格納するデータ量が非常に多くても少なくても格納するための処理時間はほぼ一定という特性をもっている。つまりストレージ16がデータを書き込む時間そのものは、書き込むデータ量の大小にあまり依存せず、ストレージ自体の性能に依存している。コンパクトフラッシュメモリの場合はその時間は大体10〜数10msであり、記録媒体の種類によってはそれ以上の時間が必要となる。さらに、その格納処理を途中で中断することが可能であり、かつその途中から格納処理を再開できる特性をもっている。これは格納処理を複数回に分割してもよいことを意味する。よって複数周期のタイムシェア処理にまたがって分割の格納処理を行うことで、格納処理時間を複数回分合わせた合計時間とすることができ、その格納時間を確保することができるわけである。この実施形態では、この特性をうまく利用して毎サイクルことの収集データをもれなくストレージ16へ格納するようにしている。
図7においてレコーダ部14とストレージ制御部15との間に高速バッファメモリ17が設けられている。図1では図示を省略していたが、このバッファ17は、レコーダ部14とストレージ制御部15との両方からアクセスできるものである。またバッファメモリ17はサイクル複数回ぶんの読出データを一時保管できるものである。図では10回ぶんの読取データを保管するような構成としている。
次に処理手順を説明すると、レコーダ部14は「PLCの読み出し」ステップの動作によってPLCのIOデータをIOメモリ21からイベントメモリ12に格納する(実際にはPLCバスドライバ11の動作によって行われる)。次の「バッファへ書き込み」のステップで、レコーダ部14はイベントメモリ12に格納された収集データを読み出し、バッファ17の所定のエリアに書き込む。この書き込み動作は図6で説明したリアルタイム処理の1サイクル毎に行い、毎サイクル繰り返す。バッファ17のエリアは複数に分けられていて、レコーダ部14は1サイクル毎に収集した収集データを読出データエリア1〜10…のうち特定の1つのエリアに順次記憶する。図で示すバッファ17の読出データ1,2,…,10は、ある1回目のサイクルから10回目のサイクルまでの読出データが格納されていることを意味している。
一方、ストレージ制御部15は、バッファ17から複数サイクル分の読出データを一括して読み出す。そして、読出した読出データをジャーナルに加工し、ジャーナルファイルの形でストレージ16(データ記録部16a)の所定エリアに記録する。ジャーナルとは、 バッファに記録されたデータをストレージのデータ領域へ格納する動作を行なう前に、ストレージ制御部がバッファのデータ内容を書き出すログファイルをいう。このジャーナルファイルは予め作成しておき、このジャーナルファイルに書き出したデータをストレージ16に格納する(図7に示すように読出データ1、2〜10が格納される)。この格納動作は、図6のところで説明したように複数サイクル分のタイムシェア処理時間で分割して行われる。なお、何サイクル分の読出データをジャーナルに加工するかは、予めユーザがデータ収集ユニット10に対して設定しておく。これは時間管理部13のサイクル周期内のタイムシェア処理の時間とストレージ16のデータ格納処理時間(記憶速度)との関係で決まる。決める際には、ストレージ16の格納処理時間を確保するのに、最低で何回分のタイムシェア処理の時間が必要かを演算すればよい。もちろん、時間余裕を充分とって、それよりももっと多くの数のサイクル分の読出しデータをジャーナル加工してもよい(この場合、ストレージ16に1まとめ(複数分割した合計の意味)で格納するデータ量は多くなるが、格納速度はほとんど変わらないから問題はないが、バッファメモリ17の容量が足りることが条件となる)。ここでは例えば、10サイクルぶんのデータをジャーナル加工してストレージ16に格納するように設定してあるとする。
ストレージ制御部15の主要動作を図5のフローチャートに示す。まずレコーダ部14が取得した読出データ(IOデータ)をストレージ16内に格納するために、予めジャーナル(ジャーナルファイル)を作成しておく(ST21)。そしてレコーダ部14との通信接続を確立するとともにバッファ17へのアクセスも確立する(ST22)。その後は周期的に、バッファ17に記録されたデータをストレージ16に格納する動作を繰り返す。すなわち、図6で説明したように1サイクルごとにIOメモリ21のデータを収集してきてイベントメモリ12に格納し終えた後、レコーダ部14が収集したデータを読出し、レコーダ部14からストレージ制御部15へ記録依頼のデータ受信があったか否かを判断する(ST23)。これを受信したならば、時間管理部13に対してストレージへの記録処理の開始した旨を通知する(ST24、図1の動作報告)。
そして、タイムシェア処理時間を利用して、ストレージ制御部15がバッファ17にアクセスして予め定められたサイクル分(ここでは10サイクル分)の読出データを一括で読み出してジャーナルに書き出し処理をする。そしてジャーナルファイルの10個のデータをストレージ16に格納する(ST25)。これらの処理(ジャーナル書出処理、ストレージ格納処理)は、複数周期(ここでは10周期)のタイムシェア処理時間に分割して行われ、タイムシェア処理時間が終了すると処理は途中で中断され、次の周期のタイムシェア処理時間がくれば前回の処理の続きを再開する。よってこのステップの実際の処理内容は、ある周期(通常は10サイクルのうち1回のサイクル)ではジャーナル書出処理をするし、他のある周期(残りの9回のサイクル)ではストレージ格納処理をすることとなる。そして時間管理部13にてタイムシェア処理時間を終了するタイミングになれば、ストレージ制御部15は時間管理部13から処理完了通知(処理を中断するための指示)を受ける。ストレージ制御部15におけるストレージ16への格納処理がタイムシェア処理時間中に完了した場合、ストレージ制御部15は時間管理部13に対し、処理完了通知を行う。この後、ストレージ制御部15においてジャーナル書出しを行うべき周期になっていると判断すれば、バッファ17の読出データを一括読出しをし、ジャーナルに書き出す。まだその周期になっていないと判断すれば、残りのタイムシェア処理時間においては待機状態となる(ST26)。その後ステップ23に戻り次のデータ受信を待つ。
ところで、ストレージ16に高速のコンパクトフラッシュメモリを用いて、そのデータ格納時間が例えば10msであった場合、CPUユニット20のサイクルタイムが比較的長く、時間管理部で設定した周期も合わせて長く、タイムシェア処理時間が10msよりも長くなるような場合であれば、ストレージ処理部15において複数サイクルにわたる読出データをジャーナル加工しなくても、1サイクルごとの収集データをそのサイクル中のタイムシェア処理期間中にストレージ16に格納し終えることができる。仮にデータ収集ユニット10のデータ収集のサイクルタイムを短い周期で再設定(CPUユニットのサイクルタイムが短くなった)すると、ストレージ自体の記録処理に要する時間がそれよりも長くなってしまい、1周期のタイムシェア処理の時間内にストレージ16への記録処理が終わらないようになる。これを回避するためには、データ収集ユニット10のデータ収集のサイクルタイムを長く設定して、ストレージ制御部15が1周期ごとにストレージ16への記録を完了させるようにすれば良いかも知れないが、CPUユニットのサイクルタイムとの関係もあるのでそうできない場合がある。その場合には当然、データ収集ユニット10のデータ収集のサイクルタイムを短い周期に再設定したままで、ストレージへの格納処理を複数サイクル分にまたがって分割して行えばよい。つまりストレージへの格納処理時間よりも、その複数サイクル分のタイムシェア処理時間の合計時間が長くなるように設定すればよい。
さらに各設定をどのように行うかについて具体的に説明する。仮にデータ収集ユニット10のデータ収集のサイクルタイムが20ms,ストレージの格納処理時間が150ms,リアルタイム処理が5msだとすると、1サイクル中のタイムシェア処理時間は20−5=15msとなる。ストレージ格納処理に必要なサイクル数は、ストレージの格納処理時間150ms÷タイムシェア処理時間15ms=10回分となる。なおジャーナル書出しに要する時間は微小で、ここでは無視できる程度である。この場合なら、バッファ17は10周期分の読出データを溜め込むように、予めエリアを1〜10と分ければよい(図示したエリアは1〜10の10個。)。つまり、レコーダ部14はバッファ17に蓄えられた10周期分の読出データ(1〜10)を10周期に1度(つまり約150ms毎に)一括で読出してジャーナルに書き出すようにする。そして記録部15は、10サイクル分にまたがるタイムシェア処理(合計150ms)で、ストレージ記録処理をするようにする。仮にジャーナル書出しに要する時間が無視できない程度の時間で、例えば15msであったならば、ストレージへの格納処理時間全体は、ジャーナル時間15ms+ストレージ格納処理時間150ms=165msとなる。この場合はストレージ格納処理時間全体165ms÷1サイクルのタイムシェア処理時間15ms=11なので、11周期で1まとめのストレージ格納処理をすればよい。もちろん、この処理を10(後述の例では11)サイクルよりも多くのサイクルにまたがって行うようにしてもよい。
このように、レコーダ部14,ストレージ制御部15間にバッファ17を設けて複数サイクル分の読出データをひとまとめにしてストレージ16に格納するようにすることにより、データ収集サイクルタイムに比べてストレージ自体の格納速度が遅くても対応することができる。すなわち、データ収集サイクルタイムの一定周期で高速に処理を完了しなければならないレコーダ部14は、収集データを、ストレージ16に直接格納するのではなく、高速なアクセスの可能なバッファ17への書き込むことをもって処理を完了することができる。こうするためにも時間管理部13とレコーダ部14とストレージ制御部15のそれぞれの機能を一つのマイクロプロセッサに実装し、そのマイクロプロセッサにバッファ17を内蔵するのが好ましい。
ここで、他に関連する処理時間について説明する。バスドライバ11とPLC間のやりとり、つまりPLCバスドライバ11とCPUユニット20のIOメモリ21との間のデータのやりとりは、PLCバス通信を利用するので高速処理であり、その処理時間は数ms程度となる。また、PLCバスドライバ11がイベントメモリ12にデータ記録する処理は、データ収集ユニット10の内部処理であり、またユニット内部バスを経由するので高速であり、その処理時間は微少時間(1ms以下)である。また、時間管理部13,レコーダ部14,イベントメモリ12での一連のリアルタイム処理も、データ収集ユニット10の内部処理(マイクロプロセッサ処理)なので非常に早く、その処理時間は微少時間である(マイクロプロセッサの能力によるが1ms以下〜10ms以下)。よって、データ収集ユニット10のデータ収集処理のサイクルタイムを20msとした場合には、リアルタイム処理の時間は数msで、タイムシェア処理のほうは残りの十数msとなる。なお、PLCのCPUユニットのサイクルタイムはユーザの制御内容によってまちまちで数ms〜数10ms、あるいは数百msとなっている。
次にデータ収集ユニット10におけるチューニングについて説明する。第1に、データ収集ユニット10のデータ収集処理のサイクルタイムはユーザにて設定可能としているので、PLCのCPUユニットのサイクルタイムをユーザにて算出して同じ値にすることで、PLCでの1サイクル毎の変数データの変化を、データ収集ユニット10でもれなく収集することができる。第2に、ストレージ記録を何回分のサイクルにまたがって処理するかの設定調整は、CPUユニット20のサイクルタイムとデータ収集ユニット10の周期(時間管理部のタイマ機能の周期)とを一致させ、ストレージ16の格納処理時間を何サイクル分のタイムシェア処理時間で確保できるかを考慮し、バッファ17がそのサイクル分のデータを記憶できる範囲とすればよい。つまり、データ収集を試験的に実行し、時刻管理部13,レコーダ部14並びにストレージ制御部15が実行した動作(処理の開始/完了)を記録する。そして、設定周期内で各処理部が適切な状態で動作するかどうかを確かめながら、収集サイクル、一括読出の周期や希望の読出データ量などのアプリケーション条件を調整すればよい。なお、希望の読出データ量の調整・設定というのは、CPUユニット20につながれるすべてのIOデータを対象としてもよいし、すべてでなく特定のIOデータのみ選択してもよいという意味である。なお、データ収集ユニット10のサイクルタイムがCPUユニット20のサイクルタイムよりも長い場合には、データ収集ユニット10がCPUユニット20に対して送るデータアクセス要求は、CPUユニットにとっては毎サイクルでなく非連続なイベント的処理となる。
図8は、データ収集ユニット10の正面図である。データ収集ユニット10の前面は2つのメモリカードスロット18を有し、それら2つのメモリカードスロット18にそれぞれ所定のメモリカードを装着することにより、ストレージ16が構成される。2枚のメモリカードを利用することによって二重化を図ることができるようになる。ストレージ16に2重化記録するのは、図9(a)に示すストレージ16内のストレージサービス16eにより行われる。ストレージサービス16eは、ストレージ制御部15から記録すべき収集データを受け取ると、2枚のメモリカード(データ記録主部16a′,データ記録副部16a″)それぞれに対して同一内容のデータを書き込む。2つのデータ記録部を同一の能力とし、両者への記録処理を同期させて、並列的に処理してもよい。こうすることにより二重化を図ることができる。
さらに、二重化の状態で使用している場合に、メモリカードを交換する際には必ず1枚ずつ行い、少なくとも1枚のメモリカードを装着しておくようにする。このような使用を行うことにより、例えば、通常の2枚装着時には二重化による収集データの記録を行い、データ収集の安全性を高めるとともに、メモリカードを交換する場合には、まず1枚のみ取り外すことにより、残りの1枚はメモリカードスロット18に装着された状態のままとなるので、当該残りのメモリカードに対して収集データを記録する。これにより、メモリカードの交換の際にも収集データを連続して記録することができる。
また、図9(b)に示すように、2枚のメモリカードからなるデータ記録部16a′,16a″を用いることにより、記憶容量は2枚の合計分とすることができ、2重化はできないが大容量の記録に対応することもできる。なお、データ収集ユニット10の使用者が、2つのメモリカードを並列使用して2重化記録するか、2枚分として使用して大容量記録するかを選択できるようになっている。選択の設定は、データ収集ユニット10内蔵のDIPスイッチで行うか、外部ツール装置からソフト的設定により行う。
さらにまた、ストレージサービス16eによりストレージ16に記録された収集データは、一般的なWindows(登録商標)クライアント等から共有フォルダ,共有ファイルとして使用可能な形式とする。これよって、汎用のパソコン等を用いて当該収集データをアクセスするに際し、専用ドライバを用意したり、特別な設定をすることなく簡単にその収集データを見ることができる。その結果、このデータ収集ユニット10を、イーサネット(登録商標)などのネットワークに接続することにより、当該ネットワークに接続された他のコンピュータ等からストレージ16にアクセスし、収集データを参照することができる。つまり、標準ネットワーク上のファイルサーバとして利用可能となる。
そして、係るネットワークに接続可能とするため、図1に示すように、本データ収集ユニット10は、Windows(登録商標)ファイルサーバインタフェース19aやFTPサーバ19bを備えている。さらに、メッセージ通信インタフェース19cも備えている。このメッセージ通信インタフェース19cは、PLCバスドライバ11と接続されている。
これにより、ネットワーク上のコンピュータから受信したメッセージをPLCバスを介してCPUユニット20のメッセージサービス処理部24に与え、そのメッセージに従った所定の処理を実行したり、メッセージに対するレスポンスとしてIOメモリ21のデータを取得したりすることができるようになっている。
図10は、上記実施の形態の応用例であるデータ収集ユニット10を備えたPLC1が持つデータを管理コンピュータ40が収集するようにしたデータ収集システムの一例を示している。
まず、PLC1側は、上記の実施の形態と同じであり、CPUユニット20と、そのCPUユニット20のIOメモリ21に格納されたデータを実時間で収集可能なデータ収集ユニット10とを備えている。もちろん、図示省略するが、PLC1を稼働させるために必要な他のユニットも備えている。なお、図10において、リアルタイムロガー10′は、CPUユニット20のIOメモリ21に格納されたデータを実時間でデータ収集し、ストレージ16に格納するもので、前述の実施の形態における時間管理部13,レコーダ部14,ストレージ制御部15さらにイベントメモリ12,バッファ17等のそれぞれと同じ構成とされる。これにより、時間管理部から所定時間間隔で発せられる動作指示に基づき、IOメモリ21のデータが収集されストレージ16に逐次蓄積される。
一方、管理コンピュータ40は、図1に示す各種インタフェース19a〜19cを介してデータ収集ユニット10とデータの送受を行うことができる。つまり、ストレージ16にアクセスし、そのストレージ16に格納された各種のデータを取得したり、PLCバスドライバ11を介してIOメモリ21にアクセスすることができる。
さらに、内蔵するデバイス読み出し機能(OPCサーバ)41により、PLC1(データ収集ユニット10)から必要なデータ(データ収集ユニット10が収集するタグと、表示の方式(プロジェクト)等)を取得するようになっている。つまり、管理コンピュータ40が新たにデータ収集ユニット10に接続し、通信を開始するに先立ち、スタートアップローダ42を稼働させ、データ収集ユニット10が持つOPCアイテム記録部16b,SCADAプロジェクト16c等を読み込み、同一内容の情報(OPCアイテム,SCADAプロジェクト)を保有することができる。
なお、管理コンピュータ40は、ネットワークに接続されるコンピュータでも良いし、携帯型のコンピュータ等各種のタイプのものを用いることができる。そして、前者の場合には、例えば対象となるPLC1(データ収集ユニット10)が接続されているネットワークに接続されたときに、新規な接続としてスタートアップローダ42を稼働させ、また、後者の携帯型のコンピュータの場合、当該管理コンピュータ40をデータ収集ユニット10に直接接続させることにより通信可能にした状態でスタートアップローダ42を稼働させることができる。
そして、取得したトレンド情報は、SCADAランタイム43がSCADAスクリーン44に表示する。これにより、作業者は、例えば装置の脇でデータ収集ユニット10に携帯型の管理コンピュータ40を接続し、取得した装置のトレンド情報をその管理コンピュータ40の画面で確認することができる。その結果、装置の詳細を知らない作業者であっても、例えば収集するデータのタグ名等から収集する内容を容易に理解でき、装置の状況を調べることが可能となる。
さらに、取得した収集するタグ等の情報に基づきSCADAランタイム43がOPCサーバ41を介してIOメモリ21のデータを収集する。これにより、データ収集ユニット10で収集しているデータの現在の状態を取得することができ、おおよその異常の有無を判断することができる。もちろん、メッセージを適宜変更することにより、データ収集ユニット10で収集していない情報を取得することもできる。
さらに、作業者が、上記のようにして取得した現在の状態において問題を発見した場合、作業者は同じ管理コンピュータ40を操作し、リアルタイムロガー10′が所定周期(例えば数10ミリ秒周期)で収集し、ストレージ16に格納されたログデータを、トレンドGUIコンポーネント45で読み出すとともに、所定の形式でグラフ表示する。また、取得したログデータを、他のアプリケーションが利用できるようなグラフやデータのオブジェクトを生成し、他の装置等に提供可能となる。
また、例えば管理コンピュータ40が故障した場合に、新たな管理コンピュータ40をデータ収集ユニット10に接続後、スタートアップローダ41がSCADAプロジェクト及びOPCアイテムをデータ収集ユニット10から読み出すとともに管理コンピュータ40上の設定を行うことにより、その後は、データ収集ユニット10の情報を元に、上記と同様に故障した管理コンピュータ40が行っていたのと同等の処理を行わせることができる。
このように、あらかじめ管理コンピュータ40に対して、モニタするプロジェクトやタグ情報をインストールする必要がなく、しかも、必要に応じてスタートアップローダ42によって自動的に必要な情報を取得し、設定することができる。さらに、プロジェクトやタグ情報に変更があった場合でも、スタートアップローダ42によって、再度必要な情報を取得することができ、作業者が管理コンピュータ40に対して変更されたプロジェクトやタグ情報を再インストールする必要がない。換言すると、データ収集ユニット10ごとの専用管理コンピュータの設置が不要となる。
本発明に係るデータ収集装置の好適な一実施の形態を示す図である。 本実施の形態のデータ収集の作用を説明する図である。 時間管理部の機能を示すフローチャートである。 レコーダ部の機能を示すフローチャートである。 記憶部の機能を示すフローチャートである。 データ収集のタイムチャートを示す図である。 レコーダ部並びにストレージ制御部を用いたデータの書き込み手順を示す図である。 データ収集ユニットの前面の一例を示す図である。 ストレージを示す図である。 本発明の他の実施の形態であるブロック図である。
符号の説明
1 PLC
10 データ収集ユニット
11 PLCバスドライバ
11a 内部メモリ
11b マップ設定
12 イベントメモリ
13 時間管理部
14 レコーダ部
15 ストレージ制御部
16 ストレージ
16a,16a′,16a″ データ記録部
16b OPCアイテム記録部
16c SCADAプロジェクト
16d 動作記録部
16e ストレージサービス
17 バッファ
18 メモリカードスロット
20 CPUユニット
21 IOメモリ
22 PLCバス
24 メッセージサービス
40 管理コンピュータ
41 OPCサーバ
42 スタートアップローダ
43 SCADAランタイム
44 SCADAスクリーン

Claims (7)

  1. 所定のサイクルタイムでサイクリック処理を実行してIOデータを入力および出力するCPUユニットに対してPLCバスを介して取り付けられ、CPUユニットのIOデータを収集するリアルタイム処理と、大容量のストレージ部へ収集データを格納するタイムシェア処理とを行うデータ収集装置であって、
    CPUユニットのサイクルタイムと同等の周期内で、リアルタイム処理期間とタイムシェア処理期間とに分割してそれぞれ処理させるための時間管理を行う時間管理部と、
    前記時間管理部の管理に基づいて、リアルタイム処理期間に、PLCバスを介してCPUユニットの収集対象のIOデータを収集して高速メモリに一時的に記憶するバスドライバ部と、
    前記時間管理部の管理に基づいて、タイムシェア処理期間に、バスドライバ部が収集した収集データを一括で読み出して高速メモリよりも低速の前記ストレージ部に格納する処理を行い、ストレージ部への格納処理に要する時間が1周期内のタイムシェア処理期間内に収まらないときは、レコーダ部の格納に関する処理を複数サイクルのタイムシェア処理期間にまたがって分割して行うようにするストレージ制御部と、
    を備えたことを特徴とするデータ収集装置。
  2. 前記バスドライバ部と前記ストレージ制御部との間に、前記高速メモリにアクセス可能なレコーダ部を設け、
    前記レコーダ部と前記ストレージ制御部との両方がアクセス可能なバッファメモリを設け、
    前記レコーダ部は、前記時間管理部の管理に基づいて、リアルタイム処理期間に、高速メモリから読み出した収集データを前記バッファメモリに記憶し、
    前記ストレージ制御部は、前記時間管理部の管理に基づいて、リアルタイム処理期間に、前記バッファメモリに記憶された収集データを一括で読み出す
    ことを特徴とする請求項1記載のデータ収集装置。
  3. 前記バッファメモリは複数周期ぶんの収集データを一時的に記憶でき、ストレージ制御部はその複数周期ぶんの収集データをバッファメモリから一括で読み出すことを特徴とする請求項2記載のデータ収集装置。
  4. 前記ストレージ制御部は、バッファメモリの複数周期ぶんの収集データを一括で読み出してファイル化し、そのファイルデータを複数周期のタイムシェア処理期間にまたがってストレージ部に格納することを特徴とする請求項3記載のデータ収集装置。
  5. 前記ストレージ部は、同一内容のデータを並列に格納する二重化記録構造であることを特徴とする請求項1に記載のデータ収集装置。
  6. 前記時間管理部が管理する周期をCPUユニットのサイクルタイムよりも短く設定したものも含むことを特徴とする請求項1に記載のデータ収集装置。
  7. 請求項1から5の何れか1項に記載のデータ収集装置と、
    そのデータ収集装置に接続される管理コンピュータとを備えたデータ収集システムであって、
    前記管理コンピュータは、データ収集システムとの接続に伴い、データ収集装置から所定のアイテムを含む情報を得て、前記ストレージ部に格納された収集データを収集可能としたことを特徴とするデータ収集システム。
JP2003406577A 2002-12-04 2003-12-04 データ収集装置及びデータ収集システム Pending JP2004199670A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003406577A JP2004199670A (ja) 2002-12-04 2003-12-04 データ収集装置及びデータ収集システム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002353032 2002-12-04
JP2003406577A JP2004199670A (ja) 2002-12-04 2003-12-04 データ収集装置及びデータ収集システム

Publications (1)

Publication Number Publication Date
JP2004199670A true JP2004199670A (ja) 2004-07-15

Family

ID=32775055

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003406577A Pending JP2004199670A (ja) 2002-12-04 2003-12-04 データ収集装置及びデータ収集システム

Country Status (1)

Country Link
JP (1) JP2004199670A (ja)

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006259937A (ja) * 2005-03-15 2006-09-28 Omron Corp データ収集装置およびデータ復元装置
WO2007083585A1 (ja) * 2006-01-17 2007-07-26 Musashi Engineering, Inc. 作業の再開性に優れた作業ロボット
JP2008011288A (ja) * 2006-06-30 2008-01-17 Hitachi Industrial Equipment Systems Co Ltd 監視装置及び監視システム
WO2010032413A1 (ja) * 2008-09-17 2010-03-25 株式会社セガ 情報読み取り装置
CN102032925A (zh) * 2010-11-18 2011-04-27 罗钟洙 一种具有统计功能的检测装置及其统计方法
JP2011210235A (ja) * 2010-03-01 2011-10-20 Panasonic Corp 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
CN102508932A (zh) * 2011-11-17 2012-06-20 航天科工深圳(集团)有限公司 一种遥测、遥信数据处理方法及装置
WO2014080495A1 (ja) * 2012-11-22 2014-05-30 三菱電機株式会社 データ収集・転送装置
CN104965463A (zh) * 2015-07-08 2015-10-07 安徽瑞宏信息科技有限公司 通讯基站通用数据采集器
CN105103067A (zh) * 2013-04-10 2015-11-25 三菱电机株式会社 数控装置、信息协同系统以及信息协同程序
JP2017079008A (ja) * 2015-10-21 2017-04-27 株式会社キーエンス プログラマブル・ロジック・コントローラおよび制御方法
US9727988B2 (en) 2012-01-23 2017-08-08 Toshiba Kikai Kabushiki Kaisha Logic graph displaying apparatus and logic graph display method, both for use with molding machines
EP3364313A1 (en) 2017-02-17 2018-08-22 Omron Corporation Control device
EP3373087A1 (en) 2017-03-10 2018-09-12 Omron Corporation Control device and program
EP3376320A1 (en) 2017-03-14 2018-09-19 Omron Corporation Control device
EP3382480A1 (en) 2017-03-31 2018-10-03 Omron Corporation Controller
JP6727472B1 (ja) * 2019-07-26 2020-07-22 三菱電機株式会社 プログラマブルロジックコントローラ、設定ツール、及びプログラム
CN112840278A (zh) * 2018-10-15 2021-05-25 三菱电机株式会社 可编程逻辑控制器、外部仪器、方法及程序
JP2022091323A (ja) * 2020-12-09 2022-06-21 株式会社日立製作所 データ管理装置及びプログラム
JP7132461B1 (ja) * 2021-03-17 2022-09-06 ファナック株式会社 制御装置
WO2022196562A1 (ja) * 2021-03-17 2022-09-22 ファナック株式会社 制御装置
WO2022224448A1 (ja) * 2021-04-23 2022-10-27 ファナック株式会社 Plc装置及び記録媒体

Cited By (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006259937A (ja) * 2005-03-15 2006-09-28 Omron Corp データ収集装置およびデータ復元装置
US8249745B2 (en) 2006-01-17 2012-08-21 Musashi Engineering, Inc. Work robot excellent in work resumption
WO2007083585A1 (ja) * 2006-01-17 2007-07-26 Musashi Engineering, Inc. 作業の再開性に優れた作業ロボット
CN101375222B (zh) * 2006-01-17 2010-12-01 武藏工业株式会社 作业再次开始性优异的作业机器人
JP4911782B2 (ja) * 2006-01-17 2012-04-04 武蔵エンジニアリング株式会社 作業の再開性に優れた作業ロボット
JP2008011288A (ja) * 2006-06-30 2008-01-17 Hitachi Industrial Equipment Systems Co Ltd 監視装置及び監視システム
WO2010032413A1 (ja) * 2008-09-17 2010-03-25 株式会社セガ 情報読み取り装置
JP2011210235A (ja) * 2010-03-01 2011-10-20 Panasonic Corp 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
CN102032925A (zh) * 2010-11-18 2011-04-27 罗钟洙 一种具有统计功能的检测装置及其统计方法
CN102508932A (zh) * 2011-11-17 2012-06-20 航天科工深圳(集团)有限公司 一种遥测、遥信数据处理方法及装置
US9727988B2 (en) 2012-01-23 2017-08-08 Toshiba Kikai Kabushiki Kaisha Logic graph displaying apparatus and logic graph display method, both for use with molding machines
WO2014080495A1 (ja) * 2012-11-22 2014-05-30 三菱電機株式会社 データ収集・転送装置
JP5687399B2 (ja) * 2012-11-22 2015-03-18 三菱電機株式会社 データ収集・転送装置
CN104813622A (zh) * 2012-11-22 2015-07-29 三菱电机株式会社 数据收集-转发装置
US9426248B2 (en) 2012-11-22 2016-08-23 Mitsubishi Electric Corporation Data collection and transfer apparatus
CN105103067A (zh) * 2013-04-10 2015-11-25 三菱电机株式会社 数控装置、信息协同系统以及信息协同程序
US10108179B2 (en) 2013-04-10 2018-10-23 Mitsubishi Electric Corporation Numerical control device, information coordination system, and information coordination program
CN104965463A (zh) * 2015-07-08 2015-10-07 安徽瑞宏信息科技有限公司 通讯基站通用数据采集器
JP2017079008A (ja) * 2015-10-21 2017-04-27 株式会社キーエンス プログラマブル・ロジック・コントローラおよび制御方法
EP3364313A1 (en) 2017-02-17 2018-08-22 Omron Corporation Control device
EP3373087A1 (en) 2017-03-10 2018-09-12 Omron Corporation Control device and program
US10503154B2 (en) 2017-03-14 2019-12-10 Omron Corporation Control device having function of collecting and saving time series data
EP3376320A1 (en) 2017-03-14 2018-09-19 Omron Corporation Control device
US10891280B2 (en) 2017-03-31 2021-01-12 Omron Corporation Controller for improved time-series data collection
EP3382480A1 (en) 2017-03-31 2018-10-03 Omron Corporation Controller
JP2018173865A (ja) * 2017-03-31 2018-11-08 オムロン株式会社 制御装置
CN112840278A (zh) * 2018-10-15 2021-05-25 三菱电机株式会社 可编程逻辑控制器、外部仪器、方法及程序
CN112840278B (zh) * 2018-10-15 2022-05-10 三菱电机株式会社 可编程逻辑控制器、外部仪器、方法及程序
US11467990B2 (en) 2018-10-15 2022-10-11 Mitsubishi Electric Corporation Programmable logic controller, external apparatus, method, and recording medium
WO2021019615A1 (ja) * 2019-07-26 2021-02-04 三菱電機株式会社 プログラマブルロジックコントローラ、設定ツール、及びプログラム
JP6727472B1 (ja) * 2019-07-26 2020-07-22 三菱電機株式会社 プログラマブルロジックコントローラ、設定ツール、及びプログラム
CN114174939A (zh) * 2019-07-26 2022-03-11 三菱电机株式会社 可编程逻辑控制器、设定工具及程序
CN114174939B (zh) * 2019-07-26 2024-01-12 三菱电机株式会社 可编程逻辑控制器、设定工具及记录介质
JP2022091323A (ja) * 2020-12-09 2022-06-21 株式会社日立製作所 データ管理装置及びプログラム
JP7132461B1 (ja) * 2021-03-17 2022-09-06 ファナック株式会社 制御装置
WO2022196562A1 (ja) * 2021-03-17 2022-09-22 ファナック株式会社 制御装置
WO2022224448A1 (ja) * 2021-04-23 2022-10-27 ファナック株式会社 Plc装置及び記録媒体

Similar Documents

Publication Publication Date Title
JP2004199670A (ja) データ収集装置及びデータ収集システム
US7069349B2 (en) IPMI dual-domain controller
JP6171386B2 (ja) コントローラ、情報処理装置およびプログラム
CN107818021A (zh) 使用bmc作为代理nvmeof发现控制器向主机提供nvm子系统的方法
JP6171387B2 (ja) コントローラ、情報処理装置およびプログラム
US20070088816A1 (en) System and method for monitoring the status of a bus in a server environment
CN100456224C (zh) 数据控制设备
US6282673B1 (en) Method of recording information system events
JP6996257B2 (ja) 制御装置、制御方法、およびプログラム
CN103778024A (zh) 服务器系统及其讯息处理方法
KR100949814B1 (ko) 무정전전원장치의 통합 원격 감시 시스템
CN110221932A (zh) 计算机及其控制方法
CN101795204A (zh) 远距硬件检测系统及方法
US20080140931A1 (en) Disk array system, disk array method, and computer product
JP2001034447A (ja) 画像形成装置管理システム
CN113900718B (zh) 一种bmc与bios资产信息的解耦方法、系统及装置
CN108270868B (zh) 基于Web技术的开放式数控集群控制系统
JP4019946B2 (ja) ネットワークシステムのモニタ方法及びモニタリングシステム並びにリピータ及びモニタ装置
JP3526384B2 (ja) ネットワークシステム、プリンタ及びプリント方法
JP5775367B2 (ja) 情報処理装置及びその制御方法と、ミラーリングシステム及びraid制御装置
JP7403709B1 (ja) 情報処理装置、情報処理方法及びプログラム
CN110647435A (zh) 服务器、硬盘远程控制方法及控制组件
WO2023276351A1 (ja) 制御装置、システムプログラムおよび方法
CN110888598B (zh) 数据储存装置、电子设备及可远程控制电子设备的系统
KR102244297B1 (ko) Hart 패스-스루 인터페이스를 포함하는 plc 아날로그 모듈

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060420

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060502

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060703

A131 Notification of reasons for refusal

Effective date: 20070515

Free format text: JAPANESE INTERMEDIATE CODE: A131

A521 Written amendment

Effective date: 20070717

Free format text: JAPANESE INTERMEDIATE CODE: A523

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080122