基于RS-485總線的水輪機溫度監(jiān)測系統(tǒng)
1.3 系統(tǒng)通信協(xié)議約定
作為基于RS-485總線通信的分布式溫度監(jiān)測系統(tǒng),需要擬定于自身的軟件通信協(xié)議,對通信過程加以控制??紤]到與其他監(jiān)控系統(tǒng)的數(shù)據(jù)共享,對其他軟件系統(tǒng)預留通信接口。規(guī)定如下通信協(xié)議。
1.3.1 協(xié)議格式
協(xié)議格式為
地址、功能碼為1個字節(jié),數(shù)據(jù)長度為2個字節(jié),數(shù)據(jù)為n個字節(jié),采用CRC累加校驗,高位溢出。下發(fā)命令和指令返回都為此協(xié)議格式。主機PC和TCD-48溫度巡檢儀波特率均設置為9600 bit/s,初始狀態(tài)為串口中斷方式。PC主機定時發(fā)送召喚數(shù)據(jù)命令。溫度巡檢儀收到主機發(fā)送的命令時,先判斷召喚地址是否與自身相同:如果不同則不響應;如果相同則應答,根據(jù)功能碼上送主機需要的數(shù)據(jù)。
PC主機控制通信過程,主機接收到溫度巡檢儀上送數(shù)據(jù)后,結(jié)束本次通信過程;如果沒有收到應答,則繼續(xù)發(fā)送,如果3次不響應則視為線路故障。
1.3.2命令功能碼定義
功能碼主要包括溫度巡檢儀參數(shù)讀取、設置;校正零點、滿點、線性點;讀取通道溫度數(shù)據(jù):設置告警、溫度上下限等。
1.3.3 舉例
設告警(以下為16進制):發(fā)送指令03 06 000731 0064 00C8 1014 7E。
指令中,03為地址,06為設告警功能碼,0007為數(shù)據(jù)長度,3l為對所有通道,0064為設置告警。上限為100℃,00C8為設置告警上上限為200℃,1014為設置告警下限為-20℃。7E為校驗和。設置成功后返回碼為00 06 0007 31 0064 00C8 1014 7E。
2在線監(jiān)測程序設計
2.1程序開發(fā)環(huán)境和功能模塊
PC主機開發(fā)環(huán)境采用Visual Studio 2008,開發(fā)語言為C++。Visual Studio 2008構(gòu)建了許多開發(fā)、調(diào)試和代碼測試工具。并針對微軟基礎類庫MFC(Microsoft Foundation Class library)界面開發(fā)增加了觸模板(Ribbons)組件,大幅提高了開發(fā)效率和維護便捷性。本文使用MFC完成界面設計。并調(diào)用串行通信控件(MScomm)組件完成串口通信的控制。
程序的主要功能包括通信流程的控制、數(shù)據(jù)的存貯與轉(zhuǎn)發(fā)、數(shù)據(jù)顯示與處理分析。系統(tǒng)的服務與功能模塊如圖3所示。
圖3系統(tǒng)的服務與功能模塊
2.2溫度數(shù)據(jù)存貯與轉(zhuǎn)發(fā)接口
監(jiān)測系統(tǒng)的溫度數(shù)據(jù)存貯使用開源的MySQL數(shù)據(jù)庫。MySQL是一個真正的多用戶、多線程SQL數(shù)據(jù)庫服務器。MySQL是一個客戶機/服務器結(jié)構(gòu)的實現(xiàn),它由一個服務器守護程序mysqld和許多不同的客戶程序以及庫組成。MySQL提供了一套通信應用程序接口(CAPI)函數(shù)。它由一組函數(shù)以及一組用于函數(shù)的數(shù)據(jù)類型組成,這些函數(shù)與MySQL服務器進行通信并訪問數(shù)據(jù)庫,可以直接操控數(shù)據(jù)庫。使用其提供的函數(shù)連接MySQL數(shù)據(jù)庫代碼為
考慮到各個系統(tǒng)之間信息的互通性,尤其是和DCS的數(shù)據(jù)共享。特增加了數(shù)據(jù)轉(zhuǎn)發(fā)接口。設立監(jiān)聽端口2404,雙方約定使用excel建立溫度測點表。遵循IEC60870-5-104規(guī)約,利用主機網(wǎng)口進行通信。
評論