博客專欄

        EEPW首頁 > 博客 > 振弦采集模塊UART 通訊協議

        振弦采集模塊UART 通訊協議

        發布人:河北穩控科技 時間:2022-11-15 來源:工程師 發布文章

        振弦采集模塊UART 通訊協議


        UART 接口支持標準的工業 MODBUS 通訊協議( 03、 04、 06、 16 指令碼)和自定義的簡單 AABB協議以及$字符串指令集。 前兩種協議均支持基于模塊地址和總線連接的一主多從應用結構, 在總線中, VMXXX 模塊始終作為從機使用( 被動等待指令, 不主動上傳數據,但“ 自動上傳數據”和“ 軟件握手” 除外, 詳見后續對應章節說明)。

        VM501-11.jpg

        建議使用專用的 VMTool 工具進行寄存器指令的生成和測試,關于 VMTool 的基本用法,請詳見“ 第四章:參數配置工具的使用” 。根據下述通訊協議規則,讀寫寄存器。在使用 MODBUS 或 AABB 通訊協議時, 請確認模塊的軟件握手參數處于關閉狀態(默認)。


        (一) MODBUS 通訊協議

        在 MODBUS 協議下, VMXXX 內部所有寄存器被定義為“ 保持寄存器” (詳見 MODBUS 通訊協議標準說明),模塊支持基于 MODBUS 協議的多個連續寄存器讀取、單個寄存器寫入、多個連續寄存器寫入三種指令, 對應指令碼分別為 0x03(或 0x04)、 0x06、 0x10。 下面逐一說明每種指令碼的指令和返回數據幀格式。



        ( 1) 03/04( 0x03/0x04) 指令碼: 讀取多個連續的寄存器數據,指令格式如下

        指令數據幀結構

        通訊協議指令數據幀結構.jpg


        例:讀取地址為 0x01 的模塊寄存器值,寄存器開始地址為 0,連續讀取 10 個寄存器

        主機發送指令: 0x01 0x03 0x00 0x00 0x00 0x0A 0xC5 0xCD


        從機返回應答: 0x01 0x03 0x14 0x00 0x01 0x00 0x60 0x00 0x00 0x00 0x00 0x00 0x000x00 0x01 0x01 0xF4 0x00 0x00 0x00 0x64 0x00 0xC8 0x5F 0x8F(下劃線為讀取到的 10 個寄存器值)

        主機發送指令: 0x01 0x04 0x00 0x00 0x00 0x0A 0x70 0x0D

        從機返回應答: 0x01 0x04 0x14 0x00 0x01 0x00 0x60 0x00 0x00 0x00 0x00 0x00 0x000x00 0x01 0x01 0xF4 0x00 0x00 0x00 0x14 0x14 0xC8 0xB7 0x62(下劃線為讀取到的 10 個寄存器值)

        讀取多個連續寄存器時, 單次讀取不要超過 64 個寄存器, 不要試圖讀取不存在的寄存器( 地址大于 63 的寄存器)。


        ( 2) 06( 0x06) 指令碼: 修改單個寄存器的值, 指令格式如下

        通訊協議指令數據幀結構2.jpg



        例: 將地址為 0x01 的模塊中的寄存器 8 的值修改為 100

        主機發送指令: 0x01 0x06 0x00 0x08 0x00 0x64 0x09 0xE3

        從機返回應答: 0x01 0x06 0x00 0x08 0x00 0x64 0x09 0xE3

        ( 3) 16( 0x10) 指令碼: 修改連續的多個寄存器的值, 指令格式如下


        通訊協議指令數據幀結構3.jpg

        例:修改地址為 0x01 的模塊中 0~31 寄存器的值

        主機發送指令( 16 進制指令): 01 10 00 00 00 20 40 00 01 00 60 00 00 00 03 00 00 00 01 01 F4 00 00 00 C8 C8 C8 00 01 82 35 00 05 03 E8 00 A0 05 DC 06 40 00 05 00 64 00 00 00 0A 00 0A 00 04 01 77 03 15 00 00 00 00 03 E8 00 01 00 00 00 00 00 00 A3 70(下劃線數據為 32 個寄存器值)

        從機返回應答: 0x01 0x10 0x00 0x00 0x00 0x20 0xXX 0xXX  VMXXX 的 UART 接收緩存為 80 字節,向模塊發送多寄存器寫指令時,單幀指令長度不要超限。


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。




        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 遂川县| 汉沽区| 灵武市| 富锦市| 葫芦岛市| 东阿县| 高邮市| 乐山市| 句容市| 会东县| 灵川县| 甘德县| 黄骅市| 宁强县| 磐安县| 双桥区| 永顺县| 定安县| 大港区| 托里县| 邳州市| 怀远县| 浮梁县| 乌海市| 大港区| 平安县| 凌云县| 井冈山市| 木兰县| 宣化县| 吉首市| 兰西县| 治多县| 泌阳县| 丹凤县| 丹东市| 济宁市| 西和县| 女性| 隆回县| 黄大仙区|