资源描述
VH03 手持读数仪高级应用 1.VH03 寄存器(参数)汇总表 寄存器寄存器 地址地址 符号符号 名称名称 取值范围取值范围 默认值默认值 单位单位 备注备注 0 0 DEV_ID 设备地址 1255 0 x81(129) 3 3 RS232_BAUD RS232 通讯速率 124608 1152 百 bps 4 4 RS485_BAUD RS485 通讯速率 124608 1152 百 bps 6 6 SPEAK 提示音开关 0/1 1 1010 TIM_LIGHT 背光时长 165535 300 秒 1111 TIM_SHDN 自动关机时长 165535 600 秒 1 16 6 NTC_B NTC 电阻 B 值 165535 3950 1 17 7 NTC_RES NTC 标称电阻 165535 3000 欧姆 2 21 1 VM_MODTH 振弦传感器激励方法 2 22 2 VM_TMPTYPE 温度传感器类型 3 35 5 LORA_SF LORA 扩频因子 612 8 3 36 6 LORA_CR LORA 编码率 14 2 3 37 7 LORA_BW LORA 信道带宽 09 7 3 38 8 LORA_CH LORA 频道号 015 7 3 39 9 LORA_POW LORA 发射功率 015 10 4 40 0 LORA_PRMS LORA 前导码时长 0 毫秒 6 66 6 RTC_YM 实时时间-年月 BCD 码 6 67 7 RTC_DH 实时时间-日时 BCD 码 6 68 8 RTC_MS 实时时间-分秒 BCD 码 7 71 1 DATA_NUM 已保存的数据条数 7 74 4 RTC_BAT 钮扣电池电压 mV 7 75 5 VBAT 电池电压 mV 7 76 6 VSEN 传感器工作电压 mV 7 77 7 SEN_VOL 电压信号值 mV 7 78 8 SEN_CUR 电流信号值 0.01mA 7 79 9 VM_VSEN 振弦传感器激励电压 V 8 80 0 VM_FRE 振弦传感器频率值 0.1Hz 8 81 1 VM_RES 振弦传感器线圈电阻 欧姆 8 82 2 VM_QUA 振弦传感器信号质量 % 8 83 3 VM_AMP 振弦传感器信号幅值 % 8 84 4 TMPE 温度传感器值 0.1 (1)温度传感器参数说明 寄存器 VM_TMPTYPE 用于设置温度传感器类型,默认为 3。 0:测量设备内部温度。 110:表示外接 NTC 热敏电阻 110k。 11:表示外接 18B20。 寄存器 NTC_B 用于设置外接热敏电阻的 B 值,默认为 3950。 寄存器 NTC_RES 用于设置外接热敏电阻的标称阻值,默认为 3000,单位欧姆。 注意:当使用按键操作修改温度传感器类型时,注意:当使用按键操作修改温度传感器类型时,VM_TMPTYPEVM_TMPTYPE 和和 NTC_RESNTC_RES 会同步更新,即:当会同步更新,即:当 VM_TMPTYPEVM_TMPTYPE 为为1 11010 时,时,NTC_RESNTC_RES 自动的等于自动的等于 VM_TMPTYPEVM_TMPTYPE*1000*1000。 注意:当使用指令修改温度传感器注意:当使用指令修改温度传感器 NTCNTC 参数时,需要分别修改参数时,需要分别修改 VM_TMPTYPEVM_TMPTYPE、NTC_RESNTC_RES 和和 NTC_BNTC_B 的值。的值。 2.通讯协议 VH03 支持 MODBUS 协议和自定义的 AABB、字符串协议。 2.1MODBUS2.1MODBUS 协议协议 DLSxx 支持 MODBUS 的 03、04、06 指令码。 (1)03(0 x03)/03(0 x04)指令码:读取多个连续的寄存器数据,指令格式如下 指令数据帧结构 地地址码址码 功能功能码码 0 x030 x03 开始开始地址地址 寄寄存器数量存器数量 CRCCRC 校验校验 1 1 字节字节 1 字节 2 字节 2 字节 2 字节 返回数据帧结构 地地址码址码 功能功能码码 0 x030 x03 数据长度数据长度 数据数据 CRCCRC 校验校验 1 1 字节字节 1 字节 2 字节 n 字节 2 字节 例:读取地址为 0 x01 的设备寄存器值,寄存器开始地址为 0,连续读取 10 个寄存器 主机发送指令:0 x01 0 x03 0 x00 0 x00 0 x00 0 x0A 0 xC5 0 xCD 从机返回应答:0 x01 0 x03 0 x14 0 x00 0 x01 0 x00 0 x60 0 x00 0 x00 0 x00 0 x00 0 x00 0 x00 0 x00 0 x01 0 x01 0 xF4 0 x00 0 x00 0 x00 0 x64 0 x00 0 xC8 0 x5F 0 x8F(下划线为读取到的 10 个寄存器值) 读取多个连续寄存器时,单次读取不要超过 32 个寄存器,不要试图读取不存在的寄存器。 (2)06(0 x06)指令码:修改单个寄存器的值,指令格式如下 指令数据帧结构 地地址码址码 功能功能码码 0 x00 x06 6 寄寄存器地址存器地址 寄寄存器存器值值 CRCCRC 校验校验 1 1 字节字节 1 字节 2 字节 2 字节 2 字节 返回数据帧结构 地地址码址码 功能功能码码 0 x00 x06 6 寄寄存器地址存器地址 寄寄存器存器值值 CRCCRC 校验校验 1 1 字节字节 1 字节 2 字节 2 字节 2 字节 例:将地址为 0 x01 的设备中的寄存器 8 的值修改为 100 主机发送指令:0 x01 0 x06 0 x00 0 x08 0 x00 0 x64 0 x09 0 xE3 从机返回应答:0 x01 0 x06 0 x00 0 x08 0 x00 0 x64 0 x09 0 xE3 (3)校验码算法 CRC16-MODBUS 算法: unsigned int crc16(unsigned char *dat, unsigned int len) unsigned int crc=0 xffff; unsigned char i; while(len!=0) crc=*dat; for(i=0;i1; else crc=crc1; crc=0 xa001; len-=1; dat+; return crc; 2.2AABB2.2AABB 协议协议 读取寄存器: 帧头帧头 设备设备地址地址 寄存器地址寄存器地址 和校验和校验 1616 进制进制 AA BB 1 字节 1 字节 1 字节 设备响应: 帧头帧头 设备设备地址地址 寄存器地址寄存器地址 寄存器值寄存器值 和校验和校验 1616 进制进制 AA BB 1 字节 1 字节 2 字节 1 字节 例如:读取地址为 129 的 DLS 设备的寄存器 10 的值。 向设备发送(HEX):AA BB 81 0A F0 设备返回(HEX):AA BB 81 0A 04 80 74,0 x0480 是 10 进制的 1152。 修改寄存器: 帧头帧头 设备设备地址地址 寄存器地址寄存器地址 寄存器数据寄存器数据 和校验和校验 1616 进制进制 AA BB 1 字节 1 字节|0 x80 2 字节 1 字节 设备响应: 帧头帧头 设备设备地址地址 寄存器地址寄存器地址 寄存器值寄存器值 和校验和校验 1616 进制进制 AA BB 1 字节 1 字节 2 字节 1 字节 例如:修改地址为 129 的 DLS 设备的寄存器 10 的值为 1152(0 x0480) 。 向设备发送:AA BB 81 8A 04 80 F4 设备返回:AA BB 81 0A 04 80 74 注意:注意:AABBAABB 协议仅可访问地址为协议仅可访问地址为 0 0127127 的寄存器。的寄存器。 提示:提示:AABBAABB 协议中,协议中,0 0 xFFxFF 为通用地址。为通用地址。 2.32.3 $ $字符串协议字符串协议 (1)读取单个寄存器 读取指令读取指令 寄存器地址寄存器地址 $ $GETP=GETP= xxx 读取指令:固定为“$GETP=”。 寄存器地址:数字字符表示的要读取的寄存器地址。 例如:读取寄存器 10 的值 向 DLS 发送:$GETP=10 DLS 返回:$REG10=01152 (2)修改单个寄存器 修改指令修改指令 寄存器地址寄存器地址 寄存器值寄存器值 $S$SETP=ETP= xxx ,xxx 修改指令:固定为“$SETP=”。 寄存器地址:数字字符表示的要读取的寄存器地址。 寄存器值:数字字符表示的寄存器值 例如:修改寄存器 10 的值为 96。 向 DLS 发送:$SETP=10,96 DLS 返回:OK 2.42.4 其它指令其它指令 指令指令 功能描述功能描述 $INFO$INFO 读取设备基本信息 $REST$REST 重启 $STFC$STFC 将当前参数写入到出厂区 $STDF$STDF 恢复为默认参数 $GTDA=$GTDA=xxxxxx 读取已存储的第 xxx 条数据 $STNM=$STNM=0 0 清空已存储的所有数据 $STDT=$STDT=xxxxxxxx 设置日期时间。例如:$STDT=2015/12/21 18:37:05 $TEST$TEST 测试指令,返回“VH03rnOK” $KEY$KEYn n n 为 08,代表 9 个按键,相当于短按按键一次 按键号码定义 按键号码按键号码 按键名称按键名称 功能描述(短按)功能描述(短按) 0 0 开/关机 切换背光 1 1 保存 保存一组实时数据 2 2 上 上一个 3 3 下 下一个 4 4 左 修改振弦传感器激励方法 5 5 右 修改温度传感器类型 6 6 中 切换提示音开关 7 7 主页 进入主测量页面 8 8 表格 进入历史数据表格页面 3.蓝牙测试(手机) VH03 内置有基于 SPP(Serial Port Profile)协议的蓝牙接口,蓝牙名称为“VH03”。 使用任何支持 SPP 协议的蓝牙设备均可实现与 VH03 的连接。当蓝牙建立连接后,可向 VH03 发送指令进行交互(前述 MODBUS、AABB、字符串指令协议) 。以下使用手机演示通过蓝牙与 VH03 进行信息交互。 (1)下载并安装 APP 在任意的手机 APP 市场平台内搜索“蓝牙串口助手” ,下载并安装。 如下图所示(下图为多步骤合成图片) ,打开蓝牙串口助手,点击右上角菜单【connect】 ,在弹出窗口中点击红色背景的【SCAN FOR DEVICES】按钮搜索读数仪 VH03。 在搜索到后点击 VH03,APP 自动连接 VH03 并返回主界面,数秒后窗口提示“Connected to VH03”表示已连接。 输入测试指令“$GETP=0”, 点击 【SEND】 按键发送指令 (读取读数仪的寄存器 0) ,VH03 接收到指令后经由蓝牙返回“$REG0=1”,返回内容显示于 APP 界面。 界面中“Me: ”表示由 App 发送出去的内容, “VH03: ”表示 App接收到的内容,如左图示。 此 App 有三个主窗口, 分别为 “Chat (会话) ” 、 “Dashboard (操作托盘) ” 、 “About(关于) ” ,上述操作均在传话窗口。 托盘窗口:预设了 9 个按钮,可以为每个按钮设置名称以及点击后自动发送的文字指令,如下图示例,我们分别为每个按键设置了“$KEY0”“$KEY8”的指令。 在托盘窗口,点击【Edit】激活按钮的编辑功能,此时可点击任意一个按钮进行按钮名称和对应要发送指令的编辑,编辑完成后再次点击【Edit】关闭按钮编辑功能,再次点击按钮时会自动发送对应的指令内容。
展开阅读全文