日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

普通PC通过USB转485串口 ModBus-RTU通信协议控制伺服电机

發布時間:2024/8/26 综合教程 55 生活家
生活随笔 收集整理的這篇文章主要介紹了 普通PC通过USB转485串口 ModBus-RTU通信协议控制伺服电机 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、RS485通信

RS485 是半雙工通信(2 線制),可以一點對多點進行組網,而且 RS485 是用纜線兩端的電壓差值來表示傳遞信號,這與 RS232 電氣特性大不一樣。RS485 僅僅規定了接收端和發送端的電氣特性,并沒有規定或推薦任何數據協議

RS485 采用兩根通信線,通常用 A 和 B 或者 D+和 D-來表示。邏輯“1”以兩線之間的電壓差為+(0.2~6)V 表示,邏輯“0”以兩線間的電壓差為-(0.2~6)V 來表示,是一種典型的差分通信,
電平與 TTL 電平兼容,可方便與 TTL 電路連接。

優點:

RS485的接口信號電平比RS231-C低,不易損壞接口電路的芯片,且該電平與TTL電平兼容,方便于TTL電路相連接。

RS485的數據最高傳輸速率為10Mbps。其平衡雙絞線的長度與傳輸速率呈反比,在100kbps速率下,才可能使用規定的最長電纜長度,只有在很短的距離下才能獲得最高傳輸速率。

RS485接口采用平衡驅動器和差分接收器的組合,抗共模干擾能力強,即抗噪聲干擾性好,因而通信距離遠,最大傳輸距離大約為1200m,實際可達3000m。

RS485接口在總線上允許連接多達128個收發器,既具有多站能力。同時需要兩個終端電阻,其阻值要求等于傳輸電纜的特性阻抗。在短距離300m內傳輸時可不連接終端電阻。

RS485引腳定義

RS-232與RS-422及RS-485三者之間的特性與區別

二、ModBus-RTU通信協議

modbus協議已經成為通用工業標準,通過協議,控制器與控制器、控制器通過網絡(以太網)與其他設備之間可以實現串行通信。RTU即遠程終端單元,消息中每8位包含兩個十六進制字符。在相同的波特率下,這種方法比ASCII方式傳送的數據量大。

2.1.1 圖解區

2.2 ModBus-RTU詳解

Modbus 一個工業上常用的通訊協議、一種通訊約定。Modbus協議包括RTU、ASCII、TCP。其中MODBUS-RTU最常用,比較簡單,在單片機上很容易實現。

上面圖中看到了報文格式:下面詳細分析一條報文:01 06 00 01 00 17 98 04

010600 0100 1798 04
從機地址功能號數據地址數據CRC校驗

這一串數據的意思是:把數據 0x0017(十進制23) 寫入 1號從機地址 0x0001數據地址

2.1.1 圖解報文格式

1、主機對從機寫數據操作
如果單片機接收到一個報文那么就對報文進行解析執行相應的處理,如上面報文:
    01             06            00 01           00 17        98 04 
  從機地址        功能號          數據地址          數據         CRC校驗

假如本機地址是 1 ,那么單片機接收到這串數據根據數據計算CRC校驗判斷數據是否正確,如果判斷數據無誤,則結果是:
            HoldDataReg[1]  =  0x0017;
MODBUS主機就完成了一次對從機數據的寫操作,實現了通訊。

2、主機對從機讀數據操作
主機進行讀HoldDataReg[1] 操作,則報文是:
    01             03           00 01         00 01          D5 CA 
 從機地址        功能號          數據地址      讀取數據個數       CRC校驗
那么單片機接收到這串數據根據數據計算CRC校驗判斷數據是否正確,如果判斷數據無誤,則結果是:返回信息給主機,返回的信息也是有格式的:
返回內容:  
    01       03           02          0017        F8 4A
  從機地址   功能號     數據字節個數    兩個字節數據    CRC校驗
MODBUS主機就完成了一次對從機數據的讀操作,實現了通訊。

2.1.2 CRC校驗

意義:例如上面的 98 04 是它前面的數據(01 06 00 01 00 17)通過一算法(見附錄2,很簡單的)計算出來的結果,其實就像是計算累加和那樣。(累加和:就是010600010017加起來的值,然后它的算法就是加法)。
作用:在數據傳輸過程中可能數據會發生錯誤,CRC檢驗檢測接收的數據是否正確。比如主機發出01 06 00 01 00 17 98 04,那么從機接收到后要根據01 06 00 01 00 17 再計算CRC校驗值,從機判斷自己計算出來的CRC校驗是否與接收的CRC校驗(98 04主機計算的)相等,如果不相等那么說明數據傳輸有錯誤這些數據不能要。

2.1.3 功能碼

常用功能碼
01 (0x01) 讀線圈
02 (0x02) 讀離散量輸入
03 (0x03) 讀保持寄存器
04(0x04) 讀輸入寄存器
05 (0x05) 寫單個線圈
06 (0x06) 寫單個寄存器
15 (0x0F) 寫多個線圈
16 (0x10) 寫多個寄存器

總結

以上是生活随笔為你收集整理的普通PC通过USB转485串口 ModBus-RTU通信协议控制伺服电机的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。