Ethercat HAL configuration for Beckhoff EL7041 without encoder

More
29 Nov 2017 18:14 - 29 Nov 2017 18:33 #102497 by Hawkeye
Hello db1981,

thank you for your help, but I am still struggeling with Twincat V2.xx.
I had now a look at it and it seems like I am too stupid to understand where to find the patch für my network card.
Maybe this is also related to the fact, that I am using Win10 x64?


My plan is to review the documentation and all pdo definitions of EL7041 and compare them to EL7041-1000.
Is there no way to get this thing running with a simple script or command ?

Does someone know where to buy EL7041-1000 in central europe for a good price?

Best Regards,
Hawkeye
Attachments:
Last edit: 29 Nov 2017 18:33 by Hawkeye.

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

More
29 Nov 2017 19:55 #102503 by Allan
Hello Hawkeye

I am sorry to learn that you are still having problems. I bought my EL7041-1000 terminals from eBay (Germany and USA) and from online suppliers,

There are some on eBay at the moment:

eBay 7041-1000

A supplier with good prices is:

ANERTKOM Industrieelektronik

The other supplier I have a link to has no stock at the moment. I bought mine over several months waiting for 'Scottish' prices!

I remember someone trying the 7041 on the forum a while ago. Perhaps we should have a search? The forum member might be contactable to ask whether they managed to get it running.

I also found the Beckhoff software difficult to understand - is it compatible with Windows 10?

Are you sure you want to give up on trying your 7041? Do you have more than one 7041? If so are they all giving the same warning?

Allan

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

More
29 Nov 2017 20:07 #102504 by Allan
Hello again Hawkeye

According to these posts:

7041 Working

The 7041 has been tried and works.

Allan

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

More
29 Nov 2017 20:28 #102505 by Hawkeye
Hello Allan,

this is now my second try to answer to your reply..

Yes, I think that the Beckhoff Software is incompatible (at least to my hardware).

To be honest, I wrote an E-Mail to Sascha Ittner a couple days ago asking him whether he wants to work with me to find a solution for EL7041-0000 series and finally, to publish this driver on git.
So far, there was no response from him..

Regarding this EL7041-0000:
I currently have only this single terminal. And as I need to have 4 of them in total, the big question is,
whether I spend time to create my own driver which is capable to run EL7041-0000 rather than purchasing 4 new terminals. As (you may know), swabians and scottish people have the same roots, I will try to spend some time
on EL7041-0000. This weekend I guess, I have to sit down and check the PDO definition and the bit addresses of EL7041-1000 and compare them to EL7040-0000.

Other options I see at this point could be:
- use a optocoupler to drive the stepper motor driver with a signal that could be created using 24V EL2008.
But I guess I have to spend some time to investigate what happs between the parallel bord and the stepper driver.
- Purchasing EL7041-1000
- Leave it as it is and hope that another person feels the same pain and is doing the job..


Regards,
Hawkeye

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

More
30 Nov 2017 10:03 #102524 by db1981
Hello,

Twincat does not work on 64bit systems. (try an old XP PC)
If your Linuxcnc with ethercat ist working, you can test the card manuel. Without being conect to an Axis.
Set the enables, and then set an velocity command. z.B. setp lcec.x.x.x 100.

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

More
30 Nov 2017 16:19 - 30 Nov 2017 18:12 #102541 by Hawkeye
Hello db1981,

looks like there is no velocity attribute available inside my lcec.0.D7. (this is EL7041-0000).
Did I miss something?


I had a closer look at some of the values of lcec.0.D7...
Looks like the encoder is jumping arround although there isn't something connected to it and motor is standing still.

Big Question is now, where is the problem?


I dont' get any voltage at the motor connectors.
50V and 24V are properly connected.
This is driving me crazy!!
If this thing won't start to run, it will hit the bottom of my trash bin very hard!!
This was a total waste of energy so far.
If someone is looking for me, I am in front of my rittal cabinet putting some wires into it..
Attachments:
Last edit: 30 Nov 2017 18:12 by Hawkeye.

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

More
30 Nov 2017 18:59 - 30 Nov 2017 19:00 #102542 by Allan
Hello Hawkeye

Following on from the db1981 to drive your motor from the terminal
below are a number of commands you might find helpful.

In particular you could try starting LinuxCNC and then trying the
command to enable the servo followed by drive the motor.

Allan


Set Stepper Motor Current
sudo ethercat -p 6 download --type uint16 0x8010 0x01 100

Small motors with attached shafts set to 100 mA.
Large motor set to 1000 mA.
Read Motor Current Settings
ethercat -p 6 upload --type uint16 0x8010 0x01

Reset Terminal to its Factory Settings
sudo ethercat -p 6 download --type uint32 0x1011 0x01 0x64616F6C

Read Motor Supply Voltage [mV]
ethercat -p 6 upload --type uint16 0x8010 0x03
Set Motor Supply Voltage [mV]
sudo ethercat -p 6 download --type uint16 0x8010 0x03 24000 (24 V)

With LinuxCNC running (and HAL started)
HAL commands can be run from the command
line.

List the pins using:

halcmd show pin

List servo faults:

halcmd show pin | grep srv | grep fau

Enable Servo:

halcmd setp lcec.0.6.srv-enable 1

Read Maximum Motor Current (mA)

ethercat upload -p 6 -t uint16 0x8010 0x01

Set Maximum Motor Current to 100 mA

sudo ethercat download -p 6 -t uint16 0x8010 0x01 100

Drive Motor

halcmd setp lcec.0.6.srv-cmd 0.5

Read Microstepping Setting from Driver

sudo ethercat upload -p 6 -t uint8 0x8012 0x45
Last edit: 30 Nov 2017 19:00 by Allan.
The following user(s) said Thank You: Hawkeye

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

More
30 Nov 2017 19:35 #102543 by Hawkeye
Hello Allan,

please see below:

Reset Terminal to its Factory Settings
sudo ethercat -p 6 download --type uint32 0x1011 0x01 0x64616F6C
Return: NONE

Read Motor Current Settings
ethercat -p 6 upload --type uint16 0x8010 0x01
Return: 0x1388 5000
Comment: 2,5A Motor. (I dont care even if it would be killed!)

Read Motor Supply Voltage [mV]
ethercat -p 6 upload --type uint16 0x8010 0x03
Return: 0xc350 50000
Comment: Powersupply is 48V

With LinuxCNC running (and HAL started)
HAL commands can be run from the command
line:
List the pins using:
halcmd show pin
Return: Component Pins:
Owner Type Dir Value Name
9 bit OUT TRUE axis.0.active
9 bit OUT TRUE axis.0.amp-enable-out ==> xenable
9 bit IN FALSE axis.0.amp-fault-in
9 float OUT 0 axis.0.backlash-corr
9 float OUT 0 axis.0.backlash-filt
9 float OUT 0 axis.0.backlash-vel
9 float OUT 0 axis.0.coarse-pos-cmd
9 bit OUT FALSE axis.0.error
9 float OUT 0 axis.0.f-error
9 float OUT 0.25 axis.0.f-error-lim
9 bit OUT FALSE axis.0.f-errored
9 bit OUT FALSE axis.0.faulted
9 float OUT 0 axis.0.free-pos-cmd
9 bit OUT FALSE axis.0.free-tp-enable
9 float OUT 0 axis.0.free-vel-lim
9 s32 OUT 0 axis.0.home-state
9 bit IN FALSE axis.0.home-sw-in <== x-home-sw-in
9 bit OUT FALSE axis.0.homed
9 bit OUT FALSE axis.0.homing
9 bit OUT TRUE axis.0.in-position
9 bit I/O FALSE axis.0.index-enable
9 s32 IN 0 axis.0.jog-counts
9 bit IN FALSE axis.0.jog-enable <== jog-x
9 float IN 0 axis.0.jog-scale
9 bit IN FALSE axis.0.jog-vel-mode
9 float OUT 0 axis.0.joint-pos-cmd
9 float OUT 0 axis.0.joint-pos-fb
9 float OUT 0 axis.0.joint-vel-cmd
9 bit OUT FALSE axis.0.kb-jog-active
9 float OUT 0 axis.0.motor-offset
9 float OUT 0 axis.0.motor-pos-cmd ==> xpos-cmd
9 float IN 0 axis.0.motor-pos-fb <== xpos-fb
9 bit OUT FALSE axis.0.neg-hard-limit
9 bit IN FALSE axis.0.neg-lim-sw-in <== limits-x-neg
9 bit OUT FALSE axis.0.pos-hard-limit
9 bit IN FALSE axis.0.pos-lim-sw-in <== limits-x-pos
9 bit OUT FALSE axis.0.wheel-jog-active
9 bit OUT TRUE axis.1.active
9 bit OUT TRUE axis.1.amp-enable-out ==> yenable
9 bit IN FALSE axis.1.amp-fault-in
9 float OUT 0 axis.1.backlash-corr
9 float OUT 0 axis.1.backlash-filt
9 float OUT 0 axis.1.backlash-vel
9 float OUT 0 axis.1.coarse-pos-cmd
9 bit OUT FALSE axis.1.error
9 float OUT 0 axis.1.f-error
9 float OUT 0.25 axis.1.f-error-lim
9 bit OUT FALSE axis.1.f-errored
9 bit OUT FALSE axis.1.faulted
9 float OUT 0 axis.1.free-pos-cmd
9 bit OUT FALSE axis.1.free-tp-enable
9 float OUT 0 axis.1.free-vel-lim
9 s32 OUT 0 axis.1.home-state
9 bit IN FALSE axis.1.home-sw-in <== y-home-sw-in
9 bit OUT FALSE axis.1.homed
9 bit OUT FALSE axis.1.homing
9 bit OUT TRUE axis.1.in-position
9 bit I/O FALSE axis.1.index-enable
9 s32 IN 0 axis.1.jog-counts
9 bit IN FALSE axis.1.jog-enable <== jog-y
9 float IN 0 axis.1.jog-scale
9 bit IN FALSE axis.1.jog-vel-mode
9 float OUT 0 axis.1.joint-pos-cmd
9 float OUT 0 axis.1.joint-pos-fb
9 float OUT 0 axis.1.joint-vel-cmd
9 bit OUT FALSE axis.1.kb-jog-active
9 float OUT 0 axis.1.motor-offset
9 float OUT 0 axis.1.motor-pos-cmd ==> ypos-cmd
9 float IN 0 axis.1.motor-pos-fb <== ypos-fb
9 bit OUT FALSE axis.1.neg-hard-limit
9 bit IN FALSE axis.1.neg-lim-sw-in <== limits-y
9 bit OUT FALSE axis.1.pos-hard-limit
9 bit IN FALSE axis.1.pos-lim-sw-in <== limits-y
9 bit OUT FALSE axis.1.wheel-jog-active
9 bit OUT TRUE axis.2.active
9 bit OUT TRUE axis.2.amp-enable-out
9 bit IN FALSE axis.2.amp-fault-in
9 float OUT 0 axis.2.backlash-corr
9 float OUT 0 axis.2.backlash-filt
9 float OUT 0 axis.2.backlash-vel
9 float OUT 0 axis.2.coarse-pos-cmd
9 bit OUT FALSE axis.2.error
9 float OUT 0 axis.2.f-error
9 float OUT 0.25 axis.2.f-error-lim
9 bit OUT FALSE axis.2.f-errored
9 bit OUT FALSE axis.2.faulted
9 float OUT 0 axis.2.free-pos-cmd
9 bit OUT FALSE axis.2.free-tp-enable
9 float OUT 0 axis.2.free-vel-lim
9 s32 OUT 0 axis.2.home-state
9 bit IN FALSE axis.2.home-sw-in <== z-home-sw-in
9 bit OUT FALSE axis.2.homed
9 bit OUT FALSE axis.2.homing
9 bit OUT TRUE axis.2.in-position
9 bit I/O FALSE axis.2.index-enable
9 s32 IN 0 axis.2.jog-counts
9 bit IN FALSE axis.2.jog-enable <== jog-z
9 float IN 0 axis.2.jog-scale
9 bit IN FALSE axis.2.jog-vel-mode
9 float OUT 0 axis.2.joint-pos-cmd
9 float OUT 0 axis.2.joint-pos-fb
9 float OUT 0 axis.2.joint-vel-cmd
9 bit OUT FALSE axis.2.kb-jog-active
9 float OUT 0 axis.2.motor-offset
9 float OUT 0 axis.2.motor-pos-cmd
9 float IN 0 axis.2.motor-pos-fb
9 bit OUT FALSE axis.2.neg-hard-limit
9 bit IN FALSE axis.2.neg-lim-sw-in <== limits-z
9 bit OUT FALSE axis.2.pos-hard-limit
9 bit IN FALSE axis.2.pos-lim-sw-in <== limits-z
9 bit OUT FALSE axis.2.wheel-jog-active
29 bit OUT FALSE axisui.jog.a
29 bit OUT FALSE axisui.jog.b
29 bit OUT FALSE axisui.jog.c
29 float OUT 0 axisui.jog.increment
29 bit OUT FALSE axisui.jog.u
29 bit OUT FALSE axisui.jog.v
29 bit OUT FALSE axisui.jog.w
29 bit OUT TRUE axisui.jog.x
29 bit OUT FALSE axisui.jog.y
29 bit OUT FALSE axisui.jog.z
29 bit IN FALSE axisui.notifications-clear
29 bit IN FALSE axisui.notifications-clear-error
29 bit IN FALSE axisui.notifications-clear-info
29 bit IN FALSE axisui.resume-inhibit
10 s32 OUT 16767 base-thread.time
21 float IN 0 classicladder.0.floatin-00
21 float IN 0 classicladder.0.floatin-01
21 float IN 0 classicladder.0.floatin-02
21 float IN 0 classicladder.0.floatin-03
21 float IN 0 classicladder.0.floatin-04
21 float IN 0 classicladder.0.floatin-05
21 float IN 0 classicladder.0.floatin-06
21 float IN 0 classicladder.0.floatin-07
21 float IN 0 classicladder.0.floatin-08
21 float IN 0 classicladder.0.floatin-09
21 float OUT 0 classicladder.0.floatout-00
21 float OUT 0 classicladder.0.floatout-01
21 float OUT 0 classicladder.0.floatout-02
21 float OUT 0 classicladder.0.floatout-03
21 float OUT 0 classicladder.0.floatout-04
21 float OUT 0 classicladder.0.floatout-05
21 float OUT 0 classicladder.0.floatout-06
21 float OUT 0 classicladder.0.floatout-07
21 float OUT 0 classicladder.0.floatout-08
21 float OUT 0 classicladder.0.floatout-09
21 bit IN FALSE classicladder.0.hide_gui
21 bit IN FALSE classicladder.0.in-00
21 bit IN FALSE classicladder.0.in-01
21 bit IN FALSE classicladder.0.in-02
21 bit IN FALSE classicladder.0.in-03
21 bit IN FALSE classicladder.0.in-04
21 bit IN FALSE classicladder.0.in-05
21 bit IN FALSE classicladder.0.in-06
21 bit IN FALSE classicladder.0.in-07
21 bit IN FALSE classicladder.0.in-08
21 bit IN FALSE classicladder.0.in-09
21 bit IN FALSE classicladder.0.in-10
21 bit IN FALSE classicladder.0.in-11
21 bit IN FALSE classicladder.0.in-12
21 bit IN FALSE classicladder.0.in-13
21 bit IN FALSE classicladder.0.in-14
21 bit OUT FALSE classicladder.0.out-00
21 bit OUT FALSE classicladder.0.out-01
21 bit OUT FALSE classicladder.0.out-02
21 bit OUT FALSE classicladder.0.out-03
21 bit OUT FALSE classicladder.0.out-04
21 bit OUT FALSE classicladder.0.out-05
21 bit OUT FALSE classicladder.0.out-06
21 bit OUT FALSE classicladder.0.out-07
21 bit OUT FALSE classicladder.0.out-08
21 bit OUT FALSE classicladder.0.out-09
21 bit OUT FALSE classicladder.0.out-10
21 bit OUT FALSE classicladder.0.out-11
21 bit OUT FALSE classicladder.0.out-12
21 bit OUT FALSE classicladder.0.out-13
21 bit OUT FALSE classicladder.0.out-14
21 s32 OUT 3399 classicladder.0.refresh.time
21 s32 IN 0 classicladder.0.s32in-00
21 s32 IN 0 classicladder.0.s32in-01
21 s32 IN 0 classicladder.0.s32in-02
21 s32 IN 0 classicladder.0.s32in-03
21 s32 IN 0 classicladder.0.s32in-04
21 s32 IN 0 classicladder.0.s32in-05
21 s32 IN 0 classicladder.0.s32in-06
21 s32 IN 0 classicladder.0.s32in-07
21 s32 IN 0 classicladder.0.s32in-08
21 s32 IN 0 classicladder.0.s32in-09
21 s32 OUT 0 classicladder.0.s32out-00
21 s32 OUT 0 classicladder.0.s32out-01
21 s32 OUT 0 classicladder.0.s32out-02
21 s32 OUT 0 classicladder.0.s32out-03
21 s32 OUT 0 classicladder.0.s32out-04
21 s32 OUT 0 classicladder.0.s32out-05
21 s32 OUT 0 classicladder.0.s32out-06
21 s32 OUT 0 classicladder.0.s32out-07
21 s32 OUT 0 classicladder.0.s32out-08
21 s32 OUT 0 classicladder.0.s32out-09
13 bit IN FALSE estop-latch.0.fault-in <== remote-estop
13 bit OUT FALSE estop-latch.0.fault-out
13 bit IN TRUE estop-latch.0.ok-in <== estop-loopin
13 bit OUT TRUE estop-latch.0.ok-out ==> estop-loopout
13 bit IN FALSE estop-latch.0.reset <== estop-reset
13 s32 OUT 183 estop-latch.0.time
13 bit OUT TRUE estop-latch.0.watchdog
17 bit IN FALSE hal_manualtoolchange.change <== tool-change
17 bit IN FALSE hal_manualtoolchange.change_button
17 bit OUT FALSE hal_manualtoolchange.changed ==> tool-changed
17 s32 IN 0 hal_manualtoolchange.number <== tool-number
7 bit IN FALSE halui.abort
7 float OUT 0 halui.axis.0.pos-commanded
7 float OUT 0 halui.axis.0.pos-feedback ==> pos-x
7 float OUT -367.5 halui.axis.0.pos-relative ==> pos-rel-x
7 float OUT 0 halui.axis.1.pos-commanded
7 float OUT 0 halui.axis.1.pos-feedback ==> pos-y
7 float OUT -810 halui.axis.1.pos-relative ==> pos-rel-y
7 float OUT 0 halui.axis.2.pos-commanded
7 float OUT 0 halui.axis.2.pos-feedback ==> pos-z
7 float OUT -79.09264 halui.axis.2.pos-relative ==> pos-rel-z
7 float OUT 0 halui.axis.3.pos-commanded
7 float OUT 0 halui.axis.3.pos-feedback
7 float OUT 0 halui.axis.3.pos-relative
7 float OUT 0 halui.axis.4.pos-commanded
7 float OUT 0 halui.axis.4.pos-feedback
7 float OUT 0 halui.axis.4.pos-relative
7 float OUT 0 halui.axis.5.pos-commanded
7 float OUT 0 halui.axis.5.pos-feedback
7 float OUT 0 halui.axis.5.pos-relative
7 float OUT 0 halui.axis.6.pos-commanded
7 float OUT 0 halui.axis.6.pos-feedback
7 float OUT 0 halui.axis.6.pos-relative
7 float OUT 0 halui.axis.7.pos-commanded
7 float OUT 0 halui.axis.7.pos-feedback
7 float OUT 0 halui.axis.7.pos-relative
7 float OUT 0 halui.axis.8.pos-commanded
7 float OUT 0 halui.axis.8.pos-feedback
7 float OUT 0 halui.axis.8.pos-relative
7 bit IN FALSE halui.estop.activate
7 bit OUT FALSE halui.estop.is-activated
7 bit IN FALSE halui.estop.reset <== estopReset
7 bit IN TRUE halui.feed-override.count-enable <== jog-feed
7 s32 IN 0 halui.feed-override.counts <== jog-counts
7 bit IN FALSE halui.feed-override.decrease
7 bit IN FALSE halui.feed-override.direct-value
7 bit IN FALSE halui.feed-override.increase
7 float IN 0.01 halui.feed-override.scale
7 float OUT 1 halui.feed-override.value ==> jog-feed2
7 bit OUT FALSE halui.flood.is-on
7 bit IN FALSE halui.flood.off
7 bit IN FALSE halui.flood.on
7 bit IN FALSE halui.home-all <== home
7 float IN 0.2 halui.jog-deadband
7 float IN 0 halui.jog-speed <== jog-speed
7 float IN 0 halui.jog.0.analog
7 float IN 0 halui.jog.0.increment
7 bit IN FALSE halui.jog.0.increment-minus
7 bit IN FALSE halui.jog.0.increment-plus
7 bit IN FALSE halui.jog.0.minus <== jog-minus-x
7 bit IN FALSE halui.jog.0.plus <== jog-plus-x
7 float IN 0 halui.jog.1.analog
7 float IN 0 halui.jog.1.increment
7 bit IN FALSE halui.jog.1.increment-minus
7 bit IN FALSE halui.jog.1.increment-plus
7 bit IN FALSE halui.jog.1.minus <== jog-minus-y
7 bit IN FALSE halui.jog.1.plus <== jog-plus-y
7 float IN 0 halui.jog.2.analog
7 float IN 0 halui.jog.2.increment
7 bit IN FALSE halui.jog.2.increment-minus
7 bit IN FALSE halui.jog.2.increment-plus
7 bit IN FALSE halui.jog.2.minus <== jog-minus-z
7 bit IN FALSE halui.jog.2.plus <== jog-plus-z
7 float IN 0 halui.jog.selected.increment
7 bit IN FALSE halui.jog.selected.increment-minus
7 bit IN FALSE halui.jog.selected.increment-plus
7 bit IN FALSE halui.jog.selected.minus
7 bit IN FALSE halui.jog.selected.plus
7 bit OUT FALSE halui.joint.0.has-fault
7 bit IN FALSE halui.joint.0.home <== gotoX0
7 bit OUT FALSE halui.joint.0.is-homed
7 bit OUT FALSE halui.joint.0.is-selected
7 bit OUT FALSE halui.joint.0.on-hard-max-limit
7 bit OUT FALSE halui.joint.0.on-hard-min-limit
7 bit OUT FALSE halui.joint.0.on-soft-max-limit
7 bit OUT FALSE halui.joint.0.on-soft-min-limit
7 bit IN FALSE halui.joint.0.select
7 bit IN FALSE halui.joint.0.unhome
7 bit OUT FALSE halui.joint.1.has-fault
7 bit IN FALSE halui.joint.1.home <== gotoY0
7 bit OUT FALSE halui.joint.1.is-homed
7 bit OUT FALSE halui.joint.1.is-selected
7 bit OUT FALSE halui.joint.1.on-hard-max-limit
7 bit OUT FALSE halui.joint.1.on-hard-min-limit
7 bit OUT FALSE halui.joint.1.on-soft-max-limit
7 bit OUT FALSE halui.joint.1.on-soft-min-limit
7 bit IN FALSE halui.joint.1.select
7 bit IN FALSE halui.joint.1.unhome
7 bit OUT FALSE halui.joint.2.has-fault
7 bit IN FALSE halui.joint.2.home <== gotoZ0
7 bit OUT FALSE halui.joint.2.is-homed
7 bit OUT FALSE halui.joint.2.is-selected
7 bit OUT FALSE halui.joint.2.on-hard-max-limit
7 bit OUT FALSE halui.joint.2.on-hard-min-limit
7 bit OUT FALSE halui.joint.2.on-soft-max-limit
7 bit OUT FALSE halui.joint.2.on-soft-min-limit
7 bit IN FALSE halui.joint.2.select
7 bit IN FALSE halui.joint.2.unhome
7 u32 OUT 0x00000000 halui.joint.selected
7 bit OUT FALSE halui.joint.selected.has-fault
7 bit IN FALSE halui.joint.selected.home
7 bit OUT FALSE halui.joint.selected.is_homed
7 bit OUT FALSE halui.joint.selected.on-hard-max-limit
7 bit OUT FALSE halui.joint.selected.on-hard-min-limit
7 bit OUT FALSE halui.joint.selected.on-soft-limit
7 bit OUT FALSE halui.joint.selected.on-soft-min-limit
7 bit IN FALSE halui.joint.selected.unhome
7 bit OUT TRUE halui.lube.is-on
7 bit IN FALSE halui.lube.off
7 bit IN FALSE halui.lube.on
7 bit OUT TRUE halui.machine.is-on
7 bit IN FALSE halui.machine.off <== machineOff
7 bit IN FALSE halui.machine.on <== machineOn
7 bit IN TRUE halui.max-velocity.count-enable
7 s32 IN 0 halui.max-velocity.counts
7 bit IN FALSE halui.max-velocity.decrease
7 bit IN FALSE halui.max-velocity.direct-value
7 bit IN FALSE halui.max-velocity.increase
7 float IN 0 halui.max-velocity.scale
7 float OUT 30 halui.max-velocity.value ==> jog-max-velocity
7 bit IN FALSE halui.mdi-command-00 <== remote-rapid-to-home
7 bit IN FALSE halui.mdi-command-01 <== remote-laserzero
7 bit IN FALSE halui.mdi-command-02 <== gotoX1/2
7 bit IN FALSE halui.mdi-command-03 <== gotoY1/2
7 bit IN FALSE halui.mdi-command-04 <== gotoZ1/2
7 bit IN FALSE halui.mdi-command-05
7 bit IN FALSE halui.mdi-command-06 <== SetCurrentPosX0
7 bit IN FALSE halui.mdi-command-07 <== SetCurrentPosY0
7 bit IN FALSE halui.mdi-command-08 <== SetCurrentPosZ0
7 bit IN FALSE halui.mdi-command-09
7 bit IN FALSE halui.mdi-command-10 <== zSafe
7 bit IN FALSE halui.mdi-command-11 <== zTouchplate
7 bit OUT FALSE halui.mist.is-on
7 bit IN FALSE halui.mist.off
7 bit IN FALSE halui.mist.on
7 bit IN FALSE halui.mode.auto
7 bit OUT FALSE halui.mode.is-auto
7 bit OUT TRUE halui.mode.is-joint
7 bit OUT TRUE halui.mode.is-manual
7 bit OUT FALSE halui.mode.is-mdi
7 bit OUT FALSE halui.mode.is-teleop
7 bit IN FALSE halui.mode.joint
7 bit IN FALSE halui.mode.manual
7 bit IN FALSE halui.mode.mdi
7 bit IN FALSE halui.mode.teleop
7 bit OUT TRUE halui.program.block-delete.is-on
7 bit IN FALSE halui.program.block-delete.off
7 bit IN FALSE halui.program.block-delete.on
7 bit OUT TRUE halui.program.is-idle
7 bit OUT FALSE halui.program.is-paused
7 bit OUT FALSE halui.program.is-running
7 bit OUT FALSE halui.program.optional-stop.is-on
7 bit IN FALSE halui.program.optional-stop.off
7 bit IN FALSE halui.program.optional-stop.on
7 bit IN FALSE halui.program.pause
7 bit IN FALSE halui.program.resume
7 bit IN FALSE halui.program.run
7 bit IN FALSE halui.program.step <== step
7 bit IN FALSE halui.program.stop
7 bit IN TRUE halui.rapid-override.count-enable
7 s32 IN 0 halui.rapid-override.counts
7 bit IN FALSE halui.rapid-override.decrease
7 bit IN FALSE halui.rapid-override.direct-value
7 bit IN FALSE halui.rapid-override.increase
7 float IN 0.1 halui.rapid-override.scale
7 float OUT 1 halui.rapid-override.value
7 bit IN TRUE halui.spindle-override.count-enable <== jog-spindle
7 s32 IN 0 halui.spindle-override.counts <== jog-counts
7 bit IN FALSE halui.spindle-override.decrease
7 bit IN FALSE halui.spindle-override.direct-value
7 bit IN FALSE halui.spindle-override.increase
7 float IN 0.01 halui.spindle-override.scale
7 float OUT 1 halui.spindle-override.value ==> jog-spindle2
7 bit OUT TRUE halui.spindle.brake-is-on
7 bit IN FALSE halui.spindle.brake-off
7 bit IN FALSE halui.spindle.brake-on
7 bit IN FALSE halui.spindle.decrease
7 bit IN FALSE halui.spindle.forward
7 bit IN FALSE halui.spindle.increase
7 bit OUT FALSE halui.spindle.is-on ==> is_spindle_on
7 bit IN FALSE halui.spindle.reverse
7 bit OUT FALSE halui.spindle.runs-backward
7 bit OUT FALSE halui.spindle.runs-forward
7 bit IN FALSE halui.spindle.start <== flip_to_spindle-on
7 bit IN FALSE halui.spindle.stop <== flip_to_spindle-off
7 float OUT 0 halui.tool.length_offset.a
7 float OUT 0 halui.tool.length_offset.b
7 float OUT 0 halui.tool.length_offset.c
7 float OUT 0 halui.tool.length_offset.u
7 float OUT 0 halui.tool.length_offset.v
7 float OUT 0 halui.tool.length_offset.w
7 float OUT 0 halui.tool.length_offset.x
7 float OUT 0 halui.tool.length_offset.y
7 float OUT 0 halui.tool.length_offset.z
7 u32 OUT 0x00000000 halui.tool.number
27 float IN 0 ini.0.backlash
27 float IN 1 ini.0.ferror
27 float IN 350 ini.0.max_acceleration
27 float IN 735 ini.0.max_limit
27 float IN 40 ini.0.max_velocity
27 float IN 0.25 ini.0.min_ferror
27 float IN -0.001 ini.0.min_limit
27 float IN 0 ini.1.backlash
27 float IN 1 ini.1.ferror
27 float IN 350 ini.1.max_acceleration
27 float IN 815 ini.1.max_limit
27 float IN 40 ini.1.max_velocity
27 float IN 0.25 ini.1.min_ferror
27 float IN -0.001 ini.1.min_limit
27 float IN 0 ini.2.backlash
27 float IN 1 ini.2.ferror
27 float IN 350 ini.2.max_acceleration
27 float IN 230.001 ini.2.max_limit
27 float IN 40 ini.2.max_velocity
27 float IN 0.25 ini.2.min_ferror
27 float IN 0 ini.2.min_limit
27 float IN 0 ini.3.backlash
27 float IN 0 ini.3.ferror
27 float IN 0 ini.3.max_acceleration
27 float IN 0 ini.3.max_limit
27 float IN 0 ini.3.max_velocity
27 float IN 0 ini.3.min_ferror
27 float IN 0 ini.3.min_limit
27 float IN 0 ini.4.backlash
27 float IN 0 ini.4.ferror
27 float IN 0 ini.4.max_acceleration
27 float IN 0 ini.4.max_limit
27 float IN 0 ini.4.max_velocity
27 float IN 0 ini.4.min_ferror
27 float IN 0 ini.4.min_limit
27 float IN 0 ini.5.backlash
27 float IN 0 ini.5.ferror
27 float IN 0 ini.5.max_acceleration
27 float IN 0 ini.5.max_limit
27 float IN 0 ini.5.max_velocity
27 float IN 0 ini.5.min_ferror
27 float IN 0 ini.5.min_limit
27 float IN 0 ini.6.backlash
27 float IN 0 ini.6.ferror
27 float IN 0 ini.6.max_acceleration
27 float IN 0 ini.6.max_limit
27 float IN 0 ini.6.max_velocity
27 float IN 0 ini.6.min_ferror
27 float IN 0 ini.6.min_limit
27 float IN 0 ini.7.backlash
27 float IN 0 ini.7.ferror
27 float IN 0 ini.7.max_acceleration
27 float IN 0 ini.7.max_limit
27 float IN 0 ini.7.max_velocity
27 float IN 0 ini.7.min_ferror
27 float IN 0 ini.7.min_limit
27 float IN 0 ini.8.backlash
27 float IN 0 ini.8.ferror
27 float IN 0 ini.8.max_acceleration
27 float IN 0 ini.8.max_limit
27 float IN 0 ini.8.max_velocity
27 float IN 0 ini.8.min_ferror
27 float IN 0 ini.8.min_limit
27 bit IN TRUE ini.traj_arc_blend_enable
27 bit IN FALSE ini.traj_arc_blend_fallback_enable
27 float IN 4 ini.traj_arc_blend_gap_cycles
27 s32 IN 50 ini.traj_arc_blend_optimization_depth
27 float IN 100 ini.traj_arc_blend_ramp_freq
27 float IN 0.1 ini.traj_arc_blend_tangent_kink_ratio
27 float IN 1e+99 ini.traj_default_acceleration
27 float IN 3 ini.traj_default_velocity
27 float IN 1e+99 ini.traj_max_acceleration
27 float IN 30 ini.traj_max_velocity
5 bit OUT FALSE iocontrol.0.coolant-flood
5 bit OUT FALSE iocontrol.0.coolant-mist
5 bit IN TRUE iocontrol.0.emc-enable-in <== estop-loopout
5 bit OUT TRUE iocontrol.0.lube
5 bit IN FALSE iocontrol.0.lube_level
5 bit OUT FALSE iocontrol.0.tool-change ==> tool-change
5 bit IN FALSE iocontrol.0.tool-changed <== tool-changed
5 s32 OUT 0 iocontrol.0.tool-number
5 s32 OUT 0 iocontrol.0.tool-prep-number ==> tool-number
5 s32 OUT 0 iocontrol.0.tool-prep-pocket
5 bit OUT FALSE iocontrol.0.tool-prepare ==> tool-prepare-loopback
5 bit IN FALSE iocontrol.0.tool-prepared <== tool-prepare-loopback
5 bit OUT TRUE iocontrol.0.user-enable-out ==> estop-loopin
5 bit OUT FALSE iocontrol.0.user-request-enable ==> estop-reset
20 bit OUT TRUE lcec.0.D1.slave-online
20 bit OUT TRUE lcec.0.D1.slave-oper
20 bit OUT FALSE lcec.0.D1.slave-state-init
20 bit OUT TRUE lcec.0.D1.slave-state-op
20 bit OUT FALSE lcec.0.D1.slave-state-preop
20 bit OUT FALSE lcec.0.D1.slave-state-safeop
20 bit OUT TRUE lcec.0.D2.din-0
20 bit OUT FALSE lcec.0.D2.din-0-not ==> limits-x-neg
20 bit OUT TRUE lcec.0.D2.din-1
20 bit OUT FALSE lcec.0.D2.din-1-not ==> limits-y
20 bit OUT TRUE lcec.0.D2.din-2
20 bit OUT FALSE lcec.0.D2.din-2-not ==> limits-z
20 bit OUT FALSE lcec.0.D2.din-3
20 bit OUT TRUE lcec.0.D2.din-3-not
20 bit OUT TRUE lcec.0.D2.slave-online
20 bit OUT TRUE lcec.0.D2.slave-oper
20 bit OUT FALSE lcec.0.D2.slave-state-init
20 bit OUT TRUE lcec.0.D2.slave-state-op
20 bit OUT FALSE lcec.0.D2.slave-state-preop
20 bit OUT FALSE lcec.0.D2.slave-state-safeop
20 bit OUT TRUE lcec.0.D3.din-0
20 bit OUT FALSE lcec.0.D3.din-0-not ==> x-home-sw-in
20 bit OUT TRUE lcec.0.D3.din-1
20 bit OUT FALSE lcec.0.D3.din-1-not ==> y-home-sw-in
20 bit OUT TRUE lcec.0.D3.din-2
20 bit OUT FALSE lcec.0.D3.din-2-not ==> z-home-sw-in
20 bit OUT FALSE lcec.0.D3.din-3
20 bit OUT TRUE lcec.0.D3.din-3-not
20 bit OUT TRUE lcec.0.D3.din-4
20 bit OUT FALSE lcec.0.D3.din-4-not ==> limits-x-pos
20 bit OUT FALSE lcec.0.D3.din-5
20 bit OUT TRUE lcec.0.D3.din-5-not
20 bit OUT FALSE lcec.0.D3.din-6 ==> probe-z
20 bit OUT TRUE lcec.0.D3.din-6-not
20 bit OUT TRUE lcec.0.D3.din-7
20 bit OUT FALSE lcec.0.D3.din-7-not ==> estop_beckhoff
20 bit OUT TRUE lcec.0.D3.slave-online
20 bit OUT TRUE lcec.0.D3.slave-oper
20 bit OUT FALSE lcec.0.D3.slave-state-init
20 bit OUT TRUE lcec.0.D3.slave-state-op
20 bit OUT FALSE lcec.0.D3.slave-state-preop
20 bit OUT FALSE lcec.0.D3.slave-state-safeop
20 bit OUT FALSE lcec.0.D4.din-0
20 bit OUT TRUE lcec.0.D4.din-0-not
20 bit OUT FALSE lcec.0.D4.din-1
20 bit OUT TRUE lcec.0.D4.din-1-not
20 bit OUT FALSE lcec.0.D4.din-2
20 bit OUT TRUE lcec.0.D4.din-2-not
20 bit OUT FALSE lcec.0.D4.din-3
20 bit OUT TRUE lcec.0.D4.din-3-not
20 bit OUT FALSE lcec.0.D4.din-4
20 bit OUT TRUE lcec.0.D4.din-4-not
20 bit OUT FALSE lcec.0.D4.din-5
20 bit OUT TRUE lcec.0.D4.din-5-not
20 bit OUT FALSE lcec.0.D4.din-6
20 bit OUT TRUE lcec.0.D4.din-6-not
20 bit OUT FALSE lcec.0.D4.din-7
20 bit OUT TRUE lcec.0.D4.din-7-not
20 bit OUT TRUE lcec.0.D4.slave-online
20 bit OUT TRUE lcec.0.D4.slave-oper
20 bit OUT FALSE lcec.0.D4.slave-state-init
20 bit OUT TRUE lcec.0.D4.slave-state-op
20 bit OUT FALSE lcec.0.D4.slave-state-preop
20 bit OUT FALSE lcec.0.D4.slave-state-safeop
20 bit IN FALSE lcec.0.D5.dout-0 <== spindle-on
20 bit IN FALSE lcec.0.D5.dout-1 <== coolant-on
20 bit IN FALSE lcec.0.D5.dout-2
20 bit IN FALSE lcec.0.D5.dout-3
20 bit IN FALSE lcec.0.D5.dout-4
20 bit IN FALSE lcec.0.D5.dout-5
20 bit IN FALSE lcec.0.D5.dout-6
20 bit IN FALSE lcec.0.D5.dout-7
20 bit OUT TRUE lcec.0.D5.slave-online
20 bit OUT TRUE lcec.0.D5.slave-oper
20 bit OUT FALSE lcec.0.D5.slave-state-init
20 bit OUT TRUE lcec.0.D5.slave-state-op
20 bit OUT FALSE lcec.0.D5.slave-state-preop
20 bit OUT FALSE lcec.0.D5.slave-state-safeop
20 bit IN FALSE lcec.0.D6.dout-0
20 bit IN FALSE lcec.0.D6.dout-1
20 bit IN FALSE lcec.0.D6.dout-2
20 bit IN FALSE lcec.0.D6.dout-3
20 bit IN FALSE lcec.0.D6.dout-4
20 bit IN FALSE lcec.0.D6.dout-5
20 bit IN FALSE lcec.0.D6.dout-6
20 bit IN FALSE lcec.0.D6.dout-7
20 bit OUT TRUE lcec.0.D6.slave-online
20 bit OUT TRUE lcec.0.D6.slave-oper
20 bit OUT FALSE lcec.0.D6.slave-state-init
20 bit OUT TRUE lcec.0.D6.slave-state-op
20 bit OUT FALSE lcec.0.D6.slave-state-preop
20 bit OUT FALSE lcec.0.D6.slave-state-safeop
20 s32 OUT 21660738 lcec.0.D7.enc-count
20 bit OUT FALSE lcec.0.D7.enc-count-overflow
20 bit OUT TRUE lcec.0.D7.enc-count-underflow
20 bit OUT FALSE lcec.0.D7.enc-expol-stall
20 bit OUT FALSE lcec.0.D7.enc-ina
20 bit OUT FALSE lcec.0.D7.enc-inb
20 bit OUT FALSE lcec.0.D7.enc-inc
20 bit I/O FALSE lcec.0.D7.enc-index-ext-neg-enable
20 bit I/O FALSE lcec.0.D7.enc-index-ext-pos-enable
20 bit OUT FALSE lcec.0.D7.enc-inext
20 bit I/O FALSE lcec.0.D7.enc-latch-c-enable
20 bit OUT FALSE lcec.0.D7.enc-latch-c-valid
20 bit OUT FALSE lcec.0.D7.enc-latch-ext-valid
20 float OUT 2.166074e+07 lcec.0.D7.enc-pos
20 float I/O 1 lcec.0.D7.enc-pos-scale
20 s32 OUT 9414 lcec.0.D7.enc-raw-count
20 s32 OUT 0 lcec.0.D7.enc-raw-latch
20 bit IN FALSE lcec.0.D7.enc-reset
20 bit I/O FALSE lcec.0.D7.enc-set-raw-count
20 s32 IN 0 lcec.0.D7.enc-set-raw-count-val
20 bit OUT FALSE lcec.0.D7.enc-sync-error
20 bit OUT FALSE lcec.0.D7.enc-tx-toggle
20 bit OUT TRUE lcec.0.D7.slave-online
20 bit OUT TRUE lcec.0.D7.slave-oper
20 bit OUT FALSE lcec.0.D7.slave-state-init
20 bit OUT TRUE lcec.0.D7.slave-state-op
20 bit OUT FALSE lcec.0.D7.slave-state-preop
20 bit OUT FALSE lcec.0.D7.slave-state-safeop
20 bit IN FALSE lcec.0.D7.srv-absmode
20 float IN 0.5 lcec.0.D7.srv-cmd
20 float OUT 0.5 lcec.0.D7.srv-curr-dc
20 bit OUT FALSE lcec.0.D7.srv-din1
20 bit OUT FALSE lcec.0.D7.srv-din2
20 bit IN TRUE lcec.0.D7.srv-enable
20 bit OUT FALSE lcec.0.D7.srv-error
20 bit OUT FALSE lcec.0.D7.srv-fault
20 bit IN FALSE lcec.0.D7.srv-fault-reset
20 float I/O 1 lcec.0.D7.srv-max-dc
20 float I/O -1 lcec.0.D7.srv-min-dc
20 bit OUT FALSE lcec.0.D7.srv-move-neg
20 bit OUT TRUE lcec.0.D7.srv-move-pos
20 float I/O 0 lcec.0.D7.srv-offset
20 s32 OUT 16383 lcec.0.D7.srv-raw-cmd
20 bit OUT TRUE lcec.0.D7.srv-ready
20 bit OUT TRUE lcec.0.D7.srv-ready-to-enable
20 bit IN FALSE lcec.0.D7.srv-reduce-torque
20 bit IN FALSE lcec.0.D7.srv-reset
20 float I/O 1 lcec.0.D7.srv-scale
20 bit OUT FALSE lcec.0.D7.srv-sync-error
20 bit OUT FALSE lcec.0.D7.srv-torque-reduced
20 bit OUT FALSE lcec.0.D7.srv-tx-toggle
20 bit OUT TRUE lcec.0.D7.srv-warning
20 bit OUT FALSE lcec.0.all-op
20 bit OUT TRUE lcec.0.link-up
20 s32 OUT 0 lcec.0.read.time
20 u32 OUT 0x00000008 lcec.0.slaves-responding
20 bit OUT FALSE lcec.0.state-init
20 bit OUT TRUE lcec.0.state-op
20 bit OUT TRUE lcec.0.state-preop
20 bit OUT FALSE lcec.0.state-safeop
20 s32 OUT 0 lcec.0.write.time
20 bit OUT FALSE lcec.all-op ==> ec-all-op
19 u32 OUT 0x00000001 lcec.conf.master-count
19 u32 OUT 0x00000007 lcec.conf.slave-count
20 bit OUT TRUE lcec.link-up ==> ec-link-up
20 s32 OUT 12918 lcec.read-all.time
20 u32 OUT 0x00000008 lcec.slaves-responding ==> ec-slaves-responding
20 bit OUT FALSE lcec.state-init
20 bit OUT TRUE lcec.state-op
20 bit OUT TRUE lcec.state-preop
20 bit OUT FALSE lcec.state-safeop
20 s32 OUT 4524 lcec.write-all.time
9 s32 OUT 960 motion-command-handler.time
9 s32 OUT 7083 motion-controller.time
9 float IN 1 motion.adaptive-feed
9 float IN 0 motion.analog-in-00
9 float IN 0 motion.analog-in-01
9 float IN 0 motion.analog-in-02
9 float IN 0 motion.analog-in-03
9 float OUT 0 motion.analog-out-00
9 float OUT 0 motion.analog-out-01
9 float OUT 0 motion.analog-out-02
9 float OUT 0 motion.analog-out-03
9 bit OUT FALSE motion.coord-error
9 bit OUT FALSE motion.coord-mode
9 float OUT 0 motion.current-vel
9 bit IN FALSE motion.digital-in-00
9 bit IN FALSE motion.digital-in-01
9 bit IN FALSE motion.digital-in-02
9 bit IN FALSE motion.digital-in-03
9 bit OUT FALSE motion.digital-out-00
9 bit OUT FALSE motion.digital-out-01
9 bit OUT FALSE motion.digital-out-02
9 bit OUT FALSE motion.digital-out-03
9 float OUT 0 motion.distance-to-go
9 bit IN TRUE motion.enable
9 bit IN FALSE motion.feed-hold
9 bit IN FALSE motion.feed-inhibit
9 bit OUT TRUE motion.in-position
9 bit OUT TRUE motion.motion-enabled
9 s32 OUT 0 motion.motion-type
9 bit OUT FALSE motion.on-soft-limit
9 bit IN FALSE motion.probe-input <== probe-z
9 s32 OUT 0 motion.program-line
9 float OUT 0 motion.requested-vel
9 bit IN TRUE motion.spindle-at-speed <== spindle-at-speed
9 bit OUT TRUE motion.spindle-brake
9 bit OUT FALSE motion.spindle-forward
9 bit I/O FALSE motion.spindle-index-enable
9 bit IN FALSE motion.spindle-inhibit
9 bit IN FALSE motion.spindle-is-oriented
9 bit OUT FALSE motion.spindle-locked
9 bit OUT FALSE motion.spindle-on ==> spindle-on
9 bit OUT FALSE motion.spindle-orient
9 float OUT 0 motion.spindle-orient-angle
9 s32 IN 0 motion.spindle-orient-fault
9 s32 OUT 0 motion.spindle-orient-mode
9 bit OUT FALSE motion.spindle-reverse
9 float IN 0 motion.spindle-revs
9 float OUT 0 motion.spindle-speed-cmd-rps ==> spindle-rps
9 float IN 0 motion.spindle-speed-in
9 float OUT 0 motion.spindle-speed-out ==> spindle-cmd-rpm
9 float OUT 0 motion.spindle-speed-out-abs ==> spindle-cmd-rpm-abs
9 float OUT 0 motion.spindle-speed-out-rps ==> spindle-cmd-rps
9 float OUT 0 motion.spindle-speed-out-rps-abs ==> spindle-cmd-rps-abs
9 bit OUT FALSE motion.teleop-mode
9 float OUT 0 motion.tooloffset.a
9 float OUT 0 motion.tooloffset.b
9 float OUT 0 motion.tooloffset.c
9 float OUT 0 motion.tooloffset.u
9 float OUT 0 motion.tooloffset.v
9 float OUT 0 motion.tooloffset.w
9 float OUT 0 motion.tooloffset.x
9 float OUT 0 motion.tooloffset.y
9 float OUT 0 motion.tooloffset.z
12 bit IN FALSE or2.0.in0 <== estop_beckhoff
12 bit IN FALSE or2.0.in1 <== estop_xhc-hb04
12 bit OUT FALSE or2.0.out ==> remote-estop
12 s32 OUT 165 or2.0.time
14 bit IN FALSE parport.0.pin-01-out
14 bit IN FALSE parport.0.pin-02-out <== xstep
14 bit IN FALSE parport.0.pin-03-out <== xdir
14 bit IN FALSE parport.0.pin-04-out <== ystep
14 bit IN FALSE parport.0.pin-05-out <== ydir
14 bit IN FALSE parport.0.pin-06-out <== ystep
14 bit IN FALSE parport.0.pin-07-out <== ydir
14 bit IN FALSE parport.0.pin-08-out
14 bit IN FALSE parport.0.pin-09-out
14 bit OUT TRUE parport.0.pin-10-in
14 bit OUT FALSE parport.0.pin-10-in-not
14 bit OUT TRUE parport.0.pin-11-in
14 bit OUT FALSE parport.0.pin-11-in-not
14 bit OUT TRUE parport.0.pin-12-in
14 bit OUT FALSE parport.0.pin-12-in-not
14 bit OUT TRUE parport.0.pin-13-in
14 bit OUT FALSE parport.0.pin-13-in-not
14 bit IN FALSE parport.0.pin-14-out
14 bit OUT TRUE parport.0.pin-15-in
14 bit OUT FALSE parport.0.pin-15-in-not
14 bit IN FALSE parport.0.pin-16-out <== spindle-on
14 bit IN TRUE parport.0.pin-17-out <== xenable
14 s32 OUT 5922 parport.0.read.time
14 s32 OUT 156 parport.0.reset.time
14 s32 OUT 10365 parport.0.write.time
14 s32 OUT 0 parport.read-all.time
14 s32 OUT 0 parport.write-all.time
29 bit OUT FALSE pyvcp.laserzero ==> remote-laserzero
29 bit OUT FALSE pyvcp.rapid-to-home ==> remote-rapid-to-home
29 bit IN TRUE pyvcp.spindle-at-speed-led <== spindle-at-speed
29 float IN 0 pyvcp.spindle-speed <== spindle-cmd-rpm-abs
11 s32 OUT 34119 servo-thread.time
15 s32 OUT 0 stepgen.0.counts
15 bit OUT FALSE stepgen.0.dir ==> xdir
15 bit IN TRUE stepgen.0.enable <== xenable
15 float IN 0 stepgen.0.position-cmd <== xpos-cmd
15 float OUT 0 stepgen.0.position-fb ==> xpos-fb
15 bit OUT FALSE stepgen.0.step ==> xstep
15 s32 OUT 0 stepgen.1.counts
15 bit OUT FALSE stepgen.1.dir ==> ydir
15 bit IN TRUE stepgen.1.enable <== yenable
15 float IN 0 stepgen.1.position-cmd <== ypos-cmd
15 float OUT 0 stepgen.1.position-fb ==> ypos-fb
15 bit OUT FALSE stepgen.1.step ==> ystep
15 s32 OUT 219 stepgen.capture-position.time
15 s32 OUT 276 stepgen.make-pulses.time
15 s32 OUT 1092 stepgen.update-freq.time
26 bit IN FALSE toggle2nist_spindle.in <== tog_spindle_out
26 bit IN FALSE toggle2nist_spindle.is-on <== is_spindle_on
26 bit OUT FALSE toggle2nist_spindle.off ==> flip_to_spindle-off
26 bit OUT FALSE toggle2nist_spindle.on ==> flip_to_spindle-on
26 s32 OUT 717 toggle2nist_spindle.time
25 bit IN FALSE toggle_spindle.in <== tog_spindle
25 bit I/O FALSE toggle_spindle.out <=> tog_spindle_out
25 s32 OUT 375 toggle_spindle.time
24 float IN 0 xhc-hb04.a.pos-absolute
24 float IN 0 xhc-hb04.a.pos-relative
24 bit OUT FALSE xhc-hb04.button-goto-zero
24 bit OUT FALSE xhc-hb04.button-goto-zero-a
24 bit OUT FALSE xhc-hb04.button-goto-zero-x ==> gotoX0
24 bit OUT FALSE xhc-hb04.button-goto-zero-y ==> gotoY0
24 bit OUT FALSE xhc-hb04.button-goto-zero-z ==> gotoZ0
24 bit OUT FALSE xhc-hb04.button-half
24 bit OUT FALSE xhc-hb04.button-half-a
24 bit OUT FALSE xhc-hb04.button-half-x ==> gotoX1/2
24 bit OUT FALSE xhc-hb04.button-half-y ==> gotoY1/2
24 bit OUT FALSE xhc-hb04.button-half-z ==> gotoZ1/2
24 bit OUT FALSE xhc-hb04.button-home ==> home
24 bit OUT FALSE xhc-hb04.button-macro-1
24 bit OUT FALSE xhc-hb04.button-macro-2 ==> machineOn
24 bit OUT FALSE xhc-hb04.button-macro-3
24 bit OUT FALSE xhc-hb04.button-macro-6 ==> machineOff
24 bit OUT FALSE xhc-hb04.button-macro-7 ==> estopReset
24 bit OUT FALSE xhc-hb04.button-mode
24 bit OUT FALSE xhc-hb04.button-probe-z ==> zTouchplate
24 bit OUT FALSE xhc-hb04.button-reset ==> estop_xhc-hb04
24 bit OUT FALSE xhc-hb04.button-rewind ==> step
24 bit OUT FALSE xhc-hb04.button-safe-z ==> zSafe
24 bit OUT FALSE xhc-hb04.button-spindle ==> tog_spindle
24 bit OUT FALSE xhc-hb04.button-start-pause
24 bit OUT FALSE xhc-hb04.button-step ==> speed-up
24 bit OUT FALSE xhc-hb04.button-stop
24 bit OUT FALSE xhc-hb04.button-zero
24 bit OUT FALSE xhc-hb04.button-zero-a
24 bit OUT FALSE xhc-hb04.button-zero-x ==> SetCurrentPosX0
24 bit OUT FALSE xhc-hb04.button-zero-y ==> SetCurrentPosY0
24 bit OUT FALSE xhc-hb04.button-zero-z ==> SetCurrentPosZ0
24 bit OUT FALSE xhc-hb04.connected
24 float IN 1 xhc-hb04.feed-override <== jog-feed2
24 float IN 0 xhc-hb04.feed-value
24 bit IN FALSE xhc-hb04.inch-icon
24 s32 OUT 0 xhc-hb04.jog.counts
24 s32 OUT 0 xhc-hb04.jog.counts-neg
24 bit OUT FALSE xhc-hb04.jog.enable-a
24 bit OUT TRUE xhc-hb04.jog.enable-feed-override ==> jog-feed
24 bit OUT FALSE xhc-hb04.jog.enable-off
24 bit OUT TRUE xhc-hb04.jog.enable-spindle-override ==> jog-spindle
24 bit OUT FALSE xhc-hb04.jog.enable-x ==> jog-x
24 bit OUT FALSE xhc-hb04.jog.enable-y ==> jog-y
24 bit OUT FALSE xhc-hb04.jog.enable-z ==> jog-z
24 float OUT 0 xhc-hb04.jog.increment
24 float IN 30 xhc-hb04.jog.max-velocity <== jog-max-velocity
24 bit OUT FALSE xhc-hb04.jog.minus-a
24 bit OUT FALSE xhc-hb04.jog.minus-x ==> jog-minus-x
24 bit OUT FALSE xhc-hb04.jog.minus-y ==> jog-minus-y
24 bit OUT FALSE xhc-hb04.jog.minus-z ==> jog-minus-z
24 bit OUT FALSE xhc-hb04.jog.plus-a
24 bit OUT FALSE xhc-hb04.jog.plus-x ==> jog-plus-x
24 bit OUT FALSE xhc-hb04.jog.plus-y ==> jog-plus-y
24 bit OUT FALSE xhc-hb04.jog.plus-z ==> jog-plus-z
24 float OUT 0 xhc-hb04.jog.scale
24 float OUT 0 xhc-hb04.jog.velocity ==> jog-speed
24 bit OUT FALSE xhc-hb04.require_pendant
24 bit OUT FALSE xhc-hb04.sleeping
24 float IN 1 xhc-hb04.spindle-override <== jog-spindle2
24 float IN 0 xhc-hb04.spindle-rps <== spindle-rps
24 s32 OUT 1 xhc-hb04.stepsize
24 bit IN FALSE xhc-hb04.stepsize-down
24 bit IN FALSE xhc-hb04.stepsize-up <== speed-up
24 float IN 0 xhc-hb04.x.pos-absolute <== pos-x
24 float IN -367.5 xhc-hb04.x.pos-relative <== pos-rel-x
24 float IN 0 xhc-hb04.y.pos-absolute <== pos-y
24 float IN -810 xhc-hb04.y.pos-relative <== pos-rel-y
24 float IN 0 xhc-hb04.z.pos-absolute <== pos-z
24 float IN -79.09264 xhc-hb04.z.pos-relative <== pos-rel-z
22 float IN 0 z-pid.Dgain
22 float IN 0 z-pid.FF0
22 float IN 0 z-pid.FF1
22 float IN 0 z-pid.FF2
22 float IN 0 z-pid.Igain
22 float IN 1 z-pid.Pgain
22 float IN 0 z-pid.bias
22 float IN 0 z-pid.command
22 float IN 0 z-pid.command-deriv
22 float IN 0 z-pid.deadband
22 s32 OUT 708 z-pid.do-pid-calcs.time
22 bit IN FALSE z-pid.enable
22 float OUT 0 z-pid.error
22 bit IN TRUE z-pid.error-previous-target
22 float IN 0 z-pid.feedback
22 float IN 0 z-pid.feedback-deriv
22 bit IN FALSE z-pid.index-enable
22 float IN 0 z-pid.maxcmdD
22 float IN 0 z-pid.maxcmdDD
22 float IN 0 z-pid.maxerror
22 float IN 0 z-pid.maxerrorD
22 float IN 0 z-pid.maxerrorI
22 float IN 0 z-pid.maxoutput
22 float OUT 0 z-pid.output
22 bit OUT FALSE z-pid.saturated
22 s32 OUT 0 z-pid.saturated-count
22 float OUT 0 z-pid.saturated-s

List servo faults:

halcmd show pin | grep srv | grep fau
Return 20 bit OUT FALSE lcec.0.D7.srv-fault
20 bit IN FALSE lcec.0.D7.srv-fault-reset:

Enable Servo:
halcmd setp lcec.0.D7.srv-enable 1
Return: NONE
Comment: Hardware LED for MOVE_CW and ENABLE are now active. When setting to "0", both getting dark.

Read Maximum Motor Current (mA)
ethercat upload -p 6 -t uint16 0x8010 0x01
Return: 0x1388 5000

Drive Motor
halcmd setp lcec.0.D7.srv-cmd 0.5
Return: NONE

Read Microstepping Setting from Driver
sudo ethercat upload -p 6 -t uint8 0x8012 0x45
Return: SDO transfer aborted with code 0x06090011: Subindex does not exist

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

More
07 Dec 2017 19:09 #102750 by Hawkeye
Short update from my side:
Yesterday the Beckhoff EL7041-0000 hit the bottom of the trash bin, as it I had the chance to run my
LinuxCNC config on another EL7041-0000. Looks like my I purchased a broken EL7041 on eBay..!

Anyway, now I have the situation that my 3.0A motor got boiling hot after 30Minutes of try and error.
As far as I can see, the configuration inside EL7041 can remain on factory default settings.
as the internal encoder is active with this settings. Can someone help me setting up an simple
configuration for my X-Axis using internal encoders?

There are some generals questions I have:
- Do I have to setup an encoder (PID-Objects) in hal driver or would it be sufficient to map the variables/signals/values from axis-objects to lcec-objects? Please see github.com/koppi/mk/blob/master/linuxcnc...cnc/koppi-cnc-io.hal and github.com/koppi/mk/blob/master/linuxcnc...pi-cnc/koppi-cnc.hal
- Where is the advantage of using an encoder (internal or external)?
If there was a step failure, it seems not to make any difference to me if I either use an internal or an external encoder,
because the work piece is broken or (out of tolerance) anyway.

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

More
07 Dec 2017 22:17 - 07 Dec 2017 22:18 #102751 by Allan
Hello Hawkeye

My understanding is that the difference between the internal and external encoder is that the external encoder measures real movement and will prevent mechanical damage and ensure that you are measuring real shaft movement.

I am sorry to learn that you have a damaged 7041.

I am happy to try to help you with your settings. I have attached current copies of the setup files I am using. This is a gantry setup using verion 2.8 with two y-motors.

Allan

File Attachment:

File Name: koppi-cnc-...mp-4.zip
File Size:735 KB
Attachments:
Last edit: 07 Dec 2017 22:18 by Allan.

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

Time to create page: 0.162 seconds
Powered by Kunena Forum