■ 项目地点:内蒙古乌海市
■ 项目名称:众兴煤炭井群控制系统
■ 环境介绍:
该矿区位于黄河边,地表沙漠化,地表温度夏季60℃,冬季-30℃,矿区以煤炭和炼焦为主,环境恶劣。为解决矿区饮用水问题,沿黄河打8口深水井,采用5台自耦启动柜和3台变频柜控制深水井泵。井口距中控室平均距离为5公里,井口与中控室之间有铁厂和洗煤厂等大型工厂。
■ 项目要求:
在中控室实现水源井泵的无线遥控、遥测、遥讯。能够显示水源井的压力、流量、电压、电流,能够遥控自耦柜启停;能够遥控变频器的频率,监视变频器的频率、输出电压、输出电流、输出功率等内部参数;可根据泵出口压力自动调节变频器频率,做到恒压供水;现场防盗。
■ 现场条件:
现场泵房无任何通风和保温措施,无人值守,只提供380V电源,无接地等保护措施。

现场条件图1(黄河及沙漠化环境)

现场条件图2(水源井与中控室之间的大型铁厂和洗煤厂)

现场水源井泵
■ 遥控设备选型要求:
Ø 考虑到现场温度-30℃~60℃,必须采用宽温范围的RTU和数传电台。
Ø 由于现场有大电机,考虑到大电机及变频器的干扰,需采用抗干扰能力强的RTU和电台。
Ø 由于RTU需与变频器(日立L300P)通讯,采集变频器内部数据,RTU需带RS485通讯接口,并能够对接口编程,以将变频器内部数据采集到RTU中,并通过电台传到中控室。
Ø RTU至少要有2个通讯端口,一个与数传电台(RS232)通讯,一个与变频器(RS485)通讯。
Ø RTU 必须具有PID调节功能,能根据泵出口压力自动调节变频器的输出,能够做到恒压供水。
Ø RTU必须具有继电器干触点(触电容量为220VAC,5A)输出,以控制启动柜的启停。
■ RTU选型:
采用安控SUPER-E,参数如下:

一体化设计,结构合理,可直接应用于工业现场。
● 自带电源,可直接用220VAC供电,也可使用24VDC供电。 ● 具有省电模式,可用太阳能电池供电,并具备电池充电和后备功能。 ● 提供隔离的24V电源输出,可用于现场仪表供电。 ● 自带显示和按键,用于现场操作。 ● 可直接壁挂式安装,并采用多层接线端子,现场安装和接线非常方便。
配置合理,具有很强的现场适应能力。 ● 具有AI、DI、AO、DO、PI等多种类型的输入、输出信号。
● 可检测液位、压力、流量、启停状态等不同类型的信号,各种信号数量可由客户选定。
● 可满足开关、报警、连续调节等不同类型的控制要求。 强大的软件功能,可以满足各种灵活控制、复杂运算的要求。
● 支持逻辑梯形图语言、C语言编程及屏幕组态功能。
● 支持实时多任务、PID算法和各种气体流量算法。
● 提供多种专用的检测、控制软件包。
具有RTU和PLC的双重优势,应用灵活。
● 无须编程,通过简单的屏幕组态和参数组态就可实现一般的检测及控制。 ● 使用梯形图语言、C语言和屏幕组态可进行二次开发。 ● 可脱离系统独立工作,也可联网工作。
灵活的通讯方式,标准的通讯协议,可方便地组成SCADA系统。
● 提供两路对外通讯接口。 ● 可配接多种通讯设备,实现有线、无线通讯。 ● 支持标准的MODBUS RTU/ASCII通讯协议,也可自定义通讯协议。
现场监控和远程监控兼备,为系统操作、诊断、维护和升级提供了方便。
● 通过现场显示、按键或远程计算机可对现场设备进行监控。 ● 程序可现场下载或远程下载。 ● 可实现现场或远程诊断、维护、升级。
工业标准设计,能够工作于各种恶劣环境。
● 内部器件均选用优秀的工业级产品。 ● 使用温度可达-40℃~70℃,存储温度达-50℃~80℃。 ● 不需要特殊的加热器或冷却装置。
充分的可靠性设计,严格的质量检验,为用户提供了可靠的保证。
● 电源、信号入出口均有保护措施,并与主控电路隔离。 ● 具有看门狗及数据掉电保护功能。 ● 产品的研制、生产、检验严格按照ISO9001质量体系标准进行。
■ 数传电台选型: 采用FriendCom公司RTU专用数传电台FC208,内置MODEM技术参数如下:
● 工业产品标准设计。高可靠性,高稳定性。 ● 耐4KV群脉冲,8KV静电,抗恶劣电磁环境。 ● 环境温度:-40℃~+70℃,保持工作。 ● 内置硬件和软件看门狗,克服CPU死机现象。 ● 工作电压范围宽,低功耗。 ● 多重安全保护措施,大电流,过压,反接性保护。 ● 具有内置MODEM接口,预留安装位置。 ● 可外置MODEM,接口连接方便。 ● 带CTCSS编码。 ● LED信道显示,直观耐用。 ● 64个信道,设置使用方便。 ● 综合指标
频率范围:223~235MHz
信道间隔:25KHz
调制方式:FM
信道数: 64个
音频调制范围:300~3400Hz
CTCSS选择:38个
外接扬声器:2W / 8Ω
天线阻抗:50Ω
工作电压:典型值13.8V,6~15V可保证工作
相对湿度:95% RH 无冷凝
环境温度:-40℃~+70℃
● 接收机指标
灵敏度:≤0.25μV (12 dB SINAD )
第一中频:45.1MHz
第二中频:455KHz
互调抑制比:≥75 dB
邻道选择性:≥70 dB
音频失真:≤3%
FSK输出幅度:0~450mV
AF输出幅度:0~5V
● 发射机指标
频率稳定度:±2.5ppm
最大频偏:≤±5KHz
邻道抑制比:≥70 dB
发射机启动时间:≤50ms
音频失真:≤3%
射频输出功率:5W/10W(软件设置)
● 电源
直流电压:6~15V(典型值13.8V)
接收机守候电流:≤50mA(省电状态)
整机工作电流:≤2A(13.8V 10W时) ≤1.5A(13.8V 5W时)
■ RTU与日立变频器的接口驱动开发
SUPERE提供了C语言编程环境,采用C语言对RTU的com1口(选为485接口)进行编程,通过该接口采集变频器内部数据(频率、电压、电流、功率、状态等)。
日立变频器通讯参数缺省为:波特率:4800,7位,无校验,1,地址:1 程序部分清单如下: void SetCom(void); void mywrite(unsigned int Port,unsigned int value); unsigned int myread(unsigned int Port); void signal(unsigned character,unsigned error); unsigned char songbuffer[19],recevbuffer[120]; unsigned int shuzu[16]; int kkk=0; int k=0; int path8=1; int flag1=0; int flag2=0; int flag3=0; int flag4=0; int kk=0; /*************************************************************************
*************************************************************************/ void main(void) { int i,j,m,number; /*number为尝试发送次数*/ int history_status; SetCom();number=0;history_status=0; install_handler(com1,signal); /*****************清接收区******************************************/ for(i=0;i<120;i++) { recevbuffer[i]='\0'; }
path8=1;
while(TRUE) { /*****************清接收区用来判断是否读数结束****************************/ if (path8==1) { for(i=0;i<=120;i++) { recevbuffer[i]='\0'; } for(i=0;i<=19;i++) { songbuffer[i]='\0'; } release_processor();; flag1=0; flag2=0; flag3=0; flag4=0; path8=2; } /*************************清接收区**********************************/ /*********特别值得注意interval每运行一次就重新开始计数**************/ if (path8==2) { songbuffer[0]=0x02;songbuffer[1]=0x30;songbuffer[2]=0x31;songbuffer[3]=0x30; songbuffer[4]=0x33;songbuffer[5]=0x30;songbuffer[6]=0x32;songbuffer[7]=0x0D; release_processor();;
fputs(songbuffer,com1); release_processor();; path8=3; }
/******************** 存储到40200起始30字节内 **********************/ if (path8==3) { if(flag2==0) { interval(6,1); settimer(6,6); flag2=1; }
while(timer(6)>0) { release_processor(); }
if(timer(6)==0) /*和下面的if顺序很关键*/ { release_processor();; kkk=0; for (m=0;m<12;m++) { mywrite(41000+m,0); } path8=5; }
if(recevbuffer[109]==0x0D) { release_processor();; kkk=0; path8=4; } }
/******************** 转换ASCII成为整数存数 **********************/ if (path8==4) {for (m=0;m<12;m++) { shuzu[m]=(recevbuffer[6+8*m]-48)*10000+(recevbuffer[7+8*m]-48)*1000+(recevbuffer[8+8*m]-48)*100+(recevbuffer[9+8*m]-48)*10+recevbuffer[10+8*m]-48; mywrite(41000+m,shuzu[m]); } path8=5; } /******************** 转换ASCII成为整数存数 **********************/ if (path8==5) { for(i=0;i<=120;i++) { recevbuffer[i]='\0'; } for(i=0;i<=19;i++) { songbuffer[i]='\0'; } release_processor();; path8=6; }
/******************** 处理命令语句 **********************/ if (path8==6) { songbuffer[0]=0x02;songbuffer[1]=0x30;songbuffer[2]=0x31;songbuffer[3]=0x30; songbuffer[4]=0x34;songbuffer[5]=0x30;songbuffer[6]=0x35;songbuffer[7]=0x0D; release_processor();;
fputs(songbuffer,com1); release_processor();;
path8=7; } /******************** 存储到40200起始30字节内 **********************/ if (path8==7) { if(flag4==0) { interval(5,1); settimer(5,6); flag4=1; }
while(timer(5)>0) { release_processor(); }
if(timer(5)==0) /*和下面的if顺序很关键*/ { for(i=3;i<=10;i++) { mywrite(41197+i,100); } release_processor();; kkk=0; path8=1; }
if(recevbuffer[13]==0x0D) { for(i=3;i<=10;i++) { mywrite(41197+i,recevbuffer[i]-48); } release_processor();; kkk=0; path8=1; } }
/******************************程序结束****************************/ }/*while(true) end*/ }/*main end*/ /******************************设置串行口****************************/ void SetCom(void) { struct pconfig serial_setting; get_port(com1,&serial_setting); serial_setting.baud =BAUD4800; serial_setting.duplex =HALF; serial_setting.parity =NONE; serial_setting.data_bits=DATA7; serial_setting.stop_bits=STOP1; request_resource(IO_SYSTEM); set_port(com1,&serial_setting);
release_resource(IO_SYSTEM); }
void signal(unsigned character,unsigned error) {unsigned int input ; if(error==0) { input=fgetc(com1); recevbuffer[kkk]=input; kkk++; } }
void mywrite(unsigned int Port,unsigned int value) { request_resource(IO_SYSTEM); setdbase(MODBUS,Port,value); release_resource(IO_SYSTEM); }
unsigned int myread(unsigned int Port) { int kk; request_resource(IO_SYSTEM); kk=dbase(MODBUS,Port); release_resource(IO_SYSTEM); return kk; }
■ RTU梯形图PID编程:
采用E-LADDER编程,实现对设备的控制及PID调节,PID程序梯形图如下:

■ 系统构成框图:

采用安控SUPERE-RTU、DELL工作站组成的水源井无线遥控系统,性能可靠。整个系统简单明了,经现场调试顺利通讯良好。以下是电台和RTU之间的通讯参数(com2): 波特率:9600 数据位:8位 校验:无 停止位:1位
RTU和日立变频器的485通讯参数(com1): 波特率:4800 数据位:7位 校验:无 停止位:1位
■ 上位组态软件 能实现以下功能: Ø 监视各井泵状态 Ø 控制自耦柜和变频器启停 Ø 历史曲线和实时曲线 Ø 报表功能 Ø 防盗系统生光报警 Ø 变频器PID调节,恒压供水 Ø 自动计算单台泵的电耗 Ø 流量累积功能

上位机主画面

变频器PID调节画面
■ 现场安装图解:

定向天线安装图

全向天线安装图

泵房外观图

RTU机柜接线

操作站施工过程

变频柜内部图
|