IGH 汇川SV660N调试

Issue描述

–disable-eoe 会导致 ec_r8169 插入失败

# /usr/local/etc/init.d/ethercat restart 
Starting EtherCAT master 1.6.4 modprobe: ERROR: could not insert 'ec_r8169': Invalid argument

dmesg信息(内核信息)

[426163.348589] EtherCAT 0: Master thread exited.
[426163.348592] EtherCAT 0: Stopping EoE thread.
[426163.348608] EtherCAT 0: EoE thread exited.
[426163.348609] EtherCAT 0: Starting EoE thread.
[426163.348664] EtherCAT 0: Starting EtherCAT-OP thread.
[426163.348725] EtherCAT WARNING 0: 1 datagram UNMATCHED!
[426163.489821] EtherCAT WARNING 0-0: Invalid mailbox response for eoe0s0.
[426163.505818] EtherCAT WARNING 0-0: Other mailbox protocol response for eoe0s0.
[426163.521818] EtherCAT ERROR 0-0: Mailbox error response received - Unknown error reply code 0x0000.
[426163.521822] EtherCAT WARNING 0-0: Invalid mailbox response for eoe0s0.
[426163.537816] EtherCAT WARNING 0-0: Other mailbox protocol response for eoe0s0.
[426163.569373] EtherCAT 0: Domain 0: Working counter changed to 2/3.
[426163.579421] EtherCAT ERROR 0-0: Failed to set OP state, slave refused state change (SAFEOP + ERROR).
[426163.593756] EtherCAT ERROR 0-0: AL status message 0x0027: "Freerun not supported".
[426163.609782] EtherCAT 0-0: Acknowledged state SAFEOP.
[426164.571099] EtherCAT 0: Domain 0: 2 working counter changes - now 2/3.
[426169.069659] EtherCAT 0: Releasing master...
[426169.069681] EtherCAT 0: Master thread exited.
[426169.069683] EtherCAT 0: Stopping EoE thread.
[426169.069699] EtherCAT 0: EoE thread exited.
[426169.069707] EtherCAT 0: Starting EoE thread.
[426169.069799] EtherCAT 0: Starting EtherCAT-IDLE thread.
[426169.069839] EtherCAT 0: Released.

查看SV660N支持的协议

sudo ethercat slaves -v
=== Master 0, Slave 0 ===
Device: Main
State: PREOP
Flag: +
Identity:
  Vendor Id:       0x00100000
  Product code:    0x000c010d
  Revision number: 0x00010000
  Serial number:   0x00000000
DL information:
  FMMU bit operation: no
  Distributed clocks: yes, 64 bit
  DC system time transmission delay: 0 ns
Port  Type  Link  Loop    Signal  NextSlave  RxTime [ns]  Diff [ns]   NextDc [ns]
   0  MII   up    open    yes             -   2397802166           0           0
   1  MII   down  closed  no              -            -           -           -
   2  N/A   down  closed  no              -            -           -           -
   3  N/A   down  closed  no              -            -           -           -
Mailboxes:
  Bootstrap RX: 0x0000/0, TX: 0x0000/0
  Standard  RX: 0x1000/256, TX: 0x1400/256
  Supported protocols: EoE, CoE
General:
  Group: InoServo
  Image name:
  Order number: InoSV660N
  Device name: SV660_1Axis_00916
  CoE details:
    Enable SDO: yes
    Enable SDO Info: no
    Enable PDO Assign: yes
    Enable PDO Configuration: yes
    Enable Upload at startup: no
    Enable SDO complete access: no
  Flags:
    Enable SafeOp: no
    Enable notLRW: no
  Current consumption: 0 mA

综上信息分析,因为Supported protocols中支持EoE,IGH 协议栈启用了EoE的流程,而实际上汇川的伺服却是使用的CoE协议。

Solution

Solution1 – disable eoe

这种方案会带上面的问题,加载ec_r8169实时网卡驱动失败

sudo ./configure --disable-8139too --enable-generic --enable-r8169 --disable-eoe
Starting EtherCAT master 1.6.4 modprobe: ERROR: could not insert 'ec_r8169': Invalid argument  failed
[854209.848691] EtherCAT: Master driver 1.6.4 1.6.4
[854209.848953] EtherCAT: 1 master waiting for devices.
[854210.176686] ec_r8169: disagrees about version of symbol ecdev_close
[854210.176692] ec_r8169: Unknown symbol ecdev_close (err -22)
[854210.176796] ec_r8169: disagrees about version of symbol ecdev_set_link
[854210.176797] ec_r8169: Unknown symbol ecdev_set_link (err -22)
[854210.176810] ec_r8169: disagrees about version of symbol ecdev_receive
[854210.176811] ec_r8169: Unknown symbol ecdev_receive (err -22)
[854210.176901] ec_r8169: disagrees about version of symbol ecdev_offer
[854210.176902] ec_r8169: Unknown symbol ecdev_offer (err -22)
[854210.176943] ec_r8169: disagrees about version of symbol ecdev_withdraw
[854210.176944] ec_r8169: Unknown symbol ecdev_withdraw (err -22)
[854210.176949] ec_r8169: disagrees about version of symbol ecdev_open
[854210.176951] ec_r8169: Unknown symbol ecdev_open (err -22)
[854210.218583] r8169 0000:02:00.0 eth0: RTL8168h/8111h, 68:ed:a6:08:b1:77, XID 541, IRQ 130
[854210.218592] r8169 0000:02:00.0 eth0: jumbo features [frames: 9194 bytes, tx checksumming: ko]
[854210.221438] r8169 0000:02:00.0 enp2s0: renamed from eth0
[854210.243300] r8169 0000:03:00.0 eth0: RTL8168h/8111h, 68:ed:a6:08:b1:78, XID 541, IRQ 131
[854210.243308] r8169 0000:03:00.0 eth0: jumbo features [frames: 9194 bytes, tx checksumming: ko]
[854210.246325] r8169 0000:03:00.0 enp3s0: renamed from eth0
[854210.249479] EtherCAT: Master module cleaned up.
[854210.302429] Generic FE-GE Realtek PHY r8169-0-200:00: attached PHY driver (mii_bus:phy_addr=r8169-0-200:00, irq=MAC)
[854210.482501] r8169 0000:02:00.0 enp2s0: Link is Down
[854210.522422] Generic FE-GE Realtek PHY r8169-0-300:00: attached PHY driver (mii_bus:phy_addr=r8169-0-300:00, irq=MAC)
[854210.714490] r8169 0000:03:00.0 enp3s0: Link is Down
[854211.954446] r8169 0000:02:00.0 enp2s0: Link is Up - 100Mbps/Full - flow control rx/tx
[854211.954471] IPv6: ADDRCONF(NETDEV_CHANGE): enp2s0: link becomes ready
[426163.348589] EtherCAT 0: Master thread exited.
[426163.348592] EtherCAT 0: Stopping EoE thread.
[426163.348608] EtherCAT 0: EoE thread exited.
[426163.348609] EtherCAT 0: Starting EoE thread.
[426163.348664] EtherCAT 0: Starting EtherCAT-OP thread.
[426163.348725] EtherCAT WARNING 0: 1 datagram UNMATCHED!
[426163.489821] EtherCAT WARNING 0-0: Invalid mailbox response for eoe0s0.
[426163.505818] EtherCAT WARNING 0-0: Other mailbox protocol response for eoe0s0.
[426163.521818] EtherCAT ERROR 0-0: Mailbox error response received - Unknown error reply code 0x0000.
[426163.521822] EtherCAT WARNING 0-0: Invalid mailbox response for eoe0s0.
[426163.537816] EtherCAT WARNING 0-0: Other mailbox protocol response for eoe0s0.
[426163.569373] EtherCAT 0: Domain 0: Working counter changed to 2/3.
[426163.579421] EtherCAT ERROR 0-0: Failed to set OP state, slave refused state change (SAFEOP + ERROR).
[426163.593756] EtherCAT ERROR 0-0: AL status message 0x0027: "Freerun not supported".
[426163.609782] EtherCAT 0-0: Acknowledged state SAFEOP.
[426164.571099] EtherCAT 0: Domain 0: 2 working counter changes - now 2/3.
[426169.069659] EtherCAT 0: Releasing master...
[426169.069681] EtherCAT 0: Master thread exited.
[426169.069683] EtherCAT 0: Stopping EoE thread.
[426169.069699] EtherCAT 0: EoE thread exited.
[426169.069707] EtherCAT 0: Starting EoE thread.
[426169.069799] EtherCAT 0: Starting EtherCAT-IDLE thread.
[426169.069839] EtherCAT 0: Released.

Solution - 2

修改源码,暂时的方案,
在这里插入图片描述

DC SYNCH configuration

配置DC错误,需结合ESI文件种的DC配置来更新代码种DC的配置

ESI DC描述

<Dc>
	<OpMode>
		<Name>DC</Name>
		<Desc>DC-Synchron</Desc>
		<AssignActivate>#x300</AssignActivate>
		<CycleTimeSync0 Factor="1">0</CycleTimeSync0>
		<ShiftTimeSync0>0</ShiftTimeSync0>
		<CycleTimeSync1 Factor="1">0</CycleTimeSync1>
	</OpMode>
</Dc>

IGH代码配置

ecrt_slave_config_dc(sc, 0x0300, PERIOD_NS, 0, 0, 0);
[500956.067652] EtherCAT ERROR 0-0: Failed to set SAFEOP state, slave refused state change (PREOP + ERROR).
[500956.069655] EtherCAT ERROR 0-0: AL status message 0x0030: "Invalid DC SYNCH configuration".
[500956.073656] EtherCAT 0-0: Acknowledged state PREOP.
[500956.082001] EtherCAT 0: Releasing master...
[500956.082046] EtherCAT 0: Master thread exited.
[500956.082054] EtherCAT 0: Starting EtherCAT-IDLE thread.
[500956.082170] EtherCAT 0: Released.
[500956.082182] EtherCAT ERROR 0-2: Failed to receive AL state datagram: Datagram initialized.
[500956.373139] EtherCAT WARNING: Datagram 00000000047e5d5c (master-fsm) was SKIPPED 1 time.

SV660N TODO

TODO, SV660N需要在Pre-Op模式下设置PDO,

[518987.528022] EtherCAT: Requesting master 0...
[518987.528029] EtherCAT: Successfully requested master 0.
[518987.528128] EtherCAT 0: Domain0: Logical address 0x00000000, 40 byte, expected working counter 3.
[518987.528131] EtherCAT 0:   Datagram domain0-0-main: Logical offset 0x00000000, 40 byte, type LRW.
[518987.528151] EtherCAT 0: Master thread exited.
[518987.528154] EtherCAT 0: Starting EtherCAT-OP thread.
[518987.528217] EtherCAT WARNING 0: 1 datagram UNMATCHED!
[518987.666277] EtherCAT ERROR 0-0: SDO download 0x1701:00 (1 bytes) aborted.
[518987.666284] EtherCAT ERROR 0-0: SDO abort message 0x06010002: "Attempt to write a read-only object".
[518987.666286] EtherCAT WARNING 0-0: Failed to clear PDO mapping.
[518987.666287] EtherCAT WARNING 0-0: Currently mapped PDO entries: 0x6040:00/16 0x607A:00/32 0x60B8:00/16 0x60FE:01/32. Entries to map: 0x6040:00/16 0x607A:00/32 0x60B8:00/16 0x60FE:01/32
[518987.666303] EtherCAT WARNING 0-0: Failed to configure mapping of PDO 0x1701.
[518987.685277] EtherCAT ERROR 0-0: SDO download 0x1B01:00 (1 bytes) aborted.
[518987.685282] EtherCAT ERROR 0-0: SDO abort message 0x06010002: "Attempt to write a read-only object".
[518987.685284] EtherCAT WARNING 0-0: Failed to clear PDO mapping.
[518987.685286] EtherCAT WARNING 0-0: Currently mapped PDO entries: 0x603F:00/16 0x6041:00/16 0x6064:00/32 0x6077:00/16 0x60F4:00/32 0x60B9:00/16 0x60BA:00/32 0x60BC:00/32 0x60FD:00/32. Entries to map: 0x603F:00/16 0x6041:00/16 0x6064:00/32 0x6077:00/16 0x60F4:00/32 0x60B9:00/16 0x60BA:00/32 0x60BC:00/32 0x60FD:00/32
[518987.685312] EtherCAT WARNING 0-0: Failed to configure mapping of PDO 0x1B01.
[518990.527089] EtherCAT WARNING 0: 6 datagrams UNMATCHED!
[518990.539264] EtherCAT WARNING: Datagram 00000000b8943496 (domain0-0-main) was SKIPPED 3 times.
[518992.699247] EtherCAT WARNING 0-0: Slave did not sync after 5000 ms.
[518992.705246] EtherCAT 0: Domain 0: Working counter changed to 2/3.

Reference

伺服电机调试 – PDO映射

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值