张庆乐
(武汉工程职业技术学院 湖北 武汉:430080)
PROFINET是一项先进的工业通信技术,在全球得到了广泛的应用。PROFINET兼顾高性能和开放性,技术规范中的标准数据通道兼容TCP/IP、UDP/IP通信,并且能够保证至少50%的带宽,可用于工业网络中非实时数据通信。对于某机器人装配工作站,其中的FOXBOT-A1700机器人与S7-1200 PLC之间的通信实现是重要的内容之一,需要充分考虑通信中的约束条件与作业任务具体的工艺要求,其中最重要的一个指标是通信延迟小于1s。进行通信设计有两条路线多个方案进行选择:使用单网卡通信或双网卡通信,TCP通信链路连接成功后,数据传输可以双向进行,但是不能实时全双工通信,数据双向传输需要进行分时处理,同时还需要在PLC和机器人的作业程序间进行同步协调,由于网络延迟的影响,容易出现数据阻塞,严重的时候数据刷新延迟的时间高达几秒至数十秒,导致无法进行正常的调度协调,满足不了作业的工艺要求。使用单网卡进行双向通信需要需要较长的调整时间,稳定性也不好。双网卡通信方案可以比较好的规避双向传送时的数据阻塞问题,每个网卡建立一条通信链路实现单向数据传送。本文以工作站中的通信部分为研究对象,通过分析、设计与实践验证,探寻切实可行的解决方案。
某机器人装配工作站的系统构成包括富士康FOXBOT-A1700机器人系统、迅捷智能视觉检测系统、可调速流水线输送链,各设备的控制系统基于PROFINET现场总线技术进行了互联,总控制柜使用了西门子S7-1200PLC进行集中控制调度,系统结构图见图1。工作站进行作业任务时,通过PROFINET-IO与变频器通信实现对流水线的控制;智能相机将采集到工件信息加工处理后,通过MODBUS-TCP通信将数据传送到总控PLC,总控PLC接收到工件位置数据二次处理后通过TCP通信发送到机器人,同时读取机器人的状态数据,并根据系统的状态信息进行决策调度。
图1 装配工作站系统组成
工作站在实现PLC与机器人的通信设计时使用了如表1所示的软硬件环境。
表1 软硬件环境及IP地址分配
FOXBOT机器人控制系统配置了双网卡进行通信,型号分别为Intel 82567V-3 Gigabit Network(以下简写为NC1)和Intel 82583 Gigabit Network(以下简写为NC2),在通信功能上有所区别。本案例中在TCP通信策略上可以选择通过单网卡双工通信,也可以选择双网卡分别进行单工通信,下面以双网卡通信进行设计与实现。
型号A1700机器人的TCP通信节点有2个,0号节点可设置机器人作为通信客户端或服务器端,1号节点仅可将机器人设置为客户端。在与PLC进行TCP通信时,网卡与通信节点间的约束关系如表2所示。
表2 FOXBOT-A1700机器人与S71200-PLC 间TCP通信约束关系表
机器人与上位机(PLC)进行TCP通信连接时,若作为客户端,需要上位机(PLC)的TCP服务先行启动,否则容易出现连接中断后无法连接的情况出现;做通信服务器端时,则不受影响。工作站进行作业任务时,PLC发送到机器人的数据量大,通信的实时性、稳定性要求较高。根据以上需求,结合机器人的网络通信功能,得出机器人与PLC进行TCP通信的最优配置如表3所示。
表3 A1700机器人与S71200-PLC TCP通信时配置选择
(1)网卡IP地址的设置
通过机器人示教器进入“系统选项”,通过“网络线路设置”分别给2个网卡设置IP地址(见表1)和网络掩码(255.255.255.0)。
(2)通信节点的设置
通过机器人示教器新建工程项目,在“通信设置”选项窗口按表4输入参数,并通过“启用”按钮使得通信节点生效。
表4 FOXBOT-A1700通信节点参数设置
机器人作业程序的通信部分包括数据结构定义、通信指令应用、通信数据处理和应用,参考如下:
'说明:当使用TcpSendEx/TcpRecvEx指令进行通信时,需要自定义结构体数据类型的变量进行数据包的封装
Type WORKPIECE '定义工件信息结构体
GX As Integer
GY As Integer
GA As Integer
GNO As Integer
GWZ As Integer
GOF As Integer
PGD As Integer
PWZ As Integer
POF As Integer
PZP As Integer
CW As Integer
End Type
Type ROBOT '定义机器人状态信息结构体
SW As Integer
PG As Integer
End Type
Dim FXT As ROBOT '定义ROBOT结构体变量,用于接收PLC传送过来的数据
Dim PRT As WORKPIECE '定义WORKPIECE结构体变量,用于存放发送到PLC的数据
Sub Main
While True
FXT.SW = 0
FXT.PG = 0
TcpSendEx 1,FXT '向PLC发送数据
Delay 500
TcpRecvEx 0,PRT '接受来自PLC的数据
Delay 500
'...其他作业任务代码
Wend
End Sub
S7-1200 PLC有十分强大的通信功能,支持串行通信、以太网通信、PROFINET 通信,在选择通信方式时,需要根据现场设备支持的通信协议及通信需求进行选择。本案例中FOXBOT-A1700机器人设备在西门子工控系统中属于第三方设备,基于PROFINET总线接入系统后需要使用S7-1200 CPU 以太网通信方式,其中OUC通信(开放式用户通信)服务适用于PLC与上位机或第三方设备进行通信。
OUC通信支持的连接类型有:
ISO-on-TCP(指令有TCON、TDISCON、TSEND、TRCV、TSEND_C、TRCV_C),最大通信字节数8192。
TCP(指令有TCON、TDISCON、TSEND、TRCV、TSEND_C、TRCV_C),最大通信字节数8192。
UDP(TCON、TUSEND、TURCV),最大通信字节数1472。
根据以上分析,选择TCP通信连接类型能满足需求,分别使用TSEND_C和TRCV_C建立2条通信链路进行双向数据传送,其中每条链路只执行单向数据传送,可有效降低数据阻塞的问题。
PLC与机器人单次通信传输的数据总量为26字节,发送到机器人22字节数据,从机器人接收4字节数据,通信程序的主模块见图2。通信指令参数的配置关系到通信链路是否能正常建立,设置为“主动建立连接”侧的单元为客户端,另外一侧为服务器端。TSEND_C用于PLC向机器人发送数据,连接参数配置见图3,TRCV_C用于接收机器人发送的数据,连接参数配置见图4。
图2 PLC与机器人通信程序主模块
图3 TSNED_C连接参数配置
图4 TRCV_C连接参数配置
经过分析对比和实践验证,工作站的总控PLC与机器人之间使用单网卡实现TCP通信时,程序设计复杂,协同性要求高,网络延迟高。使用双网卡进行TCP通信时,程序设计相对简单,系统稳定性显著提升,网络延迟低,满足了作业任务工艺要求。