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

系統上位機程序采用DELPHI語(yǔ)言編寫(xiě),它具有功能強大、簡(jiǎn)便易用和代碼執行速度快的特點(diǎn),是新一代可視化快速應用開(kāi)發(fā)工具。利用DELPHI實(shí)現串口通信常用的方法有3種:(1)利用控件,如SPCOMM控件、MSCOMM控件及APRO控件等;(2)使用API函數;(3)調用其他串口通信程序。本系統選用較簡(jiǎn)單的SPCOMM控件來(lái)完成串口選擇、波特率設置、幀格式設置、發(fā)送和接收緩沖區控制、打開(kāi)串口等任務(wù),用Timer控件控制發(fā)送地址碼信息。上位機PC串行通訊流程圖如圖2所示,其串口通信部分相關(guān)程序如下:
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
判斷接受到下位機發(fā)送的應答信息,若是則繼續執行
sendbuf:=操作命令字符;//發(fā)送操作命令
comm1.writecommdata(@sendbuf,1);
oper_comm.:=false;
end;
elsebegin
雙絞線(xiàn)傳輸器相關(guān)文章:雙絞線(xiàn)傳輸器原理
評論