ZHCU083I January 2013 – October 2021 TMS320F2802-Q1 , TMS320F28026-Q1 , TMS320F28026F , TMS320F28027-Q1 , TMS320F28027F , TMS320F28027F-Q1 , TMS320F28052-Q1 , TMS320F28052F , TMS320F28052F-Q1 , TMS320F28052M , TMS320F28052M-Q1 , TMS320F28054-Q1 , TMS320F28054F , TMS320F28054F-Q1 , TMS320F28054M , TMS320F28054M-Q1 , TMS320F2806-Q1 , TMS320F28062-Q1 , TMS320F28062F , TMS320F28062F-Q1 , TMS320F28068F , TMS320F28068M , TMS320F28069-Q1 , TMS320F28069F , TMS320F28069F-Q1 , TMS320F28069M , TMS320F28069M-Q1
主函数为 STVELPLAN_run(ST_VELPLAN_Handle handle),其中 handle 是具体 ST_VelPlan_t 对象的指针。此函数运行 SpinTAC 速度规划。可在程序的主循环中运行此函数。
void STVELPLAN_run(ST_VELPLAN_Handle handle)
参数:
编号 | 类型 | 参数 | 说明 |
---|---|---|---|
1 | ST_VELPLAN_Handle | handle | ST_VelPlan_t 对象的指针 |
SpinTAC 速度规划中处理状态计时器递减的函数是 STVELPLAN_runTick(ST_VELPLAN_Handle handle),其中 handle 是具体 ST_VelPlan_t 对象的指针。此函数递减 SpinTAC 速度规划的状态计时器。此函数必须以 SpinTAC 速度控制的相同速率运行。
void STVELPLAN_runTick(ST_VELPLAN_Handle handle)
参数:
编号 | 类型 | 参数 | 说明 |
---|---|---|---|
1 | ST_VELPLAN_Handle | handle | ST_VelPlan_t 对象的指针 |
SpinTAC 速度规划状态转换图如图 4-10 所示。请注意,在图 4-10 中,IDLE 到 INIT,再到 BUSY 的状态转换在一个采样时间内发生。
表 4-10 说明了 SpinTAC 速度规划的状态。
起始状态 | 结束状态 | 转换条件(1)(2)(3)(4)(5) | 操作 |
---|---|---|---|
IDLE | 保持 IDLE 状态
|
||
INIT | RES == false 并且 ENB 在上升沿 | ||
INIT | BUSY | 参数验证
|
|
BUSY | 操作该规划 | ||
IDLE | RES == false 并且 ENB == true 并且 DON == true | 设置 ENB = false | |
HALT | RES == true 或 ENB == false | 加载暂停状态系统配置 | |
HALT | IDLE | HALT 状态计时器启动并且 RES == true | 加载状态 0 的配置 |
WAIT | HALT 状态计时器启动并且 RES == false | ||
WAIT | IDLE | RES == true | 加载状态 0 的配置 |
HALT | ENB == true | 加载上个状态的配置 |
表 4-11 列出了可用于执行操作(如设置、获取、添加和删除 SpinTAC 速度规划的配置和运行时参数)的函数。Topic Link Label4.7.9 更详细地介绍了这些函数。
函数组 | 函数名称 | 说明 |
---|---|---|
初始化 | STVELPLAN_init | 初始化 SpinTAC 速度规划 |
配置 | STVELPLAN_setCfg | 设置系统和保护参数 |
STVELPLAN_setCfgArray | 设置配置数组 | |
STVELPLAN_setCfgHaltState | 设置 HALT 状态的参数 | |
STVELPLAN_addCfgState | 添加新状态 | |
STVELPLAN_addCfgVar | 添加新变量 | |
STVELPLAN_addCfgCond | 添加比较变量和静态值的新条件 | |
STVELPLAN_addCfgVarCond | 添加比较两个变量的新条件 | |
STVELPLAN_addCfgTran | 添加新转换 | |
STVELPLAN_addCfgAct | 添加新操作 | |
运行时 | STVELPLAN_run | 运行 SpinTAC 速度规划。可从主循环运行。 |
STVELPLAN_runTick | 运行 SpinTAC 速度规划计时器功能。必须从 ISR 运行。 | |
STVELPLAN_setVar | 设置运行期间的变量值 | |
STVELPLAN_getVar | 获取运行期间的变量值 | |
STVELPLAN_reset | 复位 SpinTAC 速度规划和配置 | |
STVELPLAN_setUnitProfDone | 设置当前运行的系统配置是否完成 | |
规划修改和调试函数(提供在运行时修改 SpinTAC 速度规划的功能) | STVELPLAN_getCfgStateNum | 获取已配置状态数 |
STVELPLAN_getCfgVarNum | 获取已配置变量数 | |
STVELPLAN_getCfgCondNum | 获取已配置条件数 | |
STVELPLAN_getCfgTranNum | 获取已配置转换数 | |
STVELPLAN_getCfgActNum | 获取已配置操作数 | |
STVELPLAN_getCfg | 获取系统和保护参数 | |
STVELPLAN_getCfgHaltState | 获取 HALT 状态的参数 | |
每个带有后缀 -Add 的函数都有另外三个函数:-Del、-Set 和 -Get,分别用于删除项目、设置项目和获取项目。这些函数允许在运行时修改 SpinTAC 速度规划。 |