Beckhoff EL2522 lcec xml file

More
03 Dec 2025 17:44 #339692 by emresensoy
Beckhoff EL2522 lcec xml file was created by emresensoy
There is no builtin driver for EL2522,
I need help to convert ethercat xml output to lcec xml
Thanks,
<EtherCATInfo>
    <!-- Slave 6 -->
    <Vendor>
      <Id>2</Id>
    </Vendor>
    <Descriptions>
      <Devices>
        <Device>
          <Type ProductCode="#x09da3052" RevisionNo="#x00160000">EL2522</Type>
          <Name><![CDATA[EL2522 2K. Pulse Train Ausgang]]></Name>
          <Sm Enable="1" StartAddress="#x1000" ControlByte="#x26" DefaultSize="128" />
          <Sm Enable="1" StartAddress="#x1080" ControlByte="#x22" DefaultSize="128" />
          <Sm Enable="1" StartAddress="#x1100" ControlByte="#x24" DefaultSize="28" />
          <Sm Enable="1" StartAddress="#x1280" ControlByte="#x20" DefaultSize="16" />
          <RxPdo Sm="2" Fixed="1" Mandatory="1">
            <Index>#x1600</Index>
            <Name>PTO RxPDO-Map Control Ch.1</Name>
            <Entry>
              <Index>#x7000</Index>
              <SubIndex>1</SubIndex>
              <BitLen>1</BitLen>
              <Name>Frequency select</Name>
              <DataType>BOOL</DataType>
            </Entry>
            <Entry>
              <Index>#x7000</Index>
              <SubIndex>2</SubIndex>
              <BitLen>1</BitLen>
              <Name>Disable ramp</Name>
              <DataType>BOOL</DataType>
            </Entry>
            <Entry>
              <Index>#x7000</Index>
              <SubIndex>3</SubIndex>
              <BitLen>1</BitLen>
              <Name>Go counter</Name>
              <DataType>BOOL</DataType>
            </Entry>
            <Entry>
              <Index>#x0000</Index>
              <BitLen>13</BitLen>
            </Entry>
            <Entry>
              <Index>#x7000</Index>
              <SubIndex>17</SubIndex>
              <BitLen>16</BitLen>
              <Name>Frequency value</Name>
              <DataType>UINT16</DataType>
            </Entry>
          </RxPdo>
          <RxPdo Sm="2" Fixed="1" Mandatory="1">
            <Index>#x1603</Index>
            <Name>PTO RxPDO-Map Target Ch.1</Name>
            <Entry>
              <Index>#x7000</Index>
              <SubIndex>18</SubIndex>
              <BitLen>32</BitLen>
              <Name>Target counter value</Name>
              <DataType>UINT32</DataType>
            </Entry>
          </RxPdo>
          <RxPdo Sm="2" Fixed="1" Mandatory="1">
            <Index>#x1605</Index>
            <Name>PTO RxPDO-Map Control Ch.2</Name>
            <Entry>
              <Index>#x7010</Index>
              <SubIndex>1</SubIndex>
              <BitLen>1</BitLen>
              <Name>Frequency select</Name>
              <DataType>BOOL</DataType>
            </Entry>
            <Entry>
              <Index>#x7010</Index>
              <SubIndex>2</SubIndex>
              <BitLen>1</BitLen>
              <Name>Disable ramp</Name>
              <DataType>BOOL</DataType>
            </Entry>
            <Entry>
              <Index>#x7010</Index>
              <SubIndex>3</SubIndex>
              <BitLen>1</BitLen>
              <Name>Go counter</Name>
              <DataType>BOOL</DataType>
            </Entry>
            <Entry>
              <Index>#x0000</Index>
              <BitLen>13</BitLen>
            </Entry>
            <Entry>
              <Index>#x7010</Index>
              <SubIndex>17</SubIndex>
              <BitLen>16</BitLen>
              <Name>Frequency value</Name>
              <DataType>UINT16</DataType>
            </Entry>
          </RxPdo>
          <RxPdo Sm="2" Fixed="1" Mandatory="1">
            <Index>#x1608</Index>
            <Name>PTO RxPDO-Map Target Ch.2</Name>
            <Entry>
              <Index>#x7010</Index>
              <SubIndex>18</SubIndex>
              <BitLen>32</BitLen>
              <Name>Target counter value</Name>
              <DataType>UINT32</DataType>
            </Entry>
          </RxPdo>
          <RxPdo Sm="2" Fixed="1" Mandatory="1">
            <Index>#x160b</Index>
            <Name>ENC RxPDO-Map Control Ch.1</Name>
            <Entry>
              <Index>#x0000</Index>
              <BitLen>2</BitLen>
            </Entry>
            <Entry>
              <Index>#x7020</Index>
              <SubIndex>3</SubIndex>
              <BitLen>1</BitLen>
              <Name>Set counter</Name>
              <DataType>BOOL</DataType>
            </Entry>
            <Entry>
              <Index>#x0000</Index>
              <BitLen>12</BitLen>
            </Entry>
            <Entry>
              <Index>#x7020</Index>
              <SubIndex>16</SubIndex>
              <BitLen>1</BitLen>
              <Name>Reserved</Name>
              <DataType>BOOL</DataType>
            </Entry>
            <Entry>
              <Index>#x7020</Index>
              <SubIndex>17</SubIndex>
              <BitLen>32</BitLen>
              <Name>Set counter value</Name>
              <DataType>UINT32</DataType>
            </Entry>
          </RxPdo>
          <RxPdo Sm="2" Fixed="1" Mandatory="1">
            <Index>#x160d</Index>
            <Name>ENC RxPDO-Map Control Ch.2</Name>
            <Entry>
              <Index>#x0000</Index>
              <BitLen>2</BitLen>
            </Entry>
            <Entry>
              <Index>#x7030</Index>
              <SubIndex>3</SubIndex>
              <BitLen>1</BitLen>
              <Name>Set counter</Name>
              <DataType>BOOL</DataType>
            </Entry>
            <Entry>
              <Index>#x0000</Index>
              <BitLen>12</BitLen>
            </Entry>
            <Entry>
              <Index>#x7030</Index>
              <SubIndex>16</SubIndex>
              <BitLen>1</BitLen>
              <Name>Reserved</Name>
              <DataType>BOOL</DataType>
            </Entry>
            <Entry>
              <Index>#x7030</Index>
              <SubIndex>17</SubIndex>
              <BitLen>32</BitLen>
              <Name>Set counter value</Name>
              <DataType>UINT32</DataType>
            </Entry>
          </RxPdo>
          <TxPdo Sm="3" Fixed="1" Mandatory="1">
            <Index>#x1a00</Index>
            <Name>PTO TxPDO-Map Status Ch.1</Name>
            <Entry>
              <Index>#x6000</Index>
              <SubIndex>1</SubIndex>
              <BitLen>1</BitLen>
              <Name>Sel. Ack/End counter</Name>
              <DataType>BOOL</DataType>
            </Entry>
            <Entry>
              <Index>#x6000</Index>
              <SubIndex>2</SubIndex>
              <BitLen>1</BitLen>
              <Name>Ramp active</Name>
              <DataType>BOOL</DataType>
            </Entry>
            <Entry>
              <Index>#x0000</Index>
              <BitLen>4</BitLen>
            </Entry>
            <Entry>
              <Index>#x6000</Index>
              <SubIndex>7</SubIndex>
              <BitLen>1</BitLen>
              <Name>Error</Name>
              <DataType>BOOL</DataType>
            </Entry>
            <Entry>
              <Index>#x0000</Index>
              <BitLen>6</BitLen>
            </Entry>
            <Entry>
              <Index>#x6000</Index>
              <SubIndex>14</SubIndex>
              <BitLen>1</BitLen>
              <Name>Sync error</Name>
              <DataType>BOOL</DataType>
            </Entry>
            <Entry>
              <Index>#x0000</Index>
              <BitLen>1</BitLen>
            </Entry>
            <Entry>
              <Index>#x6000</Index>
              <SubIndex>16</SubIndex>
              <BitLen>1</BitLen>
              <Name>TxPDO Toggle</Name>
              <DataType>BOOL</DataType>
            </Entry>
          </TxPdo>
          <TxPdo Sm="3" Fixed="1" Mandatory="1">
            <Index>#x1a01</Index>
            <Name>PTO TxPDO-Map Status Ch.2</Name>
            <Entry>
              <Index>#x6010</Index>
              <SubIndex>1</SubIndex>
              <BitLen>1</BitLen>
              <Name>Sel. Ack/End counter</Name>
              <DataType>BOOL</DataType>
            </Entry>
            <Entry>
              <Index>#x6010</Index>
              <SubIndex>2</SubIndex>
              <BitLen>1</BitLen>
              <Name>Ramp active</Name>
              <DataType>BOOL</DataType>
            </Entry>
            <Entry>
              <Index>#x0000</Index>
              <BitLen>4</BitLen>
            </Entry>
            <Entry>
              <Index>#x6010</Index>
              <SubIndex>7</SubIndex>
              <BitLen>1</BitLen>
              <Name>Error</Name>
              <DataType>BOOL</DataType>
            </Entry>
            <Entry>
              <Index>#x0000</Index>
              <BitLen>6</BitLen>
            </Entry>
            <Entry>
              <Index>#x6010</Index>
              <SubIndex>14</SubIndex>
              <BitLen>1</BitLen>
              <Name>Sync error</Name>
              <DataType>BOOL</DataType>
            </Entry>
            <Entry>
              <Index>#x0000</Index>
              <BitLen>1</BitLen>
            </Entry>
            <Entry>
              <Index>#x6010</Index>
              <SubIndex>16</SubIndex>
              <BitLen>1</BitLen>
              <Name>TxPDO Toggle</Name>
              <DataType>BOOL</DataType>
            </Entry>
          </TxPdo>
          <TxPdo Sm="3" Fixed="1" Mandatory="1">
            <Index>#x1a03</Index>
            <Name>ENC TxPDO-Map Status Ch.1</Name>
            <Entry>
              <Index>#x0000</Index>
              <BitLen>2</BitLen>
            </Entry>
            <Entry>
              <Index>#x6020</Index>
              <SubIndex>3</SubIndex>
              <BitLen>1</BitLen>
              <Name>Set counter done</Name>
              <DataType>BOOL</DataType>
            </Entry>
            <Entry>
              <Index>#x6020</Index>
              <SubIndex>4</SubIndex>
              <BitLen>1</BitLen>
              <Name>Counter underflow</Name>
              <DataType>BOOL</DataType>
            </Entry>
            <Entry>
              <Index>#x6020</Index>
              <SubIndex>5</SubIndex>
              <BitLen>1</BitLen>
              <Name>Counter overflow</Name>
              <DataType>BOOL</DataType>
            </Entry>
            <Entry>
              <Index>#x0000</Index>
              <BitLen>8</BitLen>
            </Entry>
            <Entry>
              <Index>#x6020</Index>
              <SubIndex>14</SubIndex>
              <BitLen>1</BitLen>
              <Name>Sync error</Name>
              <DataType>BOOL</DataType>
            </Entry>
            <Entry>
              <Index>#x6020</Index>
              <SubIndex>15</SubIndex>
              <BitLen>1</BitLen>
              <Name>TxPDO State</Name>
              <DataType>BOOL</DataType>
            </Entry>
            <Entry>
              <Index>#x6020</Index>
              <SubIndex>16</SubIndex>
              <BitLen>1</BitLen>
              <Name>TxPDO Toggle</Name>
              <DataType>BOOL</DataType>
            </Entry>
            <Entry>
              <Index>#x6020</Index>
              <SubIndex>17</SubIndex>
              <BitLen>32</BitLen>
              <Name>Counter value</Name>
              <DataType>UINT32</DataType>
            </Entry>
          </TxPdo>
          <TxPdo Sm="3" Fixed="1" Mandatory="1">
            <Index>#x1a05</Index>
            <Name>ENC TxPDO-Map Status Ch.2</Name>
            <Entry>
              <Index>#x0000</Index>
              <BitLen>2</BitLen>
            </Entry>
            <Entry>
              <Index>#x6030</Index>
              <SubIndex>3</SubIndex>
              <BitLen>1</BitLen>
              <Name>Set counter done</Name>
              <DataType>BOOL</DataType>
            </Entry>
            <Entry>
              <Index>#x6030</Index>
              <SubIndex>4</SubIndex>
              <BitLen>1</BitLen>
              <Name>Counter underflow</Name>
              <DataType>BOOL</DataType>
            </Entry>
            <Entry>
              <Index>#x6030</Index>
              <SubIndex>5</SubIndex>
              <BitLen>1</BitLen>
              <Name>Counter overflow</Name>
              <DataType>BOOL</DataType>
            </Entry>
            <Entry>
              <Index>#x0000</Index>
              <BitLen>8</BitLen>
            </Entry>
            <Entry>
              <Index>#x6030</Index>
              <SubIndex>14</SubIndex>
              <BitLen>1</BitLen>
              <Name>Sync error</Name>
              <DataType>BOOL</DataType>
            </Entry>
            <Entry>
              <Index>#x6030</Index>
              <SubIndex>15</SubIndex>
              <BitLen>1</BitLen>
              <Name>TxPDO State</Name>
              <DataType>BOOL</DataType>
            </Entry>
            <Entry>
              <Index>#x6030</Index>
              <SubIndex>16</SubIndex>
              <BitLen>1</BitLen>
              <Name>TxPDO Toggle</Name>
              <DataType>BOOL</DataType>
            </Entry>
            <Entry>
              <Index>#x6030</Index>
              <SubIndex>17</SubIndex>
              <BitLen>32</BitLen>
              <Name>Counter value</Name>
              <DataType>UINT32</DataType>
            </Entry>
          </TxPdo>
        </Device>
      </Devices>
    </Descriptions>
  </EtherCATInfo>

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

More
03 Dec 2025 17:51 #339693 by Hakan
Replied by Hakan on topic Beckhoff EL2522 lcec xml file
See if the output of "lcec_configgen" will work. 
The following user(s) said Thank You: emresensoy

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

More
03 Dec 2025 18:08 #339694 by emresensoy
Replied by emresensoy on topic Beckhoff EL2522 lcec xml file
Hakan, thank you very much for your answer. I'm curious about something else. For example, there's a built-in driver for the EL3062. Where is this file or driver stored on the hard drive? How can I view its contents?

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

More
03 Dec 2025 18:27 #339695 by Hakan
Replied by Hakan on topic Beckhoff EL2522 lcec xml file
Should be this file github.com/linuxcnc-ethercat/linuxcnc-et...evices/lcec_el3xxx.c
All drivers are compiled into the lcec component  /usr/lib/linuxcnc/modules/lcec.so

 
The following user(s) said Thank You: emresensoy

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

More
04 Dec 2025 07:02 - 04 Dec 2025 07:55 #339713 by emresensoy
Replied by emresensoy on topic Beckhoff EL2522 lcec xml file
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>
Last edit: 04 Dec 2025 07:55 by emresensoy.

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

Time to create page: 0.066 seconds
Powered by Kunena Forum