#ifndef __PARAMS_H__ #define __PARAMS_H__ #include "lib.h" #include "main.h" #include "entity.h" /// 气压通道 typedef enum { ADC_INDEX_PRESSSOURCE = 0, // 气源压力 ADC_INDEX_PRESSOUTA = 1, // 输出压力A ADC_INDEX_PRESSOUTB = 2, // 输出压力B ADC_INDEX_CLOSEALL = 3, // 全部关闭 } pressure_index_e; /// 定位器型号 typedef enum { POSITIONER_MODEL_GPS2000 = 2000, // 自制SAMSON POSITIONER_MODEL_GPS2001 = 2001, // SAMSON 原装 POSITIONER_MODEL_GPS3000 = 3000, // 自制SAMSON IP + FISHER 放大器 POSITIONER_MODEL_GPS3001 = 3001, // FISHER 原装 POSITIONER_MODEL_GPS5000 = 5000, } positioner_model_e; /// 磁条规格 typedef enum { MAGNET_SPAC_TEST, MAGNET_SPAC_25, MAGNET_SPAC_50, MAGNET_SPAC_110, MAGNET_SPAC_210, MAGNET_SPAC_ANGLE_90, MAGNET_PARAM_MAX, } magnet_spac_e; /// 输出开关触发逻辑 typedef enum { TRIGGER_LOGIC_DISABLE = 0, // 禁用 TRIGGER_LOGIC_ABOVE = 1, // 高电平 TRIGGER_LOGIC_BELOW = 2, // 低电平 } swo_logic_e; /// 阀门类型 typedef enum { VALUE_TYPE_OTHER = 0, // 其它 VALUE_TYPE_SPRING_DIAPHRAGM = 1, // 弹簧膜片式 VALUE_TYPE_NO_SPRING_DOUBLE = 2, // 无弹簧双作用气缸式 VALUE_TYPE_SPRING_DOUBLE = 3, // 带弹簧双作用气缸式 VALUE_TYPE_SPRING_SINGLE = 4, // 带弹簧单作用气缸式 } value_type_e; /// 阀门尺寸 typedef enum { VALUE_SIZE_OTHER = 0, // 其它 VALUE_SIZE_34, VALUE_SIZE_45, VALUE_SIZE_56, } valve_size_e; /// 阀门行程范围 typedef enum { VALUE_TRAVEL_OTHER = 0, // 其它 VALUE_TRAVEL_16, VALUE_TRAVEL_25, VALUE_TRAVEL_40, VALUE_TRAVEL_60, VALUE_TRAVEL_100, VALUE_TRAVEL_130, VALUE_TRAVEL_160, VALUE_TRAVEL_200, VALUE_TRAVEL_ANGLE_60, VALUE_TRAVEL_ANGLE_90, } value_travel_e; /// 执行机构行程类型 typedef enum { TRAVEL_TYPE_STRAIGHT = 0, // 直行程 TRAVEL_TYPE_ANGULAR = 1, // 角行程 } value_travel_type_e; /// 执行机构气动类型 typedef enum { ATO = 0, // 气开,充气阀门打开,放气阀门关闭 ATC = 1, // 气关,充气阀门关闭,放气阀门打开 } value_action_type_e; /// 执行机构作用类型 typedef enum { VALVE_ACTING_SINGLE = 0, // 单作用 VALVE_ACTING_DOUBLE = 1, // 双作用 } value_relay_type_e; /// 定位器作用方向 typedef enum { CONTROLLER_ACTING_NORMAL = 0, // 正作用, I增大 -> 输出气压增大 CONTROLLER_ACTING_REVERSE = 1, // 反作用, I增大 -> 输出气压减小 } dev_driver_dir_e; /// 定位器安装方向 typedef enum { CONTROLLER_INSTALL_REVERSE = 0, // 反向安装,磁条反馈ADC值上小下大 CONTROLLER_INSTALL_NORMAL = 1, // 正向安装,磁条反馈ADC值上大下小 } dev_install_dir_e; /// 定位器工作模式 typedef enum { ON_LINE_MODE = 0, ///< 自动模式,根据4~20mA控制阀位 OFF_LINE_MODE = 1, ///< 手动模式,根据设定目标值控制阀位 TEST_MODE = 2, ///< 测试模式,在测试定位器部分功能时,必须在测试模式下进行 FORBIDEN_MODE = 3, ///< 非投用模式,阀门复位,定位器禁用信号控制功能 WAIT_MODE = 4, ///< 待机模式,阀门保持,定位器禁用信号控制功能 } dev_work_mode_e; /// 定位器控制模式 typedef enum { POS_CTRL_MODE = 0, ///< 位置控制模式 PRESS_CTRL_MODE = 1, ///< 压力控制模式 } dev_ctrl_mode_e; /// 阀门特性 typedef enum { VALVE_CHARACT_LINEAR = 0, // 线性 VALVE_CHARACT_EQU50 = 1, // 等百1:50 VALVE_CHARACT_QOPEN50 = 2, // 快开1:50 VALVE_CHARACT_EQU25 = 3, // 等百1:25 VALVE_CHARACT_QOPEN25 = 4, // 快开1:25 VALVE_CHARACT_EQU33 = 5, // 等百1:33 VALVE_CHARACT_QOPEN33 = 6, // 快开1:33 VALVE_CHARACT_SElF = 7, // 自定义 } valve_chart_e; /// LCD显示方向 typedef enum { DISP_DIR_0 = 0, DISP_DIR_180 = 1, } display_direction_e; /// LCD显示语言 typedef enum { CHINESE = 0, ENGLISH = 1, } display_language_e; /// 行程显示方式 typedef enum { TRAVEL_DISPLAY_NORMAL = 0, // 正向显示,与阀门开度一致 TRAVEL_DISPLAY_REVERSE = 1, // 反向显示,与阀门开度相反 } display_travel_mode_e; /// 行程单位 typedef enum { TRAVEL_UNIT_PRE = 0, // 百分比 TRAVEL_UNIT_MM = 1, // 毫米 TRAVEL_UNIT_INCH = 2, // 英寸 TRAVEL_UNIT_ANGLE = 3, // 角度 } travel_unit_e; /// 压力单位 typedef enum { PRESSURE_UNIT_Kpa = 0, PRESSURE_UNIT_Mpa = 1, PRESSURE_UNIT_Psi = 2, PRESSURE_UNIT_Bar = 3, PRESSURE_UNIT_Kgf = 4, } press_unit_e; /// 温度单位 typedef enum { TEMPERATURE_UNIT_C = 0, // 摄氏度 TEMPERATURE_UNIT_F = 1, // 华氏度 } temperature_unit_e; /// 电流单位 typedef enum { CURRENT_UNIT_MA = 0, // 毫安 CURRENT_UNIT_A = 1, // 安 } current_unit_e; /// 电流单位 typedef enum { FORCE_UNIT_N = 0, // 牛 FORCE_UNIT_KN = 1, // 千牛 } force_unit_e; /// 报警处理方式 typedef enum { ALARM_HANDLING_CONTINUE = 0, // 不影响阀门动作 ALARM_HANDLING_KEEP = 1, // 阀门位置保持 ALARM_HANDLING_RESET = 2, // 阀门复位 } alarm_handle_mode_e; /// 复位处理方式 typedef enum { RESET_HANDLING_CONTINUE = 0, // 自动控制 RESET_HANDLING_PAUSE = 1, // 控制阀门到上次位置 } reset_handle_mode_e; /// PID参数选择 typedef enum { Adaptive_PID = 0, // 自适应PID Self_PID = 1, // 自定义PID } pid_index_e; /// 整定结果 typedef enum { TUNED_NONE = 0, // 未整定 TUNED_ONGOING = 1, // 整定中 TUNED_SUCCESS = 2, // 整定成功 TUNED_FAILED = 3, // 整定失败 } tuned_result_e; // TODO 气压传感规格 typedef enum { PRESSURE_PARAM_S, PRESSURE_PARAM_A, PRESSURE_PARAM_B, PRESSURE_PARAM_MAX, } pressure_type_e; /// 磁条规格 [0]:最小值 [1]:最大值 extern const uint16_t magnet_param_table[MAGNET_PARAM_MAX][2]; /// 气压传感规格 [0]:最小值 [1]:最大值 extern const uint16_t pressure_param_table[PRESSURE_PARAM_MAX][2]; /// 阀门流量特性表 extern const uint16_t valve_characteristics_table[][17]; extern void params_init(void); extern void params_restart(void); extern void hart_attribute_params_restart(void); extern void hart_attribute_params_map(void); extern uint16_t get_pwm_arr_default(void); #endif // __PARAMS_H__