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 毫秒

  • _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