PLC与爱普生机器人通信程序
①通信初始化(Function FINS_TCP_Init):
a)设定最终握手指令
b)设定FINS/TCP头代码
c)FINS读、写指令
d)FINSSET RST 指令
e)软元件区域
①通信初始化(Function FINS_TCP_Init):
a)先打印“开始连接TCP服务端”窗口
b)然后设置通讯地址格式,如图(c)所示
c)然后关掉端口,0.1s后再打开端口
d)当连接成功后,打印'FINS/TCP建立连接成功'窗口
功能:FINS/TCP建立通信连接,并通过打印窗口,验证是否连接成功
②PLC与Robot的通信线程 (FINS_Task):
a)先是调用FINS_TCP_Init函数,让其通信初始化
b)0.1s后,机器人发送数据
c)再0.1s后,机器人接收PLC数据
d)数据传输完毕后,最后循环执行中间一大段程序内容
功能:数据传送,数据交流
③将数据写读到PLC的D、W中(FINS_Task):
a)如果写D寄存器标志位为True时,调用写数据寄存器函数FunctionFINS_WriteBatchWords(),将机器人当前坐标和HMI指定点坐标写到PLC 的D40-D47的中
b)如果写W标志位为True时,调用传递写PLCW命令函Function FINS_Write_PLCW()函数,将W状态写入PLC中
c)当握手成功且没有写D、W的标志位时,根据需求进行D、W地址的读取
功能:主要判断条件,将数据写或读到PLC的D、W中
④写数据寄存器(Function FINS_WriteBatchWords):
⑤写PLC W命令(FINS_Write_PLCW()):
⑥判断是否写入成功(FINS_Task):
a)如果ChkNet(202)> 0,即字符数大于0,即通信成功
b)然后把接受到的字符数赋值到x中,方便建立一维数组
c)变量Redata[x-1]
d)接着从#202端口将数组Redata[x-1]中x个元素全部读取到机器人中
e)最后,把写入标志位置为True,并退出循环f)如果通信不成功,就不退出死循环,直到通信成功为止
功能:当把机器数据写入PLC后,通过读取PLC数据,判断是否写入成功,如果读取到,即写入成功,如果没有,即写入失败
⑦读取D、W数据(FINS_Task):
a)如果写D,W标志位都为False,并且通信握手标志位位True时,读取数据
b)如果读D寄存器标志位为True时,把D寄存器数据读到机器人中,如果读W为True时,把W数据读到机器人中
c)然后判断读取数据是否成功,如果读取数据成功标志位为False,然后执行机器人接受数据函数指令,继续通信。如果读取数据成功标志位为True,就退出循环。
功能:主要读取PLC的D寄存器数据,W状态
2.机器人与CCD通信CCD_TCP_IP
①触发拍照(CCD_Task):
a)调用函数,建立与CCD通信
b)将触发相机拍照的字符串设定为“TR”
(可更改为其他,需与相机协商好)
c)调用函数,接受相机的数据
d)如果CCDTrigger = True,即接收到触发信号时,将CCD_infor$(“TR”)字符串传入端口201,关掉触发信号,打印”触发拍照’窗口
e)循环(c)、(d)过程
功能:接收数据,执行触发拍照
②机器人与CCD通信链接(CCD_TCP_Init)
3.关闭CCD与机器人的通信链
功能:机器人与CCD通信
③机器人接收CCD的数据(CCD_TCP_ReceiveData):
a)先判断端口状态,如果如果缓冲字符数量大于0,则机器人从201端口读入一行数据。如果小于0,打印出“通讯端口异常'字样
b)分离数据到数组mReceiveArr$()中
c)赋于ReCount为mReceiveArr$下标的最大值
d)如果满足电芯OK条件,则把接收到数据赋到点PBELT(以便后续跑点使用)
e)如果满足电芯NG条件,则打印“拍照NG”字样,合格标志CCD_PASS_FLAG置为FALSE
④定位相机CCD XY标定(CCD_XY_calibration):
a)设置x,y方向偏移的距离nX,xYb)通过九点标定法进行XY标定用
⑤定位相机CCD U标定(CCD_U_calibration):
a)设置每次标定的旋转角度nUb)更改For循环的最大值可设定标定次数
功能:进行相机的标定
3.机器人初始化
①机器人初始化(Sys_InitRobot):
a)设置初始化动作速度,如图(a)
b)添加项目需要的IO及标志位,如图(b)
c)添加初始点位及初始变量,如图(c)
②加载HMI配方参数(Sys_InitRobot):
a)调用函数,加载HMI配方参数(离线调试时,需要把此函数注释掉)
b)建立矩阵c)如果手臂为左手就左手运动,如果手臂为右手就右手运动,避免撞机d)Move PSAFE初始化时到避让位
功能:加载HMI参数
③手动控制(Sys_HandModelTask):
a)与PLC地址统一后,可做到在触摸屏完成机器人的示教,包括向XYZU四个方向的正负向移动,以及手臂姿势的切换
b)可在触摸屏上选择需要实现的功能,如示教点位、手动移动,相机标定等
功能:在触摸屏手动控制x,y,z,u方向的位移
4.主函数
①(main):
a)打开plc通信线程与CCD通信线程
b)0.5s后,调用程序,使机器人初始化
c)如果通信链接建立成功标志为True时,获取系统运行状态
d)如果工作模式为False时,调用手动系统程序。如果工作模式为Trued)时,调用自动系统程序
e)配置CCD连接参数
注意:若调试状态,根据需要,可注释掉通讯等功能
功能:获取手动系统程序或自动系统程序
②自动逻辑控制(Sys_AutoModelTask):
a)当和PLC完成通讯且触摸屏地址设置完成后,自动运行的速度可在触摸屏上更改。否则,需自行给Robot_Speed和Robot_Accel赋值。
b)在空白处,根据项目需求,添加自动运行时的逻辑
功能:进行自动控制的设置
5.基本指令的集合
a)线程调用和普通的调用(eg_Call_Xqt)
b)点位指定及偏移(Functioneg_Point)
c)运动指令用法(Function eg_Move)
d)矩阵用法(Functioneg_Juzhen)
e)IO的判断和使用(Functioneg_IO)
f)条件判断If_Else和分支选择Select_Case的用法(条件判断If_Else和分支选择Select_Case的用法)
g)DO...LOOP循环和For...Next循环地区别(Function eg_Xunhuan)
h)其余常用指令示例(Function eg_Other):
1.计时器 2.等待命令 3.打印 4.定义自由曲线