【问题标题】:SDO ethercat SOEM/SOESSDO ethercat SOEM/SOES
【发布时间】:2020-10-22 21:40:54
【问题描述】:

我正在使用 SOEM 和 SOES 库实现 SDO 通信,但我遇到了一些问题,有人可以帮助我吗?更详细地说,我使用一台带有 Ubuntu 的个人电脑作为 Ethercat 主机和一台使用 LAN9252 的 ethercat 从机。从站连接到带有窗口 10 的 PC,该窗口用于加载 SOES 程序,一旦加载了软件,它就会保持连接在调试模式以检查变量。我的 SDO 通信有问题。当我在我的主服务器上运行 slaveinfo.c 程序(该程序包含在 SOEM 库中)时,从带有可选参数的命令窗口 -sdo 我获得以下结果:

SOEM(简单开放式 EtherCAT 主站) 从属信息 启动slaveinfo enp2s0 上的 ec_init 成功。 找到并配置了 1 个从站。 计算工作计数器 3

奴隶:1 名称:SSC_Device 输出大小:1024bits 输入大小:1024bits 状态:4 延迟:0[ns] 拥有 DC: 1 DCParentport:0 活动端口:1.0.0.0 配置地址:1001 人:00000afc ID:00010000 修订:00000001 SM0 A:1000 L:128 F:00010026 类型:1 SM1 A:1200 L:128 F:00010022 类型:2 SM2 A:1400 L:128 F:00010064 类型:3 SM3 A:1600 L:128 F:00010020 类型:4 FMMU0 Ls:00000000 Ll: 128 Lsb:0 Leb:7 Ps:1400 Psb:0 Ty:02 Act:01 FMMU1 Ls:00000080 Ll: 128 Lsb:0 Leb:7 Ps:1600 Psb:0 Ty:01 Act:01 FMMUfunc 0:1 1:2 2:0 3:0 MBX 长度 wr:128 rd:128 MBX 协议:04 CoE 详细信息:0d FoE 详细信息:00 EoE 详细信息:00 SoE 详细信息:00 总线电流:0[mA] 仅 LRD/LWR:0 ec_slave[cnt].mbx_proto: 04 打印SDO:1 结束slaveinfo,关闭socket 结束程序

问题是我没有看到根据 CoE 的 PDO 映射。我查看了master和slave之间的包交换,我看到master发送了一个请求,我的slave收到了,然后slave发送了响应请求,但是master没有收到。从从属调试器中,我检查了 SM_status(同步管理器状态 SM1 0x080d),它是指示 mailmox 是否已满以及主机是否可以读取的寄存器,我看到该寄存器的值没有改变。有人知道是什么问题吗? eeprom 内存需要具有特定的结构以允许正确的 SDO 通信?或者可能只是从属软件的问题?

谢谢。

【问题讨论】:

    标签: ethercat sdo


    【解决方案1】:

    使用参数-map调用slaveinfo程序

    干杯 马可

    【讨论】:

    • 欢迎来到 Stack Overflow。这不是答案。这是一条评论。您应该将这些作为评论发布在问题下方。
    • 嗨!是的,我也使用了 -map,但它无论如何都不起作用
    • 2 件事:1. 你的打印输出看起来有点奇怪 "ec_slave[cnt].mbx_proto: 04 printSDO: 1" 这是你添加的吗? 2.slaveinfo程序应该打印出“PDO mapping based on COE”,即使主从通信有问题,也只能通过给定的程序参数-map。为什么您的帖子中没有显示?这说明master端有问题。
    【解决方案2】:

    sudo ./slaveinfo eth2 -map

    SOEM (Simple Open EtherCAT Master)
    Slaveinfo
    Starting slaveinfo
    ec_init on eth2 succeeded.
    1 slaves found and configured.
    Calculated workcounter 3
    
    Slave:1
     Name:Servo Drives
     Output size: 88bits
     Input size: 88bits
     State: 4
     Delay: 0[ns]
     Has DC: 1
     DCParentport:0
     Activeports:1.0.0.0
     Configured address: 1001
     Man: 0000029c ID: 02c30001 Rev: 00000003
     SM0 A:1000 L: 128 F:00010026 Type:1
     SM1 A:1400 L: 128 F:00010022 Type:2
     SM2 A:1800 L:  11 F:00010064 Type:4
     SM3 A:1c00 L:  11 F:00010020 Type:3
     FMMU0 Ls:00000000 Ll:  11 Lsb:0 Leb:7 Ps:1c00 Psb:0 Ty:02 Act:01
     FMMU1 Ls:0000000b Ll:  11 Lsb:0 Leb:7 Ps:1800 Psb:0 Ty:01 Act:01
     FMMUfunc 0:1 1:2 2:3 3:0
     MBX length wr: 128 rd: 128 MBX protocols : 0e
     CoE details: 2f FoE details: 01 EoE details: 01 SoE details: 00
     Ebus current: 0[mA]
     only LRD/LWR:0
    PDO mapping according to CoE :
      SM2 inputs
         addr b   index: sub bitl data_type    name
    Number of subindex: 4
      [0x000B.0] 0x6040:0x00 0x10 UNSIGNED16   Control Word
      [0x000D.0] 0x607A:0x00 0x20 INTEGER32    Position set-point
      [0x0011.0] 0x60FF:0x00 0x20 INTEGER32    Velocity set-point
      [0x0015.0] 0x6060:0x00 0x08 INTEGER8     Operation mode
      SM3 outputs
         addr b   index: sub bitl data_type    name
    Number of subindex: 4
      [0x0000.0] 0x6041:0x00 0x10 UNSIGNED16   Status Word
      [0x0002.0] 0x6064:0x00 0x20 INTEGER32    Actual position
      [0x0006.0] 0x606C:0x00 0x20 INTEGER32    Actual velocity
      [0x000A.0] 0x6061:0x00 0x08 INTEGER8     Operation mode display
    End slaveinfo, close socket
    End program
    

    【讨论】:

      猜你喜欢
      • 2021-04-21
      • 2017-01-24
      • 2020-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多