IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立産機システムの特許一覧

<>
  • 特許-産業用コントローラ 図1
  • 特許-産業用コントローラ 図2
  • 特許-産業用コントローラ 図3
  • 特許-産業用コントローラ 図4
  • 特許-産業用コントローラ 図5
  • 特許-産業用コントローラ 図6
  • 特許-産業用コントローラ 図7
  • 特許-産業用コントローラ 図8
  • 特許-産業用コントローラ 図9
  • 特許-産業用コントローラ 図10
  • 特許-産業用コントローラ 図11
  • 特許-産業用コントローラ 図12
  • 特許-産業用コントローラ 図13
  • 特許-産業用コントローラ 図14
  • 特許-産業用コントローラ 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-14
(45)【発行日】2022-09-26
(54)【発明の名称】産業用コントローラ
(51)【国際特許分類】
   G05B 19/042 20060101AFI20220915BHJP
【FI】
G05B19/042
【請求項の数】 12
(21)【出願番号】P 2018233916
(22)【出願日】2018-12-13
(65)【公開番号】P2020095549
(43)【公開日】2020-06-18
【審査請求日】2021-06-25
(73)【特許権者】
【識別番号】502129933
【氏名又は名称】株式会社日立産機システム
(74)【代理人】
【識別番号】110002365
【氏名又は名称】特許業務法人サンネクスト国際特許事務所
(72)【発明者】
【氏名】天野 隆
(72)【発明者】
【氏名】今井 光洋
【審査官】藤崎 詔夫
(56)【参考文献】
【文献】特開2018-185772(JP,A)
【文献】特開2012-198606(JP,A)
【文献】特開2000-057109(JP,A)
【文献】特開2005-018539(JP,A)
【文献】特開2018-084994(JP,A)
【文献】特開2006-202233(JP,A)
【文献】特開平09-244605(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/042
(57)【特許請求の範囲】
【請求項1】
制御対象装置を制御しプロセッサ及びメモリを有する産業用コントローラであって、
前記プロセッサが、OS(Operating System)を実行し、
前記メモリが、前記制御対象装置に関するデータセットが書き込まれるメモリ領域を含み、
前記OS上の複数のプログラムは、
前記制御対象装置の制御と、当該制御対象装置に関するデータセットの取得と、当該データセットを前記メモリ領域に書き込むこととを含んだ処理である制御処理を行い、当該制御処理において、前記メモリ領域の空き容量が第一の容量未満の場合には当該データセットを前記メモリ領域における既存のいずれかのデータセットに上書きする制御プログラムと、
読込み頻度に従う範囲に属するデータセットを前記メモリ領域から読み込むことと、前記制御対象装置の制御と異なる処理とを含んだ処理である情報処理を行う情報プログラムと
を含み、
前記OSにより、
前記制御プログラムの前記メモリ領域への書き込みは、所定の周期で実行され、
前記情報プログラムは、各周期において、前記制御プログラムの実行終了後に実行された場合、次の周期までに前記情報処理が完了するか否かに関わらずに当該次の周期までに終了され、
前記各周期において前記制御プログラムの実行終了から前記情報プログラムの実行開始までの間に前記OSにより実行される管理部が存在し、
前記各周期において、前記管理部は、少なくとも前記メモリ領域の空き容量が第二の容量未満の場合には、前記読込み頻度に従う範囲に属する複数のデータセットのうち対象とされたデータセットを削除することを含んだ管理処理を行う
ことを特徴とする産業用コントローラ。
【請求項2】
前記管理処理は、前記情報プログラムの読込み頻度に従う範囲に属する複数のデータセットからデータセットを選別し、当該複数のデータセットのうち当該選別されたデータセット以外のデータセットを前記メモリ領域から削除する処理である選別処理を含み、
前記対象とされたデータセットは、前記選別されたデータセット以外のデータセットである
ことを特徴とする請求項1に記載の産業用コントローラ。
【請求項3】
前記管理処理は、前記読込み頻度に従う範囲に属する複数のデータセットのうちの二つ以上のデータセットを加工し、当該二つ以上のデータセットを前記メモリ領域から削除し、当該加工後のデータセットを前記メモリ領域に書き込む加工処理を含み、
前記対象とされたデータセットは、加工の基になった前記二つ以上のデータセットである
ことを特徴とする請求項1に記載の産業用コントローラ。
【請求項4】
単位時間範囲の指定を受け付ける指定受付部を更に備え、
前記管理処理は、前記情報プログラムの読込み頻度に従う範囲のうち、指定された単位時間範囲に属するデータセットが所定の異常条件を満たしている場合、当該管理処理後の前記情報処理においてデータセットと共に読み込まれる情報として、異常を示す異常情報を設定することを含む
ことを特徴とする請求項1に記載の産業用コントローラ。
【請求項5】
前記メモリ領域の空き容量を基に前記読込み頻度を変更することである頻度調整を行う頻度調整部を更に備える
ことを特徴とする請求項1に記載の産業用コントローラ。
【請求項6】
前記頻度調整は、前記メモリ領域の空き容量の時系列から、前記メモリ領域の空き容量が前記第一の容量未満になる時刻を推定し、当該時刻よりも前に、前記読込み頻度を低くすること、を含む
ことを特徴とする請求項5に記載の産業用コントローラ。
【請求項7】
前記頻度調整は、前記メモリ領域の空き容量が第三の容量以上の場合に、前記読込み頻度を高くすること、を含む
ことを特徴とする請求項5に記載の産業用コントローラ。
【請求項8】
前記メモリ領域の空き容量の時系列から、前記メモリ領域の空き容量が前記第一の容量未満になる時刻を推定する時刻推定部と
前記推定された時刻をユーザ向けに出力する時刻出力部と
を更に備えることを特徴とする請求項1に記載の産業用コントローラ。
【請求項9】
前記メモリ領域内の前記情報プログラムが未読込みの読込み対象のデータセットに、新たなデータセットが前記制御プログラムにより上書きされた場合、当該読込み対象のデータセットの読み込みが不可であることを示す情報である読込み不可情報を出力する出力部を更に備える
ことを特徴とする請求項1に記載の産業用コントローラ。
【請求項10】
前記読込み不可情報が、前記情報プログラムによる読み込みに対する応答に付随して当該情報プログラムに出力される
ことを特徴とする請求項に記載の産業用コントローラ。
【請求項11】
前記メモリ領域に書き込まれるデータセットは、前記メモリ領域に対するインターフェースであるメモリインターフェースによって、圧縮されたデータセットであり、
前記メモリ領域から読み込まれ前記情報プログラムに送られるデータセットは、前記メモリインターフェースによって、解凍されたデータセットである
ことを特徴とする請求項1に記載の産業用コントローラ。
【請求項12】
制御対象装置を制御しプロセッサ及びメモリを有する産業用コントローラにより実行されるデータ管理方法であって、
前記プロセッサが、OS(Operating System)を実行し、
前記メモリが、前記制御対象装置に関するデータセットが書き込まれるメモリ領域を含み、
OS上の複数のプログラムは、
前記制御対象装置の制御と、当該制御対象装置に関するデータセットの取得と、当該データセットを前記メモリ領域に書き込むこととを含んだ処理である制御処理を行い、当該制御処理において、前記メモリ領域の空き容量が第一の容量未満の場合には当該データセットを前記メモリ領域における既存のいずれかのデータセットに上書きする制御プログラムと、
読込み頻度に従う範囲に属するデータセットを前記メモリ領域から読み込むことと、前記制御対象装置の制御と異なる処理とを含んだ処理である情報処理を行う情報プログラムと
を含み、
前記データ管理方法が、
前記制御プログラムの前記メモリ領域への書き込みを、所定の周期で実行し、
前記情報プログラムが、各周期において、前記制御プログラムの実行終了後に実行された場合、次の周期までに前記情報処理が完了するか否かに関わらずに当該次の周期までに前記情報プログラムを終了し、
前記各周期において前記制御プログラムの実行終了から前記情報プログラムの実行開始までの間に前記OSにより実行される管理部を実行することにより、前記各周期において、少なくとも前記メモリ領域の空き容量が第二の容量未満の場合には、前記読込み頻度に従う範囲に属する複数のデータセットのうち対象とされたデータセットを削除することを含んだ管理処理を行う
ことを特徴とするデータ管理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概して、産業用コントローラに関する。
【背景技術】
【0002】
一般に、産業用コントローラの役割は、制御プログラムを周期的に実行することで、制御対象装置を遅延無く制御することにある。産業用コントローラは、プロセッサ及びメモリといったハードウェア資源を有するが、役割を担うのに必要なハードウェア資源は、一般的な計算機のハードウェア資源に比べて少なくて済むため、通常、産業用コントローラのハードウェア資源の量は、一般的な計算機に比べて少ない。
【0003】
ハードウェア資源の一つとして、メモリがある。メモリの使用に関する技術として、例えば特許文献1に開示の技術が知られている。特許文献1に開示の技術は、空き容量が少ない場合には、データ属性に基づき、保存されているデータから削除すべきデータを削除する。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2005-18539号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
制御プログラムの他に、制御対象装置の制御と異なる処理を含んだ情報処理を行う情報プログラム(典型的には複数の情報プログラム)も実行する産業用コントローラが検討される。
【0006】
この種の産業用コントローラでは、資源節約の観点から、制御プログラムと情報プログラムにメモリが共有されることが望ましい。具体的には、例えば、制御プログラムは、一定の周期で動作し、当該動作において、制御対象装置に関するデータセットをメモリ内のメモリ領域に書き込む。情報プログラムは、所定の読込み頻度で、読込み頻度に従う範囲に属するデータセット(すなわち、今回の読込み対象のデータセット)をメモリ領域から読み込む(読み込まれたデータセットは、例えば、情報プログラムによる所定の演算において使用される、或いは、分析サーバのような上位システムへ送信される)。
【0007】
この種の産業用コントローラでは、通常、制御プログラムの実行が、情報プログラムの実行よりも優先される。なぜなら、上述したように、産業用コントローラの役割は、制御対象装置を遅延無く制御することにあるから(つまり、リアルタイム性の維持が重要であるから)である。各周期において、制御プログラムは、メモリ領域の空き容量が不足している場合、メモリ領域におけるいずれかのデータセットに、新たなデータセットを上書きする。
【0008】
情報プログラムは、制御プログラムに比べて優先度が低い。このため、情報処理におけるデータ読込み処理が遅延する可能性がある。このため、メモリ領域のデータセットが上書きされ欲しいデータセットを取得することができない場合がある。少なくともデータ読込み処理まで読込み対象のデータセットが保存されていることが望ましいが、メモリ領域の空き容量が不足している場合、制御プログラムは、新たなデータセットを上書きせざるを得ない。
【0009】
特許文献1に開示の技術を利用すれば、データ削除によりメモリ領域に空き容量を増やすことができ、以って、上書きがされる可能性を低減できる。しかし、データ削除は、データそれ自体の属性を基に行われるため、データセットの属性によっては、読込み頻度に従う範囲に属する全てのデータセットが、データ読込み処理の前に削除されてしまう可能性がある。
【0010】
なお、「メモリ領域のデータセットが上書きされ欲しいデータセットを取得することができない場合がある」という問題は、メモリ容量の多寡に関わらずに生じ得る。例えば、一般に、制御プログラムは、産業用コントローラに共存する情報プログラムに依存すること無しに作成される。そのような制御プログラムは、メモリにデータセットを書き込んでも、当該データセットが当該制御プログラムにとって不要であれば、メモリ消費量を節約する等の目的から、情報プログラムが当該データセットを取得したか否かに関わらず、メモリにおける当該データセットに新たなデータセットを上書きすることを行い得る。
【課題を解決するための手段】
【0011】
制御対象装置を制御しプロセッサ及びメモリを有する産業用コントローラにおいて、プロセッサが、OS(Operating System)を実行し、メモリが、制御対象装置に関するデータセットが書き込まれるメモリ領域を含む。OS上の複数のプログラムは、制御プログラムと情報プログラムとを含む。制御プログラムは、制御対象装置の制御と、当該制御対象装置に関するデータセットの取得と、当該データセットをメモリ領域に書き込むこととを含んだ処理である制御処理を行い、当該制御処理において、当該データセットをメモリ領域の他のデータセットが格納された領域及び空き領域に書き込み可能である。情報プログラムは、データセットをメモリ領域から読み込んで情報処理を行う。制御プログラムのメモリ領域への書き込みは、所定の周期で実行される。産業用コントローラが、情報プログラムが処理するデータセットを、その処理前にメモリ領域上で管理する管理部を備える。
【発明の効果】
【0012】
本発明によれば、制御プログラムと情報プログラムの両方が実行される産業用コントローラのメモリに情報プログラムの情報処理において読込み対象のデータセットが存在する可能性を高めることができる。
【図面の簡単な説明】
【0013】
図1】実施例1に係る産業用コントローラを含むシステムのハードウェア構成を示す。
図2】実施例1に係る産業用コントローラのソフトウェア構成を示す。
図3】データ管理テーブルの構成を示す。
図4】頻度データの構成を示す。
図5】制御APの処理の流れを示す。
図6】情報APの処理の流れを示す。
図7】スケジューラの処理の流れを示す。
図8】管理部の処理の流れを示す。
図9】選別処理の一例を模式的に示す。
図10】加工処理の一例を模式的に示す。
図11】ウィンドウに属するデータセットのチェックの一例を模式的に示す。
図12】読込み不可通知の一例を模式的に示す。
図13】頻度調整を模式的に示す。
図14】枯渇時刻の推定と出力を模式的に示す。
図15】実施例2に係る産業用コントローラのソフトウェア構成を示す。
【発明を実施するための形態】
【0014】
以下の説明では、「インターフェース装置」は、一つ以上のインターフェースデバイスでよい。当該一つ以上のインターフェースデバイスは、一つ以上の同種の通信インターフェースデバイスであってもよいし二つ以上の異種の通信インターフェースデバイスであってもよい。
【0015】
また、以下の説明では、「メモリ」は、一つ以上のメモリデバイスであり、典型的には主記憶デバイスでよい。メモリにおける少なくとも一つのメモリデバイスは、揮発性メモリデバイスであってもよいし不揮発性メモリデバイスであってもよい。
【0016】
また、以下の説明では、「永続記憶装置」は、一つ以上の永続記憶デバイスである。永続記憶デバイスは、典型的には、不揮発性の記憶デバイス(例えば補助記憶デバイス)であり、具体的には、例えば、HDD(Hard Disk Drive)又はSSD(Solid State Drive)である。
【0017】
また、以下の説明では、「記憶装置」は、メモリと永続記憶装置の少なくともメモリでよい。
【0018】
また、以下の説明では、「プロセッサ」は、一つ以上のプロセッサモジュールである。少なくとも一つのプロセッサモジュールは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサデバイスであるが、GPU(Graphics Processing Unit)のような他種のプロセッサデバイスでもよい。少なくとも一つのプロセッサデバイスは、シングルコアでもよいしマルチコアでもよい。少なくとも一つのプロセッサモジュールは、プロセッサコアでもよい。
【0019】
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサによって実行されることで、定められた処理を、適宜に記憶装置及び/又はインターフェース装置等を用いながら行うため、処理の主語が、プロセッサ(或いは、そのプロセッサを有するコントローラのようなデバイス)とされてもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な(例えば非一時的な)記録媒体であってもよい。また、以下の説明において、二つ以上のプログラムが一つのプログラムとして実現されてもよいし、一つのプログラムが二つ以上のプログラムとして実現されてもよい。
【0020】
また、以下の説明では、「kkk部」の表現にて機能を説明することがあるが、機能は、一つ以上のコンピュータプログラムがプロセッサによって実行されることで実現されてよい。プログラムがプロセッサによって実行されることで機能が実現される場合、定められた処理が、適宜に記憶装置及び/又はインターフェース装置等を用いながら行われるため、機能はプロセッサの少なくとも一部とされてもよい。機能を主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置が行う処理としてもよい。各機能の説明は一例であり、複数の機能が一つの機能にまとめられたり、一つの機能が複数の機能に分割されたりしてもよい。
【0021】
また、以下の説明では、「xxxテーブル」といった表現にて、情報を説明することがあるが、当該情報は、どのような構造のデータでもよい。従って、「xxxテーブル」を「xxx情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、一つのテーブルは、二つ以上のテーブルに分割されてもよいし、二つ以上のテーブルの全部又は一部が一つのテーブルであってもよい。
【0022】
また、以下の説明では、「データセット」とは、アプリケーションプログラムのようなプログラムから見た一つの論理的な電子データの塊であり、例えば、レコード、ファイル、キーバリューペア及びタプルのうちのいずれでもよい。
【0023】
また、以下の説明では、制御プログラムの一例が、制御APであり、情報プログラムの一例が、情報APである。「AP」は、アプリケーションプログラムの略である。
【実施例1】
【0024】
図1は、実施例1に係る産業用コントローラを含むシステムのハードウェア構成を示す。
【0025】
分析サーバ101及び産業用コントローラ109が、情報ネットワーク108に接続されている。また、産業用コントローラ109及び一つ以上のI/Oモジュール119(I/Oポートの一例)が制御ネットワーク118に接続されている。情報ネットワーク108は、情報APが行う情報通信処理(つまり、制御情報の送信とは異なる通信処理)の際に使用される通信ネットワークである。制御ネットワーク118は、制御APが行う制御情報送信の際に使用される通信ネットワークである。情報ネットワーク108及び制御ネットワーク118は、異種のネットワークでもよいし、同種のネットワーク(例えばいずれもLAN(Local Area Network))でもよい。また、情報ネットワーク108の少なくとも一部と制御ネットワーク118の少なくとも一部が一体であってもよい。
【0026】
一つ以上のI/Oモジュール119に一つ以上の周辺機器120が接続されている。周辺機器120は、センサ及びドライブなどの少なくとも1つの機器である。I/Oモジュール119は、周辺機器120が必要に応じて着脱可能に装着されるバススロットとして機能する。制御対象装置は、周辺機器120経由又は非経由でI/Oモジュール119に接続される。制御対象装置とI/Oモジュール119は、1:1、1:多、多:1及び多:多のいずれでもよい。また、一部のI/Oモジュール119は、制御ネットワーク118に加えて情報ネットワーク108に接続されてもよい、すなわち、当該一部のI/Oモジュール119は、制御APと情報APに共有のデバイスであってもよい。
【0027】
分析サーバ101は、産業用コントローラ109の上位システムの一例である。分析サーバ101は、EPROM201、CPU202、メインメモリ203、周辺制御装置205、不揮発性記憶装置206及びネットワークインターフェース(図示のネットワークI/Fに相当)207を備える。分析サーバ101は、ネットワークインターフェース207を介して情報ネットワーク108に接続されている。
【0028】
産業用コントローラ109は、メモリ169(例えば、EPROM208及びメインメモリ210)、周辺制御装置212、I/O制御装置214、不揮発性記憶装置215、ネットワークインターフェース(図示のネットワークI/Fに相当)213、及び、それらに接続されたCPU209を備えている。I/O制御装置214及びネットワークI/F213が、インターフェース装置の一例である。CPU209がプロセッサの一例である。
【0029】
周辺制御装置212は、ネットワークI/F213、I/O制御装置214、不揮発性記憶装置215及びバス211に接続されている。このバス211には、その他にもメモリ169及びCPU209が接続されている。
【0030】
EPROM208には、予め制御AP及び情報APの少なくとも一つが格納されていてもよいし、プログラム配布サーバ(図示せず)のようなプログラムソースからダウンロードされたプログラムが格納されてもよい。産業用コントローラ109に搭載される制御APと情報APはそれぞれひとつずつだけでなく、産業用コントローラ109が使用できるリソースをプログラムごとに設定することにより、複数の制御AP及び/又は複数の情報APを搭載することができる。
【0031】
CPU209は、EPROM208に格納されている制御AP及び情報APをメインメモリ210に読み出して実行し、これら制御AP及び情報APの動作を制御する。例えば、CPU209は、制御APを実行することで、周辺制御装置212、I/O制御装置214及び複数のI/Oモジュール119を介して複数の周辺機器120を制御する。周辺機器120は、I/Oモジュール119に1:1で対応付けられていてよい。
【0032】
図2は、産業用コントローラ109のソフトウェア構成を示す。
【0033】
まず、産業用コントローラ109の概要は、以下の通りである。
【0034】
産業用コントローラ109において、上述したように、CPU209が、制御AP114及び情報AP115を実行するが、具体的には、CPU209が、OS(Operating System)286を実行し、当該OS286が、制御AP114及び情報AP115を実行する。メモリ169のメモリ領域の一例として、データ管理テーブル281がある。また、メモリ169には、データ管理テーブル281の他に、読込み頻度、例えば、読込み頻度が記述された頻度データ282も格納される。
【0035】
制御AP114は、制御処理を行う。制御処理は、制御対象装置の制御と、当該制御対象装置に関する測定データセット(制御対象装置に関するデータセットの一例)の取得と、当該測定データセットをデータ管理テーブル281に書き込むこととを含んだ処理である。測定データセットは、制御対象装置に関する一つ以上の測定項目(例えば、温度、電流)にそれぞれ対応した一つ以上の測定値(例えば、温度値、電流値)を含んだデータセットである。制御対象装置に関する一つ以上の測定値の各々は、I/Oモジュール119及びI/O制御装置214経由で取得される。取得される測定データセットに含まれる少なくとも一つの測定値は、典型的には、センサ等によって計測された値であるが、少なくとも一つの測定項目については、計測された値の時系列を基に推定された値でもよい。制御処理において、制御AP114は、当該データセットをデータ管理テーブル281のうち他のデータセットが格納された領域及び空き領域に書き込むことができるようになっている。例えば、制御処理において、データ管理テーブル281の空き容量が第一の容量未満の場合には(或いは、空き容量の多寡に関わらずに)、制御AP114は、取得された測定データセットを、データ管理テーブル281に既存のいずれかの測定データセット(例えば最も古い測定データセット)に上書きする。「データ管理テーブル281の空き容量が第一の容量未満」とは、例えば、空きのレコードの数が1未満(つまりゼロ)のことである。
【0036】
情報AP115は、データセットをデータ管理テーブル281から読み込んで情報処理を行う。例えば、情報AP115は、頻度データ282が示す読込み頻度に従う範囲に属する測定データセットをデータ管理テーブル281から読み込み、制御対象装置の制御と異なる処理としての情報処理を行う。「制御対象装置の制御と異なる処理」としては、例えば、頻度データ282を登録又は更新することであってもよいし、その他の処理であってもよい。また、「読込み頻度に従う範囲に属する測定データセット」とは、例えば、読込み頻度が“p秒”の場合、p秒間隔に属する少なくとも一つの測定データセットである。具体的には、例えば、周期Cが0.5秒であり、読込み頻度が1秒の場合、或る読込みから次の読込みの間に二つの測定データセットがデータ管理テーブル281に書き込まれることになるが、「読込み頻度に従う範囲に属する測定データセット」は、その二つの測定データセットのうち最も先に取得され書き込まれた測定データセットでよい。また、本実施例では、情報処理は、読み込まれた測定データセットを分析サーバ101に送信することも含む。
【0037】
OS286の中に、情報AP115が処理するデータセットをその処理前にデータ管理テーブル281について管理する管理部294が存在する。管理部294は、例えば、カーネルである。なお、「管理部」は、OS286の外にあってもよい。
【0038】
OS286により、下記の制御が行われる。
・制御AP114は、所定の周期で実行される。なお、制御AP114の実行周期を、以下、「周期C」と言い、x番目(xは自然数)の周期Cを、「周期Cx」と言う。
・情報AP115は、各周期Cにおいて、制御AP114の実行終了後に実行された場合、次の周期までに情報処理が完了するか否かに関わらずに当該次の周期までに終了される。
・管理部294は、各周期Cにおいて、制御AP114の実行終了から情報AP115の実行開始までの間に実行される。
【0039】
各周期Cにおいて、管理部294は、管理処理を行う。管理処理は、情報AP115が処理するデータセットをその処理前にデータ管理テーブル281から無くならないよう管理する処理である。例えば、管理処理は、下記のうちの少なくとも一つを含んでよい。
・情報AP115が処理するデータセットを、その処理前にデータ管理テーブル281上に格納位置を変更すること(例えば、情報AP115の処理開始までに所定の領域に退避しておき情報AP115の処理開始直前までにデータ管理テーブル281に戻すこと)。
・制御AP114がデータ管理テーブル281の空き領域に優先的にデータセットを書き込むようになっていれば(データ管理テーブル281に空き領域が無い場合に限り上書きをするようになっていれば)、少なくともデータ管理テーブル281の空き容量が第二の容量未満の場合に、頻度データ282が示す読込み頻度に従う範囲に属する複数のデータセットのうち対象とされたデータセットを削除すること。なお、「データ管理テーブル281の空き容量が第二の容量未満」とは、例えば、空きのレコードの数が1未満(つまりゼロ)のことである。第二の容量は、第一の容量と同じでも異なっていてもよい。
【0040】
このように、産業用コントローラ109では、例えば或る周期Cnにおいて、制御AP114の実行終了から情報AP115の実行開始までの間に管理処理を行う。これにより、情報AP115による読込みが次の周期C(n+1)へ遅延したとしても、当該次の周期C(n+1)において、未だ読み込まれていない測定データセットの読み込みの前に、制御AP114により当該測定データセットに新たな測定データセットが上書きされることは無い。このため、制御AP114と情報AP115の両方が実行される産業用コントローラ109のデータ管理テーブル281に情報AP115の情報処理において読込み対象の測定データセットが存在する可能性が高まる。
【0041】
以下、産業用コントローラ109の詳細を説明する。なお、以下の説明では、説明の簡単化のために、一つの制御AP114と一つの情報AP115を例に取る。一つの制御AP114につき、複数の情報AP115が存在してもよいし、一つの情報AP115につき、複数の制御AP114が存在してもよい。また、産業用コントローラ109は、例えば、SDC(Software-Defined Controller)である。SDCは、制御対象装置の「制御」に影響を与えずに上位システム(本実施例では分析サーバ101)に応じて機能(ここでは情報AP115)を柔軟に追加、変更又は削除できるコントローラである。また、管理処理は、データ管理テーブル281からデータセットを削除することで空き容量を増やすことを含む必要は無いが、制御AP114がデータ管理テーブル281の空き領域に優先的にデータセットを書き込むようになっていれば、データ管理テーブル281からデータセットを削除することを管理処理が含むことは有効である。
【0042】
産業用コントローラ109のCPU209は、OS286を実行する。OS286上で、制御AP実行部111及び情報AP実行部112が動作する。制御AP実行部111は、例えばランタイムライブラリであり、制御AP114からの呼び出しに応じて制御AP114とともに動作する。情報AP実行部112は、例えばいわゆるライブラリであり、情報AP115からの呼び出しに応じて情報AP115とともに動作する。
【0043】
産業用コントローラ109では、制御AP114の優先度が情報AP115の優先度よりも高い。すなわち、制御AP114の実行が、情報AP115の実行よりも優先される。なぜなら、産業用コントローラ109の役割は、制御対象装置を遅延無く制御することにあるから(つまり、リアルタイム性の維持が重要であるから)である。
【0044】
OS286が、一つ以上のAPI(Application Programming Interface)、管理部294及びスケジューラ295を含む。一つ以上のAPIのうちの少なくとも一つは、OS286の外に存在してもよい。
【0045】
一つ以上のAPIは、例えば、共有API289及び頻度API293を含む。共有API289は、メモリインターフェースの一例であり、制御AP114及び情報AP115の共有メモリ領域(本実施例では、データ管理テーブル281が存在するメモリ領域)に対するI/OのためのAPIである。本実施例では、共有API289は、書込みの際に使用される書込みAPI291と、読込みの際に使用される読込みAPI292とで構成される。書込みAPI291は、全ての制御AP114に共通でよく、読込みAPI292は、全ての情報AP115に共通でよい。頻度API293は、頻度データ282の登録又は更新や読込みの際に使用される。また、いずれのAPIも、制御AP114及び情報AP115のうちの少なくとも一つのためのAPIでよいが、管理部294により使用されてもよい。また、管理部294からメモリ169へのアクセスは、共有API289及び頻度API293経由とは違う経路でよい。
【0046】
管理部294は、上述した管理処理を行うカーネルである。つまり、管理部294は、OS286のカーネルとして実装される。
【0047】
スケジューラ295は、制御AP114、情報AP115及び管理部294の実行を制御する。また、スケジューラ295は、APIの実行も制御する。
【0048】
メモリ169は、上述したように、データ管理テーブル281及び頻度データ282を格納する。
【0049】
分析サーバ101は、測定データベース(図示の測定DBに相当)104、DB処理部102及び分析部103を備える。
【0050】
測定DB104は、測定データセットを格納するデータベースである。
【0051】
DB処理部102は、情報AP115から測定データセットを受信し、当該測定データセットを測定DB104に格納する。
【0052】
分析部103は、測定DB104から分析対象範囲に属する測定データセットを読み込み、当該測定データセットを用いた分析を行う。
【0053】
図3は、データ管理テーブル281の構成を示す。
【0054】
データ管理テーブル281が有する各レコードに、一つの測定データセットが格納される。各レコードが、取得ID、及び、一つ以上の測定項目にそれぞれ対応した一つ以上の測定値を格納する。
【0055】
取得IDは、周期と測定時刻とのうちの少なくとも一つに従うIDである。例えば、取得IDは、周期ID(例えば、Cx)と、測定時刻との組み合わせでもよい。取得IDを参照することで、或る情報処理において、いずれの測定データセットが、読込み頻度の範囲に従う測定データセットであるかを特定することができる。
【0056】
各レコードにおいて、一つ以上の測定値の各々が、測定データセットの構成要素である。
【0057】
図4は、頻度データ282の構成を示す。
【0058】
頻度データ282は、読込み頻度を示す。なお、本実施例では、頻度データ282は、全ての情報AP115について共通であるが、情報AP115毎に異なる頻度データ282が用意されてもよいし、測定項目毎に用意されてもよい。
【0059】
図5は、制御AP114の処理の流れを示す。S501~S503が、制御処理に含まれる処理である。S501~S503のうちの少なくともS501が、後述のスキャン動作に該当する処理である。
【0060】
制御AP114は、スケジューラ295により起動されると、制御対象装置を制御する(S501)。制御AP114は、制御対象装置に関する測定データセットを取得す(S502)。制御AP114は、書込みAPI291を呼び出し(S503)、それにより、取得した測定データセットをデータ管理テーブル281に書込む。
【0061】
制御AP114は、S503を終えると、次の周期の開始まで(スケジューラ295により次に起動されるまで)停止する(S504)。
【0062】
図6は、情報AP115の処理の流れを示す。
【0063】
情報AP115は、スケジューラ295により起動されると、制御対象装置の制御と異なる所定の処理を行う。本実施例では、当該処理として、情報AP115は、頻度API293を呼び出し(S601)、それにより、頻度データ282を登録又は更新する。なお、S601では、頻度API293の呼出しに代えて又は加えて、別の処理が行われてよい。
【0064】
情報AP115は、読込みAPI292を呼び出し(S602)、それにより、S601において登録又は更新された頻度データ282が示す読込み頻度に従う範囲に属する測定データセット(つまり、読込み対象の測定データセット)をデータ管理テーブル281から読み込む。測定データセットの読込みは、今回の情報処理の開始時刻と、データ管理テーブル281における取得IDとを基に行われる。S602では、読込み対象の測定データセットは、例えば、読込み頻度(例えばp秒)と周期C(例えばq秒(典型的にはq≦p))との関係に従う測定データセット(例えば、p秒間に取得された一つ以上の測定データセットのうちの最新の測定データセット)である。
【0065】
情報AP115は、S602で読み込まれた測定データセットを分析サーバ101へ送信する。
【0066】
情報AP115は、S603を終えると、スケジューラ295により次に起動されるまで停止する(S604)。
【0067】
S602では、今回の情報処理での読込み対象の測定データセットに加えて、当該測定データセット以外の測定データセットのうちの過去の未読込みの測定データセット(例えば、前回の情報処理での読込み対象の測定データセット)が読み込まれていなかった場合には、今回の情報処理での読込み対象の測定データセットに加えて当該過去の未読込みの測定データセットも読み込まれてよい。この場合、S603では、読み込まれた全ての測定データセットが分析サーバ101へ送信される。
【0068】
また、S602では、読込みAPI292により読み込まれた測定データセットは、情報AP115又は読込みAPI292により、新たな測定データセットが書き込まれてよい状態とされてよい(例えば、無効化、又は、データ管理テーブル281から削除されてよい)。
【0069】
また、例えば、複数の情報AP115が存在する場合、各情報AP115について、当該情報AP115により読み込まれるデータセットは、測定データセットのうちの一部、つまり、所定の測定項目に対応した測定値でよい。複数の情報AP115の各々が情報処理を行うことで測定データセットにおける全ての測定値が読み込まれてもよい。なお、この場合、測定データセットは、複数のデータセットの集合でよく、個々のデータセットは、一つ(又は複数)の測定値でよい。
【0070】
図7は、スケジューラ295の処理の流れを示す。
【0071】
スケジューラ295は、周期Cの開始であれば(S701:Yes)、制御AP114を実行(起動)する(S702)。
【0072】
スケジューラ295は、制御AP114が終了したら(S703:Yes)、管理部294を実行(起動)する(S704)。
【0073】
スケジューラ295は、管理部294が終了し(S705:Yes)、頻度データ282が示す読込み頻度に従うタイミングの場合(S706:Yes)、情報AP115を実行(起動)する(S707)。スケジューラ295は、情報AP115実行中もある間隔で周期Cかどうかを判定し、周期Cの場合は一旦情報AP115の処理を停止してから制御APを実行する(S702)。停止した情報AP115は、管理部294の実行(S705)後に処理を再開する。
【0074】
情報AP115が終了したら(S703:Yes)、処理が、S701に戻る。周期Cの開始でなく(S701:No)、且つ、実行対象の別の情報AP115があれば(S706:Yes)、スケジューラ295は、当該別の情報AP115を実行する(S707)。
【0075】
なお、情報AP115が終了していないが(S708:No)、周期Cの開始であれば(S709:Yes)、スケジューラ295は、当該情報AP115を停止して制御AP114を実行する(S702)。
【0076】
図8は、管理部294の処理の流れを示す。S801及びS802が、管理処理に含まれる処理である。
【0077】
管理部294は、スケジューラ295により起動されると、データ管理テーブル281に空きがあるか否かを判断する(S801)。S801の判断の結果が真の場合(S801:Yes)、管理部294は、選別処理又は加工処理を行う(S802)。結果として、データ管理テーブル281に、次の周期Cで新たな測定データセットが書き込まれることが可能な空きが生じる。言い換えれば、次の周期Cで新たな測定データセットの上書きが生じることを回避することができる。なお、管理部294は、制御AP114が固定メモリ領域に書き込んだデータセットを他のメモリ領域へコピーしてもよい。
【0078】
本実施例では、管理部294及び情報AP115は、周期的実行され、管理部294は、情報AP115よりも実行頻度が高い。
【0079】
また、本実施例では、管理部294、制御AP114及び情報AP115は、同時に実行される場合の優先度が定められており、管理部294及び制御AP114は、情報AP115よりも優先度が高い。
【0080】
図9は、選別処理の一例を模式的に示す。
【0081】
例えば周期Cnにおいて、選別処理は、読込み頻度に従う範囲に属する複数の測定データセットから測定データセットを選別する処理(例えば、選別した測定データセットについて、制御AP114による上書きの禁止を意味するフラグを立てる処理)である。なお、選別処理は、当該複数の測定データセットのうち当該選別された測定データセット以外の測定データセットをデータ管理テーブル281から削除することを含んでもよい(例えば、制御AP114がデータ管理テーブル281の空き領域に優先的にデータセットを書き込むようになっている場合)。
【0082】
図9を参照して、一具体例を説明する。
【0083】
読込み頻度は周期Cの2倍であるとする。この場合、或る読込みが終了し次の読込みが行われるまでの間に、二つの周期が存在し、故に、二つの測定データセットが書き込まれることになる。
【0084】
周期C1で測定データセットが書き込まれ、次の周期C2で測定データセットが書き込まれたとする。この場合、読込み対象となる最新の測定データセットは、周期C2で書き込まれた測定データセットである。しかし、情報処理の遅延(又は他の理由)により、周期C2で書き込まれた測定データセットの読込みは失敗であったとする。周期C2での制御処理によって、データ管理テーブル281に空きが無くなったとする。
【0085】
一比較例では、このまま周期C3及びC4に入ることになる。この場合、周期C3では、周期C1で書き込まれた測定データセットに新たな測定データセットが上書きされることになるが、周期C1で書き込まれた測定データセットは読込み対象とならないため差し支えない。しかし、周期C4では、周期C2で書き込まれた測定データセットに新たな測定データセットが上書きされることになるため、読込み対象が無くなることになる。故に、本実施例では、分析サーバ101へ送付されるべき測定データセットが無くなることとなり、結果として、分析に使用する測定データセットが減ることとなる。
【0086】
一方、本実施例では、各周期Cにおいて、制御AP114が終了すると管理処理が走る。周期C2での管理処理における選別処理では、周期C2で書き込まれた測定データセットが選別される(更に、周期C1で書き込まれた測定データセットが削除されてもよい)。周期C3での管理処理における選別処理では、周期C2で書き込まれた測定データセットが選別される(更に、周期C3で書き込まれた測定データセットが削除されてもよい)。故に、周期C4では、周期C2で書き込まれた測定データセットに新たな測定データセットが上書きされることが無い。
【0087】
このように、管理処理は、情報AP115の読込み頻度に従う範囲に属する複数のデータセットからデータセットを選別する処理である選別処理を含み、選別されたデータセットは、情報AP115が読み込みこむまでに制御AP114に上書きされないように管理部294により管理される。これにより、情報AP115による読込みが遅延して読込み対象の測定データセットが読み込まれずにデータ管理テーブル281に増えても、当該未読込みの読込み対象の測定データセットが上書きされる可能性を低減することができる。
【0088】
図10は、加工処理の一例を模式的に示す。
【0089】
加工処理は、読込み頻度に従う範囲に属する複数のデータセットのうちの二つ以上のデータセットを加工し、当該加工後のデータセットをデータ管理テーブル281に書き込む処理である。加工処理は、当該二つ以上のデータセットをデータ管理テーブル281から削除することを含んでもよい(例えば、制御AP114がデータ管理テーブル281の空き領域に優先的にデータセットを書き込むようになっている場合)。
【0090】
図10を参照して、一具体例を説明する。なお、ここでは、説明の簡単化のために、一つの測定項目(測定項目A)に着目するものとする。また、図10において、測定項目Aに対応したブロック内の数値は、測定項目Aに対応した測定値であるとする。
【0091】
読込み頻度に従う範囲に、六つの測定値(六つの測定データセット)が存在するとする。この場合、管理部294は、読込み頻度に従う範囲に属する六つの測定値の平均の算出(加工の一例)を行い、当該算出された平均値をデータ管理テーブル281に書き込む。この例によれば、六つの測定データセットに従う一つの加工後の測定データセットがデータ管理テーブル281に書き込まれる。当該加工後の測定データセットが、読込み頻度に従う範囲に属する読込み対象としての測定データセットである。なお、上述したように、加工の基になった六つの測定データセットはデータ管理テーブル281から削除されてもよい。
【0092】
このようにして、情報処理が遅延して読込み対象の測定データセットが読み込まれずにデータ管理テーブル281に増えても、当該未読込みの読込み対象の測定データセットが上書きされる可能性を低減することができる。
【0093】
なお、加工は、平均値の算出に限らない。また、加工の基になる測定データセットは、読込み頻度に従う範囲に属する全ての測定データセットでもよいし一部の測定データセットでもよい。また、全ての測定項目について、同一の加工が行われてもよいし、異なる加工が行われてもよい。後者の一例は、例えば以下の通りでよい。
・測定項目Aについては、六つの測定値の平均値が算出されてもよい。
・測定項目Bについては、六つの測定値のうちの最大値が選別されそれ以外の測定は削除されてもよい。
・測定項目Cについては、六つの測定値のうちの最小値が選別されそれ以外の測定は削除されてもよい。
・加工後の測定データセットは、測定項目Aについては算出された平均値を含み、測定項目Bについては選別された最大値を含み、測定項目Cについては選別された最小値を含んだデータセットでよい。
【0094】
本実施例では、更に、図11図14を参照して説明する処理のうちの少なくとも一つの処理が行われてもよい。
【0095】
図11は、ウィンドウに属するデータセットのチェックを模式的に示す。
【0096】
例えば、単位時間範囲であるウィンドウが指定される。ウィンドウの指定の受け付ける指定受付部が産業用コントローラ109に備えられてよい。指定受付部は、管理部294に含まれていてもよいし、ウィンドウの指定の受付けのために用意されたインターフェース(例えばAPI)でもよい。ウィンドウは、ユーザ(例えば、情報AP115のユーザ)から指定されてもよい。ウィンドウは、全ての情報AP115に共通でもよいし、情報AP115毎に異なっていてもよいし、測定項目毎に異なっていてもよい。ウィンドウのサイズは、読込み頻度と同じでもよいし異なっていてもよい。ウィンドウのサイズは、例えば、読込み頻度と同じかそれもよりも小さい。
【0097】
管理処理は、読込み頻度に従う範囲のうちのウィンドウに属する測定データセットが所定の異常条件を満たしているか否かをチェックすることを含んでよい。チェック結果が真の場合、管理処理は、当該管理処理後の情報処理において測定データセットと共に読み込まれる情報として、異常フラグON(異常を示す異常情報の一例)を設定することを含んでよい。結果として、情報処理では、読込み対象の測定データセットと共に異常フラグONが情報AP115に送られる。異常フラグONは、測定データセットと共に、分析サーバ101へ送られてもよい。
【0098】
これにより、周期Cの割に読込み頻度が低いが故に読込み対象とならない測定データセットが読込み対象となる測定データセットより多くても、情報AP115及び上位システム(本実施例では分析サーバ101)の少なくとも一つに、制御対象装置に関する状況を知らしめることができる。
【0099】
図12は、読込み不可通知の一例を模式的に示す。
【0100】
データ管理テーブル281内の未読込みの読込み対象のデータセットに新たなデータセットが制御AP114により上書きされた場合に当該読込み対象のデータセットの読み込みが不可であることを示す情報である読込み不可情報を出力する出力部が産業用コントローラ109に備えられてよい。これにより、もし読込み対象の測定データセットが上書きされた場合にはそのことを知らしめることができる。なお、当該出力部は、管理部294に含まれていてもよいし、共有API289に含まれていてもよい。また、読込み不可情報は、情報AP115及び上位システム(本実施例では分析サーバ101)の少なくとも一つに出力されてもよいし、図示しないユーザ端末(例えば管理者の情報処理端末)に表示されてもよい。また、出力部は、ユーザ(例えば管理者)からの問合せ(読込み不可となった測定データセットが存在するか否かの問合せ)に応答して、読込み不可情報があれば当該情報を返してもよい。
【0101】
図12を参照して、一具体例を説明する。
【0102】
或る周期C5での制御処理においていずれかの未読込みの読込み対象の測定データセット(例えば、周期C2及び周期C4の各々において書き込まれた測定データセット)に新たな測定データセットを上書きしなければならない場合(例えば、データ管理テーブル281に存在する全ての測定データセットが未読込みの読込み対象の測定データセットであるといったことが生じた場合)、データ管理テーブル281内のいずれかの未読込みの読込み対象の測定データセット(例えば、周期C2で書き込まれた測定データセット)に新たなデータセットが周期C5において制御AP114により上書きされることになる。この場合、当該読込み対象の測定データセットの読み込みが不可であることを示す情報である読込み不可情報が出力される。
【0103】
なお、読込み不可情報が、情報AP115による読み込みに対する応答に付随して当該情報AP115に出力されてよい(また、当該読込み不可情報は、情報AP115から分析サーバ101へ送られてよい)。具体的には、例えば、読込み不可情報は、新たな測定データセットが上書きされた読込み対象の測定データセットに対応した取得IDと共にメモリ169に格納されてよい。情報AP115による読み込みがあり、当該読み込みでの読込み対象が、当該取得IDに対応した測定データセットの場合、読込み不可情報が、情報AP115による読み込みに対する応答に付随して出力される。このように、読込み不可情報を別途出力する必要が無く、読み込みに対する応答として出力することができる。
【0104】
図13は、頻度調整を模式的に示す。
【0105】
データ管理テーブル281の空き容量を基に読込み頻度を変更することである頻度調整を行う頻度調整部が産業用コントローラ109に備えられてよい。これにより、データ管理テーブル281の空き容量、周期C及び読込み頻度の関係を適切に維持し、以って、未読込みの読込み対象の測定データセットが上書きされる可能性を低減できる。なお、頻度調整部は、管理部294に含まれていてもよいし、頻度API293に含まれてもよい。また、頻度調整部による頻度調整を行うか否かの設定をユーザ(例えば管理者)から受け付けるインターフェースが産業用コントローラ109に備えられてもよい。また、頻度調整は、図13に例示するように、図8のS801:Noの後又はS802の後に、管理部294により行われてもよい。
【0106】
頻度調整については、下記のうちの少なくとも一つが適用されてよい。
・頻度調整は、データ管理テーブル281の空き容量の時系列から、データ管理テーブル281の空き容量が第一の容量未満になる時刻(例えば、データ管理テーブル281に空きが無くなる時刻)である枯渇時刻を推定し、当該枯渇時刻よりも前に、読込み頻度を低くすること、を含んでよい。読込み頻度が低くなることで、読込みを含んだ情報処理が単位時間当たりに発生する頻度が低くなるので、未読込みの読込み対象の測定データセットが増える速度が低減し、以って、未読込みの読込み対象の測定データセットが上書きされる可能性を低減できる。なお、データ管理テーブル281の空き容量の時系列は、例えば、管理部294によりメモリ169に蓄積されてよい。
・頻度調整は、データ管理テーブル281の空き容量が第三の容量以上の場合に、読込み頻度を高くすること、を含んでよい。データ管理テーブル281の空き容量が第三の容量以上であれば、未読込みの読込み対象の測定データセットが増えていっても差支えがなく、このような場合に読込み頻度が高くなることで、未読込みの読込み対象の測定データセットが減る速度を向上でき、以って、データ管理テーブル281の使用効率を向上することができる。なお、第三の容量は、上述の第一の容量と第二の容量のうちの少なくとも一つと同じでもよいし、第一の容量と第二の容量のいずれとも異なる容量であってもよい。例えば、第三の容量は、第一の容量及び第二の容量よりも大きな容量でよい。
【0107】
図14は、枯渇時刻の推定と出力を模式的に示す。
【0108】
データ管理テーブル281の空き容量の時系列から枯渇時刻を推定する時刻推定部と、推定された枯渇時刻をユーザ向けに出力する時刻出力部とが、産業用コントローラ109に備えられてもよい。「枯渇時刻をユーザ向けに出力する」とは、枯渇時刻を表示又は音声出力することでもよいし、ユーザ(例えば管理者)の情報処理端末(例えば計算機)に枯渇時刻を示す情報を送信することでもよい。これにより、ユーザは、推定された枯渇時刻を知ることができ、以って、読込み頻度を調整する等の対策をとることができる。なお、時刻推定部及び時刻出力部の少なくとも一つは、管理部294に含まれてもよいし、頻度調整部に含まれてもよいし、いずれかのAPIに含まれてもよい。
【実施例2】
【0109】
実施例2を説明する。その際、実施例1との相違点を主に説明し、実施例1との共通点については説明を省略又は簡略する。
【0110】
図15は、実施例2に係る産業用コントローラのソフトウェア構成を示す。
【0111】
産業用コントローラ1509において、制御AP実行部111及び情報AP実行部112の各々は、コンテナ型仮想化に従うコンテナである。管理部1501は、管理処理を実行するプログラムを含んだコンテナである。つまり、本実施例では、管理処理は、OS286の外に存在する管理部1501により行われ、管理部1501は、OS286上でコンテナとして稼働する。
【0112】
以上、幾つかの実施例を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実行することが可能である。
【0113】
例えば、実施例1及び2に関して、次のようなことが言える。すなわち、管理機能(選別又は加工)が情報AP115から分離され、管理機能の優先度は、制御AP114よりも低いが情報AP115よりも高い。具体的には、例えば、管理機能は、情報AP115よりも優先して実行される(例えば管理AP114の終了直後に実行される)。管理機能は、カーネルとして実装されてもよいし、優先度の高いコンテナとして実装されてもよい。スケジューラ295が制御AP114の処理後に管理機能を動作させることで、情報AP115が必要な測定データセットを効率的に保存できる。
【0114】
また、例えば、書込みAPI291が、測定データセットの圧縮可否を指定し、データ管理テーブル281の各レコードが、測定データセットの圧縮可否を示す情報(例えばフラグ)を格納してもよい。圧縮可の場合、書込みAPI291が、測定データセットを圧縮し、圧縮された測定データセットがデータ管理テーブル281に書込まれてよい。また、この場合、読込みAPI292は、読込み対象の測定データセットを格納したレコードに、圧縮可を示す情報が格納されていれば、当該レコード内の圧縮されている測定データセットを解凍し、解凍された測定データセットを情報AP115へ送る。圧縮が行われることで、共有メモリ領域の空き容量の減少を低減することができ、結果として、測定データセットの上書きが行われてしまう可能性を低減することができる。
【0115】
また、例えば、下記のうちの少なくとも一部が、例えば、少なくとも一つの実施例に適用されてもよい。
【0116】
産業用コントローラ109は、シーケンス制御装置、モーション制御装置、又はプログラマブル・ロジック・コントローラ(PLC)とも呼ばれることがある。ラダー・ロジック(LD言語)、シーケンシャル・ファンクション・チャート(SFC言語)、ファンクション・ブロック(FBD言語)、ストラクチャード・テキスト(ST言語)、インストラクション・リスト(IL言語)のような制御特有のプログラミング言語で制御内容が記述される。また、場合により、C言語等の汎用プログラミング言語での記述が、ラダー言語等での記述の一部又は全部に差し替えられてもよい。
【0117】
このような産業用コントローラ109に接続される制御対象を制御する制御AP114は、ラダー言語を代表とする制御特有のプログラミング言語を用いることが有効である。ラダーの表示が可能であり、制御対象装置の状態の監視等に有効である。一方、情報AP115は、このような産業用コントローラ109における情報処理(例えば、複雑な算術演算や、SCADA、MES、クラウドシステムとの情報の送受信のような情報通信処理)に有効である。このような情報処理は、制御特有の言語でプログラミングすることが困難な場合があり、いわゆるC言語又はJava(登録商標)言語などの情報通信分野で使われるプログラミング言語を用いて記述する場合がある。
【0118】
制御AP114は、I/Oモジュール119等を介して実際にモータ等を含む周辺機器120を操作し、生産システム等を適切に動作させる必要がある。そのため、制御AP114は、処理を設定された時間内に確実に実行すること(リアルタイム性)が求められる。制御AP114は、制御内容が記述された命令によって制御対象装置(例えば、装置部品のようなハードウェアモジュール、一つ以上のハードウェアモジュールを備えた装置、又は、複数の装置を備えたシステム)を制御する。例えば、「I/Oモジュール119等を介して実際にモータ等を含む周辺機器120を操作し、生産システム等を適切に動作させる」といった制御では、「生産システム」、又は、「生産システムを構成する少なくとも1つの装置」が、「制御対象装置」である。制御対象装置は、典型的には、産業用コントローラ109におけるI/O制御装置214(インターフェース部の一例)経由で接続された装置である。制御対象装置は、制御AP114から直接的に(例えば、I/Oモジュール119や周辺機器120を介さずに)制御されてもよいし、制御AP114から間接的に(例えば、I/Oモジュール119や周辺機器120を介して)制御されてもよい。制御対象装置を制御する言語は、ラダー言語等の制御特有のプログラミング言語に限らず、C言語等の汎用プログラミング言語で記述される場合もあるため、制御対象装置(典型的にはハードウェア)を制御するプログラムが、制御AP114である。
【0119】
ラダー言語等で記述された制御APは、当該ラダー言語等の記述において指定された制御対象装置の状態を読み込み又は書き込み(取得又は更新)をする「スキャン動作」を行う。このスキャン動作は所定間隔で行う必要があり、この所定間隔を「スキャンタイム」と呼ぶ。スキャンタイムは、制御APの演算時間に関するものであり、制御に関する演算周期又は制御に関する演算を繰り返し所定間隔で行うことから「サイクルタイム」とも呼ばれることもある。スキャンタイムが、周期Cに相当する。
【0120】
スキャンタイムは、産業用コントローラ109が制御する制御対象装置の数や種類の増加に応じて長くなるが、スキャンタイム内で制御対象装置のスキャン動作をすることが重要である。
【0121】
産業用コントローラ109に、I/Oポートが内蔵又は接続される。I/Oポートは、I/Oモジュール119又はI/Oユニット等が有する場合がある。以下、I/Oポートそれ自体、又は、I/Oポートを有する装置(I/Oモジュール又はI/Oユニット等)を、「I/Oポート」と総称する場合がある。I/Oポートは、制御対象装置、例えば、生産設備におけるベルトコンベア、リミットスイッチ、アクチュエータ(例えばモータ)に接続され、制御対象装置の動作に関する制御に使用されるものである。I/Oポートは、デジタル又はアナログのI/Oポートである。例えば、アナログI/Oポートは、産業用コントローラ109の制御対象装置の電圧、電流、温度等を含んだ測定データセットの読み書きに使用される。
【0122】
制御AP114に基づいて産業用コントローラ109のI/Oポートから送信される制御情報を有線又は無線で受信するインバータユニットやCNC(Computerized Numerical Control)はインバータやCNC自体がアクチュエータのモーション制御を行うため、リアルタイム性が求められる。
【0123】
また、制御対象装置の制御とは、制御対象装置が接続されている状態のI/Oポートの動作を制御することをいう。つまり、制御AP114とは、制御対象装置が接続されたI/Oポートの制御を行うプログラム、言い換えれば、制御対象装置が接続されたI/Oポートに当該制御対象装置の制御情報を出力する(具体的には、例えば、当該制御情報の出力を含むスキャン動作を行う)プログラムである。
【0124】
このような産業用コントローラ109において、制御対象装置の制御に加えて、情報処理(例えば、複雑な算術演算やSCADA、MES、クラウドシステムとの情報の送受信のような情報通信処理)を行うことを検討する。このような情報処理は、上述の制御特有の言語でプログラミングすることが困難な場合があり、C言語又はJava(登録商標)言語などの情報処理分野で使われるプログラミング言語を用いて記述することがある。このような情報処理を実行するプログラムが、情報AP115である。
【0125】
制御AP114と情報AP115の違いの一例について説明する。
【0126】
上記したように制御AP114は、産業用コントローラ109のI/Oポートの制御に関係したプログラムであり、情報AP115は、情報処理(例えば、上述のように、算術演算や、クラウドとの通信)を行うプログラムである。制御AP114は、ラダーやST言語等で記述され、java(登録商標)やpython等に代表される汎用言語に比べてリアルタイム性が高い。情報AP115は、java(登録商標)やpython等に代表される言語で記述され、ラダー等よりも情報処理に適している。C言語等のリアルタイム性が高く、ハードウェアの制御にも適しており、また、情報処理にも適した言語は制御AP114と情報AP115のいずれにも利用可能な場合がある。制御対象装置がI/Oポートを介して産業用コントローラ109に接続されるが、制御AP114は、制御対象装置に接続されるアナログやデジタルのI/Oポートに制御対象装置の制御情報を送信することを含むスキャン動作を行うプログラムであるが。一方、情報AP115は、制御対象装置に接続されるアナログやデジタルのI/Oポート(但し、情報AP115との共有が許容されているI/Oポートを除く)へアクセスしないプログラムである。別の言い方をすれば、情報APは、スキャン動作を含まない(スキャン動作とは異なる)情報処理を行うプログラム(つまり、スキャン動作を行うことがないプログラム)である。
【0127】
制御に関しては、一般に、高いリアルタイム性が求められ、情報処理に関しては、一般に、高いスループットが求められる。そして、OSとして、一般に、制御向けのOSとしての専用OS(リアルタイムOS)と、情報処理向けのOSとしての汎用OSとがある。
【0128】
ここで、仮に、昨今の汎用計算機分野の技術を考慮すると、制御APは専用OS上で実行され、情報APは汎用OS上で実行されることが考えられる。このため、制御APと情報APの共存は、通常、計算機における計算リソース集合(物理的な計算リソースの集合としてのハードウェア)をエミュレートする仮想マシン技術を採用することになると考えられる。具体的には、例えば、ハイパバイザが、制御AP用に、ゲストOSとして専用OSを搭載した仮想マシンを生成し、情報AP用に、ゲストOSとして汎用OSを搭載した仮想マシンを生成し、制御APと情報APが、OSが異なる別々の仮想マシンで実行されることが考えられる。
【0129】
しかし、仮想マシン技術では、仮想マシンにおけるゲストOSの他に、仮想マシンのベースとなるホストOSが存在する。結果として、管理対象が多く、管理が煩雑となることが考えられる。
【0130】
また、計算機に機器が接続されても、当該計算機における全ての制御APや情報APが容易に当該機器を認識できるわけではない。仮想マシン別に、ゲストOSを介して、当該機器を認識するための処理が必要となる。
【0131】
そこで、汎用OSの系統ではあるものの必要とされるリアルタイム性を提供できるリアルタイム機能を持ったOS(以下、便宜上、「リアルタイム汎用OS」と呼ぶ)を、OS286として採用することが考えられる。
【符号の説明】
【0132】
109…産業用コントローラ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15