Beckhoff#TwinCAT TF8020でEXOR のBACnet/IP Serverをアクセスしよう

今回の記事ではEXORのJSMART707MパネルからBACnet Serverを立ち上げ、Beckhoff TwinCAT3とTF8020で各Objectをアクセスし、またTF8020のFB自動生成機能を利用しPLCプロジェクトからObjectをアクセスします。

さ、始めよう!

Reference Link

Wago#BACnet Configuratorを使ってみよう
Beckhoff#TwinCAT TF8020でBACnet/IP Serverを立ち上げよう

Implementation

EXOR Side

Add Protocol

JMobile StudioからProtocolを追加します。

BACnetを選択します。

BACnet機能の設定画面が表示されます。

Panel Device ID

Panel Device IDはEXOR パネルのBACnetのID番号になります。Defaultでは262000です。

IP UDP Port

IP UDP Port番号はDefaultが47808です。

Devices

赤枠はEXORパネルの各アナログ・Binaryなどのデバイス数を設定できます。

Finally

こちらは今回の記事の設定になります。

Add Tags

BACnet Driverでデバイスを追加しても、Tagsを定義する必要があります。

こちらはBACnetのTag画面になります。

Object Property

Object Propertyは該当するTagにアクセスするPropertyを設定できます。85はPresent Valueです。

Device ID

Device IDは該当するTagが所属するBACnet Server IDを設定します。下図では262000を設定する場合、該当するTagsはBACnet Server IDは262000(つまりEXOR JSMART707M自分自身になります)。

もし他のBACnetを Serverにアクセスしたい場合は、Device IDに合わせてください。

Object Type

Object Typeは該当するTagsのObject タイプになります。

Data Type

Data Typeは該当するTagsのデータタイプになります。

Object Instance

こちらは該当するTagsのInstance番号になります。

Finally

Done!

Screen

最後は確認用の画面を作成します。

Beckhoff Side

Add BACnet/IP Device

Devices>右クリック>Add New Itemで新しいBACnet/IP Deviceを追加します。

BACnet>BACnet IP Deviceを選び>OKします。

Done!BACnet IPデバイスが追加されました。

Add BACnet Client

次はBACnet Clientを追加するため、Device>右クリック>Add New Itemします。

BACmet Clientを選び>OKします。

Done!

Settings

BACnet Clientを開き、Identificationの項目をEXORパネルに合わせてください。

BACnetIDとUdp Portを最低限に合わせて行いましょう。

もしIPCのIPが複数ある場合は、Local Settings>Modeにある”Use Operating System Settings”のCheck boxを外し、IPを別途に設定してください。

Result

よし、Device DiagnosisのStatusで”Online”が表示され、TwinCAT3がEXORパネルのBACnet Objectを見ることができました。

Scan

次はEXORパネルにあるBACnet ObjectをTwinCAT プロジェクトに追加するため、Object1をクリックしましょう。

Done!EXORにあるBACnet Objectをすべて検索できました!

各ObjectのPresent ValueやEventStateも確認できました。

Implementation2

Beckhoff Side

Add PLC

PLC>Add New Itemで新規PLCを追加します。

Standard PLC Projectを選び>Addします。

Create FB Code

Beckhoff TF8020を使用することによりBACnetのObject Function Blockを自動的にPLCに生成し追加できます。先程追加したEXORと接続してるBAcnet Clientをダブルクリックします。

この機能を使用すると、PLCでBACnetクライアントを参照するために必要なFunction Blockを自動的に生成できます。Cyclice Data>FB Codeをクリックします。

PLCプロジェクトに生成したいBAcnet ObjectをCheck入れ、”Create in PLC”をクリックしFunction Blockを自動生成しましょう。

Done!FB_BACnet_Object1が自動生成されました。

Function Blockの中に入出力のInterfaceやプログラムもすでに定義されました。

Add Library

先程生成したFunction Blockを使用するためBAcnetのライブラリを追加します。Reference>Add libraryします。

Tc3_BACnetRev14を選び>OKで追加します。

Rev14やRev12をどちらしかPLCプロジェクトに使用できませんので、今回記事でTc3_BACnetRev14を設定しFB CodeをExportしたので、PLCにもこの設定に合わせてTc3_BACnetRev14をImportしましょう。

AmsNetId

PLCプロジェクトにあるAmsNetIdをBACnetのIDにLinkしましょう。

Device1(BACnet IP)>Ams NetIdを設定しましょう。

Progarm

最後はMAINプログラムに、先程自動生成したFB_BACnet_Object1のInstanceを定義し、プログラムに呼び出しましょう。

PROGRAM MAIN
VAR
exor:FB_BACnet_Object1:=(Client:=(nDeviceInstance := 262000));
END_VAR

exor();

nDeviceInstanceに設定した262000はEXORのBACnet IDに合わせます。

Result

各Objectにある”bReady”がTrueになり、PLCプロジェクトのFB InstanceはEXORパネルのBACnet Serverと接続成功です。

EXORパネルからANALOG_VALUE_0が”22”を入力すると、fValが22に反映されます。

次はPLCからANALOG_VALUE_1値を変更します。fPreValが3.2をEXORパネルに設定し、fPreValが3.2に反映されています。

次はePriorityをEXORパネルのBACnet IP Serverより高く設定するため、現在値をFirstに変更します。

Done!bEnWriteをTrueしfValを1.1に変更すると、ANALOG_VALUE_1のPresent値が1.1になります!

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

シェアする

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

フォローする