新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > 基于μC/OS―II操作系統的數據采集控制系統

        基于μC/OS―II操作系統的數據采集控制系統

        作者: 時間:2009-05-05 來源:網絡 收藏

        3.2 /控制模塊軟件設計
        RS一485標準只是一個物理的通信接口標準,要實現總線監(jiān)控還要在此基礎上建立自己的高層通信協議。Modbus協議是美國可編程控制器供應商Modicon公司制定的一種工業(yè)通訊協議,現在已經被許多工控廠商所支持,廣泛的應用到只能儀表,總線監(jiān)控等領域。
        Modbus協議采用主從結構的通信方式,適用于半雙工的RS一485總線。協議規(guī)定總線上有一個主機,多個從機,每個主機分配唯一的地址。工作時可采用命令/應答的通訊方式,主機向要從機發(fā)出命令幀,地址匹配的從機進行響應,并向主機發(fā)出與命令幀對應的應答幀。Modbus有兩種通信模式:ASCII模式和RTU模式。在相同的情況下,RTU模式比ASCII模式能夠傳送更多的數據,因此在本系統中采用RTU模式。RTU消息幀典型格式如表l所示。

        本文引用地址:http://www.104case.com/article/195879.htm

        在本采集中,核心模塊作為主機,各個采集和控制模塊作為從機響應主機發(fā)出的命令幀。當主機發(fā)送Ox03功能碼時,從機會把模擬量的值或者狀態(tài)量/頻率量的值返回給主機。當主機發(fā)送0x16功能碼時,會使控制模塊開關量通斷,并且控制模塊會返回當前的狀態(tài)。每個/控制模塊有4路輸入或輸出通道。因此在每個采集/控制模塊內部定義了4個寄存器,每個寄存器占兩個字節(jié)。采集/控制模塊按字節(jié)接收數據,每接收一個字節(jié)就進入一次串口中斷。進入串口中斷之后,對接收到的數據進行解析。解析數據的流程圖如圖5所示。首先判斷地址是否與本機地址匹配,地址不匹配則放棄本次接受。地址匹配之后再保存功能碼。當數據幀接收完之后,對接收到的數據進行CRC校驗,并于接收到的CRC校驗碼進行比較。若CRC校驗錯誤,則放棄本次數據。若CRC校驗正確,主程序則根據保存的功能碼,寄存器起始地址以及寄存器個數來響應主機。當功能碼為Ox03時,采集模塊根據接收到寄存器起始地址及寄存器個數將采集到的數據發(fā)送給主機。當功能碼為Oxl6時,控制模塊根據接收到的寄存器值打開或關閉繼電器,并且將繼電器狀態(tài)返回給主機。

        4 結束語
        可以對模擬信號、狀態(tài)量以及脈沖量進行采集和處理,并且能夠根據采集的數據來控制繼電器的開關。主機和模塊之間通過RS一485總線以標準的Modbus協議傳輸數據。因此可以很容易的實現擴展和與其它廠商的檢測儀表進行集成。該系統采用了實時,使系統優(yōu)先級明確,提高了實時性,同時實現了大容量的數據存儲和遠程網絡訪問。因此本系統有很好的實用性,已經被我們應用到灌溉施肥中。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 苏尼特左旗| 安宁市| 临邑县| 井冈山市| 郯城县| 固始县| 泽普县| 定远县| 同德县| 扎赉特旗| 大理市| 抚顺县| 广东省| 汶上县| 同德县| 宝兴县| 民乐县| 乌海市| 麦盖提县| 鄱阳县| 利辛县| 星座| 德令哈市| 竹溪县| 锡林浩特市| 松溪县| 称多县| 丹江口市| 张家口市| 峨眉山市| 郧西县| 青河县| 株洲县| 元谋县| 苏尼特右旗| 罗山县| 英吉沙县| 昌黎县| 河北省| 全椒县| 七台河市|