基于μC/OS―II操作系統的數據采集控制系統
3.2 數據采集/控制模塊軟件設計
RS一485標準只是一個(gè)物理的通信接口標準,要實(shí)現總線(xiàn)監控還要在此基礎上建立自己的高層通信協(xié)議。Modbus協(xié)議是美國可編程控制器供應商Modicon公司制定的一種工業(yè)通訊協(xié)議,現在已經(jīng)被許多工控廠(chǎng)商所支持,廣泛的應用到只能儀表,總線(xiàn)監控等領(lǐng)域。
Modbus協(xié)議采用主從結構的通信方式,適用于半雙工的RS一485總線(xiàn)。協(xié)議規定總線(xiàn)上有一個(gè)主機,多個(gè)從機,每個(gè)主機分配唯一的地址。工作時(shí)可采用命令/應答的通訊方式,主機向要從機發(fā)出命令幀,地址匹配的從機進(jìn)行響應,并向主機發(fā)出與命令幀對應的應答幀。Modbus有兩種通信模式:ASCII模式和RTU模式。在相同的情況下,RTU模式比ASCII模式能夠傳送更多的數據,因此在本系統中采用RTU模式。RTU消息幀典型格式如表l所示。本文引用地址:http://dyxdggzs.com/article/195879.htm
在本采集控制系統中,核心模塊作為主機,各個(gè)采集和控制模塊作為從機響應主機發(fā)出的命令幀。當主機發(fā)送Ox03功能碼時(shí),從機會(huì )把模擬量的值或者狀態(tài)量/頻率量的值返回給主機。當主機發(fā)送0x16功能碼時(shí),會(huì )使控制模塊開(kāi)關(guān)量通斷,并且控制模塊會(huì )返回當前的狀態(tài)。每個(gè)數據采集/控制模塊有4路輸入或輸出通道。因此在每個(gè)采集/控制模塊內部定義了4個(gè)寄存器,每個(gè)寄存器占兩個(gè)字節。采集/控制模塊按字節接收數據,每接收一個(gè)字節就進(jìn)入一次串口中斷。進(jìn)入串口中斷之后,對接收到的數據進(jìn)行解析。解析數據的流程圖如圖5所示。首先判斷地址是否與本機地址匹配,地址不匹配則放棄本次接受。地址匹配之后再保存功能碼。當數據幀接收完之后,對接收到的數據進(jìn)行CRC校驗,并于接收到的CRC校驗碼進(jìn)行比較。若CRC校驗錯誤,則放棄本次數據。若CRC校驗正確,主程序則根據保存的功能碼,寄存器起始地址以及寄存器個(gè)數來(lái)響應主機。當功能碼為Ox03時(shí),采集模塊根據接收到寄存器起始地址及寄存器個(gè)數將采集到的數據發(fā)送給主機。當功能碼為Oxl6時(shí),控制模塊根據接收到的寄存器值打開(kāi)或關(guān)閉繼電器,并且將繼電器狀態(tài)返回給主機。
4 結束語(yǔ)
該數據采集控制系統可以對模擬信號、狀態(tài)量以及脈沖量進(jìn)行采集和處理,并且能夠根據采集的數據來(lái)控制繼電器的開(kāi)關(guān)。主機和模塊之間通過(guò)RS一485總線(xiàn)以標準的Modbus協(xié)議傳輸數據。因此可以很容易的實(shí)現擴展和與其它廠(chǎng)商的檢測儀表進(jìn)行集成。該系統采用了實(shí)時(shí)操作系統,使系統優(yōu)先級明確,提高了實(shí)時(shí)性,同時(shí)實(shí)現了大容量的數據存儲和遠程網(wǎng)絡(luò )訪(fǎng)問(wèn)。因此本系統有很好的實(shí)用性,已經(jīng)被我們應用到灌溉施肥控制系統中。
評論