新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > RS485總線在智能供電系統中的應用

        RS485總線在智能供電系統中的應用

        作者: 時間:2012-06-19 來源:網絡 收藏

          (3)各臺下位機不相互通信,且不主動發送命令和數據,同一時刻只有一個下位機發送信息給上位機。為了識別每個下位機,系統通過撥碼開關等硬件電路為其分配一個特定地址。進行通訊前,上位機首先通過RS485總線廣播地址信息,所有下位機都偵聽廣播,并中斷接收。下位機接收到地址信息后,進行地址比對,若地址相同,則該下位機把本機地址作為應答信號發送回上位機,然后開始準備接收上位機發來的操作數據信息,而其它的下位機因地址不符,從中斷返回。上位機接收下位機發回的應答地址信息后,比較地址信息,如果相符,正式發送數據信息,如果不符則重新發送地址信息。下位機收到上位機發送的操作數據包后,根據數據包格式把有效數據做累加,然后與接收到的累加和(即校驗碼)比較,若相同,則執行相應的操作,并發送成功回饋信息給上位機;若不相同,則說明發送的數據中有錯誤,將接收數據緩存區清零,并要求上位機重新發送。

          3.2PC上位機軟件設計

          系統上位機程序采用DELPHI語言編寫,它具有功能強大、簡便易用和代碼執行速度快的特點,是新一代可視化快速應用開發工具。利用DELPHI實現串口通信常用的方法有3種:(1)利用控件,如SPCOMM控件、MSCOMM控件及APRO控件等;(2)使用API函數;(3)調用其他串口通信程序。本系統選用較簡單的SPCOMM控件來完成串口選擇、波特率設置、幀格式設置、發送和接收緩沖區控制、打開串口等任務,用Timer控件控制發送地址碼信息。上位機PC流程圖如圖2所示,其串口通信部分相關程序如下:

          procedureTform1.Timer1Timer(Sender:TObject);

          begin

          comm1.BaudRate:=9600;comm1.parity:=None;

          comm1.StopBits:=_1;comm1.ByteSize:=_8;

          oper_comm:=true;//串口接受數據流控制變量

          comm1.WriteCommData(@sendbuf,1);

          end;

          接收程序代碼:

          procedureTform1.Comm1ReceiveData(Buffer:Pointer;BufferLength:Word);

          Begin

          move(buffer︿,(@rbuf)︿,bufferlength);//將緩沖區數據轉移到rbuf變量

          ifoper_comm=truethen

          begin

          判斷接受到下位機發送的應答信息,若是則繼續執行

          sendbuf:=操作命令字符;//發送操作命令

          comm1.writecommdata(@sendbuf,1);

          oper_comm.:=false;

          end;

          elsebegin

        雙絞線傳輸器相關文章:雙絞線傳輸器原理


        關鍵詞: DSP MAX485 串行通訊

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 二连浩特市| 灵寿县| 津市市| 龙岩市| 太仆寺旗| 任丘市| 文山县| 河北区| 文成县| 琼结县| 探索| 阳泉市| 平湖市| 诸暨市| 金寨县| 信丰县| 济宁市| 内黄县| 佛冈县| 洛浦县| 麻江县| 琼结县| 长葛市| 宁明县| 乐山市| 上饶县| 星座| 泽库县| 通山县| 通化市| 聂荣县| 寻乌县| 泸水县| 周口市| 沙雅县| 长治市| 浦东新区| 神农架林区| 南投市| 文成县| 永春县|