新聞中心

        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 串行通訊

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 新建县| 革吉县| 来宾市| 安义县| 彭山县| 桑日县| 洛浦县| 兴业县| 东明县| 鹤壁市| 三明市| 长阳| 黑水县| 广水市| 西藏| 封开县| 任丘市| 保山市| 和静县| 安龙县| 长阳| 雷州市| 平乡县| 芜湖市| 大姚县| 乐安县| 平原县| 阿尔山市| 石屏县| 明水县| 岳西县| 长宁区| 福泉市| 湘西| 水城县| 荣昌县| 蒲江县| 巩义市| 上饶市| 陵川县| 房产|