称重模块使用说明
ZFADM001通讯协议
ZFADM001规格书
ZFADM002系列称重模块通信协议
ZFADM002规格书
本站点使用 MrDoc 构建
-
+
ZFADM002系列称重模块通信协议
# ZFADM002系列称重模块通信协议 >i **ZFADM002是一个系列模块* >模块支持OTA,支持定制通讯协议 > 本协议为ZFADM002系列模块均支持 | 模块型号 | 说明 | 备注 | | --- | --- | --- | | ZFADM002-TTL | TTL专用 |硬件版本R1.1 | | ZFADM002-RS485 | 485专用 |硬件版本 R1.1 | | ZFADM002-R2.0 | RS485&TTL二合一,短接点选择 | 硬件版本R2.0 | | ZFADM002X | RS48最小尺寸,传感器内置款 | 批量定制 | | ZFADM002XY |TTL专用版本,MX1.25接线端子 | 批量定制 | | ZFADM002A4 |RS485&RS232双通讯接口,支持4只全桥传感器并联,半桥传感器组桥 | | ## 版本历史 | 版本 | 编写人员 | 日期 | 说明 | |------|----------|------------|----------------------------------| | V1.3 | 黎工 | 2025-01-20 | 适用ADM002系列模块,app固件为V2.8.X;增加示例说明,错误修正。 | ## 串口通信格式 | 起始位 | 数据位 | 停止位 | 奇偶校验位 | 默认波特率 | |--------|--------|--------|------------|------------| | 1 | 8 | 1 | 无 | 19200 | **支持波特率:** 9600、19200、38400、57600、115200 ## 数据帧格式 | 数据方向 | 设备地址 | 功能码 | 读/写 | 参数 | 校验码 | |----------|----------|--------|-------|-------|--------| | 发送 | 1Byte | 1Byte | 1Byte | nByte | 1Byte | | 返回 | 1Byte | 1Byte | 无 | nByte | 1Byte | - **数据采用十六进制编码,每帧指令发送间隔时间应不小于30ms。** - **设备地址:** 设备地址范围为 1 至 255,**地址 0 为广播地址**。 - **功能码:** 用于区分指令功能,返回的**功能码将增加1**。 - **读/写:** 0x00表示读操作,0x01表示写操作。 - **参数:** 不同功能码对应的参数内容、长度不同,具体参数请参考指令说明。 - **校验码:** 采用和校验,帧内所有字节(不含校验码)的累加和的低8位。 ## 功能指令 ### 1、读取设备信息(只读) | 数据方向 | 设备地址 | 功能码 | 读/写 | 参数 | 校验码 | |----------|----------|--------|-------|-------|--------| | 发送 | 0x01 | 0x00 | 0x00 | 1Byte | / | | 返回 | 0x01 | 0x01 | 无 | 3/1Byte | / | ① 发送的第1个参数字节表示读取的设备信息类型: - `0x00`:软件版本号(3Byte) **示例:** - 发送:`01 00 00 00 01`;读取软件版本号(可以使用广播地址00 00 00 00 00) - 返回:`01 01 01 03 00 06`;版本号1.3.0 ### 2、读取重量(只读) | 数据方向 | 设备地址 | 功能码 | 读/写 | 参数 | 校验码 | |----------|----------|--------|-------|------|--------| | 发送 | 0x01 | 0x02 | 0x00 | 无 | / | | 返回 | 0x01 | 0x03 | 无 | 4Byte | / | ① 返回的第1个参数字节为状态码,按位解析: - `[0]`:正负,0为负数,1为正数 - `[1]`:判稳状态,0为不稳定,1为稳定 - `[2-4]`:保留位 - `[5]`:超载状态,0为未超载,1为超载 - `[6]`:AD状态,0为正常,1为故障 - `[7]`:保留位 ② 返回的第2-4个参数字节为重量值。 **示例:** - 发送:`01 02 00 03`;读取重量值 - 返回:`01 03 03 00 4E 20 2A`;正数、稳定、未超载、AD正常,重量20000g - 返回:`01 03 00 00 4E 20 2A`;负数、不稳定、未超载、AD正常,重量-20000g ### 3、清零、设置默认零点(只写) | 数据方向 | 设备地址 | 功能码 | 读/写 | 参数 | 校验码 | |----------|----------|--------|-------|-------|--------| | 发送 | 0x01 | 0x04 | 0x01 | 1Byte | / | | 返回 | 0x01 | 0x05 | 无 | 无 | / | ① 发送的第1个参数字节表示清零或设置默认零点: - `0x00`:清零,断电不保存 - `0x01`:清零并设当前重量为默认零点,重新上电会以此重量为零点 **示例:** - 发送:`01 04 01 00 06`;清零 - 返回:`01 05 06`;执行成功 ### 4、查询、设置滤波等级 | 数据方向 | 设备地址 | 功能码 | 读/写 | 参数 | 校验码 | |----------|----------|--------|-------|----------|--------| | 发送 | 0x01 | 0x08 | 0x01 | 1Byte | / | | 返回 | 0x01 | 0x09 | 无 | 无/1Byte | / | - 滤波等级越高,重量值变化越平稳,但响应速度越慢。 - 仅在判稳功能关闭时,滤波等级设置才有效。 ① 发送的第1个参数字节表示滤波强度,参数值范围为0-2。 **示例:** - 发送:`01 08 01 02 0C`;设置滤波等级2 - 返回:`01 09 0A`;执行成功 - 发送:`01 08 00 09`;查询滤波等级 - 返回:`01 09 02 0C`;滤波等级为2 ### 5、查询、设置判稳锁定 | 数据方向 | 设备地址 | 功能码 | 读/写 | 参数 | 校验码 | |----------|----------|--------|-------|-------|--------| | 发送 | 0x01 | 0x0A | 0x01 | 1Byte | / | | 返回 | 0x01 | 0x0B | 无 | 无 | / | 若当前重量变化相对稳定,则锁定输出值,防止跳变。 ① 发送的第1个参数字节表示判稳开关: - `0x00`:关闭 - `0x01`:开启 **示例:** - 发送:`01 0A 01 01 0D`;开启判稳锁定功能 - 返回:`01 0B 0C`;执行成功 ### 6、查询、设置分度值 | 数据方向 | 设备地址 | 功能码 | 读/写 | 参数 | 校验码 | |----------|----------|--------|-------|-------|--------| | 发送 | 0x01 | 0x0C | 0x01 | 1Byte | / | | 返回 | 0x01 | 0x0D | 无 | 无 | / | 分度值表示输出重量值(02功能码)的最小变化单位。 ① 发送的第1个参数字节表示分度值代号: - 0:1g 1:2g - 2:5g 3:10g - 4:20g 5:50g - 6:100g 7:200g - 8:500g 9:1000g **示例:** - 发送:`01 0C 01 02 10`;设置分度值为5g - 返回:`01 0D 0E`;执行成功 ### 7、查询、设置自动清零范围 | 数据方向 | 设备地址 | 功能码 | 读/写 | 参数 | 校验码 | |----------|----------|--------|-------|-------|--------| | 发送 | 0x01 | 0x0E | 0x01 | 1Byte | / | | 返回 | 0x01 | 0x0F | 无 | 无 | / | 当重量值在零点的一定范围内时,会自动执行清零。 ① 发送的第1个参数字节表示自动清零范围,单位为分度值: 清零范围 = 参数值 × 当前分度值 参数值 `0x00` 则关闭该功能。 **示例:** - 发送:`01 0E 01 03 13`;设置自动清零范围为3个分度值 - 返回:`01 0F 10` (例如当前分度值为2g,零点跟踪范围为3个分度值,则在±6g以内时自动清零) ### 8、查询、设置蠕变修正 | 数据方向 | 设备地址 | 功能码 | 读/写 | 参数 | 校验码 | |----------|----------|--------|-------|----------|--------| | 发送 | 0x01 | 0x10 | 0x01 | 1Byte | / | | 返回 | 0x01 | 0x11 | 无 | 无/1Byte | / | 称重传感器在长时间载荷作用下,其输出的电信号会缓慢、微小地漂移,导致重量值改变,该功能则是对其变化进行跟踪补偿。 ① 发送的第1个参数字节表示蠕变修正开关: - `0x00`:关闭 - `0x01`:开启 **示例:** - 发送:`01 10 01 01 13`;开启蠕变修正 - 返回:`01 11 12`;执行成功 ### 9、查询、设置满量程 | 数据方向 | 设备地址 | 功能码 | 读/写 | 参数 | 校验码 | |----------|----------|--------|-------|--------|--------| | 发送 | 0x01 | 0x16 | 0x01 | 2Bytes | / | | 返回 | 0x01 | 0x17 | 无 | 无 | / | ① 发送的第1-2个参数字节表示满量程,单位kg。 **示例:** - 发送:`01 16 01 00 28 40`;设置满量程为40kg - 返回:`01 17 18` ### 10、标定(只写)**【新模块必须配置参数,标定后才能读取到重量!!!】** | 数据方向 | 设备地址 | 功能码 | 读/写 | 参数 | 校验码 | |----------|----------|--------|-------|-------|--------| | 发送 | 0x01 | 0x18 | 0x01 | 2Byte | / | | 返回 | 0x01 | 0x19 | 无 | 无 | / | ① 发送的第1-2个参数字节表示标定重量值,单位kg。 **标定流程:** 1. 清空秤盘,等待称盘平稳,执行设置默认零点(04功能码)。 2. 加载砝码,等待称盘平稳,执行标定。若需要多点标定,则继续加载砝码,再发送指令标定第2个点,以此类推,最多标定5个点。 3. 标定点应覆盖至少传感器满量程的50%,以确保校准精度。 **示例:** - 发送:`01 18 01 00 14 2E`;标定20kg - 返回:`01 19 1A`;执行成功 ### 11、读取AD值、内码(只读) | 数据方向 | 设备地址 | 功能码 | 读/写 | 参数 | 校验码 | |----------|----------|--------|-------|-------|--------| | 发送 | 0x01 | 0x1C | 0x00 | 1Byte | / | | 返回 | 0x01 | 0x1D | 无 | 4Bytes | / | ① 发送的第1个参数字节表示读取的数据类型: - `0x00`:AD值,模数转换输出的原始值 - `0x01`:内码值,满量程划分为一百万等份,例如满量程10kg,内码值100000=1kg、内码值500000=5kg ② 返回的第1-4个参数字节表示AD或内码的数值,数据格式为32位有符号整数补码。 **示例:** - 发送:`01 1C 00 00 1D`;读取AD值 - 返回:`01 1D FF FF B1 E0 AD`;AD值为-20000 - 发送:`01 1C 00 01 1E`;读取内码值 - 返回:`01 1D 00 00 4E 20 AD`;内码值为20000 ### 12、查询、设置设备地址 | 数据方向 | 设备地址 | 功能码 | 读/写 | 参数 | 校验码 | |----------|----------|--------|-------|----------|--------| | 发送 | 0x01 | 0x20 | 0x01 | 无/1Byte | / | | 返回 | 新地址 | 0x21 | 无 | 无 | / | ① 发送的第1个参数字节表示要设置的新设备地址。若查询地址,参数为空。 **示例:** - 发送:`01 20 01 02 24`;设置设备地址为2 - 返回:`02 21 23`;执行成功 ### 13、设置波特率(只写) | 数据方向 | 设备地址 | 功能码 | 读/写 | 参数 | 校验码 | |----------|----------|--------|-------|-------|--------| | 发送 | 0x01 | 0x22 | 0x01 | 1Byte | / | | 返回 | 0x01 | 0x23 | 无 | 无 | / | ① 发送的第1个参数字节表示波特率代号: - 0:9600 1:19200 - 2:38400 3:57600 - 4:115200 **注意:** 发送修改波特率指令后,模块会先以原波特率返回应答指令,再更改为新设置的波特率。 **示例:** - 发送:`01 22 01 04 28`;设置波特率为115200 - 返回:`01 23 24`;执行成功 ### 14、查询、设置指令应答延时 | 数据方向 | 设备地址 | 功能码 | 读/写 | 参数 | 校验码 | |----------|----------|--------|-------|-------|--------| | 发送 | 0x01 | 0x24 | 0x01 | 1Byte | / | | 返回 | 0x01 | 0x25 | 无 | 无 | / | RS485半双工通信中,收发转换存在切换时间,为避免主机接收延误导致应答指令传输不完整,可适当增加从机应答延时。 ① 发送的第1个参数字节表示应答延时时长,单位ms,参数 `0x00` 表示不延时。 **示例:** - 发送:`01 24 01 32 58`;设置应答延迟50ms - 返回:`01 25 26`;执行成功
admin
2025年12月25日 23:24
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码