Beckhoff EL2522 lcec xml file
- emresensoy
- Offline
- Senior Member
-
Less
More
- Posts: 44
- Thank you received: 25
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,
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.
- Hakan
- Offline
- Platinum Member
-
Less
More
- Posts: 1082
- Thank you received: 372
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.
- emresensoy
- Offline
- Senior Member
-
Less
More
- Posts: 44
- Thank you received: 25
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.
- Hakan
- Offline
- Platinum Member
-
Less
More
- Posts: 1082
- Thank you received: 372
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
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.
- emresensoy
- Offline
- Senior Member
-
Less
More
- Posts: 44
- Thank you received: 25
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