■ 項目地點:內蒙古烏海市
■ 項目名稱:眾興煤炭井群控制系統
■ 環境介紹:
該礦區位于黃河邊,地表沙漠化,地表溫度夏季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機柜接線
操作站施工過程
變頻柜內部圖