陳建鐸,張樂芳
(西安歐亞學院 信息工程學院,陜西 西安 710065)
針對水廠的生產流程,文中所講到的全分布式管控一體化網絡采用的是一種混合網絡拓撲結構。現場設備由智能節點通過雙絞線連接到LonWarkes總線網段上,總線網段再通過網絡接口設備連接到Internet/Intranet上,實現水廠控制網絡與信息網絡一體化??傮w結構如圖1所示,上位機負責監控整個水廠現場生產情況,實現現場數據處理、信息存儲、報警、遠程控制等功能;網絡適配器PCNSS負責數據的上傳下達,可把控制網絡的數據上傳到上位機,也可以把上位機的控制命令下發到控制網絡[1]。也可以使用i.Lon100把上位機和前端現場控制網連接起來[2]。i.Lon100既可以作為高性能的網絡接口,又可以作為底層節點開發工具。另外,i.Lon100還提供進程分配、數據記錄、信號傳送、信號檢測及報警等功能,既是路由器又是符合工業標準的Web服務器,可把LonWorks網絡上的智能設備連接起來,供Internet上的用戶訪問。這里,通過組態軟件CentruyStar及服務器LNSDDE Server/iLon100構建上層監控平臺,實現控制與管理的集成以及遠程監控。底層通過LON網連接各智能節點、變送器、執行機構,實現現場數據(如液位、溫度、壓力、流量等)采集與控制;遠程計算機通過Internet實現現場組態畫面的Web頁發布,授權用戶可通過瀏覽器在線瀏覽監控。
如圖1所示,在底層,也就是前端測控現場,通過LonWorks中的LonMaker[1]組建底層控制網LON(Local Operation Network),利用NodeBuilder編寫智能節點應用程序,以網絡變量實現LON網絡上的通信。圖中使用LON通用智能節點與各測試設備和控制裝置連接,向上與i.Lon100[2-3]連接。

圖1 全分布式管控一體化網絡結構Fig.1 Structure of full distribution integrative management and control network
智能節點使用的是一種基于LonWorks控制網絡技術的HLC-1回路控制器[4],它不僅能實現數據采集與處理,完成控制等功能,還提供通信接口,以公共協議進行通信。內設12位A/D轉換器,可對4路模擬信號進行轉換,輸入信號0~5 V或4~20 mA,即4通道模擬信號輸入;內設12位D/A轉換器,可對2路數字量信號進行轉換,輸出信號 0~5 V或 4~20 mA、即2通道模擬量輸出;另外還有2通道數字量(觸點或電平)輸入及2通道開關量輸出;還能實現2通道變量實現PID調節。在安裝完成后,HLC-1回路控制器不僅可以實時接收上位機的控制命令,實現對前端執行機構的控制,還可脫離上層管理系統,自行完成數據采集處理及前端設備運行調控。
在前端,根據受控對象的不同選用的設備有可編程控制器(PLC)、FRENIC5000G/P11S變頻器、網絡適配器等??删幊炭刂破?,比如S7-200 CPU224XPCN,本身就具有很強的編程控制能力,因此可順利完成前端的監控功能。網絡適配器選用的是PCLTA-10,可插在PC機的擴展槽上,作為一個特殊的智能接口設備,既能與所有和總線掛接的現場智能節點進行對等雙向通信,又能快速實現復雜的數據處理和高級監控功能,在PC機與現場智能節點之間起到“上傳下達”的紐帶作用。
前端變送器與執行機構的選用,是基于水廠生產控制流程。所要采集的數據有液位、pH值、溫度、壓力、流量、余氯和泥土界面等。因此所使用的測試儀和變送器有超聲液位計、pH測量儀、溫度變送器、壓力變送器、電磁流量計、余氯分析儀、泥土界面儀、濁度儀、漏氯報警儀等。采用的控制有電機變頻調速、加氯與投藥泵計量、電磁閥開啟度控制等?,F場執行裝置有調頻電機、電磁閥、繼電器等。系統運行時,整體構成閉環控制系統,自動運行,自動調節。管理人員也可從監控計算機發出指令,控制前端執行機構。
本系統采用HLC-1回路控制器,該智能節點主要完成模擬量、數字量的輸入輸出控制。筆者使用NodeBuilder開發設計了智能節點前端控制程序[4-5]。數據采集設備的輸出信號通過變送器連接到智能節點的模擬輸入端;執行機構連接到智能節點的模擬輸出端。通過NodeBuilder編寫控制算法程序,經組態監控平臺下發控制命令,控制前端執行機構在要求的范圍內工作。
這里選用智能節點的Neurowire輸入/輸出作為I/O對象,實現與外部器件的同步通信。下面僅說明一個節點變量的定義,并以模擬量輸出、模擬量輸入和數字量輸出為例,說明程序設計[6]。
1)Neurowire輸入/輸出對象語法結構定義:
IO_8 neuronwire master|slave[select (pin-nbr)][timeout(pin-nbr)]
[kbaud(const-expr)][clockedge(+|-)]io-object-name
IO_8:Neurowire輸入/輸出對象使用引腳 IO_8 ~IO_10,IO_8是時鐘引腳,IO_9是串行數據輸出引腳,IO_10是串行數據輸入引腳;
Master:指定Neuron芯片在引腳IO_8上提供時鐘,被指定為輸出;
Slave:指定Neuron芯片檢測引腳IO_8上的時鐘,被設置為輸入;
Select (pin-nbr): 為 Neurowire master指定片選引腳,為IO_0~IO_7引腳之一;
Timeout(pin-nbr):為 Neurowire slave 指定一個可選擇的超時信號引腳,其范圍是IO_0~IO_7。當使用超時信號引腳時,當neuron芯片等待時鐘的上升沿或下降沿時,將檢查該引腳的邏輯電平。如果檢測到邏輯電平為“1”,則傳輸停止;
Kbaud (const-expr): 為 Neurowire master指定比特率,const-expr可以為 1 kb/s、10 kb/s或 20 kb/s; 對于 10 MHz的Neuron芯片輸入時鐘,缺省值為20 kb/s;
Clockedge(+|-):指定觸發時鐘信號極性, clockedge(+)為上升沿,clockedge(-)為下降沿;
io-object-name:由用戶為該I/O對象指定的名字。
2)模擬量輸出程序—電流表控制程序
“nviValue”=“電流表控制”;//組態變量 “電流表控制”值,賦給節點變量“nviValue”
IO_8 neurowire master select(IO_2)ioDA;//定義串行輸出對象
IO_2 output bit ioDAselect=1; //確定片選信號int flag=0; //定義標志位 #progma ignore_notused ioDAselect
when(nviValue==1) //條件成立,完成一次數據發送
{unsigned long int t;
unsigned long int tt;
在食品領域,我國已出臺一系列法律法規及相關標準,對生產、銷售等多個環節進行著有力監管。而從安全保障的內在動力來看,要守住食品安全的大門,還需每一位食品行業從業者更加恭敬謹慎、心存敬畏。
if(flag==0) //輸出電流值以1 mA遞增變化
{t=t+4095;
if(t>62260) flag=1;
}
Else //輸出電流值以1 mA遞減變化
{t=t-4095;
if(t<=0) flag=0;
}
io_out(ioDA,&t,16); //數據輸出,控制電流表
}
3)模擬量輸入程序
在生產現場,液位、溫度、壓力等變送器輸出的4~20 mA電流信號或0~5 V電壓信號,經變送器連接到智能節點的模擬量輸入通道上,經過節點內部運算放大器、12位串行模數轉換器ADS7844和光電隔離后送入神經元芯片處理,再由LON網絡以變量形式上傳到組態監控平臺,完成采集數據的實時檢測[7]。程序如下:
when(reset) //復位后重新選擇 ADS7844 地址
{adr[0]=0;
adr[1]=4;
adr[2]=1;
adr[3]=5;
}
stimer repeating t0=5; //定義秒定時器
IO_8 neurowire master select(IO_0) ioAD;//定義 I/O 對象
IO_0 output bit ioADselect=1; //確定片選信號
#progma ignore_notused ioADselect
when(timer_expires(t0)) //定時結束,開始數據采集
{int i;
int j;
unsigned int adc_info;
unsigned int adh,adl;
unsigned long int data;
for(i=0;i<4;i++) //循環采集 4 路數據
{adc_info=(adr[i]+8)*16+7; //定義 ADS7844 方式控制字
io_out(ioA2D,&adc_info,8); //發送控制字
for(j=0;j<100;j++) //采集延時
adc_info=0x00; //設置全零字節
io_out(ioA2D,&adc_info,8); //采集高 7 位數據
adh=adc_info;
for(j=0;j<100;j++) //采集延時
adc_info=0x00; //設置全零字節
io_out(ioA2D,&adc_info,8); //采集低 5 位數據
adl=adc_info;
data=(adh*32L+adl/8L)/1L; //整合數據送入上層監控平臺
adIN[i]::nvoValue=data; //在功能模塊上顯示采樣值
}
}
4)數字量輸出程序
以溫度控制為例,當加熱器加熱時,溫度變送器輸出4~20 mA電流值從智能節點的模擬量輸入通道,經過轉換,若該值超出設定報警值上限時,控制命令自動從智能節點的IO_1口送出,將繼電器斷開,加熱器停止加熱;當溫度下降到報警值下限時,又使繼電器吸合,加熱器重新加熱。程序如下:
“wendu”=“inIN[1]::nvoValue” //節點采集獲得的溫度值
IO_1 output bit jdq; //定義繼電器控制端口為IO_1
int flag1=0; //定義標志位
when(inIN[1]::nvoValue>=200) //溫度大于報警值上限時,加熱器停止加熱
{if(flag1==0)
{io_out(jdq,0); //控制繼電器斷開
flag1=0;
nvoValue=flag1; //在功能模塊上顯示當前結果
}
when(inIN[1]::nvoValue<=100) //溫度小于報警值下限時,加熱器重新加熱
{io_out(jdq,1); //控制繼電器吸合
flag1=1;
}
nvoValue=flag1; //在功能模塊上顯示繼電器狀態
}
現場總線技術(FCS,Fieldbus Control System)是一種全分布式的控制系統,可實現大型企業管控一體化網絡系統的建立。文中研究結果證明,該系統完全可用于自來水廠的生產過程控制中,且優于當前所采用的基于PLC的集散式(DCS)控制模式。
[1]Echelon.LonMaker for Windows Release 3.1 User’s Guide[S].USA:Echelon Corporation,2002.
[2]Echelon.i.Lon100 Internet Server Programmer’s Reerence[S].USA:Echelon Corporation,2002.
[3]陳建鐸.基于LonWorks/iLon100現場總線控制網絡的結構與實現[J].探測與控制學報,2006(1):59-63.CHEN Jian-duo.Structure and implementation of fieldsus controlnetwork on LonWorks[J].Journal of Detection&Control,2006(1):59-63.
[4]呂增江.基于LonWoeks的智能節點的開發與設計[J].現代電子技術, 2005(10):20-22..LV Zeng-jiang.Development and design of smart node based on LonWorks bus[J].Modern Electronics Technique,2005(10):20-22.
[5]程啟文,陳建鐸,宋彩利.Lon網絡中上位機與智能節點通信方式的研究[J].微電子學與計算機,2005(7):168-170.CHENG Qi-wen,CHEN Jian-duo,SONG Cai-li.Research and implementation of communication between supervisor and intelligent nodesin LonWoeksnetwork[J].Microelectronicsand Computer,2005(7):168-170.
[6]李言武,陳建鐸.基于LonWorks的水廠自動化管控系統[J].現代電子技術,2006(8):95-97.LIYan-wu,CHEN Jian-duo.The waterworks’ automatic management and control system based on LonWorks[J].Modern Electronics Technique,2006(8):95-97.
[7]王東陽,晁暉,王辛,等.基于小波Mallat算法的次同步振蕩監測[J].陜西電力,2011(8):37-41.WANG Dong-yang,CHAO Hui,WANG Xin,et al.Mallat algorithm of wavelet analysis based SSO monitoring[J].Shaanxi Electric Power,2011(8):37-41.