摘 要:本設計包括智能工業(yè)控制器下位機和應用組態(tài)王6.51軟件編制的上位機監(jiān)控程序,兩者通過目前流行的Modbus協(xié)議通訊。前者應用智能專家PID控制算法,完成對溫度,壓力,液位等物理量的控制,后者用于對下位機參數(shù)讀寫,顯示,報警,報表打印等,從而實現(xiàn)了一套完整可靠的工業(yè)監(jiān)控系統(tǒng)。經(jīng)廠家使用效果比較理想,有廣闊的應用前景。
關鍵詞:智能工業(yè)控制器;組態(tài)王6.51;Modbus協(xié)議;智能專家PID;工業(yè)監(jiān)控系統(tǒng)
引言
隨著現(xiàn)代工業(yè)的發(fā)展,對工業(yè)設備的控制逐步從單一獨立系統(tǒng)向集散控制監(jiān)控系統(tǒng)發(fā)展,因此,筆者設計了基于Modbus協(xié)議的智能工業(yè)控制器監(jiān)控系統(tǒng),利用智能專家PID控制算法,可對工業(yè)現(xiàn)場的溫度,壓力,液位,濕度等參數(shù)進行精確控制,并且可以利用上位組態(tài)軟件實現(xiàn)現(xiàn)場參數(shù)的讀寫,顯示,越限報警,打印報表等,實現(xiàn)了一個完整的工業(yè)監(jiān)控系統(tǒng)。
1 智能工業(yè)控制器的系統(tǒng)組成及工作原理
1.1 硬件系統(tǒng)
該智能工業(yè)控制器系統(tǒng)框圖如圖1所示,它采用了AT89C55WD單片機為CPU[1],以四位半的雙積分A/D轉(zhuǎn)換器ICL7135串行方式進行數(shù)據(jù)采集,ICL7135的Busy信號上升沿觸發(fā)定時器T0開始計脈沖數(shù),轉(zhuǎn)換完畢時Busy信號下降沿觸發(fā)INT0中斷讀取定時器T0的計數(shù)值,經(jīng)過簡單的換算就可以得出A/D轉(zhuǎn)換值。模擬開關4051控制8路通道的通斷狀態(tài),由CPU來配置信號處理電路和多路選擇開關的選通情況。12級串行分頻器CD4040的基準時鐘信號采用AT89C55WD單片機的ALE信號,由于程序中沒有使用MOVX指令,所以ALE輸出頻率固定為fosc/6,經(jīng)過2級分頻(fosc/24=250KHz)和11級分頻(fosc/12288=500Hz)分別輸入到ICL7135的CLK端和單片機的INT1端,作為ICL7135的時鐘基準和單片機外部2ms的定時中斷。P0,P2口及P1.3用于掃描4個按鍵和8個共陽LED顯示。24C02是基于兩線制IIC總線的256字節(jié),非易失性的EEPROM存儲器,用來存放重要系統(tǒng)參數(shù)。TOP221P是一寬電壓輸入(85~260V),低功耗( 5W)的開關電源管理芯片,所以控制器可以直接使用220V市電。
輸入模塊可選用:(1)熱電偶和熱電阻,如K、Pt100、Cu50等;(2)線性電壓/電流:0~5V、4~20 mA等;(3)其它:可由用戶根據(jù)實際需要指定的傳感器。
輸出模塊可選用:(1)繼電器觸點開關輸出;(2)可控硅無觸點開關輸出;(3)SSR電壓輸出;(4)可控硅觸發(fā)輸出;(5)線形電流輸出;(6)電流變送輸出。
報警模塊為:2路繼電器開關輸出(AL1和AL2)。
[align=center]

圖 1 系統(tǒng)框圖[/align]
1.2 軟件系統(tǒng)
系統(tǒng)程序框圖如圖2所示。該工業(yè)控制器啟動時,先進入初始化程序,對系統(tǒng)進行自檢。然后從EEPROM中讀取相關系統(tǒng)設置參數(shù)到內(nèi)部RAM中,讀取輸入規(guī)格參數(shù)SN,判斷輸入是否為熱電偶或熱電阻,若是,則依據(jù)對應的線形補償表進行線形補償;否則輸入為線形電流或電壓,不需要補償。程序再讀取2ms外部定時中斷服務程序經(jīng)過去抖處理的鍵盤的鍵值,用狀態(tài)分析法判斷處理對應的參數(shù)及LED顯示界面。讀取A/D采樣值,根據(jù)實際現(xiàn)場調(diào)節(jié)數(shù)字濾波設置參數(shù)DL,進行相關濾波處理,這樣得出的測量數(shù)據(jù)PV比較平滑穩(wěn)定。再讀取設定值SV,與測量值PV值分別送LED顯示。讀取控制方式參數(shù)CTRL值,若為0則是基本的位式控制:通過判斷測量值PV與設定值SV的關系來決定輸出,回差DF用于避免測量輸入值波動而導致位式調(diào)節(jié)頻繁通斷或報警頻繁產(chǎn)生/解除,當SV-PV>DF時,輸出為系統(tǒng)允許最大輸出OPH輸出,否則以系統(tǒng)允許最小輸出OPL輸出;若CTRL為1則為智能專家PID控制。
[align=center]

圖 2 系統(tǒng)程序框圖[/align]
1.3 智能專家PID控制
智能專家PID控制[2]是基于被控對象的控制規(guī)律的知識,以智能的方式利用這些知識來設計PID控制器。智能專家PID控制原理如圖3所示。其中誤差額e(k)=SV-PV(k), 誤差變化

; U(k)為第k次控制器的輸出。
[align=center]

圖 3 智能專家PID控制框圖[/align]
依據(jù)e(k)及□e(k)制定的專家規(guī)則如下:(其中A,B為設定誤差界限,A>B; k[sub]1[/sub]為增益放大系數(shù), k[sub]1[/sub]>1; k[sub]2[/sub]為抑制系數(shù),0
當|e(k)|>A時,說明誤差很大,要以系統(tǒng)允許的最大(或最?。┹敵?當e(k)□e(k)>0時,說明誤差絕對值在朝增大的方向變化,此時依據(jù)|e(k)|值調(diào)整PID控制參數(shù);當e(k)□e(k)<0時,在□e(k)□e(k-1)>0或e(k)=0時,說明誤差絕對值在朝減小的方向變化,此時可保持輸出不變,而在e(k)□e(k)<0時,依據(jù)|e(k)|值調(diào)整PID微分參數(shù);當|e(k)|<ε時,說明誤差絕對值很小,此時調(diào)整PID積分參數(shù),減小穩(wěn)態(tài)誤差。
該規(guī)則集中的各個常數(shù)均為正實數(shù),可由仿真及實驗整定后在控制器設定機構上設定好這些參數(shù)。另外,這些參數(shù)也可以通過上位機進行讀寫設定。在進行控制時,由控制器依據(jù)專家規(guī)則,完成對被控對象的智能控制。經(jīng)驗證,此時控制精度較高,效果較好。
系統(tǒng)程序根據(jù)輸出模塊類型,讀取其對應的設置參數(shù),根據(jù)前面計算值,轉(zhuǎn)換成對應輸出值,如電流,電壓等值送輸出模塊輸出。然后程序判斷上限、下限、正偏、負偏差、輸入越量程等報警參數(shù),若有,則送報警輸出模塊輸出,否則不作反應。系統(tǒng)再根據(jù)Modbus通信協(xié)議,對接受數(shù)據(jù)進行解析并作相應處理,包括數(shù)據(jù)CRC校驗,數(shù)據(jù)打包,讀寫相關參數(shù)等。
2 Modbus現(xiàn)場總線通信協(xié)議
一般基于Modbus現(xiàn)場總線[3]的監(jiān)控系統(tǒng)采用主從查詢-回應的交互方式來實現(xiàn)。本系統(tǒng)使用RTU(遠程終端設備)模式,消息發(fā)送以大于3.5個字符時間的停頓開始,主機發(fā)出要訪問的從機地址,每個從機設備都進行解碼以判斷是否發(fā)往自己的。功能代碼告之被選中的從機要執(zhí)行何種功能,數(shù)據(jù)段包含了附加信息:從何寄存器開始讀及要讀的寄存器數(shù)量。從機在回應消息中的設備地址為本機地址,功能代碼是對主機查詢消息中的功能代碼的回應,數(shù)據(jù)段包括了從機的寄存器信息。如果有錯誤發(fā)生,功能代碼和數(shù)據(jù)段包含了描述此錯誤信息的代碼,錯誤檢測域用于主機確認從機的回應消息是否可用。在最后一個傳輸字符之后,大于3.5個字符時間的停頓標定了消息幀的結束。整個消息幀必須以連續(xù)的數(shù)據(jù)流轉(zhuǎn)輸,如果在幀完成之前有超過1.5個字符時間的停頓時間,接收設備將判數(shù)據(jù)超時不可用,刷新不完整的消息并假定下一字節(jié)是一個新消息的地址域。同樣地,如果一個新消息在小于3.5個字符時間內(nèi)接著前個消息開始,接收的設備將認為它是前一消息的延續(xù),這都將導致CRC校驗錯誤。
3 基于Modbus現(xiàn)場總線的監(jiān)控系統(tǒng)
3.1 智能工業(yè)控制器下位機通信模塊
3.1.1 硬件接口
Modbus協(xié)議的物理層一般都采用RS-485半雙工結構作為通信接口標準。RS-485采用二線差分電平發(fā)送與接收,能有效克服共模干擾、抑制線路噪聲, 傳輸距離可長達1.2km。由于要把單片機的邏輯電平經(jīng)過光耦6N137隔離后轉(zhuǎn)換成485差分信號在總線上傳輸,可采用TI公司的SN75LBC184 RS-485收發(fā)器,這是一種具有瞬變電壓抑制的收發(fā)器,可以防止因靜電放電(ESD)對收發(fā)器造成的損壞,另外SN75LBC184對傳輸信號變化沿限制斜率, 可減小電磁干擾,總線上至少可掛64個這樣的收發(fā)器,通信速率最高可達250kbps。Modbus通信模塊原理如圖4所示。
[align=center]
圖 4 通信模塊[/align]
3.1.2 軟件編程
Modbus通信數(shù)據(jù)解析處理程序[4]框圖如圖5所示,依據(jù)Modbus通信協(xié)議下位機程序檢測主機訪問的從機地址,若是本機則進行CRC校驗,若正確則進行功能碼解析程序,依據(jù)功能碼轉(zhuǎn)入相應子程序,進行數(shù)據(jù)打包和相應參數(shù)處理,然后發(fā)送Modbus數(shù)據(jù)包。
[align=center]
圖 5 Modbus通信數(shù)據(jù)解析處理程序[/align]
3.2 上位機監(jiān)控系統(tǒng)
由于組態(tài)王6.51軟件[5]中的Modicon Modbus(RTU)驅(qū)動程序是基于Modbus通信協(xié)議編制的,因此應用時只要參照組態(tài)王軟件的手冊進行操作,通過編制監(jiān)控畫面,設置波特率,校驗方式,通訊方式,下位機地址,進行通訊用的I/O變量及類型,變量寄存器以及采樣頻率等來實現(xiàn)與下位機的通信。圖6是用組態(tài)王6.51軟件編制的連接10臺工業(yè)控制器的監(jiān)控系統(tǒng)畫面。設置波特率為4800,無校驗,Modbus (RTU)unpack方式,地址1~10,數(shù)據(jù)采集頻率為400ms。由于實際監(jiān)控系統(tǒng)上只掛了第一臺工業(yè)控制器,其余的畫面上顯示出了“???”號。該上位機監(jiān)控系統(tǒng)可實現(xiàn)對下位機數(shù)據(jù)讀寫顯示,歷史數(shù)據(jù)保存查詢,報警,報表打印等功能,從而實現(xiàn)了基于Modbus現(xiàn)場總線的智能工業(yè)控制器上位監(jiān)控系統(tǒng)的設計。
[align=center]
圖 6 監(jiān)控畫面[/align]
4 結束語
基于Modbus協(xié)議的智能工業(yè)控制器監(jiān)控系統(tǒng)至少可以連接64臺智能工業(yè)控制器下位機,而組態(tài)王上位機監(jiān)控程序只要根據(jù)實際的需要作相應的調(diào)整即可使用。而且該智能工業(yè)控制器程序經(jīng)過適當?shù)母膭舆€可以用來作為二十段可編程工藝曲線控制器,合理選擇傳感器輸入模塊即可滿足多種工業(yè)現(xiàn)場參數(shù)的控制要求。本監(jiān)控系統(tǒng)成本低,性能優(yōu),使用方便,經(jīng)過廠家實際使用驗證效果比較理想,具有廣闊的應用前景,預計經(jīng)濟效益100余萬元。
參考文獻
1 趙德安.單片機原理及應用.北京:機械工業(yè)出版社,2004
2 劉金琨.先進PID控制及其MATLAB仿真.北京:電子工業(yè)出版社,2003.1
3 MODICON INC.Industrial Automation Systems《Modicon Modbus Protocol Reference Guide》,June 1996
4 朱懿,蔣念平.Modbus協(xié)議在工業(yè)控制系統(tǒng)中的應用.微計算機信息,2006,10:118-120.
5 北京亞控科技發(fā)展有限公司.《組態(tài)王6.51使用手冊》,2006.
基于Modbus的智能工業(yè)控制器監(jiān)控系統(tǒng)的設計