一、Modbus介紹
Modbus 協定是應用于電子控制器上的一種通用語言。Modbus 是一個請求/應答協定。通過此協定,控制器互相之間、控制器經由網絡(例如以太網)和其它裝置之間可以通信。它已經成為一通用工業标準。因為有了Modbus協定,不同廠商生産的控制裝置可以連成工業網絡,進行集中監控。Modbus 協定定義了一個控制器能認識使用的消息結構,而不管它們是經過何種網絡進行通信的。它描述了一控制器請求通路其它裝置的過程,如何回應來自其它裝置的請求,以及怎樣偵測錯誤并記錄。它制定了消息域格局和内容的公共格式。
MODBUS協定支援傳統的RS-232、RS-422、RS-485和以太網裝置。許多工業裝置,包括PLC,DCS,智能儀表等都在使用Modbus協定作為他們之間的通訊标準。
二、Modbus采集配置
MODBUS協定具體采集配置配合裝置儀表:
例如:
1.協定類型:Modbus-RTU協定
2.實體層:(這是配合網關接線以及要配置的資料)
(1)傳輸接口:RS-485(差分)
(2)通訊位址:1~247
(3)通訊波特率:4800 bps或9600 bps或19200 bps或38400bps
(4)通訊媒體:屏蔽雙絞線
3.資料鍊路層
(1)一個資料幀格式:1位起始位,8位資料,2位停止位。
(2)一個資料包格式:(該儀表為BIT 資料)
位址 Address | 功能 Function | 資料 Data | 校驗碼 CRC |
8 bits | N×8 bits | 16 bits |
以微控Modbus配置軟體來講解網關接口屬性:
配置裝置屬性:
4.變量位址配置設定
變量位址配置設定是具體儀表以及裝置功能去做的配置,以實作資料采集。以下圖裝置寄存器位址進行示範配置:
配置變量位址:
5.讀資料功能碼3(03H):
三、Modbus通訊封包
一個封包就是一幀資料,一個資料幀就一個封包:指的是一串完整的指令資料,就像上面的一串資料。
封包模型:
網關封包發出與接受:
TX為發出封包,RX為接收封包
四、modbus轉發配置
本次采用模拟TCP 裝置發出的資料。ModbusTCP是運作在TCP/IP上的Modbus封包傳輸協定。通過此協定,控制器互相之間通過網絡(例如以太網)和其他裝置之間可以通信。ModbusTCP是開放的協定,IANA給Modbus協定賦予TCP編口号為502,這是目前在儀表與自動化行業中唯一配置設定到的端口号。
(modsim32)
流程圖:
采用公司産品 網關 網口(NET1)接受資料。具體配置如下:
Modbus 轉發配置如下:
通訊方式選擇:TCPClient
IP要轉發的的位址,
端口号要與轉發端口設定一緻,
驅動選擇:DeliverModbus
建立轉發裝置資料如下圖:
雲服務接受轉發的資料(118.190.90.201)配置如下:
在網口NET做配置:
通訊方式:TCPSever
IP 以及端口号要與轉發端一緻
驅動:Modbus
位元組流:TCP
建立接收裝置配置 如下圖:
連接配接成功後:連接配接狀态為1 ,發送位元組和接收位元組 都有資料。
五、Modbus通訊封包
Modbus TCP 通訊封包
發出封包解析:
06:封包長度 01:位址 03:功能碼 0000:寄存器起始位址 0002:寄存器長度
接收封包解析:
07:封包長度 01:位址 03:功能碼 04:資料位元組長度 00000000:為4個位元組長度(00一個位元組長度)