4路光尺磁柵尺編碼器5MHz高速差分信號轉RS485/232/WiFi模塊
RS485光柵尺通訊模塊產品特點:
●光柵尺磁柵尺解碼轉換成標準Modbus RTU協議
●光柵尺5V差分信號直接輸入,4倍頻計數
●模塊可以輸出5V的電源給光柵尺供電
●高速光柵尺磁柵尺計數,頻率可達5MHz
●支持4個光柵尺同時計數,可識別正反轉
●也可以設置作為8路獨立DI高速計數器
●編碼器計數值支持斷電自動保存
●DI輸入和RS485/232通信接口之間1000V隔離
●通過RS-485/232接口可以清零和設置計數值
●寬電源供電范圍: 8 ~ 32VDC
●可靠性高,編程方便,易于應用
●標準DIN35導軌安裝,方便集中布線
●用戶可編程設置模塊地址、波特率等
●外形尺寸:120mmx70mmx43mm
典型應用:
●光柵尺磁柵尺長度測量
●流量計脈沖計數或流量測量
●生產線產品計數
●數控機床位置數據測量
●編碼器信號遠傳到工控機
●智能工廠與工業物聯網
●替代PLC直接傳數據到控制中心
RS485光柵尺通訊模塊產品概述:
IBF677產品實現傳感器和主機之間的信號采集,用來解碼光柵尺磁柵尺編碼器信號。IBF677系列產品可應用在RS-232/485總線 工業自動化控制系統,自動化機床,工業機器人,三坐標定位系統,位移測量,行程測量,角度測量,轉速測量,流量測量,產品計數等等。
產品包括信號隔離,脈沖信號捕捉,信號轉換和RS-485串行通信。每個串口可接255只IBF677系列模塊,通訊方式采用ASCI碼通訊協議或MODBUS RTU通訊協議,波特率可由代碼設置,能與其他廠家的控制模塊掛在同- -RS-485總線上,便于計算機編程。
IBF677系列產品是基于單片機的智能監測和控制系統,所有的用戶設定的地址,波特率,數據格式,奇偶校驗等配置信息都儲存在非易失性存儲器EEPROM里。
IBF677系列產品按工業標準設計、制造,信號輸入/輸出之間不隔離,抗干擾能力強,可靠性高。工作溫度范圍- 45°C~ +85°C。
功能簡介:
IBF677遠程I/O模塊,可以用來測量四路編碼器信號,也可以設置作為八路獨立計數器
1、信號輸入
4路編碼器5V差分信號輸入或8路5V差分信號獨立計數器。
2、通訊協議
通訊接口: 1 路標準的RS-485通訊接口或1路標準的RS-232通訊接口,訂貨選型時注明。
通訊協議:支持兩種協議,命令集定義的字符協議和MODBUSRTU通訊協議。模塊自動識別通訊協議,能實現與多種品牌的PLC、RTU或計算機監控系統進行網絡通訊。
數據格式: 10位。1位起始位,8位數據位,1位停止位。無校驗。
通訊地址(0~255)和波特率(2400、 4800、9600、19200、 38400、57600、115200bps) 均可設定;通訊網絡距離可達1200米,通過雙絞屏蔽電纜連接。
通訊接口高抗干擾設計,+15KV ESD保護,通信響應時間小于100mS。
3、WiFi 通訊協議
通訊接口: WiFi 網絡接口。可以連接到局域網里的WiFi,再連接到以太網。
通訊協議:支持MQTT協議,可以連接阿里云,騰訊云,華為云,中移物聯OneNET,私有云等等各種MQTT服務器。也可以采用MODBUS TCP協議,實現工業以太網數據交換。
同時也支持TCP/UDP/WebSocket等通訊協議。
網絡緩存: 2K Byte (收與發都是)
通信響應時間:小于10mS。
4、抗干擾
可根據需要設置校驗和。模塊內部有瞬態抑制二極管,可以有效抑制各種浪涌脈沖,保護模塊,內部的數字濾波,也可以很好的抑制來自電網的工頻干擾。
RS485光柵尺通訊模塊產品選型:
選型舉例1:型號: IBF677- 485-WiFi-N 表示輸出為RS-485接口, WiFi內置天線
選型舉例2:型號: IBF677- -232-WiFi-W 表示輸出 為RS-232接口,WiFi外置天線
選型舉例3:型號: IBF677- -485-WiFi-X . 表示輸出為RS-485接口, WiFi吸盤天線
IBF677通用參數:
(typical @ +25°C,Vs為24VDC)
輸入類型: 5V 差分信號輸入。差分信號范圍+200mV ~+7V。
頻率范圍0-5MHz (所有通道同時輸入)。
編碼器計數范圍- 2147483647~ +2147483647,采用4倍頻計數,斷電自動保存
DI計數器范圍0~4294967295,斷電自動保存
通 訊1:協議RS-485 或RS-232
標準字符協議和MODBUS RTU通訊協議
波特率(2400、 4800、 9600、19200、 38400、57600 、115200bps) 可網頁設置
地址(0~255)可網頁設置
通 訊2:MQTT通訊協議或者MODBUS TCP通訊協議或TCP/UDP
通訊響應時間: 100ms大
工作電源:+8~32VDC寬供電范圍,內部有防反接和過壓保護電路
功率消耗:小于1W
工作溫度:- 45 ~ +80°C
工作濕度:10~90%(無凝露)
存儲溫度:-45~+80°C
存儲濕度:10 ~ 95% (無凝露)
隔離耐壓:DI輸入和電源共地,和通訊接口之間1000V 隔離。
外形尺寸:120mmX70mmx43mm
引腳定義:
1,讓模塊進入AP模式 (1)接通電源,將模塊的側面的開關撥到初始化位置。 (2)打開手機“無線局域網”或者 “設置- + WLAN",找到WiFi名稱為“wifi8"的WiFi進行連接。 | |
此模塊出廠密碼為: 12345678,然后“加入” | |
2,進入模塊網頁。 連接上模塊的 WiFi 后,稍等幾秒后會自動跳轉到模塊的內置網頁,如左圖所示。如果手機無法自動跳轉,也可以打開手機瀏覽器,輸入地址 192.168.4.1 登錄。點擊配置模塊參數鏈接可以進入配置界面 | |
3,配置模塊 DI參數 請根據實際需要修改以下參數: (1) AOBO~A3B3 輸入計數模式: 計數模式 0: 編碼器 AB 信號輸入; 計數模式 1: 兩路獨立的計數器輸入: 請根據實際輸入的傳感器填寫,光柵尺磁柵尺請選擇編碼器 AB 信號輸入。 (2)編碼器 0~3 每轉脈沖數: 編碼器的每轉脈沖數如果需要測量轉速,請根據實際參數設置。模塊將自動換算每分鐘轉速。 (3)編碼器 0~3 脈沖倍率:設置每個脈沖對應的實際值,默認為 1,實際的工程值按這個值和實際 4倍頻脈沖數換算得到。例如每個脈沖是0.005mm,可以設置為 0.005, 那么實際工程值就是 0.005*脈沖數。 (4)DI 計數邊沿: 可設置不同的邊沿觸發計數,0表示上升沿計數,1 表示下降沿計數。正常使用使用默認的上升沿計數就行。 | |
(5)AO~B3 每轉脈沖數: DI 的每轉脈沖數,如果需要測量轉速,請根據實際參數設置。模塊將自動換算每分鐘轉速。 (6)AO~B3 濾波時間:取值范圍是 0到65535如果是 0,代表不濾波: 其他值代表濾波的時間單位是 mS(毫秒)。如果 DI 輸入點是機械開關或者是機械繼電器,建議設置濾波時間為20mS。 (7)AO~B3 脈沖倍率:設置每個脈沖對應的實際值默認為 1,實際的工程值按這個值和實際脈沖換算得到。例如每個脈沖是 0.005mm,可以設置為 0.005,那么實際工程值就是 0.005*脈沖數。 | |
4,配置模塊 RS485/232 參數 請根據實際需要修改以下參數: (8)模塊地址:模塊的通訊ID,默認是 1。 (9)模塊波特率:模塊通訊的波特率,默認是 9600 (10)模塊的奇偶校驗:默認是無校驗。 5,配置模塊 WiFi 參數 請根據實際需要修改以下參數: (11) WiFi 賬號: 連接此地覆蓋的 WiFi。 (12)WiFi 密碼: 填入 Wii 的密碼如果已經連接不用重復輸入。 (13)工作方式: 選擇工作模式,根據實際應用填寫可選 TCP Server,TCP Client,UDP,MODBUSTCP,Websocket 等等 (14)本地 I P設置: 如果只是用 MOTT 協議,可以設置為自動獲取 IP。如果要 Modbus TCP 或者網頁訪問數據,建議手動設置成固定 IP,方便通過IP 地址和模塊通訊。 (15)IP 地址: 設置模塊的 IP 地址,必須是當前 WiFi所在的網段,且不要和局域網內其他設備的 IP地址相同。例如: Wii 路由器的 IP 是192.168.0.1,那么可以設置模塊的 IP 為192.168.0.7 (16)默認網關: 模塊的網關,填當前 WiFi 路由器的IP 地址。例如: WiFi 路由器的 I 是 192.168.0.1,填寫這個 IP 地址就行 (17)子網掩碼: 模塊的子網掩碼,如果沒有跨網段填默認值 255.255.255.0 即可 (18)本地端口: 模塊的通訊端口,MODBUS 通訊般用 502 端口。 (19遠程服務器 I 地址:遠程服務器 I,TCPClient 和 UDP 需要連接的服務器。 (20)遠程服務器端口:服務器的端口。 (21)自動上報時間間隔:模塊定時上報數據的時間間隔,設置為 0 表示不自動上報數據。 (22)計數變化自動上報: 計數有變化就上報一條數據,只可以用在數據變化非常慢的場合,否則會發送大量數據。 (23)模塊名稱: 用戶自定一個模塊的名稱,用于區分不同的模塊。 (24) MOTT 設置:如果用到 MOTT 通訊,則需要打開 MOTT 功能。(25)MQTT服務器地址: 填寫MOTT服務器的地址例如: brokeremqx.io 如果是本地服務器 P 為 192.168.0.100,可以寫192.168.0.100 (26)MOTT Client ID,用戶名,密碼,端口,發布主題,訂閱主題等參數請按 MQTT 服務器的要求來填寫。MQTT 的 QoS 為 0,不可修改。 (27)MQTT 發布時間間隔: 模塊自動發布數據給MQTT 服務器的時間間隔,單位是 ms。設置為0 表示取消定時發布功能。 6,保存參數 參數設置完成后,點擊保存并重啟按鈕,模塊將保存參數,并自動重啟,然后將模塊的側面的開關撥到正常位置,模塊將按設置好的參數工作。 | |
7,網頁在線查看數據 在模塊的主頁上點擊在線查看數據鏈接可以進入數據查看界面。如左圖所示 如果模塊的 P 地址是 192.168.0.5,用戶也可以通過訪問鏈接 192.168.0.5/readData 來獲取 Json 格式的數據。 DI 狀態表示輸入的電平狀態, 脈沖計數器為測量到的脈沖累計數。 脈沖頻率為每秒的脈沖數 脈沖時間間隔為的兩次脈沖之間的時間間隔單位為 (秒) 實際工程值由脈沖計數器的值乘以網頁上設置的脈沖倍率得到。用于自動換算實際的流量,長度,產量等數據。 轉速由頻率和每轉脈沖數換算得到。用于自動換算實際的每分鐘轉速。 清零計數值可以寫 0 到表格,然后點擊設置,計數值就會清零。也可以設置其他數值,用于修改計數值。 | |
8,批量設置參數 在模塊的主頁上點擊 Json 批量配置鏈接可以進入批量設置界面。如左圖所示 數據必須是標準的 Json 格式,可以設置全部參數,也可以只設置部分參數。 如果要設置的產品比較多,通過批量設置可以節省時。 填寫完成后點擊按鈕 Save Json data 即可。 舉例 1: 只修改 WiFi 賬號密碼可以發送: 〔"WifiSsid"."w", "WifPassword":"12345678", "setIp". 1, "ipAddress": "192.168.0.5", "gateway": "192.168.0.1" "netmask": "255.255.255.0"〕 舉例 2:只修改 MQTT 參數可以發送: 〔 "setMOTT": 1. "mgttHostUrl". "broker.emqxio" "port": 1883, "clientld": "mqtt test 001", "username"", "passwd"", "topic": "mqtt_topic_001", "pubTime": 2000, "pubonchange": 0 〕 | |
9,局域網上也可以打開模塊網頁 如果模塊已經連接上了當地的wifi,可以在電腦或手機瀏覽器中輸入模塊IP,例如:192.168.0.5.可打開模塊網頁(前提是電腦IP或手機IP與模塊在相同網段,登陸網頁要根據當前模塊的IP地圳來登陸操作),即可進入模塊內部網頁。也可以配置模塊或者讀取模塊的數據,操作方法與上面表格是一樣的。 |
字符通訊協議:
以下命令是按模塊的地址為默認的 01 發送的,如果修改了模塊地址,請把 01 改成新的地址。
RS485.RS232.WiFi的 TCP/UDP 通訊都可以采用以下通訊協議。
RS485/RS232通訊:出廠默認的地址為01,波特率為 9600,無奇偶校驗。如果忘記地址和波特率,可以把開關撥到初始化位置,模塊會進入配置模式,地址為01,波特率為 9600,無奇偶校驗。可以通過手機連接 WiFi查看參數或重新配置參數,也可以發送配置命令修改參數。設置完成請把開關撥到正常位置。
WiFi 通訊:如果要設置 WF 賬號和密碼以及其他參數,可以把開關撥到初始化位置,模塊會進入 AP 配置模式手機連接模塊產生的 wif8 名稱的 AP 即可進入配置界面。設置完成請把開關撥到正常位置。
MOTT 協議:連接成功后,向模塊的 MOTT 訂閱主題發送命令,回復的數據顯示在模塊的 MOTT 發布主題上.
TCP Server,TCP Client,UDP Mode,Web Socket等工作方式下:連接成功后,可以發送命令和接收數據
WiFi 通訊如果設置了自動上報,上報的數據格式與(1、讀取數據命令)的回復格式相同。
1、讀取數據命令
發送: #01 (WiFi通訊,如果設置了定時自動上報,就不用發送命令,模塊會定時上報數據)
回復:
"devName":"EC6260835FBC"."time".3908582."diMode":0.1.1.1 ."distate":1.1.1.1.1.0.11 ."enCounter":0.0.0.0."enFrequency": 0.0.0.0 ."enActualData": 0.0.0.0 . enSpeed":0.0.0.0 . diC ounter": 0.0.0.0.0.0.0.0 ."diFrequency":0.0.0.0.0.0.0.01."diActualData": 0.0.0.0.0.0.0.01."diSpeed":0.0.0.0.0.0.0.012
格式說明:
編碼器數據按通道0~3 順序排列:獨立DI數據按A0BO~A3B3 順序排列
"devName“模塊名稱,可以根據需要在網頁上修改
"time"模塊內部時間,單位mS
"diMode"模塊計數模式。計數模式0:編碼器 AB 信號輸入:計數模式1: 兩路獨立的計數器輸入
"diS tate"DI狀態表示輸入的電平狀態。
”enCounter "編碼器計數器測量到的脈沖累計數,脈沖計數采用的是 4 倍頻計數法。 (計數模式 0)
“enFrequency”編碼器脈沖頻率為每秒的脈沖數。(計數模式 0)
“enActualData”編碼器實際工程值由編碼器脈沖計數器的值乘以網頁上設置的脈沖倍率得到。用于自動換算實際的流量,長度,產量等數據。 (計數模式 0)
“enSpeed "編碼器轉速由編碼器頻率和每轉脈沖數換算得到。用于自動換算實際的每分鐘轉速或流量等.(計數模式 0)
”diCounter "獨立計數器測量到的脈沖累計數。 (計數模式 1)
“diFrequency”脈沖頻率為每秒的脈沖數。 (計數模式1)
“diActualData”實際工程值由脈沖計數器的值乘以網頁上設置的脈沖倍率得到。用于自動換算實際的流量,長度,產量等數據。(計數模式 1)
"diSpeed "轉速由頻率和每轉脈沖數換算得到。用于自動換算實際的每分鐘轉速。 (計數模式 1)
也可以讀單組數據,例如讀取編碼器計數器
發送: #01>enCounter
回復:!"enCounter":[0,0.0.0];
例如讀取編碼器實際工程值:
發送: #01>enFrequency
回復:"enFrequency":[0.0.0.0]
讀取其他參數發送對應的參數字符即可
2、設置編碼器0~3 計數值命令
設置編碼器 0~3 計數值可以是 0或者其他數值,可以清零或者修改計數值。
發送: $0l!"setEn0Count":0."setEnlCount":0."setEn2Count":0."setEn3Count":0?
或$0l!"setEn0Count":666."setEnlCount":777."setEn2Count":888."setEn3Count":999;
只設置單個通道: S0l"setEn0Count":0?
同時設置一個相同的值給所有通道: SOl"setAlIDICount":0?
回復:!01(cr) 表示設置成功;? 01(cr) 表示命令錯誤
3設置脈沖計數器A0~B3 計數值命令
設置脈沖計數器 AO~B3 的值,可以是 0 或者其他數值,可以清零或者修改計數值。
發送:$01$"setA0Count":0."setB0Count":0. "setA1Count":0."setBICount":0, "setA2Count":0."setB2Count":0'setA3Count":0."setB3Count":0?
或$0lg"setA0Count":1000."setB0Count":2000.'setA 1Count":3000."setB 1Count":l. "setA2Count":2."setB2Count":3. "setA3Count":999."setB3Count":888
只設置單個通道: SOl!"setAOCount":0
同時設置一個相同的值給所有通道: SOl"setAlIDICount":01
回復:!01(cr) 表示設置成功:? 01(cr) 表示命令錯誤
4、讀取配置命令
讀取模塊的配置參數,也可以在網頁里直接查看
發送: ReadConfig
回復:
("enPluse":1.1.1.1j"enZoom": 1..1.1 "diMode":0.1.11 ."diEdge":1.1.1.1.1.1.1."diPluse": 1.1.1.1.1.1.1.11"diFier":(0.0,0.0.0,0,0,0)."diZoom":[1,1,1,1,1.1.1."saveData":1."D":1."Baud":115200"Check":1"WifiSsid"."w"" wifiPassword"."12345678"."workmode":0."setlp":1."ipAddress"."192.168.0.15"."gateway"." 192.168.0.1"."netmask"."255.255255.0" "localPort".23 "remoteerverlp"."192.168.0.165" "remotePort".23."send Time".2147483647."devName":"EC6260835FBC"."setMOTT":0"mgttHostUrl"."."port":1883,"clientld"."."username".""."passwd"."" "topic"."."pubTime":2000."subtopic"."
5、設置配置命令
設置模塊的配置參數,也可以在網頁里直接設置。可以設置全部參數或者部分參數,設置完模塊會自動重啟
發送: WriteConfig?"enPluse":1.1.1.11."enZoom":1.1.1. ."diMode":0.1.1.1"diEdge":1.1.1.1.1.1.1.1 ."diPluse":1.1.1.1.1.1.1l."diFilter":0.0.0.0.0.0.0.0 ,"diZom": 1,1.1,1,1,1,1,1 ,"saveData":1."D":1,"Baud":115200 "Check":1."wifiSsid":"w"."WifiPassword""12345678"."workmode":0,"setlP":1."ipAddress"."192.168.0.15"."gateway":"192.168.0. 1"."netmask"."255.255.255.0"."localPort":23."remoteServerlp"." 192.168.0.165"."remotePort".23."sendTime":2147483647."deName":"EC6260835FBC"."setM0TT"0."mgtHostUrl"." "port":1883."clientld"." "username"."m "passwd".m."topic".'"."pubTime":2000."subtopic"."
也可以只設置單個參數,例如修改波特率: WriteConfig!"Baud":115200!
例如設置斷電不保存計數值: WriteConfig"saveData":0?
回復:!01(cr) 表示設置成功:?01(cr) 表示命令錯誤
Modbus通訊協議:
RS485/RS232通訊:支持Modbus RTU協議,出廠默認的地址為01,波特率為9600,無奇偶校驗。如果忘記地址和波特率,可以把開關撥到初始化位置,模塊會進入配置模式,地址為 01,波特率為 9600,無奇偶校驗。可以通過手機連接 WiFi 查看參數或重新配置參數,也可以發送配置命令修改參數。設置完成請把開關撥到正常位置。
WiFi通訊:支持 Modbus TCP 協議。如果要設置 WiFi 賬號和密碼以及其他參數,可以把開關撥到初始化位置模塊會進入 AP 配置模式,手機連接模塊產生的 wifi8 名稱的 AP 即可進入配置界面。設置完成請把開關撥到正常位置。
Modbus RTU通訊協議和Modbus TCP通訊協議的寄存器表格如下:
支持功能碼01
支持功能碼 03.06.16
Modbus RTU 通訊舉例:
03(0x03)讀保持寄存器
假如模塊地址為01,以16 進制發送: 01 03 00 00 00 02 C4 0B ,即可取得寄存器的數據。
01 | 03 | 00 | 00 | 00 | 02 | C4 | 0B |
模塊IP | 讀寄存器 | 地址高位 | 地址低位 | 數量高位 | 數量低位 | CRC 校驗低位 | CRC 校驗高位 |
假如模塊回復:01 03 04 CA 90 FF FF C4 76 即讀到的數據為0XFFFFCA90,換成10 進制為-13680,即表明現在編碼
器0的計數值為-13680
01 | 03 | 04 | CA | 90 | FF | FF | C4 | 76 |
模塊IP | 讀寄存器 | 字節數 | 1高位 | 1低位 | 2高位 | 2低位 | CRC 校驗低位 | CRC 校驗高位 |
假如模塊地址為 01,以16 進制發送: 01 03 00 64 00 02 85 D4,即可取得寄存器的數據
01 | 03 | 00 | 64 | 00 | 02 | 85 | D4 |
模塊IP | 讀寄存器 | 地址高位 | 地址低位 | 數量高位 | 數量低位 | CRC 校驗低位 | CRC 校驗高位 |
假如模塊回復: 01 03 04 CA 90 FF FF C4 76 即讀到的數據為 0xFFFFCA90,換成 10 進制為 4294953616,即表明現在
通道 A0的計數值為4294953616。
01 | 03 | 04 | CA | 90 | FF | FF | C4 | 76 |
模塊IP | 讀寄存器 | 字節數 | 1高位 | 1低位 | 2高位 | 2低位 | CRC 校驗低位 | CRC 校驗高位 |
06(0x06)寫單個寄存器
假如模塊地址為01,以16 進制發送: 01 06 00 43 00 0A F8 19 ,即清零編碼器0 的計數值
01 | 06 | 00 | 43 | 00 | 0A | F8 | 19 |
模塊IP | 寫單個寄存器 | 地址高位 | 地址低位 | 數量高位 | 數量低位 | CRC 校驗低位 | CRC 校驗高位 |
假如模塊回復:01 06 00 43 00 0A F8 19即表示設置成功,編碼器0的計數值修改為0.
01 | 06 | 00 | 43 | 00 | 0A | F8 | 19 |
模塊IP | 寫單個寄存器 | 地址高位 | 地址低位 | 數量高位 | 數量低位 | CRC 校驗低位 | CRC 校驗高位 |
Modbus TCP 通訊舉例:
01(0x01)讀線圈
在一個遠程設備中,使用該功能碼讀取線圈的1 至2000 連續狀態。請求PDU詳細說明了起始地址,即第一個線圈地址和線圈編號。從零開始尋址線圈。因此尋址線圈1-16 為0-15。
根據數據域的每個位(bit)將響應報文中的線圈分成為一個線圈。指示狀態為I= ON 和= OFF。第一個數據作為字節的LSB(有效位),后面的線圈數據依次向高位排列,來組成8位一個的字節。如果返回的輸出數量不是八的倍數,將用零填充最后數據字節中的剩余位(bit) (一直到字節的高位端)。字節數量域說明了數據的完整字節數
功能碼01舉例:
請求 | 響應 | ||||
字段名稱 | 十六進制 | 字段名稱 | 十六進制 | ||
MBAP報文頭 | 傳輸標識 | 01 | MBAP報文頭 | 傳輸標識 | 01 |
00 | 00 | ||||
協議標志 | 00 | 協議標志 | 00 | ||
00 | 00 | ||||
長度 | 00 | 長度 | 00 | ||
06 | 04 | ||||
單元標識符 | 01 | 單元標識符 | 01 | ||
功能碼 | 01 | 功能碼 | 01 | ||
起始地址 Hi | 00 | 字節數 | 01 | ||
起始地址 Lo | 20 | 輸出數據 | 00 | ||
輸出數量 Hi | 00 | ||||
輸出數量 Lo | 08 |
03(0x03)讀保持寄存器
在一個遠程設備中,使用該功能碼讀取保持寄存器連續塊的內容。請求PDU說明了起始寄存器地址和寄存器數量。從零開始尋址寄存器。因此,尋址寄存器1-16 為0-15。在響應報文中,每個寄存器有兩字節,第一個字節為數據高位,第二個字節為數據低位。
功能碼03 舉例:
請求 | 響應 | ||||
字段名稱 | 十六進制 | 字段名稱 | 十六進制 | ||
MBAP報文頭 | 傳輸標識 | 01 | MBAP報文頭 | 傳輸標識 | 01 |
00 | 00 | ||||
協議標志 | 00 | 協議標志 | 00 | ||
00 | 00 | ||||
長度 | 00 | 長度 | 00 | ||
06 | 05 | ||||
單元標識符 | 01 | 單元標識符 | 01 | ||
功能碼 | 01 | 功能碼 | 03 | ||
起始地址 Hi | 00 | 字節數 | 02 | ||
起始地址 Lo | 20 | 寄存器值Hi | 00 | ||
寄存器編號Hi | 00 | 寄存器值Lo | 00 | ||
寄存器編號Lo | 01 |
05(0x05)寫單個線圈
在一個遠程設備上,使用該功能碼寫單個輸出為ON 或OFF。請求PDU說明了強制的線圈地址。從零開始尋址線圈。因此,尋址線圈地址1為0。線圈值域的常量說明請求的ON/OFF 狀態。十六進制值0XFFOO請求線圈為ON。十六進制值0x0000請求線圈為OFF。其它所有值均為非法的,并且對線圈不起作用。
正確的響應應管是和請求一樣的。
功能碼05舉例:
請求 | 響應 | ||||
字段名稱 | 十六進制 | 字段名稱 | 十六進制 | ||
MBAP報文頭 | 傳輸標識 | 01 | MBAP報文頭 | 傳輸標識 | 01 |
00 | 00 | ||||
協議標志 | 00 | 協議標志 | 00 | ||
00 | 00 | ||||
長度 | 00 | 長度 | 00 | ||
06 | 06 | ||||
單元標識符 | 01 | 單元標識符 | 01 | ||
功能碼 | 05 | 功能碼 | 05 | ||
輸出地址 Hi | 00 | 輸出地址 Hi | 00 | ||
輸出地址 Lo | 00 | 輸出地址 Lo | 00 | ||
輸出值Hi | FF | 輸出值Hi | FF | ||
輸出值Lo | 00 | 輸出值Lo | 00 |
06(0x06)寫單個寄存器
在一個遠程設備中,使用該功能碼寫單個保持寄存器。請求PDU說明了被寫入寄存器的地址。從零開始尋址寄存器。因此,尋址寄存器地址1為0。
正確的響應應答是和請求一樣的。
功能碼06舉例:
請求 | 響應 | ||||
字段名稱 | 十六進制 | 字段名稱 | 十六進制 | ||
MBAP報文頭 | 傳輸標識 | 01 | MBAP報文頭 | 傳輸標識 | 01 |
00 | 00 | ||||
協議標志 | 00 | 協議標志 | 00 | ||
00 | 00 | ||||
長度 | 00 | 長度 | 00 | ||
06 | 06 | ||||
單元標識符 | 01 | 單元標識符 | 01 | ||
功能碼 | 06 | 功能碼 | 06 | ||
寄存器地址 Hi | 00 | 寄存器地址 Hi | 00 | ||
寄存器地址 Lo | 00 | 寄存器地址 Lo | 00 | ||
寄存器值Hi | 00 | 寄存器值Hi | 00 | ||
寄存器值Lo | FF | 寄存器值Lo | FF |
15(0x0F)寫多個線圈
在一個遠程設備上,使用該功能碼寫多個輸出為ON 或OFF。請求PDU說明了強制的線圈地址。從零開始尋址線圈。因此,尋址線圈地址1為0。線圈值域的常量說明請求的ON/OFF 狀態。數據由16進制換算成二進制按位排列,位值為1請求線圈為ON,位值為0請求線圈為OFF。
功能碼15舉例:
請求 | 響應 | ||||
字段名稱 | 十六進制 | 字段名稱 | 十六進制 | ||
MBAP報文頭 | 傳輸標識 | 01 | MBAP報文頭 | 傳輸標識 | 01 |
00 | 00 | ||||
協議標志 | 00 | 協議標志 | 00 | ||
00 | 00 | ||||
長度 | 00 | 長度 | 00 | ||
06 | 06 | ||||
單元標識符 | 01 | 單元標識符 | 01 | ||
功能碼 | 0F | 功能碼 | 0F | ||
開始地址 Hi | 00 | 寄存器地址 Hi | 00 | ||
開始地址 Lo | 00 | 寄存器地址 Lo | 00 | ||
線圈數量Hi | 00 | 線圈數量Hi | 00 | ||
線圈數量Lo | 02 | 線圈數量Lo | 02 | ||
字節數 | 01 | ||||
輸出值 | 02 |
16(0x10)寫多個寄存器
在一個遠程設備中,使用該功能碼寫多個保持寄存器。請求PDU說明了被寫入寄存器的地址。從零開始尋址寄存器。因此,尋址寄存器地址1為0。功能碼16舉例:
請求 | 響應 | ||||
字段名稱 | 十六進制 | 字段名稱 | 十六進制 | ||
MBAP報文頭 | 傳輸標識 | 01 | MBAP報文頭 | 傳輸標識 | 01 |
00 | 00 | ||||
協議標志 | 00 | 協議標志 | 00 | ||
00 | 00 | ||||
長度 | 00 | 長度 | 00 | ||
06 | 06 | ||||
單元標識符 | 01 | 單元標識符 | 01 | ||
功能碼 | 0F | 功能碼 | 0F | ||
開始寄存器地址 Hi | 00 | 開始寄存器地址 Hi | 00 | ||
開始寄存器地址 Lo | 00 | 開始寄存器地址 Lo | 00 | ||
寄存器數量Hi | 00 | 寄存器數量Hi | 00 | ||
寄存器數量Lo | 02 | 寄存器數量Lo | 02 | ||
字節數 | 04 | ||||
寄存器值Hi | 00 | ||||
寄存器值Lo | 05 | ||||
寄存器值Hi | 00 | ||||
寄存器值Lo | 06 |
2
網站客服咨詢客服
熱線電話:
13962107506