SOEM与ESC无法通讯问题解决方案

通过SOEM跑了下slaveinfo,输出log如下:

复制代码
Starting slaveinfo
ec_init on enp0s31f6 succeeded.
1 slaves found and configured.
Calculated workcounter 0
Not all slaves reached safe operational state.
Slave 1 State=11 StatusCode=  16 : Invalid mailbox configuration

Slave:1
 Name:? M:0048504d I:00000003
 Output size: 0bits
 Input size: 0bits
 State: 17
 Delay: 0[ns]
 Has DC: 1
 DCParentport:0
 Activeports:1.0.0.0
 Configured address: 1001
 Man: 0048504d ID: 00000003 Rev: 00000001
 SM0 A:ffff L:65535 F:00010026 Type:1
 SM1 A:ffff L:65535 F:00010022 Type:2
 FMMUfunc 0:0 1:0 2:0 3:0
 MBX length wr: 65535 rd: 65535 MBX protocols : ffff
 CoE details: 00 FoE details: 00 EoE details: 00 SoE details: 00
 Ebus current: 0[mA]
 only LRD/LWR:0
End slaveinfo, close socket
End program

好几处异常:

1、无法进入safeop状态

2、读取到的SM配置数据全FF

因此怀疑是EEPROM数据不对,把EEPROM数据读出,显示:

EEPROM感觉不对,找到了XML中相应的字段:

复制代码
   <Eeprom>
          <ByteSize>2048</ByteSize>
          <ConfigData>800C8166000000001234</ConfigData>
          <BootStrap>0010800080108000</BootStrap>
        </Eeprom>
        <ImageData16x14>424DD8020000000000003600000028000000100000000E0000000100180000000000A2020000120B0000120B000000000000000000001306E31306E3190CE42B1FE62B1FE61306E31F13E5190CE42519E51306E31306E3190CE42F24E7190CE41306E31306E31306E31306E35F56EC645CED645CED4137E91F13E5473DE95F57EC3227E71306E3473DE95A51EC271BE61306E31306E31409CA524CC68E8AD74F48C1615CC82218D03E36BF716BCE746FCE453DC01307CE3931BA7D78D27671D1150CB21409CA1712801B1D1D1B1D1D1B1D1D1B1D1D120B891B1D1D1B1D1D1B1D1D1B1D1D120B891B1D1D1B1D1D1B1D1D1B1D1D1712801712807F8080D4D5D5D4D5D5383939120B89545656D4D5D5D4D5D5626464130C89292B2BD4D5D5D4D5D56264641915801712804647471B1D1DAAAAAAD4D5D5130E82383939292B2B717272D4D5D5151183D4D5D57F80801B1D1D7172721E1C81191580464747D4D5D5D4D5D51B1D1D19158A292B2BD4D5D5D4D5D5292B2B1B1B8AD4D5D56264641B1D1D1B1D1D2427821E1D81D4D5D54647476264643839391E208BD4D5D57F8080464747545656242A8BD4D5D59B9C9C292B2BAAAAAA2D3683252882464747D4D5D5D4D5D51B1D1D272D85292B2BD4D5D5D4D5D5292B2B2E37861B1D1DD4D5D5D4D5D5464747394484323BB52324812122822426822526824554C0323883292B822A2D83353C84424CBF3238843940842E32834853865D6EBB5262EB3E43E83334E74147E94349E9535FEB4D56EA5662EB484DEA545DEB636FED545AEA5A63EC6671ED8CA0F290A5F2748AEF6B7BEE5D68EC6874ED788AEF8397F17684EF7986EF8C9FF2818FF1818EF08E9DF18A97F18791F19BA9F3B0C0F691A4F291A2F28390F192A1F29CACF3A3B3F498A6F3A4B3F4AEBDF5B0BEF59EA8F3A3ADF4BBC7F7C4D1F8CAD7F8CED9F9B4C4F6B8C8F6ACB8F59AA3F3B6C1F6C5D2F8C2CDF8CCD7F9D2DDF9D5E0FAD2DAF9D5DCF9DFE7FBE2E9FBE5EBFBE8EEFB0000</ImageData16x14>

同时找到了对于EEPROM内要写的参数的描述

确认为EEPROM参数错误,通过TWINCAT来更新EEPROM,并重新读取:

再次使用SOEM进行获取从站信息:

复制代码
SOEM (Simple Open EtherCAT Master)
Slaveinfo
Starting slaveinfo
ec_init on enp0s31f6 succeeded.
1 slaves found and configured.
Calculated workcounter 3

Slave:1
 Name:ECAT_CIA402
 Output size: 96bits
 Input size: 96bits
 State: 4
 Delay: 0[ns]
 Has DC: 1
 DCParentport:0
 Activeports:1.0.0.0
 Configured address: 1001
 Man: 0048504d ID: 00000003 Rev: 00000001
 SM0 A:1000 L: 128 F:00010026 Type:1
 SM1 A:1080 L: 128 F:00010022 Type:2
 SM2 A:1100 L:  12 F:00010064 Type:3
 SM3 A:1400 L:  12 F:00010020 Type:4
 FMMU0 Ls:00000000 Ll:  12 Lsb:0 Leb:7 Ps:1100 Psb:0 Ty:02 Act:01
 FMMU1 Ls:0000000c Ll:  12 Lsb:0 Leb:7 Ps:1400 Psb:0 Ty:01 Act:01
 FMMUfunc 0:1 1:2 2:3 3:0
 MBX length wr: 128 rd: 128 MBX protocols : 0c
 CoE details: 2f FoE details: 01 EoE details: 00 SoE details: 00
 Ebus current: 0[mA]
 only LRD/LWR:0
End slaveinfo, close socket
End program

恢复正常。

相关推荐
清月电子5 小时前
杰理AC109N系列AC1082 AC1074 AC1090 芯片停产替代及资料说明
人工智能·单片机·嵌入式硬件·物联网
智嵌电子6 小时前
【笔记篇】【硬件基础篇】模拟电子技术基础 (童诗白) 第10章 模拟电子电路读图
笔记·单片机·嵌入式硬件
一颗青果7 小时前
51单片机 计算指令
单片机·嵌入式硬件·51单片机
一路往蓝-Anbo7 小时前
【第20期】延时的艺术:HAL_Delay vs vTaskDelay
c语言·数据结构·stm32·单片机·嵌入式硬件
LCG米9 小时前
低功耗设计艺术:基于STM32U3系列MCU实现人类存在检测(仅6%占空比)
stm32·单片机·嵌入式硬件
zd8451015009 小时前
[LWIP] 如何启LWIP用调试信息输出
单片机
v先v关v住v获v取10 小时前
桌面级五轴机械臂cad1张总图+三维图+设计说明书
科技·单片机·51单片机
电子工程师-C5110 小时前
基于51单片机的智能调温淋浴器
单片机·嵌入式硬件·51单片机
番茄灭世神11 小时前
32位ARM单片机视频教程第一篇
arm开发·单片机·嵌入式·gd32·pn学堂