|
- /**
- * @file plsr.h
- * @author zhangcheng
- * @brief PLSR指令功能接口文件
- * @version v0.1
- * @date 2025-08-06
- *
- * @copyright Copyright (c) 2025
- */
-
-
- #include "../../modbus/inc/modbus.h"
-
-
- /**
- * @brief 最大支持脉冲段
- * @details
- * @note
- * @attention
- */
- #define PLSR_PULSE_MAX_SEGMENT_NUM 10
-
-
- /**
- * @brief 系统参数块
- * @details
- * @note
- * @attention
- */
- typedef enum {
- SYSTEM_PARAM_BLOCK_0 = 0, ///< 系统参数块0,默认参数块,不可修改
- SYSTEM_PARAM_BLOCK_1, ///< 系统参数块1
- SYSTEM_PARAM_BLOCK_2, ///< 系统参数块2
- SYSTEM_PARAM_BLOCK_3, ///< 系统参数块3
- SYSTEM_PARAM_BLOCK_4 ///< 系统参数块4
- } PLSR_SYSTEM_PARAM_BLOCK;
-
-
-
- /**
- * @brief 输出端口
- * @details
- * @note
- * @attention
- */
- typedef enum {
- OUTPUT_PORT_Y0 = 0, ///< 输出端子Y0
- OUTPUT_PORT_Y1, ///< 输出端子Y1
- OUTPUT_PORT_Y2, ///< 输出端子Y2
- OUTPUT_PORT_Y3 ///< 输出端子Y3
- } PLSR_OUTPUT_PORT;
-
-
- /**
- * @brief 输出方向端口
- * @details
- * @note
- * @attention
- */
- typedef enum {
- OUTPUT_DIR_PORT_Y12 = 0, ///< 输出方向端子Y12
- OUTPUT_DIR_PORT_Y13, ///< 输出方向端子Y13
- OUTPUT_DIR_PORT_Y14, ///< 输出方向端子Y14
- OUTPUT_DIR_PORT_Y15 ///< 输出方向端子Y15
- } PLSR_OUTPUT_DIR_PORT;
-
-
- /**
- * @brief 方向端子方向逻辑
- * @details
- * @note
- * @attention
- */
- typedef enum {
- OUTPUT_DIR_CORRECT = 0, ///< 正逻辑
- OUTPUT_DIR_NEGATIVE, ///< 负逻辑
- } PLSR_OUTPUT_DIR_PORT_LOGIC;
-
-
- /**
- * @brief 输入信号端口
- * @details
- * @note
- * @attention
- */
- typedef enum {
- INPUT_EXT_PORT_X4 = 0, ///< 输入端子X4
- INPUT_EXT_PORT_X5, ///< 输入端子X5
- } PLSR_INPUT_EXT_PORT;
-
-
- /**
- * @brief 加减速模式模式
- * @details
- * @note
- * @attention
- */
- typedef enum {
- STRAIGHT_LINE_MODE = 0, ///< 直线加减速模式
- S_CURVE_MODE, ///< S曲线加减速模式
- SINE_CURVE_MODE ///< 正弦曲线加减速模式
- } PLSR_ACC_DEC_SPEED_MODE;
-
-
- /**
- * @brief 输出模式
- * @details
- * @note
- * @attention
- */
- typedef enum {
- RELATIVE_MODE = 0, ///< 相对模式
- ABSOLUTE_MODE ///< 绝对模式
- } PLSR_OUTPUT_MODE;
-
-
- /**
- * @brief 参数错误类型
- * @details
- * @note
- * @attention
- */
- typedef enum {
- PLSR_ERROR_NONE = 0, ///< 无错误
- PLSR_FREQ_EXCE_MAX_VALUE ///< 超过最大输出频率
- } PLSR_ERROR_TYPE;
-
-
- /**
- * @brief PLSR脉冲段
- * @details
- * @note
- * @attention
- */
- typedef struct
- {
- int32_t pulseFreq;
- int32_t pulseNumber;
- int16_t waitType;
- int16_t jumpNumber;
- } PLSR_SEGMENT;
-
-
- /**
- * @brief PLSR指令结构类型
- * @details
- * @note
- * @attention
- */
- typedef struct
- {
- PLSR_OUTPUT_PORT outputPort; ///< 输出端子
- PLSR_OUTPUT_DIR_PORT dirPort; ///< 输出方向端子
- PLSR_INPUT_EXT_PORT extPort; ///< 输入端子
- PLSR_OUTPUT_DIR_PORT_LOGIC dirLogic; ///< 输出方向端子逻辑
- PLSR_ACC_DEC_SPEED_MODE accDecSpeedMode; ///< 加减速模式
- PLSR_OUTPUT_MODE outMode; ///< 输出模式
- uint16_t dirDelayTime; ///< 方向延时时间
- uint16_t segmentAllNum; ///< 总段数
- uint16_t startRunSegment; ///< 起始执行段数
- uint16_t currentSegment; ///< 当前执行段数
- uint32_t defaultSpeed; ///< 默认速度
- uint16_t defaultAccSpeedTime; ///< 默认加速时间
- uint16_t defaultDecSpeedTime; ///< 默认减速时间
- int32_t monitorPulseNum; ///< 监控脉冲数量
- uint16_t sendEnableState; ///< 脉冲发送使能
- PLSR_SEGMENT segment[PLSR_PULSE_MAX_SEGMENT_NUM]; ///< 各段数参数
- } PLSR;
-
-
- /**
- * @brief PLSR功能初始化
- * @details
- *
- * @param[in] 无
- *
- * @return RESUIL 初始化结果
- * @retval MODBUS_TURE 成功
- * @retval MODBUS_FALSE 失败
- */
- RESUIL PLSRInit(void);
|