This repository has been archived on 2025-02-28. You can view files and clone it, but cannot push or open issues or pull requests.
controller-hd/User/application/inc/params.h

261 lines
6.3 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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__