基于焊丝生产线的数据采集推送软件技术的研究

(整期优先)网络出版时间:2019-09-19
/ 3

基于焊丝生产线的数据采集推送软件技术的研究

刘浩王宽儒李亚康

郑州高端装备与信息产业技术研究院有限公司河南郑州450000

摘要:基于焊丝生产线的数据采集推送软件技术在焊丝生产的智能化过程中占据重要地位。焊丝行业由于其工艺特殊性,需要采集多种多样的数据,使用的传感器类型也很多且协议统一性较差,通用的组态软件和数据采集软件无法达到用户需求。我们利用中间件技术、SOA架构开发了一套针对焊丝生产线的数据采集推送软件。利用此软件不仅可以采集焊丝生产线上的数据、还融合了焊丝生产工艺,对原始数据进行加工并主动推送,推送的数据适用于大多数的软件系统。此技术既保证了数据采集过程中的数据安全性,又通过主动推送提供给各种客户端安全稳定的数据源,对焊丝生产线的智能化改造提供了有力保障。

关键词:焊丝生产线;数据采集;智能化改造

引言:

目前,国内焊丝生产线的自动化设备较为完善,但智能化和数字化正在起步阶段。各种传感器、PLC、扫码枪、打码机等外设硬件设备都被频繁应用于焊丝生产行业,如何把这些硬件设备通过采集技术稳定高效的采集出来,并通过此技术高效的推发给各种客户端接口是一个非常关键的技术难点。

基于焊丝生产线的数据采集推送软件技术正是针对此技术难点进行的研究,它可以对焊丝生产从原材料到整个生产过程包括粗拉、精拉、镀铜、层绕、包装等的工艺参数、检验及设备状况等信息进行全方位自动智能采集、分析、处理和存储,并通过SOA思想,把加工后的数据整体推发出去,各种客户端(包括桌面程序、浏览器程序、手机APP等)可以根据其需求直接使用数据或对数据进行进一步加工处理。

1.整体设计

基于焊丝生产线的数据采集推送软件技术由硬件数据获取、协议解析、数据加工、数据存储、数据推送、数据回调、客户端服务端数据通信等方面组成。

1)硬件数据获取需要人机交互,软件接口需要对硬件的特性进行识别和分析,根据硬件要求对软硬件接口进行配置。

2)协议解析需要对获取的各种硬件通信数据进行数据解析,根据不同的协议解析出有效的数据。

3)数据加工需要对数据根据焊丝生产线特殊的工艺进行分析和处理。

4)数据存储需要对加工后的数据中需要保存的部分存储至数据库中。

5)数据推送需要对发送到客户端的数据进行处理、以某个特殊格式和协议发送出去,各种客户端只要与数据采集软件模块建立连接即可进行数据读取。

6)数据回调针对硬件控制和客户端管理,通过数据回调在客户端和服务端之间建立联系,客户端发送指令控制硬件设备,并对登录的客户端数量、时间、已经登录的日志进行数据获取管理。

2.软件架构体系

基于焊丝生产线的数据采集推送软件系统作为中间层,提供了易于访问、易于管理的方法,可以将多种应用服务封装部署于应用服务器,增强了应用程序可用性、安全性、封装复用性、可扩展性和可移置性,从而实现了高效、安全、稳定的企业级系统应用。

本设计中,将硬件数据获取、协议解析、数据加工、数据存储、数据推送、数据回调、客户端服务端数据通信进行模块化开发。硬件只与硬件数据获取、协议解析两个模块进行交互,客户端只与数据推送、数据回调、客户端服务端数据通信三个模块进行交互,数据库只与中间层进行数据交互,交互的模块利用提供的WCF服务接口。

软件系统的总体架构共分为六层,由外至内分别是:界面控制层、界面模型层、逻辑抽象层、数据接口层、中间件、数据实体层。分述如下:

1)界面控制层

界面控制层负责用户操作页面的调度,界面流程的控制。

2)界面模型层

界面模型层负责把从业务逻辑层得到的数据进行加工整理,从而得到需要的数据表示方式,使界面控制层能够得到合适的数据,并且数据能够支撑界面控制层的数据展示。

3)逻辑抽象层

逻辑抽象层完成硬件数据获取、协议解析、数据加工、数据存储、数据推送、数据回调、客户端服务端数据通信的模块化开发。逻辑抽象层是过程处理的核心,负责处理各模块功能的实现。

4)数据接口层

主要实现对中间件的调用。将存储在中间件中的数据提交给逻辑抽象层,同时将逻辑抽象层处理的数据传递给中间件。DAL接口层采用接口工厂模式,对BLL层屏蔽了不同系统的差异。

5)中间件

中间件层由WCF分布式远程服务组件承担,它负责所有与数据库交互的部分。中间件层同样分为BLL、DAL等,除了承担数据库交互的部分以外,也需要承担服务器端的逻辑功能。

6)数据实体层

数据实体层,在本系统主要是SQLServer2008数据库管理系统,同时他们集合了MSSql、OracleDB等接口,系统更加具有扩展性。

3.技术难点

3.1、多类型、大数据量信息采集技术

焊丝生产线分为盘条表面处理、粗拉生产线、精拉生产线、化学镀铜生产线、层绕生产线、包装等多个环节。每个环节都含有多个机组,每个机组含有多台不同设备,需要多个种类采集方法且每个种类需要多个采集终端,不可能每个采集终端都配备转发工控机,需要一种方法解决这种形式的数据采集问题。

解决这个技术问题主要运用了socket技术,它解决了一个服务器同时采集多个阅读器信息的技术难题,代替常规一个服务器采集一个阅读器的采集模式,实现低成本、高效率信息采集。

从最低级别交换机到MES服务器和客户端的通路之间都是遵循TCP/IP协议,我们在其中抽象出一组接口,即Socket,用它对数据进行处理,从而保证数据“一对多”特性。

Socket技术基于TCP/IP,TCP/IP(TransmissionControlProtocol/InternetProtocol)即传输控制协议/网间协议,是一个工业标准的协议集。

Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。

具体到实现方式,主要利用以下几种方法:

1)利用Socket技术实现一对多信息采集;

我们通过对Socket的运用,可以解决“一对多”信息采集技术的问题,在保证数据采集快速的同时,降低了成本。

服务器端先初始化Socket,然后与端口绑定,对端口进行监听,调用accept阻塞,等待客户端连接。在这时如果有个客户端初始化一个Socket,然后连接服务器,如果连接成功,这时客户端与服务器端的连接就建立了。客户端发送数据请求,服务器端接收请求并处理请求,然后把回应数据发送给客户端,客户端读取数据,最后关闭连接,一次交互结束。

2)利用Server方式实现指令类信息采集;

在传感器与数据采集模块中间设置服务端中转,数据采集模块通过TCP或HTTP连接服务端,并主动发送传感器指令,从而控制传感器动作,读取返回的传感器数据。由于传感器的指令多种多样,需要根据不同情况编写不同的指令。

3)利用数据库转发实现特殊传感器数据采集;

对于某些已经提供了数据库存储方法的硬件或者数据必须存储至数据库的传感器,可以直接把下位机数据存储至数据库,数据采集模块采集数据采取批量轮询存取数据库的方法。

为了避免频繁存取数据库,数据采集模块对接收到的下位机数据,应先放至缓存,然后开辟专门的线程进行数据存储的处理,当另一个线程从数据库中取数据时,先把数据存至缓存,当取得一定数量或者超时后,把取到的一组数据交给UI进行显示处理。

4)利用批量轮询下位机减轻数据采集模块读写压力。

下位机数据种类繁多,有需要实时监控的,有无需实时监控的,有只需要读的,有需要读写的。这些数据如果单次分类读取对采集模块压力极大,我们采取分组的方式来判断哪些数据是需要获取一两次的,哪些数据是需要频繁获取的,从而采用批量进行轮询数据采集,一次采集多种数据信息发送给多客户端,从而提高效率,优化性能。

3.2、数据信息的预处理、统一协议

系统采集多种采集终端的数据(包括扫码枪、打码机、PLC、机器设备输出端、智能电表、智能水表)等,不可避免的会有数据噪声的出现,这些错误信号对数据的后续处理会带来很大的影响,因此我们需要对数据进行预处理。

在传输过程中存在多种协议,例如:三菱、西门子、modbus协议、OPC协议、645协议、设备专用协议等。系统需要制定一个标准,对协议进行统一,便于后续的数据处理。

系统采用硬件和软件两种方式进行噪声处理,硬件采用屏蔽线、屏蔽仪等设备进行防噪处理。软件采用滤波方式进行数据预处理。

数据信息的传输过程包含多种协议,在设备与软件系统间包含多种协议、在局域网中使用TCP/IP协议,在客户端与服务器之间使用各种数据服务进行调用。

系统采用ModbusTCP为统一协议的主要标准,其他无法统一的协议通过中间件方法进行处理。最终使杂乱无章的协议种类基本得到统一,便于后续的数据获取和开发工作的进行。

3.3数据推送技术

厂商有对敏感数据主动推送的要求,以便能够实时监控生产过程中的相关情况。根据厂商对敏感数据保密的要求,系统采用中转方式进行数据交互,对数据进行推送。

3.3.1服务器推送技术

传统模式的系统以客户端发出请求、服务器端响应的方式工作,服务端不能主动发送请求给客户端。由于焊材生产线的数据采集量很大,如果采用传统的方式服务器必然会出现较大压力。我们必须采用一种新的方式来进行数据处理,即服务器推送技术。

“服务器推”技术在现实应用中已经有一些解决方案:大致思路是需要基于HTTP长连接进行数据传输。已经使用的“服务器推”技术大体可以分为:传统轮询、ajax轮询、comet长连接等多种方式。

厂商不仅要求数据采集模块的推送效果要准确、稳定,还要能够实时地从服务器将更新的信息传送到客户端,而无须客户端发出请求。传统的解决方案总会有一些弊端无法避免,例如HTTP连接的实时性效率较低等问题,我们需要寻找一种合适的技术解决此问题。

经过研究,我们的基于焊丝生产线的数据采集推送软件决定采用Socket技术为基础进行信息传送的方式来解决这个问题。

由于通常情况下稳定准确的网络传输方式首选TCP,而Socket连接就是TCP连接,因此Socket连接一旦建立,通信双方即可开始相互发送数据内容,直到双方连接断开。因此,需要服务器端主动向客户端推送数据的情况下,需要保持客户端与服务器数据的实时性与准确性,应该首先Socket技术为基础。

我们开发的数据采集模块还采用了SignalR技术进行服务端与web端的数据推送。

一般情况下,SignalR会使用JavaScript的长轮询的方式来实现客户端和服务器通信,SignalR也支持WebSockets通信。另外SignalR开发的程序不仅仅限制于宿主在IIS中,也可以宿主在任何应用程序,包括控制台,客户端程序和Windows服务等,另外还支持Mono,这意味着它可以实现跨平台部署在Linux环境下。

SignalR内部有两类对象:

Http持久连接对象:用来解决长时间连接的功能。还可以由客户端主动向服务器要求数据,而服务器端不需要实现太多细节。

Hub对象:用来解决实时信息交换的功能,服务端可以利用URL来注册一个或多个Hub,只要连接到这个Hub,就能与所有的客户端共享发送到服务器上的信息,同时服务端可以调用客户端的脚本。

SignalR将整个信息的交换封装起来,客户端和服务器都是使用JSON来沟通的,在服务端声明的所有Hub信息,都会生成JavaScript输出到客户端,.NET则依赖Proxy来生成代理对象,而Proxy的内部则是将JSON转换成对象。

3.3.2服务器推送技术具体实现方法:

基于焊丝生产线的数据采集推送软件首先建立一个进程程序,程序初始化时建立Socket,调用线程池做轮询,线程池中若有客户端提出连接请求时,赋值新的Socket,继续调用线程池做轮询,在读取数据库、web服务或其他接口信息后,用新的Socket发送信息至客户端。

系统通过Socket方法实现了读取多种不同接口,发送多种不同客户端的需求,并通过此程序作为中间件提高了保密性,达到了用户要求。

伪代码如下:

3.4实时数据监控技术

实时数据监控技术要求是分布式的,客户端与服务端分离的,且服务端要求安全性与稳定性都很强。

基于焊材生产线的数据采集推送软件本身是服务端程序,有自动重连、报警、数据存储等功能。其推送出去的数据,能够满足分布式架构的要求,不仅能够被C/S、B/S、手机等客户端采用,更能够被大数据等新型数据处理方法所使用。

实时数据包含多种类型,有过程数据、存储数据、图像数据等。

针对不同的数据采取不同的处理方法:

针对过程数据,例如:温度、液位、电机转速等数据信息,需要快速进行处理,不进行大量的数据分析计算。

针对存储数据,例如:报警信息、产量、重量、人员等数据信息,需要实时存入数据库,这些信息需要先分组并进入缓存,通过缓存存积一定量的数据后再存入数据库中。

针对图像、音频等大数据量数据,需要采用地址与文件分离的方式进行存储,系统通常调用的只是文件的索引,不是文件本身。

基于焊材生产线的数据采集推送软件技术通过数据分类、分布式架构、客户端数据推送等技术实现了实时监控的功能。

4.总结

基于焊材生产线的数据采集推送软件技术是根据焊材行业的实际需求量身打造的数据采集推送中间件技术。

此技术把硬件设备(各种传感器、PLC、扫码枪、打码机等外设硬件设备)通过采集技术稳定高效的采集出来,并通过此技术高效的推发给各种客户端接口(包括桌面程序、浏览器程序、手机APP等)。

基于焊丝生产线的数据采集推送软件技术在数据转发的过程中还对数据进行了加工,根据焊丝生产企业的工艺特点,对包括粗拉、精拉、镀铜、层绕、包装等部分的工艺参数、设备状况等信息进行了数据分析和处理。

基于焊丝生产线的数据采集推送软件技术针对焊丝行业生产线的实际特点,独特性的集数据采集、推送、分析、存储等于一体。是一种新型的适合焊丝行业生产线特点的中间件技术。目前,此技术已经在企业部署使用,这有利于提升国家高端装备制造业的信息化和智能化水平。