✓ 最佳回答
1)CP1H的定时器/计数器是共享编号资源:TIM/CNT编号0000~4095,但TIM和CNT不能同号复用,且总数受限制;用CX-Programmer“工具->程序检查”或“交叉引用”能看到每个编号被谁占用。
2)功能块内部若定义了定时器实例,会占用编号,若与主程序里手写的TIM0000等重叠就冲突。
解决:给FB实例分配独立编号段(如FB用TIM1000以上),主程序用0000~0999,物理隔离;或在FB定义里把定时器作为输入参数传入,不在FB内硬编码编号。
3)注意保持型定时器TTIM、计数器与普通TIM/CNT的编号同样共享,勿混用。
4)下载报错时先看“编译/程序检查”窗口的具体提示,按提示改编号;改完用交叉引用确认无重复。
5)另外确认中断任务、子程序里用的定时器不要与主程序同号,避免运行中被覆盖导致不动作。