水位测控装置是水电厂的重要测控设备,水电厂的上下游水位是防汛的重要数据,拦污栅压差影响机组出力、水工建筑,水头值影响调速器协联曲线,进而影响机组效率甚至稳定运行,因此水位测控装置需满足长期稳定可靠运行。目前的水电厂水位测控装置普遍采用定制仪表采集前端水位传感器的格雷码值,换算栅差、水头等,输出开关信号报警,输出出4~20ma信号至监控、远动、调速器。在运行维护中存在以下问题:采用电缆长距离输送格雷码信号,防雷、抗干扰能力差,仪表、传感器易损坏;4个24位格雷码传感器需100芯电缆维护困难;定制的仪表扩展性差,输入、输出校准,参数整定操作复杂;价格高,备品备件采购困难。因此开发基于通用硬件设备的水位测控装置意义重大。
根据水电厂水位测控具体要求,我们自主设计了基于plc的水位测控系统,具有高可靠性、配置灵活、安装维护简单方便特点。
联系人:吴巧燕
电话:0592-5085207
手机:18030132585
QQ:2851195467
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功能使系统具有在线监控功能,即在授权的情况下在任何一台联网的计算机上用标准的浏览器可远程监控。限于篇幅,上位机程序不再详述。
5 结束语
系统的设计结构合理,采用多圈值编码器采集水位,以可编程控制器为控制核心,提高了系统的自动化程度,保证了系统运行的可靠性;硬件、软件模块化设计具有良好的扩展性和灵活性,可根据现场实际需求更改系统的配置规模。该系统在福建水东电站现场运行表明工作稳定,在监视报警、综合计算、信号输出等各方面满足电站的运行要求,取得了很好的效果,有较高的推广价值。
Siemens P4A221AA0ZC09
Siemens 6FX2007-1AC04
KEBA HT401-232-4/0
BIZERBA 10370777
Siemens 6ES5390-0UA11
Siemens 6FC5203-0AC00-0AA2
Siemens 6FC5203-0AD10-0AA0
Siemens 6FC5203-0AB20-0AA1
Siemens 6AV6542-0CC10-0AX0
Flatman FB170SBOED0SG
Lauer LCA200.102.1
Lauer LCA200.202.2
Jakob MMD-A1-717
Beijer 0809-013
Siemens 6FC5303-1AF02-1AK0
Danfoss 17520401
Lenze 00417192
Weber DIALOG165V
Siemens 6AV6642-0AA11-0AX0
Yaskawa JZNC-XPP02B
B&R 5PP320-0571-39
Siemens 6AV3637-1LL00-0BX0
Siemens 6FM2805-4AS31
Siemens 6AV3637-1LL00-0BX0
Telemecanique XBTGT6330
FANUC A05B-2301-C305
ABB 3HNE00026
SIEMENS 6FC5203-0AD10-1AA0
B+R 5AP920.1505-01
Siemens 6FC5203-0AB20-1AA0
ABB 3HNE00313-1
Siemens 6AV5020-1AC11-1AA0
ADM LCD10L-CACS-REIS
LCD PG320240WRTMNNI10Q
Atlas Copco 1900071103
Siemens 6FC5203-0AC00-0AA0
Siemens 6FC5203-0AD10-0AA0
Siemens 6FC5203-0AD10-0AA0
Siemens 6FC5303-1AF02-0AK0
SAIA 09911701
SAE MT-50-RS-232
Siemens 6ES5336-0AB11
ABB 3HNE003131
Carl 608426-9930
MSC 6367074-1
Bosch 1070920627-102
Siemens 3RX9401-0AA00
Siemens 6SE6400-0BP00-0AA0
Siemens 6ES7272-0AA20-0YA0
Siemens 6AV6545-0BB15-2AX0
Bedienfeld ZBE-701
Siemens TASC300
Siemens G34924-J2000
Siemens 6FC5203-0AC00-0AA2
Siemens 6FC5203-0AB20-0AA1
KUKA 69-000-398
Siemens 6FM1496-1BB22
Siemens TXM1.8U-ML
Siemens 6AV3627-1LK00-1AX0
Siemens 6AV6542-0CA10-0AX0
KUKA 69-000-398
Siemens 6AV6542-0CC10-0AX0
Siemens 6AV3627-1JK00-0AX0
Siemens 6AV6542-0CC10-0AX0
Siemens 6AV6643-0DD01-1AX1
ABB 3HNE00311-1
ABB 3HNE00312-1
Datalux LMV10R3
Siemens 6FC5403-0AA00-0AA1
Rittal SM6450.020
EBERLE 051494100000
Siemens 6AB6124-0BA
LAUER PG090.207.D
LAUER PG090.208.E
LAUER PG090.208.E
Sony LT10-205B
Honeywell DCP1021100100000
Suetron 81324
SIKO MA55-0001
Raychem VIA-DU-20
Siemens 6SE6406-0AP00-0AA0
Siemens 6EP7000-0GA00-0AA0
DANFOSS 175N0131
Siemens 6AV3017-1NE30-0AX0
ADVANTECH SPC-64
Beckhoff CP65310002
Siemens 6DD1670-0AF0
Lauer 960.202.2
Siemens 6AV6542-0BB15-2AX0
Siemens 6DD1670-0AF0
Siemens 6DD1670-0AF0
BOSCH PNLCC100M
Emhart Z010007
Emhart Z010012
Siemens 6AV3515-1EB01-Z
GS DA13-NS60/P1R
Siemens 6AV6647-0AH11-3AX0
Allen Bradley 2711-T9C1
Siemens 6AW5457-0BA
IBES HP-ECB-AB1600
SIEMENS 6AV3515-1MA20-1AA0
RaPoTronic 90020009011
SIEMENS 6AV3515-1MA20-1AA0
Siemens 6AV3535-1TA41-0BX0
Siemens 6AV6542-0CA10-0AX0
Siemens 6AV3515-1EB30-1AA0
KEB 00.F5.060-1000
MONDIAL SLC-45-11
Siemens 6SE7090-0XX84-2FF0
Siemens 6AP1161-0BV00
Siemens 6ES7642-2AA00
PROMESS 14215 110/220V
Siemens 6SE6406-0AP00
NORDAC SIY991H0342
SEW DBG11B-08
Siemens 6AV6545-5AD00-0BP0
SIEMENS 6AV3627-1JK00-0AX0
Siemens 6AV3515-1EB30-1AA0
SIEMENS 6AV3505-1FB12
SIEMENS 6AV3515-1MA30
SIEMENS 6AV3515-1MA32
KUHSE 2180000316
KUHSE KABT9410
SIMATIC 6AV6618-7BB01-1AB0
SIEMENS 6AV3627-1JK00-0AX0
KUHSE 2KMCHMIF00
SIEMENS 6AV6643-1DD01-1AX0
ABB 3BSE000460R1
ega UTV2.2TFT
KEYENCE LS3100W
HARTMANN E984101265
SIEMENS 6AV3505-1FB12
SIEMENS 6ES7626-2AG00-0AE3
Siemens 6AV3520-1EL00
SIEMENS 6AW4810-1AJ10
SIEMENS 6AW4810-1AJ10
SIEMENS 6AV3535-1TA01-0AX0
Siemens 6AV3615-1MA20-1AA0
Siemens 6AV3617-1JC30-0AX1
Siemens 6AV3617-1JC20-0AX1
Endress+Hauser DXF351
Lauer 950.000.5
Siemens 6AV6542-0AD15-2AX0
Siemens 6AV3505-1FB01
KEBA HT4-222
KEBA HT4-222/54001
Omron F150-M05L
Sauter EYT240F001
Siemens 6AV7804-0BC21-0AA0
Siemens 6AV3515-1MA2
Siemens 6AV3515-1MA2
MESA 18915050009
B&R 5PP120.1043-37
Wöhrle BCA-150-103R
Siemens 6SE6400-0BP00-0AA1
UCP 2RML78F32X00F
Sasse 1360.9915201
Biviator TE608
unipo® 2SPL02XGAN15
unipo® 2STF01XCAN02
unipo® 2RML78F32X01
unipo® 2RML78F32X01F
unipo® 2IBT9UXT0001
unipo® 2RCLX2X03001
unipo® 2RCLX2X03005
Unipo® 2IB751223201
Unipo® 2IB961223215
SMA 03F-00:311811
SMA 03F-00:3118110
Siemens Coros 6AV3515-1EB01
Siemens 6AV3515-1MA22-1AA0
SIEMENS 3UF7200-1AA00-0
Wöhrle MV3-220-06-102
Siemens 6AV3515-1MA32-1AA0
Siemens 6AV3515-1MA22-1AA0
Allen Bradley 2711P-T6C20D
Siemens 6SE6406-0AP00-0AA0
BR 4D1166.00-590
Siemens 6AV7725-3BA00-0AD0
Siemens 6AV7803-0AB10-0AB0
Siemens 3SB4003-0AB40-5
Johnson DX-9100-8004
Klöckner XV-101-K84
SMC Dig. ZSE60F-A2-62L
Yamatake SDC10
Atlas Copco 1900-0590-93
RKC F900F801-8*HJ-8NN-NN
UniOP® MD00R020045
Siemens 3UF1202-1AA00-2
EH RSG20-31BA1AA
Siemens 6AV3515-1EB01
EH RSG20-61BA1AA
Telemecanique XBT-C825002
B&R 5AP920.1505-K28
LAUER PCS090
elrest 010730107
MEGATRON M105
Siemens 6SE9590-0XX87-8BF0
SIEMENS 6AV6643-0CD01-1AX0
Pro-face 3280007-01
Kontron 2A09A0016
Siemens 6AV7 615-0AB32-0AG0
ESA 056-473-00047
Siemens 6AV3637-1TP00-0XA0
GEL 8310AAE0000000S
Siemens A5E00160017
SIEMENS 6AV6 640-0CA11-0AX0
Siemens 6ES5685-0UA11
Siemens 6ES5605-0UA11
Siemens 6AV3515-1MA22-1AA0
Siemens 6ES5393-0UA12
Fanuc A05B2301C335
Sasse 1360.9915201
Siemens 6SE7090-0XX84-2FK0
Siemens 6ES5393-0UA13
Siemens 6AV3627-1LK00-1AX0
Siemens 3RX9400-0AA00
ADVANTECH AWS842TPB
NOVAR E30164155VNLBAA
SIEMENS 6AV3535-1FA01-0XA0
Hartmann&Braun 61424-0-1100801
ABB 61422-0-1100502