Problems with Lichuan Ethercat servo drive
10 Jul 2024 16:31 #304828
by PCW
Replied by PCW on topic Problems with Lichuan Ethercat servo drive
tommylight: I think they are talking about a specific startup issue with the EtherCAT
Lichuan drive.
Lichuan drive.
The following user(s) said Thank You: tommylight, Darium
Please Log in or Create an account to join the conversation.
- tommylight
- Online
- Moderator
Less
More
- Posts: 19196
- Thank you received: 6434
10 Jul 2024 17:07 #304834
by tommylight
Replied by tommylight on topic Problems with Lichuan Ethercat servo drive
Yup, that might be it, did not check the category or previous posts.
Still, might be very useful to someone, i use it on all my machines.
Still, might be very useful to someone, i use it on all my machines.
The following user(s) said Thank You: Darium
Please Log in or Create an account to join the conversation.
11 Jul 2024 01:14 #304856
by Robbbbbb
Replied by Robbbbbb on topic Problems with Lichuan Ethercat servo drive
I'm still looking into it, haven't had any time recently, the XML provided in this thread is missing a line (not in front of my machine right now so can't provide it), once that's added the drive will move into OP mode without error but since it is changed to OP mode before setting a control mode it will be stuck in the "no mode" control mode, and the drive ignores control mode changes when in "running status" so will show 80 on the display instead of 88 and will ignore position commands.
The following user(s) said Thank You: Darium
Please Log in or Create an account to join the conversation.
11 Jul 2024 09:49 - 11 Jul 2024 10:10 #304887
by Robbbbbb
Replied by Robbbbbb on topic Problems with Lichuan Ethercat servo drive
Success! So I added the missing pdo entry, and the two missing sync managers (with no pdos set) and now everything is working great. Attached my complete config. Working ethercat-conf.xml:
<masters>
<master idx="0" appTimePeriod="1000000" refClockSyncCycles="1">
<slave idx="0" type="generic" vid="00000766" pid="00000402" configPdos="true">
<dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="0"/>
<syncManager idx="0" dir="out">
</syncManager>
<syncManager idx="1" dir="in">
</syncManager>
<syncManager idx="2" dir="out">
<pdo idx="1600">
<pdoEntry idx="6040" subIdx="00" bitLen="16" halPin="cia-controlword" halType="u32"/>
<pdoEntry idx="6060" subIdx="00" bitLen="8" halPin="opmode" halType="s32"/>
<pdoEntry idx="607A" subIdx="00" bitLen="32" halPin="target-position" halType="s32"/>
<pdoEntry idx="60FF" subIdx="00" bitLen="32" halPin="target-speed" halType="s32"/>
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1a00">
<pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="cia-statusword" halType="u32"/>
<pdoEntry idx="6061" subIdx="00" bitLen="8" halPin="opmode-display" halType="s32"/>
<pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="actual-position" halType="s32"/>
<pdoEntry idx="606C" subIdx="00" bitLen="32" halPin="actual-velocity" halType="s32"/>
<pdoEntry idx="6077" subIdx="00" bitLen="16" halPin="actual-torque" halType="s32"/>
</pdo>
</syncManager>
</slave>
</master>
</masters>
Last edit: 11 Jul 2024 10:10 by Robbbbbb.
Please Log in or Create an account to join the conversation.
12 Jul 2024 13:00 #304990
by Darium
Replied by Darium on topic Problems with Lichuan Ethercat servo drive
Wow
It worked,
Kudos to you, Robbbbbb
It worked,
Kudos to you, Robbbbbb
Please Log in or Create an account to join the conversation.
- ihavenofish
- Offline
- Platinum Member
Less
More
- Posts: 686
- Thank you received: 124
12 Jul 2024 17:35 #305016
by ihavenofish
Replied by ihavenofish on topic Problems with Lichuan Ethercat servo drive
wooo.
now stick it on a machine!
now stick it on a machine!
Please Log in or Create an account to join the conversation.
14 Jul 2024 01:35 #305117
by lmclaren
Replied by lmclaren on topic Problems with Lichuan Ethercat servo drive
Thankyou, I have expanded out to 3x drives and all working well.
I am accessing my LCNC via RDP and noticed that response to the gui slowed considerably while LCNC is running.
My fix was to set coalesce on the interfaces, here is my /etc/networks/interfaces where enp2s0 is my user interface / general network access and the eno1 is my ethercat interface.
cnc@cnc02:/etc/network$ cat interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
auto enp2s0
iface enp2s0 inet static
address 10.1.1.14
hardware-irq-coalesce-rx-usecs 0
auto eno1
iface eno1 inet manual
hardware-irq-coalesce-rx-usecs 0
I am accessing my LCNC via RDP and noticed that response to the gui slowed considerably while LCNC is running.
My fix was to set coalesce on the interfaces, here is my /etc/networks/interfaces where enp2s0 is my user interface / general network access and the eno1 is my ethercat interface.
cnc@cnc02:/etc/network$ cat interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
auto enp2s0
iface enp2s0 inet static
address 10.1.1.14
hardware-irq-coalesce-rx-usecs 0
auto eno1
iface eno1 inet manual
hardware-irq-coalesce-rx-usecs 0
Please Log in or Create an account to join the conversation.
21 Jul 2024 06:26 #305749
by lmclaren
Replied by lmclaren on topic Problems with Lichuan Ethercat servo drive
I have extended the ethercat-conf.xml so I can read the digitial input pins, this is my first attempt so please let me know if there is a better way.
<masters>
<master idx="0" appTimePeriod="1000000" refClockSyncCycles="1">
<slave idx="0" type="generic" vid="00000766" pid="00000402" configPdos="true">
<dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="0"/>
<syncManager idx="0" dir="out">
</syncManager>
<syncManager idx="1" dir="in">
</syncManager>
<syncManager idx="2" dir="out">
<pdo idx="1600">
<pdoEntry idx="6040" subIdx="00" bitLen="16" halPin="cia-controlword" halType="u32"/>
<pdoEntry idx="6060" subIdx="00" bitLen="8" halPin="opmode" halType="s32"/>
<pdoEntry idx="607A" subIdx="00" bitLen="32" halPin="target-position" halType="s32"/>
<pdoEntry idx="60FF" subIdx="00" bitLen="32" halPin="target-speed" halType="s32"/>
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1a00">
<pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="cia-statusword" halType="u32"/>
<pdoEntry idx="6061" subIdx="00" bitLen="8" halPin="opmode-display" halType="s32"/>
<pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="actual-position" halType="s32"/>
<pdoEntry idx="606C" subIdx="00" bitLen="32" halPin="actual-velocity" halType="s32"/>
<pdoEntry idx="6077" subIdx="00" bitLen="16" halPin="actual-torque" halType="s32"/>
<pdoEntry idx="60FD" subIdx="00" bitLen="32" halType="complex">
<complexEntry bitLen="1" halPin="di-state-01-reverse-overtravel" halType="bit"/>
<complexEntry bitLen="1" halPin="di-state-02-forward-overtravel" halType="bit"/>
<complexEntry bitLen="1" halPin="di-state-03-origin-switch" halType="bit"/>
<complexEntry bitLen="13"/>
<complexEntry bitLen="1" halPin="di-state-16-zsignal" halType="bit"/>
<complexEntry bitLen="1" halPin="di-state-17-probe1" halType="bit"/>
<complexEntry bitLen="1" halPin="di-state-18-probe2" halType="bit"/>
<complexEntry bitLen="1"/>
<complexEntry bitLen="1" halPin="di-state-20-di0" halType="bit"/>
<complexEntry bitLen="1" halPin="di-state-21-di1" halType="bit"/>
<complexEntry bitLen="1" halPin="di-state-22-di2" halType="bit"/>
<complexEntry bitLen="1" halPin="di-state-23-di3" halType="bit"/>
<complexEntry bitLen="1" halPin="di-state-24-di4" halType="bit"/>
</pdoEntry>
</pdo>
</syncManager>
</slave>
<slave idx="1" type="generic" vid="00000766" pid="00000402" configPdos="true">
<dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="0"/>
<syncManager idx="0" dir="out">
</syncManager>
<syncManager idx="1" dir="in">
</syncManager>
<syncManager idx="2" dir="out">
<pdo idx="1600">
<pdoEntry idx="6040" subIdx="00" bitLen="16" halPin="cia-controlword" halType="u32"/>
<pdoEntry idx="6060" subIdx="00" bitLen="8" halPin="opmode" halType="s32"/>
<pdoEntry idx="607A" subIdx="00" bitLen="32" halPin="target-position" halType="s32"/>
<pdoEntry idx="60FF" subIdx="00" bitLen="32" halPin="target-speed" halType="s32"/>
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1a00">
<pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="cia-statusword" halType="u32"/>
<pdoEntry idx="6061" subIdx="00" bitLen="8" halPin="opmode-display" halType="s32"/>
<pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="actual-position" halType="s32"/>
<pdoEntry idx="606C" subIdx="00" bitLen="32" halPin="actual-velocity" halType="s32"/>
<pdoEntry idx="6077" subIdx="00" bitLen="16" halPin="actual-torque" halType="s32"/>
<pdoEntry idx="60FD" subIdx="00" bitLen="32" halType="complex">
<complexEntry bitLen="1" halPin="di-state-01-reverse-overtravel" halType="bit"/>
<complexEntry bitLen="1" halPin="di-state-02-forward-overtravel" halType="bit"/>
<complexEntry bitLen="1" halPin="di-state-03-origin-switch" halType="bit"/>
<complexEntry bitLen="13"/>
<complexEntry bitLen="1" halPin="di-state-16-zsignal" halType="bit"/>
<complexEntry bitLen="1" halPin="di-state-17-probe1" halType="bit"/>
<complexEntry bitLen="1" halPin="di-state-18-probe2" halType="bit"/>
<complexEntry bitLen="1"/>
<complexEntry bitLen="1" halPin="di-state-20-di0" halType="bit"/>
<complexEntry bitLen="1" halPin="di-state-21-di1" halType="bit"/>
<complexEntry bitLen="1" halPin="di-state-22-di2" halType="bit"/>
<complexEntry bitLen="1" halPin="di-state-23-di3" halType="bit"/>
<complexEntry bitLen="1" halPin="di-state-24-di4" halType="bit"/>
</pdoEntry>
</pdo>
</syncManager>
</slave>
<slave idx="2" type="generic" vid="00000766" pid="00000402" configPdos="true">
<dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="0"/>
<syncManager idx="0" dir="out">
</syncManager>
<syncManager idx="1" dir="in">
</syncManager>
<syncManager idx="2" dir="out">
<pdo idx="1600">
<pdoEntry idx="6040" subIdx="00" bitLen="16" halPin="cia-controlword" halType="u32"/>
<pdoEntry idx="6060" subIdx="00" bitLen="8" halPin="opmode" halType="s32"/>
<pdoEntry idx="607A" subIdx="00" bitLen="32" halPin="target-position" halType="s32"/>
<pdoEntry idx="60FF" subIdx="00" bitLen="32" halPin="target-speed" halType="s32"/>
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1a00">
<pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="cia-statusword" halType="u32"/>
<pdoEntry idx="6061" subIdx="00" bitLen="8" halPin="opmode-display" halType="s32"/>
<pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="actual-position" halType="s32"/>
<pdoEntry idx="606C" subIdx="00" bitLen="32" halPin="actual-velocity" halType="s32"/>
<pdoEntry idx="6077" subIdx="00" bitLen="16" halPin="actual-torque" halType="s32"/>
<pdoEntry idx="60FD" subIdx="00" bitLen="32" halType="complex">
<complexEntry bitLen="1" halPin="di-state-01-reverse-overtravel" halType="bit"/>
<complexEntry bitLen="1" halPin="di-state-02-forward-overtravel" halType="bit"/>
<complexEntry bitLen="1" halPin="di-state-03-origin-switch" halType="bit"/>
<complexEntry bitLen="13"/>
<complexEntry bitLen="1" halPin="di-state-16-zsignal" halType="bit"/>
<complexEntry bitLen="1" halPin="di-state-17-probe1" halType="bit"/>
<complexEntry bitLen="1" halPin="di-state-18-probe2" halType="bit"/>
<complexEntry bitLen="1"/>
<complexEntry bitLen="1" halPin="di-state-20-di0" halType="bit"/>
<complexEntry bitLen="1" halPin="di-state-21-di1" halType="bit"/>
<complexEntry bitLen="1" halPin="di-state-22-di2" halType="bit"/>
<complexEntry bitLen="1" halPin="di-state-23-di3" halType="bit"/>
<complexEntry bitLen="1" halPin="di-state-24-di4" halType="bit"/>
</pdoEntry>
</pdo>
</syncManager>
</slave>
</master>
</masters>
Please Log in or Create an account to join the conversation.
21 Jul 2024 06:30 #305750
by lmclaren
Replied by lmclaren on topic Problems with Lichuan Ethercat servo drive
examples of hal show
Please Log in or Create an account to join the conversation.
31 Jul 2024 01:16 #306454
by Freedo
Replied by Freedo on topic Problems with Lichuan Ethercat servo drive
Hi everyone. I tried downloading Robbbbbb's config but I didn't have any luck. I have tried following the 2 pinned guides as well as all the steps posted in this thread, but I can't seem to get anywhere. I just have a single lichuan servo and the EK1100.
One thing I noticed is thatchanges the state of my Beckoff EK1100 instead of the servo drive. By changing p0 to p1, I can change the state of the servo drive to init (1ry) and preop(2ry) but nothing else. I tried changing some zeros to ones in Rob's config but it didn't work.
I have also heard people staying they did stuff using twin cat, but I downloaded it and did some quick googling but I didn't get anywhere.
Is there something else it could be? Could I have missed a step
Thank you in advance
One thing I noticed is that
ethercat state -p0 PREOP
I have also heard people staying they did stuff using twin cat, but I downloaded it and did some quick googling but I didn't get anywhere.
Is there something else it could be? Could I have missed a step
Thank you in advance
Please Log in or Create an account to join the conversation.
Time to create page: 0.098 seconds