Advanced Search

Search Results (Searched for: halpin)

Yesterday 20:00

Marco Reps video on youtube about EtherCAT

Category: EtherCAT

When I configured my xml file I used the halrun to load lcec_conf from the command line without the GUI to check it was all okay.

I don't quite understand what I should do

Can you do "ethercat -v slaves" to grab the model numbers etc just to check they match your XML. After that you will need to catch a more specific error out of the lcec_conf output to narrow down what is wrong.

cnc@cnc:~$ ethercat -v slaves
=== Master 0, Slave 0 ===
Device: Main
State: PREOP
Flag: +
Identity:
  Vendor Id:       0x00004321
  Product code:    0x000010c2
  Revision number: 0x00000001
  Serial number:   0x00000000
DL information:
  FMMU bit operation: no
  Distributed clocks: yes, 64 bit
  DC system time transmission delay: 0 ns
Port  Type  Link  Loop    Signal  NextSlave  RxTime [ns]  Diff [ns]   NextDc [ns]
   0  MII   up    open    yes             -   3389267290           0           0
   1  MII   up    open    yes             1   3389271570        4280         640
   2  N/A   down  closed  no              -            -           -           -
   3  N/A   down  closed  no              -            -           -           -
Mailboxes:
  Bootstrap RX: 0x1000/124, TX: 0x1100/128
  Standard  RX: 0x1000/124, TX: 0x1100/124
  Supported protocols: CoE, FoE
General:
  Group: Servo Drive
  Image name: 
  Order number: EL8-EC400
  Device name: EL8-EC400(COE)
  CoE details:
    Enable SDO: yes
    Enable SDO Info: no
    Enable PDO Assign: yes
    Enable PDO Configuration: yes
    Enable Upload at startup: no
    Enable SDO complete access: no
  Flags:
    Enable SafeOp: no
    Enable notLRW: no
  Current consumption: 0 mA
=== Master 0, Slave 1 ===
Device: Main
State: PREOP
Flag: +
Identity:
  Vendor Id:       0x00004321
  Product code:    0x000010c2
  Revision number: 0x00000001
  Serial number:   0x00000000
DL information:
  FMMU bit operation: no
  Distributed clocks: yes, 64 bit
  DC system time transmission delay: 640 ns
Port  Type  Link  Loop    Signal  NextSlave  RxTime [ns]  Diff [ns]   NextDc [ns]
   0  MII   up    open    yes             0   3385674850           0         640
   1  MII   up    open    yes             2   3385677850        3000         620
   2  N/A   down  closed  no              -            -           -           -
   3  N/A   down  closed  no              -            -           -           -
Mailboxes:
  Bootstrap RX: 0x1000/124, TX: 0x1100/128
  Standard  RX: 0x1000/124, TX: 0x1100/124
  Supported protocols: CoE, FoE
General:
  Group: Servo Drive
  Image name: 
  Order number: EL8-EC400
  Device name: EL8-EC400(COE)
  CoE details:
    Enable SDO: yes
    Enable SDO Info: no
    Enable PDO Assign: yes
    Enable PDO Configuration: yes
    Enable Upload at startup: no
    Enable SDO complete access: no
  Flags:
    Enable SafeOp: no
    Enable notLRW: no
  Current consumption: 0 mA
=== Master 0, Slave 2 ===
Device: Main
State: PREOP
Flag: +
Identity:
  Vendor Id:       0x00004321
  Product code:    0x000010c2
  Revision number: 0x00000001
  Serial number:   0x00000000
DL information:
  FMMU bit operation: no
  Distributed clocks: yes, 64 bit
  DC system time transmission delay: 1260 ns
Port  Type  Link  Loop    Signal  NextSlave  RxTime [ns]  Diff [ns]   NextDc [ns]
   0  MII   up    open    yes             1   3414406970           0         620
   1  MII   up    open    yes             3   3414408730        1760         580
   2  N/A   down  closed  no              -            -           -           -
   3  N/A   down  closed  no              -            -           -           -
Mailboxes:
  Bootstrap RX: 0x1000/124, TX: 0x1100/128
  Standard  RX: 0x1000/124, TX: 0x1100/124
  Supported protocols: CoE, FoE
General:
  Group: Servo Drive
  Image name: 
  Order number: EL8-EC400
  Device name: EL8-EC400(COE)
  CoE details:
    Enable SDO: yes
    Enable SDO Info: no
    Enable PDO Assign: yes
    Enable PDO Configuration: yes
    Enable Upload at startup: no
    Enable SDO complete access: no
  Flags:
    Enable SafeOp: no
    Enable notLRW: no
  Current consumption: 0 mA
=== Master 0, Slave 3 ===
Device: Main
State: PREOP
Flag: +
Identity:
  Vendor Id:       0x00000002
  Product code:    0x044c2c52
  Revision number: 0x00110000
  Serial number:   0x00000000
DL information:
  FMMU bit operation: no
  Distributed clocks: yes, 64 bit
  DC system time transmission delay: 1840 ns
Port  Type  Link  Loop    Signal  NextSlave  RxTime [ns]  Diff [ns]   NextDc [ns]
   0  MII   up    open    yes             2   3342102522           0         580
   1  EBUS  up    open    yes             4   3342103122         600         145
   2  MII   down  closed  no              -            -           -           -
   3  N/A   down  closed  no              -            -           -           -
General:
  Group: SystemBk
  Image name: 
  Order number: EK1100
  Device name: EK1100 EtherCAT-Koppler (2A E-Bus)
  Flags:
    Enable SafeOp: no
    Enable notLRW: no
  Current consumption: -2000 mA
=== Master 0, Slave 4 ===
Device: Main
State: PREOP
Flag: +
Identity:
  Vendor Id:       0x00000002
  Product code:    0x03f03052
  Revision number: 0x00100000
  Serial number:   0x00000000
DL information:
  FMMU bit operation: no
  Distributed clocks: yes, 64 bit
  DC system time transmission delay: 1985 ns
Port  Type  Link  Loop    Signal  NextSlave  RxTime [ns]  Diff [ns]   NextDc [ns]
   0  EBUS  up    open    yes             3   3343222302           0         145
   1  EBUS  up    open    yes             5   3343222612         310         155
   2  N/A   down  closed  no              -            -           -           -
   3  N/C   down  closed  no              -            -           -           -
General:
  Group: DigIn
  Image name: TERM_DI
  Order number: EL1008
  Device name: EL1008 8K. Dig. Eingang 24V, 3ms
  Flags:
    Enable SafeOp: no
    Enable notLRW: no
  Current consumption: 90 mA
=== Master 0, Slave 5 ===
Device: Main
State: PREOP
Flag: +
Identity:
  Vendor Id:       0x00000002
  Product code:    0x07d83052
  Revision number: 0x00100000
  Serial number:   0x00000000
DL information:
  FMMU bit operation: no
  Distributed clocks: yes, 64 bit
  DC system time transmission delay: 2140 ns
Port  Type  Link  Loop    Signal  NextSlave  RxTime [ns]  Diff [ns]   NextDc [ns]
   0  EBUS  up    open    yes             4   3342558942           0         155
   1  EBUS  down  closed  no              -            -           -           -
   2  N/A   down  closed  no              -            -           -           -
   3  N/C   down  closed  no              -            -           -           -
General:
  Group: DigOut
  Image name: 
  Order number: EL2008
  Device name: EL2008 8K. Dig. Ausgang 24V, 0.5A
  Flags:
    Enable SafeOp: no
    Enable notLRW: no
  Current consumption: 110 mA
cnc@cnc:~$ 
 

File Attachment:

File Name: ethercat-vslaves.txt
File Size:6 KB

HI
I think in the .xml file slave idx should start from 0

Hello

Yes, it confused me too, I redid it, but it didn't change anything
<masters>
  <master idx="0" appTimePeriod="1000000" refClockSyncCycles="5">


    <!-- Z axis EL8 Servo Drive -->
    <slave idx="0" type="generic" vid="00004321" pid="000010c2" 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="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"/>
          <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>

    <!-- Y axis EL8 Servo Drive -->
    <slave idx="1" type="generic" vid="00004321" pid="000010c2" 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="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"/>
          <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>

    <!-- X axis EL8 Servo Drive -->
    <slave idx="2" type="generic" vid="00004321" pid="000010c2" 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="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"/>
          <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>

    <slave idx="3" type="EK1100"/>
    <slave idx="4" type="EL1008"/>
    <slave idx="5" type="EL2008"/>

  </master>
</masters>


 

 

File Attachment:

File Name: linuxcnc_l...8-28.zip
File Size:21 KB


 

File Attachment:

File Name: ethercat-conf.xml
File Size:4 KB

 
23 Aug 2024 15:12

SCATECH EV1616DN - Example config

Category: EtherCAT

Hopefully this will assist someone.

I have tested the SCATECH 16 in 16 out EtherCAT board. Below is my config.
    <slave idx="3" type="generic" vid="00000d37" pid="000f0001" configPdos="false" name="EV1616DN-V2.2">
     <dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="0"/>
     <syncManager idx="2" dir="out">
        <pdo idx="1601">
         <pdoEntry idx="7010" subIdx="01" bitLen="1" halPin="out1" halType="bit"/>
         <pdoEntry idx="7010" subIdx="02" bitLen="1" halPin="out2" halType="bit"/>
         <pdoEntry idx="7010" subIdx="03" bitLen="1" halPin="out3" halType="bit"/>
         <pdoEntry idx="7010" subIdx="04" bitLen="1" halPin="out4" halType="bit"/>
         <pdoEntry idx="7010" subIdx="05" bitLen="1" halPin="out5" halType="bit"/>
         <pdoEntry idx="7010" subIdx="06" bitLen="1" halPin="out6" halType="bit"/>
         <pdoEntry idx="7010" subIdx="07" bitLen="1" halPin="out7" halType="bit"/>
         <pdoEntry idx="7010" subIdx="08" bitLen="1" halPin="out8" halType="bit"/>
         <pdoEntry idx="7010" subIdx="09" bitLen="1" halPin="out9" halType="bit"/>
         <pdoEntry idx="7010" subIdx="0a" bitLen="1" halPin="out10" halType="bit"/>
         <pdoEntry idx="7010" subIdx="0b" bitLen="1" halPin="out11" halType="bit"/>
         <pdoEntry idx="7010" subIdx="0c" bitLen="1" halPin="out12" halType="bit"/>
         <pdoEntry idx="7010" subIdx="0d" bitLen="1" halPin="out13" halType="bit"/>
         <pdoEntry idx="7010" subIdx="0e" bitLen="1" halPin="out14" halType="bit"/>
         <pdoEntry idx="7010" subIdx="0f" bitLen="1" halPin="out15" halType="bit"/>
         <pdoEntry idx="7010" subIdx="10" bitLen="1" halPin="out16" halType="bit"/>
        </pdo>
     </syncManager>
     <syncManager idx="3" dir="in">
        <pdo idx="1a00">
         <pdoEntry idx="6000" subIdx="01" bitLen="1" halPin="e-stop" halType="bit"/>
         <pdoEntry idx="6000" subIdx="02" bitLen="1" halPin="carousel-unlocked" halType="bit"/>
         <pdoEntry idx="6000" subIdx="03" bitLen="1" halPin="carousel-locked" halType="bit"/>
         <pdoEntry idx="6000" subIdx="04" bitLen="1" halPin="input4" halType="bit"/>
         <pdoEntry idx="6000" subIdx="05" bitLen="1" halPin="input5" halType="bit"/>
         <pdoEntry idx="6000" subIdx="06" bitLen="1" halPin="input6" halType="bit"/>
         <pdoEntry idx="6000" subIdx="07" bitLen="1" halPin="input7" halType="bit"/>
         <pdoEntry idx="6000" subIdx="08" bitLen="1" halPin="input8" halType="bit"/>
         <pdoEntry idx="6000" subIdx="09" bitLen="1" halPin="input9" halType="bit"/>
         <pdoEntry idx="6000" subIdx="10" bitLen="1" halPin="input10" halType="bit"/>
         <pdoEntry idx="6000" subIdx="11" bitLen="1" halPin="input11" halType="bit"/>
         <pdoEntry idx="6000" subIdx="12" bitLen="1" halPin="input12" halType="bit"/>
         <pdoEntry idx="6000" subIdx="13" bitLen="1" halPin="input13" halType="bit"/>
         <pdoEntry idx="6000" subIdx="14" bitLen="1" halPin="input14" halType="bit"/>
         <pdoEntry idx="6000" subIdx="15" bitLen="1" halPin="input15" halType="bit"/>
         <pdoEntry idx="6000" subIdx="16" bitLen="1" halPin="input16" halType="bit"/>
        </pdo>
     </syncManager>
    </slave>
 
22 Aug 2024 20:50 - 22 Aug 2024 20:54

Problems with Lichuan Ethercat servo drive

Category: EtherCAT

Has anyone managed to get DO to work?
I added the following lines inside <pdo idx="1600">, but to no avail.
<pdoEntry idx="60FE" subIdx="01" bitLen="32" halType="complex">
    <complexEntry bitLen="16"/>
    <complexEntry bitLen="1" halPin="do-0" halType="bit"/>
    <complexEntry bitLen="1" halPin="do-1" halType="bit"/>
    <complexEntry bitLen="1" halPin="do-2" halType="bit"/>
</pdoEntry>
18 Aug 2024 19:30

LCEC creating Danfoss VFD config

Category: EtherCAT

 
Hey folks,

i'm trying to retrofit an old Maho400E in the near future with a Beckhoff EM7004 in combination with a costum adaptor-board for the 3 axis and wanted to prepare the electronics as far as possible. In addition to that i also want to implement a Danfoss VFD FC302 with its EtherCAT optioncard MCA124. I started to read out all the PDO mappings and so on, like in many other forum posts described, but now i don't know how to proceed with the Flag E and the dmesg output, that the VFD would not support distributed clocks. You can find all configs and readouts of the VFD on my Github . The most important stuff is also attached here.

Thank you guys for your help

Best regards
Patrick

EtherCAT network (ethercat slaves output while machine is running)
0  0:0  PREOP  E  FC-302
1  0:1  OP     +  EK1100 EtherCAT-Koppler (2A E-Bus)
2  0:2  OP     +  EM7004 4-Achs Interface

dmesg output of EtherCAT related messages
[    5.972506] EtherCAT: Master driver 1.6.0 1.6.0.gcafd367-1+1.1
[    5.972663] EtherCAT: 1 master waiting for devices.
[    5.993635] ec_generic: EtherCAT master generic Ethernet device module 1.6.0 1.6.0.gcafd367-1+1.1
[    5.993664] EtherCAT: Accepting F8:75:A4:86:9A:F4 as main device for master 0.
[    6.025021] EtherCAT 0: Starting EtherCAT-IDLE thread.
[    8.676976] EtherCAT 0: Link state of ecm0 changed to UP.
[    8.961049] EtherCAT 0: 3 slave(s) responding on main device.
[    8.961055] EtherCAT 0: Slave states on main device: PREOP.
[    8.961492] EtherCAT 0: Scanning bus.
[    9.035903] EtherCAT WARNING 0-0: Received mailbox protocol 0x02 as response.
[    9.035906] EtherCAT ERROR 0-0: Failed to read number of assigned PDOs for SM2.
[    9.044901] EtherCAT ERROR 0-0: Received upload response for wrong SDO (0x1C12:00, requested: 0x1C13:00).
[    9.044904] EtherCAT DEBUG: 00 30 4F 12 1C 00 01 00 00 00
[    9.585876] EtherCAT 0: Bus scanning completed in 624 ms.
[    9.585880] EtherCAT 0: Using slave 1 as DC reference clock.
[    9.585883] EtherCAT 0: Starting EoE thread.
[    9.626324] EtherCAT ERROR 0-0: Failed to set SAFEOP state, slave refused state change (PREOP + ERROR).
[    9.626621] EtherCAT ERROR 0-0: AL status message 0x001E: "Invalid input configuration".
[    9.636234] EtherCAT 0-0: Acknowledged state PREOP.
[   24.746151] EtherCAT: Requesting master 0...
[   24.746156] EtherCAT: Successfully requested master 0.
[   24.748381] EtherCAT 0: Domain0: Logical address 0x00000000, 64 byte, expected working counter 6.
[   24.748385] EtherCAT 0:   Datagram domain0-0-main: Logical offset 0x00000000, 64 byte, type LRW.
[   24.748399] EtherCAT 0: Master thread exited.
[   24.748402] EtherCAT 0: Stopping EoE thread.
[   24.748416] EtherCAT 0: EoE thread exited.
[   24.748417] EtherCAT 0: Starting EoE thread.
[   24.748455] EtherCAT 0: Starting EtherCAT-OP thread.
[   24.748492] EtherCAT WARNING 0: 33 datagrams TIMED OUT!
[   24.773374] EtherCAT ERROR 0-0: Mailbox error response received - Unknown error reply code 0x0000.
[   24.773380] EtherCAT WARNING 0-0: Invalid mailbox response for eoe0s0.
[   36.885422] EtherCAT WARNING 0-0: Slave seems not to support distributed clocks!
[   36.887420] EtherCAT ERROR 0-0: Failed to set DC cycle times: No response.
[   36.940945] EtherCAT 0: Slave states on main device: PREOP, OP.

ethercat-conf.xml file:
<masters>
        <master idx="0" appTimePeriod="1000000" refClockSyncCycles="5" name="m0">
                <!-- Danfoss FC302 in CiA402/DSP402 mode -> needs CiA402 mode vl -->
                <slave idx="0" type="generic" vid="0200008d" pid="00000064" configPdos="true" name="2001_FC302">
                        <dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="0"/>
                        <syncManager idx="2" dir="out">
                                <pdo idx="1616">
                                        <pdoEntry idx="6040" subIdx="00" bitLen="16" halPin="ControlWord" halType="u32"/>
                                        <pdoEntry idx="6042" subIdx="00" bitLen="16" halPin="TargetVelocity" halType="s32"/>
                                </pdo>
                        </syncManager>
                        <syncManager idx="3" dir="in">
                                <pdo idx="1a16">
                                        <pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="StatusWord" halType="u32"/>
                                        <pdoEntry idx="6044" subIdx="00" bitLen="16" halPin="ActualVelocity" halType="s32"/>
                                        <!-- <pdoEntry idx="6061" subIdx="00" bitLen="8" halPin="ModeOfOperationDisplay" halType="u32"/>-->
                                </pdo>
                        </syncManager>
                </slave>
                <!-- Beckhoff IO modules -->
                <slave idx="1" type="EK1100" name="0501_EK1101"/>
                <slave idx="2" type="EM7004" name="0501_EM7004"/>
        </master>
</masters>
 
02 Aug 2024 19:32

Exotic data types in .xml config

Category: EtherCAT

what is really not clear to mo how exactly type definition of these ending stuff ... I think it should be like this or ?
<syncManager idx="3" dir="in">
                    <pdo idx="1A00">
                        <pdoEntry idx="6000" subIdx="01" bitLen="64" halType="complex" />
                            <complexEntry bitLen="16" halPin="statusWord" halType="u32"/>
                            <complexEntry bitLen="16" halPin="actualSpeed" halType="s32"/>
                            <complexEntry bitLen="16" halPin="actualCurrent" halType="u32"/>
                            <complexEntry bitLen="16" halPin="motorTourqe" halType="s32"/>
                        </pdoEntry>
                        <pdoEntry idx="6000" subIdx="02" bitLen="64" halType="complex"/>
                            <complexEntry bitLen="16" halPin="analogIn1" halType="u32"/>
                            <complexEntry bitLen="16" halPin="analogIn2" halType="s32"/>
                            <complexEntry bitLen="16" halPin="DIOstatus" halType="u32"/>
                            <complexEntry bitLen="16" halPin="actualTemp" halType="u32"/>
                        </pdoEntry>
                    </pdo>
                    <pdo idx="1A80">
                        <pdoEntry idx="A000" subIdx="01" bitLen="08" halPin="slaveNodeState" halType="u32"/>
                        <pdoEntry idx="F100" subIdx="01" bitLen="08" halPin="canMasterError" halType="u32"/>
                        <pdoEntry idx="F100" subIdx="03" bitLen="16" halPin="canMasterState" halType="u32"/>
                        <pdoEntry idx="F100" subIdx="05" bitLen="08" halPin="canMasterRxErrorCounter" halType="u32"/>
                        <pdoEntry idx="F100" subIdx="04" bitLen="08" halPin="canMasterTxErrorCounter" halType="u32"/>
                        <pdoEntry idx="F100" subIdx="02" bitLen="01" halPin="canMasterDiagFlag" halType="bit"/>
                        <pdoEntry idx="A000" subIdx="02" bitLen="07" halType="complex" />
                            <complexEntry bitLen="01" halPin="slaveDiagFlag" halType="bit"/>
                            <complexEntry bitLen="06"/>
                        </pdoEntry>
                    </pdo>                    
21 Jul 2024 06:26

Problems with Lichuan Ethercat servo drive

Category: EtherCAT

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>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
11 Jul 2024 09:49 - 11 Jul 2024 10:10

Problems with Lichuan Ethercat servo drive

Category: EtherCAT

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>
10 Jul 2024 02:05

EtherCat - CATIO module Help

Category: EtherCAT

<masters>
<master idx="0" appTimePeriod="1000000" refClockSyncCycles="-1">
<slave idx="0" type="generic" vid="00090588" pid="00109252" configPdos="true">
<dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="0" />
<syncManager idx="2" dir="out">
<pdo idx="1600">
<pdoEntry idx="2300" subIdx="00" bitLen="16" halType="complex">
<complexEntry bitLen="1" halPin="out-00" halType="bit" />
<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" />
</pdoEntry>
<!--模拟量转电压关系为 DA=V*4096/10 DA为模拟量数值 V为电压-->
<pdoEntry idx="2310" subIdx="00" bitLen="16" halPin="Analog-Output-0" halType="u32" /> <!-- 第一路模拟量输出-->
<pdoEntry idx="2311" subIdx="01" bitLen="16" halPin="Analog-Output-1" halType="u32" /> <!-- 第二路模拟量输出-->
<!--PWM输出频率要乘65536 例如要输出10HZ 设定为10×65536=655360-->
<pdoEntry idx="2320" subIdx="00" bitLen="32" halPin="PWM-OUT-0" halType="u32" />        <!-- 第一路PWM输出-->
<pdoEntry idx="2321" subIdx="01" bitLen="32" halPin="PWM-OUT-1" halType="u32" />        <!-- 第二路PWM输出-->
<!--占空比范围0-1 例如要输出占空比50% 设定为0.5×65536=32768-->
<pdoEntry idx="2330" subIdx="00" bitLen="16" halPin="占空比-OUT-0" halType="u32" />      <!-- 第一路占空比输出-->
<pdoEntry idx="2331" subIdx="01" bitLen="16" halPin="占空比-OUT-1" halType="u32" />      <!-- 第二路占空比输出-->
                    <pdoEntry idx="2400" subIdx="00" bitLen="16" halPin="清零" halType="u32" />               <!-- 没搞定-->
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1a00">
<pdoEntry idx="2000" subIdx="00" bitLen="16" halType="complex">
<complexEntry bitLen="1" halPin="in-00" halType="bit" />
<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" />
</pdoEntry>
<!--电压转模拟量关系为 V=AD*10/4096 AD为模拟量数值 V为电压-->
<pdoEntry idx="2010" subIdx="00" bitLen="16" halPin="Analog-Input-1" halType="u32" />  <!-- 第一路模拟量输入-->
<pdoEntry idx="2011" subIdx="01" bitLen="16" halPin="Analog-Input-2" halType="u32" />  <!-- 第二路模拟量输入-->
<!--编码器-->
<pdoEntry idx="2020" subIdx="00" bitLen="32" halPin="Encoder-Input" halType="s32" />   <!-- 编码器输入-->
<!--计数器-->
<pdoEntry idx="2030" subIdx="00" bitLen="32" halPin="计数器输入-0" halType="u32" />       <!-- 第一路模计数器输入-->
<pdoEntry idx="2031" subIdx="01" bitLen="32" halPin="计数器输入-1" halType="u32" />       <!-- 第二路模计数器输入-->
<!--设置PWM 计数器极性和计数器方向-->
<pdoEntry idx="2401" subIdx="00" bitLen="16" halPin="计数器方向" halType="u32" />         <!-- 没搞定-->
</pdo>
</syncManager>
</slave>
</master>
</masters>
19 Jun 2024 03:41 - 19 Jun 2024 03:49

EtherCat - CATIO module Help

Category: EtherCAT

Hi There,

I have been trying to setup a "CAT-IO" ethercat IO board, it's not unlike the DIEWU DIO board RodW made a config for.
Using the rpi-4-debian-bookworm-6.1.54-rt15-arm64-ext4-2023-11-17-1731 image, worked well.
Ethercat is up and running, ethecat-conf.xml seems to be accepted, I have only set up the outputs so far as I'm trying to do it piecemeal to reduce complexity.

Issue is, while I can see the pins in halshow, and I can set them - the outputs don't actually turn on at the IO device.

dmesg shows:
[18011.371947] EtherCAT: Requesting master 0...
[18011.371968] EtherCAT: Successfully requested master 0.
[18011.372513] EtherCAT 0: Domain0: Logical address 0x00000000, 42 byte, expected working counter 1.
[18011.372518] EtherCAT 0:   Datagram domain0-0-main: Logical offset 0x00000000, 42 byte, type LWR.
[18011.372664] EtherCAT 0: Master thread exited.
[18011.372673] EtherCAT 0: Starting EtherCAT-OP thread.

I also don't see it going OP in $ethercat slaves, is it supposed to show OP here after linuxcnc is started and dmseg shows 'Starting EtherCAT-OP thread' as above?

cnc@CNC:~$ ethercat slaves 
0  0:0  PREOP  +  IMC IO MODEL with EtherCAT

Here is The ethercat-conf.xml  - sadly I cannot find anywhere any documentation on the spec for this document, so some is a guess, parts I'm unsure about are in bold.

<!-- 
 Slave0 EtherCat IO Card "CAT-IO"
 www.aliexpress.us/item/3256805154534518....pt=glo2usa4itemAdapt
-->
<masters>
  <master idx="0" appTimePeriod="1000000" refClockSyncCycles="1">
    <slave idx="0" type="generic" vid="0x00090588" pid="0x00109252" configPdos="true">
    <dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="0"/>    
     <syncManager idx="3" dir="out">
        <pdo idx="1600">            
            <!-- Digtial Outputs -->
          <pdoEntry idx="2300" 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>  
    </slave>    
  </master>
</masters>  

Im just testing it in a simple my-mill sim setup, that I have added the lcec lines to:
Top of my-mill.hal file:
# If you make changes to this file, they will be
# overwritten when you run stepconf again
loadrt [KINS]KINEMATICS
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
loadusr -W lcec_conf ethercat-conf.xml
loadrt lcec
loadrt sim_parport names=parport.0
setp parport.0.reset-time 5000
loadrt stepgen step_type=0,0,0
loadrt pwmgen output_type=1


[code]I'm sorry to ask whats likely a simple question - I have tried for a few days and read everything I can before coming here to get help!
Can anyone pick the issue with my setup?
 
[/code]
17 Jun 2024 16:06 - 17 Jun 2024 16:47

Help Needed: Cracking the Code on LinuxCNC Servo Homing Setup!

Category: EtherCAT

Oops, after all of that I realize that I used underscore instead of hyphen in the homing pin names.
My appologies I'll have to fix that, or your hal entries wont work.

[edit]

Ok, I fixed the halpin names in the component posted above and also the screen shots. So make sure to download the fixed component and install it again.
04 Jun 2024 18:07

Problems with Lichuan Ethercat servo drive

Category: EtherCAT

That is great that you have fostered a contact at Lichuan.

<pdoEntry idx="60FD" subIdx="00" bitLen="32" halPin="mydigitalin" halType="u32"/>
only returns the DIN values if the input is assigned to some function. Please ask if there is some null function that I can spoof the drive with, so it will return the present value of all the inputs even if the input is not assigned a real function. I am actually just going to add a parallel port card or use the arduino usb link project for IO so even this doesn't really matter.

What I am trying to accomplish for gantry homing is to use the home marker inputs and the index pulses from paired drives to home my gantry. What I want to do is to drive the gantry in the home direction until one home marker is triggered, then drive the gantry in the opposite direction, while capturing the Index pulses until the other drive is off it's home marker. I can then use one of the marker values as the home position, and the difference (modulus cnt ppr) of the two counters and an offset to zero the geared axis. Then all will be good. If anyone is a homing expert, any help is appreciated.

I do have one criticism, and that is that the drives do not have Safe Disable Inputs(dual). Yes you can program an input to stop the drive, and that does work, but it won't pass any Canadian safety inspection. With these drives you need 2 external relays in serial, with monitoring etc... to cut power to the drive.  I will have to have a please stop button, and an EStop button.
03 Jun 2024 21:02

LinuxCNC Beckhoff EK1100 EL2004 EL1014 Failed to register PDO entry

Category: EtherCAT

That thread I linked has an example of a manually configured PDO entry for the older unit.  Replace the EL2004 line in your XML with:
<slave idx="1" type="generic" vid="00000002" pid="07D43052" name="el2004_dout">
<syncManager idx="0" dir="out">
<pdo idx="1600">
<pdoEntry idx="3001" subIdx="01" bitLen="1" halPin="dout-0" halType="bit"/>
</pdo>
<pdo idx="1601">
<pdoEntry idx="3001" subIdx="02" bitLen="1" halPin="dout-1" halType="bit"/>
</pdo>
<pdo idx="1602">
<pdoEntry idx="3001" subIdx="03" bitLen="1" halPin="dout-2" halType="bit"/>
</pdo>
<pdo idx="1603">
<pdoEntry idx="3001" subIdx="04" bitLen="1" halPin="dout-3" halType="bit"/>
</pdo>
</syncManager>
</slave>

Try your setup with just the EK1100 and EL2004, take the other module off for now.  I think the EL1014 is probably also old and may need a similar manual configuration.  It's easier to get one working at a time.


 
29 May 2024 19:31

Problems with Lichuan Ethercat servo drive

Category: EtherCAT

I can read he first 3 DINs with
<pdoEntry idx="60FD" subIdx="00" bitLen="32" halPin="mydigitalin" halType="u32"/>
DIN 3 and 4 still do nothing.
Has anyone got the DINs 3/4 working?
24 May 2024 07:18

Help,Leadshine DM556 open-loop stepper config

Category: EtherCAT

in the terminal ,while I used "ethercat sl" command ,it did show up connected to DM3E-556 but while

Connected in "OP" mode or "SAFEOP"?
LCNC starts?
if it starts in halpin lcec.0. your device with connection pins, are they visible?
20 Apr 2024 18:53

Adding digital inpouts to Rtelligent ECT60 cia402

Category: EtherCAT

I haven't tested the digital ins or outs enough yet, but there's actually an ECT60 driver in the latest version of the linuxcnc-ethercat package.

You can *probably* just use this in your XML:
<slave idx="1" type="ECT60" name="D1"/>

One thing with the RTelligent EtherCAT stepper drives is that their inputs and outputs *mostly* have pre-defined uses, and you'll probably need to disable that to use them directly with LinuxCNC.

You can probably get a useful config example by just running `lcec_configgen` after updating to v1.29 or higher. It'll just print out a sample config and won't overwrite anything. Here's what I see for my ECT60 when I do that:
    <slave idx="7" type="ECT60" name="D29">
      <!-- Enable support for Cyclic Synchronous Position mode. -->
      <modParam name="enableCSP" value="true"/>

      <!-- Enable support for Cyclic Synchronous Velocity mode. -->
      <modParam name="enableCSV" value="false"/>

      <!-- Maximum stepper Amps. -->
      <modParam name="peakCurrent_amps" value="6.0"/>

      <!-- Operation mode: openloop, closedloop, or foc. -->
      <modParam name="controlMode" value="closedloop"/>

      <!-- Number of encoder steps per revolution. -->
      <modParam name="encoderResolution" value="4000"/>

      <!-- Output 1 use: general, alarm, brake, in-place. -->
      <modParam name="output1Func" value="alarm"/>

      <!-- Output 2 use: general, alarm, brake, in-place. -->
      <modParam name="output2Func" value="brake"/>

      <!-- Input 3 use: general, cw-limit, ccw-limit, home, clear-fault, emergency-stop, motor-offline, probe1, probe2 -->
      <modParam name="input3Func" value="cw-limit"/>

      <!-- Input 4 use: general, cw-limit, ccw-limit, home, clear-fault, emergency-stop, motor-offline, probe1, probe2 -->
      <modParam name="input4Func" value="ccw-limit"/>

      <!-- Input 5 use: general, cw-limit, ccw-limit, home, clear-fault, emergency-stop, motor-offline, probe1, probe2 -->
      <modParam name="input5Func" value="home"/>

      <!-- Input 6 use: general, cw-limit, ccw-limit, home, clear-fault, emergency-stop, motor-offline, probe1, probe2 -->
      <modParam name="input6Func" value="motor-offline"/>

    </slave>

Let me know if you run into any problems, this is still under active development.

Alternately, if you want the `generic` config to work, you'll need (at a minimum) to wrap the individual inputs in a complex block if you want to break out individual bits of a single PDO entry into their own HAL pins. See some of the examples in the source tree (which, admittedly, need a lot of attention). Something like this example:
      <syncManager idx="2" dir="out">
        <pdo idx="0018">
          <pdoEntry idx="0086" subIdx="00" bitLen="16" halType="complex">
            <complexEntry bitLen="6"/>
            <complexEntry bitLen="1" halPin="srv0-ctrl.realtime-0" halType="bit"/>
            <complexEntry bitLen="1" halPin="srv0-ctrl.realtime-1" halType="bit"/>
            <complexEntry bitLen="2" halPin="srv0-ctrl.opmode-low" halType="u32"/>
            <complexEntry bitLen="1" halPin="srv0-ctrl.sync" halType="u32"/>
            <complexEntry bitLen="1" halPin="srv0-ctrl.opmode-high" halType="bit"/>
            <complexEntry bitLen="1"/>
            <complexEntry bitLen="1" halPin="srv0-ctrl.restart" halType="bit"/>
            <complexEntry bitLen="1" halPin="srv0-ctrl.enable" halType="bit"/>
            <complexEntry bitLen="1" halPin="srv0-ctrl.drv-on" halType="bit"/>
          </pdoEntry>
          <pdoEntry idx="0018" subIdx="00" bitLen="32" halPin="srv0-vel-cmd" halType="s32"/>
        </pdo>
Displaying 1 - 15 out of 45 results.
Time to create page: 0.215 seconds
Powered by Kunena Forum