84 lines
3.2 KiB
C
84 lines
3.2 KiB
C
#ifndef __MODE_CONTROL_ADJUST_H__
|
||
#define __MODE_CONTROL_ADJUST_H__
|
||
#include "mode_control_def.h"
|
||
|
||
typedef enum
|
||
{
|
||
CONTROL_ADJUST_IDEL, // 空闲
|
||
CONTROL_ADJUST_UPWARD_SLOPE, // 上升斜坡
|
||
CONTROL_ADJUST_DOWNWARD_SLOPE, // 下降斜坡
|
||
CONTROL_ADJUST_TUNING, // 自整定
|
||
CONTROL_ADJUST_SAVE, // 存储变量
|
||
|
||
CONTROL_ADJUST_BLEEDING, // 在整定状态中放气
|
||
CONTROL_ADJUST_AERATE, // 在整定状态中充气
|
||
CONTROL_ADJUST_STOP,
|
||
CONTROL_ADJUST_FAIL, // 整定失败
|
||
CONTROL_ADJUST_PAUSE, // 整定暂停
|
||
CONTROL_ADJUST_TEST,
|
||
} mode_control_adjust_state_e; // 整定状态
|
||
|
||
#define CONTROL_ADJUST_STEP LCD_ADJUST_STOP // 整定步骤
|
||
|
||
typedef struct
|
||
{
|
||
uint16_t out;
|
||
uint16_t psb;
|
||
uint16_t ipsb;
|
||
float32 electric;
|
||
} mode_control_adjust_data_t;
|
||
|
||
typedef struct
|
||
{
|
||
uint16_t enter_count1; // 进入次数
|
||
mode_control_adjust_state_e adjust_state;
|
||
mode_control_adjust_state_e adjust_state2;
|
||
uint16_t *output; // 输出
|
||
__IO int16_t wait_count;
|
||
__IO uint16_t current_psi_a; // 当前位置的A压力
|
||
__IO uint16_t last_psi_a; // 上一次位置的A压力
|
||
__IO uint16_t current_psb; // 当前位置AD值
|
||
BOOL wait_hode_flag; // 等待保持标志
|
||
|
||
BOOL adc_0_100_flag; // 判断0-100移动过程中ad值是增大还是减少,TRUE 增大,FALSE 减小
|
||
uint16_t adc_record_0; // 记录放气时阀门最小位置ad值
|
||
uint16_t adc_record_1; // 记录放气时阀门最小位置ad值
|
||
uint16_t adc_record_2; // 记录充气时阀门最大位置ad值
|
||
uint16_t adc_diff;
|
||
|
||
uint16_t arr_record_0;
|
||
uint16_t arr_record_1;
|
||
uint16_t arr_record_2;
|
||
|
||
uint16_t bleeding_min_arr; // 最小放气值
|
||
uint16_t bleeding_max_arr; // 最大放气值
|
||
uint16_t balance_arr; // 平衡值
|
||
uint16_t aerate_min_arr; // 最小充气值
|
||
uint16_t aerate_max_arr; // 最大充气值
|
||
|
||
uint32_t all_open_time; // 全开时间
|
||
uint32_t all_close_time; // 全关时间
|
||
uint32_t tmp_time; // 临时用来记录全开全关时间
|
||
|
||
__IO uint16_t arr_current; // 当前推动阀门的计数器
|
||
__IO uint16_t arr_last; // 上一次计数器值
|
||
uint8_t test_index; // 测试索引
|
||
|
||
BOOL ipsb_enable; // 是否启用ipsb
|
||
mode_control_storage_t storage_data; // 存储数据,用于保留原始数据
|
||
stable_percent_step_t stable_percent_steps[EQUILIBRIUM_POINT_END]; // 稳定百分比
|
||
mode_control_adjust_data_t ads[800]; // 整定过程中的数据
|
||
uint16_t ads_index; // 整定数据索引
|
||
mode_control_adjust_tuning_pi_state_e tuning_pi_state; // 自整定状态
|
||
mode_control_move_dir_e tuning_pi_dir; // 自整定方向
|
||
uint8_t tuning_pi_sst_index;
|
||
} mode_control_adjust_t;
|
||
|
||
extern mode_control_adjust_t *mode_control_adjust;
|
||
|
||
extern mode_control_adjust_t *mode_control_adjust_get(void);
|
||
extern void mode_control_adjust_process(uint8_t *state);
|
||
|
||
extern void mode_control_adjust_stop(uint8_t *state);
|
||
#endif // __MODE_CONTROL_ADJUST_H__
|