テクノロジー
技術レポート:アーカイブ
Category:FAソフトウェア開発
Edgecross対応のデータコレクタ開発

三菱電機は、FA-IT統合ソリューション「e-F@ctory」コンセプトに基づき、生産現場に近いエッジコンピューティング領域でのリアルタイムなデータ収集・分析・診断を実現するEdgecross対応製品を販売し、製造業の課題解決に貢献している。Edgecrossとは、FAとITを協調させるオープンな日本発のエッジコンピューティング領域のソフトウェアプラットフォームである。三菱電機だけでなく多くのベンダーがEdgecross対応製品を開発することができる。これにより、お客様は多種多様な製品から生産現場に適した製品を選択することが可能である。当社は、Edgecross対応製品の内、生産現場の機器・装置・ラインからデータ収集を行う「データコレクタ」の開発を行っている。本稿では、Edgecrossの概要と当社が担当したデータコレクタ開発の課題とその対策について述べる。
参考情報:
- この技術レポートは、当社が展開するFA・産業メカトロニクス事業のFAソフトウェア開発ソリューションに係る技術について著述されたものです。
- FAソフトウェア開発ソリューションは、名古屋事業所が提供しています。
Edgecross対応のデータコレクタ開発 名古屋事業所 技術部 FA開発第1課森永 実 Edgecross対応のデータコレクタ開発 一般論文 1.まえがき 三菱電機は、FA-IT統合ソリューション「e-F@ctory」コンセプトに基づき、生産現場に近いエッジコンピューティング領域でのリアルタイムなデータ収集・分析・診断を実現するEdgecross対応製品を販売し、製造業の課題解決に貢献している。Edgecrossとは、FAとITを協調させるオープンな日本発のエッジコンピューティング領域のソフトウェアプラットフォームである。三菱電機だけでなく多くのベンダーがEdgecross対応製品を開発することができる。これにより、お客様は多種多様な製品から生産現場に適した製品を選択することが可能である。当社は、Edgecross対応製品の内、生産現場の機器・装置・ラインからデータ収集を行う「データコレクタ」の開発を行っている。本稿では、Edgecrossの概要と当社が担当したデータコレクタ開発の課題とその対策について述べる。 2.Edgecrossの概要 2.1 Edgecrossの特長Edgecrossは、エッジコンピューティングのコンセプトに基づき、以下の特長を有する。(1) リアルタイム診断とフィードバック生産現場に近い場所でデータ分析・診断することで、生産現場へのリアルタイムなフィードバックを実現することができる。(2) 生産現場をモデル化生産現場の膨大なデータを階層化、抽象化して管理できるため、人およびアプリケーションによるデータ活用を容易に行うことができる。(3) 多種多様なアプリケーションをエッジ領域で活用ITのアプリケーションを容易にFA用途に適用できる。豊富なラインナップから用途に応じたアプリケーションを選択することにより、エッジコンピューティング領域で完結したシステム構築を実現することができる。(4) 生産現場のあらゆるデータを収集ベンダーやネットワークを問わず、各設備、装置からデータを収集することができる。(5) FAとITシステムのシームレスな連携クラウドを含めたITシステムとのシームレスなデータ連携により、サプライチェーン、エンジニアリングチェーンの最適化を実現することができる。(6) 産業用PC上で動作様々なメーカーの産業用PCに搭載できる。2.2 Edgecrossの構成EdgecrossとEdgecross対応製品の構成を図1に示す。図1の“iQ Edgecross”は三菱電機のEdgecross対応エッジコンピューティングソフトウェアの名称である。(1) エッジアプリケーションエッジコンピューティング領域でEdgecrossを活用して、生産現場のデータを利用した様々な処理を実行するソフトウェアである。豊富なラインアップから用途に応じたアプリケーションを選択して利用できる。(2) Edgecross① リアルタイムデータ処理 生産現場から連続的に収集するリアルタイムデータをエッジアプリケーションで処理するために、データを加工・配信・フィードバックする機能である。動作サイクルごと等エッジアプリケーションが扱いやすいデータにデータを切り出し、まとめてからエッジアプリケーションへ配信する。さらに、エッジアプリケーションの診断結果を生産現場にフィードバックする。② データモデル管理 生産現場の機器・装置・ラインを抽象化し、階層的に管理する機能である。Windowsエクスプローラと同じ感覚で直感的に設定や操作を行えるGUIを提供する。従来個別に管理されていた工場全体の生産設備に関するすべてのデータを管理することで、工場全体の管理・保守を統一的に行える。③ ゲートウェイ通信 クラウドを含めたITシステムと効率的に情報連携を行22Edgecross対応のデータコレクタ開発うための通信機能である。ITシステムとの親和性が高いプロトコル(MQTT等)に対応しているため、ITシステムとシームレスなデータ連携が実現できる。(3) データコレクタ各ネットワークを介し、生産現場のデータを収集するソフトウェアである。各種プロトコルに対応したデータコレクタにより、様々な機器やデバイスからデータを収集できる。また、Edgecrossからのフィードバックにより、機器やデバイスへデータを書込みできる。また、エッジアプリケーションを開発するための開発キット、データコレクタを開発するための開発キットも提供されている。ベンダーは、これら開発キットを用いることにより、エッジアプリケーションやデータコレクタを容易に開発することができる。3.CC-Link IEフィールドネットワークデータコレクタの開発3.1 概要三菱電機は、Edgecrossを搭載した産業用PCとしてMELIPCシリーズを販売しており、3機種(MI5000、MI2000、MI1000)をラインナップしている。当社は、最上位機種のMI5000(MI5122-VW)に搭載するCC-Link IEフィールドネットワークデータコレクタ(以下、CC-Link IEFデータコレクタ)を開発した。CC-Link IEFデータコレクタのシステム構成例を図2に示す。図2.CC-Link IEFデータコレクタのシステム構成例図2に示すとおり、CC-Link IEFデータコレクタは、CCLi n k I Eフィールドネットワークで接続された機器(MELSEC iQ-Rシリーズ、インバータ、リモートI/O、等)に対し、サイクリック伝送によるデータ収集やデータ書込み(フィードバック)を行う。3.2 MI5000の特長MI5000は2種類のOSを稼働させている。装置制御やデータ収集はリアルタイム性のあるVxWorks®で処理を行図1.EdgecrossとEdgecross対応製品の構成23Edgecross対応のデータコレクタ開発い、収集したデータの解析や分析結果の表示は汎用性のあるWindows®で処理を行う。また、MI5000はCC-Link IEフィールドネットワークで接続された機器の制御情報や生産情報を最速1ms周期で収集することができる。3.3 CC-Link IEFデータコレクタの特長CC-Link IEFデータコレクタは、CC-Link IEフィールドネットワークドライバを活用することにより、最速1ms周期の正確なタイムスタンプによるデータ収集を実現することができる。Windows単体で動作するデータコレクタとCC-LinkIEFデータコレクタの収集データの分解能の比較を図3に示す。図3.収集データの分解能の比較CC-Link IEFデータコレクタでは、短い周期のデータを収集することが可能となり、データ分析やリアルタイム診断を行うエッジアプリケーションに活用し、分析や診断の精度を向上することができる。3.4 CC-Link IEFデータコレクタの構成MI5000内のデータコレクタに関係する機能ブロックを図4に示す。C C - L i n k I E Fデータコレクタは、V x W o r k s 部とWindows部に分かれている。VxWorks部とWindows部はMI5000の共有メモリを使ってデータの受渡しを行う。(1) VxWorks部MI5000に搭載されているCC-Link IEフィールドネットワークドライバを使ってネットワークで接続された機器からデータを収集し、Windows部へ渡す。また、Windows部から渡されたフィードバックデータ(書込み対象と設定値)を使って機器へデータを書き込む。(2) Windows部Edgecross仕様に従い、Windowsに搭載しているEdgecrossと連携して処理を行う。VxWorks部から渡された収集データをEdgecrossへ渡す。また、EdgecrossからのフィードバックデータをVxWorks部へ渡す。図4.データコレクタに関係する機能ブロック4.課題と対策4.1 課題VxWorks部は高速(最速1ms周期)でデータ収集を行い、収集したデータを共有メモリに格納する。Windows部は収集したデータを共有メモリから取り出すが、VxWorks部と異なり高速では処理を行わない。このため、収集データを1周期ずつ処理すると、Windows部の処理が追いつかず、共有メモリが溢れてしまう。また、VxWorks部とWindows部が共有メモリへ同時にアクセスする可能性があるが、同時アクセスする際にOS間で排他制御を行うと、VxWorks部は処理を待たされることになり、高速なデータ収集ができなくなってしまう。高速なデータ収集を実現するには、共有メモリに関して、以下の課題を解決する必要がある。(1) VxWorks部とWindows部の処理速度に差があって24Edgecross対応のデータコレクタ開発も収集データを漏れなく受け渡す必要がある。(2) VxWorks部とWindows部の間で排他制御を行わずに同時アクセスを行う必要がある。4.2 処理速度差の対策収集データをまとめて取り出せるように、共有メモリに格納する収集データの構造はリングバッファとする。VxWorks部は高速で収集したデータをリングバッファに順次格納する。この際、Windows部が収集データを取り出していなくても、リングバッファに空きがあれば収集データを格納することができる。Windows部はリングバッファに格納されている収集データをまとめて取り出す。リングバッファの空きがなくなる前に取り出すことにより、VxWorks部が格納した収集データをWindows部へ渡すことができる。4.3 同時アクセスの対策リングバッファを管理する書込み位置(ライトポインタ)と読出し位置(リードポインタ)は共有メモリに格納し、VxWorks部とWindows部の両方からアクセスする必要がある。VxWorks部とWindows部で排他制御を行わない場合、ライトポインタまたはリードポインタへの同時アクセスが発生し、書込み途中のデータ(不完全データ)を読み出してしまう。不完全データ読出しの例を図5に示す。図5.不完全データの読出しVxWorks部が共有メモリへ4バイトのライトポインタを書き込む処理を行うと、MI5000は1バイト単位でデータ書込みを順次行う。4バイト分の書込みが完了する前にWindows部が共有メモリからライトポインタを読み出す処理(図5の③)を行うと、読み出したライトポインタは不完全データとなる。共有メモリからライトポインタを読み出す際に書込み中であることを判定するため、更新開始カウンタと更新終了カウンタを用意する。カウンタを使った書込み中判定処理を図6に示す。ライトポインタとカウンタの書込みは以下の順序で行う。 ① 更新開始カウンタ ② ライトポインタ ③ 更新終了カウンタ図6の(A)は開始カウンタ書込み前であり、開始カウンタと終了カウンタは一致する。図6の(B)はライトポインタが書込み中であり、開始カウンタと終了カウンタは一致しない。図6の(C)は終了カウンタ書込み後であり、開始カウンタと終了カウンタは一致する。開始カウンタと終了カウンタが一致していなければ書込み中と判定し、読み出したライトポインタは破棄する。図6.書込み中判定カウンタは不完全データとならない1バイトとし、初期値は0とする。カウンタの加算は、書込みを行う都度1加算し、最大値である255に対して加算した場合、加算後の値は1とする。読出しを書込みの同順で行うと、開始カウンタと終了カウンタが一致してもライトポインタが不完全データとなることがある。書込みと同順で読み出した場合を図7に示す。図7は書込み中のライトポインタを読み出す場合でも、開始カウンタと終了カウンタの値は一致しており、誤った判定となる。執筆者紹介森永 実 モリナガ ミノル1997年入社。主にEdgecross対応製品のソフトウェア開発に従事。現在、名古屋事業所技術部FA開発第1課。25Edgecross対応のデータコレクタ開発図7.書込みの同順で読出し(誤った判定)この問題を回避するため、ライトポインタとカウンタの読出しは以下の順序で行う。① 更新終了カウンタ② ライトポインタ③ 更新開始カウンタ書込みと逆順で読出しを行うことにより、カウンタが一致していれば書込み中でないと判定できる。書込みと逆順で読み出した場合を図8に示す。図8は書込み中のライトポインタを読み出す場合は、開始カウンタと終了カウンタの値は必ず不一致となり、正しい判定となる。図8.書込みの逆順で読出し(正しい判定)書込み中である場合、読み出したライトポインタは破棄し、再度ライトポインタの読出しを行う。この仕組みをリングバッファのライトポインタとリードポインタに適用することにより、VxWorks部の処理を待たせることなく、高速なデータ収集を行うことができる。5.むすび本稿では、Edgecross対応製品であるCC-Link IEFデータコレクタの開発について紹介した。MI5000の特長を活かし、生産現場のデータを高速・高精度に収集可能なデータコレクタを開発することができた。今後は、お客様のニーズに適したデータコレクタやエッジアプリケーションの開発を進めていく。最後に、本開発及び執筆にあたり、様々な面で支援いただいた関係者の方々に深く感謝を申し上げる。