JPWO2016079771A1 - 制御装置、制御方法、及びプログラム - Google Patents

制御装置、制御方法、及びプログラム Download PDF

Info

Publication number
JPWO2016079771A1
JPWO2016079771A1 JP2016559695A JP2016559695A JPWO2016079771A1 JP WO2016079771 A1 JPWO2016079771 A1 JP WO2016079771A1 JP 2016559695 A JP2016559695 A JP 2016559695A JP 2016559695 A JP2016559695 A JP 2016559695A JP WO2016079771 A1 JPWO2016079771 A1 JP WO2016079771A1
Authority
JP
Japan
Prior art keywords
data
buffer
stored
extraction
period
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.)
Granted
Application number
JP2016559695A
Other languages
English (en)
Other versions
JP6207763B2 (ja
Inventor
晃一 中川
晃一 中川
寛 芦谷
寛 芦谷
牧田 裕行
裕行 牧田
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2016079771A1 publication Critical patent/JPWO2016079771A1/ja
Application granted granted Critical
Publication of JP6207763B2 publication Critical patent/JP6207763B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B15/00Systems controlled by a computer
    • G05B15/02Systems controlled by a computer electric
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • Programmable Controllers (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Abstract

高速に集計演算を行うことができる制御装置、制御方法、及び制御装置のメモリにインストールされるプログラムを提供する。この発明に係る制御装置であるPLC(1)は、外部センサ(2)により取得されたデータを格納するデバイスメモリ(111)と、デバイスメモリ(111)に格納されたデータのうち予め定められた種類のデータを定期的に抽出するデータ抽出部(112)と、データ抽出部(112)により抽出されたデータを、予め定められた種類に応じて設けられた複数の演算バッファ(113)のうち対応する演算バッファ(113)に格納するデータ分配部(114)と、演算バッファ(113)が予め定められた期間分のデータを格納した場合、演算バッファ(113)に格納されたデータの演算処理を行うデータ集計部(116)と、を備える。

Description

本発明は、外部からデータを取得し、取得したデータを演算して機器を制御する信号を出力する制御装置、制御方法、及び制御装置のメモリにインストールされるプログラムに関する。
従来の制御装置のうち、PLC(Programmable Logic Controller)は、プログラミング可能な制御装置であり、外部センサから高速・大容量なデータを取得し、ラダー言語などで記述したシーケンス制御プログラムに従ってデータを演算して、外部機器を制御する信号を出力する。
また、近年では、PLC等の制御装置をMES(Manufacturing Execution System)またはERP(Enterprise Resource
Planning)などの上位情報系ソフトウエアと連携させたり、SCADA(Supervisory Control And Data Acquisition)と呼ばれる専用ソフトウエアによる高速・大容量なプロセスデータを扱う監視制御システムにおいて、制御装置をプラント内のセンサまたはアクチュエータなどの機器と接続し、制御装置により当該機器を制御するとともに、SCADAが制御装置のメモリに格納されている機器の測定データを読み取って、プラントをリアルタイムに監視したり、データを時系列に保存したり、収集したデータをHMI(Human Machine Interface)にグラフィカルに表示することなどが行われている。
従来の制御装置について説明する。従来の制御装置は、あるイベントが発生したときに特定の処理を実行するモデルを使用し、イベント発生に対応する条件を起動条件、イベント発生により実行される処理をアクションと定義している。起動条件とそれに関連するアクションは、ジョブという単位で管理される。従来の制御装置は、ジョブ情報に、起動条件、その起動条件により実行されるすべてのアクション、及びそれらのアクションの起動パターンを定義し、ある起動条件が成立したら、その起動条件に対応するジョブ情報に定義された起動パターンに従って、それらのアクションを実行する(例えば、特許文献1参照)。
特開2006−243936号公報(段落0002、0024、図1、及び図11)
従来の制御装置は、上位情報系ソフトウエアと連携するシステムに用いる場合、収集したデータの最大、最小、合計などを求めるために時系列に並んだ複数のデータについて一括して処理を行う、いわゆる集計演算を実行するためには、同じ内容のアクションをデータの収集期間の長さ分だけ設定する必要がある。例えば、制御装置のメモリから1秒ごとにデータを抽出する場合、収集期間を1時間とすると3600個のアクションの設定が必要になり、設定作業に手間がかかる。また、収集期間が長くなるほどアクションの呼び出し回数が多くなるため、制御装置が膨大な演算量の処理を実行しなければならず、高速に集計演算を行うことができないという課題があった。
この発明は、上記に鑑みてなされたものであり、高速に集計演算を行うことができる制御装置、制御方法、及び制御装置のメモリにインストールされるプログラムを得ることを目的とする。
この発明に係る制御装置は、外部センサにより取得されたデータを格納するメモリと、メモリに格納されたデータのうち予め定められた種類のデータを定期的に抽出するデータ抽出部と、データ抽出部により抽出されたデータを、予め定められた種類に応じて設けられた複数のバッファのうち対応するバッファに格納するデータ分配部と、バッファが予め定められた期間分のデータを格納した場合、バッファに格納されたデータの演算処理を行うデータ集計部と、を備える。
この発明に係る制御方法は、外部センサにより取得されたデータをメモリに格納するデータ格納ステップと、データ格納ステップにおいて格納されたデータのうち予め定められた種類のデータを定期的に抽出するデータ抽出ステップと、データ抽出ステップにおいて抽出されたデータを、予め定められた種類に応じて設けられた複数のバッファのうち対応するバッファに格納するデータ分配ステップと、バッファが予め定められた期間分のデータを格納した場合、バッファに格納されたデータの演算処理を行うデータ集計ステップと、を備える。
この発明に係るプログラムは、プログラムを格納するメモリと、プログラムを実行するプロセッサと、を備えた制御装置であって、外部センサにより取得されたデータのうち予め定められた期間分のデータごとに演算処理を行う制御装置のメモリにインストールされるプログラムにおいて、外部センサにより取得されメモリに格納されたデータのうち予め定められた種類のデータを定期的に抽出するデータ抽出ステップと、データ抽出ステップにおいて抽出されたデータを、予め定められた種類に応じて設けられた複数のバッファのうち対応するバッファに格納するデータ分配ステップと、バッファが予め定められた期間分のデータを格納した場合、バッファに格納されたデータの演算処理を行うデータ集計ステップと、を制御装置のプロセッサに実行させる。
この発明によれば、高速に集計演算を行うことができる制御装置、制御方法、及び制御装置のメモリにインストールされるプログラムを提供できる。
実施の形態1における情報連携システムの概略構成を示す模式図である。 実施の形態1におけるPLCのソフトウエア構成を示す模式図である。 実施の形態1におけるホスト及びプラグインの例を示す図である。 実施の形態1における情報連携システムが起動して初期化を行うときのPLCの動作手順を示すフローチャートである。 実施の形態1における温度センサの測定データを収集する場合のホスト及びプラグインの例を示す図である。 実施の形態1におけるデータ抽出部が抽出するデータの例を示す図である。 実施の形態1における収集リストの例を示す図である。 実施の形態1における演算バッファの例を示す図である。 実施の形態1における情報連携システムが起動して動作を開始したときのPLCの処理手順を示すフローチャートである。 実施の形態1における情報連携システムの起動後の動作を示す模式図である。 実施の形態1における最大値を演算するための集計関数のソースコードの例を示す図である。 実施の形態1における合計を演算するための集計関数のソースコードの例を示す図である。
実施の形態1.
図1は、実施の形態1における情報連携システムの概略構成を示す模式図である。図1を用いて、実施の形態1における制御装置を用いた情報連携システムについて説明する。なお、以下においては、制御装置を用いた情報連携システムについて説明するが、制御装置を用いた監視制御システムであっても同様に実現することができる。また、本発明は、この実施の形態1により限定されるものではない。
実施の形態1における情報連携システムは、制御装置としてPLC1を用いる。PLC1には、図1に示すとおり、外部センサ2と外部機器3を接続する。外部センサ2は、例えば温度センサ、流量計、または圧力計などである。外部機器3は、例えばポンプまたはバルブなどである。PLC1には、これらの機器が外部センサ2または外部機器3として複数接続される。
PLC1は、ハードウエア構成としてメモリ11とプロセッサ12とを備える。メモリ11は、RAMやフラッシュメモリ等のメモリである。プロセッサ12は、PLC1の全体の動作を制御する中央処理装置(CPU:Central Processing Unit)である。
PLC1は、保守端末4の有する設計ツールからメモリ11にユーザプログラムをロードする。PLC1は、プロセッサ12がメモリ11に格納されたユーザプログラムを実行することにより、外部センサ2から測定データを読み込んだり、外部機器3に制御信号を出力して外部機器3を制御したりする。PLC1におけるホスト21及びプラグイン22は、詳細は後述するが、ユーザプログラムの実行により実現されるソフトウエア処理のことである。
実施の形態1において、PLC1は、制御ネットワーク5によって他のPLC1a及びPLC1bと接続される。制御ネットワーク5は、図1に示す例に限られず、任意の数のPLCを接続することができる。図1に示す例において、複数のPLCの間では、メモリに格納されたデータをサイクリックに通信することでデータを同期する共有メモリ(サイクリックメモリとも称する)と呼ばれる方式などを用いて、リアルタイムに相互にデータの交換を行うことができる。
情報ネットワーク6は、PLC1と監視端末7とを接続する。情報ネットワーク6は、例えばローカルエリアネットワーク(LAN:Local Area Network)などの媒体である。PLC1は、制御ネットワーク5とは別の通信ポートを使って情報ネットワーク6に接続する。
監視端末7は、PC(Personal Computer)であり、TCP/IP(Transmission Control Protocol/Internet Protocol)などの通信プロトコルを使って情報ネットワーク6経由でPLC1と相互に通信できる。ユーザは、監視端末7により、ユーザプログラムがもつデータを監視したり、ユーザプログラムに制御を行うための信号を送信したりすることができる。なお、監視端末7とPLC1を繋ぐ情報ネットワーク6は、ローカルエリアネットワークに限られず、インターネットなどのクラウドであってもよい。
情報ネットワーク6には、さらに外部システム8を接続する。外部システム8は、例えばデータベースであり、TCP/IPなどの通信プロトコルを使ってPLC1と相互に通信できる。
図2は、実施の形態1におけるPLCのソフトウエア構成を示す模式図である。図2を用いて、実施の形態1におけるPLC1の構成について説明する。
PLC1は、ホスト21と複数のプラグイン22a及びプラグイン22bとを有する。ホスト21はオペレーティングシステムやSCADA機能など共通機能を実装したソフトウエアであり、プラグイン22a及びプラグイン22bはその機能を拡張するソフトウエアである。
なお、図2においては、ホスト21に対して2つのプラグイン22a及びプラグイン22bのみが登録されていることを図示しているが、実際には、ホスト21にはさらに複数のプラグイン22が登録されている。以下において、これらのプラグイン22a及びプラグイン22bなどをまとめて、プラグイン22と称する。図2のプラグイン22a及びプラグイン22bなどは、図1において、まとめて図示されているプラグイン22に対応する。
また、後述するプラグイン22の抽出関数121aと抽出関数121b、演算アルゴリズム122aと演算アルゴリズム122b、集計関数123aと集計関数123bなどについても、同様にまとめて、それぞれ抽出関数121、演算アルゴリズム122、集計関数123などと称する。
ホスト21は、デバイスメモリ111と、データ抽出部112と、演算バッファ113と、データ分配部114と、データ変換部115と、データ集計部116と、データ入出力部117とを備える。
なお、図2においては、複数の演算バッファ113a、演算バッファ113b、及び演算バッファ113cを図示しているが、実際には、後述するとおりさらに複数の演算バッファ113が生成される。以下において、生成された複数の演算バッファ113a、演算バッファ113b、及び演算バッファ113cなどをまとめて、演算バッファ113と称する。
デバイスメモリ111は、外部センサ2が取得したデータを格納し、蓄積する。デバイスメモリ111は、アドレスで管理されている。一般的には、外部センサ2から入力された入力値は、デバイスメモリ111のうちのX000〜X9999といったXをデバイス名としたアドレスに割り当てられ、外部機器3に出力する出力値は、デバイスメモリ111のうちのY000〜Y9999といったYをデバイス名としたアドレスに割り当てられる。それ以外の一時的なデータは、デバイスメモリ111のうちレジスタと呼ばれる領域に割り当てられる。レジスタには特性に応じていくつか種類があるが、例を簡単にするために、ここではレジスタはD(データ)をデバイス名とするD000〜D9999のアドレスで表すことにする。
データ抽出部112は、デバイスメモリ111に格納されているデータのうち、収集が必要なデータを抽出する。データ抽出部112は、抽出にあたり、後述するプラグイン22の抽出関数121を使って、収集が必要なデータの種類、データの収集期間、データの収集周期、及び収集条件などの情報を取得する。
また、データ抽出部112は、収集が必要なデータの種類、データの収集期間等の一覧である収集リストを生成する。収集リストは、デバイスメモリ111から抽出するデータについての条件を一覧にしたリストである。データ抽出部112は、収集リストにしたがって、収集が必要なデータの種類、データの収集期間、データの収集周期、及び収集条件ごとに、対応する演算バッファ113を生成する。
さらに、データ抽出部112は、デバイスメモリ111に格納されたデータのうち、収集が必要なデータの種類として予め定められた種類に対応するデータを、抽出関数121を使って抽出する。
演算バッファ113は、データ抽出部112により、抽出関数121が指定するデータの種類、データの収集期間等ごとに、対応するように複数生成される。なお、図2においては、例として、生成された複数の演算バッファ113a、演算バッファ113b、及び演算バッファ113cを図示しているが、生成される複数の演算バッファ113の数は、図2に示す例に限られるものではない。複数の演算バッファ113は、詳細は後述するが、プラグイン22の抽出関数121に記述された、収集が必要なデータの種類、データの収集期間、データの収集周期、及び収集条件に対応する数だけ生成される。
データ分配部114は、データ抽出部112により抽出されたデータを、データの種類、データの収集期間等に応じて設けられた複数の演算バッファ113のうち、対応する演算バッファ113に格納する。
データ変換部115は、予め定められたデータの収集期間分のデータを演算バッファ113が格納した場合に、演算バッファ113に格納されたデータについて、後述するプラグイン22の演算アルゴリズム122を実行してデータの変換処理を行い、演算結果を演算バッファ113に書き戻す。
データ集計部116は、予め定められたデータの収集期間分のデータを演算バッファ113が格納した場合に、演算バッファ113に格納されたデータ変換部115の演算結果について、後述するプラグイン22の集計関数123を使って集計演算を行い、演算バッファ113に書き戻す。
なお、以下において、データ変換部115によるデータの変換処理及びデータ集計部116による集計演算のことを、まとめて演算または各演算などと称する。
データ入出力部117は、演算バッファ113に格納されたデータ集計部116の集計結果を読み出し、外部システム8またはデバイスメモリ111に出力する。また、データ入出力部117は、外部システム8から受け取った検索指令に基づき、デバイスメモリ111に格納されているデータをデータ抽出部112に検索させたり、データ抽出部112がデバイスメモリ111から抽出したデータを受け取って外部システム8に出力したりする。
プラグイン22は、抽出関数121と、演算アルゴリズム122と、集計関数123とを備える。
抽出関数121は、データ抽出部112が演算バッファ113を生成する際、及びデータ抽出部112がデバイスメモリ111からデータを抽出する際に用いられる、抽出が必要なデータを絞り込むためのアルゴリズムを記述した関数である。抽出関数121には、収集が必要なデータの種類、データの収集期間、データの収集周期、及び収集条件などが記述されている。
演算アルゴリズム122は、データ変換部115が演算バッファ113に格納された値について演算をする際に用いられる、正規化、バイアス、割合などの演算に関するアルゴリズムを記述した関数である。
集計関数123は、データ集計部116がデータ変換部115の演算結果の値を集計する際に用いられる、最大、最小、合計などを求めるための集計演算に関するアルゴリズムを記述した関数である。
抽出関数121aと抽出関数121b、演算アルゴリズム122aと演算アルゴリズム122b、集計関数123aと集計関数123bは、通常、それぞれ異なる関数が記述されている。
また、プラグイン22aの抽出関数121a、演算アルゴリズム122a、及び集計関数123aは、抽出関数121aにより関連付けられており、プラグイン22bの抽出関数121b、演算アルゴリズム122b、及び集計関数123bは、抽出関数121bにより関連付けられている。これらの抽出関数121、演算アルゴリズム122、及び集計関数123は、関連する抽出関数121ごとにプラグイン22としてホスト21に登録される。
図3は、実施の形態1におけるホスト及びプラグインの例を示す図である。なお、図3の左端の数字は、プログラムの何行目であるかを示しているが、プログラムを説明するために便宜的に付けた数字であり、プログラムの内容とは関係がないものである。
図3に示すプログラムにおいて、7行目から33行目までがプラグイン22であり、35行目から50行目までがホスト21である。また、図3に示すプログラムにおいて、11行目から15行目までがプラグイン22の抽出関数121、16行目から22行目までがプラグイン22の演算アルゴリズム122、23行目から31行目までがプラグイン22の集計関数123である。
なお、本願の明細書等において、すべてのプログラムはC言語(C++)により記述されている。
図3に示すプログラムは、抽出関数121の収集条件の例として、デバイスメモリ111から抽出されたデータのうち2で割り切れるデータを収集するものが記述されている。また、図3のプログラムでは、ホスト21のデータ抽出部112がプラグイン22の抽出関数121を呼び出し、ホスト21のデータ変換部115がプラグイン22の演算アルゴリズム122を呼び出し、ホスト21のデータ集計部116がプラグイン22の集計関数123を呼び出すことを示している。
このように、実施の形態1のPLC1におけるホスト21とプラグイン22は、図3に示すプログラム等によりソフトウエアとして構成される。PLC1のホスト21とプラグイン22は、PLC1のプロセッサ12が図3に示すプログラム等を実行することにより、実現される。なお、実施の形態1のPLC1におけるホスト21とプラグイン22は、これに限られず、ハードウエアにより実現してもよい。
次に、実施の形態1の情報連携システムの適用例と情報連携システムを用いたデータの収集及び集計演算について説明する。
近年、PLC1などの制御装置とMESまたはERPのような上位情報系ソフトウエアとを連携した情報連携システムが実用化されている。情報連携システムにおいて、制御装置は、制御装置に繋がれた機器のデータを演算して外部のデータベースに蓄積させたり、HMIソフトウエアに送信してグラフィカルに表示させたりすることができる。また、制御装置の中には、内部にデータベースを持ち、外部通信用の専用CPUとは別にシーケンス制御を専用に行う制御CPUを設けることで、上位情報系ソフトウエアへ提供するためのデータの収集を効率良く行えるようにしたものや、収集したデータを要求に応じてXML(Extensible Markup Language)またはHTML(Hyper Text Markup Language)に変換して上位情報系ソフトウエアへ送信するものがある。
また、水処理や化学系のプラントのように高速・大容量なプロセスデータを扱う監視制御システムでは、通常、SCADAと呼ばれる専用ソフトウエアが専用の機器で実行されている。プラント内において、センサやアクチュエータなどの機器は制御装置に接続されており、制御装置はシーケンス制御アルゴリズムを実行して機器に制御信号を送信する。SCADAは、制御装置のメモリに格納されている機器の測定データを読み取り、プラントをリアルタイムに監視したり、データを時系列に保存したりたりすることができる。また、HMIを備えたSCADAもあり、収集したデータをHMIにグラフィカルに表示することもできる。
実施の形態1の情報連携システムにおいて、温度センサまたは流量計などである外部センサ2は、温度または流量などのデータを取得し、PLC1は、ユーザプログラムを使って外部センサ2から測定データを読み込んで、入力値としてデバイスメモリ111に書き込む。しかし、上記において説明したとおり、デバイスメモリ111は、予め割り当てられているアドレスに入力値を格納する。このため、PLC1が外部センサ2の値を新しく取得した場合、すでにデバイスメモリ111に格納されている同じ外部センサ2の古い値は、PLC1が新しく取得した入力値により上書きされ、失われてしまう。そこで、実施の形態1の情報連携システムは、SCADAによりデバイスメモリ111の値を定期的に読み出し、読み出したデータに読み出した時刻(タイムスタンプ)を付けて、SCADAソフトウエア内のデータベースである外部システム8に保存する。
なお、デバイスメモリ111からすべての値を読み出す必要はない。また、デバイスメモリ111の各アドレスの値を同じ周期で呼び出すことにも限られない。データ抽出部112は、デバイスメモリ111から任意のデータを任意のタイミングで読み出せばよい。例えば、データ抽出部112は、デバイスメモリ111に格納された値のうち、温度センサの値は60秒ごと、流量計の値は変化が大きいので1秒ごとに読み出すようにしてもよい。
一方、情報連携システムでは、工場やプラントから大量に収集されるデータを利用するにあたり、収集したデータの最大、最小、合計などを求めるために、時系列に並んだ複数のデータについて一括して処理を行う、いわゆる集計演算を実行することがある。しかし、制御装置がジョブ単位でアクションを定義する方式を採用している場合、制御装置が集計演算を実行するためには、同じ内容のアクションを収集するデータの数だけ記述する必要がある。このため、設定作業に手間がかかるとともに、演算アルゴリズムの呼び出し回数が膨大になるため制御装置の演算量が膨大になり、高速に集計演算を行うことができない。また、複雑な演算を実行するためには、1つの演算を複数のアクションに分割し、これらの複数のアクションを個別に定義する必要があるため、演算量が増加して処理速度がさらに低下する。よって、このような場合において集計演算を実行するためには、制御装置とは別に、集計演算を行うデータベースを備えた専用のパソコンを用意する必要がある。
さらに、SCADAを実行する監視制御システムをプラントのような信頼性及び高品質が要求される環境で用いる場合には、耐環境性及び耐故障性の高いFAパソコンのような高価な専用機を使用する必要があり、コストが増加してしまう。
そこで、実施の形態1の情報連携システムでは、PLC1がデバイスメモリ111に格納されたデータを外部システム8に出力する前に、PLC1に高速に集計演算を実行させることを可能にする。これにより、別途専用のパソコンを用いることなく構成可能な情報連携システムを提供する。
次に、実施の形態1における情報連携システムの動作について説明する。図4は、実施の形態1における情報連携システムが起動して初期化を行うときのPLCの動作手順を示すフローチャートである。図4を用いて、実施の形態1における情報連携システムの初期化時の動作を説明する。
なお、以下においては、特に、外部センサ2として温度センサaをPLC1の入出力ユニットに接続し、温度センサaが測定したデータを監視する例について説明する。
情報連携システムの初期化時、図4のステップST1において、PLC1は、ホスト21に登録されているプラグイン22をロードし、処理を実行する。
図5は、実施の形態1における温度センサの測定データを収集する場合のホスト及びプラグインの例であって、図3とは別の例を示す図である。なお、図5の左端の数字は、プログラムの何行目であるかを示しているが、プログラムを説明するために便宜的に付けた数字であり、プログラムの内容とは関係がないものである。
図5に示すプログラムにおいて、1行目から10行目までがプラグイン22aの抽出関数121aである。また、12行目から58行目までがホスト21であり、そのうちの12行目から25行目までがデータ分配部114、27行目から58行目までがデータ抽出部112である。
今回説明する例において、抽出関数121aは、データの収集期間を1分として、図5の4行目に示すtest_function_per_dayのとおり定義する。図5における抽出関数121aは、開始時刻である毎日00時00分00秒から終了時刻である00時00分59秒まで、デバイスメモリ111のアドレスX1234から1000ms周期でデータを読み出すことを示している。
なお、図5に示す抽出関数121aは、単純に値を返すだけのものを記述しているが、これに限られない。抽出関数121は、関数として実現しているために、例えば運転中であることを示す信号がONのときのみデータを抽出するなど、他の信号の値がONになっていることを条件として加えることもできる。つまり、抽出関数121は、関数として実現しているために、複雑なロジックであっても容易に記述することができる。
図4のステップST2において、データ抽出部112は、プラグイン22の抽出関数121を用いて、収集が必要なデータの種類、データの収集期間、データの収集周期、及び収集条件などの情報を取得する。
図6は、実施の形態1におけるデータ抽出部が抽出するデータの例を示す図である。PLC1は、データ抽出部112及びデータ分配部114が、抽出関数121を使って図6に示すようなデータを収集する。なお、図6において、例えば、信号IDが001/KL002のデータ、すなわち温度センサaの測定データは、図5に示す抽出関数121aによりデバイスメモリ111のアドレスX1234から1000ms周期で抽出されることを示している。
ここで、収集が必要なデータの種類とは、デバイスメモリ111に格納されているデータのうち、プラグイン22の抽出関数121により収集するように指定されたデータの種類のことである。例えば、図5に示す抽出関数121aの場合、収集が必要なデータの種類は、図6に示すとおり温度センサaの測定データである。
データの収集期間とは、収集が必要なデータを収集する期間のことである。例えば、図5に示す抽出関数121aの場合、データの収集期間は、図6に示すとおり、開始時刻である2014年4月29日の00時00分00秒から終了時刻である2014年4月29日の00時00分59秒までである。
データの収集周期とは、データ抽出部112が、収集が必要なデータをデバイスメモリ111から抽出する周期のことである。例えば、図5に示す抽出関数121aの場合、データの収集周期は、図6に示すとおり1000msである。
なお、図5においては図示していないが、抽出関数121には、収集が必要なデータの名称、信号ID、割り付けられているデバイスのアドレスなども記述されている。データ抽出部112は、ホスト21に登録されているプラグイン22の抽出関数121から、図6に示されるような、収集が必要なデータの名称、信号ID、割り付けられているデバイスのアドレス、データの収集周期、収集の開始時刻、終了時刻などの情報を取得する。データ抽出部112は、すべてのプラグイン22について、抽出関数121からデータの名称、信号ID等の情報を取得する。
図4のステップST3において、データ抽出部112は、収集が必要なデータの種類、データの収集期間等を一覧にまとめた収集リストを生成する。
図7は、実施の形態1における収集リストの例を示す図である。収集リストは、図7に示すとおり、デバイスメモリ111から抽出するデータに関する条件を一覧にしたリストであり、同じ信号を同じ周期及びタイミングで収集するもののほか、データの収集周期が倍数になるものなどを整理したリストである。図7において、例えば、No.1のデータは、図6における信号IDが001/KL002のデータに対応する。なお、収集リストは、図7に示したものに限られず、効率よくデータを収集することができればどのような形のものであってもよい。
図4のステップST4において、PLC1は、すべてのプラグイン22が処理されたか否かを判定し、すべてのプラグイン22が処理されていればステップST5へ進み、そうでなければステップST1に戻って処理を繰り返す。
ステップST5において、データ抽出部112は、収集リストにしたがって、収集が必要なデータの種類、データの収集期間、データの収集周期、及び収集条件ごとに、対応する演算バッファ113を生成する。
生成される演算バッファ113の要素数は、プラグイン22の抽出関数121により指定された開始時刻と終了時刻、及びデータの収集周期で決まる。図7に示す例において、例えば、No.1のデータであれば、開始時刻が2014年4月29日の00時00分00秒、終了時刻が開始時刻から59秒後、データの収集周期が1000ms=1秒であるので、((59+1)−0)÷1[秒]=60個となる。
図8は、実施の形態1における演算バッファの例を示す図である。図8の例では、後述する演算バッファ113Aについて図示している。図8(a)においては、データ抽出部112により生成された演算バッファ113Aが、データ分配部114から渡された値を格納した状態を示している。図8(b)においては、同じ演算バッファ113Aが、データ変換部115の演算結果の値を格納した状態を示している。図8(c)においては、同じ演算バッファ113Aが、データ集計部116の集計演算の結果の値を格納した状態を示している。
図7に示すNo.1の例において、データ抽出部112は、図8(a)に示すとおり、要素数が60個の演算バッファ113Aを生成する。
ほかの例として、例えば、図7に図示しない任意の信号について、2014年1月1日から2014年1月31までの期間のデータを1日周期で収集する場合、データ抽出部112は、31個の日データを格納することができる演算バッファ113を生成する。
つまり、演算バッファ113は、上記のデータの収集期間及びデータの収集周期分のデータをちょうど格納できるように生成される。演算バッファ113は、抽出関数121により指定されるデータの種類、データの収集期間等ごとに、対応して複数生成される。
以上が、実施の形態1における情報連携システムの初期化時の動作の説明である。
図9は、実施の形態1における情報連携システムが起動して動作を開始したときのPLCの処理手順を示すフローチャートである。図10は、実施の形態1における情報連携システムの起動後の動作を示す模式図である。図9、10を用いて、実施の形態1における起動した情報連携システムの動作を説明する。
なお、図10において、複数の演算バッファ113A、演算バッファ113B、演算バッファ113C、及び演算バッファ113Dは、図2に図示した演算バッファ113a、演算バッファ113b、演算バッファ113cに対応するものであり、すなわち図2の演算バッファ113と同じものを表している。また、図10においては、演算バッファ113A、演算バッファ113B、演算バッファ113C、及び演算バッファ113Dをそれぞれ複数図示しているが、これは動作を図示するにあたり便宜上複数回記載しているだけであり、図10において同じ符号の演算バッファ113は同一のものを表す。
さらに、図10においては、プラグイン22aとこれに付随する抽出関数121a、演算アルゴリム122a、及び集計関数123aのみを図示しているが、上記のとおり、ホスト21にはさらに複数のプラグイン22が登録されている。
なお、以下において説明する例では、PLC1が温度センサaの測定データを適宜読み込み、図10に示すデバイスメモリ111に書き込むものとする。
情報連携システムが動作を開始したとき、図9のステップST11において、データ抽出部112は、抽出関数121を用いて、抽出関数121により指定された種類のデータを、抽出関数121により指定された周期でデバイスメモリ111から抽出する。図10に示すプラグイン22aの抽出関数121aにおいて、例えば、図5の1行目から10行目までに示す例のように、デバイスメモリ111のアドレスX1234が指定されている場合、データ抽出部112は、デバイスメモリ111のアドレスX1234から、図6に示される信号IDが001/KL002のデータ、すなわち温度センサaの測定データを定期的に抽出する。このように、データ抽出部112は、ホスト21に登録されているすべてのプラグイン22を実行し、それぞれの抽出関数121により指定された種類のデータを定期的に抽出する。
ここで、異なるプラグイン22で同じアドレスが指定されている場合、データ抽出部112は、重複するものとして無視する。図6において、例えば、信号001/KL006は、信号001/KL003と同じアドレスX2011のデータであり、データの収集周期も001/KL003の2倍の周期になっているため、重複したデータが使われることになる。このため、データ抽出部112は、信号001/KL006と信号001/KL003のうち、片方を重複するデータとして無視する。このようにすることで、データ抽出部112がデバイスメモリ111からデータを抽出する回数を減らすことができ、効率よくデータを収集することができる。
また、データ抽出部112は、図10に示すとおり、抽出したデータをデータ分配部114に渡す。
図9のステップST12において、データ分配部114は、図10に示すとおり、データ抽出部112から受け取ったデータを、データの種類、データの収集期間、データの収集周期、及び収集条件が対応する演算バッファ113に格納する。
演算バッファ113を特定する方法としては、例えば、図6に示すような収集するデータの条件を格納したテーブルを作り、その要素値からハッシュを算出し、ハッシュの値を演算バッファ113と関連付けるなどの方法が考えられる。しかし、これに限られず、それ以外の方法であっても、演算バッファ113と収集するデータの条件とが効率よく関連付けられる方法であればよい。
また、図9のステップST12において、データ分配部114は、収集が必要なデータの種類、データの収集期間、データの収集周期、及び収集条件に基づいて、データ抽出部112が抽出したデータを、対応する演算バッファ113に格納する。例えば、データ分配部114は、プラグイン22aの抽出関数112aから取得したデバイスメモリ111のアドレスと周期、及び開始時刻に基づいて、データ抽出部112が抽出した温度センサaの測定データを、対応する演算バッファ113Aに時系列に並ぶように格納していく。演算バッファ113Aは、データ分配部114から渡された値を、例えば、図8(a)に示すように、{X | 100,200,300,400,・・・,6000}と1000msごとに格納する。
なお、収集条件とは、データ抽出部112が抽出関数121を使ってデバイスメモリ111から抽出したデータについて、収集が必要か否かを判断するために用いる条件のことである。収集条件は、例えば、デバイスメモリ111から抽出したデータが温度センサbの測定データである場合に、抽出した測定データが40℃以上を表すときにはその測定データを対応する演算バッファ113に格納する、といったものである。このため、例えば、抽出関数121bにおいて、収集が必要なデータの種類、データの収集周期、及び収集条件として、温度センサbの測定データで40℃以上のものを60秒周期で収集するように指定されており、温度センサbの測定データが{10℃,20℃,40℃,50℃,10℃,0℃,10℃,・・・}といった具合でデバイスメモリ111に順番に格納されていくような場合、データ分配部114は、データ抽出部112によりデバイスメモリ111から60秒ごとに読み出された温度センサbの測定データのうち、40℃及び50℃の2つの値を対応する演算バッファ113Bに格納する。
ここで、収集するデータの条件であるデータの収集期間、データの収集周期、及び収集条件のうち、いずれかが異なるデータを収集する場合、データ分配部114は、データ抽出部112がデバイスメモリ111の同じアドレスから抽出した同じ種類のデータを、別々の演算バッファ113に格納する。例えば、温度センサaの測定データを、毎日00時00分00秒から00時59分00秒まで、1分毎に、合計60個収集するプラグイン22cがあったとする。つまり、プラグイン22cは、図5及び図10に示すプラグイン22aと同様に、温度センサaの測定データを収集するが、プラグイン22aとは異なるデータの収集期間の間、異なるデータの収集周期により収集するものである。この場合、上記のとおり、図4のステップST5において、演算バッファ113Aとは異なる対応する演算バッファ113として、例えば、図10に示す演算バッファ113Cがさらに別に生成されている。このため、プラグイン22cを実行する場合、データ分配部114は、図9のステップST12において、プラグイン22aにより収集した温度センサaの測定データと同じデータを、演算バッファ113Aとは異なる対応する演算バッファ113Cに格納する。よって、同じ種類のデータであっても、データの収集期間、データの収集周期、及び収集条件のうち、いずれかが異なるデータを収集する場合、実施の形態1におけるPLC1は、図10に示すとおり、異なるデータの収集期間、異なるデータの収集周期、及び異なる収集条件ごとの演算を並列して実行することができる。
ここで、各演算バッファ113は、上記のとおり、データの収集期間及びデータの収集周期に応じて生成されている。このため、各演算バッファ113は、データを格納できる容量が決まっている。よって、図9のステップST13において、演算バッファ113の全ての要素にデータが書き込まれた場合、すなわち演算バッファ113がその容量一杯にデータを蓄積した場合、データ分配部114は、図10に示すとおり、演算バッファ113へのデータの書き込みを完了し、データ変換部115に通知する。
図9のステップST14において、データ変換部115は、プラグイン22の演算アルゴリズム122を実行する。データ変換部115は、容量が一杯になった演算バッファ113に格納されている値を入力として演算アルゴリズム122の演算を行う。
ここで、データ変換部115による演算アルゴリズム122の演算の例として、正規化を行うための演算アルゴリズム122aについて説明する。一般に、センサなどのアナログの入力値は、PLC1へ書き込まれるときにデジタルの値になる。例えば、10℃から70℃までを測定できる温度センサaがあり、分解能が0〜40000である場合、デバイスメモリ111には0〜40000の値が書き込まれる。この場合、デバイスメモリ111に格納された0の値は10℃を示し、40000の値は70℃を示す。
データ変換部115は、図10に示す演算アルゴリズム122aを実行し、演算バッファ113Aに格納された値から温度を演算する。上記の例の場合、温度センサaからの入力値をX[i]としたとき、データ変換部115は、次の式(1)により温度Tを求める。
Figure 2016079771
例えば、演算バッファ113Aに格納された値が24000のとき、データ変換部115は、上記の式(1)により、温度Tを(24000−0)/40000×60+10=46℃と求める。データ変換部115は、図8(a)に示す演算バッファ113Aに格納された値について上記の式(1)の演算を行い、対応する温度を、図8(b)に示すように{Temp | 10.15,10.30,10.45,11.00,・・・,19.00}と求める。
このように、データ変換部115は、各演算バッファ113が一杯になったタイミングで、対応する演算アルゴリズム122を実行する。なお、データ変換部115は、上記のような正規化だけでなく、バイアス、割合などの演算に関する演算アルゴリズム122を実行してもよい。
図9のステップST14において、データ変換部115は、図10に示すとおり、演算結果を同じ演算バッファ113に書き戻す。演算終了後、例えば、演算アルゴリズム122aが上記の式(1)の場合に図8(b)に示す値をすべて計算し終わったとき、データ変換部115は、データ集計部116に通知する。
図9のステップST15において、データ集計部116は、演算バッファ113に格納されたデータ変換部115の演算結果の値を集計する。データ集計部116は、図10に示すとおり、プラグイン22の集計関数123を用いて、最大、最小、合計などの集計演算を実行する。
図11は、最大値を求めるための関数maxを演算する集計関数のソースコードの例を示す図である。図12は、合計を求めるための関数sumを演算する集計関数のソースコードの例を示す図である。なお、図11及び図12の左端の数字は、プログラムの何行目であるかを示しているが、プログラムを説明するために便宜的に付けた数字であり、プログラムの内容とは関係がないものである。
図10に示す集計関数123aは、例えば、図11または図12に示すようなプログラムである。また、図11及び図12において、集計関数123aの1行目に記載されているvalue_arrayには図8(b)に示される値が渡され、1行目に記載されているlengthには図8(a)または図8(b)に示す演算バッファ113Aの要素数である60が渡される。データ集計部116は、図11または図12に示されるような集計関数123aを用いて、演算バッファ113Aに格納された演算アルゴリズム122aの演算結果について集計演算を実行する。
また、データ集計部116は、集計関数123による集計演算を実行した結果の集計値を、同じ演算バッファ113に上書きする。例えば、データ集計部116は、演算バッファ113Aに格納された演算アルゴリズム122aの演算結果について集計関数123aによる集計演算を実行した結果の集計値を、図8(c)に示すとおり、同じ演算バッファ113Aに上書きする。図8(c)に示す例において、演算バッファ113Aには、0番目の要素に最大、1番目の要素に最小値、つづいて平均、合計などが書き込まれている。
なお、演算バッファ113のどの要素にどの集計値を書き込むかは、上記の特許文献1と同様に、予め定義ファイルなどを使って指定しておく。また、よく使われる集計関数123は、プラグイン22でなくホスト21側に実装しておいてもよい。さらに、集計関数123もプラグイン22であるため、集計演算の種類は最大、最小、合計に限られず、これ以外の集計演算を行うようにしてもよい。
図9のステップST16において、データ入出力部117は、図10に示すとおり、演算バッファ113から集計値を読み出し、読み出した集計値をデバイスメモリ111に書き戻したり、TCP/IPなどの通信プロトコルを使って外部システム8に出力したりする。例えば、データ入出力部117は、図8(c)に示す集計結果のうち、合計である843.60を外部システム8に出力する。
なお、集計結果のうち、どの集計値を送信するか、書き戻すかについても、上記の特許文献1と同様に、予め定義ファイルに記述しておく。
図9のステップST16において、システムを停止する指令を検出していない場合、PLC1は、ステップST11に戻り処理を繰り返す。システムを停止する指令を検出した場合、PLC1は、処理を停止する。
以上において説明したとおり、実施の形態1におけるPLC1は、演算アルゴリズム122による演算や集計関数123による集計演算などの各演算を実行する前に、デバイスメモリ111からデータを予め抽出し、抽出したデータを対応する演算バッファ113に予め分配した後、各演算を実行する。このため、実施の形態1におけるPLC1は、演算バッファ113ごとに並列に各演算を実行することができ、高速な処理が可能になる。
また、実施の形態1におけるPLC1は、演算バッファ113が一杯になったことを条件に、当該演算バッファ113に格納された値について各演算を実行するため、演算バッファ113ごとに独立して各演算を行うことができる。よって、実施の形態1におけるPLC1は、ある演算の終了を待つなどの同期を必要とせず、各演算を非同期に実行することができ、高速な処理が可能になる。
また、実施の形態1において、データ抽出部112は、データの種類、データの収集期間、データの収集周期、及び収集条件ごとに、対応する演算バッファ113を生成し、データ分配部114は、データ抽出部112により抽出されたデータを、データの種類が同じであっても、データの収集期間、データの収集周期、及び収集条件のうちのいずれかが異なる場合には異なる演算バッファ113に格納する。このため、実施の形態1におけるPLC1は、収集したデータに関し、データの種類が異なる場合だけでなく、データの収集期間、データの収集周期、及び収集条件のいずれかが異なるものについて演算を行う場合においても、異なる演算バッファ113ごとに並列に各演算を実行することが可能になるとともに、演算バッファ113ごとに独立して各演算を行うことができるので各演算を非同期に実行することが可能になり、高速に演算処理を行うことができる。
さらに、演算に用いられるデータは、予め演算前に演算バッファ113に格納されている。このため、実施の形態1におけるPLC1は、例えば、外部システム8としてPLC1の外部に設けられるデータベースなど、一時的に格納したデータ領域から検索を行う必要がない。データの検索に要する時間は、取り扱うデータが大量になればなるほど検索時間が無視できなくなる。しかし、実施の形態1におけるPLC1は、データの種類、データの収集期間等ごとにそれぞれ別の演算バッファ113にデータを格納するため、データの検索が不要となり検索時間を省略することができ、高速な処理が可能になる。
加えて、抽出関数121、演算アルゴリズム122、及び集計関数123は、抽出関数121ごとに関連付けられており、抽出関数121、演算アルゴリズム122、及び集計関数123は、関連する抽出関数121ごとにプラグイン22としてホスト21に登録される。このため、新しい抽出関数121、演算アルゴリズム122、及び集計関数123を用いたい場合、すなわち新しい条件によりデータを収集したい場合、実施の形態1におけるPLC1は、新しいプラグイン22をホスト21に追加するだけでよく、各演算を並列に非同期に実行でき高速に演算を行うことができるPLC1をより柔軟に構成することが可能になる。
なお、上記においても説明したとおり、PLC1とは別に、集計演算を行うデータベースを備えた専用のパソコンを用意し、このパソコンに集計演算を実行させることも可能であるが、この場合には高価な専用機を別途用意する必要がある。これに対し、実施の形態1の情報連携システムは、PLC1に集計演算を実行させることができるため、別途専用のパソコンを用いることなくシステムを構成できる。
なお、実施の形態1において、演算バッファ113がその容量一杯にデータを蓄積した場合に、データの書き込みを完了し、演算バッファ113に格納された値について演算を行うとしたが、これに限られるものではない。
上記のとおり、演算バッファ113は、データの収集期間及びデータの収集周期分のデータをちょうど格納できるように生成されている。また、上記のとおり、演算バッファ113は、データ抽出部112により収集条件ごとに生成されている。このため、データ分配部114は、デバイスメモリ111から抽出されたデータについて、データの種類、データの収集期間、及びデータの収集周期が対応する演算バッファ113があっても、収集条件を満たさない場合にはそのデータを当該演算バッファ113に格納しない。よって、収集条件を満たさないデータがあった場合、そのデータが対応する演算バッファ113に格納されないために、データの収集期間が経過しても当該演算バッファ113が一杯にならない。そこで、演算バッファ113がその容量一杯にデータを蓄積した場合に、データの書き込みを完了し、演算バッファ113に格納された値について演算を行うことに加えて、データの収集期間が経過したことを条件として、演算バッファ113に格納された値について演算を実行するようにしても良い。
このほか、例えば、データ抽出部112は、各演算バッファ113を生成する際、データの収集期間及びデータの収集周期に応じた容量に加えてさらに追加の容量を有する演算バッファ113を生成するようにしてもよい。そして、演算バッファ113がデータの収集期間及びデータの収集周期に応じた分だけのデータを格納した場合、すなわち演算バッファ113の残り容量がこの追加の容量だけになった場合に、これを検出してデータの書き込みを完了し、演算バッファ113に格納された値について演算を行うようにする。これらのような場合においても、演算バッファ113ごとに並列に各演算を実行することができるとともに、ある演算の終了を待つなどの同期を必要としないため各演算を非同期に実行することができ、高速な処理が可能になる。
また、実施の形態1において、データ抽出部112は、収集が必要なデータの種類、データの収集期間、データの収集周期、及び収集条件ごとに、対応する演算バッファ113を生成し、データ分配部114は、収集が必要なデータの種類、データの収集期間、データの収集周期、及び収集条件に基づいて、データ抽出部112がデバイスメモリ111から抽出したデータを対応する演算バッファ113に格納することとしたが、これに限られるものでもない。
例えば、データ抽出部112は、収集が必要なデータの種類、データの収集期間、データの収集周期、及び抽出条件ごとに、対応する演算バッファ113を生成することとし、データ分配部114は、収集が必要なデータの種類、データの収集期間、データの収集周期、及び抽出条件に基づいて、データ抽出部112がデバイスメモリ111から抽出したデータを対応する演算バッファ113に格納することとしても良い。ここでの抽出条件とは、データ抽出部112が抽出関数121によりデバイスメモリ111からデータを抽出する際に、抽出されるデータが満たすべき条件のことである。この場合、データ抽出部112は、デバイスメモリ111に格納されているデータのうち、抽出関数121により指定された抽出条件を満たすデータのみを抽出する。また、データ分配部114は、データ抽出部112から渡されたデータを、対応する演算バッファ113に格納する。このような場合においても、演算バッファ113ごとに並列に各演算を実行することができるとともに、ある演算の終了を待つなどの同期を必要としないため各演算を非同期に実行することができ、高速な処理が可能になる。
1 PLC、2 外部センサ、3 外部機器、4 保守端末、5 制御ネットワーク、6 情報ネットワーク、7 監視端末、8 外部システム、11 メモリ、12 プロセッサ、21 ホスト、111 デバイスメモリ、112 データ抽出部、113 演算バッファ、114 データ分配部、115 データ変換部、116 データ集計部、117
データ入出力部、22 プラグイン、121 抽出関数、122 演算アルゴリズム、123 集計関数
この発明に係る制御装置は、外部より取得されたデータを格納するメモリと、前記メモリに格納されたデータ抽出するデータ抽出部と、前記データ抽出部により抽出されたデータを、格納されるデータに応じて設けられた複数のバッファのうち対応するバッファに格納するデータ分配部と、前記複数のバッファのうち、異なるバッファに格納されたデータの演算処理を行うデータ集計部と、を備える。
この発明に係る制御方法は、外部より取得されたデータをメモリに格納するデータ格納ステップと、前記データ格納ステップにおいて格納されたデータ抽出するデータ抽出ステップと、前記データ抽出ステップにおいて抽出されたデータを、格納されるデータに応じて設けられた複数のバッファのうち対応するバッファに格納するデータ分配ステップと、前記複数のバッファのうち、異なるバッファに格納されたデータの演算処理を行うデータ集計ステップと、を備える。
この発明に係るプログラムは、プログラムを格納するメモリと、前記プログラムを実行するプロセッサと、を備えた制御装置であって、外部より取得されたデータの演算処理を行う前記制御装置の前記メモリにインストールされる前記プログラムにおいて、前記部より取得され前記メモリに格納されたデータ抽出するデータ抽出ステップと、前記データ抽出ステップにおいて抽出されたデータを、格納されるデータに応じて設けられた複数のバッファのうち対応するバッファに格納するデータ分配ステップと、前記複数のバッファのうち、異なるバッファに格納されたデータ前記演算処理を行うデータ集計ステップと、を前記制御装置の前記プロセッサに実行させる。

Claims (20)

  1. 外部センサにより取得されたデータを格納するメモリと、
    前記メモリに格納されたデータのうち予め定められた種類のデータを定期的に抽出するデータ抽出部と、
    前記データ抽出部により抽出されたデータを、前記予め定められた種類に応じて設けられた複数のバッファのうち対応するバッファに格納するデータ分配部と、
    前記バッファが予め定められた期間分のデータを格納した場合、前記バッファに格納されたデータの演算処理を行うデータ集計部と、
    を備えたことを特徴とする制御装置。
  2. 前記複数のバッファは、
    前記予め定められた種類及びデータの収集期間ごとに対応して設けられ、
    前記データ分配部は、
    前記データ抽出部により抽出されたデータを、前記予め定められた種類及び前記データの収集期間に基づいて、前記複数のバッファのうち対応するバッファに格納する
    ことを特徴とする請求項1に記載の制御装置。
  3. 前記複数のバッファは、
    前記予め定められた種類及びデータの収集周期ごとに対応して設けられ、
    前記データ抽出部は、
    前記予め定められた種類のデータを、前記データの収集周期に関して第1の周期で抽出するとともに前記第1の周期とは異なる第2の周期で抽出し、
    前記データ分配部は、
    前記データ抽出部により前記第1の周期で抽出されたデータを、前記予め定められた種類及び前記第1の周期に基づいて、前記複数のバッファのうち対応するバッファに格納し、前記データ抽出部により前記第2の周期で抽出されたデータを、前記予め定められた種類及び前記第2の周期に基づいて、前記複数のバッファのうち前記第1の周期で抽出されたデータが格納されるバッファとは異なる対応するバッファに格納する
    ことを特徴とする請求項1に記載の制御装置。
  4. 前記複数のバッファは、
    前記予め定められた種類及びデータを収集する条件ごとに対応して設けられ、
    前記データ分配部は、
    前記データ抽出部により抽出された前記予め定められた種類のデータのうち、前記収集する条件に関して第1の条件を満たすデータを、前記複数のバッファのうち対応するバッファに格納し、
    前記データ抽出部により抽出された前記予め定められた種類のデータのうち、前記収集する条件に関して前記第1の条件とは異なる第2の条件を満たすデータを、前記複数のバッファのうち前記第1の条件を満たすデータが格納されるバッファとは異なる対応するバッファに格納する
    ことを特徴とする請求項1に記載の制御装置。
  5. 前記データ分配部により前記バッファに格納された前記予め定められた期間分のデータについて、予め定められた演算アルゴリズムに基づきデータの変換処理を行うデータ変換部をさらに備え、
    前記データ集計部は、前記データ変換部による前記変換処理の結果について前記演算処理を行う
    ことを特徴とする請求項1に記載の制御装置。
  6. 前記予め定められた種類のデータを抽出するための抽出関数と、前記演算アルゴリズムと、前記データ集計部による前記演算処理に使用される集計関数と、が前記抽出関数ごとに関連付けられており、
    前記抽出関数、前記演算アルゴリズム、及び前記集計関数は、
    関連する前記抽出関数ごとにプラグインとして登録される
    ことを特徴とする請求項5に記載の制御装置。
  7. 前記データ集計部の演算結果を前記メモリまたは外部に設けられたデータベースに出力するデータ出力部をさらに備えた
    ことを特徴とする請求項1に記載の制御装置。
  8. 外部センサにより取得されたデータをメモリに格納するデータ格納ステップと、
    前記データ格納ステップにおいて格納されたデータのうち予め定められた種類のデータを定期的に抽出するデータ抽出ステップと、
    前記データ抽出ステップにおいて抽出されたデータを、前記予め定められた種類に応じて設けられた複数のバッファのうち対応するバッファに格納するデータ分配ステップと、
    前記バッファが予め定められた期間分のデータを格納した場合、前記バッファに格納されたデータの演算処理を行うデータ集計ステップと、
    を備えたことを特徴とする制御方法。
  9. 前記予め定められた種類及びデータの収集期間ごとに、対応するバッファを生成するバッファ生成ステップをさらに備え、
    前記データ分配ステップは、
    前記データ抽出ステップにより抽出されたデータを、前記予め定められた種類及び前記データの収集期間に基づいて、前記バッファ生成ステップにおいて生成された前記複数のバッファのうち対応するバッファに格納する
    ことを特徴とする請求項8に記載の制御方法。
  10. 前記予め定められた種類及びデータの収集周期ごとに、対応するバッファを生成するバッファ生成ステップをさらに備え、
    前記データ抽出ステップは、
    前記予め定められた種類のデータを、前記データの収集周期に関して第1の周期で抽出するとともに前記第1の周期とは異なる第2の周期で抽出し、
    前記データ分配ステップは、
    前記データ抽出ステップにおいて前記第1の周期で抽出されたデータを、前記予め定められた種類及び前記第1の周期に基づいて、前記バッファ生成ステップにおいて生成された前記複数のバッファのうち対応するバッファに格納し、
    前記データ抽出ステップにおいて前記第2の周期で抽出されたデータを、前記予め定められた種類及び前記第2の周期に基づいて、前記複数のバッファのうち前記第1の周期で抽出されたデータが格納されるバッファとは異なる対応するバッファに格納する
    ことを特徴とする請求項8に記載の制御方法。
  11. 前記予め定められた種類及びデータを収集する条件ごとに、対応するバッファを生成するバッファ生成ステップをさらに備え、
    前記データ分配ステップは、
    前記データ抽出ステップにおいて抽出された前記予め定められた種類のデータのうち、前記収集する条件に関して第1の条件を満たすデータを、前記バッファ生成ステップにおいて生成された前記複数のバッファのうち対応するバッファに格納し、
    前記データ抽出ステップにおいて抽出された前記予め定められた種類のデータのうち、前記収集する条件に関して前記第1の条件とは異なる第2の条件を満たすデータを、前記複数のバッファのうち前記第1の条件を満たすデータが格納されるバッファとは異なる対応するバッファに格納する
    ことを特徴とする請求項8に記載の制御方法。
  12. 前記データ分配ステップにおいて前記バッファに格納された前記予め定められた期間分のデータについて、予め定められた演算アルゴリズムに基づきデータの変換処理を行うデータ変換ステップをさらに備え、
    前記データ集計ステップは、前記データ変換ステップによる前記変換処理の結果について前記演算処理を行う
    ことを特徴とする請求項8に記載の制御方法。
  13. 前記予め定められた種類のデータを抽出するための抽出関数と、前記演算アルゴリズムと、前記データ集計ステップによる前記演算処理に使用される集計関数と、が前記抽出関数ごとに関連付けられており、
    前記抽出関数、前記演算アルゴリズム、及び前記集計関数は、
    関連する前記抽出関数ごとにプラグインとして登録される
    ことを特徴とする請求項12に記載の制御方法。
  14. 前記データ集計ステップの演算結果を前記メモリまたは外部に設けられたデータベースに出力するデータ出力ステップをさらに備えた
    ことを特徴とする請求項8に記載の制御方法。
  15. プログラムを格納するメモリと、前記プログラムを実行するプロセッサと、を備えた制御装置であって、外部センサにより取得されたデータのうち予め定められた期間分のデータごとに演算処理を行う前記制御装置の前記メモリにインストールされる前記プログラムにおいて、
    前記外部センサにより取得されメモリに格納されたデータのうち予め定められた種類のデータを定期的に抽出するデータ抽出ステップと、
    前記データ抽出ステップにおいて抽出されたデータを、前記予め定められた種類に応じて設けられた複数のバッファのうち対応するバッファに格納するデータ分配ステップと、
    前記バッファが前記予め定められた期間分のデータを格納した場合、前記バッファに格納されたデータの前記演算処理を行うデータ集計ステップと、
    を前記制御装置の前記プロセッサに実行させることを特徴とするプログラム。
  16. 前記予め定められた種類及びデータの収集期間ごとに、対応するバッファを生成するバッファ生成ステップをさらに備え、
    前記データ分配ステップは、
    前記データ抽出ステップにおいて抽出されたデータを、前記予め定められた種類及び前記データの収集期間に基づいて、前記バッファ生成ステップにおいて生成された前記複数のバッファのうち対応するバッファに格納する
    ことを特徴とする請求項15に記載のプログラム。
  17. 前記予め定められた種類及びデータの収集周期ごとに、対応するバッファを生成するバッファ生成ステップをさらに備え、
    前記データ抽出ステップは、
    前記予め定められた種類のデータを、前記データの収集周期に関して第1の周期で抽出するとともに前記第1の周期とは異なる第2の周期で抽出し、
    前記データ分配ステップは、
    前記データ抽出ステップにおいて前記第1の周期で抽出されたデータを、前記予め定められた種類及び前記第1の周期に基づいて、前記バッファ生成ステップにおいて生成された前記複数のバッファのうち対応するバッファに格納し、
    前記データ抽出ステップにおいて前記第2の周期で抽出されたデータを、前記予め定められた種類及び前記第2の周期に基づいて、前記複数のバッファのうち前記第1の周期で抽出されたデータが格納されるバッファとは異なる対応するバッファに格納する
    ことを特徴とする請求項15に記載のプログラム。
  18. 前記予め定められた種類及びデータを収集する条件ごとに、対応するバッファを生成するバッファ生成ステップをさらに備え、
    前記データ分配ステップは、
    前記データ抽出ステップにおいて抽出された前記予め定められた種類のデータのうち、前記収集する条件に関して第1の条件を満たすデータを、前記バッファ生成ステップにおいて生成された前記複数のバッファのうち対応するバッファに格納し、
    前記データ抽出ステップにおいて抽出された前記予め定められた種類のデータのうち、前記収集する条件に関して前記第1の条件とは異なる第2の条件を満たすデータを、前記複数のバッファのうち前記第1の条件を満たすデータが格納されるバッファとは異なる対応するバッファに格納する
    ことを特徴とする請求項15に記載のプログラム。
  19. 前記データ分配ステップにおいて前記バッファに格納された前記予め定められた期間分のデータについて、予め定められた演算アルゴリズムに基づきデータの変換処理を行うデータ変換ステップをさらに備え、
    前記データ集計ステップは、前記データ変換ステップによる前記変換処理の結果について前記演算処理を行う
    ことを特徴とする請求項15に記載のプログラム。
  20. 前記予め定められた種類のデータを抽出するための抽出関数と、前記演算アルゴリズムと、前記データ集計ステップによる前記演算処理に使用される集計関数と、が前記抽出関数ごとに関連付けられており、
    前記抽出関数、前記演算アルゴリズム、及び前記集計関数は、
    関連する前記抽出関数ごとにプラグインとして前記制御装置の前記演算部に登録される
    ことを特徴とする請求項19に記載のプログラム。
JP2016559695A 2014-11-19 2014-11-19 制御装置、制御方法、及びプログラム Expired - Fee Related JP6207763B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/005820 WO2016079771A1 (ja) 2014-11-19 2014-11-19 制御装置、制御方法、及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2016079771A1 true JPWO2016079771A1 (ja) 2017-04-27
JP6207763B2 JP6207763B2 (ja) 2017-10-04

Family

ID=56013388

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016559695A Expired - Fee Related JP6207763B2 (ja) 2014-11-19 2014-11-19 制御装置、制御方法、及びプログラム

Country Status (6)

Country Link
US (1) US10394203B2 (ja)
JP (1) JP6207763B2 (ja)
KR (1) KR101840990B1 (ja)
CN (1) CN106922184B (ja)
DE (1) DE112014007188T5 (ja)
WO (1) WO2016079771A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105467969A (zh) * 2016-01-18 2016-04-06 京东方科技集团股份有限公司 一种制造执行系统
JP6906301B2 (ja) * 2016-12-14 2021-07-21 株式会社東芝 監視制御システムの更新方法、監視制御システム及び制御方法
JP6926539B2 (ja) * 2017-03-10 2021-08-25 オムロン株式会社 制御装置およびプログラム
JP7218921B2 (ja) * 2020-02-06 2023-02-07 サイレックス・テクノロジー株式会社 収集装置、管理装置、通信装置、および、制御方法
JP7147805B2 (ja) * 2020-03-26 2022-10-05 株式会社安川電機 生産システム、データ送信方法、及びプログラム
WO2023106038A1 (ja) * 2021-12-10 2023-06-15 住友重機械工業株式会社 監視対象データ保存装置、監視対象データ保存方法、監視対象データ保存プログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5953906A (ja) * 1982-09-21 1984-03-28 Toshiba Corp グル−プデ−タ収集装置
JPH01155506U (ja) * 1988-04-13 1989-10-25
JPH09244618A (ja) * 1996-03-13 1997-09-19 Toshiba Corp トレンドグラフ表示方法およびその表示装置
JP2004133581A (ja) * 2002-10-09 2004-04-30 Toshiba Corp 監視制御システム
JP2014182726A (ja) * 2013-03-21 2014-09-29 Toshiba Corp プラント監視システム試験装置および試験方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3126006B2 (ja) 1993-03-02 2001-01-22 株式会社日立製作所 プログラマブルコントローラ
US5577180A (en) * 1995-01-05 1996-11-19 The 3Do Company Zone data streaming for 3-dimensional video environment
JP3345867B2 (ja) 1995-04-28 2002-11-18 豊和工業株式会社 プログラマブルコントローラと計算機間のデータ授受の方法
KR100430220B1 (ko) 1999-03-12 2004-05-03 엘지산전 주식회사 피엘씨의 데이터 수집 방법
JP4144240B2 (ja) * 2002-04-12 2008-09-03 セイコーエプソン株式会社 制御装置および制御方法
JP4472557B2 (ja) 2005-03-01 2010-06-02 三菱電機株式会社 プログラム作成装置
CN102053601B (zh) * 2010-11-12 2012-08-29 上海大学 Can控制器中实现多消息机制的方法
DE102010063773A1 (de) 2010-12-21 2012-07-12 Endress + Hauser Wetzer Gmbh + Co. Kg Feldgerät mit einem semi-permanenten elektronischen Speicher und Verfahren zum Betreiben eines solchen Feldgerätes
US8706262B2 (en) 2011-03-15 2014-04-22 Omron Corporation CPU unit of PLC, system program for PLC, and recording medium storing system program for PLC
JP5099251B1 (ja) 2011-07-15 2012-12-19 オムロン株式会社 Plcのcpuユニット、plc用のシステムプログラム、plc用のシステムプログラムを格納した記録媒体、plcシステム、plcサポート装置、plcサポートプログラム、および、plcサポートプログラムを格納した記録媒体
WO2013048405A1 (en) 2011-09-29 2013-04-04 Siemens Aktiengesellschaft Systems, methods and field panel apparatus for collecting trend data in a building automation system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5953906A (ja) * 1982-09-21 1984-03-28 Toshiba Corp グル−プデ−タ収集装置
JPH01155506U (ja) * 1988-04-13 1989-10-25
JPH09244618A (ja) * 1996-03-13 1997-09-19 Toshiba Corp トレンドグラフ表示方法およびその表示装置
JP2004133581A (ja) * 2002-10-09 2004-04-30 Toshiba Corp 監視制御システム
JP2014182726A (ja) * 2013-03-21 2014-09-29 Toshiba Corp プラント監視システム試験装置および試験方法

Also Published As

Publication number Publication date
CN106922184A (zh) 2017-07-04
KR20170088368A (ko) 2017-08-01
DE112014007188T5 (de) 2017-08-24
US10394203B2 (en) 2019-08-27
CN106922184B (zh) 2018-09-28
JP6207763B2 (ja) 2017-10-04
US20170336766A1 (en) 2017-11-23
KR101840990B1 (ko) 2018-03-21
WO2016079771A1 (ja) 2016-05-26

Similar Documents

Publication Publication Date Title
JP6207763B2 (ja) 制御装置、制御方法、及びプログラム
JP6388050B1 (ja) 制御装置
EP3382485B1 (en) Controller, control program, control system, and control method
US20190188110A1 (en) Industrial control system, and assistance apparatus, control assist method, and program thereof
US20190113898A1 (en) Setting system, setting device, setting method, and setting program
JP6777142B2 (ja) システム分析装置、システム分析方法、及び、プログラム
JPWO2018073960A1 (ja) 表示方法、表示装置、および、プログラム
JP2018133037A (ja) 制御装置
JP6489235B2 (ja) システム分析方法、システム分析装置、および、プログラム
JP2018151917A (ja) 制御装置
JP7063229B2 (ja) 制御装置および制御プログラム
JP7028133B2 (ja) 制御システムおよび制御方法
JP6809011B2 (ja) 制御システムの遠隔監視を行う装置およびシステム
JP6915693B2 (ja) システム分析方法、システム分析装置、および、プログラム
US11977373B2 (en) Abnormality diagnosis method, abnormality diagnosis device and non-transitory computer readable storage medium
WO2013111334A1 (ja) 管理計算機、自動化作業手順出力方法、及び計算機読み取り可能な記憶媒体
CN112654939B (zh) 控制系统以及控制装置
JP2014078134A (ja) センサ情報高速データ処理システム及びセンサ情報高速処理・表示システム
WO2020166432A1 (ja) 制御装置、制御プログラムおよび制御システム
JP6861070B2 (ja) グラフ表示装置及びグラフ表示方法
JP6973445B2 (ja) 表示方法、表示装置、および、プログラム
WO2023053511A1 (ja) 制御システム、情報処理方法および情報処理装置
JP6185354B2 (ja) 画像データ生成方法
JPWO2014068980A1 (ja) 分散データ処理システム、及び、分散データ処理方法
JP2015069318A (ja) 画像データ生成装置及び画像データ生成方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161107

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161107

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20161107

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20170228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170314

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170515

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: 20170808

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170905

R150 Certificate of patent or registration of utility model

Ref document number: 6207763

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees