polarimeter_software/User/app/mb_hmi/mb_regs_def.h
2025-09-30 10:37:23 +08:00

57 lines
3.7 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef __MB_REGS_DEF_H__
#define __MB_REGS_DEF_H__
#include <stdint.h>
#define MB_SLAVE_ID 0x01
// -------------------------- 保持寄存器3xxxx可读写--------------------------
// 相对地址对应30001 = 0x000030002 = 0x0001以此类推
#define HOLD_REG_SYS_CTRL_CMD 0x0000 // 系统控制命令30001uint16_t
#define HOLD_REG_MEAS_MODE 0x0001 // 测量模式设置30002uint8_t低8位有效
#define HOLD_REG_TARGET_TEMP_H 0x0002 // 目标温度高16位30003float高半字
#define HOLD_REG_TARGET_TEMP_L 0x0003 // 目标温度低16位30004float低半字
#define HOLD_REG_TUBE_LEN 0x0004 // 旋光管长度高16位30005float高半字
#define HOLD_REG_MEAS_PRECISION 0x0005 // 测量精度设置30007uint8_t低8位有效
#define HOLD_REG_AUTO_MEAS_CNT 0x0006 // 自动测量次数30008uint8_t低8位有效
#define HOLD_REG_HIST_QUERY_START 0x0007 // 历史数据起始序号30009uint16_t
#define HOLD_REG_HIST_QUERY_CNT 0x0008 // 历史数据查询数量30010uint16_t
// -------------------------- 输入寄存器4xxxx只读--------------------------
// 相对地址对应40001 = 0x000040002 = 0x0001以此类推
#define INPUT_REG_REAL_TEMP_H 0x0000 // 实时温度高16位40001float高半字
#define INPUT_REG_REAL_TEMP_L 0x0001 // 实时温度低16位40002float低半字
#define INPUT_REG_REAL_ROT_H 0x0002 // 实时旋光度高16位40003float高半字
#define INPUT_REG_REAL_ROT_L 0x0003 // 实时旋光度低16位40004float低半字
#define INPUT_REG_RESULT_MODE 0x0004 // 测量结果-模式代码40005uint8_t
#define INPUT_REG_RESULT_VAL_H 0x0005 // 测量结果-数值高16位40006float高半字
#define INPUT_REG_RESULT_VAL_L 0x0006 // 测量结果-数值低16位40007float低半字
#define INPUT_REG_RESULT_TEMP_H 0x0007 // 测量结果-温度高16位40008float高半字
#define INPUT_REG_RESULT_TEMP_L 0x0008 // 测量结果-温度低16位40009float低半字
#define INPUT_REG_DEV_RUNNING_STATE 0x0009 // 设备状态码40010uint8_t低8位
#define INPUT_REG_ALARM_STATUS 0x000A // 报警状态码占用两个寄存器40011-40012U32
#define INPUT_REG_MEAS_DONE_FLAG 0x000C // 测量完成标志40013uint8_t
#define INPUT_REG_DEVICE_MODEL_H 0x000D // 设备型号4字节两个寄存器高16位40014,40015ASCII
#define INPUT_REG_DEVICE_MODEL_L 0x000E // 设备型号低16位40016,40017ASCII
#define INPUT_REG_FW_VERSION_H 0x000F // 固件版本高16位40018主/次版本)
#define INPUT_REG_FW_VERSION_L 0x0010 // 固件版本低16位40019修订/构建号)
// -------------------------- 测量模式代码HOLD_REG_MEAS_MODE和INPUT_REG_RESULT_MODE--------------------------
#define MEAS_MODE_ROTATION 0x00 // 旋光度模式
#define MEAS_MODE_SPECIFIC_ROT 0x01 // 比旋度模式
#define MEAS_MODE_CONCENTRATION 0x02 // 浓度模式
#define MEAS_MODE_SUGAR_DEGREE 0x03 // 国际糖度模式
// -------------------------- 状态码与错误码INPUT_REG_DEVICE_STATUS--------------------------
#define STATUS_SUCCESS 0x00 // 操作成功
#define STATUS_PARAM_ERROR 0x01 // 参数格式错误对应Modbus异常0x03
#define STATUS_DEVICE_BUSY 0x02 // 设备忙对应Modbus异常0x06
#define STATUS_OP_FAILED 0x03 // 操作失败对应Modbus异常0x04
#define STATUS_NOT_INITED 0x04 // 功能未初始化对应Modbus异常0x02
#define STATUS_CMD_UNSUPPORTED 0x05 // 不支持的指令对应Modbus异常0x01
#endif /* __MB_REGS_DEF_H__ */