- Posts: 10
- Thank you received: 0
Ethercat - assinged the same pdos to multiple Slave-Signals?
- MillingMarvin
- Topic Author
- Offline
- New Member
-
Less
More
11 months 2 weeks ago #338252
by MillingMarvin
Hello Everyone,
i am just starting out with some Beckhoff Modules and ethercat communication.
To be speciffic:
EK1100
EL1014 and EL1014-0010
EL2004
EL5101
EL4038
I only addet :
HALFILE = ethercat.hal
the the axis.ini file.
The axis.sim config is otherwise untouched
I used the basic xml definition like so:
[/b][/code]
[/b][/code]
i am just starting out with some Beckhoff Modules and ethercat communication.
To be speciffic:
EK1100
EL1014 and EL1014-0010
EL2004
EL5101
EL4038
I only addet :
HALFILE = ethercat.hal
the the axis.ini file.
The axis.sim config is otherwise untouched
I used the basic xml definition like so:
Code:
<slave idx="0" type="EK1100" name="EK1100_01"/>
<slave idx="1" type="EL1014" name="EL1014_01"/>
Full xml file is attached.
When i arrange them in this order:
K1100, EL1014, EL2004
I can start Linuxcnc and see/use them in the Halshow window. (set the output of the EL2004 Module and sense the Input on the EL1014 module)
But if i try to stack more EL1014, I get the error:
Failed to register PDO entry: No such file or directory
Debug file information:
[spoiler]
Note: Using POSIX realtime
Failed to register PDO entry: No such file or directory
LCEC: master 0 PDO entry registration failed
LCEC: failure, clearing config
LCEC: exiting
LCEC: returning -EINVAL
lcec: rtapi_app_main: Invalid argument (-22)
./ethercat.hal:4: waitpid failed /usr/bin/rtapi_app lcec
./ethercat.hal:4: /usr/bin/rtapi_app exited without becoming ready
./ethercat.hal:4: insmod for lcec failed, returned -1
9404
Stopping realtime threads
Unloading hal components
Note: Using POSIX realtime
[/spoiler]
after some reserch on pdos, it is obvious that every pdo should only be used once per master-slave config.
[b]Why does my Ethercat master distribute the same pdo to different salves? Or even better, how can I fix this?
Any help is greadly appreciated.
Do you need more information on my setup or additional files?
my output after:[/b]
-
Code:[b]ethercat pdos and[/b]
-
[/b][/code]Code:[b]ethercat slave [spoiler] [code]cnc@cnc:~$ ethercat pdos === Master 0, Slave 1 === SM0: PhysAddr 0x1000, DefaultSize 1, ControlRegister 0x00, Enable 1 TxPDO 0x1a00 "Channel 1" PDO entry 0x6000:01, 1 bit, "Input" TxPDO 0x1a01 "Channel 2" PDO entry 0x6010:01, 1 bit, "Input" TxPDO 0x1a02 "Channel 3" PDO entry 0x6020:01, 1 bit, "Input" TxPDO 0x1a03 "Channel 4" PDO entry 0x6030:01, 1 bit, "Input" === Master 0, Slave 2 === SM0: PhysAddr 0x1000, DefaultSize 0, ControlRegister 0x00, Enable 0 TxPDO 0x1a00 "Channel 1" PDO entry 0x3101:01, 1 bit, "Input" TxPDO 0x1a01 "Channel 2" PDO entry 0x3101:02, 1 bit, "Input" TxPDO 0x1a02 "Channel 3" PDO entry 0x3101:03, 1 bit, "Input" TxPDO 0x1a03 "Channel 4" PDO entry 0x3101:04, 1 bit, "Input" === Master 0, Slave 3 === SM0: PhysAddr 0x1000, DefaultSize 0, ControlRegister 0x00, Enable 0 TxPDO 0x1a00 "Channel 1" PDO entry 0x6000:01, 1 bit, "Input" TxPDO 0x1a01 "Channel 2" PDO entry 0x6010:01, 1 bit, "Input" TxPDO 0x1a02 "Channel 3" PDO entry 0x6020:01, 1 bit, "Input" TxPDO 0x1a03 "Channel 4" PDO entry 0x6030:01, 1 bit, "Input" === Master 0, Slave 4 === SM0: PhysAddr 0x1000, DefaultSize 0, ControlRegister 0x00, Enable 0 TxPDO 0x1a00 "Channel 1" PDO entry 0x3101:01, 1 bit, "Input" TxPDO 0x1a01 "Channel 2" PDO entry 0x3101:02, 1 bit, "Input" TxPDO 0x1a02 "Channel 3" PDO entry 0x3101:03, 1 bit, "Input" TxPDO 0x1a03 "Channel 4" PDO entry 0x3101:04, 1 bit, "Input" === Master 0, Slave 5 === SM0: PhysAddr 0x1000, DefaultSize 0, ControlRegister 0x00, Enable 0 TxPDO 0x1a00 "Channel 1" PDO entry 0x3101:01, 1 bit, "Input" TxPDO 0x1a01 "Channel 2" PDO entry 0x3101:02, 1 bit, "Input" TxPDO 0x1a02 "Channel 3" PDO entry 0x3101:03, 1 bit, "Input" TxPDO 0x1a03 "Channel 4" PDO entry 0x3101:04, 1 bit, "Input" === Master 0, Slave 6 === SM0: PhysAddr 0x0f00, DefaultSize 0, ControlRegister 0x44, Enable 9 RxPDO 0x1600 "Channel 1" PDO entry 0x7000:01, 1 bit, "Output" RxPDO 0x1601 "Channel 2" PDO entry 0x7010:01, 1 bit, "Output" RxPDO 0x1602 "Channel 3" PDO entry 0x7020:01, 1 bit, "Output" RxPDO 0x1603 "Channel 4" PDO entry 0x7030:01, 1 bit, "Output" cnc@cnc:~$ ethercat slave 0 0:0 PREOP + EK1100 EtherCAT-Koppler (2A E-Bus) 1 0:1 PREOP + EL1014 4Ch. Dig. Input 24V, 10 s 2 0:2 PREOP + EL1014 4K. Dig. Eingang 24V, 10 s 3 0:3 PREOP + EL1014 4K. Dig. Eingang 24V, 10 s 4 0:4 PREOP + EL1014-0010 4K. Dig. Eingang 24V, galv. getrennt, 10 s 5 0:5 PREOP + EL1014-0010 4K. Dig. Eingang 24V, galv. getrennt, 10 s 6 0:6 PREOP + EL2004 4Ch. Dig. Output 24V, 0.5A [/spoiler] It does matter which EL1014 Module is in which position, the sequence of the assigned pdos is not allways the same. Greatings from germany!
-
Code:
[b][code]Sorry, wrong category, could someone move this to "ethercat"?
Code:
[b][code]
Please Log in to join the conversation.
- tommylight
-
- Offline
- Administrator
-
Less
More
- Posts: 22010
- Thank you received: 3
11 months 2 weeks ago #338253
by tommylight
Replied by tommylight on topic Ethercat - assinged the same pdos to multiple Slave-Signals?
Moved to "EtherCAT" section.
Please Log in to join the conversation.
11 months 2 weeks ago #338260
by Hakan
Replied by Hakan on topic Ethercat - assinged the same pdos to multiple Slave-Signals?
From what I can see, the lcec EL1014 driver expects PDOs at 0x6000, 0x6010, 0x6020 and 0x6030. Two of your units have that.
Three of your units have PDOs at 0x3101:1, 0x3101:2, 0x3101:3 and 0x3101:4.
Maybe there is a reason for that? Different versions? I don't know the products very well.
You can use the generic driver for the 0x3101 units. And for the other units as well.
Run "lcec_configgen -typedb=false" and hopefully you should get the "generic" driver for all devices in the output.
Three of your units have PDOs at 0x3101:1, 0x3101:2, 0x3101:3 and 0x3101:4.
Maybe there is a reason for that? Different versions? I don't know the products very well.
You can use the generic driver for the 0x3101 units. And for the other units as well.
Run "lcec_configgen -typedb=false" and hopefully you should get the "generic" driver for all devices in the output.
Please Log in to join the conversation.
- MillingMarvin
- Topic Author
- Offline
- New Member
-
Less
More
- Posts: 10
- Thank you received: 0
11 months 2 weeks ago #338307
by MillingMarvin
Replied by MillingMarvin on topic Ethercat - assinged the same pdos to multiple Slave-Signals?
this is genius!
the comand "lcec_configgen -typedb=false" worked perfectly,
thank you so much for the recomandation!
the comand "lcec_configgen -typedb=false" worked perfectly,
thank you so much for the recomandation!
Please Log in to join the conversation.
- grandixximo
-
- Away
- Platinum Member
-
- Where are my paaaaants?
Less
More
- Posts: 352
- Thank you received: 2
6 months 1 day ago #346042
by grandixximo
---
test signature
Replied by grandixximo on topic Ethercat - assinged the same pdos to multiple Slave-Signals?
Just merged a fix for this in linuxcnc-ethercat upstream (commit 678314b, issue #457). For EL1014 units that map their inputs at 0x3101:01..0x3101:04 instead of the modern 0x6000/0x6010/0x6020/0x6030, you can now use type="EL1014-legacy" in your XML and the driver routes to the right PDO addresses. No more -typedb=false workaround needed for that variant. Untested on hardware on my end, if anyone has the affected revision, please confirm and post back.
---
test signature
Please Log in to join the conversation.
Time to create page: 0.089 seconds
