OMRON#Sysmac StudioのEC_GetMasterStatistics/EC_ClearMasterStatistics関数を使ってみよう

今回の記事はSysmac Stuidoの関数EC_GetMasterStatisticsとEC_ClearMasterStatisticsを使用し、NX502-1300 EtherCATマスターの現在統計データの取得とクリア操作を行います。

さ、FAを楽しもう!

前書き

いつも私の技術ブログとYouTubeチャンネルをご覧いただき、心より感謝申し上げます。また、いまFullさん(full@桜 八重 (@fulhause) / X)と共に毎週水曜日の夜にお届けしている「高橋クリス」ラジオ番組を運営しています。

技術は独り占めせず、届けるもの

私たちは工場の生産技術や制御に関する技術情報を、ブログや動画などで無料公開しています。「知識は誰でもアクセスできるべき」という信念のもと、現場で役立つ具体的なノウハウやトラブル事例などを発信してきました。すべて無料で続けているのは、「知らなかったせいで困る人」を少しでも減らしたいからです。

また、もしあなたの現場で…

  • 「このPLCとデバイスの組み合わせ、ちゃんと動くのかな?」
  • 「EtherCAT通信でうまくいかない部分を検証してほしい」
  • 「新しいリモートI/Oを試したいけど社内に検証環境がない」

など、困っている構成や試してみたいアイデアがあれば、ぜひお知らせください。機器の貸出や構成の共有が可能であれば、検証し、記事や動画で発信します(ご希望に応じて匿名対応も可能です)。

支援のかたち

現在、私達の活動はほぼ無償で続けており、記事や動画の制作には、時間と検証環境の整備が必要です。この活動を継続的にコンテンツを提供するためには、皆様の温かいご支援が大変重要です。

メンバーシップ(ラジオの応援)

Fullさんとのラジオをより充実させるための支援プランです。

https://note.com/fulhause/membership/join

Amazonギフトリスト

コンテンツ制作に必要な機材・書籍をリストにしています。

https://www.amazon.co.jp/hz/wishlist/ls/H7W3RRD7C5QG?ref_=wl_share

Patreon(ブログ・動画活動への応援)

月額での小さなご支援が、記事の執筆・検証環境の充実につながります。

https://www.patreon.com/user?u=84249391

Paypal

小さな支援が大きな力になります。

https://paypal.me/soup01threes?country.x=JP&locale.x=ja_JP

知ってたら助かること、届けたいだけです

あなたの応援が、知識の共有をもっと自由で持続可能なものにしてくれます。これからもどうぞよろしくお願いします。

soup01threes*gmail.com

https://x.com/3threes2

技術はひとりじゃもったいない。

Reference Link

http://soup01.com/ja/category/omron%e3%82%aa%e3%83%a0%e3%83%ad%e3%83%b3/sysmac-studio-instruction-list/

FB

最初に今回記事で使用するFBを紹介します。

EC_GetMasterStatistics

EC_GetMasterStatistics命令は、EtherCATマスターの診断情報および統計情報を読み出します。読み出されたEtherCATマスターの診断・統計情報は、マスター診断統計情報 MasterStat に格納されます。

MasterStatのデータ型は構造体 **_sECAT_MASTER_STAT** です。仕様は以下のとおりです:

名前

意味

説明

データ型

MasterStat

マスター診断統計情報

読み出したEtherCATマスターの診断・統計情報を格納

_sECAT_MASTER_STAT

TotalSentCnt

総送信フレーム数

マスターが送信したEtherCATフレームの総数

UDINT

TotalRecvCnt

総受信フレーム数

マスターが受信したEtherCATフレームの総数

UDINT

TimeoutCnt

フレーム受信タイムアウト数

発生したフレーム受信タイムアウトの回数

UDINT

DiscardPDOCnt

プロセスデータ破棄数

プロセスデータ受信処理中に破棄されたプロセスデータの数

UDINT

NetDelay

ネットワーク伝搬遅延時間

CPUユニットがフレームを送信してから送信フレームを受信するまでの時間

UDINT

CRCErrCnt

CRCエラーフレーム受信数

CRCエラーが発生した受信フレームの数

UDINT

EC_ClearMasterStatistics

EC_ClearMasterStatistics命令は、EtherCATマスターの診断情報および統計情報をクリアします。

Implementation

OMRON 側

それではオムロン側のプログラムを構築しましょう。

プログラム

p001GetMasterStatisticsを作成します。

P001

こちらはプログラムで、これから1Rungずつ説明してきます。

VAR

こちらはプログラムで使用した変数です。

xGetMasterStatisticsExe

BOOL

実行トリガー

xGetMasterStatisticsDone

BOOL

完了フラグ

xGetMasterStatisticsBusy

BOOL

実行中フラグ

wGetMasterStatisticsErrorID

WORD

エラーID

xGetMasterStatisticsError

BOOL

エラーフラグ

stsECAT_MASTER_STAT

_sECAT_MASTER_STAT

マスター診断統計情報格納用構造体

fbEC_GetMasterStatistics

EC_GetMasterStatistics

ファンクションブロックインスタンス

ラング0

xGetMasterStatisticsExeの立ち上がりエッジでfbEC_GetMasterStatisticsが実行され、EtherCATマスターの統計情報を読み出します。実行完了後、stsECAT_MASTER_STAT構造体に送受信フレーム数・タイムアウト数・などの診断情報が格納されます。

ラング1

xGetMasterStatisticsDone(完了)またはxGetMasterStatisticsError(エラー)のどちらかがONになると、xGetMasterStatisticsExeをリセット(R)します。

つまり、実行トリガーを自動的にOFFに戻すことで、次回の立ち上がりエッジ実行に備える処理です。

P002

p002ClearMasterStatisticsを作成します。

こちらはプログラムで、これから1Rungずつ説明していきます。

VAR

こちらはプログラムで使用した変数です。

fbEC_ClearMasterStatistics

EC_ClearMasterStatistics

ファンクションブロックインスタンス

xClearMasterStatisticsExe

BOOL

実行トリガー

xClearMasterStatisticsDone

BOOL

完了フラグ

xClearMasterStatisticsBusy

BOOL

実行中フラグ

wClearMasterStatisticsErrorID

WORD

エラーID

xClearMasterStatisticsError

BOOL

エラーフラグ

ラング0

xClearMasterStatisticsExeの立ち上がりエッジでfbEC_ClearMasterStatisticsが実行され、EtherCATマスターの統計情報をクリアします。

ラング1

xClearMasterStatisticsDone(完了)またはxClearMasterStatisticsError(エラー)のどちらかがONになると、xClearMasterStatisticsExeをリセット(R)します。

実行トリガーを自動的にOFFに戻すことで、次回の立ち上がりエッジ実行に備えます。

結果

xGetMasterStatisticsExeの立ち上がりエッジでFB実行したら、stsECAT_MASTER_STATタイプの変数からEtherCATの統計データが帰ってきました。

送受信フレーム数が一致しており、タイムアウト・CRCエラーともに0のため、EtherCATネットワークは正常に動作していることが確認できます。

xClearMasterStatisticsExeの立ち上がりエッジでFB実行し、完了後、ラング1でxClearMasterStatisticsExeを自動リセットします。またBusy・Error ともに False、ErrorID = 0000なので、つまり正常完了です。

EtherCATの統計データもクリアされました。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする