工具/软件:
您好:
目前、我们正在开发一个具有6个同步管理器的 EtherCAT 从站。 SM0和 SM1用于邮箱、SM2和 SM3用于 PDO、SM4和 SM5用于 SPDO (安全 PDO)。
我们的目标是将过程数据分成两个帧。 在帧接收时调用 PDI_ISR ()、根据"AL 事件请求(0x0220)"寄存器位[10:13]的内容、我们决定是否调用 PDO IN-/输出处理+ PDO 应用程序(对于 SM2和 SM3、位[10:11] )、或者应调用 SPDO IN /输出处理+ SPDO 应用程序(对于 SM4和 SM5、位[12:13])。
每个帧接收都会导致调用 pdi_isr (),因此对于两个连续的帧,我们会得到两个 pdi_isr ()调用。 这是我们的问题:在第一个 pdi_isr ()调用 SM2、SM3和 SM5事件的位被设置,一切都很好。 在第二个调用中、设置 SM4的位以及 SM2和 SM5的位。 这会使我们的应用程序执行 SPDO 输出映射和 SPDO 应用程序两次。 第一个调用和第二个调用中设置的位会因帧到达的时间而异。 是否有办法复位挂起的中断位?
此致