数控折弯机S7-1500 PLC 与VT19数控系统TCP 通讯实现
2023-11-22刘玉兵王东明胡建文
刘玉兵,王东明,胡建文
(天水锻压机床(集团)有限公司,甘肃 天水 741020)
0 引言
随着数字经济、工业互联网、智能制造等技术赋能传统制造业转型升级,用户对新建项目设备自动化、信息化、智能化提出了更高要求,市场倒逼装备制造企业提供的新设备具有网络化、信息化通讯功能。为用户提供的设备,首先需要与上下游设备,基础自动化之间进行网络连接与通讯,其次需要与车间级MES 系统进行网络连接与通讯,提供现场级基础数据。本文论述了基于西门子S7-1500 PLC 与折弯机专用数控系统VT19 实现TCP 通讯的原理、数据结构与定义及具体实现方法。
1 数控吊臂折弯机自动控制系统
汽车悬臂吊车行业,由于汽车悬臂吊车生产向大型和重型化方向发展,对大吨位悬臂吊关键受力构件起重臂要求高,材料选用不仅要求有良好的综合力学性能,还要有良好的工艺性能,如弯曲性、焊接性、切削加工性等[1]。数控吊臂折弯机实现的功能为,通过Y1,Y2电液比例轴控制滑块同步与定位;控制前、后送料X1-X4伺服电机轴定位,每一个轴需要升降控制;控制27 个挠度补偿伺服轴;需要与车间MES 系统进行通讯。
该系统以S7-1500 PLC 为主控系统,VT19 数控系统完成工件编程、Y1,Y2电液比例轴控制、工步自动计算,将4 个X 轴目标值数据,通过TCP 通讯传输到S7-1500 中,由S7-1500 完成X 轴运动定位与辅助控制、挠度补偿控制、以及其它辅助液压系统控制。由S7-1500 集成所有数据,统一与车间MES 系统实现通讯。其网络架构是将S7-1500 PLC、VT19 数控系统、MES 系统作为网络节点,该系统主要以太网交换机组成局域网,交换机将首先接收某一节点发来的数据再将数据转发到另一个节点,通信节点只同交换机作数据交换而相互之间不直接进行数据通信,交换机在网络之间只起到互连作用[2]。如图1 所示。
图1 数控吊臂折弯机控制系统及网络架构框图
2 S7-1500 与VT19 客户端与服务器端规划
(1)折弯机专用数控系统。VT19 数控系统是瑞士Cybelec 公司研发的折弯机专用数控系统,可实现对折弯机滑块主油缸电液比例控制。数控系统+比例放大器+比例方向阀+油缸+滑块位置检测传感器组成滑块电液比例闭环位置控制系统。同时采用比例压力阀,控制液压系统压力。VT19 数控系统中增加了Visitouch 工业4.0 插件,通过Cybelec 标准硬件接口,从VT19 数控系统中采集实时数据、并生成数据信息[3]。天水锻压生产的数控吊臂折弯机控制有信息化特殊要求,Cybelec 公司专门将X1-X4伺服轴目标位置数据,通过TCP 协议,以及当前产品号(折弯工件号)、折弯工步号、材质等信息传输到S7-1500中,由S7-1500 完成控制与数据管理,并打包传输到车间级MES 系统。
(2)S7-1500 以太网通讯协议。TCP 传输控制协议(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在S7-1500 开放式用户通讯中,TCP 通讯协议是应用较为广泛的一种协议形式。S7-1500 集成的内部指令通过数据分片、到达确认、超时重发、失序处理、数据校验、流控等技术手段,保证数据能在客户端和服务器端可靠传输,这些功能S7-1500 已经封装到了TCP协议的通讯功能块算法中[4]。其通讯块程序块分别是“建立连接并发送数据”块(TSEND_C)、和“建立连接并接收数据”块(TRCV_C)。发送和接受数据块为“非优化的块访问”,系统自动记录偏移量、方便绝对寻址,其中发送和接受数据块为“数组数据类型”,即“Array[0..n] of Byte”数据类型。
(3)服务器端与客户端的规划。该系统将VT19作为TCP 协议的服务器端,S7-1500 为TCP 协议的客户端。S7-1500 通过客户端端口主动建立连接并向VT19 服务器端发送请求数据,VT19 在其服务器端口接收来自客户端的访问,VT19 根据访问请求内容回复相应的数据[5]。VT19 服务器使用的IP 地址和端口号Port 由VT19 参数定义。S7-1500 客户端使用的IP 地址和端口号Port 由S7-1500 参数定义。
3 通讯数据结构定义与通讯流程
S7-1500 与通讯伙伴VT19 之间数据结构如表1所示。
表1 通讯数据结构
表2 通讯ID定义
通讯流程图如图2 所示。
图2 S7-1500 与VT19 通讯流程图
4 TCP 通讯的实现
4.1 在S7-1500 中定义发送和接受全局数据块
在S7-1500 中打开组织块main(OB1),从右侧指令中分别拖拽TSEND_C 和TRCV_C 两个指令到程序段中,在其“连接资源”下拉中直接单击新建,自动生成“PLC_1_Receive_DB”数据块[5]。定义一个全局数据块DB244,作为发送请求数据块,在DB244 块内的结构体变量Static 内部分别定义X1至X4轴位置以及折弯参数等5 组数组,类型变量Array[0-271] ofByte,储存发送给VT19 的请求数据。如图3 所示。
图3 数据发送块[DB244]内X1 轴请求数据结构图
定义一个全局数据块DB245,作为接受VT19 响应的数据块,接受VT19 应答X1-X4轴编程目标值数据。如图4 所示。
图4 接受数据块[DB245]内接受的X1 轴实时数据
定义一个全局数据块DB255,作为TCP 通讯接受数据块,接受VT19 应答的折弯参数与X1-X4轴编程目标值数据。如图5 所示。
图5 [DB255]接受VT19 应答的折弯参数与X1 轴实时数据图
4.2 S7-1500 客户端通讯配置
在OB1 组织块中创建TCP 通讯的数据发送指令TSEND_C 和接收指令TRCV_C,点击调用指令右上角的组态图标,进行通讯连接参数组态。在PLC 侧选择主动连接,本地端口号默认。伙伴端口设为5000,为VT19 设置端口。如图6、7 所示。
图6 OB1 中通讯模块调用图
4.3 VT19 服务器端通讯配置与测试
在VT19 数控系统参数设置页面设定IP 地址和通讯端口Port 号,设置完成后需要重启系统。在VT19中运行通讯测试程序“Industry_4_0_1000_Simu”,设置数控系统的IP 地址和端口Port 号后,点击Connect 按钮,在右侧的消息框中显示连接成功的提示。如图8 所示。
图8 TCP 通讯连接实时测试图
以读取X1轴的目标位置数据为例,在图9 左上方下拉菜单“3”选择“Requestrian Axis Data”(轴数据请求)。图中“X1”是轴号,通过TCP 通讯时“X1”的数据类型为字符串,需先将“X1”字符串转换成ASCII码,再将ASCII 转换成十六进制数。字符串“X”转换成ASCII 为“58”,字符串“1”转换成ASCII 为“31”,再将转换所得的ASCII 转换为十六进制数为“5831”就是S7-1500 需要发送至VT19 的X1轴的轴名称。测试显示读取的X1轴目标值数据是199392,其HEX 格式是30AE0,接受到的数据格式为0X1 0X0 0X0 0XE0 0XA 0X3 0X00。
图9 X 轴数据实时测试图
4.4 多通讯模块分时通讯方法
在S7-1500 系统中,由于发送和接受通讯块不能同时被激活、多组发送或多组接受块不能同时被激活,需要分别发送和读取X1-X4轴的数据,程序中在同一扫描周期只能调用一个发送或一个接受通讯块。其编程方法是使用轮流方法进行通讯,即在第一个通讯周期,将X1轴发送块激活(REQ 端、CONT端),待数据发送(DATA)完成后,由X1轴的数据发送完成标志位(DONE)激活X1轴的数据接收块,数据接收完成后,用X1轴接收结束标志位(DONE)启动X2轴的发送请求,同时复位自身通讯连接(CONT端)。依次循环,分别完成X1轴-X4轴的发送与接收数据的过程。如图10、11 所示。
图10 多通讯模块分时通讯时序图
图11 多模块分时通讯实时时序效果图
5 结束语
通过数控吊臂折弯机三台套设备在用户现场两年多的使用证明,其通讯正常、可靠。采用S7-1500与VT19 数控系统进行TCP通讯,一方面满足了S7-1500 对VT19 数控系统提供X1-X4轴控制数据的要求,另一方面满足了S7-1500 为用户MES 系统提供所需要基础数据包的要求。