Problems with Lichuan Ethercat servo drive

More
10 May 2024 12:39 #300315 by burnie
OK, I got it to work as well. Here's what I did, hopefully, it will help diagnose the problem, Clean LinuxCNC install > Install EtherCAT by using rodw instruction > run LinuxCNC with trisa25 configs files > wait about 10 seconds > plug in the ethernet cable > driver shows 88 r n and working. This works every time I've tried it.

I've also tried getting the servo working, then exiting LinuxCNC, then re-open LinuxCNC without unplugging the ethernet cable, this does not work and gave the F error as before (F8 ry). Unplugging and replugging the ethernet cable at this point does not do anything other than giving the F error, LinuxCNC needs to be restart before the servo work again.
The following user(s) said Thank You: Sandro, trisa25, drboeller

Please Log in or Create an account to join the conversation.

More
10 May 2024 17:03 - 10 May 2024 17:08 #300338 by Sandro
Thank you! I can confirm that this works for me as well. Plugin the network cable after the launch of LCNC and the drive goes to OP no issue. Does this mean, the drive needs more time to sync and setting OP than it's been given by LCNC? Or is a component of LCNC not fully loaded, that needs to be present while it is already trying to set OP state?
Last edit: 10 May 2024 17:08 by Sandro.
The following user(s) said Thank You: burnie, drboeller

Please Log in or Create an account to join the conversation.

More
18 May 2024 07:26 #300893 by burnie
I've run the commands "sudo dmesg -wH" and "ethercat pdos" in different scenarios both when the drive is working and error out, here's the result, hopefully, it is useful to diagnose the problem. Let me know if there's anything else I could do to help with the diagnostic

If the servo driver works when plugging it in after launching LCNC, is it possible to add some kind of initialization delay for the ethercat or servo drive component? 

"sudo dmesg -wH"

Connect ethernet cable after lanuch LCNC
[  +6.514737] e1000e 0000:00:19.0 eno1: NIC Link is Up 100 Mbps Full Duplex, Flow Control: None
[  +0.000666] EtherCAT 0: Link state of ecm0 changed to UP.
[  +0.033110] EtherCAT 0: 1 slave(s) responding on main device.
[  +0.000003] EtherCAT 0: Slave states on main device: PREOP.
[  +0.002885] EtherCAT 0: Scanning bus.
[  +0.313104] EtherCAT WARNING 0: 1 datagram TIMED OUT!
[  +0.746895] EtherCAT ERROR 0-0: Invalid data size 2 at uploading SDO 0x1703:01.
[  +0.000003] EtherCAT ERROR 0-0: Failed to read mapped PDO entries for PDO 0x1703.
[  +0.047996] EtherCAT ERROR 0-0: Invalid data size 1 at uploading SDO 0x1B03:09.
[  +0.000003] EtherCAT ERROR 0-0: Failed to read mapped PDO entries for PDO 0x1B03.
[  +0.000002] EtherCAT 0: Bus scanning completed in 1108 ms.
[  +0.000002] EtherCAT 0: Using slave 0 as DC reference clock.
[  +5.109994] EtherCAT WARNING 0-0: Slave did not sync after 5000 ms.
[  +6.439110] EtherCAT 0: Slave states on main device: OP.
(Drive shows 20ry > 40ry > 88ry on the screen, LCNC recieve and display the positional feed back from the servo encoder. Machine power on button in LCNC change the drive from 88ry to 88rn and the motor is working)

Closing LCNC after the servo have been working
[May17 23:34] EtherCAT 0: Master thread exited.
[  +0.000007] EtherCAT 0: Starting EtherCAT-IDLE thread.
[  +0.000031] EtherCAT ERROR 0-0: Failed to receive AL state datagram: Datagram initialized.
[  +0.000009] EtherCAT 0: Releasing master...
[  +0.000002] EtherCAT 0: Released.
[  +0.012286] EtherCAT ERROR 0-0: AL status message 0x001A: "Synchronization error".
[  +0.000496] EtherCAT 0-0: Acknowledged state SAFEOP.
[  +0.011237] EtherCAT 0: Slave states on main device: PREOP.
[  +0.195996] EtherCAT WARNING: Datagram 000000002de5ab8f (master-fsm) was SKIPPED 1 time.
[  +0.207342] Lockdown: rtapi_app: raw io port access is restricted; see man kernel_lockdown.7
(Drive shows 28ry on the screen)

Re-launching LCNC after the drives have been working
[May17 23:53] Lockdown: rtapi_app: raw io port access is restricted; see man kernel_lockdown.7
[  +0.073884] EtherCAT: Requesting master 0...
[  +0.000003] EtherCAT: Successfully requested master 0.
[  +0.000152] EtherCAT 0: Domain0: Logical address 0x00000000, 196 byte, expected working counter 1.
[  +0.000002] EtherCAT 0:   Datagram domain0-0-main: Logical offset 0x00000000, 196 byte, type LWR.
[  +0.000014] EtherCAT 0: Master thread exited.
[  +0.000002] EtherCAT 0: Starting EtherCAT-OP thread.
[  +0.000032] EtherCAT WARNING 0: 1 datagram UNMATCHED!
[  +1.038344] nouveau 0000:01:00.0: DRM: skipped size 0000000000000000
[  +0.000285] nouveau 0000:01:00.0: DRM: skipped size 0000000000000000
.....
[  +0.000309] nouveau 0000:01:00.0: DRM: skipped size 0000000000000000
[  +0.000209] nouveau 0000:01:00.0: DRM: skipped size 0000000000000000
[  +4.060625] EtherCAT WARNING 0-0: Slave did not sync after 5000 ms.
[  +5.004013] EtherCAT ERROR 0-0: Timeout while setting state OP.
[  +0.011051] EtherCAT 0: Slave states on main device: SAFEOP.
[ +12.903994] EtherCAT 0: Slave states on main device: SAFEOP + ERROR.
(Drive shows 28ry > 48ry > f8ry, the drive error out and not working)

Powering on the drive whithout LCNC running
[May17 23:44] e1000e 0000:00:19.0 eno1: NIC Link is Up 100 Mbps Full Duplex, Flow Control: None
[  +0.005877] EtherCAT 0: Link state of ecm0 changed to UP.
[  +0.023981] EtherCAT 0: 1 slave(s) responding on main device.
[  +0.000002] EtherCAT 0: Slave states on main device: INIT.
[  +0.000482] EtherCAT 0: Scanning bus.
[  +0.400193] EtherCAT ERROR 0-0: Invalid data size 2 at uploading SDO 0x1703:01.
[  +0.000003] EtherCAT ERROR 0-0: Failed to read mapped PDO entries for PDO 0x1703.
[  +0.023999] EtherCAT ERROR 0-0: Invalid data size 1 at uploading SDO 0x1B03:09.
[  +0.000001] EtherCAT ERROR 0-0: Failed to read mapped PDO entries for PDO 0x1B03.
[  +0.000002] EtherCAT 0: Bus scanning completed in 424 ms.
[  +0.000001] EtherCAT 0: Using slave 0 as DC reference clock.
[  +0.007312] EtherCAT 0: Slave states on main device: PREOP.
(Drive shows 20ry)

Launch LCNC with the drive already connected and powered on
May17 23:46] Lockdown: rtapi_app: raw io port access is restricted; see man kernel_lockdown.7
[  +0.074456] EtherCAT: Requesting master 0...
[  +0.000003] EtherCAT: Successfully requested master 0.
[  +0.000158] EtherCAT 0: Domain0: Logical address 0x00000000, 196 byte, expected working counter 1.
[  +0.000002] EtherCAT 0:   Datagram domain0-0-main: Logical offset 0x00000000, 196 byte, type LWR.
[  +0.000013] EtherCAT 0: Master thread exited.
[  +0.000002] EtherCAT 0: Starting EtherCAT-OP thread.
[  +0.000028] EtherCAT WARNING 0: 11 datagrams TIMED OUT!
[  +0.000002] EtherCAT WARNING 0: 1 datagram UNMATCHED!
[  +1.087712] nouveau 0000:01:00.0: DRM: skipped size 0000000000000000
[  +0.000312] nouveau 0000:01:00.0: DRM: skipped size 0000000000000000
............
[  +0.000303] nouveau 0000:01:00.0: DRM: skipped size 0000000000000000
[  +0.000194] nouveau 0000:01:00.0: DRM: skipped size 0000000000000000
[  +3.997413] EtherCAT WARNING 0-0: Slave did not sync after 5000 ms.
[  +5.004000] EtherCAT ERROR 0-0: Timeout while setting state OP.
[  +0.007683] EtherCAT 0: Slave states on main device: SAFEOP.
[ +12.907994] EtherCAT 0: Slave states on main device: SAFEOP + ERROR.
(Drive shows 20ry > 40ry > f0ry, the drive error out and not working)

running "ethercat pdos" command after powering on the drive
SM0: PhysAddr 0x1000, DefaultSize  128, ControlRegister 0x26, Enable 1
  RxPDO 0x1b01 "258th transmit PDO Mapping"
    PDO entry 0x603f:00, 16 bit, "Error code"
    PDO entry 0x6041:00, 16 bit, "Statusword"
    PDO entry 0x6064:00, 32 bit, "Position actual value"
    PDO entry 0x6077:00, 16 bit, "Torque actual value"
    PDO entry 0x60f4:00, 32 bit, "Following error actual value"
    PDO entry 0x60b9:00, 16 bit, "Touch probe status"
    PDO entry 0x60ba:00, 32 bit, "Touch probe pos1 pos value"
    PDO entry 0x60bc:00, 32 bit, "Touch probe pos2 pos value"
    PDO entry 0x60fd:00, 32 bit, "Digital inputs"
  RxPDO 0x1b02 "259th transmit PDO Mapping"
    PDO entry 0x603f:00, 16 bit, "Error code"
    PDO entry 0x6041:00, 16 bit, "Statusword"
    PDO entry 0x6064:00, 32 bit, "Position actual value"
    PDO entry 0x6077:00, 16 bit, "Torque actual value"
    PDO entry 0x60f4:00, 32 bit, "Following error actual value"
    PDO entry 0x60b9:00, 16 bit, "Touch probe status"
    PDO entry 0x60ba:00, 32 bit, "Touch probe pos1 pos value"
    PDO entry 0x60bc:00, 32 bit, "Touch probe pos2 pos value"
    PDO entry 0x60fd:00, 32 bit, "Digital inputs"
  RxPDO 0x1b03 "260th transmit PDO Mapping"
    PDO entry 0x603f:00, 16 bit, "Error code"
    PDO entry 0x6041:00, 16 bit, "Statusword"
    PDO entry 0x6064:00, 32 bit, "Position actual value"
    PDO entry 0x6077:00, 16 bit, "Torque actual value"
    PDO entry 0x60b9:00, 16 bit, "Touch probe status"
    PDO entry 0x60ba:00, 32 bit, "Touch probe pos1 pos value"
    PDO entry 0x60bc:00, 32 bit, "Touch probe pos2 pos value"
    PDO entry 0x60fd:00, 32 bit, "Digital inputs"
    PDO entry 0x6061:00,  8 bit, "Modes of Operation Display"
  RxPDO 0x1b04 "261th transmit PDO Mapping"
    PDO entry 0x603f:00, 16 bit, "Error code"
    PDO entry 0x6041:00, 16 bit, "Statusword"
    PDO entry 0x6064:00, 32 bit, "Position actual value"
    PDO entry 0x6077:00, 16 bit, "Torque actual value"
    PDO entry 0x60b9:00, 16 bit, "Touch probe status"
    PDO entry 0x60ba:00, 32 bit, "Touch probe pos1 pos value"
    PDO entry 0x60bc:00, 32 bit, "Touch probe pos2 pos value"
    PDO entry 0x60fd:00, 32 bit, "Digital inputs"
    PDO entry 0x606c:00, 32 bit, "Velocity Actual Value"
    PDO entry 0x6061:00,  8 bit, "Modes of Operation Display"
  RxPDO 0x1701 ""
    PDO entry 0x6040:00, 16 bit, ""
    PDO entry 0x607a:00, 32 bit, ""
    PDO entry 0x60b8:00, 16 bit, ""
    PDO entry 0x60fe:01, 32 bit, ""
  RxPDO 0x1702 ""
    PDO entry 0x6040:00, 16 bit, ""
    PDO entry 0x607a:00, 32 bit, ""
    PDO entry 0x60b8:00, 16 bit, ""
    PDO entry 0x6071:00, 16 bit, ""
    PDO entry 0x607f:00, 32 bit, ""
    PDO entry 0x6060:00,  8 bit, ""
  RxPDO 0x1703 ""
    PDO entry 0x6040:00, 16 bit, ""
    PDO entry 0x607a:00, 32 bit, ""
    PDO entry 0x60ff:00, 32 bit, ""
    PDO entry 0x60b8:00, 16 bit, ""
    PDO entry 0x60e0:00, 16 bit, ""
    PDO entry 0x60e1:00, 16 bit, ""
    PDO entry 0x6060:00,  8 bit, ""
  RxPDO 0x1704 ""
    PDO entry 0x6040:00, 16 bit, ""
    PDO entry 0x607a:00, 32 bit, ""
    PDO entry 0x60ff:00, 32 bit, ""
    PDO entry 0x60b8:00, 16 bit, ""
    PDO entry 0x60e0:00, 16 bit, ""
    PDO entry 0x60e1:00, 16 bit, ""
    PDO entry 0x60b2:00, 16 bit, ""
    PDO entry 0x6060:00,  8 bit, ""
  RxPDO 0x1705 ""
    PDO entry 0x6040:00, 16 bit, ""
    PDO entry 0x607a:00, 32 bit, ""
    PDO entry 0x60ff:00, 32 bit, ""
    PDO entry 0x60b8:00, 16 bit, ""
    PDO entry 0x60e0:00, 16 bit, ""
    PDO entry 0x60e1:00, 16 bit, ""
    PDO entry 0x6071:00, 16 bit, ""
    PDO entry 0x607f:00, 32 bit, ""
    PDO entry 0x6060:00,  8 bit, ""
SM1: PhysAddr 0x1100, DefaultSize  128, ControlRegister 0x22, Enable 1
SM2: PhysAddr 0x1200, DefaultSize    0, ControlRegister 0x64, Enable 1
  RxPDO 0x1600 ""
    PDO entry 0x6040:00, 16 bit, ""
    PDO entry 0x607a:00, 32 bit, ""
    PDO entry 0x60b8:00, 16 bit, ""
    PDO entry 0x6060:00,  8 bit, ""
    PDO entry 0x60ff:00, 32 bit, ""
SM3: PhysAddr 0x1300, DefaultSize    0, ControlRegister 0x20, Enable 1
  TxPDO 0x1a00 "1st transmit PDO Mapping"
    PDO entry 0x603f:00, 16 bit, "Error code"
    PDO entry 0x6041:00, 16 bit, "Statusword"
    PDO entry 0x6064:00, 32 bit, "Position actual value"
    PDO entry 0x606c:00, 32 bit, "Velocity Actual Value"
    PDO entry 0x60b9:00, 16 bit, "Touch probe status"
    PDO entry 0x60ba:00, 32 bit, "Touch probe pos1 pos value"
    PDO entry 0x60fd:00, 32 bit, "Digital inputs"
    PDO entry 0x6061:00,  8 bit, "Modes of Operation Display"

running "ethercat pdos" command after Connecting ethernet cable after lanuch LCNC (The servo is working)
SM0: PhysAddr 0x1000, DefaultSize  128, ControlRegister 0x26, Enable 1
  RxPDO 0x1b01 "258th transmit PDO Mapping"
    PDO entry 0x603f:00, 16 bit, "Error code"
    PDO entry 0x6041:00, 16 bit, "Statusword"
    PDO entry 0x6064:00, 32 bit, "Position actual value"
    PDO entry 0x6077:00, 16 bit, "Torque actual value"
    PDO entry 0x60f4:00, 32 bit, "Following error actual value"
    PDO entry 0x60b9:00, 16 bit, "Touch probe status"
    PDO entry 0x60ba:00, 32 bit, "Touch probe pos1 pos value"
    PDO entry 0x60bc:00, 32 bit, "Touch probe pos2 pos value"
    PDO entry 0x60fd:00, 32 bit, "Digital inputs"
  RxPDO 0x1b02 "259th transmit PDO Mapping"
    PDO entry 0x603f:00, 16 bit, "Error code"
    PDO entry 0x6041:00, 16 bit, "Statusword"
    PDO entry 0x6064:00, 32 bit, "Position actual value"
    PDO entry 0x6077:00, 16 bit, "Torque actual value"
    PDO entry 0x60f4:00, 32 bit, "Following error actual value"
    PDO entry 0x60b9:00, 16 bit, "Touch probe status"
    PDO entry 0x60ba:00, 32 bit, "Touch probe pos1 pos value"
    PDO entry 0x60bc:00, 32 bit, "Touch probe pos2 pos value"
    PDO entry 0x60fd:00, 32 bit, "Digital inputs"
  RxPDO 0x1b03 "260th transmit PDO Mapping"
    PDO entry 0x603f:00, 16 bit, "Error code"
    PDO entry 0x6041:00, 16 bit, "Statusword"
    PDO entry 0x6064:00, 32 bit, "Position actual value"
    PDO entry 0x6077:00, 16 bit, "Torque actual value"
    PDO entry 0x60b9:00, 16 bit, "Touch probe status"
    PDO entry 0x60ba:00, 32 bit, "Touch probe pos1 pos value"
    PDO entry 0x60bc:00, 32 bit, "Touch probe pos2 pos value"
    PDO entry 0x60fd:00, 32 bit, "Digital inputs"
    PDO entry 0x6061:00,  8 bit, "Modes of Operation Display"
  RxPDO 0x1b04 "261th transmit PDO Mapping"
    PDO entry 0x603f:00, 16 bit, "Error code"
    PDO entry 0x6041:00, 16 bit, "Statusword"
    PDO entry 0x6064:00, 32 bit, "Position actual value"
    PDO entry 0x6077:00, 16 bit, "Torque actual value"
    PDO entry 0x60b9:00, 16 bit, "Touch probe status"
    PDO entry 0x60ba:00, 32 bit, "Touch probe pos1 pos value"
    PDO entry 0x60bc:00, 32 bit, "Touch probe pos2 pos value"
    PDO entry 0x60fd:00, 32 bit, "Digital inputs"
    PDO entry 0x606c:00, 32 bit, "Velocity Actual Value"
    PDO entry 0x6061:00,  8 bit, "Modes of Operation Display"
  RxPDO 0x1701 ""
    PDO entry 0x6040:00, 16 bit, ""
    PDO entry 0x607a:00, 32 bit, ""
    PDO entry 0x60b8:00, 16 bit, ""
    PDO entry 0x60fe:01, 32 bit, ""
  RxPDO 0x1702 ""
    PDO entry 0x6040:00, 16 bit, ""
    PDO entry 0x607a:00, 32 bit, ""
    PDO entry 0x60b8:00, 16 bit, ""
    PDO entry 0x6071:00, 16 bit, ""
    PDO entry 0x607f:00, 32 bit, ""
    PDO entry 0x6060:00,  8 bit, ""
  RxPDO 0x1703 ""
    PDO entry 0x6040:00, 16 bit, ""
    PDO entry 0x607a:00, 32 bit, ""
    PDO entry 0x60ff:00, 32 bit, ""
    PDO entry 0x60b8:00, 16 bit, ""
    PDO entry 0x60e0:00, 16 bit, ""
    PDO entry 0x60e1:00, 16 bit, ""
    PDO entry 0x6060:00,  8 bit, ""
  RxPDO 0x1704 ""
    PDO entry 0x6040:00, 16 bit, ""
    PDO entry 0x607a:00, 32 bit, ""
    PDO entry 0x60ff:00, 32 bit, ""
    PDO entry 0x60b8:00, 16 bit, ""
    PDO entry 0x60e0:00, 16 bit, ""
    PDO entry 0x60e1:00, 16 bit, ""
    PDO entry 0x60b2:00, 16 bit, ""
    PDO entry 0x6060:00,  8 bit, ""
  RxPDO 0x1705 ""
    PDO entry 0x6040:00, 16 bit, ""
    PDO entry 0x607a:00, 32 bit, ""
    PDO entry 0x60ff:00, 32 bit, ""
    PDO entry 0x60b8:00, 16 bit, ""
    PDO entry 0x60e0:00, 16 bit, ""
    PDO entry 0x60e1:00, 16 bit, ""
    PDO entry 0x6071:00, 16 bit, ""
    PDO entry 0x607f:00, 32 bit, ""
    PDO entry 0x6060:00,  8 bit, ""
SM1: PhysAddr 0x1100, DefaultSize  128, ControlRegister 0x22, Enable 1
SM2: PhysAddr 0x1200, DefaultSize    0, ControlRegister 0x64, Enable 1
  RxPDO 0x1600 ""
    PDO entry 0x6040:00, 16 bit, ""
    PDO entry 0x6060:00,  8 bit, ""
    PDO entry 0x607a:00, 32 bit, ""
SM3: PhysAddr 0x1300, DefaultSize    0, ControlRegister 0x20, Enable 1
  TxPDO 0x1a00 ""
    PDO entry 0x6041:00, 16 bit, ""
    PDO entry 0x6061:00,  8 bit, ""
    PDO entry 0x6064:00, 32 bit, ""
    PDO entry 0x606c:00, 32 bit, ""
    PDO entry 0x6077:00, 16 bit, ""

running "ethercat pdos" command when connecting the ethernet cable before launching LCNC (the servo error out)
SM0: PhysAddr 0x1000, DefaultSize  128, ControlRegister 0x26, Enable 1
  RxPDO 0x1b01 "1st Input Object to be mapped"
    PDO entry 0x603f:00, 16 bit, "Error Code"
    PDO entry 0x6041:00, 16 bit, "Status Word"
    PDO entry 0x6064:00, 32 bit, "Position Actual Value"
    PDO entry 0x6077:00, 16 bit, "Torque Actual Value"
    PDO entry 0x60f4:00, 32 bit, "Following error actual value"
    PDO entry 0x60b9:00, 16 bit, "Touch probe Status"
    PDO entry 0x60ba:00, 32 bit, "Touch Probe pos 1 pos value"
    PDO entry 0x60bc:00, 32 bit, "Touch Probe pos 2 pos value"
    PDO entry 0x60fd:00, 32 bit, "Digital inputs"
  RxPDO 0x1b02 "1st Input Object to be mapped"
    PDO entry 0x603f:00, 16 bit, "Error Code"
    PDO entry 0x6041:00, 16 bit, "Status Word"
    PDO entry 0x6064:00, 32 bit, "Position Actual Value"
    PDO entry 0x6077:00, 16 bit, "Torque Actual Value"
    PDO entry 0x60f4:00, 32 bit, "Following error actual value"
    PDO entry 0x60b9:00, 16 bit, "Touch probe Status"
    PDO entry 0x60ba:00, 32 bit, "Touch Probe pos 1 pos value"
    PDO entry 0x60bc:00, 32 bit, "Touch Probe pos 2 pos value"
    PDO entry 0x60fd:00, 32 bit, "Digital inputs"
  RxPDO 0x1b03 "1st Input Object to be mapped"
    PDO entry 0x603f:00, 16 bit, "Error Code"
    PDO entry 0x6041:00, 16 bit, "Status Word"
    PDO entry 0x6064:00, 32 bit, "Position Actual Value"
    PDO entry 0x6077:00, 16 bit, "Torque Actual Value"
    PDO entry 0x60b9:00, 16 bit, "Touch probe Status"
    PDO entry 0x60ba:00, 32 bit, "Touch Probe pos 1 pos value"
    PDO entry 0x60bc:00, 32 bit, "Touch Probe pos 2 pos value"
    PDO entry 0x60fd:00, 32 bit, "Digital inputs"
    PDO entry 0x6061:00,  8 bit, "Modes of Operation Display"
  RxPDO 0x1b04 "1st Input Object to be mapped"
    PDO entry 0x603f:00, 16 bit, "Error Code"
    PDO entry 0x6041:00, 16 bit, "Status Word"
    PDO entry 0x6064:00, 32 bit, "Position Actual Value"
    PDO entry 0x6077:00, 16 bit, "Torque Actual Value"
    PDO entry 0x60b9:00, 16 bit, "Touch probe Status"
    PDO entry 0x60ba:00, 32 bit, "Touch Probe pos 1 pos value"
    PDO entry 0x60bc:00, 32 bit, "Touch Probe pos 2 pos value"
    PDO entry 0x60fd:00, 32 bit, "Digital inputs"
    PDO entry 0x606c:00, 32 bit, "Velocity Actual Value"
    PDO entry 0x6061:00,  8 bit, "Modes of Operation Display"
  RxPDO 0x1701 "1st receive PDO Mapping"
    PDO entry 0x6040:00, 16 bit, "Control Word"
    PDO entry 0x607a:00, 32 bit, "Target Position"
    PDO entry 0x60b8:00, 16 bit, "Touch probe function"
    PDO entry 0x60fe:01, 32 bit, "SubIndex 001"
  RxPDO 0x1702 "1st receive PDO Mapping"
    PDO entry 0x6040:00, 16 bit, "Control Word"
    PDO entry 0x607a:00, 32 bit, "Target Position"
    PDO entry 0x60b8:00, 16 bit, "Touch probe function"
    PDO entry 0x6071:00, 16 bit, "Target torque"
    PDO entry 0x607f:00, 32 bit, "Max profile velocity"
    PDO entry 0x6060:00,  8 bit, "Modes of Operation"
  RxPDO 0x1703 "1st receive PDO Mapping"
    PDO entry 0x6040:00, 16 bit, "Control Word"
    PDO entry 0x607a:00, 32 bit, "Target Position"
    PDO entry 0x60ff:00, 32 bit, "Target Velocity"
    PDO entry 0x60b8:00, 16 bit, "Touch probe function"
    PDO entry 0x60e0:00, 16 bit, "Positive torque limit value"
    PDO entry 0x60e1:00, 16 bit, "Negative torque limit value"
    PDO entry 0x6060:00,  8 bit, "Modes of Operation"
  RxPDO 0x1704 "1st receive PDO Mapping"
    PDO entry 0x6040:00, 16 bit, "Control Word"
    PDO entry 0x607a:00, 32 bit, "Target Position"
    PDO entry 0x60ff:00, 32 bit, "Target Velocity"
    PDO entry 0x60b8:00, 16 bit, "Touch probe function"
    PDO entry 0x60e0:00, 16 bit, "Positive torque limit value"
    PDO entry 0x60e1:00, 16 bit, "Negative torque limit value"
    PDO entry 0x60b2:00, 16 bit, "Torque offset"
    PDO entry 0x6060:00,  8 bit, "Modes of Operation"
  RxPDO 0x1705 "1st receive PDO Mapping"
    PDO entry 0x6040:00, 16 bit, "Control Word"
    PDO entry 0x607a:00, 32 bit, "Target Position"
    PDO entry 0x60ff:00, 32 bit, "Target Velocity"
    PDO entry 0x60b8:00, 16 bit, "Touch probe function"
    PDO entry 0x60e0:00, 16 bit, "Positive torque limit value"
    PDO entry 0x60e1:00, 16 bit, "Negative torque limit value"
    PDO entry 0x6071:00, 16 bit, "Target torque"
    PDO entry 0x607f:00, 32 bit, "Max profile velocity"
    PDO entry 0x6060:00,  8 bit, "Modes of Operation"
SM1: PhysAddr 0x1100, DefaultSize  128, ControlRegister 0x22, Enable 1
SM2: PhysAddr 0x1200, DefaultSize    0, ControlRegister 0x64, Enable 1
  RxPDO 0x1600 "1st receive PDO Mapping"
    PDO entry 0x6040:00, 16 bit, ""
    PDO entry 0x6060:00,  8 bit, ""
    PDO entry 0x607a:00, 32 bit, ""
SM3: PhysAddr 0x1300, DefaultSize    0, ControlRegister 0x20, Enable 1
  TxPDO 0x1a00 "csp/csv TxPDO"
    PDO entry 0x6041:00, 16 bit, ""
    PDO entry 0x6061:00,  8 bit, ""
    PDO entry 0x6064:00, 32 bit, ""
    PDO entry 0x606c:00, 32 bit, ""
    PDO entry 0x6077:00, 16 bit, ""




 
The following user(s) said Thank You: Sandro

Please Log in or Create an account to join the conversation.

More
21 May 2024 20:49 - 21 May 2024 20:53 #301121 by LCR
I just received 4 of these drives. I hope they work...
Last edit: 21 May 2024 20:53 by LCR.

Please Log in or Create an account to join the conversation.

More
22 May 2024 08:31 #301140 by Sandro
Maybe a somewhat hack would be to have a relais which activates the servos after some delay once LCNC has started.

Please Log in or Create an account to join the conversation.

More
22 May 2024 18:29 #301158 by drboeller
Got the same outputs, but how can we solce this problem now? Switching the servos on/off via relay is not really an option, there must be another way

Please Log in or Create an account to join the conversation.

More
23 May 2024 00:31 #301174 by LCR
I have one servo setup on my desk.
I've gotten to:

sudo ../../linuxcnc-dev/bin/halcmd show pin lcec
Component Pins:
Owner Type Dir Value Name
4 u32 OUT 0x00000001 lcec.conf.master-count
4 u32 OUT 0x00000004 lcec.conf.slave-count

I installed from source. This is my first LinuxCNC install.
I'm unclear about how to proceed from here.
If there are any specific tests I can run that will help get this drive going, please let me know.

Please Log in or Create an account to join the conversation.

More
23 May 2024 05:04 #301180 by burnie
If you already have Linuxcnc-EtherCAT and CIA402 components installed, download LinuxCNC configs files from trisa25 , and put that in linuxcnc/configs. Launch LinuxCNC, then select CIA402 from the list. After LinuxCNC is running plug in the servo driver, it should say 88ry, enable the LinuxCNC machine, then you should be able to control the servo.

Please Log in or Create an account to join the conversation.

More
23 May 2024 15:02 #301210 by LCR
I am trying the configs from Trisa25,
I have only 1 motor hooked up.
Could this cause a problem? is there an easy way to modify this assuming 1 axis?

The following happens when I launch linuxcnc:

the drive starts out  _20ry, with the 2 flashing
switches to  _40ry , when  linuxcnc starts, with the 4 flashing
then to  _F0ry, shortly after
The y will flash when I turn the motor

I get no position feedback to linuxcnc when turning the motor.
The following is what linuxcnc prints to the screen.
I'm not sure about the USRMOT: ERROR command 30 timeout
doug@MillingMachine:~$ linuxcnc
LINUXCNC - 2.10.0~pre0
Machine configuration directory is '/home/doug/linuxcnc-dev/configs/my_ethercat_gantry'
Machine configuration file is 'cia402.ini'
Starting LinuxCNC...
linuxcncsvr (10034) emcsvr: machine 'EtherCAT Machine'  version '1.1'
linuxcnc TPMOD=tpmod HOMEMOD=homemod EMCMOT=motmod
Note: Using POSIX realtime
milltask (10048) task: machine 'EtherCAT Machine'  version '1.1'
halui (10050) halui: machine 'EtherCAT Machine'  version '1.1'
Found file(REL): ./cia402.hal
USRMOT: ERROR: command 30 timeout
emcMotionInit: emcTrajInit failed
note: MAXV     max: 100.000 units/sec 6000.000 units/min
note: LJOG     max: 100.000 units/sec 6000.000 units/min
note: LJOG default: 50.000 units/sec 3000.000 units/min
note: jog_order='XYZ'
note: jog_invert=set()
task: main loop took 0.074680 seconds
Shutting down and cleaning up LinuxCNC...
Running HAL shutdown script
HAL: ERROR: pin 'lcec.0.3.out-01' not found
shutdown.hal:2: unlink failed
task: 0 cycles, min=0.000005, max=0.074680, avg=-1.000000, 1 latency excursions (> 10x expected cycle time of 0.005000s)
Note: Using POSIX realtime
doug@MillingMachine:~$
 

Please Log in or Create an account to join the conversation.

More
23 May 2024 16:04 - 23 May 2024 16:10 #301224 by LCR
OK I re-read your instructions and turned the drive on after LinuxCNC was up. How long did that take to figure out?
Now I get feedback, and can jog my axis!
I still get the following on startup of Linux CNC
doug@MillingMachine:~$ linuxcnc
LINUXCNC - 2.10.0~pre0
Machine configuration directory is '/home/doug/linuxcnc-dev/configs/my_ethercat_gantry'
Machine configuration file is 'cia402.ini'
Starting LinuxCNC...
linuxcncsvr (29025) emcsvr: machine 'EtherCAT Machine' version '1.1'
linuxcnc TPMOD=tpmod HOMEMOD=homemod EMCMOT=motmod
Note: Using POSIX realtime
milltask (29039) task: machine 'EtherCAT Machine' version '1.1'
halui (29041) halui: machine 'EtherCAT Machine' version '1.1'
Found file(REL): ./cia402.hal
USRMOT: ERROR: command 30 timeout
emcMotionInit: emcTrajInit failed
note: MAXV max: 100.000 units/sec 6000.000 units/min
note: LJOG max: 100.000 units/sec 6000.000 units/min
note: LJOG default: 50.000 units/sec 3000.000 units/min
note: jog_order='XYZ'
note: jog_invert=set()


I'm also getting the following dmesg.


[code][ 6089.134705] nouveau 0000:4b:00.0: DRM: skipped size 0000000000000000
[ 6089.134828] nouveau 0000:4b:00.0: DRM: skipped size 0000000000000000
[ 6089.135004] nouveau 0000:4b:00.0: DRM: skipped size 0000000000000000
[ 6089.135156] nouveau 0000:4b:00.0: DRM: skipped size 0000000000000000
[ 6089.135339] nouveau 0000:4b:00.0: DRM: skipped size 0000000000000000
[ 6089.135460] nouveau 0000:4b:00.0: DRM: skipped size 0000000000000000
[ 6089.135636] nouveau 0000:4b:00.0: DRM: skipped size 0000000000000000
[ 6089.135758] nouveau 0000:4b:00.0: DRM: skipped size 0000000000000000
[ 6089.135970] nouveau 0000:4b:00.0: DRM: skipped size 0000000000000000
[ 6089.136098] nouveau 0000:4b:00.0: DRM: skipped size 0000000000000000
[ 6113.503156] pcieport 0000:00:01.1: AER: Corrected error message received from 0000:02:00.0
[ 6113.503163] pcieport 0000:02:00.0: PCIe Bus Error: severity=Corrected, type=Data Link Layer, (Receiver ID)
[ 6113.503165] pcieport 0000:02:00.0:   device [8086:1578] error status/mask=00000080/00002000
[ 6113.503166] pcieport 0000:02:00.0:    [ 7] BadDLLP               
[ 6115.367488] pcieport 0000:00:01.1: AER: Corrected error message received from 0000:02:00.0
[ 6115.367493] pcieport 0000:02:00.0: PCIe Bus Error: severity=Corrected, type=Data Link Layer, (Receiver ID)
[ 6115.367494] pcieport 0000:02:00.0:   device [8086:1578] error status/mask=00000080/00002000
[ 6115.367496] pcieport 0000:02:00.0:    [ 7] BadDLLP               
[ 6115.427946] pcieport 0000:00:01.1: AER: Corrected error message received from 0000:02:00.0
[ 6115.427949] pcieport 0000:02:00.0: PCIe Bus Error: severity=Corrected, type=Data Link Layer, (Receiver ID)
[ 6115.427950] pcieport 0000:02:00.0:   device [8086:1578] error status/mask=00000080/00002000
[ 6115.427952] pcieport 0000:02:00.0:    [ 7] BadDLLP               
[ 6116.261124] e1000e 0000:00:19.0 eno1: NIC Link is Up 100 Mbps Full Duplex, Flow Control: None
[ 6116.262082] EtherCAT 0: Link state of ecm0 changed to UP.
[ 6116.274523] EtherCAT 0: 1 slave(s) responding on main device.
[ 6116.274525] EtherCAT 0: Slave states on main device: INIT.
[ 6116.277082] EtherCAT 0: Scanning bus.
[ 6117.346091] EtherCAT ERROR 0-0: Invalid data size 2 at uploading SDO 0x1703:01.
[ 6117.346095] EtherCAT ERROR 0-0: Failed to read mapped PDO entries for PDO 0x1703.
[ 6117.395092] EtherCAT ERROR 0-0: Invalid data size 1 at uploading SDO 0x1B03:09.
[ 6117.395093] EtherCAT ERROR 0-0: Failed to read mapped PDO entries for PDO 0x1B03.
[ 6117.395094] EtherCAT 0: Bus scanning completed in 1120 ms.
[ 6117.395096] EtherCAT 0: Using slave 0 as DC reference clock.
[ 6117.406527] EtherCAT 0: Slave states on main device: PREOP.
[ 6117.505093] EtherCAT 0: Domain 0: Working counter changed to 3/3.
[ 6118.006537] EtherCAT 0: Slave states on main device: OP.
[ 6166.764350] perf: interrupt took too long (2501 > 2500), lowering kernel.perf_event_max_sample_rate to 79750
[ 6168.102308] pcieport 0000:00:01.1: AER: Corrected error message received from 0000:02:00.0
[ 6168.102315] pcieport 0000:02:00.0: PCIe Bus Error: severity=Corrected, type=Data Link Layer, (Receiver ID)
[ 6168.102316] pcieport 0000:02:00.0:   device [8086:1578] error status/mask=00000080/00002000
[ 6168.102318] pcieport 0000:02:00.0:    [ 7] BadDLLP               
[ 6196.476804] pcieport 0000:00:01.1: AER: Corrected error message received from 0000:02:00.0
[ 6196.476811] pcieport 0000:02:00.0: PCIe Bus Error: severity=Corrected, type=Data Link Layer, (Receiver ID)
[ 6196.476813] pcieport 0000:02:00.0:   device [8086:1578] error status/mask=00000080/00002000
[ 6196.476815] pcieport 0000:02:00.0:    [ 7] BadDLLP               
[ 6205.396524] pcieport 0000:00:01.1: AER: Corrected error message received from 0000:02:00.0
[ 6205.396531] pcieport 0000:02:00.0: PCIe Bus Error: severity=Corrected, type=Data Link Layer, (Receiver ID)
[ 6205.396532] pcieport 0000:02:00.0:   device [8086:1578] error status/mask=00000080/00002000
[ 6205.396534] pcieport 0000:02:00.0:    [ 7] BadDLLP               
[ 6209.327376] pcieport 0000:00:01.1: AER: Corrected error message received from 0000:02:00.0
[ 6209.327382] pcieport 0000:02:00.0: PCIe Bus Error: severity=Corrected, type=Data Link Layer, (Receiver ID)
[ 6209.327383] pcieport 0000:02:00.0:   device [8086:1578] error status/mask=00000080/00002000
[ 6209.327385] pcieport 0000:02:00.0:    [ 7] BadDLLP               
[ 6223.901992] pcieport 0000:00:01.1: AER: Corrected error message received from 0000:02:00.0
[ 6223.901998] pcieport 0000:02:00.0: PCIe Bus Error: severity=Corrected, type=Data Link Layer, (Receiver ID)
[ 6223.901999] pcieport 0000:02:00.0:   device [8086:1578] error status/mask=00000080/00002000
[ 6223.902001] pcieport 0000:02:00.0:    [ 7] BadDLLP               
[ 6229.783301] pcieport 0000:00:01.1: AER: Corrected error message received from 0000:02:00.0
[ 6229.783308] pcieport 0000:02:00.0: PCIe Bus Error: severity=Corrected, type=Data Link Layer, (Receiver ID)
[ 6229.783310] pcieport 0000:02:00.0:   device [8086:1578] error status/mask=00000080/00002000
[ 6229.783311] pcieport 0000:02:00.0:    [ 7] BadDLLP               
[ 6239.971656] pcieport 0000:00:01.1: AER: Corrected error message received from 0000:02:00.0
[ 6239.971663] pcieport 0000:02:00.0: PCIe Bus Error: severity=Corrected, type=Data Link Layer, (Receiver ID)
[ 6239.971664] pcieport 0000:02:00.0:   device [8086:1578] error status/mask=00000080/00002000
[ 6239.971666] pcieport 0000:02:00.0:    [ 7] BadDLLP               
[ 6254.141327] pcieport 0000:00:01.1: AER: Corrected error message received from 0000:02:00.0
[ 6254.141333] pcieport 0000:02:00.0: PCIe Bus Error: severity=Corrected, type=Data Link Layer, (Receiver ID)
[ 6254.141335] pcieport 0000:02:00.0:   device [8086:1578] error status/mask=00000080/00002000
[ 6254.141336] pcieport 0000:02:00.0:    [ 7] BadDLLP               
[ 6263.020591] pcieport 0000:00:01.1: AER: Corrected error message received from 0000:02:00.0
[ 6263.020598] pcieport 0000:02:00.0: PCIe Bus Error: severity=Corrected, type=Data Link Layer, (Receiver ID)
[ 6263.020599] pcieport 0000:02:00.0:   device [8086:1578] error status/mask=00000080/00002000
[ 6263.020601] pcieport 0000:02:00.0:    [ 7] BadDLLP               
[ 6268.594608] pcieport 0000:00:01.1: AER: Corrected error message received from 0000:02:00.0
[ 6268.594615] pcieport 0000:02:00.0: PCIe Bus Error: severity=Corrected, type=Data Link Layer, (Receiver ID)
[ 6268.594616] pcieport 0000:02:00.0:   device [8086:1578] error status/mask=00000080/00002000
[ 6268.594618] pcieport 0000:02:00.0:    [ 7] BadDLLP               
[ 6287.102398] pcieport 0000:00:01.1: AER: Corrected error message received from 0000:02:00.0
[ 6287.102404] pcieport 0000:02:00.0: PCIe Bus Error: severity=Corrected, type=Data Link Layer, (Receiver ID)
[ 6287.102406] pcieport 0000:02:00.0:   device [8086:1578] error status/mask=00000080/00002000
[ 6287.102407] pcieport 0000:02:00.0:    [ 7] BadDLLP               
[ 6290.480436] pcieport 0000:00:01.1: AER: Corrected error message received from 0000:02:00.0
[ 6290.480443] pcieport 0000:02:00.0: PCIe Bus Error: severity=Corrected, type=Data Link Layer, (Receiver ID)
[ 6290.480444] pcieport 0000:02:00.0:   device [8086:1578] error status/mask=00000080/00002000
[ 6290.480446] pcieport 0000:02:00.0:    [ 7] BadDLLP               
 
[/code]
Last edit: 23 May 2024 16:10 by LCR.

Please Log in or Create an account to join the conversation.

Time to create page: 0.397 seconds
Powered by Kunena Forum