有做過485總線接多個傳感器的老哥嗎?現在遇到一個情況,就是同時在總線上同時接多個傳感器,會有傳感器沒有回傳資料幀,如果把這個沒有回傳資料幀的傳感器,只把他自己接到總線上,卻正常回傳資料。有老哥知道這是咋回事嗎?
uj5u.com熱心網友回復:
那根總線上就接了一個風速,一個風向,一個百葉箱,一個雨量,,然后風速風向正常,但是百葉箱的資料就時有時無,多數時候是0的,不過有資料的時候是正確的資料,雨量壓根就沒資料,直接0uj5u.com熱心網友回復:
發送幀是沒問題的uj5u.com熱心網友回復:
modbus rtu 輪詢1s,前半秒發送,后半秒接收uj5u.com熱心網友回復:
終端電阻接了嗎uj5u.com熱心網友回復:
1、采用什么協議?如果是modbus,從機地址是否有相同的?2、終端匹配電阻120歐接了嗎?
3、直接用串口助手當做主機來輪詢試試
uj5u.com熱心網友回復:
線很短 不會超過30m,所以就沒接終端電阻,您提到的第三點,我去現場試一下uj5u.com熱心網友回復:
最多20m左右所以就沒接終端電阻,奇怪uj5u.com熱心網友回復:
485總線多機通訊必須有對應的協議的軟硬體,每個站點必須設定地址,使用比如modbus等協議,終端必須電阻匹配uj5u.com熱心網友回復:
主機從機總線連接結構是星型、總線型、徑訓鏈?建議用總線式末端120歐姆電阻匹配uj5u.com熱心網友回復:
可能總線上的傳感器地址有相同的,即地址沖突。把每個傳感器單獨掛在總線上,讀取其地址,更改地址相同的。確保每個傳感器的地址不同,且不能為0。然后全部接上,試試能不能讀到資料。如果地址沒有沖突,那就看接線是否正確,牢靠,不排除這個傳感器自身有問題。uj5u.com熱心網友回復:
1、RS485總線終端電阻很重要2、從機地址不能相同
3、主站發送和接收以及從站發送和接收的時序要正確。
即:
(1)、主站發送時,所有的從站必須處于監聽狀態
(2)、 主站發送完畢,必須要等到資料完全發送到從站,才能將【發送模式】切換到【監聽模式】
很多同學用空中斷發送是有問題滴!在RS485總線,最后一個位元組必須用發送完成中斷發送,在最后一個位元組發送的結尾切換到【監聽模式】。
(3)、從機接收到報文后并且檢測到在等待了3.5字符的時間內沒有接收到其余字符,就認為已經接收到了一幀完整的報文,開始決議報文,決議完成,給主站發送報文前,先進行模式切換,即從【監聽模式】切換到【發送模式】,
接收開始給主站發送報文。
很多同學用空中斷發送是有問題滴!在RS485總線,最后一個位元組必須用發送完成中斷發送,在最后一個位元組發送的結尾切換到【監聽模式】。
uj5u.com熱心網友回復:
所有的從站初始上電時,都處于【監聽模式】;主站剛剛上電時,處于【發送模式】
uj5u.com熱心網友回復:
雖然距離不遠還和你的布線,和布線環境有關。轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/20422.html
標籤:單片機/工控
下一篇:老哥們 該怎么用c語言進行編程啊
