こちらはWeidmüllerのM4000 CPU記事第3話で、今回はCodesysとU-Remoteのモジュールと連携します。また、WeidmüllerのUR20-PF-O-1DI-SILのモジュールを使用することにより、安全PLCなしで安全アプリケーションを実装できます。
さ、はじめよう。
Reference Link
UR20-PF-O-1DI-SIL?
パワーフィードモジュールUR20-PF-O-1DI-SILは、出力電流経路の安全なフィードインを実装できるモジュールです。これは、2チャンネルの非常停止コマンド装置の監視に使用でき、24Vセーフ出力により、出力電流経路の現在のステータスをPLCやスイッチングデバイス(リレーなど)に転送したり、さらにu-リモートステーションにカスケード接続することができます。
モジュールの電源電圧がオンになるたびに、”Man Start “入力に0.1〜2秒のパルスを与えて、モジュールを手動で初期化する必要があります。
また、モジュールの電源電圧が遮断されていない限り、”Autostart”入力が使用されると、24 Vセーフ出力経路は自動的に再アクティブ化されます。
もちろん、安全回路のテストパルスの評価機能もあり、故障や配線の操作を検出することができます。
Layout
こちらはUR20-PF-O-1DI-SILの配線図です。
LED
こちらはUR20-PF-O-1DI-SILのLEDの意味です。
Block Diagram
こちらはUR20-PF-O-1DI-SILのBlock図です。安全な給電モジュールを起動するには、下記の順番に従ってやりましょう。
- 安全装置を S11〜 S22 に接続し、装置を解除(ロック解除)します。
- DC24V電源をモジュールの4.3と4.4に接続します。
- u-remote stationの電源を入れます。
- manual startを操作する。
Process Data
こちらはUR20-PF-O-1DI-SILのProcess Dataです。
UR20-8DO-P
UR20-8DO-Pデジタル出力モジュールは、最大8個のアクチュエータをそれぞれ最大0.5Aで制御できます。また、各チャンネルにステータスLEDが割り当てられ、出力には出力電流経路(IOUT)から電力が供給される。
Layout
こちらはUR20-8DO-Pの配線図です。
LED
こちらはUR20-8DO-PのLEDの意味です。
Block Diagram
こちらはUR20-8DO-PのBlock図です。
Process Data
こちらはUR20-8DO-PのProcess Dataです。
UR20‐16DI‐P‐1
UR20-16DI-Pデジタル入力モジュールは、最大16個のバイナリ制御信号を検出できます。各コネクタに4個のセンサを1線式で接続できます。また、各チャンネルにステータスLEDが割り当てられます。
Layout
こちらはUR20‐16DI‐P‐1の配線図です。
LED
こちらはUR20‐16DI‐P‐1のLEDの意味です。
Block Diagram
こちらはUR20‐16DI‐P‐1のBlock図です。
Process Data
こちらはUR20‐16DI‐P‐1のProcess Dataです。
UR20-4AI-UI-16
UR20-4AI-UI-16アナログ入力モジュールは、以下の計測範囲を設定できます。
- ±10 V
- ±5 V
- 0 … 10 V
- 0 … 5 V
- 2 … 10 V
- 1 … 5 V
- 0 … 20 mA
- 4 … 20 mA。
分解能は各チャンネル16ビットで、センサーは2線式、3線式、3線式+FEにも接続できます。また、電圧サージと過電流から保護されています。
Layout
こちらはUR20-4AI-UI-16の配線図です。
LED
こちらはUR20-4AI-UI-16のLEDの意味です。
Block Diagram
こちらはUR20-4AI-UI-16のBlock図です。
Process Data
こちらはUR20-4AI-UI-16のProcess Dataです。
Measurement Range
こちらはUR20-4AI-UI-16の測定範囲です。
Implementation
M4000にWeidmüllerのモジュールを使用するには、CodesysのSystem_Busからモジュールを追加することができます。
Configuration
こちらはM4000のSystem Bus設定画面です。
アラームやBusのCycle Timeをアプリケーションに合わせて設定しましょう。
Device Manager
次はDevice Managerの項目からモジュールを追加しましょう。
Slot1
Slot1はUR20-8DO-Pにインストールされていますので、Catalogueで8DOを検索し、UR20-8DO-PをM4000にDorpしましょう。
Done!UR20-8DO-Pが追加されました。
Slot2
Slot2はUR20-PF-O-1DI-SILにインストールされていますので、Catalogueで1DIを検索し、UR20-PF-O-1DI-SILをM4000にDorpしましょう。
Done!UR20-PF-O-1DI-SILが追加されました。
Slot3
Slot3はUR20-16DI-Pにインストールされていますので、Catalogueで16DIを検索し、UR20-16DI-PをM4000にDorpしましょう。
Done!UR20-16DI-Pが追加されました。
Slot4
Slot4はUR20-4AI-UI-16インストールされていますので、Catalogueで4AI-UI-16を検索し、UR20-4AI-UI-16をM4000にDorpしましょう。
Done!UR20-4AI-UI-16が追加されました。
Result
こちらは今回の記事で設定したSystem_Busです。
Add GVL
Global Variable Listを追加するために、Application>右クリック>Add Object>Global Variable Listを追加します。
GVL名を入力します。
下図のようにSystem_BusにインストールされているモジュールとMappingする変数を定義しましょう。
Program
FB_UR20_PF_O_1DI_SIL
こちらはUR20-PF-O-1DI-SILを制御するFunction Blockになります。
Interface
こちらはFunction BlockのInterface定義です。
FUNCTION_BLOCK FB_UR20_PF_O_1DI_SIL VAR_INPUT END_VAR VAR_OUTPUT qSafetyInput0 :BOOL; //1=Activate qAutoStartActived :BOOL; //1=Activate qManualStartActived :BOOL; //1=Activate qSafetyInputChannel0:BOOL; //S12,S12 qSafetyInputChannel1:BOOL; //S21,S22 q24VSafetyOutput :BOOL; //24V Safety q24VDCSupply :BOOL; //24V END_VAR VAR_IN_OUT ioByte0,ioByte1:BYTE; END_VAR VAR END_VAR |
Code
Rung1-4はByte0のBit0-3を出力変数に転送します。
Rung5-8はByte0のBit4-5、Byte1のBit0と2を出力変数に転送します。
MAIN
こちらはMAINプログラムです。
Interface
PROGRAM PLC_PRG VAR SwitchLamp :BOOL; Channel0_Voltage:REAL; Channe11_Current:REAL; Module1 :FB_UR20_PF_O_1DI_SIL; SwitchNO,SwitchNC:BOOL; END_VAR |
Code
こちらはアナログ入力を電流と電圧値をScalingし、また先ほど作成した、UR20-PF-O-1DI-SILのFunction Blockを呼び出し、UR20-PF-O-1DI-SILの状態を取得します。
Channel0_Voltage:= (TO_REAL(GVL_SystemBus.Slot4[0])/27648.0)*10; Channe11_Current:= ((TO_REAL(GVL_SystemBus.Slot4[1])/27648.0)*20)+4; Module1( ioByte0:=GVL_SystemBus.Slot2[0] ,ioByte1:=GVL_SystemBus.Slot2[1] ); SwitchNC:=GVL_SystemBus.Slot3[0].0; SwitchNO:=GVL_SystemBus.Slot3[0].2; SwitchLamp:=SwitchNO; GVL_SystemBus.Slot1.0:=SwitchLamp; |
Configuriation
次は各モジュールのパラメータを設定します。
Slot1
Slot1のUR20-8DO-Pをクリックします。
Module ConfigurationにModuleのパラメータを設定できます。
次はIoModuleInterface I/O Mappingを開きます。
…のボタンをクリックします。
先ほどGVLで定義した変数と紐つけましょう。
Slot2
Slot2のUR20-PF-O-1DI-SILをクリックします。
UR20-PF-O-1DI-SILの入出力データとプログラム変数と紐つけましょう。
Slot3
Slot3のUR20-16DI-Pをクリックします。
UR20-16DI-Pの入出力データとプログラム変数と紐つけましょう。
Slot4
Slot4のUR20-4AI-UI-16をクリックします。
Module ConfigurationにModuleのパラメータを設定できます。
Channel0とChannel1を0…10Vと4…20mAに設定しましょう。
UR20-4AI-UI-16の入出力データとプログラム変数と紐つけましょう。
Download
Loginをクリックし、プロジェクトをCPUにDownloadしましょう。
Result
こちらの動画でM4000とDI/AI/DOモジュールと連携する動作を確認できます。
こちらの動画でM4000とUR20-PF-O-1DI-SILモジュールと連携する動作を確認できます。
Download Project
こちらのLinkから記事のプロジェクトをDownloadできます。
https://github.com/soup01Threes/Codesys/blob/main/M4000_Tutorial_Part03.projectarchive