modbus_params.h 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. #ifndef __MODBUS_PARAMS_H
  2. #define __MODBUS_PARAMS_H
  3. #include "mb.h"
  4. #include "mbport.h"
  5. #include "modbus.h"
  6. //#include "settings_sys.h"
  7. #include <stdbool.h>
  8. #define MB_PARAM_MAX 3
  9. //
  10. typedef struct {
  11. uint16_t reg;
  12. uint16_t size;
  13. uint8_t *param;
  14. bool f_activity;
  15. mb_delay_action_t (*set_handler)(void);
  16. void (*check_handler)(void);
  17. } mb_param_t;
  18. //
  19. void mb_init_params(void);
  20. // Возвращает размер параметра в регистрах
  21. bool mb_find_param(uint16_t reg, uint16_t *index, uint16_t *size);
  22. //
  23. mb_delay_action_t mb_set_param(uint8_t *buf, uint16_t index);
  24. //
  25. void mb_get_param(uint8_t *buf, uint16_t index);
  26. //
  27. uint8_t mb_get_info(uint8_t *buf);
  28. // Установка адреса. Запрос без параметров.
  29. bool mb_set_addr(uint8_t *buf, uint8_t *addr);
  30. // Установка адреса по ID
  31. bool mb_set_addr_id(uint8_t *buf, uint8_t *addr);
  32. // Установка адреса по серийному номеру
  33. bool mb_set_addr_serial(uint8_t *buf, uint8_t *addr);
  34. // -------------------------------------------------------------------------- //
  35. // Установка параметров
  36. // -------------------------------------------------------------------------- //
  37. //
  38. mb_delay_action_t mb_set_pwm_freq_1(void);
  39. //
  40. mb_delay_action_t mb_set_pwm_freq_2(void);
  41. //
  42. mb_delay_action_t mb_set_pwm_freq_3(void);
  43. //
  44. mb_delay_action_t mb_set_duty(void);
  45. //
  46. mb_delay_action_t mb_set_port(void);
  47. //
  48. mb_delay_action_t mb_password(void);
  49. //
  50. mb_delay_action_t mb_sys_settings_save(void);
  51. //
  52. mb_delay_action_t mb_control(void);
  53. //
  54. mb_delay_action_t mb_relay(void);
  55. //
  56. mb_delay_action_t mb_led(void);
  57. // -------------------------------------------------------------------------- //
  58. // Проверка параметров //
  59. // -------------------------------------------------------------------------- //
  60. //
  61. void mb_check_dummy(void);
  62. // ---------------------------------------------------------------------- //
  63. // Каналы управления вентиляторами
  64. //
  65. void mb_check_pwm_freq_1(void);
  66. //
  67. void mb_check_pwm_freq_2(void);
  68. //
  69. void mb_check_pwm_freq_3(void);
  70. //
  71. void mb_check_tacho_speed_1(void);
  72. //
  73. void mb_check_tacho_speed_2(void);
  74. //
  75. void mb_check_tacho_speed_3(void);
  76. //
  77. void mb_check_noise_limit_1(void);
  78. //
  79. void mb_check_noise_limit_2(void);
  80. //
  81. void mb_check_noise_limit_3(void);
  82. //
  83. void mb_check_crash_val_1(void);
  84. //
  85. void mb_check_crash_val_2(void);
  86. //
  87. void mb_check_crash_val_3(void);
  88. //
  89. void mb_check_pulse_number_1(void);
  90. //
  91. void mb_check_pulse_number_2(void);
  92. //
  93. void mb_check_pulse_number_3(void);
  94. //
  95. void mb_check_duty_1(void);
  96. //
  97. void mb_check_duty_2(void);
  98. //
  99. void mb_check_duty_3(void);
  100. //
  101. void mb_check_pwm_type_1(void);
  102. //
  103. void mb_check_pwm_type_2(void);
  104. //
  105. void mb_check_pwm_type_3(void);
  106. // ---------------------------------------------------------------------- //
  107. // Конфигурация подключений
  108. //
  109. void mb_check_output_cnt(void);
  110. //
  111. void mb_check_input_4(void);
  112. //
  113. void mb_check_input_5(void);
  114. //
  115. void mb_check_input_6(void);
  116. // ---------------------------------------------------------------------- //
  117. // Температура
  118. //
  119. void mb_check_temp_alg(void);
  120. //
  121. void mb_check_temp_low_limit(void);
  122. //
  123. void mb_check_temp_low_hyst(void);
  124. // ---------------------------------------------------------------------- //
  125. // Алгоритм управления вентиляторами
  126. //
  127. void mb_check_temp_limit(void);
  128. //
  129. void mb_check_alg_max_limit(void);
  130. //
  131. void mb_check_alg_max_hyst(void);
  132. //
  133. void mb_check_con_timeout(void);
  134. //
  135. void mb_check_max_limit_hyst(void);
  136. // ---------------------------------------------------------------------- //
  137. // PID регулятор
  138. //
  139. void mb_check_p_factor(void);
  140. //
  141. void mb_check_i_factor(void);
  142. //
  143. void mb_check_d_factor(void);
  144. // ---------------------------------------------------------------------- //
  145. // Дискретные входы
  146. //
  147. void mb_check_input_1(void);
  148. //
  149. void mb_check_input_2(void);
  150. // ---------------------------------------------------------------------- //
  151. // Реле
  152. //
  153. void mb_check_relay(void);
  154. // ---------------------------------------------------------------------- //
  155. // Время
  156. void mb_check_time(void);
  157. // ---------------------------------------------------------------------- //
  158. // Системные переменные
  159. //
  160. void mb_check_model(void);
  161. //
  162. void mb_check_proddate(void);
  163. //
  164. void mb_check_serial(void);
  165. //
  166. void mb_check_fw_version(void);
  167. //
  168. void mb_check_state(void);
  169. //
  170. void mb_check_reley(void);
  171. /*
  172. extern bool psw_ok;
  173. extern bool set_sys_settings_flag;
  174. extern sys_settings_t temp_sys_settings;
  175. extern uint16_t temp_modbus_port;
  176. */
  177. #endif // __MODBUS_PARAMS_H