261 lines
6.3 KiB
C
261 lines
6.3 KiB
C
#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__
|