今回はWago 750-325CC CC-Link Couplerを使用し三菱のQJ61BT11のCC-Link Masterと通信します。ゼロからの立ち上げを説明しますのでよろしくお願いします。
Wago 750-325
Wago製の750-325 CC-Link FieldbusはWAGO-I/O-SYSTEMをCC-LINK Protocolと接続することができ、Head Station自動でインストールされているI/O Modulesの順でローカルProcess Imageを生成します。アナログやCounterの特別モジュールあWords/Bytes方式で送受信し、DI/DOはBitのグループで送受信します。
注意するのはアナログはローカルProcess Image内では一番先に振り分けられ、そのアドレスは実際I/O-SYSTEMにインストールされている順番になります。DI/DOデータは16BitのWordデータとしてまとめられ、もし>16Bitsであれば自動で次のWordデータにシフトしてきます。
I/O-SYSTEMは主と3つの部分が分けられ、以下のように(1)Fiebus Coupler/Controller部分・(2)DI/DO/AI/AO/CounterのようなNode・(3)のEnd-Modulesになります。
Power Supply
WAGO-I/O-SYSTEM 750システムを使用するには24vのDC電源が必要です。DC電源はFieldbus CouplerやControllerから供給され、場合によっては別のモジュール750-613になります。
LED
WAGO-I/O-SYSTEM はLEDからモジュールの現在状態を確認することができます。
LED | Color | Description |
L RUN | 緑 | Data Linkは実行中 |
L ERR | 赤 | 通信エラー(Master) |
SD | 緑 | データは送信中 |
RD | 緑 | データは受信中 |
I/O | 緑 | Localとして稼働中 |
I/O | 緑Flashing | データ初期化待ち |
I/O | 赤Flashing | エラーあり |
Rotate Switch
CC-Link Couplerには2つのRotate Switchがついており、モジュールのアドレスを設定できます。x10とx1があり、0-64まで設定できます。例えばx10は3、x1は1なら、そのモジュールのアドレスは31になります。
Rotate Switchを設定したら必ず電源を入れ直してください。
DIP Switch
CC-Link Couplerは赤色のDIP スイッチがついており、Coupleの通信設定を変更できます。
Pin8
CC-Linkの稼働モードを設定します。
ON=V2.0、Off=V1.1
Pin6/7
CC-LINKV2.0のExtend Cycle設定できます。
Pin4/5
Occupied Stationを設定します。
Pin1/2/3
通信速度を設定します。
Init
最初に電源をいれ>Wago 750-352がI/O Systemを初期化します。そのときI/O LEDが赤Flashingになり、もしOKならCouplerはOperating mode に移行し、I/O LEDが緑Flashingになります。もしNGならI/O LEDは赤Flashingになります。
Channel Setting
Configuration上ではcc-link Slave は最大4局まで拡張でき、V2.0ではData送受信するに1,2,4,8サイクルが設定できるようになっています。
以下の表ではDigitial data(Remote I/O)のMappingを一覧できます。Cycleや局数によりデータ量が違います。RXはInput Bits、RYはOutput Bitsになり*Points*の単位で表現します。そしてRWrはReadable register words、RWwはChangele register Wordsで、単位が*Words*で表現します。
Mapping concept
Wago 750-352 のmapping コンセプトはすこくシンブルでdi do は指してる順からRx RY の順番に振り分けます。一枚めはrx0-rx7、 次はRx 8-rxf のようなイメージです。ai ao も同じ月一枚目はRwr Rww 0 ..の形です。
System Area
実際System Area FlagはRemote XYの(M+N)になります。
MはRegisterの番号で例えばRX100から始まるとRX100、RX110など…
そのNは最後のRegister番号になり、計算式は:
Cycle=1
n=(Occupied Station*2)-1
Cycle>1
n=(2*Occupied Station * No. of cycle)-(No.of Cycles+1)
例えばいまCC-Link V2.0、Occupied Station=4、Cycle=4、RX=100から始まる。
n=(2*Occupied Station * No. of cycle)-(No.of Cycles+1)
n=(2*4*4)-(4-1)=32-5=27Dec=1B in Hex.
RX=100であればその実際のSystem AreaがRX2B0になります。
では実際に計算しなくてもManualにも全部乗っていますー
QJ61BT11
三菱のQJ61BT11はCC-LinkのMasterかSlaveとして構築することができるモジュールです。
LED
LED | Signal | Description |
RUN | ON | 正常 |
ERR | ON | エラー発生 |
MST | ON | Master局として稼働 |
S MST | ON | Stand by Master局として稼働 |
L RUN | ON | Data Link実行中 |
L ERR | ON | 通信エラー |
SD | ON | データ送信中 |
RD | ON | データ受信中 |
Station Number setting switch
0=Master
1-64=はLocalかStand by
もし設定範囲は0-64以外であればERR LEDはONになります
。
Transmission rate/Mode Setting
Terminal Block
Configuration
Mitsubishi Side
では三菱のQJ61BT11モジュールを設定し、プログラムも作成してみます。
Create new project
GXWORKS2を起動し、Project>Newで新規プロジェクトを作成します。
今回使用するのはQ04UDEHなので、SeriesはQCPU、TypeはQ04UDEH、Project TypeはStructured Project、LanguageはSTにし、OKで確認します。
PLC Parameter
次はHardware Configurationの設定を行います。
Parameter>PLC Parameterをクリックします。
I/O Assignment
I/O AssignmentのTabを開きます。
今回は3つのIntellignetモジュールがインストールされましたので、TypeはIntellignetを選択>Pointsは32Points>Start XYはて適当でOKです。CCLINKモジュールはSlot2でStart XYは0040です。これだけは頭においてください。
PLC RAS
とりあえずエラーがあってもCPUが止まらないように設定します。
PLC System
毎回CPUのReset ボタンを押すと面倒なのでRemote ResetのAllowにCheckboxを入れます。
Configure CC-LINK network
次はCCLINK-Masterを構築します。
Parameter>Network Parameter>CC-Linkをクリックします。
Start I/O No
Start I/O No.は0040にします。先I/O AssignmentでStart XYを0040に設定したか覚えていますか。その0040はこのTabのStart I/O No.に合わせる必要があります。
Type
今回はMasterにしますので、TypeがMaster Stationを選びます。
Mode
CCLINKのバージョンです。V1とV2がありますが、今回はRemote Net(Ver.2 Mode)にします。
Set the station Information in the CC-Link Configuration window
Set the station in the CC-Link Configuration windowのCheckboxを入れます。
Total Module Connected
この記事ではWagoのCCLink Couplerと1対1でつながるだけなので、Total Module Connectedは1にします。
Remote Input(RX)/Output(RY)
各Local Stationと交換するBitメモリを設定します。
RXはRemote Inputで、RYはRemote Outputです。
設定できる範囲はX/Y/M/L/B/D/W/R/ZRで、範囲はCPUによります。
Remote register(RWr) /(RWw)
各Local Stationと交換するWordデータを設定します。
RWrはRemote Inputで、RYはRemote Outputです。
設定できる範囲はM/L/B/D/W/R/ZRで、範囲はCPUによります。
Spectial Relay (SB)
モジュールのSpecial Relay(SB)を設定します。
設定できる範囲はM/L/B/D/W/R/ZRで、範囲はCPUによります。
Special register (SW)
モジュールのSpecial Register(SW)を設定します。
設定できる範囲はM/L/B/D/W/R/ZRで、範囲はCPUによります。
Station information Settings
最後は各Local Stationを設定します。Station Information SettingのCC-Link Configuration Settingをクリックします。
Wago 750-325の設定に合わせて行きましょう。
Station TypeはIntelligence Device Station、Versionは2、STA Occupiedは4、Cycle SettingはQuadupleでOKです。
Implemention
DUT
構造体を作成します。いまはWago 750-352のモジュール一つだけですが、複数になると変数を同じ構造体に定義すればよいです。
D_QJ61BT11N_IN
まずはQJ61BT11Nのモジュール入力構造体を定義します。
D_Wago_750_325_SystemArea_X
こちらはWago 750-352のCC-LINK Coupler System area入力を定義します。
D_Wago_750_325_SystemArea_Y
こちらはWago 750-352のCC-LINK Coupler System area出力を定義します。
Function Block
同じく、今回はWago 750-352一つだけですが、複数の場合はHandshakeプログラムをFB化したほうが便利かと、思います。
FB_Wago_750_325_HandShake
Local Label
Wago 750-352のSystem area入力・出力パラメタをFunction block内で判断し、いまのモジュール状態を出力します。i_MasterRdyはQJ61BT11Nの状態です。i_Resetはもし初期化がエラー発生すると、リセットしない限り再初期化しません。
初期化のプログラムはWago 750-352のManualのTime Chartと一緒です。
Program
以下はプログラムです。三菱でもできるだけST書くので(また命令を勉強するのは面倒です)、Wago 750-352からデータ初期化のリクエストが立ち上がったら、初期化プログラムを始めます。System area出力y8、y9をTrueにし、Wago 750-352がxF(モジュールReady)を返答するかをCheckする。もしReady Flagが来ないのであれば、初期化問題があると判断します。
fb_Init_DataReq( _CLK:=M_750_325_Sys_x.x8InitDataReq ); IF fb_Init_DataReq.Q AND i_MasterRdy THEN iStep:=1; END_IF; CASE iStep OF 1: q_Inited:=FALSE; io_SystemArea_y.y8InitDataComp:=TRUE; io_SystemArea_y.y9InitDataReq:=TRUE; TON1(In:=TRUE,PT:=T#0.5s); IF TON1.Q THEN iStep:=5; END_IF; 5: TON1(in:=FALSE); iStep:=10; 10: IF NOT io_SystemArea_x.x8InitDataReq AND io_SystemArea_x.x9InitDataOK THEN iStep:=20; END_IF; IF io_SystemArea_x.xAErrorStatus THEN iStep:=99; END_IF; 20: io_SystemArea_y.y8InitDataComp:=FALSE; io_SystemArea_y.y9InitDataReq:=FALSE; iStep:=30; TON1(in:=TRUE,pt:=T#0.5s); IF TON1.Q THEN iStep:=21; END_IF; 21: TON1(in:=FALSE); iStep:=30; 30: IF io_SystemArea_x.xBStationRdy THEN iStep:=0; q_Inited:=TRUE; ELSE iStep:=99; END_IF; 99: q_InitError:=TRUE; IF i_Reset THEN q_InitError:=FALSE; iStep:=0; END_IF; END_CASE; q_ModuleError:=M_750_325_Sys_x.xAErrorStatus; q_Ready:=M_750_325_Sys_x.xBStationRdy; |
Global Label
Channel1.Channel2の入力・出力・System area Flag、あとQ61BT11NのモジュールINPUTを定義します。
Main
Local Label
Wago_750_325_1はHandshake用のInstanceです。他にはプログラム用のFlagです。
Program
QJ61BT11Nが正常かを判断し、そしてHandshake Function blockを呼び出し、Wago 750-352 CC-LINK Couplerを初期化します。
(*Check QJ61BT11N Status *) ModuleReady:=Module1.x1HostDataOK AND Module1.xFReady; (*Check 750-325 Status*) WagoCouplerReady:=NOT M_750_325_Sys_x.xAErrorStatus; Wago_750_325_1( io_SystemArea_x:=M_750_325_Sys_x ,io_SystemArea_y:= M_750_325_Sys_y ,i_MasterRdy:=ModuleReady ,i_Reset:=Reset ,q_Inited:=Inited ,q_InitError:=InitError ,q_Ready:=Ready ,q_ModuleError:=ModuleError ); CASE iStep OF 0: FOR Index:=0 TO 7 DO M_750_325_Ch1_y[Index]:=FALSE; M_750_325_Ch2_y[Index]:=TRUE; END_FOR; TON1( In:=TRUE ,PT:=T#1s) ; IF TON1.Q THEN TON1(IN:=FALSE); iStep:=10; END_IF; 10: FOR Index:=0 TO 7 DO M_750_325_Ch1_y[Index]:=TRUE; M_750_325_Ch2_y[Index]:=FALSE; END_FOR; TON1( In:=TRUE ,PT:=T#1s) ; IF TON1.Q THEN TON1(IN:=FALSE); iStep:=0; END_IF; END_CASE; |
Result
この動画で構築紹介から結果までみえます↓
Source Code
https://github.com/soup01Threes/GXWROKS/blob/main/project_cclinkmodules_Wago750-352.gxw