1 引言
水位测控装置是水电厂的重要测控设备,水电厂的上下游水位是防汛安全的重要数据,拦污栅压差影响机组出力、水工建筑安全,水头值影响调速器协联曲线,进而影响机组效率甚至安全稳定运行,因此水位测控装置需满足长期稳定可靠运行。目前的水电厂水位测控装置普遍采用定制仪表采集前端水位传感器的格雷码值,换算栅差、水头等,输出开关信号报警,输出出4~20ma信号至监控、远动、调速器。在运行维护中存在以下问题:采用电缆长距离输送格雷码信号,防雷、抗干扰能力差,仪表、传感器易损坏;4个24位格雷码传感器需100芯电缆维护困难;定制的仪表扩展性差,输入、输出校准,参数整定操作复杂;价格高,备品备件采购困难。因此开发基于通用硬件设备的水位测控装置意义重大。
根据水电厂水位测控具体要求,我们自主设计了基于plc的水位测控系统,具有高可靠性、配置灵活、安装维护简单方便特点。
2 系统功能结构
水东水电站装设有上游、#1拦污栅后、#2拦污栅后、下游四个水位测量井,配置浮子式水位测量装置,采用绝对值光电编码器将水位信息转换成数字信号。坝上传感器距离中控室500m,下游传感器距离中控室30m,为提高系统的防雷、抗干扰能力,坝上传感器通信采用光纤传输。水位测控装置plc通过rs485串行口采集编码器水位数据,经过换算处理模拟量输出模块输出4~20ma的上游、下游海拔值信号至远动rtu装置,输出4~20ma的水头信号至机组调速器电气调节装置。计算机监控系统通过网络连接水位测控装置plc,采集所有水位信息,故障报警信号等,并可远程设置相关参数、定值,系统功能结构如图1所示。
图1 系统功能结构图
3 实现原理
3.1 浮子式水位测量装置
该装置安装在测井口上方,当液位变化时,浮子随之上升或下降,测绳带动线轮做旋转运动,与线轮同轴连接的多圈绝对值编码器就输出与液位对应的数字信号(见图2)。装置具有结构简单、合理,可靠性高、适应性强等优点,能够长期用于液位测量。
图2 浮子式水位测量装置
3.2 编码器
根据现场实际需求,编码器选用现场总线型输出的多圈绝对值编码器。
绝对值编码器由机械位置确定编码,每个编码唯一不重复,它不受停电、干扰的影响,无需记忆,无需找参考点,而且不用一直计数,什么时候需要知道位置,什么时候就去读取,这样,编码器的抗干扰特性、数据的可靠性大大提高了。多圈绝对值编码器另一个优点是由于测量范围大,实际使用往往富余较多,这样在安装调试时不必费劲找零点,将在测量范围内的某一中间位置作为起始点就可以了,从而大大简化了安装调试难度。
编码器信号输出主要有并行格雷码输出、串行ssi输出、总线型输出、模拟量4~20ma输出。并行格雷码和模拟量输出信号读取简单但不适合长距离传输,串行ssi输出大部分是与西门子plc的ssi模块配套成本较高。现场总线型编码器用通讯方式传输信号,信号遵循rs485的物理格式,连接线少,传输距离远,对于编码器的保护和可靠性就提高了。信号的接收设备只需一个接口,就可以读多个编码器信号,多个编码器集中控制的情况下可以大大节省成本。
3.3 水位测控装置plc
plc选用m340模块化plc,它是施耐德公司生产的性能价格比很高的可编程控制器,已广泛应用于工业控制的各个领域。cpu模块选用高性能、大内存的bmx p34 2020,带一个100m以太网、一个485串行口;输入、输出模块可根据现场实际需求灵活配置。
4 软件设计
4.1 编程步骤
plc的硬件配置、控制程序采用施奈德的编程软件包unity pro完成,pc通过网络或usb与m340 plc进行程序传送。首先进行plc硬件组态,含底版、电源、cpu、输入输出模块等。通过电源模块属性可查看电源使用情况,应保留一定余量,否则需更换容量更大的电源模块;在cpu模块的serialport口配置串行链路参数如:485 modbus主站、波特率9600、帧延时4ms、数据位8位、停止位1位、偶校验;创建网络链路ethernet1并配置ip地址等网络通信参数,将cpu模块的ethernet口链接到网络链路ethernet1;根据现场模拟量信号要求配置模拟量输出模块参数;定义相关变量等。
4.2 plc程序设计
(1)程序结构。程序采用模块化设计,具有较高可读性、可维护性其程序结构如图3所示。
图3 程序结构图
(2)程序注释。plc上电首次扫描执行初始化init()子程序,初始化通信参数,上、下游海拔预置值,各个传感器调零值,拦污栅压差整定值等。
传感器通信comm()子程序,分时读取传感器水位值,通信故障时水位保持原值。
计算calc()子程序,计算出上、下游,拦污栅后的实际海拔值,拦污栅压差、各机组有效水头等。
信号输出out()子程序,拦污栅压差过大报警、通信故障报警、装置故障报警、4~20ma模拟量输出等。
数据上送sent()子程序,根据监控上位机通信规约,组织上送数据信文,含各实际海拔值、有效水头、详细故障信息、拦污栅压差报警定值等。
4.3 水位信号读取
m340 plc和编码器串行rs485通信采用modbus rtu通信规约,这个通讯协议已广泛被国内外各行业作为系统集成的一种通用工业标准协议,有利于系统的维护和扩展。plc为主站,编码器为从站。
查编码器技术手册,水位测值的modbus地址是4x0000,根据modbus通信规约信息帧结构读取地址 1 传感器的水位测量值,应发送以下通信码:m340 plc读取水位信息主要用read_var功能模块:
01 03 0000 0001 840a
站地址 功能码 首地址 个数 crc校验码
功能模块说明[1]
adr
通信地址:语法为 addm (`r.m.c.node`机架号.模块号.通道号.站地址) 类型。
obj 要读取的对象类型
’%m’:内部位
’%mw’:内部字
’%s’:系统位
’%sw’:系统字
num 读取的第一个对象的索引。
nb 要读取的对象的数量。
recp输出参数包含所读取对象的值的字表。
gest交换管理表:4个字的数组。
表1 交换管理表
图4 read_var功能模块
图4中read_var功能模块实现将地址1传感器水位值送入%mw1,交换管理表置于%mw400:4,%mw401==0,说明通信成功,非零值记录故障代码。通信过程需占用一定时间,保证通信可靠,防止通信阻塞,4个传感器通信分时进行,用上升沿触发。读取交换管理表确认通信是否成功,通信失败应将故障代码上送上位机并报警,将水位值保持为上一次正确通信时读取的值。
4.4 上位机监控软件设计
上位机系统与plc之间通过以太网连接,水东电厂的计算机监控系统采用南瑞集团公司的nc2000系统。nari nc2000计算机监控系统是南瑞集团面向水利水电领域的新一代计算机监控系统软件[2]。nc2000具有良好的人机界面和网络功能,与施耐德plc网络通信采用tcp/ip modbus规约。在组态环境下,设计人员对plc进行驱动配置,运行环境以图形画面形式的人机界面监控水位信息、故障报警,对有关数据存储历史库,生成报表,同时利用web功能使系统具有在线监控功能,即在授权的情况下在任何一台联网的计算机上用标准的浏览器可远程监控。限于篇幅,上位机程序不再详述。