vlambda博客
学习文章列表

FANUC发那科机器人Socket Message通讯设置(八)

马少爷
In order to be a free man
313篇原创内容
Official Account

FANUC发那科机器人Socket Message通讯设置(八)


1、FANUC机器人通信

FANUC机器人与上位机或工业相机通过TCP/IP协议的通讯连接,实现机器人与上位机或工业相机之间数据传输的功能。

指令规则如下:

#R[j],R[i],R[i],R[i],R[i]

例如:

#100,200.123,-10.567,-20,0.005

机器人发送5个连续的寄存器的值给上位机。


2、所需硬件

适用机型:所有FANUC机器人型号。

另外,需用到USB存储器,用于导入相关程序。


3、所需软件

机器人系统要求: V8.30P (如系统为V9.10P系列)

Option软件要求: User Socket Msg (R648 )。


4、机器人设定

4.1系统变量设定

正常使用本软件,请按如下步骤更改系统变量:

(1) 按MENU键

(2) 选择0--NEXT--

(3) 选择6 SYSTEM

(4) 按F1【TYPE】

(5) 选择Variables, 找到系统变量$KAREL ENB, 更改其值为1。

FANUC发那科机器人Socket Message通讯设置(八)

(1 )按MENU键

(2 )选择SETUP

(3)按F1 [TYPE]

(4) 选择Host Comm,进入如下界面

FANUC发那科机器人Socket Message通讯设置(八)

选择TCP/IP,按Enter键或F3 [DETAIL] 键,进入:

FANUC发那科机器人Socket Message通讯设置(八)

FANUC发那科机器人Socket Message通讯设置(八)

设置完成后,重启机器人控制器,以使其生效。


4.3 Client 或Server设定

根据机器人作为Client或者Server,设置略有不同。

4.3.1 Client 设定

重启后,仍进入以下界面:

FANUC发那科机器人Socket Message通讯设置(八)

按F4 [SHOW],并选择Clients (机器人将作为Client,上位机作为Server):

FANUC发那科机器人Socket Message通讯设置(八)

FANUC发那科机器人Socket Message通讯设置(八)

选择Tag标签号,这里以C1为例,按Enter或F3 [DETAIL]进入:

FANUC发那科机器人Socket Message通讯设置(八)

在Protocol处,按F4 [ CHOICE],并选择SM:

FANUC发那科机器人Socket Message通讯设置(八)

在Startup State处,按F4 [CHOICE],并选择DEFINE:

FANUC发那科机器人Socket Message通讯设置(八)

FANUC发那科机器人Socket Message通讯设置(八)

按F2[ACTION],并选择DEFINE,界面会变成:

FANUC发那科机器人Socket Message通讯设置(八)

[关于Port号的设定]

(1 )按MENU键

(2) 选择NEXT

(3)选择SYSTEM

(4)按F1【TYPE】

(5)选择Variables,并找到$HOSTC CFG:

FANUC发那科机器人Socket Message通讯设置(八)

[注意]不要选择$HOSTS CFG。

在SHOSTC CFG 所在行按Enter或F2 [DETAIL],进入:

FANUC发那科机器人Socket Message通讯设置(八)

由于前面的设定中选择了C1,故这里进入第一行:

FANUC发那科机器人Socket Message通讯设置(八)

往下翻,找到$SERVER PORT,输入PORT号,例如8604:

FANUC发那科机器人Socket Message通讯设置(八)

[注意]此PORT号由.上位机指定。

完成设定后,重启机器人控制器。


4.3.2 Server 设定

重启后,仍进入以下界面:

FANUC发那科机器人Socket Message通讯设置(八)

按F4[SHOW],并选择Servers (机器人将作为Server,上位机作为Client ):

FANUC发那科机器人Socket Message通讯设置(八)

FANUC发那科机器人Socket Message通讯设置(八)

选择Tag标签号,这里以S3为例,按Enter或F3 [DETAIL]进入:

FANUC发那科机器人Socket Message通讯设置(八)

在Protocol处,按F4 [ CHOICE],并选择SM:

FANUC发那科机器人Socket Message通讯设置(八)

在Startup State处,按F4 [CHOICE],并选择START:

FANUC发那科机器人Socket Message通讯设置(八)

FANUC发那科机器人Socket Message通讯设置(八)

按F2 [ ACTION],并选择DEFINE,界面会变成:

FANUC发那科机器人Socket Message通讯设置(八)

再按F2 [ ACTION],并选择START,界面会变成:

FANUC发那科机器人Socket Message通讯设置(八)

[关于Port号的设定]

(1)按MENU键

(2) 选择NEXT

(3) 选择SYSTEM

(4) 按F1 [ TYPE]

( 5)选择Variables,并找到$HOSTS CFG:

FANUC发那科机器人Socket Message通讯设置(八)

[注意]不要选择$HOSTC CFG。

在$HOSTS CFG所在行按Enter或F2[ DETAIL], 进入:

FANUC发那科机器人Socket Message通讯设置(八)

由于前面的设定中选择了S3,故这里进入第三行:

FANUC发那科机器人Socket Message通讯设置(八)

往下翻,找到$SERVER PORT, 输入PORT号,例如8601:

FANUC发那科机器人Socket Message通讯设置(八)

[注意]此PORT号由上位机指定。

完成设定后,重启机器人控制器。


5、软件导入

将三个.PC程序( SM CONNECT.PC,SM DISCO. PC,SM SEND15. PC) 存入USB存储器,并按以下步骤执行机器人设备选择:

(1) 按MENU键

(2) 选择FILE

(3) 按F5 [ UTIL]

(4) 选择Set Device, 并找到UD1 (USB存储器应插在控制器上):

FANUC发那科机器人Socket Message通讯设置(八)

在*所在行按Enter,出现需要加载的程序: .

FANUC发那科机器人Socket Message通讯设置(八)

依次选择每个程序,按F3 [LOAD]并确认后进行加载,完成程序的导入。

确认导入的三个程序在程序列表里:

FANUC发那科机器人Socket Message通讯设置(八)

[注意]如果在中文系统中无法正常加载程序,请切换到英文系统下再次尝试。


6、使用方法及样本程序

6.1程序说明

导入的程序如下表:

FANUC发那科机器人Socket Message通讯设置(八)


6.2在TP程序中调用通讯程序

以调用SM CONNECT为例,在TP程序的适当位置,执行以下步骤:

(1) 按NEXT

(2)按F1[INST]

(3) 选择CALL

(4)选择 CALL program

(5) 按F3 [COLLECT]

(6) 选择KAREL Progs

(7) 选择SM CONNECT


按_上述步骤执行,完成程序调用:

FANUC发那科机器人Socket Message通讯设置(八)

光标移动到调用程序所在行的最后部分,按F4 [CHOICE],并选择String,再按F5 [STRINGS],输入字符,例如:

FANUC发那科机器人Socket Message通讯设置(八)

如此,执行这条指令后,机器人的Client 1与作为Server的.上位机将会建立连接。


6.3通讯程序示例

可参考下图,按需要来调用不同的程序:.

FANUC发那科机器人Socket Message通讯设置(八)

注意,--旦运行了SM_DISCO程序,连接就会中断。所以如果需要保持数据接收程序始终处于接收数据的状态,就不要运行SMDISCO程序。

提示: RUN指令通过F1 [ INST] -Multiple control来调用。


6.4程序使用说明

机器人作为服务器时,需使用CALL SM CONNECT(‘S3’)来建立连接(假如使用的是Serve3号端口)。其次,由于需要实时向上位机发送数据,故调用程序SM SEND15时,需使用RUN的方式来进行。在运行SM_ SEND15之前,需要对相关参数进行设置,

按以下步骤:

(1) 进入Select页面

(2) 光标打在SM SEND15上

(3)按下Enter键

(4)按下Data键

(5)按F1[TYPE]

(6)选择KAREL Vars

完成后,进入如下画面:

其中,需要对前三个参数进行预设置。

(1)RNOSTART

表示需要发送数据的五个寄存器的起始号,如不设置,则程序运行后将自动赋值为1。如将该参数设置为3,则会发送R[3]~ R[7]这五个连续寄存器的数值。

(2 )R_NO_STOP

表示停止发送数据的寄存器号,如不设置,则程序运行后将自动赋值为10。如该值为10,那么R[10]的值将作为SM_ SEND15是否反复执行的标志。只有当R[10]=-1时,SM SEND15这个程序才会停止发送数据,否则只要机器人和上位机处在连接状态,SM SEND15将会一直发送数据。

(3) T_INTERVAI ,

表示发送数据的时间间隔,如不设置,则程序运行后将自动赋值为100,表示100毫秒。


在上述三个参数设置完毕后,可以按照如下的逻辑来编写TP程序:

1: CALL SM CONNECT(‘S3’) //建立连接2: R[10]=03: RUN SM SEND15 //运行实时发送数据的程序5: ...19: R[10]=-1 //停止数据发送20: CALL SM_ DISCO(‘S3’) //根据需要,自行判断是否需要断开连接