Keyence#SR750とBeckhoff TwinCAT3をEtherent/IPで繋がってみよう

こちらはキーエンスの新しいシリーズ、小型二次元コードリーダSR-750シリーズの記事です!今回はSR-750を使用するには必要な簡単セットアップ、そしてBeckhoff TwinCAT3とEtherent/IPの接続方法・プログラムを紹介します。

(Youtube ChannelのCommentリクエストより)

さ、はじめよう!

Reference Video

Beckhoff.TwinCAT3 Etherent/IPとKeyence SR750を連携しよう

SR750?

SR-750は小型でありながら難読コードでも安定した自動読み取りが可能で、取り込みと処理に新アルゴリズムを採用しています。

それにより、難読コードでもクラス最高の読み取り性能を実現し、様々な材質のワーク(DPM)に直接印字されたコードも安定して読み取ることができます。

Tool Installation

SR-750をセットアップするにはAutoID Network Navigatorが必要なので、キーエンスからソフトウェアをもらってください。

ライセンスに同意し、Next>で進みます。

Next>で進みます。

ソフトウェアの言語を選び、Installを開始します。

しばらく待ちます…

Done!

FTP Serverを起動しますか?とりあえずNoでOKです。

Startup

AutoID Network Navigatorを起動します。

Done!

Register Device

手元にあるSR-750と接続するため、+ボタンをクリックしデバイスを登録します。

SR-750と接続するInterfaceの選択画面が表示され、今回はEtherentと繋がります。

次はPCのInterfaceを設定します。

ちなみにSR-750のIP アドレスは192,168.100.100です。

次はデバイスの検索画面が表示され、Auto Searchでデバイスを検索しましょう。

Done!SR-750を見つけました。

Done!デバイスリストに先ほど登録されたデバイスには緑のランプがついていて、つまり現在PCのとSR-750とつながっています。

Monitor

Monitorボタンをクリックすれば、現在のカメラのライブ画像を確認できます。

カメラを2次元コードにもしっかり認識できます。

右下にはReading Testの表で2次元コードのデータやテスト結果を確認できます。

Tuning

Tuningボタンをクリックしてカメラを自動調整することもできます。

Done!

Code

Code を開き各Bankを読み込む2次元コードを設定できます。

Drop ListからCodeを設定しましょう。

Done!

Reading Tabに戻ります。

下はBank2をDataMatrixに変わりましたね。

Result

Done!DataMatrixのコードにも検出されました。

Send Configuration

SR-750のセットアップを完了したら、Transfer>Send Configurationでプロジェクトをデバイスに転送しましょう。

Retrieve Configuration

Ethernet/Ip?

EtherNet/IPは、ODVA(Open DeviceNet Vendor Association Inc.

DeviceNet Vendor Association, Inc)によって提唱された産業用通信ネットワークで、

EtherNet/IP通信は、通常のEthernet通信とネットワークを共有することができます。

Scanner and adaptor

EtherNet/IP通信では、あるデバイスが他のデバイスに「コネクション」と呼ばれる通信回線を開きます。

コネクションを開くデバイスは「スキャナー」(オリジネーター)と呼ばれ、受信するデバイスは「アダプター」(ターゲット)と呼ばれる。PLCは主にスキャナとして使用され、SR-750はアダプター機器となります。

Cyclic communication and message communication

EtherNet/IPでは、周期的なデータの送受信を行うサイクリック通信(Implicit message)と、コマンド/レスポンスの送受信を行うメッセージ通信(Explicit message)があります。

(明示的メッセージ)があります。

Cyclic communication

サイクリック通信 サイクリック通信では、送受信するデータの優先順位に応じてRPI(通信周期)を設定することができる。全体の通信負荷を調整したデータの送受信が可能です。

SR-750シリーズでEtherNet/IPを使用してサイクリック通信を行う場合、SR-750シリーズの機能がPLC機器に割り当てられます。

注意するのはサイクリック通信の通信周期やデータサイズなどの通信設定は、PLC側で行います。また、EtherNet/IP機器を含む多数の機器を接続するネットワークにおいて、負荷が大きい場合遅延やパケットロスが発生する場合がありますので、。運用前に十分な検証を行ってください。

Function Overview

Reading instruction 

読み取り指示を行い、また読取終了、バンク設定読取等の操作もやります。

Preset instructions 

正常に読み取られたデータをプリセットデータとして記録します。また、PLC からプリセットデータを登録または削除します。

Calibration instructions

キャリブレーションを実行し、また校正結果をセットバンクに保存できます。

Error-handling 

本体で発生したエラーの原因を調べ、エラーを返す。

(例えば:Buffer overflow check/cancellation)

Main unit status acquisition

本体の状態(BUSY状態)を確認します。

Operation results acquisition

サイレントモードに設定すると、読み取りデータは更新されません。

Terminal status acquisition

入力端子、出力端子の状態を取得します。

Main unit reset instructions

SR-750 シリーズのソフトウェアリセットを表示します。

Assemblies

Result data (Input Assemblies)

入力アセンブリは、SR-750シリーズからの応答をPLCに書き込むデバイスです。

(Instance ID: 0x64)

Control data (Output Assemblies)

出力アセンブリは、PLCからの命令をSR-750シリーズに書き込むデバイスです。

(Instance ID: 0x65)

Message communication

メッセージ通信では、コマンド/レスポンスによってタイミングがコントロールされる。

Specification Of SR-750

こちらはSR-750のEtherent/IP接続使用になります。

Time chart

Implementation

Keyence Side

IPComm

Communication1のTabを開き、SR-750のIPアドレスとSubnet Maskを設定してください。

Comm

次はCommunication2のTabを開き、Data Port2をEthernetに設定してください。

Protocol

そしてProtocolをEthernet/IPに設定し、Detailsボタンをクリックします。

Ethernet/IP接続のデータサイズやByte Swapingを設定できますが、今回Defaultのままにします。

Table

Table Tabを開くとSR750のパラメータを一覧や設定できます。

TwinCAT3 Side

今度はTwinCAT3側を設定します。

Install EDS File

Keyence HPからSR-750のEDS FileをDownloadし、下記のDirectoryに格納してください。

Add Devices

I/O>Devices>Add New Itemで新しいFieldbus Driverを追加します。

Etherent/IP>Ethernet/IP Scannerを選び>Okで進みます。

AdapterのTabを開き、SearchボタンをクリックしてEtherent/IP Scannerとして使用するScanner Network Interfaceを設定しましょう。

現在IPCで使用できるNetwork Interfaceを一覧できます。

Task

次はEthernet/IP ScannerのTaskを追加するため、Sync Taskを開きます。

Special Sync Taskを選び>Create new I/O Taskします。

新しいTask名を入力してください。

Done!

Scanner IP

次はEthernet/IP ScannerのIP アドレスを設定します。先程追加したEthernet/IP Scannerをクリックしてください。

SettingsのTabを開きます。

F800.0にあるIP address・Network Mask・Gateway addressを設定しましょう。

Done!

Add SR-750 Adapter

Ethernet/IP Scannerの設定が終わりましたので、次はKeyence のEthernet/IP Adapter SR-750を追加します。先程設定したScannerを右クリック>Add New Itemします。

SR-750を選ぶ>Okします。

Done!

Adapter IP

Settings>8000.0からKeyence SR-750のIpアドレスを設定します。

今回のTutorialでは192.168.100.100になります。

Add Connection

Beckhoff TwinCAT3とKeyence SR-750の間のEthernet/IP Connectionを設定します。

先程追加したKeyence SR-750Adapterを右クリック>Append IO Connection>Class1をクリックしてください。

EDS Fileに沿って変数を自動作成しますか?Yesで進みます。

Done!Connectionが追加されました。

Etherent/IPの通信設定は実際のアプリケーションに合わせて設定しましょう。

Add PLC

Fieldbusの設定が終わりましたので、次はPLCプログラムを作ります。

PLC>右クリック>Add New Itemします。

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

DUT

DUT_SR750_EIP_INData 

こちらはSR750 Ethernet/IPのInput Assemblyに合わせて定義した構造体です。

TYPE DUT_SR750_EIP_INData :
STRUCT
Error :BIT; //Buffer Overflow Error OR General Error is ON.
ResultDataAvailable:BIT; //This displays whether read data exists or not,using in Handshake
ResultDataStrobe:BIT; //

BufferOverFlow:BIT; //buffer overflow error occurs.
GeneralError:BIT;
Busy:BIT; //TryBusy,LockBusy,ModeBusy or ErrBusy is on
TryBusy:BIT;
LockBusy:BIT;
ModeBusy:BIT;
ErrBusy:BIT;

ReadComplete:BIT; //when reading is complete
PresentComplete:BIT; //when preset reading is complete.
RegisterPresetDataComplete:BIT; //when preset data registration is complete.
TuneComplete:BIT; //when tuning is complete.

EXTRequestComplete:BIT; //when “Reading”, “Preset reading” or “Tuning” is performed with the IN terminal or command and the operation is complete.
ReadFailure:BIT; //when reading error or comparison NG occurs.
PresentFaliure:BIT; //when preset reading fails.
RegisterPresetDataFailure:BIT; //when preset data registration fails.
TuneFailure:BIT; //when tuning fails.
EXTRequestFailure:BIT; //when “Reading”,”Preset reading” or “Tuning” is performed with the IN terminal or command and the operation fails.
IN1Status:BIT; //This represents IN1 terminal status.
IN2Status:BIT; //This represents IN2 terminalstatus.

OUT1Status:BIT; //This represents OUT1 terminal status.
OUT2Status:BIT; //This represents OUT2 terminal status.
OUT3Status:BIT; //This represents OUT3 terminal status.
noname5_arrBIT:BIT;

Unstable:BIT; //ON when any of the following Unstable Bits (9 to 12) is ON.
MatchingLevelUnstable:BIT; //Matching level judgment result
ISOIEC15415Unstable:BIT; //ISO/IEC15415 verification judgment resul
AIMDPMUnstable:BIT; //ISO/IEC TR 29158 (AIM DPM-1-2006) verification judgment result
SAEAS9132Unstable:BIT; //SAE AS9132 Unstable verification judgment result

MatchingLevel:UINT;
ISOIEC15415Grade:UINT;
AIMDPMGrade:UINT;

ReadResultCode:UINT;
PresentResultCode:UINT;
RegisterPresetDataResultCode:UINT;
TuneResultCode:uint;

EXTRequestResultCode:UINT;
GeneralErrorCode:UINT;

ReadyDataReadyCount:UINT;
ReadyDataUpdateCount:UINT;

ResultDataSize:UINT;
ResultData:ARRAY[0..127]OF BYTE;


END_STRUCT
END_TYPE
DUT_SR750_EIP_OutData 

こちらはSR750 Ethernet/IPのOutput Assemblyに合わせて定義した構造体です。

TYPE DUT_SR750_EIP_OutData :
STRUCT
ResultDataLatch:BIT;

ErrorClear:BIT;
ReadRequest:BIT; //The SR-750 Series starts reading.
PresetRequest:BIT; //Preset reading starts.
RegisterPresetDataRequest:BIT; //Specified preset data is registered to Address 5, 6 and above
TuneRequest:BIT; //Tuning starts

ReadCompleteClear:BIT; //”Reading Complete” Bit of Input Assemblies is cleared.
PresetCompleteClear:BIT; //”Preset Reading Complete” Bit of Input Assemblies is cleared.
RegisterPresetDataCompleteClear:BIT;//”Preset Data Registration Complete” Bit of Input Assemblies is cleared.

TuneCompleteClear:BIT; //”Tuning Complete” Bit of Input Assemblies is cleared.

EXTRequestCompleteClear:BIT; //”External Instruction Operation Complete” Bit of Input Assemblies is cleared.
BankNumber:UINT; //Input a bank number here and start reading.

UserDataSize:UINT;
UserData:array[0..63]OF BYTE;

END_STRUCT
END_TYPE
DUT_SR750_EIP 

こちらは先程Input AssemblyとOutput Assemblyをまとめた構造体です。

TYPE DUT_SR750_EIP :
STRUCT
in AT %I*:DUT_SR750_EIP_INData;
out AT %Q*:DUT_SR750_EIP_OutData;
CommStatus AT %I*:UINT;

END_STRUCT
END_TYPE
DUT_HMI_SR750_PB 

こちらはSR750をHMIから操作する構造体です。

TYPE DUT_HMI_SR750_PB :
STRUCT
bRead:BOOL;
bClear:BOOL;
bReset:BOOL;
END_STRUCT
END_TYPE
DUT_HMI_SR750_PL 

こちらはSR750の状態をHMIで表示する構造体です。

TYPE DUT_HMI_SR750_PL :
STRUCT
Status:DUT_SR750_EIP_INData;
Data:STRING;
END_STRUCT
END_TYPE
DUT_HMI_SR750 

こちらは先程HMIの操作と表示をまとめた構造体になります。

TYPE DUT_HMI_SR750 :
STRUCT
PB:DUT_HMI_SR750_PB;
PL:DUT_HMI_SR750_PL;
END_STRUCT
END_TYPE

GVL

GVL_HMI

こちらはHMI操作のGlobal変数です。

{attribute ‘qualified_only’}
VAR_GLOBAL
SR750_1:DUT_HMI_SR750;
END_VAR
GVL_Mapping

こちらはSR750のEthernet/IP データをMappingするGlobal 変数です。

{attribute ‘qualified_only’}
VAR_GLOBAL
SR750_1:DUT_SR750_EIP;
END_VAR

Program

こちらのプログラムはSR750をEthernet/IP経由でTriggerしたり、状態を取得しHMIで表示したりします。

PROGRAM MAIN
VAR
Result:STRING;
bRead:BOOL;
R_TRIG:R_TRIG;
END_VAR



GVL_Mapping.SR750_1.out.ReadRequest:=GVL_HMI.SR750_1.PB.bRead
AND GVL_Mapping.SR750_1.CommStatus=0
;

R_TRIG(CLK:=GVL_Mapping.SR750_1.out.ReadRequest);
IF R_TRIG.Q THEN
Result:=’ ‘;
END_IF

IF GVL_Mapping.SR750_1.in.ReadComplete THEN
MEMMOVE(
destAddr:=ADR(Result)
,srcAddr:=ADR(GVL_Mapping.SR750_1.in.ResultData)
,n:=GVL_Mapping.SR750_1.in.ResultDataSize);
ELSIF GVL_Mapping.SR750_1.in.ReadFailure THEN
GVL_HMI.SR750_1.PL.Status.ResultDataSize:=0;
GVL_HMI.SR750_1.PL.Data:=’ERROR!!!!’;
END_IF;


GVL_Mapping.SR750_1.out.ErrorClear:=GVL_HMI.SR750_1.PB.bReset;
GVL_Mapping.SR750_1.out.ReadCompleteClear:=GVL_HMI.SR750_1.PB.bClear;

GVL_HMI.SR750_1.PL.Status:=GVL_Mapping.SR750_1.in;
GVL_HMI.SR750_1.PL.Data:=Result;

Visualize

こちらはSR750の操作画面です。

Build

Build>Build Solutionでプロジェクトをコンパイルします。

Link Input/Output

SR750の入出力Process DataをPLCとMappingしましょう。

Download

最後はActivate ConfigurationでプロジェクトをRuntimeにDownloadします。

OKで進みます。

TwinCATをRun Modeに切り替えます。

Start

最後はTwinCAT3 Runtimeを起動します。

Result

Stateを開いてSR750とTwinCAT3のEthernet/IP接続状態を確認しましょう。

State=0なので、いまTwinCAT3とEthernet/IPが接続正常です。

こちらはTwinCAT3からSR750にTriggerを送信し、QR Codeを読み取る動画です。

Beckhoff.Using Ethere/IP to communicate with Keyence SR-750(QR Code)

こちらはTwinCAT3からSR750にTriggerを送信し、Data Matrixを読み取る動画です。

Beckhoff.Using Ethere/IP to communicate with Keyence SR-750(DataMatrix)

Project Download

こちらのLinkで今回の記事のプロジェクトをDownloadしてください。

https://github.com/soup01Threes/TwinCAT3/blob/main/TwinCATWithSR750_EIP.tnzip

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

シェアする

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

フォローする