ZHCAEA5 August   2024 AM625 , AM6442 , AM69 , TDA4VM

 

  1.   1
  2.   摘要
  3.   商标
  4. 1引言
    1. 1.1 什么是 EtherCAT?
    2. 1.2 什么是 PLC?
    3. 1.3 什么是 CODESYS?
  5. 2评估平台和方法
    1. 2.1 硬件
    2. 2.2 软件
    3. 2.3 测试拓扑
  6. 3性能指标
    1. 3.1 Cyclictest 性能指标
    2. 3.2 EtherCAT 性能指标
  7. 4优化
    1. 4.1 已实现的优化
    2. 4.2 未来注意事项
      1. 4.2.1 设置最大 CPU 频率
      2. 4.2.2 隔离核心
      3. 4.2.3 设置 CPU 亲和性
      4. 4.2.4 隔离核心并设置 CPU 亲和性
      5. 4.2.5 Ksoftirqs 到 FIFO
      6. 4.2.6 增加实时调度时间
      7. 4.2.7 禁用 irqbalance
      8. 4.2.8 使用独立的网络接口卡 (NIC)
      9. 4.2.9 禁用不必要的驱动程序
  8. 5总结
  9. 6参考资料
  10. 7附录 A:如何使用 CODESYS 协议栈将 TI 嵌入式处理器设置为 EtherCAT 控制器
    1. 7.1 硬件要求
    2. 7.2 软件要求
    3. 7.3 硬件设置
    4. 7.4 软件设置
      1. 7.4.1 Windows PC 设置
      2. 7.4.2 EtherCAT 控制器设置
      3. 7.4.3 CODESYS Development System 项目
      4. 7.4.4 执行
    5. 7.5 如何查看性能测量结果
      1. 7.5.1 附录 A 资源
  11. 8附录 B:如何在 CODESYS 协议栈上实现无限运行时间
    1. 8.1 CODESYS 许可背景
    2. 8.2 获取 CODESYS 许可证
    3. 8.3 激活 CODESYS 许可证
      1. 8.3.1 背景
      2. 8.3.2 建议的步骤
    4. 8.4 验证已应用 CODESYS 许可证
      1. 8.4.1 验证已应用 CODESYS 许可证的已知问题

设置 CPU 亲和性

当 IEC 任务分布在多个 CPU 核心上时,不再保证按优先级处理 IEC 任务(请参阅多核)。为了防止这种情况,请将所有 CODESYS 线程的 CPU 亲和性设置为单个核心。可以在 Linux shell 中使用 taskset -p <cpu core number (1 indexed)> <Process ID> 命令来设置 CPU 亲和性。

在针对 AM64x 执行基准测试期间,通过将 htop 中所有可见 IEC 任务的 CPU 亲和性设置为一个核心来测试此过程。不过,每 4-5 分钟,另一个核心上的 CPU 负载仍然会增加大约 40%(请参阅图 4-8)。在基准测试期间,包含 IEC 任务的核心的 CPU 负载从 ≅20% 增加到 ≅65%。根据增加的 CPU 负载,可能会有与在另一个核心上运行的 IEC 任务相关的额外线程。周期时间的改善很难跟踪。也就是说,没有观察到周期时间的明显改善。