level 1
贴吧用户_7R9ba9e
楼主
各位大佬,我在实现一个EtherCAT从站,目前的问题是:
使用TwinCAT3作为主站,连接一个从站并进入Run模式(DC同步)时,会经常报同步错误(Synchronization error,AL Stauts Code为0x1a”),此时TwinCAT上显示从站设备从OP状态退回到SAFEOP状态,并立刻返回OP状态,这会导致从站运行时在此短暂卡顿,有时甚至会无规律地停止在SAFEOP状态。另外,在扫描从站并进入Config Mode时,也会无规律地停止在SAFEOP状态,需要重新扫描才可进入OP状态。

" class="BDE_Image" onload="EditorUI.resizeImage(this, 560)" unselectable="on"/>
具体地,从站的主要硬件配置是:
1、物理层和数据链路层:FRJ45056网口(内置隔离变压器)、KS8721BLI-TR PHY芯片、ET1100。但目前网口是通过导线外接到PCB上,而非焊接在PCB上;
2、应用层:STM32F103CBT6(主频72MHz);
3、PDI为SPI,并使用了STM32的三个外部中断引脚作为SYNC0、SYNC1、EXT_IRQ。
软件方面:
1、对于PDO的处理与使用,我只修改了应用层源文件中的void APPL_InputMapping(UINT16* pData)、void APPL_OutputMapping(UINT16* pData)和void APPL_Application(void)三个函数;
2、对于SDO的使用,则是将自定义的应用函数在MainLoop()中调用;
3、协议栈代码由SSC生成并移植,使用了大小为56bit的SDO、112bit的PDO,均为单一的结构体。
目前我的笔记本上运行TwinCAT,延迟在200μs以内,尝试过修改三个中断的优先级、延长I/O任务周期时间(若周期时间太长(100ms),则会报Communication Error错误)、取消void APPL_Application(void)中的应用层函数调用等,均未解决。可能是什么原因呢?需不需要更换工控机作为主站?求各位大佬指点
2025年08月14日 13点08分
1
使用TwinCAT3作为主站,连接一个从站并进入Run模式(DC同步)时,会经常报同步错误(Synchronization error,AL Stauts Code为0x1a”),此时TwinCAT上显示从站设备从OP状态退回到SAFEOP状态,并立刻返回OP状态,这会导致从站运行时在此短暂卡顿,有时甚至会无规律地停止在SAFEOP状态。另外,在扫描从站并进入Config Mode时,也会无规律地停止在SAFEOP状态,需要重新扫描才可进入OP状态。

" class="BDE_Image" onload="EditorUI.resizeImage(this, 560)" unselectable="on"/>具体地,从站的主要硬件配置是:
1、物理层和数据链路层:FRJ45056网口(内置隔离变压器)、KS8721BLI-TR PHY芯片、ET1100。但目前网口是通过导线外接到PCB上,而非焊接在PCB上;
2、应用层:STM32F103CBT6(主频72MHz);
3、PDI为SPI,并使用了STM32的三个外部中断引脚作为SYNC0、SYNC1、EXT_IRQ。
软件方面:
1、对于PDO的处理与使用,我只修改了应用层源文件中的void APPL_InputMapping(UINT16* pData)、void APPL_OutputMapping(UINT16* pData)和void APPL_Application(void)三个函数;
2、对于SDO的使用,则是将自定义的应用函数在MainLoop()中调用;
3、协议栈代码由SSC生成并移植,使用了大小为56bit的SDO、112bit的PDO,均为单一的结构体。
目前我的笔记本上运行TwinCAT,延迟在200μs以内,尝试过修改三个中断的优先级、延长I/O任务周期时间(若周期时间太长(100ms),则会报Communication Error错误)、取消void APPL_Application(void)中的应用层函数调用等,均未解决。可能是什么原因呢?需不需要更换工控机作为主站?求各位大佬指点