基于MODBUS協議智能控制系統(tǒng)設計
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函數中得到當前具體的時、分、秒,再將具體時間顯示在橫坐標相應位置,然后把數組中的所有數字以及每個數字所對應的時間的坐標點用線連接起來就構成了動態(tài)曲線圖,動態(tài)曲線圖如圖5所示。
4 結束語
本系統(tǒng)由AVR單片機,數據采集模塊,控制電路三部分組成。下位機采用C語言編程,上位機采用VC++6.O編程,以SQLever2000作為后臺數據庫,上位機與下位機之間采用RS-485總線通訊,研究并編寫基于MODBUS協議的工控軟件。實驗測試表明,本系統(tǒng)實現了上下位機基于MODBUS協議的RS-485總線通訊,在下位機LCD和上位機VC界面顯示數據值,在數據庫中保存實際數據值,并且繪制實際數據曲線,實時顯示數據誤差不超過l℃。本控制系統(tǒng)符合工業(yè)控制系統(tǒng)設計的要求,有較好的擴展性和多功能的特點,可以擴展到255個設備多點的溫度、濕度、壓力、流量等數據監(jiān)測控制,在橡膠、石油、冶金、食品加工、環(huán)境監(jiān)測等工業(yè)自動化控制系統(tǒng)中可以取代工控儀表和PLC的檢測和控制作用,開發(fā)具有自主知識產權產品并降低成本具有重要的現實意義,本文提出的方法對于采用MODBUS協議的智能控制系統(tǒng)的研究與開發(fā)也具有一定的理論研究和實用價值。
評論