基于 Laravel 与Workerman的不锈钢数据采集与过程控制系统

2024-04-06 13:05汤日升张前进
电脑知识与技术 2024年3期
关键词:过程控制数据采集不锈钢

汤日升 张前进

关键词:Laravel;Workerman;过程控制;数据采集;不锈钢

中图分类号:TP311.1 文献标识码:A

文章编号:1009-3044(2024)03-0103-04

0 引言

随着“十四五”智能制造发展规划和信息化和工业化深度融合发展规划的贯彻实施,传统制造业的工业互联网平台体系构建不断加快,数字化转型意识不断提高。在实际信息化建设中,许多成熟商用软件和通讯协议存在授权费用较高和效果未达到预期等问题,如何降低生产线信息化建设成本受到广泛关注[1]。

“数据采集与过程控制系统”位于国内冶金企业多级计算机系统的第二级,也被俗称为“二级系统”[2]。该类系统主要功能为数据采集和局部生产作业管控,解决第一级设备控制系统和第三层制造执行系统(Manufacturing Execution System, MES) 数据不互通的问题,实现产品质量跟踪,提高生产管控和生产效率。

本文针对不锈钢整卷磨生产线,提出一种基于PHP (PHP: Hypertext Preprocessor) 编程语言的数据采集与过程控制系统,下文均写作“本文系统”。本文系统充分发挥 Laravel 框架和 Workerman 应用容器等开源技术优势,实现了数据互联互通,有效降低了不锈钢整卷磨生产线的信息化建设的成本,具有一定的迁移价值和借鉴意义。

1 系统总体设计

1.1 设计思路

本文系统采用前后端分离的网页与服务器结构,节省了维护客户端的成本,分为四个模块进行设计,分别为业务功能、通讯、前端和数据采集模块,模块之间相互独立,系统的耦合度较低。

前端模块是用户与系统的交互界面。业务功能模块是系统的主体,包含报文的解析和封装、响应前端数据请求等业务功能。数据采集模块负责可编程逻辑控制器(Programmable Logic Controller, PLC)的数据采集和存储。通讯模块负责建立和维持数据链路,选取 PLC 支持的通讯协议搭建系统与 PLC 的通讯,依据 MES 的通讯协议构建系统与 MES 的通讯。

1.2 系统架构设计

本文系统硬件主要包含一台戴尔 T340 塔式服务器和一台工控机,通讯依托光纤局域网。数据采集与过程控制系统服务器承载本文系统的软件程序主体。工控机是用户操作本文系统的实体终端,负责采集和存储生产实绩数据,部署有 KEPServerEX 工业连接平台。

实际生产中,本文系统接收 MES 下发的生产计划报文,解析报文中的不锈钢卷号和生产工艺等参数,在用户选择计划开始生产后,参数写入 PLC 数据块,用户也可以在人机界面(Human Machine Interface,HMI) 中修改参数。生产结束后,生产实绩数据上传服务器,新的参数写入 PLC 数据块,开始生产。图1 为系统网络架构图。

本文系统使用 MySQL 数据库进行数据存储,基于 Laravel 框架的业务功能模块、基于 Workerman 应用容器的通讯模块、基于 Vue-element-admin 框架的前端模块和基于KEPServerEX 工业连接平台的数据采集模块相互独立部署,图2为系统功能设计图。

1.3 开发与生产环境

本文系统在 Windows 平台进行开发,使用 Php?Study 进行集成环境的配置和管理,使用 Git 进行开发版本的控制。服务器的生产环境为基于 Linux 的Ubuntu 系统,搭载了高性能的HTTP和反向代理网络服务器Nginx。工控机的生产环境为 Windows 系统,搭载 Siemens TIA Portal 软件和 KEPServerEX 工业连接平台。生产线的 PLC 型号是西门子S7 15系列。

2 系统模块设计

2.1 业务功能模块设计

Laravel 框架是世界知名度较高的开源框架之一,应用于不锈钢整卷磨生产线的主要优点是其成熟的案例模板和庞大的社区支持可快速解决编程问题,有效提高开发效率,节省开发成本[3-4]。

业务功能模块在 Laravel 框架的基础模型-视图- 控制(Model-View-Controller, MVC) 架构中,添加了服务层(Service) 。服务层位于控制器和模型层中间,所有业务逻辑都封装到相应服务层中,由控制器调用。该设计基于 Slim Model 理念,模型层只负责业务数据的表达,服务层的添加增强了模型层的细粒度,方便了后期本文系统的维护和升级。图3为业务功能模块接收请求流程图。

在不锈钢整卷磨生产线中,需要进行不间断生产。不间断生产是一种生产模式,生产过程中将后一卷钢卷的头部人工焊接到前一卷钢卷的尾部,生产结束时进行裁切。不间断生产的目的是节省重新穿钢卷的时间,提高生产效率。在数据层面,某一时刻的生产线中存在两条计划数据,分别为开卷台和收卷台的计划数据,使用收卷台电机编码器的转速和钢卷厚度换算生产的长度,以此进行生产跟踪。收卷台计划生产结束的标志是钢卷裁剪成功,该标志触发时,收卷台的数据上传,开卷台的数据写入收卷台,计划缓存区的数据写入开卷台。

在不锈钢整卷磨生产线中,需要按照计划对钢卷进行裁剪分卷。裁剪分卷需要修改钢卷的特征标识,在数据层面需要把原计划分解成多条独立计划连续下发,当第一条分卷计划开始生产时,后续分卷计划写入计划缓存区,等待裁剪成功信号。圖4为计划管理服务开卷流程图。

2.2 通讯模块设计

通讯模块基于多进程的开源 PHP 应用容器Workerman 进行开发,包含服务端和客户端,其运行均不依赖 Nginx 服务器,进程常驻后台。通讯模块与MES 服务器通过建立 Socket 长连接方式进行报文通讯,与 PLC 通过 Modbus TCP 协议进行通讯。

Workerman 基于 Master-Worker 模型架构,主要包含 Master 和 Worker 两种进程。Master 进程是主进程,只负责监控子进程,不负责接收数据也不做任何业务逻辑。监控子进程包括监控 Worker 子进程的退出、监控服务器的停止和平滑重启等。Worker 进程是 Master 进程派生的子进程,继承了父进程的监听端口,可以实现业务处理,每个Worker 进程相互独立。为了防止进程的意外关闭,安装了 Supervisor 实现自动重启队列进程,Supervisor 是 Linux 系统中常用的进程守护程序。

服务端的设计在 Master-Worker 模型基础上加入了 Gateway 进程,为Master-Worker-Gatewa 模型,主要包含三种进程,分别为 Gateway、Register 和 Busi?nessWorker。表1为进程功能明细表。

上述三类进程均受 Master 进程监控,关系如图5 模型进程关系图所示。当 MES 发起长连接时,Gate?way 进程监听到端口信息并将信息传递给 Business?Worker 进程,BusinessWorker 进程调用业务逻辑函数进行业务处理。此外,针对常驻内存的进程在使用MySQL 数据库时经常会遇到“ mysql gone away ”错误的问题,本项目使用 WorkermanMySQL 类保持连接的稳定性,避免 MySQL 数据库服务端中断静置时间过长的连接[5]。

客户端与服务端相比,主要区别为客户端中Worker 进程启动时,需要先借助AsyncTcpConnection 类异步建立一个到 MES 的连接对象,主动发送数据发起连接。客户端的建立基于 Worker 进程,Worker 进程启动时,异步连接到 MES 的IP 地址及端口,创建一个 TcpConnection 连接。

在本文系統与 MES 通讯中,本文系统是客户端也是服务端,建立基于 Socket 的双线长连接通讯链路,提高数据收发的效率。通讯逻辑由心跳报文、数据报文和自动应答报文三者构成。心跳报文由客户端向服务端周期性发送,用于周期性检测过程控制级系统与 MES 间的长连接通信状态。数据报文由客户端向服务端发送,包含数据内容。服务端收到数据报文后,自动应答报文由服务端向客户端原路发送,作用是告知客户端数据报文是否被成功接收和内容是否有效。服务端可以根据心跳报文的接收与否判断连接状态,客户端可以根据数据报文发送后自动应答报文的接收情况判断连接状态。

本文系统共协定九条数据报文。六条发送报文分别为:生产开始报文、计划删除报文、产出实绩报文、停机实绩报文、工艺实绩报文和操作应答报文。三条接收报文分别为:计划信息报文、计划撤销报文和操作应答报文。其中,自动应答报文回应的是接收信息成功与否,操作应答报文回应的是接收信息后处理信息的操作成功与否。

在本文系统与 PLC 通讯中,本文系统只作为服务端。使用 Siemens TIA Portal 软件对 PLC 进行编程,调用 TSEND_C 模块建立客户端发送数据。PLC 发送数据的格式与计算机中的存储格式不同,十六位数据需要进行高八位和低八位对调循环读取。

2.3 前端模块设计

前端模块使用Vue-element-admin 前端框架。该模块为基于 Vue 系列技术和 Element-UI 开源库的单页面架构。Vue 是目前生产环境中使用最广泛的 Ja?vaScript 框架之一,Element-UI 是一个桌面端用户界面(User Interface, UI) 库。图6为前端模块界面组件架构图。

工艺实绩数据的显示存在数据量巨大的困难,本系统使用 ECharts 组件的异步请求加载、降采样渲染和分段渲染进行解决。在不锈钢整卷磨生产线中,一卷钢卷生产时间可长达六小时,一个参数的完整生产周期数据达到十万级别。前端模块进行异步请求加载数据,结合 ECharts 组件的大数据加载方式 Ap?pendData 进行分片加载数据,使用散点图方式渲染,禁用动画效果,开启 Sampling 降采样渲染模式,更改Datazoom 的 startValue 和 endValue,进行分段渲染。图7为实绩显示效果图。

数据报表的导出使用 SheetJS 组件,其优点是可以直接把 JSON 数据写入 Excel 表格,方便快捷。

2.4 数据采集模块设计

数据采集模块借助 KEPServerEX 工业连接平台进行实现。在 KEPServerEX平台中,使用 Siemens TCP/IP Ethernet 协议与西门子 S7 系列 PLC 建立连接,使用开放数据库互连(Open Database Connectivity, ODBC) 协议与数据库建立连接。

在不锈钢整卷磨生产线中,使用了KEPServerEX 平台的数据采集与数据映射功能。前者每间隔 250 毫秒采集PLC 数据直接写入 MySQL 的数据表,后者分别把 PLC 中的数据与MySQL 中的数据建立标签,通过标签进行数据映射,实现数据源的数据变动时对应的标签数据实时变动的效果。在数据库设置读取表与写入表进行数据交互。图8为数据映射原理图。

3 测试与应用

本文系统的测试使用了 Wireshark 软件监听报文信息,使用了 Apifox 软件管理接口文档和调试服务器请求接口。测试后响应用户需求,把部分登录账号的令牌(Token) 有效时限延长到一周,避免了生产中烦琐的登录行为。

本文系统实际运行界面如图9系统实际运行图所示,已成功于广东省某不锈钢整卷磨生产线试运行三个月。运行结果表明,本文系统稳定性较高,能以较低成本有效解决质量跟踪与局部生产管控问题,提高生产效率,该系统方案是一种有效的信息化建设方案。

4 结束语

本文提出了一种应用于不锈钢整卷磨生产线的数据采集与过程控制系统,并以总分结构对系统的主要设计进行了阐述。详细阐述了基于Laravel 框架的业务功能模块设计和基于 Workerman 应用容器的通讯模块设计,简单阐述了基于 Vue-element-admin 框架的前端模块设计和基于KEPServerEX 工业连接平台的数据采集模块设计。

本文系统能有效解决不锈钢整卷磨生产线的工业信息化建设成本较高的问题,解决质量跟踪与局部生产管控问题,提高生产效率和信息化程度,可推广应用于相似生产线,具有一定工程迁移价值和借鉴意义。后续的研究方向是使用开源协议编程升级数据采集模块,避免 KEPServerEX 工业连接平台的费用支出,进一步降低工业信息化建设成本。

【通联编辑:梁书】

猜你喜欢
过程控制数据采集不锈钢
80t不锈钢GOR底吹转炉工艺设备改造
你知道不锈钢中“304”的含义吗
不锈钢微钻削的切屑形成与仿真分析
基于广播模式的数据实时采集与处理系统
通用Web表单数据采集系统的设计与实现
基于开源系统的综合业务数据采集系统的开发研究
互联网+背景下数学试验课程的探究式教学改革
创新管理,完成鞍钢自主集成的冷轧2130工程生产线
OCr18Ni9不锈钢的微小孔钻削