PLC的实时测量技术在远程污水监控系统中的应用

嵌入式设计应用

130人已加入

描述

PLC的实时测量技术在远程污水监控系统中的应用

 随着计算机控制技术的不断发展,可编程控制器PLC(Programmable Logic Controller)的功能越来越强大,不仅具有各种各样的控制功能,还具有与其他计算机通信联网的功能。与之相应,PLC的应用也日益普及,不仅被广泛应用于传统的逻辑控制[1]、PID控制[2]和变频调速[3]等领域,还逐渐被用于数据采集、环境监控等领域。
 本文介绍的分布式远程污水监控系统采用分布式的构建方案,利用基于西门子PLC的实时测量技术对各污水排放点的排污流量、管道压力等参数进行采集、监测,以达到分散连接、集中监控的目的。西门子PLC的I/O接口多,兼具模拟量、数字量和串行通信这几类接口,扩展模块丰富;能工作于恶劣环境,故障率低、寿命长,非常适合在工业环境下使用。所以系统以西门子S7-200 PLC、传感器和智能检测仪表作为下层基本测量单元,将各个污水监控点的测量数据经过PLC初步处理后,按照自由口通信方式打包传送给基于ARM9的嵌入式数据采集模块进行汇总和存储,然后再通过以太网送给本地机上层应用软件进行显示。整个下层测量单元相当于一个结构灵活可变、功能多样的智能仪表子系统,PLC相当于这个子系统的通信接口。可以根据不同的测量需要对下层测量单元的硬件结构和测量功能进行适当改变,使整个系统具有很大的灵活性,稍作修改即可用于其他监控系统。
1 分布式系统结构
    系统的分布式结构示意图如图1所示。当系统启动或复位后,各排污点的下层测量单元开始定时采样、上传数据;嵌入式模块接收到PLC传来数据后,存入自身的数据库中并判断是否要触发报警设备,同时将数据定时传给上位机。这些实时监控数据最后均汇总到网络服务器上,从而使整个系统构成了分布式的监控结构体系,主管部门只要通过应用软件的人机交互界面就可在各自办公位置对排污点的各项指标数据有一个准确的了解,进而达到对分布区域广泛的各个排污点运行情况进行集中监控的目的。

实时测量


    嵌入式数据采集模块上的每个串口可连接多达253个不同速率和协议的设备,因此为了降低成本,将距离较近的排污点测量单元通过一个串口集中管理器后接在同一个嵌入式数据采集模块上。在PLC程序中设置好与上位机通信时所需的PLC站号后,嵌入式数据采集模块就可通过轮巡的检测方式接收各测量单元传来的数据。但是实际中同一嵌入式数据采集模块上所接的下层测量单元不应过多,因为这会造成轮巡一次的时间过长,影响报警的实时性。
2 PLC下层测量单元硬件设计
    根据实际情况只需对各排污点的管道压力、污水瞬时流量、污水总流量、红外线人体探头的开关状态和供电的开关状态进行监测。其中管道压力由水压传感器测量,其测量数据为4~20 mA的模拟量;红外线人体探头的开关状态和供电的开关状态由PLC测量,其测量数据为数字量;污水瞬时流量和总流量由基于HART协议的智能电磁流量计测量,其测量数据通过串行通信传送给PLC。由于PLC还要将处理后的数据传送给嵌入式数据采集模块,这需要占用一个串行通信口,所以系统选用带有2个RS-485串行通信口的西门子S7-200 224XP型PLC。根据西门子224XP PLC的硬件资源,基于PLC的下层基本测量单元硬件连接图如图2所示。

实时测量


    如图2所示,红外线人体探头和供电开关分别接到PLC的数字量输入口I0.0和I0.1上;水压传感器接在PLC上的模拟量输入口0(AIW0)上;PLC的通信口0通过屏蔽双绞线与嵌入式数据采集模块的RS-485接口相连;电磁流量计需要经过基于HART协议的调制解调器后才能接到PLC的串口上。系统中采用的调制解调器一端带有4~20 mA的模拟传输线路(如电话线)接口,一端带有RS-232接口,因此还需在调制解调器串口端再接一个RS-232转RS-485模块后才能接到PLC的通信口1上。HART协议是半双工协议,同一时间内调制解调器只能处于调制或解调的工作状态,所以需要通过PLC产生高低电平来进行控制,故将PLC的Q0.1口接到调制解调器的工作状态控制端上。当PLC输出高电平时,处于调制工作状态;当输出低电平时,处于解调工作状态。
3 PLC下层测量单元软件设计
 根据PLC在系统中的作用,PLC程序应具有定时采集数据并通过自由口通信方式发送到上位机、自动报警、自动向上位机发送保持连接信号等功能。另外还要能响应上位机的数据补调命令,返回相应数值;响应上位机的参数修改命令,修正PLC的系统时间等。
 整个PLC程序采用模块化设计,将完成某一功能的代码段编写为子程序,设置入口参数和出口参数,当需要完成这项功能时,只需设置合适的参数并在程序中直接调用即可。这样可缩短程序的长度,便于程序的修改和移植。整个PLC程序是由主程序、子程序和中断程序3部分组成,每个功能模块程序包含若干子程序和中断程序,下面分别介绍。
3.1 PLC主程序
 主程序主要是对自由口通信参数进行设置以及对程序中用到的各计数器和标志位寄存器进行复位,以免PLC断电重启之后产生未知错误。电磁流量计采用HART协议长帧结构命令,因此要先发送0#命令获得生产厂家的代码、设备型号码和设备识别码等总共38 bit的信息[4],用于填写其他长帧命令的地址。PLC每次重启后,在主程序中调用一次0#命令子程序,并将流量计返回的地址存储在固定的寄存器中。另外,PLC采集的压力模拟量是一个缓慢变化的过程量,为了避免测量误差,还需对压力采集量进行滤波;本文采用了平均值滤波法,每隔0.1 s触发平均值滤波中断程序对压力测量数据进行处理。主程序流程图如图3所示。

实时测量

3.2 PLC数据采样和报警部分程序
 该部分程序由3个子程序组成:CheckRealTimeData子程序、Ana_Alarm子程序和Dig_Alarm子程序。其中CheckRealTimeData子程序负责定时对数据进行采样、存储;Ana_Alarm和Dig_Alarm子程序在CheckRealTimeData子程序中调用,负责判断采集到的数据是否超过报警阈值。如果连续超过阈值的时间大于设定值,则置位报警标志位,使PLC自发地向嵌入式数据采集模块发送报警信息,触发报警设备;如果采样值恢复正常则将报警计时器清零,重新计时。Ana_Alarm子程序设定Adata、Uplevel和Lowlevel 3个入口参数,分别表示所测模拟量数据、数据上限和数据下限;Dig_Alarm子程序设定Ddata、Status 2个入口参数,分别表示所测数字量数据和报警状态值。调用子程序时设置好正确的参数就可完成PLC的报警功能,模拟量报警子程序和数字量报警子程序的流程图如图4所示。

实时测量

3.3 PLC数据存储部分程序
    PLC程序要有一定的数据存储功能,防止因通信错误而出现数据丢失的情况。因为224XP PLC的数据存储区仅为10 240 B,所以仅使PLC在每小时内的15 min、30 min、45 min和60 min时各保存一次数据,连续保存最近3天的数据。另外在电源掉电或内存丢失后,PLC的系统时间会被初始化,这会使数据保存时间与实际时间不符,因此在建立了嵌入式通信采集模块和PLC的通信联系后,需发送命令对PLC的系统时间进行设置。
3.4 PLC通信部分程序
 通信部分程序是整个PLC程序的核心。它包含4个中断程序(串行通信口0发送、接收完成中断和串行通信口1发送、接收完成中断)及6个子程序:(1)Precheck子程序,负责按照HART协议格式向电磁流量计发送0#命令,获得流量计地址;(2)PackandSend子程序,负责按照通信协议格式向嵌入式数据采集模块发送报警数据、巡检数据和补调数据3种不同的数据包,它有6个入口参数,分别为CW、Data1Address~Data5Address,表示返回数据的命令字和5个测量数据的寄存器地址;(3)KeepConnect子程序,负责定时发送保持连接信号,确保嵌入式模块和PLC通信正常,它有一个入口参数Time,表示定时时间;(4)CheckFlow子程序,负责按照HART协议命令格式向电磁流量计发送返回测量数据请求;(5)Port1CS子程序,在串行通信口1接收完成中断程序中调用,负责对流量计返回的数据进行异或检校,如果检校错误,则丢弃数据包,如果检校正确则进行解包分析,将返回的流量计地址或测量数据分别存储在不同的寄存器中,以便其他子程序也可调用;(6)Port0CS子程序,在串行通信口0接收完成中断程序中调用,负责对串口0接收的数据进行异或检校。
 因为HART协议是主/从式协议,故PLC与流量计进行通信时需先向流量计发送命令,才能获得相应的返回数据。系统中PLC向流量计发送的命令有两种:一种是要求流量计返回地址的0#命令,另一种是要求流量计返回测量数据的33#命令。0#命令在每次PLC重启时发送一次,33#命令定时成每隔6 s发送一次。发送前要先拉高Q0.1的电平,使调制解调器处于调制工作状态;发送完成后,触发端口1发送完成中断使Q0.1输出低电平,调制解调器工作在解调状态,接收来自流量计的数据。当接收完成后触发端口1接收完成中断,调用Port1CS子程序对接收到的数据包进行分析。串口1的通信程序流程图如图5所示。

实时测量

    PLC和嵌入式模块进行通信时,PLC相当于从站,嵌入式模块相当于主站。除了自发向嵌入式模块发送报警信息和连接保持信息外,一般都是接收到数据返回请求后,再向嵌入式模块发送数据。PLC接收完嵌入式模块发送来的数据后,触发端口0接收完成中断对数据包进行分析。如果是系统时间设置命令,则按照数据包里的时间设置值修改PLC的系统时间。如果是补调命令,则按照查询时间读取历史数据并存储到补调数据寄存器中,如果是巡检命令,则将实时采样数据存储到巡检数据寄存器中,然后调用PackandSend子程序,设置好寄存器地址即可按照上位机命令返回相应数据。PLC发送完成后触发端口0发送完成中断,将各标志位寄存器复位,为下一次通信做准备。串口0的通信程序流程图如图6所示。

实时测量

    本文以一种分布式污水远程监控系统为例,提出了一种以西门子PLC为核心的测量方法。实验证明,文中所述方案可以准确、可靠地测量恶劣环境下的现场数据。PLC的采用不仅增大了系统的稳定性,而且还可以很方便地根据实际需要适当地增加或改变监控对象,对系统功能进行扩展。由于PLC程序采用模块化设计,所以对系统进行简单修改后即可用于其他工业监控应用中。文中详细给出了下层基本测量模块的硬件和软件设计,以期为PLC用于测量、监控领域提供一些参考。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
qujian112 2012-11-23
0 回复 举报
RS232/485串口数据采集存储器--一款可以替代PC机的串口数据记录仪(SD卡存储)
     LCW-S03数据存储器是一种超大容量的数据存储设备。 不需要用户对现有设备进行改造实现数据实时存储,是一款可以替代PC机的串口数据记录仪。该产品已广泛使用于系统集成设备、自动化采集设备、高校、研究所重要实验装置“黑匣子”,是具有高度集成,高可靠性,低成本优势的数据存储产品。
收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分