对于 CM598-CAN 模块,PLC 应用任务的执行可由特定事件自动触发,即由接收到的 CAN 2.0 A 或 CAN 2.0 B 帧触发。为此,必须将 PLC 应用任务配置为外部事件任务。
先决条件
先决条件
-
PLC 固件 3.2.5 版和Automation Builder 2.2.5 版。
-
一个通讯模块只能分配一个 PLC 应用任务。
-
仅通信模块 CM598-CAN 支持触发事件任务。

CM598-CAN 模块上的每个传入 CAN 帧都会在AC500 PLC 中处理一个事件。如果参数 "触发 PLC 任务 "设置为 "true",CAN 协议任务将通过接收缓冲区配置和 CAN 帧的相应 CAN-ID 检查是否要执行 CAN 帧。只有在协议配置中配置的 CAN-ID 才会被处理。所有其他 CAN 帧都将被拒绝。如果要处理 CAN 帧,则将 CAN 帧数据复制到接收缓冲区,并触发 IEC 事件任务中的一个事件。
IEC 事件任务将执行一个周期。
IEC 事件任务将持续触发,直到所有相关接收缓冲区清空为止。因此,要确保任务清空缓冲区,否则任务将陷入循环。
在任务中,必须使用功能块 Cm598CanMsgRecEvt 从接收缓冲区读取 CAN 帧。不适合使用功能块 Cm598CanMsgRec,因为它需要几个任务周期才能执行。
CAN 帧处理

-
一个 CM598-CAN 只能分配一个外部事件任务。
-
外部事件任务和所有选定的 CAN-ID 只有一个共同事件。必须对已收到的 CAN-ID 进行评估。
-
当必要的系统资源被占用或由于系统负载过高而无法及时处理 CAN 帧时,就有可能丢失 CAN 帧。因此,PLC 应用程序必须通过看门狗机制或类似机制监控消耗 CAN 协议事件的任务。
-
接收到的具有相同 CAN-ID 的 CAN 帧内部存储在 FIFO 缓冲器中。无法同时读写 FIFO 缓冲区。
-
在外部事件任务中,必须使用功能块 Cm598CanMsgRecEvt 来读取接收到的 CAN 帧。不适合使用功能块 Cm598CanMsgRec,因为其执行需要一个以上的任务周期。
-
相关任务必须读取已启用以触发外部事件任务的 CANID。否则,任务会反复触发,CPU 负荷会很高。
事件任务配置
将应执行的外部事件任务添加到 PLC 应用程序的任务配置中:
-
右键单击“任务配置” 。输入任务名称,然后单击“添加对象” 。
-
右键单击新任务并附加“Program Call” 。其中包含任务执行的程序代码。
-
双击任务并设置任务参数。

参数说明见 "选项卡'配置'"一章⮫ “配置 "选项卡” 。偏差说明如下:
|
参数 |
默认值 |
数值 |
说明 |
|---|---|---|---|
|
优先权 |
16 |
0..16 0 "表示最高优先级 |
任务的优先次序 |
|
类型 |
n.a. |
外部 |
指定任务类型。 |
|
外部活动 |
n.a. |
耦合器事件< CM 的插槽索引>_CAN |
指定触发任务执行的事件。 |
|
间隔 |
n.a. |
周期时间 |
未使用 |
CM598-CAN 模块的配置详见⮫ “CANopen” 。