Skip to main content

公交车循环任务— EtherCAT

一开始时的行为

原则上,用于每个 IEC 任务的输入数据将在任务开始时读取(_1_r.png),并在任务结束时将输出数据写入 I/O 驱动程序 (_3_r.png)。I/O 驱动程序中的实现对于 I/O 数据的额外传输至关重要。它决定了实际传输到相应总线系统的时间范围和时间。

可以在 PLC 设置中为所有现场总线全局定义 PLC 的总线循环任务。但是,对于某些现场总线,您可以独立于全局设置对其进行更改。循环时间最短的任务用作总线循环任务(设置: 未指定PLC 设置)。在此任务中,消息通常在总线上发送。

其他任务仅从内部缓冲区复制 I/O 数据,该缓冲区仅与总线循环任务中的物理硬件交换。

任务开始时的画面

如果 FrameAtTaskStart 属性设置为 FALSE,那么时间安排如下:

_ecat_frame_at_task_start_set_false.png

如果 FrameAtTaskStart 属性设置为 TRUE,那么时间安排如下:

_ecat_frame_at_task_start_set_true.png
  • _1_r.png 从输入缓冲区读取输入

  • _2_r.png IEC 任务

  • _3_r.png 将输出写入输出缓冲区

  • _4_r.png 公共汽车周期

  • _5_r.png 输入缓冲区

  • _6_r.png 输出缓冲区

  • _7_r.png 将数据复制到/从总线复制数据

  • _9_r.png 总线循环任务,优先级 1,1 ms

  • _10_r.png 公交循环任务,优先级 5

  • _11_r.png 总线循环任务,优先级 10,被任务 5 中断

有关更多信息,请参阅以下内容: 属性:“iodrvethercat.frameattaskStart”

任务使用情况

这个 任务部署 选项卡概述了所使用的 I/O 通道、设置总线周期任务和通道的使用情况。

警告

如果输出是在各种任务中写入的,则状态为未定义,因为在每种情况下都可能被覆盖。

如果在各种任务中使用相同的输入,则输入可能会在任务处理过程中发生变化。当任务被优先级较高的任务中断并导致再次读取进程映像时,就会发生这种情况。

补救措施:在 IEC 任务开始时,将输入变量复制到变量中,然后仅使用其余代码中的局部变量。

结论:在多个任务中使用相同的输入和输出没有任何意义,在某些情况下可能会导致意想不到的反应。

有关更多信息,请参阅以下内容: “任务配置” 章节

公交车周期的行为 EtherCAT

在复制 IEC 输入之前,将读取最后一个周期的待处理网络消息。

_ecat_task_diagram11.png

每项任务的消息 的设置中启用了选项 EtherCAT 主,额外的电报会传输到每项任务和所使用的输入或输出所使用的设备。在慢速任务中使用的信道的传输频率也较低。因此,可以减少总线负载。

_ecat_img_task_diagram_ethercat2.png