自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

基于OpenHarmony 系統(tǒng)通過Modbus協(xié)議讀取設備數(shù)據(jù)

系統(tǒng) OpenHarmony
Modbus RTU(Remote Terminal Unit 遠程終端單元):這種方式常采用RS-485做為物理層,一般利用芯片的串口實現(xiàn)數(shù)據(jù)報文的收發(fā),報文數(shù)據(jù)采用二進制數(shù)據(jù)進行通信。

想了解更多關于開源的內(nèi)容,請訪問:

51CTO 開源基礎軟件社區(qū)

https://ost.51cto.com

Modbus簡介

原文鏈接:鏈接

Modbus是一種串行通信協(xié)議,是Modicon公司(現(xiàn)在的施耐德電氣 Schneider Electric)于1979年為使用可編程邏輯控制器(PLC)通信而發(fā)表。Modbus已經(jīng)成為工業(yè)領域通信協(xié)議的業(yè)界標準(De facto),并且現(xiàn)在是工業(yè)電子設備之間常用的連接方式。

Modbus RTU(Remote Terminal Unit 遠程終端單元):這種方式常采用RS-485做為物理層,一般利用芯片的串口實現(xiàn)數(shù)據(jù)報文的收發(fā),報文數(shù)據(jù)采用二進制數(shù)據(jù)進行通信。

Modbus TCP/IP 或 Modbus TCP :這是一種 Modbus 變體版本,使用 TCP/IP 網(wǎng)絡進行通信,通過 502 端口進行連接。報文不需要校驗和計算,因為以太網(wǎng)底層已經(jīng)實現(xiàn)了CRC32 數(shù)據(jù)完整性校驗

Modbus RTU

地址:取值范圍是0-247,如果是0,就是主站廣播報文;如果是1-247,則有可能是主站請求或者從站應答。

功能碼:也就是報文命令,代表主站對從站的操作,讀或者寫。

數(shù)據(jù):數(shù)據(jù)字段,主請求報文,從應答報文會有所差異。也就是說假設抓取總線報文,如何區(qū)分是主站請求還是從站應答,則需要通過數(shù)據(jù)字段進行區(qū)分了。

CRC校驗:采樣CRC16,16位循環(huán)冗余校驗。

部分功能碼解析

1、功能碼 –讀線圈狀態(tài)

  • 主機發(fā)送:01 01 00 01 00 08 6C 0C
  • 從機回復: 01 01 01 2F 10 54
  • 主機解析:01 地址(設備ID)
01  功能碼;

            00 01  代表查詢的起始線圈地址,即從0001線圈開始查詢。

            00 08 查詢線圈數(shù)量。

            6C 0C 循環(huán)冗余校驗。

從機解析:01 地址(設備ID)。

01  功能碼;

            01  代表后面數(shù)據(jù)的字節(jié)數(shù)。

            2F    讀取以0001線圈開始的8個線圈的狀態(tài)。0x2F二進制為00101111,對應狀態(tài)為1111                         0100

            10 54 循環(huán)冗余校驗。

2、功能碼 –-讀離散輸入寄存器

功能:讀離散輸入寄存器,位操作,可讀單個或多個,類似功能碼0X01。

3、功能碼 –-讀保持寄存器的值

  • 主機發(fā)送:01 03 00 01 00 01 D5 CA
  • 從機回復: 01 03 02 00 01 79 84
  • 主機解析:01 地址(設備ID)
03  功能碼;

            00 01  代表查詢的起始寄存器地址,即從0001寄存器開始查詢。

            00 01 查詢寄存器數(shù)量。

            D5 CA 循環(huán)冗余校驗。

從機解析:01 地址(設備ID)。

03  功能碼;

            02  代表后面數(shù)據(jù)的字節(jié)數(shù)。

            00 01 查詢0001寄存器的值。

            79 84 循環(huán)冗余校驗。

4、功能碼 –-讀輸入寄存器

功能:讀輸入寄存器,字節(jié)操作,可讀單個或多個,類似功能碼0X03。

5、功能碼 –-寫單個保持寄存器

功能:對單個線圈進行寫操作,位操作,只能寫一個。寫入0xFF00表示將線圈置為ON,寫入0x0000表示將線圈置為OFF,其它值無效。

主機發(fā)送數(shù)據(jù):從站地址+功能碼+寄存器起始地址+數(shù)據(jù)值+校驗碼

    從站應答數(shù)據(jù):從站地址+功能碼+寄存器地址+寫入值+校驗碼

6、功能碼 –-寫單個保持寄存器

  • 主機發(fā)送:01 06 00 02 00 01 E9 CA
  • 從機回復: 01 06 00 02 00 01 E9 CA
  • 主機解析:01 地址(設備ID)
06  功能碼;

            00 02  代表待寫入的起始寄存器地址,即從0002寄存器開始寫數(shù)據(jù)。

            00 01 寫入的寄存器的值。即給0002寄存器寫入0001

            E9 CA 循環(huán)冗余校驗。

從機解析:01 地址(設備ID)。

06  功能碼;

            02  代表后面數(shù)據(jù)的字節(jié)數(shù)。

            00 01 查詢0001寄存器的值。

            E9 CA 循環(huán)冗余校驗。

7、功能碼 –-寫多個線圈狀態(tài)

  • 主機發(fā)送:01 0F 00 01 00 07 01 6B B2 B9
  • 從機回復: 01 0F 00 01 00 07 45 C9
  • 主機解析:01 地址(設備ID)
0F  功能碼;

            00 01  代表待寫入的起始線圈地址,即從0001線圈開始寫數(shù)據(jù)。

            00 07 待寫入的線圈的數(shù)量。

            01 后面寫入數(shù)據(jù)的字節(jié)數(shù)。

            6B寫入寄存器的值,即11010110。二進制01101011

            B2 B9 循環(huán)冗余校驗。

從機解析:01 地址(設備ID)。

0F  功能碼;

            00 01  代表待寫入的起始線圈地址,即從0001線圈開始寫數(shù)據(jù)。

            00 07 待寫入的線圈的數(shù)量。

            45 C9 循環(huán)冗余校驗。

8、功能碼 – 寫多個保持寄存器

  • 主機發(fā)送:01 10 00 04 00 03 06 00 01 00 00 00 01 5B 55
  • 從機回復: 01 10 00 04 00 03 C1 C9
  • 主機解析:01 地址(設備ID)
10  功能碼;

            00 04  代表待寫入的起始寄存器地址,即從0004寄存器開始寫數(shù)據(jù)。

            00 03 待寫入的寄存器的數(shù)量。

            06 后面寫入數(shù)據(jù)的字節(jié)數(shù)。

         0001,0000,0001寫入寄存器的值。即給0004,0005,0006寄存器分別寫入0001,0000,0001

            5B 55 循環(huán)冗余校驗。

從機解析:01 地址(設備ID)。

10  功能碼;

            00 04  代表待寫入的起始寄存器地址,即從0004寄存器開始寫數(shù)據(jù)。

            00 03 待寫入的的寄存器的值。即給0004,0005,0006寄存器分別寫入0001,0000,0001

            C1 C9 循環(huán)冗余校驗。

在OpenHarmony上面使用Modbus

原文鏈接:鏈接

加入Modbus C++庫libmodbus

適配文件在當前目錄下的cpp文件夾中。

庫文件:

基于OpenHarmony 系統(tǒng)通過Modbus協(xié)議讀取設備數(shù)據(jù)-開源基礎軟件社區(qū)基于OpenHarmony 系統(tǒng)通過Modbus協(xié)議讀取設備數(shù)據(jù)-開源基礎軟件社區(qū)

c文件:

基于OpenHarmony 系統(tǒng)通過Modbus協(xié)議讀取設備數(shù)據(jù)-開源基礎軟件社區(qū)基于OpenHarmony 系統(tǒng)通過Modbus協(xié)議讀取設備數(shù)據(jù)-開源基礎軟件社區(qū)

把上面文件加入編譯:

基于OpenHarmony 系統(tǒng)通過Modbus協(xié)議讀取設備數(shù)據(jù)-開源基礎軟件社區(qū)基于OpenHarmony 系統(tǒng)通過Modbus協(xié)議讀取設備數(shù)據(jù)-開源基礎軟件社區(qū)

Modbus TCP

配置Modbus信息

設置IP和端口號以及DeviceID。

基于OpenHarmony 系統(tǒng)通過Modbus協(xié)議讀取設備數(shù)據(jù)-開源基礎軟件社區(qū)基于OpenHarmony 系統(tǒng)通過Modbus協(xié)議讀取設備數(shù)據(jù)-開源基礎軟件社區(qū)

設置數(shù)據(jù)地址和長度。

基于OpenHarmony 系統(tǒng)通過Modbus協(xié)議讀取設備數(shù)據(jù)-開源基礎軟件社區(qū)基于OpenHarmony 系統(tǒng)通過Modbus協(xié)議讀取設備數(shù)據(jù)-開源基礎軟件社區(qū)

把測試代碼執(zhí)行起來

引入測試代碼庫。

基于OpenHarmony 系統(tǒng)通過Modbus協(xié)議讀取設備數(shù)據(jù)-開源基礎軟件社區(qū)基于OpenHarmony 系統(tǒng)通過Modbus協(xié)議讀取設備數(shù)據(jù)-開源基礎軟件社區(qū)

初始化Modbus連接。

基于OpenHarmony 系統(tǒng)通過Modbus協(xié)議讀取設備數(shù)據(jù)-開源基礎軟件社區(qū)基于OpenHarmony 系統(tǒng)通過Modbus協(xié)議讀取設備數(shù)據(jù)-開源基礎軟件社區(qū)

讀取數(shù)據(jù)。

基于OpenHarmony 系統(tǒng)通過Modbus協(xié)議讀取設備數(shù)據(jù)-開源基礎軟件社區(qū)基于OpenHarmony 系統(tǒng)通過Modbus協(xié)議讀取設備數(shù)據(jù)-開源基礎軟件社區(qū)

運行調(diào)試

基于OpenHarmony 系統(tǒng)通過Modbus協(xié)議讀取設備數(shù)據(jù)-開源基礎軟件社區(qū)基于OpenHarmony 系統(tǒng)通過Modbus協(xié)議讀取設備數(shù)據(jù)-開源基礎軟件社區(qū)

Modbus RTU

Modbus RTU主要是通過RS485或者232接口讀取數(shù)據(jù)的modbus協(xié)議。

libmodbus庫函數(shù)解析

功能碼函數(shù):

函數(shù)

功能嗎

modbus_read_registers

03

modbus_read_input_registers

04

modbus_read_bits

01

modbus_read_input_bits

02

modbus數(shù)據(jù)轉(zhuǎn)換函數(shù)

函數(shù)

轉(zhuǎn)換內(nèi)容

modbus_get_float_abcd

獲取浮點數(shù)ABCD

modbus_set_float_abcd

設置浮點數(shù)ABCD

想了解更多關于開源的內(nèi)容,請訪問:

51CTO 開源基礎軟件社區(qū)

https://ost.51cto.com

責任編輯:jianghua 來源: 51CTO 開源基礎軟件社區(qū)
相關推薦

2023-07-03 19:18:27

2024-10-30 13:37:10

2010-04-06 10:00:52

CentOS系統(tǒng)

2022-09-07 15:35:49

設備開發(fā)鴻蒙

2009-05-13 08:11:26

SUSELinuxsun

2022-10-13 16:24:27

家居安防系統(tǒng)鴻蒙

2021-03-25 17:17:49

NEC

2022-09-02 15:06:23

大數(shù)據(jù)物聯(lián)網(wǎng)

2024-09-24 17:49:36

2022-12-28 09:36:59

操作系統(tǒng)鴻蒙

2023-05-06 08:00:25

通訊協(xié)議字節(jié)

2020-09-18 06:37:18

Rarp協(xié)議操作系統(tǒng)

2021-03-10 18:07:58

協(xié)議調(diào)試 Modbus

2022-03-17 15:55:19

播放數(shù)字音頻解碼鴻蒙

2023-04-17 16:21:58

操作系統(tǒng)鴻蒙

2022-09-29 15:24:11

物聯(lián)網(wǎng)MQTT

2023-09-24 23:22:23

2013-02-01 18:07:06

中國石油微軟私有云平臺IT

2022-01-20 14:33:29

openharmonwayland協(xié)議鴻蒙

2022-10-25 14:51:11

設備開發(fā)鴻蒙
點贊
收藏

51CTO技術棧公眾號