chenxiaochong 发表于 2020-6-22 14:21:57

trace影响任务周期的解决办法

      codeSys中,跟踪(trace)是一个很好用的工具。为了监控到每一个扫描周期的变量状态,往往把trace放在EtherCAT_Master任务下。

      trace会影响任务执行时间,一般会使任务执行时间增大200us左右。但是trace对任务
执行时间的影响是及其不稳定的,有时候会使任务时间增加2000~3000us,导致EtherCAT_Master

任务的执行时间超过EtherCAT周期,从而导致轴报“同步时钟丢失”。

可以采用以下办法,既能保证每个EtherCAT周期都能采到数据,又不会导致EtherCAT_Master任务超时;
1.新建一个任务,命名为“TraceTask”,优先级 设为1,类型为循环,间隔 设为和EtherCAT周期相同


2.再把MainTask等除了EtherCAT_Master任务的优先级设为20 (保证TraceTask为 仅次于EtherCAT_Master的优先级 )

3.在trace-Configuration 中 任务选择 TraceTask;

如此,基本上每个EtherCAT_Master任务周期内都能采到一个点,而且不会影响到EtherCAT_Master周期
页: [1]
查看完整版本: trace影响任务周期的解决办法