modbus_master.h 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. /**
  2. * @Author: 李建
  3. * @Date: 2025/4/27 15:35
  4. * Description: 485主站
  5. * Copyright: Copyright (©) 2025 永续绿建. All rights reserved.
  6. */
  7. #ifndef WIRE_CONTROLLER_MODBUS_MASTER_H
  8. #define WIRE_CONTROLLER_MODBUS_MASTER_H
  9. #include "esp_err.h"
  10. #include "esp_modbus_master.h"
  11. #define MB_PORT_NUM 2 // Number of UART port used for Modbus connection
  12. #define MB_DEV_SPEED 9600 // The communication speed of the UART
  13. #define MB_GPIO_RX 2 // uart rx gpio port
  14. #define MB_GPIO_TX 1 // uart tx gpio port
  15. #define POWER_REG_ADDRESS 0x00 // 电源寄存器
  16. #define WORK_MOD_REG_ADDRESS 0x01 // 工作模式寄存器
  17. #define FAN_MODE_REG_ADDRESS 0x02 // 新风模式(0x01通风模式0x02新风模式)
  18. #define FAN_LEVEL_REG_ADDRESS 0x04 // 风速档位
  19. #define CHS_TYPE_REG_ADDRESS 0xB // 冷热源类型
  20. #define FAN_VALVE_1_REG_ADDRESS 0x07 // 风阀一开度
  21. #define FAN_VALVE_2_REG_ADDRESS 0x08 // 风阀二开度
  22. #define FAN_VALVE_3_REG_ADDRESS 0x09 // 风阀三开度
  23. #define FAN_VALVE_4_REG_ADDRESS 0x0A // 风阀四开度
  24. #define FAN_VALVE_5_REG_ADDRESS 0x43 // 风阀五开度
  25. #define FAN_VALVE_6_REG_ADDRESS 0x44 // 风阀六开度
  26. #define PM25_NUMBER_REG_ADDRESS 0x23 // PM2.5浓度
  27. #define CO2_NUMBER_REG_ADDRESS 0x24 // CO2浓度
  28. #define HUMIDITY_LIMIT_LOW_REG_ADDRESS 0x11
  29. #define HUMIDITY_LIMIT_HIGH_REG_ADDRESS 0x12
  30. // 电压一档寄存器地址
  31. #define VOLTAGE_1_REG_ADDRESS 0x15
  32. #define VOLTAGE_2_REG_ADDRESS 0x16
  33. #define VOLTAGE_3_REG_ADDRESS 0x17
  34. #define VOLTAGE_4_REG_ADDRESS 0x18
  35. #define VOLTAGE_5_REG_ADDRESS 0x19
  36. #define SET_TEMP_REG_ADDRESS 0x0E // 设置温度
  37. #define ENV_TEMP_REG_ADDRESS 0x1B // 环境温度
  38. #define ENV_HUMIDITY_REG_ADDRESS 0x1C // 环境湿度
  39. #define BOARD_ERR_REG_ADDRESS 0x2D // 错误码
  40. #define GMV_INTERNAL_NUMBER_REG_ADDRESS 0x59 // 多联机内机编号
  41. #define INTERNAL_ERR_REG_ADDRESS 0x39 // 内机错误码
  42. #define FG_ERR_2_REG_ADDRESS 0x3A // FG故障码
  43. #define FG_ERR_3_REG_ADDRESS 0x3B // FG故障码
  44. #define FG_ERR_4_REG_ADDRESS 0x3C // FG故障码
  45. #define FG_ERR_5_REG_ADDRESS 0x3D // FG故障码
  46. #define FG_ERR_6_REG_ADDRESS 0x3E // FG故障码
  47. #define FG_ERR_7_REG_ADDRESS 0x3F // FG故障码
  48. #define FG_ERR_8_REG_ADDRESS 0x40 // FG故障码
  49. #define FG_ERR_9_REG_ADDRESS 0x41 // FG故障码
  50. #define FG_ERR_10_REG_ADDRESS 0x42 // FG故障码
  51. #define FG_ERR_11_REG_ADDRESS 0x43 // FG故障码
  52. #define FG_ERR_12_REG_ADDRESS 0x44 // FG故障码
  53. #define FG_ERR_13_REG_ADDRESS 0x45 // FG故障码
  54. #define FG_ERR_14_REG_ADDRESS 0x46 // FG故障码
  55. #define INNER_2_POWER_REG_ADDRESS 0x78 // 内机二电源状态
  56. #define INNER_2_MODE_REG_ADDRESS 0x79 // 内机二工作模式
  57. #define INNER_2_SET_TEMP_REG_ADDRESS 0x7A // 内机二设定温度
  58. #define INNER_2_FAN_LEVEL_REG_ADDRESS 0x7B // 内机二风速档位
  59. #define INNER_3_POWER_REG_ADDRESS 0x7C // 内机三电源状态
  60. #define INNER_3_MODE_REG_ADDRESS 0x7D // 内机三工作模式
  61. #define INNER_3_SET_TEMP_REG_ADDRESS 0x7E // 内机三设定温度
  62. #define INNER_3_FAN_LEVEL_REG_ADDRESS 0x7F // 内机三风速档位
  63. // 定义协议 CID 表
  64. enum {
  65. // 开关机
  66. CID_POWER = 0,
  67. // 工作模式
  68. CID_MODE,
  69. // 新风阀模式
  70. CID_FAN_MODE,
  71. // 送风风速
  72. CID_FAN_SPEED,
  73. // 风阀一开度
  74. CID_FAN_1_DEGREE,
  75. // 风阀二开度
  76. CID_FAN_2_DEGREE,
  77. // 风阀三开度
  78. CID_FAN_3_DEGREE,
  79. // 风阀四开度
  80. CID_FAN_4_DEGREE,
  81. // 风阀五开度
  82. CID_FAN_5_DEGREE,
  83. // 设定温度
  84. CID_SET_TEMP,
  85. // 电压一档
  86. CID_VOLTAGE_1,
  87. // 电压二档
  88. CID_VOLTAGE_2,
  89. // 电压三档
  90. CID_VOLTAGE_3,
  91. // 电压四档
  92. CID_VOLTAGE_4,
  93. // 电压五档
  94. CID_VOLTAGE_5,
  95. // 线控器处环境温度
  96. CID_ENV_TEMP,
  97. // 线控器处环境湿度
  98. CID_ENV_HUMIDITY,
  99. // PM2.5浓度
  100. CID_PM25,
  101. // CO2浓度
  102. CID_CO2,
  103. // 多联机内机地址
  104. CID_INNER_ADDR,
  105. // 驱动板故障类
  106. CID_FAULT_CODE,
  107. // 故障12
  108. CID_FAULT_12,
  109. // 故障13
  110. CID_FAULT_13,
  111. // 故障15
  112. CID_FAULT_15,
  113. // 故障19
  114. CID_FAULT_19,
  115. // 故障20
  116. CID_FAULT_20,
  117. // 故障21
  118. CID_FAULT_21,
  119. // 故障22
  120. CID_FAULT_22,
  121. // 故障23
  122. CID_FAULT_23,
  123. // 故障24
  124. CID_FAULT_24,
  125. // 故障26
  126. CID_FAULT_26,
  127. };
  128. void modbus_master_init();
  129. esp_err_t mm_set_param(uint16_t cid, uint8_t *value);
  130. /**
  131. * 发送 modbus 请求
  132. * @param request
  133. * @param data_prt
  134. * @return
  135. */
  136. esp_err_t send_request(mb_param_request_t * request, void * data_prt);
  137. void modbus_master_destroy();
  138. #endif //WIRE_CONTROLLER_MODBUS_MASTER_H