Problems with Lichuan Ethercat servo drive

More
2 years 3 months ago #304828 by PCW
tommylight: I think they are talking about a specific startup issue with the EtherCAT
Lichuan drive.

Please Log in to join the conversation.

More
2 years 3 months ago #304834 by tommylight
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.

Please Log in to join the conversation.

More
2 years 3 months ago #304856 by Robbbbbb
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.

Please Log in to join the conversation.

More
2 years 3 months ago #304887 by Robbbbbb
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:
Code:
<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>

Please Log in to join the conversation.

More
2 years 3 months ago #304990 by Darium
Wow
It worked,
Kudos to you, Robbbbbb :D

Please Log in to join the conversation.

More
2 years 3 months ago #305016 by ihavenofish
wooo.
now stick it on a machine! :)

Please Log in to join the conversation.

More
2 years 3 months ago #305117 by lmclaren
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


 

Please Log in to join the conversation.

More
2 years 3 months ago #305749 by lmclaren
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.

Code:
    <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 to join the conversation.

More
2 years 3 months ago #305750 by lmclaren
examples of hal show

Please Log in to join the conversation.

More
2 years 3 months ago #306454 by Freedo
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 that
Code:
ethercat state -p0 PREOP
changes 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

Please Log in to join the conversation.

Time to create page: 0.295 seconds
Powered by Kunena Forum