Advanced Search

Search Results (Searched for: halpin)

  • cekaa
  • cekaa's Avatar
04 Apr 2026 06:37

Hello, I would like to add an EtherCAT IO device. What should I do

Category: EtherCAT

I struggled a lot because it was a topic I didn't understand at all. I added the pdos and the lcec_configgen result, but I didn't understand what kind of structure I was supposed to create.
When 32 bit = 16 bit
ceka@debian:~$ ethercat slave
0 0:0 OP + XINJE-DS5C1 EtherCAT(CoE) Drive Rev4.0 v3.7.70
1 0:1 OP + XINJE-DS5C1 EtherCAT(CoE) Drive Rev4.0 v3.7.70
2 0:2 OP + XINJE-DS5C1 EtherCAT(CoE) Drive Rev4.0 v3.7.70
3 0:3 SAFEOP+ERROR E EM32DX-E4   ????????????????????????????????????????????
ceka@debian:~$

SAFEOP+ERROR E EM32DX-E4

old now

ceka@debian:~$ ethercat pdos
=== Master 0, Slave 3 ===
SM0: PhysAddr 0x1000, DefaultSize  128, ControlRegister 0x26, Enable 1
SM1: PhysAddr 0x1400, DefaultSize  128, ControlRegister 0x22, Enable 1
SM2: PhysAddr 0x1800, DefaultSize    5, ControlRegister 0x64, Enable 1
  RxPDO 0x1600 "RxPDO0-Map"
    PDO entry 0x7000:01, 16 bit, "OUT"
SM3: PhysAddr 0x1c00, DefaultSize    7, ControlRegister 0x20, Enable 1
  TxPDO 0x1a00 "TxPDO1-Map"
    PDO entry 0x6000:01, 16 bit, "IN"
ceka@debian:~$

lcec_configgen
<slave idx="3" type="generic" vid="0x00004321" pid="0x01100073" name="D4">
      <!--EM32DX-E4-->
      <syncManager idx="0" dir="in"/>
      <syncManager idx="1" dir="out"/>
      <syncManager idx="2" dir="out">
        <pdo idx="1600">
          <!--RxPDO0-Map-->
          <pdoEntry idx="7000" subIdx="01" bitLen="16" halPin="out" halType="u32"/>
        </pdo>
      </syncManager>
      <syncManager idx="3" dir="in">
        <pdo idx="1a00">
          <!--TxPDO1-Map-->
          <pdoEntry idx="6000" subIdx="01" bitLen="16" halPin="in" halType="u32"/>
        </pdo>
      </syncManager>
    </slave>
  </master>
</masters>
ceka@debian:~$


Would the `lcec_configgen` command help? Could someone write the correct configuration for me?


 
  • cekaa
  • cekaa's Avatar
02 Apr 2026 11:13

Hello, I would like to add an EtherCAT IO device. What should I do

Category: EtherCAT

Hi, I have the same problem. How did you switch to XML OP mode? 
Leidshine em32dx-e

ceka@debian:~$ ethercat slave
0  0:0  OP     +  XINJE-DS5C1 EtherCAT(CoE) Drive Rev4.0 v3.7.70
1  0:1  OP     +  XINJE-DS5C1 EtherCAT(CoE) Drive Rev4.0 v3.7.70
2  0:2  OP     +  XINJE-DS5C1 EtherCAT(CoE) Drive Rev4.0 v3.7.70
3  0:3  PREOP  E  EM32DX-E4
ceka@debian:~$

main xml

 
slave idx="3" type="generic" vid="0x00004321" pid="0x01100073" configPdos="true">
      <dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="0"/>     
      <syncManager idx="2" dir="out">
        <pdo idx="1600">            
            <!-- Digtial Outputs (RTEC1616)-->
          <pdoEntry idx="0x7000," subIdx="01" bitLen="16" halType="complex">
            <complexEntry bitLen="1" halPin="out-01" halType="bit"/>
            <complexEntry bitLen="1" halPin="out-02" halType="bit"/>
            <complexEntry bitLen="1" halPin="out-03" halType="bit"/>
            <complexEntry bitLen="1" halPin="out-04" halType="bit"/>
            <complexEntry bitLen="1" halPin="out-05" halType="bit"/>
            <complexEntry bitLen="1" halPin="out-06" halType="bit"/>
            <complexEntry bitLen="1" halPin="out-07" halType="bit"/>
            <complexEntry bitLen="1" halPin="out-08" halType="bit"/>
            <complexEntry bitLen="1" halPin="out-09" halType="bit"/>
            <complexEntry bitLen="1" halPin="out-10" halType="bit"/>
            <complexEntry bitLen="1" halPin="out-11" halType="bit"/>
            <complexEntry bitLen="1" halPin="out-12" halType="bit"/>
            <complexEntry bitLen="1" halPin="out-13" halType="bit"/>
            <complexEntry bitLen="1" halPin="out-14" halType="bit"/>
            <complexEntry bitLen="1" halPin="out-15" halType="bit"/>
            <complexEntry bitLen="1" halPin="out-16" halType="bit"/>
          </pdoEntry>  
          
      </pdo>
      </syncManager>      
      <syncManager idx="3" dir="in">
        <pdo idx="0x1a00,">    
          <!-- Digtial_inputs  -->
          <pdoEntry idx="0x6000," subIdx="01" bitLen="32" halType="complex">
            <complexEntry bitLen="1" halPin="in-01" halType="bit"/>
            <complexEntry bitLen="1" halPin="in-02" halType="bit"/>
            <complexEntry bitLen="1" halPin="in-03" halType="bit"/>
            <complexEntry bitLen="1" halPin="in-04" halType="bit"/>
            <complexEntry bitLen="1" halPin="in-05" halType="bit"/>
            <complexEntry bitLen="1" halPin="in-06" halType="bit"/>
            <complexEntry bitLen="1" halPin="in-07" halType="bit"/>
            <complexEntry bitLen="1" halPin="in-08" halType="bit"/>
            <complexEntry bitLen="1" halPin="in-09" halType="bit"/>
            <complexEntry bitLen="1" halPin="in-10" halType="bit"/>
            <complexEntry bitLen="1" halPin="in-11" halType="bit"/>
            <complexEntry bitLen="1" halPin="in-12" halType="bit"/>
            <complexEntry bitLen="1" halPin="in-13" halType="bit"/>
            <complexEntry bitLen="1" halPin="in-14" halType="bit"/>
            <complexEntry bitLen="1" halPin="in-15" halType="bit"/>
            <complexEntry bitLen="1" halPin="in-16" halType="bit"/>    
           </pdoEntry>  
        </pdo>
      </syncManager>   
       </slave>
</master>
</masters>  


 
  • andrax
  • andrax's Avatar
04 Mar 2026 17:44 - 04 Mar 2026 17:46
Replied by andrax on topic CiA 402 Folder Missing

CiA 402 Folder Missing

Category: EtherCAT

Sorry, my mistake, I misread something.
Your sync errors are gone.
But there is another problem,
Your output ethercat pdos:
[code] RxPDO 0x1701 "RxPDO"
    PDO entry 0x6040:00, 16 bit, "ControlWord"
    PDO entry 0x607a:00, 32 bit, "Target position"
    PDO entry 0x60b8:00, 16 bit, "Touch probe function"
    PDO entry 0x6060:00,  8 bit, "Modes of operation"
    PDO entry 0x0000:00,  0 bit, "Gap"
    PDO entry 0x0000:00,  0 bit, "Gap"
    PDO entry 0x0000:00,  0 bit, "Gap"
    PDO entry 0x0000:00,  0 bit, "Gap"
    PDO entry 0x0000:00,  0 bit, "Gap"
    PDO entry 0x0000:00,  0 bit, "Gap"
SM3: PhysAddr 0x1400, DefaultSize   15, ControlRegister 0x20, Enable 1
  TxPDO 0x1b01 "TxPDO"
    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 0x6061:00,  8 bit, "Modes of operation display"
    PDO entry 0x0000:00,  0 bit, "Gap"
    PDO entry 0x0000:00,  0 bit, "Gap"
    PDO entry 0x0000:00,  0 bit, "Gap"
    PDO entry 0x0000:00,  0 bit, "Gap"
[/code]
Your XML:
[code][code]<pdoEntry idx="6040" subIdx="00" bitLen="16" halPin="control-word" halType="u32"/>
<pdoEntry idx="6060" subIdx="00" bitLen="8" halPin="control-mode" halType="s32"/>
<pdoEntry idx="607A" subIdx="00" bitLen="32" halPin="target-position" halType="s32"/>
<pdoEntry idx="60FF" subIdx="00" bitLen="32" halPin="target-velocity" halType="s32"/>
<pdoEntry idx="607C" subIdx="00" bitLen="32" halPin="home-offset" halType="s32"/>
<pdoEntry idx="6098" subIdx="00" bitLen="8" halPin="homing-method" halType="s32"/>
<pdoEntry idx="6099" subIdx="01" bitLen="32" halPin="homing-high-velocity" halType="u32"/>
<pdoEntry idx="6099" subIdx="02" bitLen="32" halPin="homing-low-velocity" halType="u32"/>
<pdoEntry idx="609A" subIdx="00" bitLen="32" halPin="homing-acceleration" halType="u32"/>
[/code]

[/code]
[code]The addresses are missing in the pdos, which is apparently why the errors occur.
However, the addresses are found in the sdos.

I don't know if they need to be configured manually. What does the manual say?
[/code]
  • tuxcnc
  • tuxcnc
16 Feb 2026 21:28
Replied by tuxcnc on topic EtherCAT driver as simply positioner

EtherCAT driver as simply positioner

Category: EtherCAT

Set controlword to 6, 7, 15 (op-enabled)
 

It is it.
Now works.
(Not usable yet, but homing and moves).
XML config file:
    <slave idx="0" type="generic" vid="0000ffff" pid="00000001" configPdos="true">
      <!-- 
        Distributed Clock Configuration
        assignActivate: Activation time for DC in ms
        sync0Cycle: Sync0 cycle multiplier (*1 = 1 ms)
        sync0Shift: Phase shift for Sync0 event
      -->
      <dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="0"/>
      <sdoConfig idx="6098" subIdx="00"><sdoDataRaw data ="13 00"/></sdoConfig>  <!-- Home mode 19 (use HOME-switch input)-->
      <!-- 
        Sync Manager for Output (Commands sent to drive)
        idx: Sync Manager index (2 is standard for outputs)
        dir: Direction (out = from master to slave)
      -->
      <syncManager idx="2" dir="out">
        <!-- 
          Process Data Object (PDO) for Output
          idx: PDO index (1600h is standard for TxPDO)
        -->
        <pdo idx="1600">
          <pdoEntry idx="6040" subIdx="00" bitLen="16" halPin="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>

      <!-- 
        Sync Manager for Input (Status received from drive)
        idx: Sync Manager index (3 is standard for inputs)
        dir: Direction (in = from slave to master)
      -->
      <syncManager idx="3" dir="in">
        <!-- 
          Process Data Object (PDO) for Input
          idx: PDO index (1A00h is standard for RxPDO)
        -->
        <pdo idx="1a00">
          <pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="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"/>
          <!-- Digtial_inputs (cia402 compatible) -->
          <pdoEntry idx="60FD" subIdx="0" bitLen="32" halType="complex">
            <complexEntry bitLen="1" halPin="CW-limit" halType="bit"/>
            <complexEntry bitLen="1" halPin="CCW-limit" halType="bit"/>
            <complexEntry bitLen="1" halPin="HOME-switch" halType="bit"/>
            <complexEntry bitLen="23"/>
            <complexEntry bitLen="1" halPin="IN-4" halType="bit"/>
          </pdoEntry>

        </pdo>
      </syncManager>
    </slave>
Script:
#!/bin/bash
halcmd setp lcec.0.0.opmode 6
halcmd setp lcec.0.0.controlword 6
halcmd setp lcec.0.0.controlword 7
halcmd setp lcec.0.0.controlword 15
halcmd setp lcec.0.0.controlword 31
sleep 2
halcmd setp lcec.0.0.opmode 8
halcmd setp lcec.0.0.controlword 6
halcmd setp lcec.0.0.controlword 7
halcmd setp lcec.0.0.controlword 15
halcmd setp lcec.0.0.target-speed 1
halcmd setp lcec.0.0.target-position 4000
exit 0
And HAL only for testing:
loadrt [KINS]KINEMATICS
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS

loadusr -W lcec_conf ethercat-conf.xml

loadrt lcec

addf lcec.read-all            servo-thread
addf motion-command-handler   servo-thread
addf motion-controller        servo-thread
addf lcec.write-all           servo-thread

setp iocontrol.0.emc-enable-in 1
No speed and acceleration control, it is to do...
  • Hakan
  • Hakan
06 Feb 2026 23:04 - 06 Feb 2026 23:22

Stepperonline Y series/ YAKO YKD2608PE configuration

Category: EtherCAT

There is some mismatch with the numbering.
The pattern is lcec.<master idx>.<slave idx>.halPinName
master idx is always 0 for you. Slave idx is 0-3 in ethercat-conf.xml
but 3-6 in the hal file. They must agree.
Go through the hal file and compare with ethercat-conf.xml so you
refer to what you intend to.

Oh, wait! There is the name="D1" field used. Then the hal pin is called lcec.0.D1.halPinName.
With that info, rename the lcec variables in the hal file. D1, D2, D3 etc.
Many of us use a descriptive name like X instead of D1 and so on.
  • Hakan
  • Hakan
04 Feb 2026 18:24

Stepperonline Y series/ YAKO YKD2608PE configuration

Category: EtherCAT

That seems to be ok.
The error message is in the output from the linuxcnc command
 

And if you look in the ethercat-conf.xml you find the word BLANK
 

In place of BLANK there should be one of the hal types u32, s32, float-ieee, bit.
Have a look at the ethercat-conf.xml in this example I often refer to
github.com/dbraun1981/hal-cia402/tree/main/example
Modify both the halType and the halPin .

This example also shows how you use the cia402 component to
connect the servo drives to the joints.


 
  • jrc
  • jrc
02 Feb 2026 09:13

Step By Step Help Needed . EL8 Leadshine to PI 5

Category: EtherCAT

The xml settings for the spindle using an EL8-1000 are:
<code>
      <!-- Spindle Leadshine EL8 1000 servo drive -->
    <slave idx="4" type="generic" vid="00004321" pid="000010c4" configPdos="true">
      <dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="0"/>
      <syncManager idx="2" dir="out">
          <pdo idx="1601">
              <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="6098" subIdx="00" bitLen="8" halPin="homing-method" halType="s32"/> -->
              <pdoEntry idx="6071" subIdx="00" bitLen="16" halPin="target-torque" halType="s32"/>
              <pdoEntry idx="6071" subIdx="00" bitLen="16" halPin="target-torque-dummy" halType="s32"/>
              <pdoEntry idx="607A" subIdx="00" bitLen="32" halPin="target-position" halType="s32"/>
              <pdoEntry idx="60FF" subIdx="00" bitLen="32" halPin="target-velocity" 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>
</code>
 
  • rodw
  • rodw's Avatar
22 Jan 2026 11:11
Replied by rodw on topic Kinko ECT coupler

Kinko ECT coupler

Category: EtherCAT

Probably more like this where a bitmap exists. Note that in places its padded with unused bits
          <pdoEntry idx="60FD" subIdx="0" bitLen="32" halType="complex">
            <complexEntry bitLen="1" halPin="CW-limit" halType="bit"/>
            <complexEntry bitLen="1" halPin="CCW-limit" halType="bit"/>
            <complexEntry bitLen="1" halPin="in-home" halType="bit"/>
            <complexEntry bitLen="13"/>
            <complexEntry bitLen="1" halPin="in-1" halType="bit"/>
            <complexEntry bitLen="1" halPin="in-2" halType="bit"/>
            <complexEntry bitLen="1" halPin="in-3" halType="bit"/>
            <complexEntry bitLen="1" halPin="in-4" halType="bit"/>
            <complexEntry bitLen="1" halPin="in-5" halType="bit"/>
            <complexEntry bitLen="1" halPin="in-6" halType="bit"/>
            <complexEntry bitLen="10"/>
          </pdoEntry> 
 
  • Hakan
  • Hakan
22 Jan 2026 10:33 - 22 Jan 2026 10:34
Replied by Hakan on topic Kinko ECT coupler

Kinko ECT coupler

Category: EtherCAT

Try
          <pdoEntry idx="0x7020" subIdx="0x01" bitLen="8" halPin="out-byte-0" halType="bit"/>
Note the bit.
  • bkt
  • bkt's Avatar
19 Jan 2026 12:27
Kinko ECT coupler was created by bkt

Kinko ECT coupler

Category: EtherCAT

hello at all ... i try to load new coupler kinko etc .... with some in / out analogue in and out relays ... i try to use a custo xml based on pdos and sdos teminal reply .....
<masters>
  <master idx="0" appTimePeriod="1000000" refClockSyncCycles="1">
    <slave idx="0" type="generic" vid="0x00681168" pid="0x52503230" configPdos="true">

      <sdoConfig idx="0x1c12" subIdx="0"><sdoDataRaw data="00"/></sdoConfig>
      <sdoConfig idx="0x1c13" subIdx="0"><sdoDataRaw data="00"/></sdoConfig>
      <sdoConfig idx="0x1c12" subIdx="1"><sdoDataRaw data="0216"/></sdoConfig>
      <sdoConfig idx="0x1c12" subIdx="2"><sdoDataRaw data="0316"/></sdoConfig>
      <sdoConfig idx="0x1c12" subIdx="0"><sdoDataRaw data="02"/></sdoConfig>
      <sdoConfig idx="0x1c13" subIdx="1"><sdoDataRaw data="001a"/></sdoConfig>
      <sdoConfig idx="0x1c13" subIdx="2"><sdoDataRaw data="011a"/></sdoConfig>
      <sdoConfig idx="0x1c13" subIdx="0"><sdoDataRaw data="02"/></sdoConfig>

      <syncManager idx="2" dir="out">
        <pdo idx="0x1602">
          <pdoEntry idx="0x7020" subIdx="0x01" bitLen="8" halPin="out-byte-0" halType="u32"/>
          <pdoEntry idx="0x7020" subIdx="0x02" bitLen="8" halPin="out-byte-1" halType="u32"/>
        </pdo>
        <pdo idx="0x1603">
          <pdoEntry idx="0x7030" subIdx="0x01" bitLen="8" halPin="relay-byte-0" halType="u32"/>
        </pdo>
      </syncManager>

      <syncManager idx="3" dir="in">
        <pdo idx="0x1a00">
          <pdoEntry idx="0x6000" subIdx="0x01" bitLen="8" halPin="in-byte-0" halType="u32"/>
          <pdoEntry idx="0x6000" subIdx="0x02" bitLen="8" halPin="in-byte-1" halType="u32"/>
        </pdo>
        <pdo idx="0x1a01">
          <pdoEntry idx="0x6010" subIdx="0x01" bitLen="16" halPin="analog-0" halType="s32"/>
          <pdoEntry idx="0x6010" subIdx="0x02" bitLen="16" halPin="analog-1" halType="s32"/>
          <pdoEntry idx="0x6010" subIdx="0x03" bitLen="16" halPin="analog-2" halType="s32"/>
          <pdoEntry idx="0x6010" subIdx="0x04" bitLen="16" halPin="analog-3" halType="s32"/>
        </pdo>
      </syncManager>

    </slave>
  </master>
</masters>

seems to work ... but for obtain the real value of pdos need to use these one ...
<masters>
  <master idx="0" appTimePeriod="1000000" refClockSyncCycles="1">
    <slave idx="0" type="generic" vid="0x00681168" pid="0x52503230" configPdos="true">

      <sdoConfig idx="0x1c12" subIdx="0"><sdoDataRaw data="00"/></sdoConfig>
      <sdoConfig idx="0x1c13" subIdx="0"><sdoDataRaw data="00"/></sdoConfig>
      <sdoConfig idx="0x1c12" subIdx="1"><sdoDataRaw data="0216"/></sdoConfig>
      <sdoConfig idx="0x1c12" subIdx="2"><sdoDataRaw data="0316"/></sdoConfig>
      <sdoConfig idx="0x1c12" subIdx="0"><sdoDataRaw data="02"/></sdoConfig>
      <sdoConfig idx="0x1c13" subIdx="1"><sdoDataRaw data="001a"/></sdoConfig>
      <sdoConfig idx="0x1c13" subIdx="2"><sdoDataRaw data="011a"/></sdoConfig>
      <sdoConfig idx="0x1c13" subIdx="0"><sdoDataRaw data="02"/></sdoConfig>

      <syncManager idx="2" dir="out">
        <pdo idx="0x1602">
          <pdoEntry idx="0x7020" subIdx="0x01" bitLen="8" halPin="out-byte-0" halType="u32"/>
          <pdoEntry idx="0x7020" subIdx="0x02" bitLen="8" halPin="out-byte-1" halType="u32"/>
        </pdo>
        <pdo idx="0x1603">
          <pdoEntry idx="0x7030" subIdx="0x01" bitLen="8" halPin="relay-byte-0" halType="u32"/>
        </pdo>
      </syncManager>

      <syncManager idx="3" dir="in">
        <pdo idx="0x1a00">
          <pdoEntry idx="0x6000" subIdx="0x01" bitLen="8" halPin="in-byte-0" halType="u32"/>
          <pdoEntry idx="0x6000" subIdx="0x02" bitLen="8" halPin="in-byte-1" halType="u32"/>
        </pdo>
        <pdo idx="0x1a01">
          <pdoEntry idx="0x6010" subIdx="0x01" bitLen="16" halPin="analog-0" halType="s32"/>
          <pdoEntry idx="0x6010" subIdx="0x02" bitLen="16" halPin="analog-1" halType="s32"/>
          <pdoEntry idx="0x6010" subIdx="0x03" bitLen="16" halPin="analog-2" halType="s32"/>
          <pdoEntry idx="0x6010" subIdx="0x04" bitLen="16" halPin="analog-3" halType="s32"/>
        </pdo>
      </syncManager>

    </slave>
  </master>
</masters>

problem become create everytime a new .hal file based on new module added .... for obtain bit correctly need to use bitslice component .... that is no so fast .... there is a giude for create a new lcec-kinko-c e lcec-kinko.h library so no need to use bitsile or other component for reading and writing bit?? ... thanks to any help .... (p.s. analogue reading is good) .... for better explaine me I add some pdos reading ....
adm1@db13:~$ sudo ethercat reg_read -p 0 -t uint8 3

0x00 0

adm1@db13:~$ sudo ethercat reg_read -p 0 -t uint8 4

0x08 8

adm1@db13:~$ sudo ethercat reg_read -p 0 -t uint8 3

[sudo] password for adm1:

0x00 0

adm1@db13:~$ sudo ethercat reg_read -p 0 -t uint8 2

0x03 3

adm1@db13:~$ sudo ethercat reg_read -p 0 -t uint8 1

0x00 0

adm1@db13:~$ sudo ethercat reg_read -p 0 -t uint8 0

0x11 17

adm1@db13:~$ sudo ethercat reg_read -p 0 -t uint8 4

0x08 8

adm1@db13:~$ sudo ethercat reg_read -p 0 -t uint8 3

0x00 0

adm1@db13:~$ sudo ethercat reg_read -p 0 -t uint8 2

0x03 3

adm1@db13:~$ sudo ethercat reg_read -p 0 -t uint8 1

0x00 0

adm1@db13:~$ sudo ethercat reg_read -p 0 -t uint8 0

0x11 17

regards
  • Ahmed.emara
  • Ahmed.emara
22 Dec 2025 15:01
leadshine R3EC was created by Ahmed.emara

leadshine R3EC

Category: EtherCAT

hello guys
i really need help with configuring R3EC IO coupler + R3 1600 DI + R3 0016-P DO ,to my etherCAT system,
i wrote XML file but when i check the status of the slaves all the drivers are in OP mode except the R3EC is in SAFEOP and it does not switch to OP mode,
here is the XML section for the R3EC i used : 
<slave idx="6" type="generic" vid="0x00004321" pid="0x61400025" configPdos="true">
<!-- SM2: Outputs -->
<syncManager idx="2" dir="out">
<pdo idx="0x7000">
<pdoEntry idx="0x7000" subIdx="0x01" bitLen="16" halType="complex">
<complexEntry bitLen="1" halPin="do-01" halType="bit"/>
<complexEntry bitLen="1" halPin="do-02" halType="bit"/>
<complexEntry bitLen="1" halPin="do-03" halType="bit"/>
<complexEntry bitLen="1" halPin="do-04" halType="bit"/>
<complexEntry bitLen="1" halPin="do-05" halType="bit"/>
<complexEntry bitLen="1" halPin="do-06" halType="bit"/>
<complexEntry bitLen="1" halPin="do-07" halType="bit"/>
<complexEntry bitLen="1" halPin="do-08" halType="bit"/>
<complexEntry bitLen="1" halPin="do-09" halType="bit"/>
<complexEntry bitLen="1" halPin="do-10" halType="bit"/>
<complexEntry bitLen="1" halPin="do-11" halType="bit"/>
<complexEntry bitLen="1" halPin="do-12" halType="bit"/>
<complexEntry bitLen="1" halPin="do-13" halType="bit"/>
<complexEntry bitLen="1" halPin="do-14" halType="bit"/>
<complexEntry bitLen="1" halPin="do-15" halType="bit"/>
<complexEntry bitLen="1" halPin="do-16" halType="bit"/>
</pdoEntry>
</pdo>
</syncManager>
<!-- SM3: Inputs -->
<syncManager idx="3" dir="in">
<pdo idx="0x6000">
<pdoEntry idx="0x6000" subIdx="0x01" bitLen="16" halType="complex">
<complexEntry bitLen="1" halPin="di-01" halType="bit"/>
<complexEntry bitLen="1" halPin="di-02" halType="bit"/>
<complexEntry bitLen="1" halPin="di-03" halType="bit"/>
<complexEntry bitLen="1" halPin="di-04" halType="bit"/>
<complexEntry bitLen="1" halPin="di-05" halType="bit"/>
<complexEntry bitLen="1" halPin="di-06" halType="bit"/>
<complexEntry bitLen="1" halPin="di-07" halType="bit"/>
<complexEntry bitLen="1" halPin="di-08" halType="bit"/>
<complexEntry bitLen="1" halPin="di-09" halType="bit"/>
<complexEntry bitLen="1" halPin="di-10" halType="bit"/>
<complexEntry bitLen="1" halPin="di-11" halType="bit"/>
<complexEntry bitLen="1" halPin="di-12" halType="bit"/>
<complexEntry bitLen="1" halPin="di-13" halType="bit"/>
<complexEntry bitLen="1" halPin="di-14" halType="bit"/>
<complexEntry bitLen="1" halPin="di-15" halType="bit"/>
<complexEntry bitLen="1" halPin="di-16" halType="bit"/>
</pdoEntry>
</pdo>
</syncManager>
</slave>

i appreciate your help guys i have been stuck with this problem since two weeks!
  • emresensoy
  • emresensoy
04 Dec 2025 07:02 - 04 Dec 2025 07:55
Replied by emresensoy on topic Beckhoff EL2522 lcec xml file

Beckhoff EL2522 lcec xml file

Category: EtherCAT

with lcec_configgen, It worked with a few minor tweaks. Great.
<slave idx="6" type="generic" vid="0x00000002" pid="0x09da3052" configPdos="true">
      <!--EL2522 2K. Pulse Train Ausgang-->
      <syncManager idx="0" dir="in"/>
      <syncManager idx="1" dir="out"/>
      <syncManager idx="2" dir="out">
        <pdo idx="1600">
          <!--PTO RxPDO-Map Control Ch.1-->
          <pdoEntry idx="7000" subIdx="01" bitLen="1" halPin="ch-1-frequency-select" halType="bit"/>
          <pdoEntry idx="7000" subIdx="02" bitLen="1" halPin="ch-1-disable-ramp" halType="bit"/>
          <pdoEntry idx="7000" subIdx="03" bitLen="1" halPin="ch-1-go-counter" halType="bit"/>
          <pdoEntry idx="7000" subIdx="11" bitLen="16" halPin="ch-1-frequency-value" halType="u32"/>
        </pdo>
        <pdo idx="1603">
          <!--PTO RxPDO-Map Target Ch.1-->
          <pdoEntry idx="7000" subIdx="12" bitLen="32" halPin="ch-1-target-counter-value" halType="u32"/>
        </pdo>
        <pdo idx="1605">
          <!--PTO RxPDO-Map Control Ch.2-->
          <pdoEntry idx="7010" subIdx="01" bitLen="1" halPin="ch-2-frequency-select" halType="bit"/>
          <pdoEntry idx="7010" subIdx="02" bitLen="1" halPin="ch-2-disable-ramp" halType="bit"/>
          <pdoEntry idx="7010" subIdx="03" bitLen="1" halPin="ch-2-go-counter" halType="bit"/>
          <pdoEntry idx="7010" subIdx="11" bitLen="16" halPin="ch-2-frequency-value" halType="u32"/>
        </pdo>
        <pdo idx="1608">
          <!--PTO RxPDO-Map Target Ch.2-->
          <pdoEntry idx="7010" subIdx="12" bitLen="32" halPin="ch-2-target-counter-value" halType="u32"/>
        </pdo>
        <pdo idx="160b">
          <!--ENC RxPDO-Map Control Ch.1-->
          <pdoEntry idx="7020" subIdx="03" bitLen="1" halPin="ch-1-set-counter" halType="bit"/>
          <pdoEntry idx="7020" subIdx="10" bitLen="1" halPin="ch-1-reserved" halType="bit"/>
          <pdoEntry idx="7020" subIdx="11" bitLen="32" halPin="ch-1-set-counter-value" halType="u32"/>
        </pdo>
        <pdo idx="160d">
          <!--ENC RxPDO-Map Control Ch.2-->
          <pdoEntry idx="7030" subIdx="03" bitLen="1" halPin="ch-2-set-counter" halType="bit"/>
          <pdoEntry idx="7030" subIdx="10" bitLen="1" halPin="ch-2-reserved" halType="bit"/>
          <pdoEntry idx="7030" subIdx="11" bitLen="32" halPin="ch-2-set-counter-value" halType="u32"/>
        </pdo>
      </syncManager>
      <syncManager idx="3" dir="in">
        <pdo idx="1a00">
          <!--PTO TxPDO-Map Status Ch.1-->
          <pdoEntry idx="6000" subIdx="01" bitLen="1" halPin="ch-1-sel-ack-end-counter" halType="bit"/>
          <pdoEntry idx="6000" subIdx="02" bitLen="1" halPin="ch-1-ramp-active" halType="bit"/>
          <pdoEntry idx="6000" subIdx="07" bitLen="1" halPin="ch-1-error" halType="bit"/>
          <pdoEntry idx="6000" subIdx="0e" bitLen="1" halPin="ch-1-sm3-sync-error" halType="bit"/>
          <pdoEntry idx="6000" subIdx="10" bitLen="1" halPin="ch-1-txpdo-toggle" halType="bit"/>
        </pdo>
        <pdo idx="1a01">
          <!--PTO TxPDO-Map Status Ch.2-->
          <pdoEntry idx="6010" subIdx="01" bitLen="1" halPin="ch-2-sel-ack-end-counter" halType="bit"/>
          <pdoEntry idx="6010" subIdx="02" bitLen="1" halPin="ch-2-ramp-active" halType="bit"/>
          <pdoEntry idx="6010" subIdx="07" bitLen="1" halPin="ch-2-error" halType="bit"/>
          <pdoEntry idx="6010" subIdx="0e" bitLen="1" halPin="ch-2-sm3-sync-error" halType="bit"/>
          <pdoEntry idx="6010" subIdx="10" bitLen="1" halPin="ch-2-txpdo-toggle" halType="bit"/>
        </pdo>
        <pdo idx="1a03">
          <!--ENC TxPDO-Map Status Ch.1-->
          <pdoEntry idx="6020" subIdx="03" bitLen="1" halPin="ch-1-set-counter-done" halType="bit"/>
          <pdoEntry idx="6020" subIdx="04" bitLen="1" halPin="ch-1-counter-underflow" halType="bit"/>
          <pdoEntry idx="6020" subIdx="05" bitLen="1" halPin="ch-1-counter-overflow" halType="bit"/>
          <pdoEntry idx="6020" subIdx="0e" bitLen="1" halPin="ch-1-sm3--sync-error" halType="bit"/>
          <pdoEntry idx="6020" subIdx="0f" bitLen="1" halPin="ch-1-txpdo-state" halType="bit"/>
          <pdoEntry idx="6020" subIdx="10" bitLen="1" halPin="ch-1-sm3--txpdo-toggle" halType="bit"/>
          <pdoEntry idx="6020" subIdx="11" bitLen="32" halPin="ch-1-counter-value" halType="u32"/>
        </pdo>
        <pdo idx="1a05">
          <!--ENC TxPDO-Map Status Ch.2-->
          <pdoEntry idx="6030" subIdx="03" bitLen="1" halPin="ch-2-set-counter-done" halType="bit"/>
          <pdoEntry idx="6030" subIdx="04" bitLen="1" halPin="ch-2-counter-underflow" halType="bit"/>
          <pdoEntry idx="6030" subIdx="05" bitLen="1" halPin="ch-2-counter-overflow" halType="bit"/>
          <pdoEntry idx="6030" subIdx="0e" bitLen="1" halPin="ch-2-sm3--sync-error" halType="bit"/>
          <pdoEntry idx="6030" subIdx="0f" bitLen="1" halPin="ch-2-txpdo-state" halType="bit"/>
          <pdoEntry idx="6030" subIdx="10" bitLen="1" halPin="ch-2-sm3--txpdo-toggle" halType="bit"/>
          <pdoEntry idx="6030" subIdx="11" bitLen="32" halPin="ch-2-counter-value" halType="u32"/>
        </pdo>
      </syncManager>
    </slave>
  • miro199315
  • miro199315
13 Nov 2025 05:56 - 13 Nov 2025 05:58
Replied by miro199315 on topic Configuration Schnider electric ILA2 Servo

Configuration Schnider electric ILA2 Servo

Category: EtherCAT

Thanks a lot for looking into this and taking the time to check my issue. I really appreciate the help and suggestions.
Below I’m attaching the XML configuration and system logs for reference.

[35409.201585] EtherCAT: Requesting master 0...
[35409.201588] EtherCAT: Successfully requested master 0.
[35409.201704] EtherCAT 0: Domain0: Logical address 0x00000000, 46 byte, expected working counter 3.
[35409.201706] EtherCAT 0:   Datagram domain0-0-main: Logical offset 0x00000000, 46 byte, type LRW.
[35409.201717] EtherCAT 0: Master thread exited.
[35409.201718] EtherCAT 0: Stopping EoE thread.
[35409.201726] EtherCAT 0: EoE thread exited.
[35409.201726] EtherCAT 0: Starting EoE thread.
[35409.201750] EtherCAT 0: Starting EtherCAT-OP thread.
[35409.201765] EtherCAT WARNING 0: 12 datagrams TIMED OUT!
[35409.331702] EtherCAT WARNING 0-1: Other mailbox protocol response for eoe0s1.
[35409.331956] EtherCAT ERROR 0-1: Reception of CoE download response failed: No response.
[35409.331959] EtherCAT WARNING 0-1: Failed to map PDO entry 0x0000:00 (8 bit) to position 6.
[35409.331961] EtherCAT WARNING 0-1: Currently mapped PDO entries: (none). Entries to map: 0x6040:00/16 0x6060:00/8 0x607A:00/32 0x60FF:00/32 0x0000:00/8 0x0000:00/8 0x0000:00/8 0x0000:00/8 0x0000:00/8 0x0000:00/8 0x0000:00/8 0x0000:00/8 0x0000:00/8 0x0000:00/8 0x0000:00/8
[35409.331973] EtherCAT WARNING 0-1: Failed to configure mapping of PDO 0x1600.
[35409.355684] EtherCAT ERROR 0-1: Mailbox error response received - Unknown error reply code 0x0000.
[35409.355688] EtherCAT WARNING 0-1: Invalid mailbox response for eoe0s1.
[35409.375692] EtherCAT WARNING 0-1: Other mailbox protocol response for eoe0s1.
[35409.375948] EtherCAT ERROR 0-1: Reception of CoE download response failed: No response.
[35409.375951] EtherCAT WARNING 0-1: Failed to map PDO entry 0x0000:00 (8 bit) to position 11.
[35409.375953] EtherCAT WARNING 0-1: Currently mapped PDO entries: (none). Entries to map: 0x6041:00/16 0x6061:00/8 0x6064:00/32 0x606C:00/32 0x6077:00/16 0x0000:00/8 0x0000:00/8 0x0000:00/8 0x0000:00/8 0x0000:00/8 0x0000:00/8 0x0000:00/8 0x0000:00/8 0x0000:00/8 0x0000:00/8 0x0000:00/8
[35409.375965] EtherCAT WARNING 0-1: Failed to configure mapping of PDO 0x1A00.
[35409.389044] EtherCAT ERROR 0-1: Failed to set SAFEOP state, slave refused state change (PREOP + ERROR).
[35409.390043] EtherCAT ERROR 0-1: AL status message 0x001E: "Invalid input configuration".
[35409.392045] EtherCAT 0-1: Acknowledged state PREOP.
[35409.403540] EtherCAT 0: Slave states on main device: PREOP, OP.
linuxcnc@linuxcnc:~$ 
 

[code]<?xml version="1.0" ?>
<masters>
  <master idx="0" appTimePeriod="1000000" refClockSyncCycles="1">
    <slave idx="1" type="generic" vid="0800005a" pid="000022db" configPdos="true">
      
      <!-- Distributed Clocks -->
      <dcConf assignActivate="300" sync0Cycle="1000000" sync0Shift="0" />
      
      <!-- SyncManagers -->
      <syncManager idx="2" dir="out">
        <pdo idx="1600">
          <pdoEntry idx="6040" subIdx="0" bitLen="16" halPin="cia-controlword" halType="u32" />
          <pdoEntry idx="6060" subIdx="0" bitLen="8"  halPin="opmode" halType="s32" />
          <pdoEntry idx="607A" subIdx="0" bitLen="32" halPin="target-position" halType="s32" />
          <pdoEntry idx="60FF" subIdx="0" bitLen="32" halPin="target-velocity" halType="s32" />
        </pdo>
      </syncManager>

      <syncManager idx="3" dir="in">
        <pdo idx="1A00">
          <pdoEntry idx="6041" subIdx="0" bitLen="16" halPin="cia-statusword" halType="u32" />
          <pdoEntry idx="6061" subIdx="0" bitLen="8"  halPin="opmode-display" halType="s32" />
          <pdoEntry idx="6064" subIdx="0" bitLen="32" halPin="actual-position" halType="s32" />
          <pdoEntry idx="606C" subIdx="0" bitLen="32" halPin="actual-velocity" halType="s32" />
          <pdoEntry idx="6077" subIdx="0" bitLen="16" halPin="actual-torque" halType="s32" />
        </pdo>
      </syncManager>

    </slave>
  </master>
</masters>

[/code]


[code] 
[/code]
  • conman
  • conman
02 Nov 2025 19:03

Help with Inovance IS620N Servo Drive - Stays in PREOP

Category: EtherCAT

Hello, thank you for that, I added it but still the same result.

<masters>
<master idx="0" appTimePeriod="1000000" refClockSyncCycles="1">
<slave idx="0" type="generic" name="IS620N_ECAT_v2.6.8" vid="0x00100000" pid="0x000C0108" configPdos="true">
<dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="0"/>
<syncManager idx="2" dir="out">
<pdo idx="1701">
<pdoEntry idx="6040" subIdx="00" bitLen="16" halPin="cia-controlword" halType="u32"/>
<pdoEntry idx="6060" subIdx="00" bitLen="8" halPin="OperationMode" halType="s32"/>
<pdoEntry idx="607A" subIdx="00" bitLen="32" halPin="TargetPosition" halType="s32"/>
<pdoEntry idx="60FF" subIdx="00" bitLen="32" halPin="TargetVelocity" halType="s32"/>
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1b01">
<pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="cia-statusword" halType="u32"/>
<pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="ActualPosition" halType="s32"/>
<pdoEntry idx="6061" subIdx="00" bitLen="8" halPin="ActualOperationMode" halType="s32"/>
<pdoEntry idx="606C" subIdx="00" bitLen="32" halPin="ActualVelocity" halType="s32"/>
<pdoEntry idx="6077" subIdx="00" bitLen="32" halPin="ActualTorque" halType="s32"/>
</pdo>
</syncManager>
</slave>
</master>
</masters>
  • Hakan
  • Hakan
29 Oct 2025 10:47

Long initialization of Ethercat on servo drive SV660N

Category: EtherCAT

Or is it that you don't have the "target-velocity" pdo? Just delete it. Same with "actual-velocity" and "actual-torque". Nice to have, not needed.
Minimal
      <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"/>
        </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"/>
        </pdo>
      </syncManager>
Displaying 1 - 15 out of 63 results.
Time to create page: 0.253 seconds
Powered by Kunena Forum