今回の記事ではBBH社のIP67 安全PLCを使用しFSoE Masterを立ち上げ、ワイドミュラー社のUR20-4DI-DO-PN-FSOE-V2と安全通信を行います。EtherCAT MasterはBeckhoff のTwinCAT3とC6920を使用します。
さ、FAを楽しもう。
Reference Link
BBH Products?
BBH PRODUCTS社は機能安全用電子部品の製造を専門とする中堅企業です。
SMXシリーズとSCUシリーズにより、BBH PRODUCTSはスタンドアロン型およびFSoEベースのEtherCAT環境用の使いやすいセーフティコントローラを提供しています。また、カスタマイズされた安全ソリューションを提供する会社です。
SMF-X?
SMF-XはFSoEスレーブ接続用FSoEマスタースタックと安全信号処理用SafePLC2を内蔵したコンパクトなセーフマスターフィールドボックスになります。
Interface
BBHのSMF-Xには、下記のInterfaceが内蔵されています。
- 安全なデジタル入力8点
- 安全なデジタル出力6点
- 4×2パルス(クロック)出力
- 4エンコーダインターフェース
- 2シリアルインターフェース(スキャナ)
- 2つのシリアルインターフェース(safePXV)
- イーサネットインターフェイス×2
- 2 デバイス供給インターフェース
PIN ASSIGNMENT
IO Interface X1/X2
IO Interface X3/X4
Encoder Interface X5/X6
Encoder Interface X7/X8
Ethernet Ports EC_IN/EC_OUT
Power Supply PowerIN/PowerOut
Diagnosis And Configuration Interface
LED Stauts
Implementation
BBH Side
Create New Project
BBH SafetyPLC2ツールをBBH社からもらい、自分のPCにインストールしてください。
そして新規プロジェクトを作成するためにツールを起動しましょう。
Done!ツールが起動しました。
Newで新規プロジェクトを作成しましょう。
Done!新しいプロジェクトが作成されました。
Insert SMF-X Module
今回記事で使用するのはBBH社のSMF-X IP67 FSOE Masterなので、LibraryからSMF-XをDropしてください。
Done!SMF-X モジュールが追加されました。
Wiring Scheme
SafetyPLC2ツールはWiring Scheme機能があり、モジュールのPin配線図を直接ツールから確認することが可能です。
Insert ESTOP Object
SMF-X 安全PLCに非常停止を配置したいので、ライブラリからEmergency Stopを追加します。
Done!非常停止のObjectが自動的にSMF 安全PLCに追加され、配線するPINも表示されました。
Insert Weid
SMF-X本体の安全PLCだけでは面白くないので、FSOE Masterを立ち上げ、他社のFSOE Slaveと接続し、安全通信のネットワークを構築します。今回の記事ではワイドミュラー社のUR20-4DI-DO-PN-FSOE-V2を使用します。
SafetyPLC2ツールはDefaultに既にそのモジュールがライブラリ内にインストールされていますので、そのモジュールを直接プロジェクトにDropしましょう。
Done!ワイドミュラー社のUR20-4DI-DO-PN-FSOE-V2が追加されました。
Wiring Scheme
Wiring Scheme Tabには先程追加されたUR20-4DI-DO-PN-FSOE-V2を設定や確認できるようになりました。
Wiring SchemeにはUR20-4DI-DO-PN-FSOE-V2に合わせてて4つの安全入力・出力が表示されています。
Properties
UR20-4DI-DO-PN-FSOE-V2のProperiesを開きます。
FSoEの設定項目にSlave AddressとConnection IDを設定する必要があり、Slave AddressはUR20-4DI-DO-PN-FSOE-V2についてるDIPスイッチに合わせて設定しましょう。
また、Connection IDはネットワーク内にある他のFSoE Slaveと重複しないように設定してください。
Insert ESTOP Object
今回の記事はUR20-4DI-DO-PN-FSOE-V2に非常停止と接続しますので、ライブラリからEmergency Stopを追加しましょう。
SafetyPLC2ツールから非常停止Objectを追加したいモジュールに設定する必要があり、UR20-4DI-DO-PN-FSOE-V2を選び>Okで進みます。
Type
Properies>Typeで非常停止の配線方法を設定できます。
今回は2.N.C.を設定します。
Crocess Circuit Check
Crocess Circuit CheckをPulse1に設定しましょう。
Result
Done!
Insert High Side Semiconductor
次はSMF-X モジュールにHigh Side Semiconductor出力を追加します。
Done!実際Wiring Scheme機能でその出力の配線方法も表示されます。
Insert Safety Output
次はUR20-4DI-DO-PN-FSOE-V2に安全出力点を追加するため、Output>Safe OutputをDropしましょう。
Properies画面でモジュールt設定を変更できます。
Ch 0 Test PulseとCh 1 Test PulseをAUX0 ・AUX1に設定し、Dual Channelに変更しましょう。
Functional Sheets
SafetyPLC2ツールでは安全プログラムがFunctional Sheetsに作成できます。
SafetyPLC2ツールの安全プログラムはFunction Blockで構築しますので、下図のようにSMF-X本体の安全入力・もしくはUR20-4DI-DO-PN-FSOE-V2も安全入力がONになると、SMF-X本体の出力がONになり、3秒後をUR20-4DI-DO-PN-FSOE-V2の安全出力をONします。
Compile
CompileボタンをクリックしプロジェクトをCompileしましょう。
Done!
Device Interface
次はSafetyPLC2ツールとSMF-Xモジュールを接続するため、Deivce Interfaceをクリックします。
Connection Settings
Connection SettingsをクリックしPCとSMF-Xの接続設定を変更します。
通信Portを適切な番号に設定してください。
Drop-ListからCOM Portの変更できます。
自分のPCがCOM13なので、COM portをCOM13に設定してください。
Connect it
ConnectボタンをクリックしPCとSMF-Xを接続しましょう。
OKで進みます。
Done!PCとSMF-Xが接続できました。
Verify Configuration
Verify Configurationをクリックし、プロジェクトをCheckしましょう。
Send Configuration
最後はSend ConfigurationをクリックしプロジェクトをSMF-XにDownloadしましょう。
Beckhoff Side
次はBeckhoff TwinCAT3側を構築します。
Start XAE
TwinCAT XAEを起動します。
New Project
File>New>Projectで新規プロジェクトを作成します。
プロジェクト名を入力しOKで進みましょう。
Choose Target
PCとTwinCATの接続設定を変更するため、SYSTEM>Choose Targetをクリックします。
Search(Ethernet)をクリックします。
Enter Host Name/IP欄で接続したいTwinCAT3 Runtimeを入力し、Enterを押してTargetを検索しましょう。
Done!
Add Routeをクリックします。
Remote Routeの通信設定を行います。
User NameとPasswordを入力しOkで進みましょう。
Done!
TwinCAT XAEからTwinCAT3 Runtimeの現在状態も取得できました。
Add EtherCAT Master
次はEtherCAT Masterを追加するため、I/O>Devices>Add New Itemをクリックします。
EtherCAT>EtherCAT Masterを選び>OKで進みます。
EtherCAT Masterとして使用するEthernet Adapterを設定しましょう。
Done!
Scan Network
次はTwinCATにあるScan機能を使用しネットワーク内にあるEtherCAT Slaveを検索します。
Done!BBHのSMFモジュールとワイドミュラーのモジュールが追加されました。
Add PLC
次はPLCプロジェクトを追加するために、PLC>右クリック>Add New itemします。
Standard PLC Projectを選び、AddでPCプロジェクトを追加しましょう。
Program
次はPLCプログラムを作成します。
DUT
構造体を追加するため、DUTs>Add>DUTをクリックします。
構造体の名前を設定しましょう。
DUT_FSOE
こちらはBBHのSMF-XモジュールとワイドミュラーのUR20-4DI-DO-PN-FSOE-V2のFSOEメッセージ構造体になります。
TYPE DUT_FSOE : STRUCT MasterCMD :USINT; SafetyOut0 :BYTE; MasterCRC0 :UINT; MasterConnID:UINT; END_STRUCT END_TYPE |
DUT_BBH_SMF_DeviceState
こちらはBBH SMFモジュールのデバイス状態、またHMIの表示用として使用する構造体です。
TYPE DUT_BBH_SMF_DeviceState : STRUCT DeviceState :BYTE; RUN :BIT; EncoderState :BIT; InputState :BIT; OutputState :BIT; ConfigLock :BIT; Error :UINT; END_STRUCT END_TYPE |
GVL
Global Variables Listを追加するため、GVLs>Add>Global Variables Listをクリックします。
Global Variables List名を設定してください。
GVL
{attribute ‘qualified_only’} VAR_GLOBAL Slot1_EL1904_IN AT %I*:DUT_FSOE; Slot1_EL1904_OUT AT %Q*:DUT_FSOE; Slot_SMF_1_IN AT %I*:DUT_FSOE; Slot_SMF_1_OUT AT %Q*:DUT_FSOE; Slot2_EL1904_IN AT %I*:DUT_FSOE; Slot2_EL1904_OUT AT %Q*:DUT_FSOE; Slot_SMF_2_IN AT %I*:DUT_FSOE; Slot_SMF_2_OUT AT %Q*:DUT_FSOE; Slot3_EL2904_IN AT %I*:DUT_FSOE; Slot3_EL2904_OUT AT %Q*:DUT_FSOE; Slot_SMF_3_IN AT %I*:DUT_FSOE; Slot_SMF_3_OUT AT %Q*:DUT_FSOE; END_VAR |
GVL_BBH_SMF
{attribute ‘qualified_only’} VAR_GLOBAL BBH_SMF_DeviceState AT %I*:DUT_BBH_SMF_DeviceState; END_VAR |
Visu
こちらは今回記事で作成した画面になります。
MAIN
MAINプログラムではSMF-Xモジュールの入力はワイドミュラーのUR20-4DI-DO-PN-FSOE-V2の出力からLoop Backするようにします。
ワイドミュラーのUR20-4DI-DO-PN-FSOE-V2にも同じように、SMF-Xモジュールの出力データをUR20-4DI-DO-PN-FSOE-V2の入力データにLoop Backします。
GVL.Slot_SMF_1_OUT:=GVL.Slot1_EL1904_IN; GVL.Slot1_EL1904_OUT:=GVL.Slot_SMF_1_IN; GVL.Slot_SMF_2_OUT:=GVL.Slot2_EL1904_IN; GVL.Slot2_EL1904_OUT:=GVL.Slot_SMF_2_IN; GVL.Slot_SMF_3_OUT:=GVL.Slot3_EL2904_IN; GVL.Slot3_EL2904_OUT:=GVL.Slot_SMF_3_IN; |
MAIN_HMI
こちらはHMI画面にあるランプや文字列を表示するためのプログラムです。
PROGRAM HMI VAR Slot1_EL1904_IN :DUT_FSOE; BBH_SMF_DeviceState :DUT_BBH_SMF_DeviceState; END_VAR Slot1_EL1904_IN:=GVL.Slot1_EL1904_IN; BBH_SMF_DeviceState:=GVL_BBH_SMF.BBH_SMF_DeviceState; |
Mapping
最後はSMF-XモジュールとワイドミュラーのUR20-4DI-DO-PN-FSOE-V2のProcess Data Mappingを行います。
BBH-Inputs
BBH SMFモジュールの入力データをMappingするために、Module1>FSoE SafetySlaveMessage 01 Bytes INを右クリックし>Change Linkをクリックします。
そして先ほどのGVLで定義した変数とMappingしましょう。
BBH-Outputs
BBH SMFモジュールの出力データをMappingするために、Module1>FSoE SafetySlaveMessage 01 Bytes Outを右クリックし>Change Linkをクリックします。
そして先ほどのGVLで定義した変数とMappingしましょう。
UR20-4DI-DO-PN-FSOE-V2-Inputs
ワイドミュラーのUR20-4DI-DO-PN-FSOE-V2の入力データをMappingするために、Module1>Input>FSOEを右クリックし>Change Linkをクリックします。
そして先ほどのGVLで定義した変数とMappingしましょう。
UR20-4DI-DO-PN-FSOE-V2-Outputs
ワイドミュラーのUR20-4DI-DO-PN-FSOE-V2の出力データをMappingするために、Module1>Output>FSOEを右クリックし>Change Linkをクリックします。
そして先ほどのGVLで定義した変数とMappingしましょう。
Activate Configuration
Activate ConfigurationをクリックしプロジェクトをTwinCAT3 RuntimeにDownloadしましょう。
OKで進みます。
TwinCAT RuntimeをRun Modeに切り替えましょう。
Login
Loginをクリックし、プログラムをRuntimeにDownloadします。
Start
TwinCAT3 Runtimeをスタートしましょう。
Result
こちらの動画で実際の動作確認をできます。
https://www.youtube.com/shorts/_qwgAb3Qm2g
Download
こちらのLinkから今回の記事のプロジェクトをDownloadできます。
https://github.com/soup01Threes/TwinCAT3/blob/main/TwinCATFSOEBBH.tnzip