基于MODBUS協議智能控制系統(tǒng)設計-工業(yè)控制
基于MODBUS協議智能控制系統(tǒng)設計
2011-04-21 10:17:37來源:互聯網摘要:針對工業(yè)化生產的實際需求,改變工控儀表和控制器價格較高的現狀同時降低成本,設計了基于MODBUS協議的智能控制系統(tǒng)。下位機由AVR單片機實現基于MODBUS協議的數據采集和顯示,再通過控制電路控制數據變量;上位機用VC++6.0編寫基于MODBUS協議的程序,實現數據在上位機界面顯示,并且將采集的數據值保存到SQLsever2000數據庫,同時繪制數據的動態(tài)曲線圖,上下位機通過RS-485總線通訊。系統(tǒng)結構簡單,成本低廉,具有一定實用價值。
關鍵詞:AVR單片機;MODBUS協議;VC++6.0;SQLsever2000;RS-485總線
O 引言
現場總線作為生產過程自動化發(fā)展的重點,對推動自動化技術起到巨大的推動作用,是現代化工業(yè)的標志。MODBUS作為現場總線的一種通信協議,它實現了PLC控制器、工控儀表與設備間的通訊和信息交換。具有MODBUS功能的工控儀表雖然應用比較廣泛,但是工控儀表和PLC控制器價格較高并且沒有形成自主知識產權的產品,阻礙了它的進一步發(fā)展。本文從這個問題著手,設計基于MODBUS協議的單片機控制系統(tǒng),設計合理,價格低廉,自主性強,在工業(yè)控制領域具有廣泛的應用前景。
1 系統(tǒng)總體設計
系統(tǒng)中計算機PC作為主機,AVR單片機作為從機,采用RS-485工業(yè)現場總線通信。由于計算機的串口采用RS232總線標準,因此在主機的串行通信端口必須增加RS485-RS232電平轉換器,在計算機串行端口由該電平轉換器實現RS-232電平與RS-485電平轉換,主機與從機通過MOD-BUS通信協議在RS-485總線上進行數據通信和交換,在整個RS-485總線上最多可以接255臺從機。系統(tǒng)的總體結構如圖1所示。
點擊看大圖
2 系統(tǒng)硬件設計
整個硬件電路包括:PC機、RS485-RS232電平轉換器、電源、復位電路、晶振電路、AVR單片機控制系統(tǒng)。本系統(tǒng)上位機由PC機和串口組成,下位機由兩個單片機控制系統(tǒng)組成。兩個從機設備地址為01和02,每個單片機系統(tǒng)由Atmega32單片機,TSl2864A-3型LCD液晶顯示器,傳感器,PWM脈寬調制控制電路組成。下位機基于Atmega32單片機,通過傳感器對采集數據再經過A/D轉換后在LCD液晶屏顯示,Atmega32單片機帶有MAX485串口,通過RS-485總線與上位機通訊,系統(tǒng)的總體硬件原理圖如圖2所示。
點擊看大圖
3.系統(tǒng)軟件設計
3.1 MODBUS通信協議
軟件Modbua協議包括ASCII、RTU、TCP等,標準的Modbus采集器使用RS232C實現串行的Modbus。Modbus的ASCII、RTU協議規(guī)定了消息、命令和應答的方式,數據通訊采用Maser/Slave方式,Master端發(fā)出數據請求消息,Slave端接收到正確消息后就可以發(fā)送數據到Master端以響應請求;Master端也可以直接發(fā)消息修改Slave端的數據,實現雙向讀寫。Modbus協議需要對數據進行校驗,串行協議中除有奇偶校驗外,ASCII模式采用LRC校驗,RTU模式采用16位CRC校驗。
在上位機監(jiān)控界面上建立ADOData控件,ID為IDC_ADODCl,在通用屬性的連接中輸入服務器名稱COMPUTER,選擇數據庫MASTER,點擊測試連接,如果顯示測試成功,表示連接SQLsever2000數據庫成功。再在數據庫中新建一個TABLEI表,表中包括時間,實際數據,設定數據字段,記錄源的命令文本中SQL命令為select*from TABLEl;其次在監(jiān)控界面上建立DataGrid控件,在datasource屬性中選擇IDC_ADODCl,與ADOData控件建立起聯系,通過以上的步驟就實現了VC++6.O監(jiān)控界面對數據庫的訪問。在VC++6.0環(huán)境完成程序編寫,運行得到控制系統(tǒng)的數據顯示界面如圖4。
點擊看大圖
當上位機MODBUS串口程序把下位機的實際數據采集上來并顯示界面中后,就可以對實際數據繪制動態(tài)曲線圖。動態(tài)曲線橫坐標是時間,縱坐標是實際數據值,兩個坐標確定一個動態(tài)點。動態(tài)曲線的顯示過程是把動態(tài)的數據值放到一個數組中,每采集一個新的數據值存放在數組的最低位,數組中的所有數據位向前移一位,最高的數據位移出;在MSCOMM控件OnOnCommMscomm函數中得到當前具體的時、分、秒,再將具體時間顯示在橫坐標相應位置,
評論排行