Beckhoff#FANUCのEthernet/IP AdapterとTF6281で繋げよう_Part1

今回の記事ではBeckhoff TwinCAT3とTF6281の組わせでEthernet/IP Scannerを立ち上げ、FANUC ROBOGUIDE側でR784 OptionsでEthernet/IP Adpaterと接続させます。

また、FANUC ROBOGUIDE側のIOデータMapping方法を説明し、実際にTwinCAT側からEnable信号やリセット信号を送信します。

Step by Step、From Zero To Hero。

さ、はじめよう!

Implementation

FANUC Side

まずはFANUC ROBOGUIDE側から始めます。

Options

Ethernet/IP Adapterを使用するにはR784 Optionsが必要です。

Start Teach Pendant

Robotの設定を変更するためにTeach Pedantを起動します。

Host Comm

最初は基本のEthernet設定を行うため6 SETUP>SETUP 2>8 HOST Commを開きます。

1 TCP/IPを開きます。

こちらはROBOTのIPアドレスなどを設定できます。

Port #1 IP addr

こちらのIPアドレスはPCのNetwork Adapterと同じ設定してください。

Done!

PC Jog/OP Panel IP

Panel IPなども設定しましょう。

Restart 

Robot Controllerを再起動します。

PING

Port #1 IP addrを選択し、PING機能を使用しを接続テストします。

Done!

Ethernet/IP Setting

今度はEthernet/IPの設定を行うため5 I/O>I/O 2>4 Ethernet/IPを開きます。

今回の記事で使用するのはConnection1です。

Disable

FANUCロボットのAdapter機能を変更するために、まずConnetionを無効にする必要があります。Enableの欄を選び>FALSEをクリックします。

Connection1 のEnable状態は現在FALSEになりました。

CONFIG

Conenction1の設定を変更するのであれば、Connection1を選び>CONFIGをクリックします。

現在Connection1の設定画面が表示されます。

Enable

最後はAdapterをEnableに戻すのを忘れずに。

Variables

次はSystem変数を修正するため、MENU 1>0–NEXT–を開きます。

MENU2が表示され、6 SYSTEM> 2 Variables画面を開きます。

こちらはFANUC Robot Controllerのシステム変数設定画面になります。

189 $EIP_ENBL_IOという変数があります。

$EIP_ENBL_IOを1に設定してください。

Config

今度はロボットControllerの設定を変更するため、MENU 1>0–NEXT–をクリックします。

MENU 2 >6 SYSTEM> 5 Configを開きます。

42 Remote/Local SetupはDefaultでOP panel Keyです。

CHOICEをクリックし、Remoteに選択してください。

これでOKです!

7 Enable UI signalsにもTRUEに設定してください。

UOP

次はUOPのMapping設定を行うためI/O>UOPを開きます。

UO

I/O UOP OutのMonitor画面が表示されます。

CONFIGボタンをクリックしUOPもMappingを行います。

こちらは現在UOのMappingです。

最初にRACK値を設定します。

89番はEthernet/IP Rackで、UOのRACKを変更するとSTATはPENDに変わります。

RACK値、SLOT値、START値が正しく設定されるとDevice NameはEthernetIPに表示されます。

UI

次はUIの設定を行うためIN/OUTをクリックしましょう。

こちらはUIの設定画面になります。

同じくRACK=89とSlot=1を設定し、STARTは1,9,17にします。

STAT.がPENDING状態に変わります。

Robot Controllerを再起動します。

Export EDS File

Ethernet/IPを構築するのEDS FileをExportするため、7 FILE>1 Fileを開きます。

BACKUPをクリックします。

BACKUP 2>2 Com. Conf.をクリックします。

Done!EDS FileがExportできました。

いまROBOGUIDEのProjectにある場所を開くために、File>Explore Fodler>Your project Name Folderをクリックしてください。

RobptGuideが自動でいま作業中のFolderをExplore でひらいてくれます。

TwinCAT Side

次はTwinCAT側の準備です。今回の記事ではまず通信確立・UIOのMAPPINGまでの説明になります。

Install EDS File

先程RobptGuideからExportしたEDS Fileを下記のFolderに格納してください。

C:\TwinCAT\3.1\Config\Io\EtherNetIP

Add Ethernet/IP Scanner

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 FANUC Adapter

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

FANUC Robotを選ぶ>Okします。

Done!

Adapter IP 

Settings>8000.0からFANUC ロボットのIpアドレスを設定します。

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

Add Connection

Beckhoff TwinCAT3とFANUCの間のEthernet/IP Connectionを設定します。

先程追加したFANUCロボットAdapterを右クリック>Append IO Connection>Adapter on slot1をクリックしてください。

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

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

InputsとOutputsは先程RobptGuideで定義された変数サイズと一致しています。

Configure

EDS Fileから接続設定をImportしましたので、基本的には設定を変更する必要がありませんが、アプリケーションに合わせてTimeoutやRPIを設定してください。

Add PLC

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

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

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

Program

これから構造体とFUNCTION BLOCKを作成します。

DUT_FANUC_UI1 

こちらはFANUCのUI1に合わせて作成した構造体です。

TYPE DUT_FANUC_UI1 :
STRUCT

UI01_IMSP :BIT;
UI02_Hold :BIT;
UI03_SFSP :BIT;
UI04_CycleStop :BIT;
UI05_FaultReset :BIT;
UI06_Start :BIT;
UI07_Home :BIT;
UI08_Enable :BIT;
UI09_RSR1,UI10_RSR2
,UI11_RSR3,UI12_RSR4
,UI13_RSR5,UI14_RSR6
,UI15_RSR7,UI16_RSR8:BIT;
UI17_PNSStrobe:BIT;
UI18_ProdStart :BIT;
UI19,UI20,UI21,UI22
,UI23,UI24,UI25,UI26
,UI27,UI28,UI29,UI30
,UI31,UI32 :BIT;
END_STRUCT
END_TYPE

DUT_FANUC_UO1 

こちらはFANUCのUO1に合わせて作成した構造体です。

TYPE DUT_FANUC_UO1 :
STRUCT
UO01_CmdEnabled:BIT;
UO02_SystemReady:BIT;
UO03_PrgRunning:BIT;
UO04_PrgPaused:BIT;
UO05_MotionHeld:BIT;
UO06_Fault :BIT;
UO07_AtPerch:BIT;
UO08_TPEnabled:BIT;
UO09_BattAlarm:BIT;
UO10_Busy :BIT;
UO11_ACK1 :BIT;
UO12_ACK2 :BIT;
UO13_ACK3 :BIT;
UO14_ACK4 :BIT;
UO15_ACK5 :BIT;
UO16_ACK6 :BIT;
UO17_ACK7 :BIT;
UO18_ACK8 :BIT;
    UO19_SNACK :BIT;
UO20_Reserved:BIT;
UO21,UO22,UO23
,UO24,UO25,UO26
,UO27,UO28,UO29 
    ,UO30,UO31,UO32:BIT;                               
END_STRUCT
END_TYPE

FB_FANUC_Basic

こちらはFANUCロボットを制御するFUNCTION BLOCKです。

FUNCTION_BLOCK FB_FANUC_Basic
VAR_INPUT
END_VAR
VAR_OUTPUT
qEnable:BOOL;
qFault:BOOL;
END_VAR
VAR
_rawIn AT %I*:ARRAY[0..7]OF BYTE;
_rawOut AT %Q*:ARRAY[0..7]OF BYTE;
_EIPConnectionState AT %i*:UINT;
_UI1:DUT_FANUC_UI1;
_UO1:DUT_FANUC_UO1;
END_VAR
METHOD PUBLIC Enable

こちらのMethodはFANUCロボットをENABLEするに最低限必要な信号(IMSP・SFSP・ENABLE・HOLD)を有効にします。

METHOD PUBLIC Enable : BOOL
VAR_INPUT
iTrigger:BOOL;
END_VAR
VAR
_RobotEnable:BOOL;
END_VAR


_RobotEnable:=iTrigger AND NOT Fault();

_UI1.UI01_IMSP:=_RobotEnable;
_UI1.UI03_SFSP:=_RobotEnable;
_UI1.UI08_Enable:=_RobotEnable;
_UI1.UI02_Hold:=_RobotEnable;
METHOD PROTECTED Fault

こちらのMethodはFANUCロボットから受信したFault信号でロボットのFault状態を出力します。

METHOD PROTECTED Fault : BOOL

Fault:=_UO1.UO06_Fault OR _UO1.UO09_BattAlarm ;
METHOD PUBLIC Rest

こちらのMethodはFANUCロボットのエラーをリセットします。

METHOD PUBLIC Rest : BOOL
VAR_INPUT
iTrigger:BOOL;
END_VAR


_UI1.UI05_FaultReset:=iTrigger;
METHOD PUBLIC Update

こちらはのMethodをUser programに呼び出さない限りFANUCロボットとTwinCAT間の信号を更新しません。

METHOD PUBLIC Update : BOOL

MEMMOVE(
destAddr:=ADR(_UO1)
,srcAddr:=ADR(_rawIn[0])
,n:=4
);


MEMMOVE(
destAddr:=ADR(_rawOut[0])
,srcAddr:=ADR(_UI1)
,n:=4
);


qEnable:=_UO1.UO01_CmdEnabled AND _UO1.UO02_SystemReady;
qFault:=Fault();

MAIN

こちらはMAINプログラムになります。

PROGRAM MAIN
VAR
Robot1:FB_FANUC_Basic;
bReset:BOOL;
bEnable:BOOL;
RobotEnable,RobotFault:BOOL;
END_VAR

Robot1.Update();
Robot1.Rest(iTrigger:=bReset);
Robot1.Enable(iTrigger:=bEnable);
RobotEnable:=Robot1.qEnable;
RobotFault:=Robot1.qFault;

Build

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

Link

最後はUser programの変数とProcess DataをMappingします。Inputs>すべてを選択>Change Multi Linkをクリックします。

先程作成したFunction Blockには%I*として定義したProcess Inputがあり、こちらの変数を選択しましょう。

Outputs>すべてを選択>Change Multi Linkをクリックします。

先程作成したFunction Blockには%Q*として定義したProcess Outputがあり、こちらの変数を選択しましょう。

Download

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

OKで進みます。

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

Result

まずFANUCロボット側から確認しましょう。AdapterにはScanner IPが表示され、そのIPアドレスはBeckhoff TwinCAT3にScanner IPアドレスになります。

こちらの動画でTwinCATからFANUCロボットをEnableする操作になります。

ROBOGUIDE.Enable robot From TwinCAT via Ethenret/IP

こちらの動画でTwinCATからFANUCロボットをDisableする操作になります。

ROBOGUIDE.Disablerobot From TwinCAT via Ethenret/IP

こちらの動画ではTwinCATからFANUCロボットのエラーをリセットする操作になります。

ROBOGUIDE.Rest robot From TwinCAT via Ethenret/IP

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

シェアする

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

フォローする