91学术服务平台

您好,欢迎来到91学术官网!站长邮箱:91xszz@sina.com

发布论文

论文咨询

基于Socket接口的污水厂自动化数据采集系统

  2023-08-25    108  上传者:管理员

摘要:介绍了PLC使用Socket接口将采集的工业自动化系统中的数据传送到服务器,数据经过编码解码、校验后提供给手机客户端、数字孪生、智慧水务等水处理信息化系统应用,这种方式可以更加灵活地将数据传送到指定服务器,以供各种信息化系统使用。

  • 关键词:
  • Socket
  • 信息化平台
  • 数据支持
  • 污水处理自动化
  • 编码解码
  • 加入收藏

随着我国工业化的进步,越来越多的污水处理厂需要在生产管理过程中借助各种信息化平台(如手机客户端、数字孪生、智慧水务)来调整生产运行工艺参数,分析生产过程中可能产生的不利影响、矛盾冲突,并对潜在运行风险给出预警。通过对生产运行中各种数据的高速采集,实现智能分析多层次指标,为生产决策提供科学的数据支持,辅助提高生产效率,降低运营成本,智慧水务系统的建设能为管网规划和完善提供数据支撑和技术指导[1]。

污水处理信息化系统一般以厂区工业自动化控制系统为基础建设,如果用OPC或者通用数据库转发中间件对工业自动化系统数据进行采集,必须购买第三方软件后进行二次开发,也不利于后期系统升级优化。而目前市面绝大多数主流PLC都支持Socket接口的编程,采用这种方式的编程不但能节省软件购买费用,而且数据传送更加灵活,支持的数据类型也更加多样。


1、系统架构设计


Socket又称套接字,可以理解为以太网网络中不同主机双向通信的端点(Point)的抽象表达,是支撑TCP/IP通信的基本单元。这种方式中网络中任何两个主机通讯都至少需要一对Socket,其中一个运行在客户端,称之为Socket Client,另一个运行在服务器端,称之为Socket Server[2]。在本系统中,PLC作为Socket Client,本次开发的数据采集软件(KSkt Svr)作为Socket Server。它们之间通信的连接流程分为KSkt Svr侦听-PLC发出请求-连接确认三步,如图1所示。

KSkt Svr作为Socket Server在侦听时并不定位任何具体的客户端套接字,而是处于等待连接的状态,实时监控网络指定端口的状态。PLC发出连接请求时,必须先指定KSkt Svr的Socket的地址和端口号,然后才可以向KSkt Svr提出连接请求。KSkt Svr软件在侦听到该PLC的连接请求时,为这个PLC创建一个新线程用以管理与该连接的通信,并把自己Socekt的相关信息发给PLC,PLC端确认这些信息与自己发出的请求相符后,双方确认连接建立后即可通过该连接进行数据交互,然后KSkt Svr继续侦听并等待其他PLC发出的连接请求。

常见PLC基于Socket接口的指令均支持TCP和UDP两种协议。UDP全称是用户数据报协议,它是一种无连接的协议。UDP虽然具有多播和广播功能,但因不能提供数据包分组、组装和不能对数据包进行排序的缺点,造成当PLC发出数据报文后是无法得知这些数据报文是否安全完整送达目标、是否被目标成功获取的;TCP协议全称是传输控制协议,因为它在通讯之前必须通过握手建立连接,属于一种面向连接的协议,相对UDP来说是一种可靠的传输层通信协议。

本系统中PLC与KSkt Svr通讯选用的协议是TCP,以提高污水处理相关数据监测的实时性和可靠性。TCP是基于字节流的传输层通信协议,它按照数据发送先后进行数据传送,KSkt Svr端设置一定的通讯数据缓冲区,当数据来不及处理则存放在缓冲区内以确保数据的完整性。本系统中KSkt Svr在通讯连接建立后就不再对PLC写入数据,只单向接收PLC发送的各种自动化控制系统的数据(如液位数值等)。


2、主要功能设计


2.1报文编码解码

本方案中报文数据帧的编码方式参考了Modbus TCP协议数据帧格式,Modbus TCP是基于TCP/IP协议的工控应用协议,采用主/从方式通信[3],本系统的通信场景与其类似。在PLC侧对需要传送的数据进行封装编码,编码格式如图2所示。在KSkt Svr端对这些数据解码后进行各种处理应用。报文中每一个数据帧包括2个字节的起始符、1个字节的报文长度、2个字节的站点编号、1个字节的本数据帧的数据类型、需要传送的数据字节(如进水液位等),每个数据帧最后两个字节存放数据字节部分的CRC校验(图2中字节6到字节n-2)。经过测试发现在互联网传送时数据帧字节总长度n小于511时均能保证传输的准确率,过大时则会出现丢包现象,在局域网内通讯时则没有这种现象。PLC侧在编码时需要考虑到这一点。

图2通讯数据帧格式   

图2所示报文数据帧中站点编号表示PLC的编号,采用2个字节主要考虑后续泵站、管网监测等终端数量较多的应用场景。数据帧中最重要的是字节5到字节n-2,这些字节存放的是传送给污水处理信息化系统应用的数据类型和数据。

数据类型0表示布尔型数据,用来传输自动化系统中各种离散数据如水泵的运行、停止、故障等。数据类型为0时每两个字节为一组数据,即图2中字节6和字节7表示一组数据,字节6存放设备状态的数据值,一个字节数据可以存放8个设备离散状态如8台水泵的运行信号,字节7对应存放这些设备状态数值的报警示值,解码时根据字节7的内容判断这些离散类型数据是正常应用还是需要标记应用。

数据类型1表示16位整型数据,用来传输自动化系统中各种整型数据如水泵本周运行次数等。数据类型为1时每3个字节为一组数据,即图2中字节6、7、8表示一组数据,其中字节6、7存放本周运行次数。字节8中不同的位表示这组数据不同的状态,第0位表示是否高限报警,第1位表示是否低限报警,在解码时根据这些位对数据进行标记应用。

数据类型2表示浮点型数据,用来传输自动化系统中各种浮点数据如进水液位等。数据类型为2时每5个字节为一组数据,即图2中字节6、7、8、9、10表示一组数据,字节6、7、8、9存放液位数据。字节10中不同的位表示这组数据不同的状态,第0位表示是否高限报警,第1位表示是否低限报警,在解码时根据这些位对数据进行标记应用。

同时预留其他数据编码类型,后续可以根据需要传送诸如64位整型、字符型数据。

2.2空闲超时

在本系统中,可能会存在某个PLC一定时间内不需要发送数据的情景或者因网络影响掉线的情景,这种情况下KSkt Svr无法快速地中断这些不用的连接,因此软件需要对每个连接成功的PLC设置一个Int16类型的空闲标记f Client Free Cnt,这个标记在连接空闲时周期计数。一旦接收到PLC发送的有效数据,则该标记置零。

当该标记超过设定的空闲超时限值时,表示这个连接不再发送数据,KSkt Svr将自动关闭这个连接线程,并将占用的资源释放。空闲超时可以确保服务器的连接资源可以循环利用。


3、软件设计


3.1 PLC

PLC采集的数据在通过Socket Server接口发送时,不同的品牌的PLC,甚至同一品牌不同型号的PLC指令都不同,比如西门子S7-200 SMART的相关指令如图3所示。各PLC厂商都会发布相关指令的详细使用手册或者例子程序,可以通过阅读这些手册获得PLC端编程的方法,本文不再进行详细描述。

3.2服务器端软件

服务器端的KSkt Svr软件使用VS2019基于框架架构.Net Framework 4.7.2开发,编程语言为VB。

根据前文所述,KSkt Svr作为通信的Socket Server,必须在运行时就创建一个侦听线程,用以等待处理PLC的连接请求。

然后需要在这个侦听线程定义一个Socket对象实时侦听通讯端口,一旦有新的PLC连接请求进入立即接受该请求并交给其他线程进行通讯相关事务处理,然后服务器继续侦听等待其他PLC的连接请求,这部分的核心代码如下所示:

以上代码中需要特别注意线程锁的作用。在多线程中为了保持数据的一致性,避免.Net中两个以上线程同时访问一个相同的对象会出现竞态条件,多线程在访问共享对象时必须加锁以保持数据的同步。VB语言中提供了Sync Lock语句,它确保一次只有一个线程可以访问或改变共享对象的状态,其原理是Sync Lock语句确保任一线程访问共享对象时会阻止其他线程进入语句块,直到正在执行的线程结束后方允许新的线程执行,避免多个线程同时访问相同的对象。这样就可以保证系统同时运行多个线程时,相互之间互不干扰,为实现多任务同步提供了技术支持[4]。如图4所示:在软件UI中设置一个显示当前所有连接的PLC的状态区域,包括其名称(Rtu Name)、空闲时间(WDog)以及IP地址等相关信息,用以诊断管理PLC的连接信息;同时设置几个诊断区域,分别显示接收到的数据处理情况,比如传送给其他应用的状态等等。


4、结束语


基于Socket接口的污水厂自动化数据采集系统设计和实现,是一种扩展污水处理信息化的应用范围的高性价比数据采集方案。随着数字孪生、智慧水厂等各种信息化系统的应用,有助于污水处理实现自动化控制的目标由代替人的体力向代替人的部分脑力劳动转变,逐步实现自动化控制向智能化控制的升级。目前该系统已经为某污水厂手机监控端提供数据支撑一年多,其运行稳定可靠,占用服务器资源也非常少。经过多项测试可以实现大批量的高频率数据传送,完全能满足污水处理厂的各种信息化系统应用的数据需求。


参考文献:

[1]张施晗.智慧水务在市政污水管网中的应用[J].工程技术研究,2021,6(10):202-203

[2]陈峰,孟宇,杨至诚.基于Socket方式实现不同品牌PLC之间的通信[J].化工自动化及仪表,2020,47(1):16-20

[3]崔靖元,魏春光,曾洁.基于Modbus TCP协议的地铁虚拟操纵台系统设计[J].自动化与仪表,2021,36(10):24-27,37

[4]吴晓华,梁哲,刘同来.基于C#的多线程P2P即时通讯系统[J].电脑知识与技术,2021,17(36):75-78

文章来源:李小凯,杨勇.基于Socket接口的污水厂自动化数据采集系统[J].工业控制计算机,2023,36(08):31-32+35.

分享:

91学术论文范文

相关论文

推荐期刊

网友评论

加载更多

我要评论

工业控制计算机

期刊名称:工业控制计算机

期刊人气:2131

期刊详情

主管单位:江苏省科学技术厅

主办单位:中国计算机学会工业控制计算机专业委员会,江苏省计算技术研究所

出版地方:江苏

专业分类:计算机

国际刊号:1001-182X

国内刊号:32-1764/TP

邮发代号:28-60

创刊时间:1988年

发行周期:月刊

期刊开本:大16开

见刊时间:4-6个月

论文导航

查看更多

相关期刊

热门论文

【91学术】(www.91xueshu.com)属于综合性学术交流平台,信息来自源互联网共享,如有版权协议请告知删除,ICP备案:冀ICP备19018493号

微信咨询

返回顶部

发布论文

上传文件

发布论文

上传文件

发布论文

您的论文已提交,我们会尽快联系您,请耐心等待!

知 道 了

登录

点击换一张
点击换一张
已经有账号?立即登录
已经有账号?立即登录

找回密码

找回密码

你的密码已发送到您的邮箱,请查看!

确 定