polarimeter_software/User/app/mb_hmi/mb_regs_def.h

57 lines
3.7 KiB
C
Raw Permalink Normal View History

2025-09-30 02:37:23 +00:00
#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__ */