基于PLC的实时测量技术在远程污水监控系统中的应用
3.1 PLC主程序 3.2 PLC数据采样和报警部分程序 3.3 PLC数据存储部分程序 PLC和嵌入式模块进行通信时,PLC相当于从站,嵌入式模块相当于主站。除了自发向嵌入式模块发送报警信息和连接保持信息外,一般都是接收到数据返回请求后,再向嵌入式模块发送数据。PLC接收完嵌入式模块发送来的数据后,触发端口0接收完成中断对数据包进行分析。如果是系统时间设置命令,则按照数据包里的时间设置值修改PLC的系统时间。如果是补调命令,则按照查询时间读取历史数据并存储到补调数据寄存器中,如果是巡检命令,则将实时采样数据存储到巡检数据寄存器中,然后调用Packa
主程序主要是对自由口通信参数进行设置以及对程序中用到的各计数器和标志位寄存器进行复位,以免PLC断电重启之后产生未知错误。电磁流量计采用HART协议长帧结构命令,因此要先发送0#命令获得生产厂家的代码、设备型号码和设备识别码等总共38 bit的信息[4],用于填写其他长帧命令的地址。PLC每次重启后,在主程序中调用一次0#命令子程序,并将流量计返回的地址存储在固定的寄存器中。另外,PLC采集的压力模拟量是一个缓慢变化的过程量,为了避免测量误差,还需对压力采集量进行滤波;本文采用了平均值滤波法,每隔0.1 s触发平均值滤波中断程序对压力测量数据进行处理。主程序流程图如图3所示。
该部分程序由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所示。
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所示。
- 电子电度表设计方案(03-25)
- Acquired Data Solutions公司使用FlexMotion和LabVIEW为飞机组件测试建立无人测试站(06-14)
- 基于虚拟仪器的PLC监控系统设计 (10-07)
- 结晶器液位检测控制系统优化(11-13)
- 四网融合之PLC技术在智能电表中的应用(01-22)
- 智能电表设计方案、案例及方案对比(04-07)