- Configuring LinuxCNC
- Advanced Configuration
- EtherCAT
- Analog output module EL4102 not working anymore...
Analog output module EL4102 not working anymore...
03 Mar 2024 21:27 #295089
by jc2ktr
Analog output module EL4102 not working anymore... was created by jc2ktr
I have the problem that my EL4102 Terminal (2-channel analog output, voltage, 0…10 V, 16 bit) is not working anymore if i add it in my ethercat.conf without using a generic driver. Even when there is a included driver for EL4xxx Terminals.
When i start it with the included driver it, linuxcnc closes with an error. But this is was no problem before i updated linuxcnc-ethercat.
The generic driver i wrote is not functioning correct, can someone give me a hint how i can fix it?
I need this terminal, it controls the speed of my milling spindle.
dmesg outputs following :
the ethercat cstruct is as followed:
When i start it with the included driver it, linuxcnc closes with an error. But this is was no problem before i updated linuxcnc-ethercat.
The generic driver i wrote is not functioning correct, can someone give me a hint how i can fix it?
I need this terminal, it controls the speed of my milling spindle.
dmesg outputs following :
Warning: Spoiler!
[ 755.503737] EtherCAT: Requesting master 0...
[ 755.503741] EtherCAT: Successfully requested master 0.
[ 755.505878] EtherCAT ERROR 0 0:10: PDO entry 0x7000:01 is not mapped.
[ 755.505915] EtherCAT 0: Releasing master...
[ 755.505929] EtherCAT 0: Released.
[ 755.503741] EtherCAT: Successfully requested master 0.
[ 755.505878] EtherCAT ERROR 0 0:10: PDO entry 0x7000:01 is not mapped.
[ 755.505915] EtherCAT 0: Releasing master...
[ 755.505929] EtherCAT 0: Released.
the ethercat cstruct is as followed:
Warning: Spoiler!
/* Master 0, Slave 0
* Vendor ID: 0x00000024
* Product code: 0x00242804
* Revision number: 0x00000003
*/
ec_sync_info_t slave_0_syncs[] = {
{0, EC_DIR_OUTPUT, 0, NULL, EC_WD_DISABLE},
{1, EC_DIR_INPUT, 0, NULL, EC_WD_DISABLE},
{2, EC_DIR_OUTPUT, 0, NULL, EC_WD_ENABLE},
{3, EC_DIR_INPUT, 0, NULL, EC_WD_ENABLE},
{0xff}
};
/* Master 0, Slave 1
* Vendor ID: 0x00000024
* Product code: 0x00242804
* Revision number: 0x00000003
*/
ec_sync_info_t slave_1_syncs[] = {
{0, EC_DIR_OUTPUT, 0, NULL, EC_WD_DISABLE},
{1, EC_DIR_INPUT, 0, NULL, EC_WD_DISABLE},
{2, EC_DIR_OUTPUT, 0, NULL, EC_WD_ENABLE},
{3, EC_DIR_INPUT, 0, NULL, EC_WD_ENABLE},
{0xff}
};
/* Master 0, Slave 2
* Vendor ID: 0x00000024
* Product code: 0x00242804
* Revision number: 0x00000003
*/
ec_sync_info_t slave_2_syncs[] = {
{0, EC_DIR_OUTPUT, 0, NULL, EC_WD_DISABLE},
{1, EC_DIR_INPUT, 0, NULL, EC_WD_DISABLE},
{2, EC_DIR_OUTPUT, 0, NULL, EC_WD_ENABLE},
{3, EC_DIR_INPUT, 0, NULL, EC_WD_ENABLE},
{0xff}
};
/* Master 0, Slave 4, "EL1018"
* Vendor ID: 0x00000002
* Product code: 0x03fa3052
* Revision number: 0x00100000
*/
ec_pdo_entry_info_t slave_4_pdo_entries[] = {
{0x6000, 0x01, 1}, /* Input */
{0x6010, 0x01, 1}, /* Input */
{0x6020, 0x01, 1}, /* Input */
{0x6030, 0x01, 1}, /* Input */
{0x6040, 0x01, 1}, /* Input */
{0x6050, 0x01, 1}, /* Input */
{0x6060, 0x01, 1}, /* Input */
{0x6070, 0x01, 1}, /* Input */
};
ec_pdo_info_t slave_4_pdos[] = {
{0x1a00, 1, slave_4_pdo_entries + 0}, /* Channel 1 */
{0x1a01, 1, slave_4_pdo_entries + 1}, /* Channel 2 */
{0x1a02, 1, slave_4_pdo_entries + 2}, /* Channel 3 */
{0x1a03, 1, slave_4_pdo_entries + 3}, /* Channel 4 */
{0x1a04, 1, slave_4_pdo_entries + 4}, /* Channel 5 */
{0x1a05, 1, slave_4_pdo_entries + 5}, /* Channel 6 */
{0x1a06, 1, slave_4_pdo_entries + 6}, /* Channel 7 */
{0x1a07, 1, slave_4_pdo_entries + 7}, /* Channel 8 */
};
ec_sync_info_t slave_4_syncs[] = {
{0, EC_DIR_INPUT, 8, slave_4_pdos + 0, EC_WD_DISABLE},
{0xff}
};
/* Master 0, Slave 5, "EL1018"
* Vendor ID: 0x00000002
* Product code: 0x03fa3052
* Revision number: 0x00100000
*/
ec_pdo_entry_info_t slave_5_pdo_entries[] = {
{0x6000, 0x01, 1}, /* Input */
{0x6010, 0x01, 1}, /* Input */
{0x6020, 0x01, 1}, /* Input */
{0x6030, 0x01, 1}, /* Input */
{0x6040, 0x01, 1}, /* Input */
{0x6050, 0x01, 1}, /* Input */
{0x6060, 0x01, 1}, /* Input */
{0x6070, 0x01, 1}, /* Input */
};
ec_pdo_info_t slave_5_pdos[] = {
{0x1a00, 1, slave_5_pdo_entries + 0}, /* Channel 1 */
{0x1a01, 1, slave_5_pdo_entries + 1}, /* Channel 2 */
{0x1a02, 1, slave_5_pdo_entries + 2}, /* Channel 3 */
{0x1a03, 1, slave_5_pdo_entries + 3}, /* Channel 4 */
{0x1a04, 1, slave_5_pdo_entries + 4}, /* Channel 5 */
{0x1a05, 1, slave_5_pdo_entries + 5}, /* Channel 6 */
{0x1a06, 1, slave_5_pdo_entries + 6}, /* Channel 7 */
{0x1a07, 1, slave_5_pdo_entries + 7}, /* Channel 8 */
};
ec_sync_info_t slave_5_syncs[] = {
{0, EC_DIR_INPUT, 8, slave_5_pdos + 0, EC_WD_DISABLE},
{0xff}
};
/* Master 0, Slave 6, "EL1018"
* Vendor ID: 0x00000002
* Product code: 0x03fa3052
* Revision number: 0x00100000
*/
ec_pdo_entry_info_t slave_6_pdo_entries[] = {
{0x6000, 0x01, 1}, /* Input */
{0x6010, 0x01, 1}, /* Input */
{0x6020, 0x01, 1}, /* Input */
{0x6030, 0x01, 1}, /* Input */
{0x6040, 0x01, 1}, /* Input */
{0x6050, 0x01, 1}, /* Input */
{0x6060, 0x01, 1}, /* Input */
{0x6070, 0x01, 1}, /* Input */
};
ec_pdo_info_t slave_6_pdos[] = {
{0x1a00, 1, slave_6_pdo_entries + 0}, /* Channel 1 */
{0x1a01, 1, slave_6_pdo_entries + 1}, /* Channel 2 */
{0x1a02, 1, slave_6_pdo_entries + 2}, /* Channel 3 */
{0x1a03, 1, slave_6_pdo_entries + 3}, /* Channel 4 */
{0x1a04, 1, slave_6_pdo_entries + 4}, /* Channel 5 */
{0x1a05, 1, slave_6_pdo_entries + 5}, /* Channel 6 */
{0x1a06, 1, slave_6_pdo_entries + 6}, /* Channel 7 */
{0x1a07, 1, slave_6_pdo_entries + 7}, /* Channel 8 */
};
ec_sync_info_t slave_6_syncs[] = {
{0, EC_DIR_INPUT, 8, slave_6_pdos + 0, EC_WD_DISABLE},
{0xff}
};
/* Master 0, Slave 7, "EL2004"
* Vendor ID: 0x00000002
* Product code: 0x07d43052
* Revision number: 0x00100000
*/
ec_pdo_entry_info_t slave_7_pdo_entries[] = {
{0x7000, 0x01, 1}, /* Output */
{0x7010, 0x01, 1}, /* Output */
{0x7020, 0x01, 1}, /* Output */
{0x7030, 0x01, 1}, /* Output */
};
ec_pdo_info_t slave_7_pdos[] = {
{0x1600, 1, slave_7_pdo_entries + 0}, /* Channel 1 */
{0x1601, 1, slave_7_pdo_entries + 1}, /* Channel 2 */
{0x1602, 1, slave_7_pdo_entries + 2}, /* Channel 3 */
{0x1603, 1, slave_7_pdo_entries + 3}, /* Channel 4 */
};
ec_sync_info_t slave_7_syncs[] = {
{0, EC_DIR_OUTPUT, 4, slave_7_pdos + 0, EC_WD_ENABLE},
{0xff}
};
/* Master 0, Slave 8, "EL2004"
* Vendor ID: 0x00000002
* Product code: 0x07d43052
* Revision number: 0x00120000
*/
ec_pdo_entry_info_t slave_8_pdo_entries[] = {
{0x7000, 0x01, 1}, /* Output */
{0x7010, 0x01, 1}, /* Output */
{0x7020, 0x01, 1}, /* Output */
{0x7030, 0x01, 1}, /* Output */
};
ec_pdo_info_t slave_8_pdos[] = {
{0x1600, 1, slave_8_pdo_entries + 0}, /* Channel 1 */
{0x1601, 1, slave_8_pdo_entries + 1}, /* Channel 2 */
{0x1602, 1, slave_8_pdo_entries + 2}, /* Channel 3 */
{0x1603, 1, slave_8_pdo_entries + 3}, /* Channel 4 */
};
ec_sync_info_t slave_8_syncs[] = {
{0, EC_DIR_OUTPUT, 4, slave_8_pdos + 0, EC_WD_ENABLE},
{0xff}
};
/* Master 0, Slave 9, "EL2004"
* Vendor ID: 0x00000002
* Product code: 0x07d43052
* Revision number: 0x00100000
*/
ec_pdo_entry_info_t slave_9_pdo_entries[] = {
{0x7000, 0x01, 1}, /* Output */
{0x7010, 0x01, 1}, /* Output */
{0x7020, 0x01, 1}, /* Output */
{0x7030, 0x01, 1}, /* Output */
};
ec_pdo_info_t slave_9_pdos[] = {
{0x1600, 1, slave_9_pdo_entries + 0}, /* Channel 1 */
{0x1601, 1, slave_9_pdo_entries + 1}, /* Channel 2 */
{0x1602, 1, slave_9_pdo_entries + 2}, /* Channel 3 */
{0x1603, 1, slave_9_pdo_entries + 3}, /* Channel 4 */
};
ec_sync_info_t slave_9_syncs[] = {
{0, EC_DIR_OUTPUT, 4, slave_9_pdos + 0, EC_WD_ENABLE},
{0xff}
};
/* Master 0, Slave a, "EL4102"
* Vendor ID: 0x00000002
* Product code: 0x10063052
* Revision number: 0x03f80000
*/
ec_pdo_entry_info_t slave_10_pdo_entries[] = {
{0x3001, 0x01, 16}, /* Output */
{0x3002, 0x01, 16}, /* Output */
};
ec_pdo_info_t slave_10_pdos[] = {
{0x1600, 1, slave_10_pdo_entries + 0}, /* RxPDO 01 mapping */
{0x1601, 1, slave_10_pdo_entries + 1}, /* RxPDO 02 mapping */
};
ec_sync_info_t slave_10_syncs[] = {
{0, EC_DIR_OUTPUT, 0, NULL, EC_WD_DISABLE},
{1, EC_DIR_INPUT, 0, NULL, EC_WD_DISABLE},
{2, EC_DIR_OUTPUT, 2, slave_10_pdos + 0, EC_WD_DISABLE},
{3, EC_DIR_INPUT, 0, NULL, EC_WD_DISABLE},
{0xff}
};
* Vendor ID: 0x00000024
* Product code: 0x00242804
* Revision number: 0x00000003
*/
ec_sync_info_t slave_0_syncs[] = {
{0, EC_DIR_OUTPUT, 0, NULL, EC_WD_DISABLE},
{1, EC_DIR_INPUT, 0, NULL, EC_WD_DISABLE},
{2, EC_DIR_OUTPUT, 0, NULL, EC_WD_ENABLE},
{3, EC_DIR_INPUT, 0, NULL, EC_WD_ENABLE},
{0xff}
};
/* Master 0, Slave 1
* Vendor ID: 0x00000024
* Product code: 0x00242804
* Revision number: 0x00000003
*/
ec_sync_info_t slave_1_syncs[] = {
{0, EC_DIR_OUTPUT, 0, NULL, EC_WD_DISABLE},
{1, EC_DIR_INPUT, 0, NULL, EC_WD_DISABLE},
{2, EC_DIR_OUTPUT, 0, NULL, EC_WD_ENABLE},
{3, EC_DIR_INPUT, 0, NULL, EC_WD_ENABLE},
{0xff}
};
/* Master 0, Slave 2
* Vendor ID: 0x00000024
* Product code: 0x00242804
* Revision number: 0x00000003
*/
ec_sync_info_t slave_2_syncs[] = {
{0, EC_DIR_OUTPUT, 0, NULL, EC_WD_DISABLE},
{1, EC_DIR_INPUT, 0, NULL, EC_WD_DISABLE},
{2, EC_DIR_OUTPUT, 0, NULL, EC_WD_ENABLE},
{3, EC_DIR_INPUT, 0, NULL, EC_WD_ENABLE},
{0xff}
};
/* Master 0, Slave 4, "EL1018"
* Vendor ID: 0x00000002
* Product code: 0x03fa3052
* Revision number: 0x00100000
*/
ec_pdo_entry_info_t slave_4_pdo_entries[] = {
{0x6000, 0x01, 1}, /* Input */
{0x6010, 0x01, 1}, /* Input */
{0x6020, 0x01, 1}, /* Input */
{0x6030, 0x01, 1}, /* Input */
{0x6040, 0x01, 1}, /* Input */
{0x6050, 0x01, 1}, /* Input */
{0x6060, 0x01, 1}, /* Input */
{0x6070, 0x01, 1}, /* Input */
};
ec_pdo_info_t slave_4_pdos[] = {
{0x1a00, 1, slave_4_pdo_entries + 0}, /* Channel 1 */
{0x1a01, 1, slave_4_pdo_entries + 1}, /* Channel 2 */
{0x1a02, 1, slave_4_pdo_entries + 2}, /* Channel 3 */
{0x1a03, 1, slave_4_pdo_entries + 3}, /* Channel 4 */
{0x1a04, 1, slave_4_pdo_entries + 4}, /* Channel 5 */
{0x1a05, 1, slave_4_pdo_entries + 5}, /* Channel 6 */
{0x1a06, 1, slave_4_pdo_entries + 6}, /* Channel 7 */
{0x1a07, 1, slave_4_pdo_entries + 7}, /* Channel 8 */
};
ec_sync_info_t slave_4_syncs[] = {
{0, EC_DIR_INPUT, 8, slave_4_pdos + 0, EC_WD_DISABLE},
{0xff}
};
/* Master 0, Slave 5, "EL1018"
* Vendor ID: 0x00000002
* Product code: 0x03fa3052
* Revision number: 0x00100000
*/
ec_pdo_entry_info_t slave_5_pdo_entries[] = {
{0x6000, 0x01, 1}, /* Input */
{0x6010, 0x01, 1}, /* Input */
{0x6020, 0x01, 1}, /* Input */
{0x6030, 0x01, 1}, /* Input */
{0x6040, 0x01, 1}, /* Input */
{0x6050, 0x01, 1}, /* Input */
{0x6060, 0x01, 1}, /* Input */
{0x6070, 0x01, 1}, /* Input */
};
ec_pdo_info_t slave_5_pdos[] = {
{0x1a00, 1, slave_5_pdo_entries + 0}, /* Channel 1 */
{0x1a01, 1, slave_5_pdo_entries + 1}, /* Channel 2 */
{0x1a02, 1, slave_5_pdo_entries + 2}, /* Channel 3 */
{0x1a03, 1, slave_5_pdo_entries + 3}, /* Channel 4 */
{0x1a04, 1, slave_5_pdo_entries + 4}, /* Channel 5 */
{0x1a05, 1, slave_5_pdo_entries + 5}, /* Channel 6 */
{0x1a06, 1, slave_5_pdo_entries + 6}, /* Channel 7 */
{0x1a07, 1, slave_5_pdo_entries + 7}, /* Channel 8 */
};
ec_sync_info_t slave_5_syncs[] = {
{0, EC_DIR_INPUT, 8, slave_5_pdos + 0, EC_WD_DISABLE},
{0xff}
};
/* Master 0, Slave 6, "EL1018"
* Vendor ID: 0x00000002
* Product code: 0x03fa3052
* Revision number: 0x00100000
*/
ec_pdo_entry_info_t slave_6_pdo_entries[] = {
{0x6000, 0x01, 1}, /* Input */
{0x6010, 0x01, 1}, /* Input */
{0x6020, 0x01, 1}, /* Input */
{0x6030, 0x01, 1}, /* Input */
{0x6040, 0x01, 1}, /* Input */
{0x6050, 0x01, 1}, /* Input */
{0x6060, 0x01, 1}, /* Input */
{0x6070, 0x01, 1}, /* Input */
};
ec_pdo_info_t slave_6_pdos[] = {
{0x1a00, 1, slave_6_pdo_entries + 0}, /* Channel 1 */
{0x1a01, 1, slave_6_pdo_entries + 1}, /* Channel 2 */
{0x1a02, 1, slave_6_pdo_entries + 2}, /* Channel 3 */
{0x1a03, 1, slave_6_pdo_entries + 3}, /* Channel 4 */
{0x1a04, 1, slave_6_pdo_entries + 4}, /* Channel 5 */
{0x1a05, 1, slave_6_pdo_entries + 5}, /* Channel 6 */
{0x1a06, 1, slave_6_pdo_entries + 6}, /* Channel 7 */
{0x1a07, 1, slave_6_pdo_entries + 7}, /* Channel 8 */
};
ec_sync_info_t slave_6_syncs[] = {
{0, EC_DIR_INPUT, 8, slave_6_pdos + 0, EC_WD_DISABLE},
{0xff}
};
/* Master 0, Slave 7, "EL2004"
* Vendor ID: 0x00000002
* Product code: 0x07d43052
* Revision number: 0x00100000
*/
ec_pdo_entry_info_t slave_7_pdo_entries[] = {
{0x7000, 0x01, 1}, /* Output */
{0x7010, 0x01, 1}, /* Output */
{0x7020, 0x01, 1}, /* Output */
{0x7030, 0x01, 1}, /* Output */
};
ec_pdo_info_t slave_7_pdos[] = {
{0x1600, 1, slave_7_pdo_entries + 0}, /* Channel 1 */
{0x1601, 1, slave_7_pdo_entries + 1}, /* Channel 2 */
{0x1602, 1, slave_7_pdo_entries + 2}, /* Channel 3 */
{0x1603, 1, slave_7_pdo_entries + 3}, /* Channel 4 */
};
ec_sync_info_t slave_7_syncs[] = {
{0, EC_DIR_OUTPUT, 4, slave_7_pdos + 0, EC_WD_ENABLE},
{0xff}
};
/* Master 0, Slave 8, "EL2004"
* Vendor ID: 0x00000002
* Product code: 0x07d43052
* Revision number: 0x00120000
*/
ec_pdo_entry_info_t slave_8_pdo_entries[] = {
{0x7000, 0x01, 1}, /* Output */
{0x7010, 0x01, 1}, /* Output */
{0x7020, 0x01, 1}, /* Output */
{0x7030, 0x01, 1}, /* Output */
};
ec_pdo_info_t slave_8_pdos[] = {
{0x1600, 1, slave_8_pdo_entries + 0}, /* Channel 1 */
{0x1601, 1, slave_8_pdo_entries + 1}, /* Channel 2 */
{0x1602, 1, slave_8_pdo_entries + 2}, /* Channel 3 */
{0x1603, 1, slave_8_pdo_entries + 3}, /* Channel 4 */
};
ec_sync_info_t slave_8_syncs[] = {
{0, EC_DIR_OUTPUT, 4, slave_8_pdos + 0, EC_WD_ENABLE},
{0xff}
};
/* Master 0, Slave 9, "EL2004"
* Vendor ID: 0x00000002
* Product code: 0x07d43052
* Revision number: 0x00100000
*/
ec_pdo_entry_info_t slave_9_pdo_entries[] = {
{0x7000, 0x01, 1}, /* Output */
{0x7010, 0x01, 1}, /* Output */
{0x7020, 0x01, 1}, /* Output */
{0x7030, 0x01, 1}, /* Output */
};
ec_pdo_info_t slave_9_pdos[] = {
{0x1600, 1, slave_9_pdo_entries + 0}, /* Channel 1 */
{0x1601, 1, slave_9_pdo_entries + 1}, /* Channel 2 */
{0x1602, 1, slave_9_pdo_entries + 2}, /* Channel 3 */
{0x1603, 1, slave_9_pdo_entries + 3}, /* Channel 4 */
};
ec_sync_info_t slave_9_syncs[] = {
{0, EC_DIR_OUTPUT, 4, slave_9_pdos + 0, EC_WD_ENABLE},
{0xff}
};
/* Master 0, Slave a, "EL4102"
* Vendor ID: 0x00000002
* Product code: 0x10063052
* Revision number: 0x03f80000
*/
ec_pdo_entry_info_t slave_10_pdo_entries[] = {
{0x3001, 0x01, 16}, /* Output */
{0x3002, 0x01, 16}, /* Output */
};
ec_pdo_info_t slave_10_pdos[] = {
{0x1600, 1, slave_10_pdo_entries + 0}, /* RxPDO 01 mapping */
{0x1601, 1, slave_10_pdo_entries + 1}, /* RxPDO 02 mapping */
};
ec_sync_info_t slave_10_syncs[] = {
{0, EC_DIR_OUTPUT, 0, NULL, EC_WD_DISABLE},
{1, EC_DIR_INPUT, 0, NULL, EC_WD_DISABLE},
{2, EC_DIR_OUTPUT, 2, slave_10_pdos + 0, EC_WD_DISABLE},
{3, EC_DIR_INPUT, 0, NULL, EC_WD_DISABLE},
{0xff}
};
Please Log in or Create an account to join the conversation.
- scottlaird
- Offline
- Premium Member
Less
More
- Posts: 136
- Thank you received: 155
03 Mar 2024 22:12 #295093
by scottlaird
Replied by scottlaird on topic Analog output module EL4102 not working anymore...
My fault, I'd missed that the EL310x2 and EL41x2 are completely unlike all of the other EL3xxx/EL4xxx devices. I fixed the 31x2 a few weeks ago but missed the 41x2. i'll try to.roll that bit back later today.
The following user(s) said Thank You: jc2ktr
Please Log in or Create an account to join the conversation.
- scottlaird
- Offline
- Premium Member
Less
More
- Posts: 136
- Thank you received: 155
04 Mar 2024 01:40 #295104
by scottlaird
Replied by scottlaird on topic Analog output module EL4102 not working anymore...
This is merged in as github.com/linuxcnc-ethercat/linuxcnc-ethercat/pull/371, and should be available as v1.25.1 in a few minutes.
Let me know if this doesn't fix things and I'll look more closely.
Let me know if this doesn't fix things and I'll look more closely.
The following user(s) said Thank You: jc2ktr
Please Log in or Create an account to join the conversation.
04 Mar 2024 11:46 - 04 Mar 2024 20:56 #295125
by jc2ktr
Replied by jc2ktr on topic Analog output module EL4102 not working anymore...
Last edit: 04 Mar 2024 20:56 by jc2ktr. Reason: added text
The following user(s) said Thank You: tommylight, scottlaird
Please Log in or Create an account to join the conversation.
- Configuring LinuxCNC
- Advanced Configuration
- EtherCAT
- Analog output module EL4102 not working anymore...
Time to create page: 0.083 seconds