#ifndef __DRIVERPARAS_H__ #define __DRIVERPARAS_H__ #include "config.h" #define DRIVER_PARA_ST 0 #define DRIVER_PARA_NOR 1 #ifndef DRIVER_PARA #define DRIVER_PARA DRIVER_PARA_NOR #endif #if (DRIVERS_NUM > 0) #if (DRIVER_PARA == DRIVER_PARA_NOR) #include "norparas.h" #define DRV_PARA_NUMS PARA_NUM_PER_BLK #define DRV_PARA_STR_LEN PARA_STR_LEN #else #define DRV_PARA_NUMS 64 #define DRV_PARA_STR_LEN 30 #endif #define CTRLMODE_OPEN 0 #define CTRLMODE_CLOSE 1 typedef struct { // 0 int closeCtrlMode; // 开闭环模式 int cmdSource; // 命令来源, 0 内部命令; 1, 外部脉冲; int stepPerCircle; // 每圈脉冲数 // 3 int openRunCircle; // 开环运行电流 int openLockCircle; // 开环锁定电流 int openMaxOffset; // 开环最大偏移限制 // 6 s32 maxSpeed; // 最高转速限制, 单位: 可控位置个数/控制周期 // 7 int closeAdjust; // 闭环磁场修正 int closeCircle; // 闭环电流比例 // 9 int maxAdvance; // 最大控制偏差 // 10 // 闭环位置控制pid int kp; // 位置环比例增益 范围(0--1000), 默认 500 int ki; // 位置环积分增益 范围(0--1000), 默认 20 int kd; // 位置环微分增益 范围(0--1000), 默认 800 // 13 int ecdAdjust; // 编码器较准 // 14 u32 startPPS; // 启动速度 u32 runPPS; // 运行速度 u32 addPPSS; // 加速度 u32 brkPPSS; // 刹车速度 // 18 u32 numerator; // 电子齿轮分子 u32 denominator; // 电子齿轮分母 // 20 u32 basecircle; // 闭环最小电流 // 21 u32 rev[DRV_PARA_NUMS-21]; }DriverPara; #ifdef _IN_DRIVERPARAS_C // 默认参数表 static const u32 g_defDriverParaList[DRV_PARA_NUMS][3] = { // 最小 最大 默认 // 0 {0, 1, 0 } , // int closeCtrlMode; // 开闭环模式 {0, 1, 0 } , // int cmdSource; // 命令来源, 0 内部命令; 1, 外部脉冲; {100, 204800, 4000} , // int stepPerCircle; // 每圈脉冲数 // 3 {1, 320, 200 } , // int openRunCircle; // 开环运行电流 {0, 320, 0 } , // int openLockCircle; // 开环锁定电流 {1, 1000, 200 } , // int openMaxOffset; // 开环最大偏移限制 // 6 {1, 10000, 4000} , // s32 maxSpeed; // 最高转速限制, 单位: 可控位置个数/控制周期 // 7 {0, 0, 0 } , // int closeAdjust; // 闭环磁场修正 {1, 1000, 100 } , // int closeCircle; // 闭环电流比例 {1, 1200, 1200} , // int maxAdvance; // 最大控制偏差 // 10 // 闭环控制pid {0, 1000, 400 } , // int kp; // 位置环比例增益 范围(0--1000), 默认 400 {0, 1000, 20 } , // int ki; // 位置环积分增益 范围(0--1000), 默认 20 {0, 1000, 800 } , // int kd; // 位置环微分增益 范围(0--1000), 默认 800 // 13 {0, 0, 0 } , // int ecdAdjust; // 编码器较准 // 14 {1, 10000, 1000 } , // u32 startPPS; // 启动速度 {1, 200000, 40000 } , // u32 runPPS; // 运行速度 {1, 40000, 100 } , // u32 addPPSS; // 加速度 {1, 40000, 10000 } , // u32 brkPPSS; // 刹车速度 // 18 {100, 204800, 4000} , // u32 numerator; // 电子齿轮分子 {1, 204800, 1 } , // u32 denominator; // 电子齿轮分母 // 20 {0, 50, 0 }, // 闭环最小电流 {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, // 32 {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, {0, 0, 0 }, }; static const char g_driverParaStrList[DRV_PARA_NUMS][DRV_PARA_STR_LEN] = { "开闭环模式; 0开环; 1, 闭环;", "命令来源, 0 内部; 1, 外部;", "每圈脉冲数", "开环运行电流", "开环锁定电流", "开环最大控制偏差", "最高转速限制", "闭环磁场修正", "闭环电流比例", "闭环最大控制偏差", "位置环比例增益(0--1000)", "位置环积分增益(0--1000)", "位置环微分增益(0--1000)", "编码器较准,默认0", "启动速度", "运行速度", "加速度", "刹车速度", "电子齿轮分子", "电子齿轮分母", // 20 "闭环最小电流(0-50)", "", "", "", "", "", "", "", "", "", "", // 32 "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", }; #endif //----------------------- void InitDriverParas(void); DriverPara * GetDriverParas(int didx); void SaveDriverParas(int didx); const char * GetDriverParaName(int pidx); //----------------------- #endif //----------------------- #endif