Problems with Lichuan Ethercat servo drive

More
10 Jul 2024 16:31 #304828 by PCW
tommylight: I think they are talking about a specific startup issue with the EtherCAT
Lichuan drive.
The following user(s) said Thank You: tommylight, Darium

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

More
10 Jul 2024 17:07 #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.
The following user(s) said Thank You: Darium

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

More
11 Jul 2024 01:14 #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.
The following user(s) said Thank You: Darium

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

More
11 Jul 2024 09:49 - 11 Jul 2024 10:10 #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:
<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>
Attachments:
Last edit: 11 Jul 2024 10:10 by Robbbbbb.
The following user(s) said Thank You: trisa25

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

More
12 Jul 2024 13:00 #304990 by Darium
Wow
It worked,
Kudos to you, Robbbbbb :D

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

More
12 Jul 2024 17:35 #305016 by ihavenofish
wooo.
now stick it on a machine! :)

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

More
14 Jul 2024 01:35 #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 or Create an account to join the conversation.

More
21 Jul 2024 06:26 #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.

   
<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>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
The following user(s) said Thank You: dacb, avive

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

More
21 Jul 2024 06:30 #305750 by lmclaren
examples of hal show
Attachments:

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

More
31 Jul 2024 01:16 #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
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 or Create an account to join the conversation.

Time to create page: 0.119 seconds
Powered by Kunena Forum