首页 > 其他分享 >振弦采集模块UART 通讯协议

振弦采集模块UART 通讯协议

时间:2022-11-15 11:11:12浏览次数:47  
标签:00 UART 振弦 0x00 0x01 指令 模块 寄存器

振弦采集模块UART 通讯协议

UART 接口支持标准的工业 MODBUS 通讯协议( 03、 04、 06、 16 指令码)和自定义的简单 AABB协议以及$字符串指令集。 前两种协议均支持基于模块地址和总线连接的一主多从应用结构, 在总线中, VMXXX 模块始终作为从机使用( 被动等待指令, 不主动上传数据,但“ 自动上传数据”和“ 软件握手” 除外, 详见后续对应章节说明)。
建议使用专用的 VMTool 工具进行寄存器指令的生成和测试,关于 VMTool 的基本用法,请详见“ 第四章:参数配置工具的使用” 。根据下述通讯协议规则,读写寄存器。在使用 MODBUS 或 AABB 通讯协议时, 请确认模块的软件握手参数处于关闭状态(默认)。

 

(一) MODBUS 通讯协议
在 MODBUS 协议下, VMXXX 内部所有寄存器被定义为“ 保持寄存器” (详见 MODBUS 通讯协议标准说明),模块支持基于 MODBUS 协议的多个连续寄存器读取、单个寄存器写入、多个连续寄存器写入三种指令, 对应指令码分别为 0x03(或 0x04)、 0x06、 0x10。 下面逐一说明每种指令码的指令和返回数据帧格式。


( 1) 03/04( 0x03/0x04) 指令码: 读取多个连续的寄存器数据,指令格式如下
指令数据帧结构

 


例:读取地址为 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) 指令码: 修改单个寄存器的值, 指令格式如下

 

 

例: 将地址为 0x01 的模块中的寄存器 8 的值修改为 100
主机发送指令: 0x01 0x06 0x00 0x08 0x00 0x64 0x09 0xE3
从机返回应答: 0x01 0x06 0x00 0x08 0x00 0x64 0x09 0xE3
( 3) 16( 0x10) 指令码: 修改连续的多个寄存器的值, 指令格式如下

 


例:修改地址为 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 字节,向模块发送多寄存器写指令时,单帧指令长度不要超限。

 

标签:00,UART,振弦,0x00,0x01,指令,模块,寄存器
From: https://www.cnblogs.com/wenkon/p/16891733.html

相关文章

  • 3 ansible常用模块命令
    Ansible常用模块命令ansible命令格式:ansible<host-pattern>[-mmodule_name][-aargs][options]<host-pattern>:指定主机组或IP[-mmodule_name]:指定调用模块......
  • node的模块讲解
    node的模块划分 内置模块(不需要安装的)http(提供http服务的)fs(fileSystem文件系统)url(url地址)path(路径)event(事件源)net(通信)io(流)... 第三方模块(需要安装)expressmd......
  • Maven项目分模块开发
    Maven项目分模块开发1.分模块开发设计按照功能拆分我们现在的项目都是在一个模块中,比如前面的SSM整合开发。虽然这样做功能也都实现了,但是也存在了一些问题,我们拿银行......
  • Python之requests模块-大文件上传
    最近在做接口测试时,拿到一个分片上传文件的接口,http接口请求头中的Content-Type为multipart/form-data。需要在客户端将大文件分片成数据块后,依次传给服务端,由服务端还原成......
  • Python使用zipfile模块压缩目录(包含空目录)、压缩文件、解压文件
    主要功能:压缩目录、压缩文件、解压文件importosimportzipfile#压缩目录、或文件defzip(srcPath=None,zipFilePath=None,includeDirInZip=True):ifnotzi......
  • python-时间模块-3大常见时间处理模块-datatime(八)
    1.datatime模块datetime是python中处理日期时间的标准库,datetime模块中常用的类包括date,time,datetime,timedelta,使用这些对象支持日期时间的数学运算和更有效的解析......
  • 振弦采集模块(智能振弦传感器核心)的通讯协议
    振弦采集模块的通讯协议通讯协议是上位机通过VMXXX模块支持的数字接口完成信息交互的数据格式、传输步骤、通讯速率等的一系列预先约定。上位机必须按照本章描述的通......
  • SocketServer模块
    1.1SocketServer四种基本流及异步处理理论部分1、SocketServer作用1.socket无法支持多并发,SocketServer可以实现多并发2.SocketServe......
  • webpack模块化的原理
    commonjs在webpack中既可以书写commonjs模块也可以书写es模块,而且不用考虑浏览器的兼容性问题,我们来分析一下原理。首先搞清楚commonjs模块化的处理方式,简单配置一下webp......
  • 转速测量脉冲信号采集 Modbus模块 编码器脉冲计数器pnp/npn转485
    特点:●编码器解码转换成标准ModbusRTU协议●可用作编码器计数器或者转速测量●支持编码器计数,可识别正反转●也可以设置作为2路独立DI高速计数器●计数值支持断电自动......