基于RTU油井遠程測控系統的數據采集與傳輸層軟件設計
(2)Modbus/RTU通信協(xié)議實(shí)現
Modbus主站需要處理發(fā)送請求幀、等待應答、處理應答、處理差錯和等待轉換延時(shí)等事件。其主站設計流程如圖5所示。
Modbus/RTU報文幀是否完整和幀與幀之間的區分可以通過(guò)空閑間隔來(lái)實(shí)現,但這需要使用定時(shí)器完成1.5個(gè)字符和3.5個(gè)字符的定時(shí),并在定時(shí)到后,進(jìn)入接收處理函數,然后實(shí)現ADU數據到PDU數據的處理。
3.2.3 系統軟件的實(shí)現
系統上電后,首先進(jìn)行初始化操作,主要包括設置串口、定時(shí)器等內容,并讀取EEPROM中的配置信息,對RTU進(jìn)行配置,包括主從工作模式選擇、IP地址設置、輪詢(xún)的通信方式選擇、傳感器的開(kāi)關(guān)狀態(tài)、繼電器輸出狀態(tài)等。若處于主站狀態(tài),還可以獲取從站配置信息并配置從站,配置成功后,主站開(kāi)始對各從站進(jìn)行掃描,并對從站報文進(jìn)行處理;每掃描完一個(gè)從站,主站就對輪詢(xún)到的數據進(jìn)行存儲;在掃描從站的同時(shí),如果主站傳感器和外部繼電器處于開(kāi)狀態(tài),會(huì )同時(shí)采集模擬通道和數字通道的數據并控制外部繼電器,采集到的數據存于相應寄存器中,等待上位機請求命令,按照Modbus協(xié)議將相應數據打包,并上傳到上位機。若處于從站,采集模擬通道和數字通道的數據并控制外部繼電器,采集到的數據存于相應寄存器中,并等待RTU主站輪詢(xún)命令,當輪詢(xún)到該從站時(shí),按Modbus協(xié)議打包數據并發(fā)送到RTU主站。不管該RTU是主站還是從站,其TCP/IP的服務(wù)器程序一直等待系統配置軟件的配置信息,當收到配置信息后,將數據存入EEPROM并復位系統程序,整個(gè)系統設計流程圖如圖6所示。
從圖6中可以同時(shí)看到Modbus/RTU和Modbus/TCP的從站處理函數,在實(shí)際應用中,RTU處于Modbus/RTU主站時(shí),其Modbus/RTU從站的
處理任務(wù)不運行,Modbus/TCP從站的處理任務(wù)運行,該狀態(tài)下RTU可用于圖1中井場(chǎng)1的RTU主站和井場(chǎng)2的RTU兩種情況;處于Modbus/RTU從站時(shí),該狀態(tài)下RTU可用于圖1中井場(chǎng)1的從站情況,以太網(wǎng)服務(wù)器任務(wù)只等待配置信息。
評論