AI搭載マシンオートメーションコントローラの開発(2)
- 時系列データベース
- 組み込みデータベース
- AI技術
- NoSQL
- エッジ・コンピューティング
近年、製造業では、設備の稼働率向上と高品質な製品を安定的に生産するため、製造現場においてAI(Artificial Intelligence)やIoT(Internet of Things)を活用するニーズが高まり続けている。
従来、製造現場のデータを活用するには、センサやモータ等各機器のデータをネットワーク経由で専用のデータベースサーバへ蓄積し、分析を行うという作業を行っていた。しかし、装置を制御するコントローラが高速・高精度になるに従い、より高速なデータ収集が必要となるが従来のシステムでは全てのデータをサーバへ格納することができなかった。
そこで我々は、AI機能を搭載したマシンオートメーションコントローラを開発するにあたり、制御周期に同期したデータ収集の仕組み、および収集したデータをコントローラ内に蓄積する時系列データベースを開発した。これにより高精度なAI機械学習モデルを作成することを可能にし、モデルに基づいたAI機能による設備の異常検知を行うコントローラを実現した。
1. まえがき
近年、製造現場へのIT(Information Technology)の導入が進み、製造現場のデータを活用した取り組みが加速している。例えば、製造情報や品質データをデータベースへ蓄積・解析し、稼働率管理や予防保全に活用する事例があげられる 1)2)。
また、近年発展の著しいAI技術をファクトリーオートメーション分野、特に製造管理や設備保全などの業務に対して導入することが検討されており、装置を制御するコントローラから取得できるデータを活用した生産設備の異常検知の実証例が報告されている 3)4)。
AI技術を活用することにより、従来の人によるデータ解析では困難な大量のデータの解析が可能となったが、データに基づいた設備保全のさらなる質の向上には、現場で動作する設備の挙動を十分に捉えられる周期でのデータの収集が必要と考えられる。そこで、我々は、AI搭載マシンオートメーションコントローラを開発するにあたり、装置を制御するコントローラの制御周期と同期したデータ収集およびデータを蓄積する技術を確立した。
2. 課題
2.1 従来のデータ収集の方式
製造現場において用いられるマシンオートメーションコントローラは、あらかじめ定められた順序に従い制御を行うシーケンス制御、モータの位置制御を行うモーション制御などを行う制御機器である。コントローラはEtherCATに代表される産業用のネットワーク(以下、フィールドネットワーク)を介してセンサやモータなど製造設備を構成する様々な制御機器の入出力データ(以後、製造データとよぶ)を0.125msから数msの周期で収集できる。これらの製造データは「変数」に割り当てることができ、さらにコントローラ内の制御プログラムにより演算を施した結果を別の変数に代入することができる。また、コントローラはTCP/IPベースのネットワーク通信機能を備えるなどIT化が進み、製造現場と上位の製造管理システムとのインタフェースとしての役割も果たしている。
従来から製造業では、製造工程の把握や作業者への指示などを行うMES(Manufacturing Execution System:製造実行システム)や、不良・故障の原因追究、製造工程の製造履歴の記録などのために、コントローラをインタフェースとして製造情報や品質データをデータベースへ蓄積することが行われている。
従来、多く採用されている方法は、コントローラとサーバの間にネットワークで接続したデータ収集ソフトを配置し、データ収集ソフトが収集したデータをデータベースへ格納する方法である(図1a)。また、近年ではコントローラからネットワークで接続したデータベースへ直接データを格納することが可能な製品も存在する(図1b)1)。

2.2 高速・高精度のデータ収集の課題
従来のデータ収集の方式は、いずれの方式においても、ネットワークを介して収集するため数msから数100msのオーダーとなる。また、ネットワークやデータ収集ソフト、DBサーバの負荷などの要因により、データ収集の間隔の揺らぎが発生することが避けられない。
一方、コントローラは最短0.125msという高速かつ高精度な制御周期で動作することが可能である。図2は、コントローラへ入力したサイン波形を表すアナログ値(図2a)と、入力したアナログ値を10ms周期で収集したデータ(図2b)をグラフにしたものである。

AI技術を活用した高精度なデータ解析の実現にはコントローラの制御周期と同期した高速で高精度なデータ収集が必要と考えるが、従来のデータ収集の方式では10ms周期程度の収集となり、元のデータがサイン波形であることを解析できない。
そこで我々は、AI技術を活用した機械学習・特徴抽出機能を搭載したAI搭載マシンオートメーションコントローラを開発するにあたり、コントローラの制御周期と同期してデータを収集および蓄積する「時系列データベース」を実現した。
3. 技術内容
3.1 時系列データベース
2章で述べた課題を解決するために、制御と同期して時系列に発生する製造データを収集、蓄積することを目的とした「時系列データベース」(以降、時系列DB)をコントローラの内部で実現した。
一般的に時系列DBは、一定の時間間隔で生成されるデータ(時系列データ)の扱いに特化し、時刻(Timestamp)をインデックスとした単純なデータ構造で、大量なデータを扱うこと特徴とするデータベースシステムである。
図3にAI搭載マシンオートメーションコントローラにおける時系列DBのシステム構成図を示す。コントローラは、IOユニットまたはフィールドネットワークでセンサやモータに接続する。制御プログラムは、装置のシーケンス制御、モーション制御を実行するプログラムである。データ収集処理は、センサやモータなどのデータを収集し時系列DBへ格納する。時系列DBは格納したデータをCSVファイルへエクスポートする。CSVファイルは上位パソコンでデータ解析される。

AI搭載オートメーションコントローラに組み込むデータベースを実現するに当たり、我々は以下の設計指針を設定した。
<設計指針>
- 1)データ収集処理は制御タスクと同期して変数値を収集すること。
- 2)データ収集した時刻と変数の値が正確に紐づけられていること。
- 3)制御プログラムの実行時間に影響を与えることなくデータを記録できること。
データ収集処理は時系列DBへのデータの記録処理でブロックしてはならない。 - 4)時系列DBに記録したデータを取得する仕組みを提供すること。
3.2 時系列DBのデータ構造
データベースシステムは長らくリレーショナル・データベースが主流であった。一般的にリレーショナル・データベースは、
- ・データは2次元のテーブル形式で格納される
- ・複数の表を結合することができる
- ・汎用問い合わせ言語であるSQLにより選択、追加、更新、削除ができる、
というデータ構造を特徴とするデータベースシステムである。
一方、Webベースなどのシステムで扱うデータ量は増加し、高速なレスポンスが要求されるようになった。これらのシステムではリレーショナル・データベースのような厳密なテーブルの定義や複雑な条件を組み合わせた問い合わせは不要である。そこで近年はリレーショナル・データベース以外のデータ構造を持つデータベースが提唱されている。このようなリレーショナル・データベース以外のデータベースの総称としてNoSQL(Not Only SQL)と呼ばれている 5)。
NoSQL型のデータベースは、データ構造の違いによりいくつかの種類がある。例えば、キーと値をペアにして保持する「キーバリュー型」、文書データの格納に特化した「ドキュメント型」、列方向のまとまりでデータを扱う「カラム型」、グラフ構造でデータを格納する「グラフ型」などがある。本システムでは、時系列に発生する大量の製造データを時刻と関連付けて蓄積するために、「キー」と「バリュー」という単純なデータ構造により高速なデータの格納および取得に適したキーバリュー型を採用した。
時系列DBのデータ構造は、データベース内で一意な「キー」と製造データを格納する「バリュー」のペア形式でデータを持ち、キーとバリューのペアは「レコード」を構成する。時系列DBは、レコード単位でデータベースに格納する。キーは時刻を含むインデックス情報を持つ。バリューは収集対象の変数値の集合である。個々の変数値は変数のデータ型を表す情報と変数の値を表すバイナリ列で構成する(図4参照)。

図4で示したように、時系列DBは発生時刻と変数値をペアで時系列にデータを管理することで、時刻と製造データを正確に紐づけることが可能となる。
3.3 制御に同期したデータ収集
オムロンのマシンオートメーションコントローラは、0.125ms制御周期と呼ぶ一定の時間間隔で制御プログラムを実行する。制御周期は、最短0.125msで実行可能である。フィールドネットワークに接続したセンサやモータなどのデータ通信も、制御周期に同期して実行する。オムロンのマシンオートメーションコントローラが採用するタスクスケジューリングモデルを図5に示す。

制御タスクは、制御周期ごとにI/Oリフレッシュ(データ入出力)、ユーザプログラム実行、モーション制御の処理を厳密な時間間隔で実行する。システムサービスは、周辺ツール/表示機/上位パソコンなどとの通信処理やSDメモリカードへのアクセスなど制御タスク以外の処理を実行する。オムロンのマシンオートメーションコントローラは、タスク優先度管理機能とタスクスケジューリング機能を有しており、制御タスクをシステムサービスより高い優先度で実行し、揺らぎのない高精度な制御周期を実現している。
本システムでは、制御タスク上でデータ収集処理を実行することで制御周期に完全に同期したデータ収集を実現した(図6参照)。

データ収集処理は、あらかじめ登録した収集対象の変数のリストに従い、毎制御周期の変数の値を取得し、取得した時刻とともに時系列DBへ格納するレコードを構築する。
しかしながら、制御タスクは厳密な制御周期を守る必要があり、制御タスクの実行時間は制御周期を超えてはならず、ストレージ・メディアへの書込みのような処理時間が保障されない処理を制御タスクで実行することはできない。そこで、データ収集処理で作成したレコードを時系列DBへ書き込む処理は、システムサービス上で実行する「時系列DBサービス」に分離することで、厳密な制御周期を守りながら制御に同期したデータ収集及び時系列DBへの格納を実現した。
3.4 時系列DBのストレージへの書込み
時系列DBは格納先としてSDメモリカード、SSD(Solid State Drive)、RAMディスクなどコントローラの各種ストレージ・メディアに対応する。ストレージ・メディアの書込み時間は、ストレージの種類により非常に長くなる場合がある。例えばSDメモリカードへ書込む場合のレイテンシーは揺らぎが大きく、数100msから数秒のオーダーになる場合がある。また、ストレージ・メディアはまとまったデータ量を一度に書き出すほうが単位データ量あたりの保存時間が小さくなる特徴がある。
このため、時系列DBはデータ収集処理からの複数個のレコードを内部のバッファにキャッシュし、時系列DBサービスはキャッシュされた複数のレコードをまとめてストレージ・メディアへ書き出すことで、制御プログラムからストレージへの書き込みまでの処理時間の差異と変動を吸収する機構「Non-Blocking Queue」(以降、NBQ)を実現した(図7参照)。

ここまでに記載した技術により、時系列DBの書込み処理において以下のような特徴を実現した。
- 1)制御周期ごとにレコードをNBQへ格納
データ収集処理は、制御周期ごとにレコードをNBQへ格納する。レコードを格納する操作をブロックせずに行うことで、制御タスクの実行時間の延びを最小化する構造とした。 - 2)NBQを共有メモリ上に配置
NBQを共有メモリ上に配置することで、高い優先度で動作する制御タスクから低い優先度で動作する時系列DBサービスへデータを受け渡し、プロセス境界をまたぎデータ交換をまとめて実行することが可能な構造とした。 - 3)複数レコードの一括書き込み
時系列DBサービスは、NBQにキャッシュされたレコードを取り出す。取り出したレコードは書き込みバッファにまとめられ、一括でデータベース・ファイルへ書き込む。これにより単位データ量あたりの保存時間を短くし、NBQ のデータあふれが発生しにくい構造とした。
また、書込み処理中は、レコードをNBQに保留しストレージ・メディアへの書込みレイテンシーの揺らぎを吸収することを可能とした。 - 4)複数の時系列DBへの並行書込み
性能特性の異なる複数の時系列DBへの並行した書き込みを実行可能とするため、複数のNBQを持つことが可能な構造とした。また、ストレージ・メディアのレイテンシーや単位時間あたりに格納するレコード数などの性能特性に合わせて、NBQに格納することができるレコード数およびレコードサイズを調整可能とした。
この構造により、例えば、2つのNBQを用いて、SDメモリカードのような大容量・低速のストレージへの書き込み中に、RAMディスクのような小容量・高速なストレージへ短い周期の書き込みを実現した。
3.5 時系列データのエクスポート
時系列DBに記録した製造データを利用するため、時系列DBはレコードの情報をエクスポートする機構を備えている。
エクスポートの形式は、利用者により様々な形式が考えられる。AI搭載マシンオートメーションコントローラにおいては、収集したデータを容易に解析できることを考慮し、可読性および汎用性の高いCSVフォーマットのテキストファイルに出力する方式を採用した。
図8は時系列データをエクスポートした結果のCSVファイルをMicrosoft Excelで表示した例である。

また、エクスポートはCSVファイル以外の形式にも対応できるよう、拡張可能な仕組みを持つ。例えば、上位コンピュータ上で稼働するデータ収集システムへ、ソケット通信によりレコードを出力するようなエクスポート方式を実現することが可能である。
4. 時系列DBの活用
4.1 AI搭載オートメーションコントローラでの活用
AI搭載オートメーションコントローラによる製造装置の予知保全を実現するには、大きく2つの活動がある。
- 1)データ収集および分析
対象となる製造装置の製造データを収集し、異常を表す特徴量および学習済データからなる「AI機械学習モデル」を作成する。本論文では、これを「分析フェーズ」と呼ぶ。 - 2)外れ値の検知
1)で求めたAI機械学習モデルをもとに製造データからリアルタイムに外れ値を検知する。本論文では、これを「活用フェーズ」と呼ぶ。
以降に、それぞれのフェーズにおける時系列DBの活用について述べる。
4.2 分析フェーズでの時系列DBの活用
分析フェーズは、対象となる製造装置のデータを収集し、収集した解析用のデータに基づいてAI機械学習モデルを作成する活動である。
AI搭載オートメーションコントローラでは、時系列DBで解析用のデータを収集し、それを基に解析ツール「AIイージーモデラー」が異常検知に用いるための特徴量の選択、外れ値検知モデルの学習、正常と異常を判別するための閾値を決定し、AI機械学習モデルを作成する。分析フェーズの処理フローを図9に示す。

AIイージーモデラーが精度の高いAI機械学習モデルを作成するには、精度の高い解析用のデータを収集することが不可欠である。図10は、サイン波形を表すセンサのデータを制御周期と同期した0.5ms周期で収集した解析用のデータをグラフにしたものである。測定条件は以下の通り。
- ・制御周期:0.5ms
- ・収集対象の変数:LREAL型(倍精度浮動小数点型)
- ・ストレージ・メディア:SDメモリカード

「2.2 高速・高精度のデータ収集の課題」で述べたように、従来のデータ収集の方式では、データ収集の間隔が数msから数100msとなり、元のデータがサイン波形であることは解析できないが、制御タスクと同期して収集し時系列DBに格納したデータは、センサのデータがサイン波形であることを正確に解析できる。
このように、AI搭載オートメーションコントローラは、時系列DBにより制御タスクに同期したデータを収集することで、精度の高いAI機械学習モデルを作成することが可能となった。
4.3 活用フェーズでの時系列DBの活用
活用フェーズは、AIイージーモデラーで作成したAI機械学習モデルをもとに、装置の稼働時に異常判定を行う活動である。活用フェーズの処理フローを以下に示す(図11参照)。
- 1)「特徴抽出」機能:分析フェーズで選択した異常検知に用いるための特徴量を演算する
- 2)「外れ値検知」機能:1)で演算した特徴量およびAI機械学習モデルをもとに異常判定を行う
- 3)「AIビューア」可視化ツール:1)の特徴量、2)の判定結果を可視化する。

活用フェーズでは、分析データ、特徴量の演算結果、外れ値検知の判定結果の3種類のデータがそれぞれ異なるタイミング、頻度で発生する。分析データは制御に同期し最短0.125ms周期で発生し、特徴量、判定結果は製造物のタクトに同期しおおよそ数100msから数秒の頻度で発生する。
AI搭載オートメーションコントローラは、分析データ、特徴量、判定結果の3種類のデータをそれぞれ異なる時系列DBへ格納する。ユーザはAIビューア画面上に可視化された判定結果により異常が発生したこと検知し、さらにその時の特徴量、分析データを解析することで異常の要因を特定することが可能となる。
4.4 AI搭載オートメーションコントローラ以外への活用
製造現場の製造データはセンサで感知する温度や振動、モータの回転数や位置などが絶え間なく発生する。これらのデータを制御周期に同期して取りこぼし無く収集する時系列DBの技術は、様々な用途に応用できる。その一つが「エッジ・コンピューティング」(Edge Computing)への活用である。
製造現場で絶え間なく発生する膨大なデータをクラウド上などにあるデータサーバに格納するには膨大なコストと通信帯域が必要となる。一方、製造現場のデータは、正常時はそれほど重要な意味はなく、実際には利用されないことが多い。このような課題に対してエッジ・コンピューティングという考え方が出てきている 6)。
図12は、時系列DBをエッジ・コンピューティング層で活用した例である。「クラウド層」はインターネット上で稼働するシステムであり、「フォグ・コンピューティング層」は工場内のローカルネットワーク上で稼働するMESやデータ解析などのサービスを提供するシステムである。「エッジ・コンピューティング層」には時系列DBが動作するコントローラを配置する。時系列DBに製造データを毎周期で格納する。時系列DBは一定期間分のデータだけ蓄積し、古いデータは破棄する。装置に異常が発生した時にのみ、その前後のデータをフォグ・コンピューティング層のサーバへ格納するような利用が想定できる。

コンピューティングへの活用
試算条件 | データ量 |
---|---|
全データの場合のデータ量 | 1日分で約82GB |
異常発生前後のデータのみの場合のデータ量 | 1分間分で約59MB |
表1は、発生する倍精度浮動小数点型の製造データ128個を1ms周期で収集した場合のデータ量の試算である。全てのデータを上位のサーバへ格納した場合、発生するデータ量は1日で約82GBになる。時系列DBに異常発生前後のデータのみを格納することでデータ量を約59MBへ削減でき、通常のネットワーク回線で扱うことが可能なデータ量に削減することができる。
5. むすび
5.1 考察
製造装置のデータを高速・高精度に収集・活用する技術として、時系列に発生する製造データを制御と同期して収集、蓄積する時系列DBを実現し、AI搭載オートメーションコントローラに内蔵した。
時系列DBを用いることで、従来のネットワークを経由した方式では困難であった制御周期に同期したデータ収集を実現し、精度の高いAI機械学習モデルの作成が可能となった。
また、AI機械学習モデルをもとにした特徴量演算、外れ値判定の結果を収集し、可視化することで製造装置の保全活動に利用することを可能とした。
5.2 今後の展開
エッジ・コンピューティングに代表するように、製造現場のデータを制御周期に同期して収集、蓄積する時系列DBの技術は、様々な用途に応用可能である。
今後は、コントローラなどデバイスへ組み込み可能な高速データベースエンジンとして、時系列DBを応用した技術の展開を目指す。
参考文献
- 1)
- オムロン株式会社. ビッグデータ化する装置データ.
https://www.fa.omron.co.jp/solution/sysmac/innovation/bigdata.html(参照 2018-10-11) - 2)
- オムロン株式会社. ビッグデータから見える製造現場.
https://www.fa.omron.co.jp/solution/sysmac/technology/bigdata/index.html(参照 2018-10-11) - 3)
- 鶴田 浩輔、峯本 俊文、広橋 佑紀. マシンコントローラに搭載可能なAI技術の開発(1) 装置制御用データを利用した生産ラインの異常検知手法について . OMRON TECHNICS 2018 vol.50 no.1 p.6-11
- 4)
- 阿部 泰明、上山 勇樹、阪谷 信幸、藤井 高史. マシンコントローラに搭載可能なAI 技術の開発(2) 異常検知コントローラプロトモデル開発における実証例について . OMRON TECHNICS 2018 vol.50 no.1 p.12-17
- 5)
- 露﨑 浩太、鬼塚 真. NoSQLデータベースの特性とベンチマーク体系. NTT技術ジャーナル 2012 vol.24 no.10. p.22-25
http://www.ntt.co.jp/journal/1210/files/jn201210022.pdf(参照 2018-10-26) - 6)
- 海部 美知. クラウドの次、エッジ・コンピューティングのアメリカでの現状. KDDI 総合研究所 R&A 2018年 4月号.
https://rp.kddi-research.jp/article/RA2018003(参照 2018-11-1)
Microsoft およびExcelは、米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
本文に掲載の商品の名称は、各社が商標としている場合があります。