Beckhoff#TwinCAT3 TF6250 Modbus-TCP Server立ち上げよう

この間TwinCAT3 Modbus TCPのTF6250を使用しModbus TCP/IP Clientを実装しましたね。次はModbus Serverを立ち上げ、Factory IOと連携してみますね。そのServer設定するSoftwareはなんかTwinCAT2みたいですねー。

あとModbusTCpScannerを探すには少し大変でしたー

今回はその立ち上げの方法とそのあとFactoryIoと連携を説明します。

Modbus Area

Serverセットアップ

TF6250をインストールしたあとに以下のDirectoryをアクセスしてください:

C;/TwinCAT3/Functions/TF6250-Modbus-TCP/Win32/Server

そのFolderになるTcModbusSrvCfgを起動します。

このような画面が出てきます。

IP AddressはDefaultのLocal IP 127.0.0.1、Portは502です。

TwinCAT3のTF6250はXML-BaseでModbus TCP/IP Serverの構成管理しています。

Get Configuration

まずいまのConfigurationをゲットします。

Get Configurationをクリックします。

Runtimeが止まることになりますが、いいですかって。

Yesします。

Export Configuration

いまのConfigurationがGetしたところ、次はXMLとしてExportします。

Export Configurationをクリックします。

Runtimeが止まることになりますが、いいですかって。

Yesします。

保存先を設定します。

このようなXMLがExportされます。

Edit

Notepadなどのソフトを起動します。

各StartAddress・EndAddressを値をアプリケーション合わせて設定しましょう。

ここでVarはGVL.mb_xxxxxになっていますね。

つまりそのあとTwinCATのプロジェクトにもまったく同じな変数を作成する必要があります。まぁ、その名前も変更できますー

Import Configuration

XML修正終わったら次はImport Configurationします。

Runtimeが止まることになりますが、いいですかって。

Yesします。

先のFileを選び、Saveします。

Set Configuration

最後はConfigurationをSetします。

Runtimeが止まることになりますが、いいですかって。

Yesします。

それでOK。

プロジェクト作成

せっかくModbus TCP Server立ち上げてたので、Factory IOと連携しなにかみせましょう。2段のConveyorがあり、荷物は左のConveyorから流れて、右の曲がりのConveyorにSensorがあり、Sensorが荷物の位置を検知し連動します。曲がりのConveyorが3つのSensorがあります。Entry・Center・Exitです。

TwinCAT側

GVL作成

まずModbus TCPのRegister Areaを作ります。

{attribute ‘qualified_only’}

VAR_GLOBAL

mb_Input_Coils    :    ARRAY [0..255] OF BOOL;

mb_Output_Coils :    ARRAY [0..255] OF BOOL;

mb_Input_Registers :    ARRAY [0..255] OF WORD;

mb_Output_Registers :    ARRAY [0..255] OF WORD;

END_VAR


PROGRAM

次は制御のプログラムです。

VAR

VAR

wEntryConveyorRun :Word;

bCurvedConveyorRun :BOOL;

bConveyorExitSensor :BOOL;

bCurvedConveyorEntrySensor

,bCurvedConveyorCenterSensor

,bCurvedConveyorExitSesnor

,bCurvedConveyorEmpty :BOOL;

bCapactiveSensor :WORD;

rSetPoint :REAL;

R_trig :r_trig;

F_trig :f_Trig;

ton :ton;

END_VAR

Code

//

wEntryConveyorRun:= REAL_TO_WORD( rSetPoint /10.0*5000.0);

gvl.mb_Input_Registers[0]:=wEntryConveyorRun;

//

bConveyorExitSensor:=NOT GVL.mb_Output_Coils[1];

bCurvedConveyorEntrySensor:= GVL.mb_Output_Coils[2];

bCurvedConveyorCenterSensor:= GVL.mb_Output_Coils[3];

bCurvedConveyorExitSesnor:= GVL.mb_Output_Coils[4];

R_Trig(clk:=bConveyorExitSensor);

F_Trig(clk:=bConveyorExitSensor);

ton(

in:=NOT bCurvedConveyorEntrySensor

AND NOT bCurvedConveyorCenterSensor

AND NOT bCurvedConveyorExitSesnor

,PT:=T#1S

,Q=>bCurvedConveyorEmpty

);

IF bCurvedConveyorEmpty THEN

bCurvedConveyorRun:=FALSE;

END_IF

IF R_Trig.q 

OR bConveyorExitSensor 

THEN

bCurvedConveyorRun:=TRUE;

END_IF

gvl.mb_Input_Coils[1]:=bCurvedConveyorRun;


ライセンス

注意するのはModbus Serverだけを使用し、TF6350のFunction使わないときにライセンスの再入力Windowが出てこないです。そこでManualでライセンスを入れましょう。

FactoryIO側

File>Driversします。

Modbus TCP/IP Clientを選びます。

そして右にあるCONFIGURATIONをクリックします。

HostとPortは先設定した通り入れます。

I/O Pointsも同じように合わせましょう。

Connectionが成立したら緑のCheck Markが見えます。

そしてIOを割り付けましょう。

よし、それでOKです。

Result

そして以下のLinkからFactoryIOのサンプル・TwinCATプロジェクト・ModbusTCP Configuiration FileのZipをダンロードできます。

https://github.com/soup01Threes/TwinCAT3/blob/main/TwinCAT%20Project_ModbusServer_IOFactory.zip

最後

はーい、お疲れ様です。

もしなにか質問あれば、メール・コメント・Twitterなどでもどうぞ!

Twitterのご相談:@3threes2

メールのご相談:soup01threes*gmail.com (*を@に)

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

シェアする

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

フォローする