Beckhoff#TwinCAT Tc3_EventLoggerを使ってみよう

今回の記事ではTwinCAT3 Event Lggerについて紹介します。TwinCAT3 Event Loggerを使用することによりSystemの状態をリアルタイムで記録でき情報追跡や診断するときに役に立ちます。

さ、はじめよう!

TwinCAT3 EventLogger?

TwinCAT 3 EventLoggerは、TwinCATと非TwinCAT部品間でMesssageするためのInterfaceであり、TwinCAT 3 EventLoggerは基本のインストールに含まれています。ちなみにTwinCAT 3 EventLoggerはライセンス料はかかりません。

System Requirment

Limitations

TwinCAT3 Event Loggerを使用するとき、以下のLimitがあります。

  • 送信時の最大サイズは8kBです。
  • リアルタイムでイベントを受信するためのインターフェースは、最大1024個のイベントを、それらが検索されるまで一時的に保存し、時間内に取得されない場合、イベントは失われます。
  • TwinCAT 3 Event Loggerは、TwinCAT HMI(TF2xxx)に接続できますが、TwinCAT PLC HMI(TF18xxx)はそれらのイベンドを受信できません。

Concepts

TwinCAT 3 Event Loggerはイベントを送信する機能があり、そのEventはアラームでもよいし、Messageでもよいのです。イベントの送受信については、PLC および C++ の APIからも可能です。

下図ではEventsがEventClassessに管理されており、Messageの送信やアラームの確定、Raiseをします。

Events Type

Event自体は直接使用されず、その代わりにEvent派生タイプの “Message “や “Alarm “が使用される。そのEventの中にあるMessageもしくはAlarmにも以下の共通要素があります。

イベントは、メッセージとアラームに共通する以下の要素を提供します。

EventClass (GUID)

EventをGroupし管理するのはEventClassです。

Event-ID (UDINT)

各Eventを明確に識別するためにそのEvent-IDを使用します。

Text (String)

Eventの説明テキストになります。テキストを個別に適応させるために、実行時に引数を挿入することができます。

Source Info

Eventの発生源でその発生源は3つの要素で矯正されていますが、TwinCATのHelp Infoには推奨事項が記載されています。

Source-ID (INT)

TcCOMオブジェクトID。

Source Name (STRING)

TcCOMオブジェクト内のPath、そのPathはPLC のFunction Block パラメータとして使用される場合があります。

Source-GUID (GUID): 

プロジェクトや(サブ)製品の識別に使用できる。

JSON Attribute (STRING)

EventのJSON 属性で今回の記事には使用しません。

Messages

Messageは基本的に状態を持たず、呼び出されたときに送信されるたびに登録された部品に配信します。

Identification

Messageは EventClass と Event-ID によって識別される。

Implementation1

最初にTwinCATでEventLoggerの使用例を説明していきます。

Add library

Reference>Add LibraryでEvent Loggerのライブラリを追加します。

Tc3_EventLoggerを検索しOkで進みます。

Event Class

次は現在TwinCATプロジェクトのEvent Classを編集するため、SYSTEM>Type Systemを開きます。

Event Classessを開きます。

Add New Event Class

Event Classessが空いてるところを右クリック>Newで新規Event Classessを定義しましょう。

Event Classesの編集画面が表示されました。

NewEventClassの項目を選択すると該当するEvent Classの編集画面が表示されます。

Name

Name FieldからEventの名前を設定します。

今回はEvent1という名前に変更します。

Display Text

Display Textは該当するEventの説明文字を定義できます。

severity 

severity は該当するEventの重大度を設定できます。

Event1の重大度はWarningに設定していきます。

Event Group view

Eventsの項目をクリックするといまMyEventClassに定義されたEventを一覧できます。

Let’s Add One More!

Eventsの一覧画面から+ボタンで新規Eventの追加も可能です。

Done!

Event名はEvent2でDisplay Text=Event 2 is triggered、重大度はErrorです。

Check your Project Folder!

プロジェクトをコンパイルしSolution>右クリック>Open Folder in File ExplorerでプロジェクトFolderをCheckしましょう。

こちらはTwinCATプロジェクトのFolderです。あなたのプロジェクト名に命名されたFolderを開きましょう。

中にTSPROJ FileというFileがありNodepadで開いて確認します。

中に先程定義したEventにも記載されています。

Program

こちらのプログラムでFB_TcMessageのInstanceを定義しbInitEvent1をTrueならEvent1を初期化し、bInitEvent2をTrueならEvent2を初期化します。そしてbSendEvnet1がTrueいするとEvent Loggerに先程初期化したEventをLoggingするような簡単なプログラムです。

PROGRAM MAIN
VAR
bSendEvnet1:BOOL;
bSendEvent2:BOOL;
bInitEvent1:BOOL;
bInitEvent2:BOOL;
TcMessage:FB_TcMessage;
END_VAR

IF bInitEvent1 THEN

bInitEvent1:=FALSE;
TcMessage.CreateEx(
stEventEntry:=TC_EVENTS.MyEventClass.Event1
,ipSourceInfo:=0
);
END_IF

IF bInitEvent2 THEN

bInitEvent2:=FALSE;
TcMessage.CreateEx(
stEventEntry:=TC_EVENTS.MyEventClass.Event2
,ipSourceInfo:=0
);
END_IF

IF bSendEvnet1 THEN
bSendEvnet1:=FALSE;
TcMessage.Send(
nTimeStamp:=0
);
END_IF

Result

最初にEvent1を初期化します。

bSendEvent1をTrueにしMessageをLoggerに送信します。

Done!Error ListにEventメッセージが表示されました。

今度は別のEvent2をを初期化しTriggerしてみます。

Done!他のEventもTriggerされました。

Implementation2

次はTwinCATで使用したEventLoggerをWindowsのEvent Viewerにも表示できるように設定していきます。

Change the Window Registry Value

Registry Editorを起動します。

以下のPathにアクセスします。

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Beckhoff\TwinCAT3\EventLogger\WindowsEventLog

TwinCATのEventLoggerをWindow Event Viewerにも表示するには、中にあるTypeSupported変数を修正する必要があります。

Value Dataを3に設定します。

これでOKです。

Restart your IPC

次はPCを再起動します。

Launch Event Viewer

今度はWindowsのEvent Viewerを起動します。

Event Viewer画面が表示しました。

Create Custom View

実際にTwinCATのEvent LoggerをWindowsと連携できるかを確認するため、新しいViewを追加します。Actions<Create Custom Viewします。

Custom Viewの作成画面が表示されます。

Event Level

Event Levelで該当するViewを表示するEventのレベルを設定します。

Event Sources

次は該当するViewのSoruceを設定します。

By SourceのところにDrop-Listがあり、その中に表示するEvent Sorucesを設定できます。

下にScrollするとTcEventLoggerV2という項目があります。TcEventLoggerV2をCheck入れましょう。

Save the View

最後はViewを保存すれば完成です。

Done!新しいWindow Viewが追加されました。

Result

TwinCAT Event LoggerからTriggerしたEventはWindow Viewerにも表示できるようになりました。

Footer_Basic

Please Support some devices for my blog

Amazon Gift List

Find ME

Twitter:@3threes2
Email:soup01threes*gmail.com (* to @)
YoutubeChannel:https://www.youtube.com/channel/UCQ3CHGAIXZAbeOC_9mjQiWQ

シェアする

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

フォローする