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。
(1 )按MENU键
(2 )选择SETUP
(3)按F1 [TYPE]
(4) 选择Host Comm,进入如下界面
选择TCP/IP,按Enter键或F3 [DETAIL] 键,进入:
设置完成后,重启机器人控制器,以使其生效。
4.3 Client 或Server设定
根据机器人作为Client或者Server,设置略有不同。
4.3.1 Client 设定
重启后,仍进入以下界面:
按F4 [SHOW],并选择Clients (机器人将作为Client,上位机作为Server):
选择Tag标签号,这里以C1为例,按Enter或F3 [DETAIL]进入:
在Protocol处,按F4 [ CHOICE],并选择SM:
在Startup State处,按F4 [CHOICE],并选择DEFINE:
按F2[ACTION],并选择DEFINE,界面会变成:
[关于Port号的设定]
(1 )按MENU键
(2) 选择NEXT
(3)选择SYSTEM
(4)按F1【TYPE】
(5)选择Variables,并找到$HOSTC CFG:
[注意]不要选择$HOSTS CFG。
在SHOSTC CFG 所在行按Enter或F2 [DETAIL],进入:
由于前面的设定中选择了C1,故这里进入第一行:
往下翻,找到$SERVER PORT,输入PORT号,例如8604:
[注意]此PORT号由.上位机指定。
完成设定后,重启机器人控制器。
4.3.2 Server 设定
重启后,仍进入以下界面:
按F4[SHOW],并选择Servers (机器人将作为Server,上位机作为Client ):
选择Tag标签号,这里以S3为例,按Enter或F3 [DETAIL]进入:
在Protocol处,按F4 [ CHOICE],并选择SM:
在Startup State处,按F4 [CHOICE],并选择START:
按F2 [ ACTION],并选择DEFINE,界面会变成:
再按F2 [ ACTION],并选择START,界面会变成:
[关于Port号的设定]
(1)按MENU键
(2) 选择NEXT
(3) 选择SYSTEM
(4) 按F1 [ TYPE]
( 5)选择Variables,并找到$HOSTS CFG:
[注意]不要选择$HOSTC CFG。
在$HOSTS CFG所在行按Enter或F2[ DETAIL], 进入:
由于前面的设定中选择了S3,故这里进入第三行:
往下翻,找到$SERVER PORT, 输入PORT号,例如8601:
[注意]此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存储器应插在控制器上):
在*所在行按Enter,出现需要加载的程序: .
依次选择每个程序,按F3 [LOAD]并确认后进行加载,完成程序的导入。
确认导入的三个程序在程序列表里:
[注意]如果在中文系统中无法正常加载程序,请切换到英文系统下再次尝试。
6、使用方法及样本程序
6.1程序说明
导入的程序如下表:
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
按_上述步骤执行,完成程序调用:
光标移动到调用程序所在行的最后部分,按F4 [CHOICE],并选择String,再按F5 [STRINGS],输入字符,例如:
如此,执行这条指令后,机器人的Client 1与作为Server的.上位机将会建立连接。
6.3通讯程序示例
可参考下图,按需要来调用不同的程序:.
注意,--旦运行了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]=0
3: RUN SM SEND15 //运行实时发送数据的程序
5: ...
19: R[10]=-1 //停止数据发送
20: CALL SM_ DISCO(‘S3’) //根据需要,自行判断是否需要断开连接