- Configuring LinuxCNC
- Advanced Configuration
- EtherCAT
- Beckhoff ethercat 64 with bit linuxcnc, How to install.
Beckhoff ethercat 64 with bit linuxcnc, How to install.
- db1981
- Offline
- Platinum Member
Less
More
- Posts: 790
- Thank you received: 275
29 Nov 2022 23:48 - 29 Nov 2022 23:49 #258053
by db1981
Replied by db1981 on topic Beckhoff ethercat 64 with bit linuxcnc, How to install.
documentation is an problem....
I would not recommend do create your startup cmds manually.
the file from lcec examples is not complete. This is for an async motor as dummy on the b chanel. If you would have an servo, the whole parameter set would change and there are many parameters to add, that are not in the file yet..
The normal way to get ax5x running would be :
-create an working config in Twincat 2/3 , -> velocity control -> setup the right pdo
configuration, this has to match the mapping in the lcec driver.
-tune the current/velocity controller with twincat
-export the startup list xml
-copy the whole <ETHERCATMAILBOX> part in your initcmd xml
lcec pdo configuration for one AX5XXX Channel:
out:
I would not recommend do create your startup cmds manually.
the file from lcec examples is not complete. This is for an async motor as dummy on the b chanel. If you would have an servo, the whole parameter set would change and there are many parameters to add, that are not in the file yet..
The normal way to get ax5x running would be :
-create an working config in Twincat 2/3 , -> velocity control -> setup the right pdo
configuration, this has to match the mapping in the lcec driver.
-tune the current/velocity controller with twincat
-export the startup list xml
-copy the whole <ETHERCATMAILBOX> part in your initcmd xml
lcec pdo configuration for one AX5XXX Channel:
out:
lcec_syncs_add_pdo_entry(&hal_data->syncs, 0x0086, 0x01, 16); // control-word
lcec_syncs_add_pdo_entry(&hal_data->syncs, 0x0018, 0x01, 32); // velo-command
in:
lcec_syncs_add_pdo_entry(&hal_data->syncs, 0x0087, 0x01, 16); // status word
lcec_syncs_add_pdo_entry(&hal_data->syncs, 0x0033, 0x01, 32); // position feedback
lcec_syncs_add_pdo_entry(&hal_data->syncs, 0x0054, 0x01, 16); // torque feedback
Last edit: 29 Nov 2022 23:49 by db1981.
Please Log in or Create an account to join the conversation.
- boyzo
- Offline
- Senior Member
Less
More
- Posts: 76
- Thank you received: 3
30 Nov 2022 22:55 #258167
by boyzo
Replied by boyzo on topic Beckhoff ethercat 64 with bit linuxcnc, How to install.
I did follow your steps and I am stuck with:
alcmd: loadusr -W /home/bojan/dev/linuxcnc-ethercat/src/lcec_conf ethercat-conf.xml
lcec_conf: ERROR: Invalid data
lcec_conf: ERROR: Parse error at line 2: parsing aborted
lcec_conf: ERROR: Parse error at line 7: parsing aborted
<stdin>:3: waitpid failed /home/bojan/dev/linuxcnc-ethercat/src/lcec_conf lcec_conf
<stdin>:3: /home/bojan/dev/linuxcnc-ethercat/src/lcec_conf exited without becoming ready
I can not find anything wrong in my xml files
alcmd: loadusr -W /home/bojan/dev/linuxcnc-ethercat/src/lcec_conf ethercat-conf.xml
lcec_conf: ERROR: Invalid data
lcec_conf: ERROR: Parse error at line 2: parsing aborted
lcec_conf: ERROR: Parse error at line 7: parsing aborted
<stdin>:3: waitpid failed /home/bojan/dev/linuxcnc-ethercat/src/lcec_conf lcec_conf
<stdin>:3: /home/bojan/dev/linuxcnc-ethercat/src/lcec_conf exited without becoming ready
I can not find anything wrong in my xml files
Please Log in or Create an account to join the conversation.
- boyzo
- Offline
- Senior Member
Less
More
- Posts: 76
- Thank you received: 3
30 Nov 2022 23:41 #258170
by boyzo
Replied by boyzo on topic Beckhoff ethercat 64 with bit linuxcnc, How to install.
I find the reason for ERROR invalid data. My AX5203.xml was all in 1 line. I have to split it. You don't see it if you display the file in browser, you see it when you try to edit file.
Now I get the following:
halcmd: loadrt lcec
Note: Using POSIX realtime
Failed to read IDN: Invalid argument
LCEC: slave 0.3: Failed to execute IDN read (drive 0 idn S-0-79, error -22, error_code 00000000)
lcec: rtapi_app_main: Invalid argument (-22)
<stdin>:6: waitpid failed /usr/bin/rtapi_app lcec
<stdin>:6: /usr/bin/rtapi_app exited without becoming ready
<stdin>:6: insmod for lcec failed, returned -1
Please suggest.
Now I get the following:
halcmd: loadrt lcec
Note: Using POSIX realtime
Failed to read IDN: Invalid argument
LCEC: slave 0.3: Failed to execute IDN read (drive 0 idn S-0-79, error -22, error_code 00000000)
lcec: rtapi_app_main: Invalid argument (-22)
<stdin>:6: waitpid failed /usr/bin/rtapi_app lcec
<stdin>:6: /usr/bin/rtapi_app exited without becoming ready
<stdin>:6: insmod for lcec failed, returned -1
Please suggest.
Please Log in or Create an account to join the conversation.
- db1981
- Offline
- Platinum Member
Less
More
- Posts: 790
- Thank you received: 275
01 Dec 2022 02:00 #258178
by db1981
Replied by db1981 on topic Beckhoff ethercat 64 with bit linuxcnc, How to install.
check dmesg for errors, if there is no detailed information, set ethercat debug level to 1 and check again.
with an quick view at the initcmds, i am missing the pdo configuration -> there have to be a few <![CDATA[Telegram type]]> initcmds.
with an quick view at the initcmds, i am missing the pdo configuration -> there have to be a few <![CDATA[Telegram type]]> initcmds.
Please Log in or Create an account to join the conversation.
- boyzo
- Offline
- Senior Member
Less
More
- Posts: 76
- Thank you received: 3
01 Dec 2022 19:05 #258247
by boyzo
Replied by boyzo on topic Beckhoff ethercat 64 with bit linuxcnc, How to install.
It looks like I get some progress. My lcec is started:
halcmd: addf lcec.read-all test
halcmd: addf lcec.write-all test
halcmd: start
halcmd: setp lcec.0.EL2809.dout-0 1
halcmd: show pin
Component Pins:
. .
67 bit OUT TRUE lcec.0.EL1809.din-1
67 bit OUT FALSE lcec.0.EL1809.din-1-not
.
.
67 bit IN TRUE lcec.0.EL2809.dout-0
.
.
67 bit IN FALSE lcec.0.3.ch0.srv-enable
67 bit OUT FALSE lcec.0.3.ch0.srv-enabled
67 bit OUT TRUE lcec.0.3.ch0.srv-fault
67 bit IN FALSE lcec.0.3.ch0.srv-halt
I attach my initcmds .xml file.
Next I need to create hal. What would be the best way I should take?
halcmd: addf lcec.read-all test
halcmd: addf lcec.write-all test
halcmd: start
halcmd: setp lcec.0.EL2809.dout-0 1
halcmd: show pin
Component Pins:
. .
67 bit OUT TRUE lcec.0.EL1809.din-1
67 bit OUT FALSE lcec.0.EL1809.din-1-not
.
.
67 bit IN TRUE lcec.0.EL2809.dout-0
.
.
67 bit IN FALSE lcec.0.3.ch0.srv-enable
67 bit OUT FALSE lcec.0.3.ch0.srv-enabled
67 bit OUT TRUE lcec.0.3.ch0.srv-fault
67 bit IN FALSE lcec.0.3.ch0.srv-halt
I attach my initcmds .xml file.
Next I need to create hal. What would be the best way I should take?
Please Log in or Create an account to join the conversation.
- db1981
- Offline
- Platinum Member
Less
More
- Posts: 790
- Thank you received: 275
01 Dec 2022 19:15 #258250
by db1981
Replied by db1981 on topic Beckhoff ethercat 64 with bit linuxcnc, How to install.
does the servo drive reachs ethercat op state ? I am missing the dc config line in your ethercat_xml . I noticed the fault bit is set , could be result of clock error .
Please Log in or Create an account to join the conversation.
- db1981
- Offline
- Platinum Member
Less
More
- Posts: 790
- Thank you received: 275
01 Dec 2022 19:26 #258252
by db1981
Replied by db1981 on topic Beckhoff ethercat 64 with bit linuxcnc, How to install.
for hal starting ....
these are pins of one of my machines. The servodrive is named AX_X_C .
hardware io :
# X axis Encoder
net x-pos-fb <= lcec.0.AX_X_C.ch1.enc-pos
setp lcec.0.AX_X_C.ch1.srv-scale-fb2 [AXIS_0]ENC_SCALE #Incremente /pro 1 Einheit
# X AMP
setp lcec.0.AX_X_C.ch1.srv-scale [AXIS_0]SCALE #kehrwert Weg/pro 1 Motorumdrehung
net x-enable => lcec.0.AX_X_C.ch1.srv-enable
net x-vel-cmd => lcec.0.AX_X_C.ch1.srv-velo-cmd
net servo-x-fault <= lcec.0.AX_X_C.ch1.srv-fault
joint connections:
###########################################################
# X axis
###########################################################
# position controler
setp x-pid.Pgain [AXIS_0]P
setp x-pid.Igain [AXIS_0]I
setp x-pid.Dgain [AXIS_0]D
setp x-pid.FF0 [AXIS_0]FF0
setp x-pid.FF1 [AXIS_0]FF1
setp x-pid.FF2 [AXIS_0]FF2
setp x-pid.bias [AXIS_0]BIAS
setp x-pid.deadband [AXIS_0]DEADBAND
setp x-pid.maxoutput [AXIS_0]MAX_OUTPUT
#####
net x-enable => x-pid.enable
net x-pos-cmd => x-pid.command
net x-pos-fb => x-pid.feedback
net x-vel-cmd <= x-pid.output
# axis interface
net x-home => axis.0.home-sw-in
net x-enable <= axis.0.amp-enable-out
net x-amp-fault => axis.0.amp-fault-in
net x-pos-cmd <= axis.0.motor-pos-cmd #
net x-pos-fb => axis.0.motor-pos-fb #
net x-pos-joint <= axis.0.joint-pos-fb
net x-homed <= axis.0.homed
net x-homing <= axis.0.homing
net x-pos-lim-in => axis.0.pos-lim-sw-in
net x-neg-lim-in => axis.0.neg-lim-sw-in
(this is an 2.7 machine... you have to translate to the joint pins.)
to more i have no access at the moment, i am out of office for many days..
these are pins of one of my machines. The servodrive is named AX_X_C .
hardware io :
# X axis Encoder
net x-pos-fb <= lcec.0.AX_X_C.ch1.enc-pos
setp lcec.0.AX_X_C.ch1.srv-scale-fb2 [AXIS_0]ENC_SCALE #Incremente /pro 1 Einheit
# X AMP
setp lcec.0.AX_X_C.ch1.srv-scale [AXIS_0]SCALE #kehrwert Weg/pro 1 Motorumdrehung
net x-enable => lcec.0.AX_X_C.ch1.srv-enable
net x-vel-cmd => lcec.0.AX_X_C.ch1.srv-velo-cmd
net servo-x-fault <= lcec.0.AX_X_C.ch1.srv-fault
joint connections:
###########################################################
# X axis
###########################################################
# position controler
setp x-pid.Pgain [AXIS_0]P
setp x-pid.Igain [AXIS_0]I
setp x-pid.Dgain [AXIS_0]D
setp x-pid.FF0 [AXIS_0]FF0
setp x-pid.FF1 [AXIS_0]FF1
setp x-pid.FF2 [AXIS_0]FF2
setp x-pid.bias [AXIS_0]BIAS
setp x-pid.deadband [AXIS_0]DEADBAND
setp x-pid.maxoutput [AXIS_0]MAX_OUTPUT
#####
net x-enable => x-pid.enable
net x-pos-cmd => x-pid.command
net x-pos-fb => x-pid.feedback
net x-vel-cmd <= x-pid.output
# axis interface
net x-home => axis.0.home-sw-in
net x-enable <= axis.0.amp-enable-out
net x-amp-fault => axis.0.amp-fault-in
net x-pos-cmd <= axis.0.motor-pos-cmd #
net x-pos-fb => axis.0.motor-pos-fb #
net x-pos-joint <= axis.0.joint-pos-fb
net x-homed <= axis.0.homed
net x-homing <= axis.0.homing
net x-pos-lim-in => axis.0.pos-lim-sw-in
net x-neg-lim-in => axis.0.neg-lim-sw-in
(this is an 2.7 machine... you have to translate to the joint pins.)
to more i have no access at the moment, i am out of office for many days..
Please Log in or Create an account to join the conversation.
- boyzo
- Offline
- Senior Member
Less
More
- Posts: 76
- Thank you received: 3
01 Dec 2022 21:54 #258264
by boyzo
67 bit OUT FALSE lcec.0.3.slave-state-op
67 bit OUT TRUE lcec.0.3.slave-state-preop
If I put DC section I get the following:
halcmd: loadusr -W /home/bojan/dev/linuxcnc-ethercat/src/lcec_conf ethercat-conf.xml
lcec_conf: ERROR: unexpected node DC found
lcec_conf: ERROR: Parse error at line 986: parsing aborted
lcec_conf: ERROR: Parse error at line 7: parsing aborted
Maybe I put it in the wrong place?
Replied by boyzo on topic Beckhoff ethercat 64 with bit linuxcnc, How to install.
No, only preop. But I do not have motors connected, only 24V to drive.does the servo drive reachs ethercat op state ? I am missing the dc config line in your ethercat_xml . I noticed the fault bit is set , could be result of clock error .
67 bit OUT FALSE lcec.0.3.slave-state-op
67 bit OUT TRUE lcec.0.3.slave-state-preop
If I put DC section I get the following:
halcmd: loadusr -W /home/bojan/dev/linuxcnc-ethercat/src/lcec_conf ethercat-conf.xml
lcec_conf: ERROR: unexpected node DC found
lcec_conf: ERROR: Parse error at line 986: parsing aborted
lcec_conf: ERROR: Parse error at line 7: parsing aborted
Maybe I put it in the wrong place?
Please Log in or Create an account to join the conversation.
- boyzo
- Offline
- Senior Member
Less
More
- Posts: 76
- Thank you received: 3
02 Dec 2022 23:03 #258386
by boyzo
Replied by boyzo on topic Beckhoff ethercat 64 with bit linuxcnc, How to install.
dmesg with debug level 1
[173184.504599] EtherCAT 0: Using slave 0 as DC reference clock.
[173239.482967] EtherCAT: Requesting master 0...
[173239.482974] EtherCAT: Successfully requested master 0.
[173239.674945] EtherCAT 0: Domain0: Logical address 0x00000000, 32 byte, expected working counter 6.
[173239.674951] EtherCAT 0: Datagram domain0-0-main: Logical offset 0x00000000, 32 byte, type LRW at 00000000bab88993.
[173239.674988] EtherCAT 0: Master thread exited.
[173239.674991] EtherCAT 0: Starting EtherCAT-OP thread.
[173239.675081] EtherCAT WARNING 0: 1 datagram UNMATCHED!
[173402.585998] EtherCAT 0: Domain 0: Working counter changed to 1/6.
[173403.149017] EtherCAT WARNING 0-3: Slave does not support changing the PDO mapping!
[173403.149031] EtherCAT WARNING 0-3: Currently mapped PDO entries: 0x0086:00/16 0x002F:00/32. Entries to map: 0x0086:01/16 0x001
8:01/32
[173403.149045] EtherCAT WARNING 0-3: Slave does not support changing the PDO mapping!
[173403.149046] EtherCAT WARNING 0-3: Currently mapped PDO entries: 0x0086:00/16 0x002F:00/32. Entries to map: 0x0086:02/16 0x001
8:02/32
[173403.149063] EtherCAT WARNING 0-3: Slave does not support changing the PDO mapping!
[173403.149064] EtherCAT WARNING 0-3: Currently mapped PDO entries: 0x0087:00/16 0x0033:00/32 0x00BD:00/32. Entries to map: 0x008
7:01/16 0x0033:01/32 0x0054:01/16
[173403.149077] EtherCAT WARNING 0-3: Slave does not support changing the PDO mapping!
[173403.149078] EtherCAT WARNING 0-3: Currently mapped PDO entries: 0x0087:00/16 0x0033:00/32 0x00BD:00/32. Entries to map: 0x008
7:02/16 0x0033:02/32 0x0054:02/16
[173403.586998] EtherCAT 0: Domain 0: Working counter changed to 3/6.
[173406.070997] EtherCAT ERROR 0-3: Failed to set SAFEOP state, slave refused state change (PREOP + ERROR).
[173406.072996] EtherCAT ERROR 0-3: AL status message 0x0045: "MBX_SOE".
[173406.074998] EtherCAT 0-3: Acknowledged state PREOP.
[173406.082658] EtherCAT 0: Slave states on main device: PREOP, OP.
[173753.578796] EtherCAT 0: Master thread exited.
[173753.578881] EtherCAT 0: Starting EtherCAT-IDLE thread.
[173184.504599] EtherCAT 0: Using slave 0 as DC reference clock.
[173239.482967] EtherCAT: Requesting master 0...
[173239.482974] EtherCAT: Successfully requested master 0.
[173239.674945] EtherCAT 0: Domain0: Logical address 0x00000000, 32 byte, expected working counter 6.
[173239.674951] EtherCAT 0: Datagram domain0-0-main: Logical offset 0x00000000, 32 byte, type LRW at 00000000bab88993.
[173239.674988] EtherCAT 0: Master thread exited.
[173239.674991] EtherCAT 0: Starting EtherCAT-OP thread.
[173239.675081] EtherCAT WARNING 0: 1 datagram UNMATCHED!
[173402.585998] EtherCAT 0: Domain 0: Working counter changed to 1/6.
[173403.149017] EtherCAT WARNING 0-3: Slave does not support changing the PDO mapping!
[173403.149031] EtherCAT WARNING 0-3: Currently mapped PDO entries: 0x0086:00/16 0x002F:00/32. Entries to map: 0x0086:01/16 0x001
8:01/32
[173403.149045] EtherCAT WARNING 0-3: Slave does not support changing the PDO mapping!
[173403.149046] EtherCAT WARNING 0-3: Currently mapped PDO entries: 0x0086:00/16 0x002F:00/32. Entries to map: 0x0086:02/16 0x001
8:02/32
[173403.149063] EtherCAT WARNING 0-3: Slave does not support changing the PDO mapping!
[173403.149064] EtherCAT WARNING 0-3: Currently mapped PDO entries: 0x0087:00/16 0x0033:00/32 0x00BD:00/32. Entries to map: 0x008
7:01/16 0x0033:01/32 0x0054:01/16
[173403.149077] EtherCAT WARNING 0-3: Slave does not support changing the PDO mapping!
[173403.149078] EtherCAT WARNING 0-3: Currently mapped PDO entries: 0x0087:00/16 0x0033:00/32 0x00BD:00/32. Entries to map: 0x008
7:02/16 0x0033:02/32 0x0054:02/16
[173403.586998] EtherCAT 0: Domain 0: Working counter changed to 3/6.
[173406.070997] EtherCAT ERROR 0-3: Failed to set SAFEOP state, slave refused state change (PREOP + ERROR).
[173406.072996] EtherCAT ERROR 0-3: AL status message 0x0045: "MBX_SOE".
[173406.074998] EtherCAT 0-3: Acknowledged state PREOP.
[173406.082658] EtherCAT 0: Slave states on main device: PREOP, OP.
[173753.578796] EtherCAT 0: Master thread exited.
[173753.578881] EtherCAT 0: Starting EtherCAT-IDLE thread.
Please Log in or Create an account to join the conversation.
- akg1904
- Offline
- Premium Member
Less
More
- Posts: 98
- Thank you received: 3
10 Dec 2022 12:58 #259092
by akg1904
Replied by akg1904 on topic Beckhoff ethercat 64 with bit linuxcnc, How to install.
Hi,
I installed Ethercat and I'm able to detect my slaves.
now I am facing two challenges which require some help:
1. How to communicate and read data in Terminal
2. How to map ethercat I/O module to the LINUXCNC
I installed Ethercat and I'm able to detect my slaves.
now I am facing two challenges which require some help:
1. How to communicate and read data in Terminal
2. How to map ethercat I/O module to the LINUXCNC
Please Log in or Create an account to join the conversation.
- Configuring LinuxCNC
- Advanced Configuration
- EtherCAT
- Beckhoff ethercat 64 with bit linuxcnc, How to install.
Time to create page: 0.209 seconds