- Posts: 193
- Thank you received: 57
Ethercat HAL driver
- sirop
- Offline
- Elite Member
-
Less
More
9 years 6 months ago #92423
by sirop
Replied by sirop on topic Ethercat HAL driver
You can still build from sources:
Code:
# Be sure to have the linuxcnc-dev
$ git clone https://github.com/sittner/linuxcnc-ethercat
$ make -C linuxcnc-ethercat all
$ sudo make -C linuxcnc-ethercat install
The following user(s) said Thank You: wazza77
Please Log in or Create an account to join the conversation.
- Allan
- Offline
- Junior Member
-
Less
More
- Posts: 26
- Thank you received: 5
9 years 6 months ago - 9 years 6 months ago #92437
by Allan
Replied by Allan on topic Ethercat HAL driver
Hello wazza77
I have attached notes I made when installing the driver recently. I hope you find them useful.
Allan
I have attached notes I made when installing the driver recently. I hope you find them useful.
Allan
Last edit: 9 years 6 months ago by Allan. Reason: File extension odt not allowed.
The following user(s) said Thank You: wazza77
Please Log in or Create an account to join the conversation.
- wazza77
- Offline
- Senior Member
-
Less
More
- Posts: 60
- Thank you received: 2
9 years 6 months ago #92442
by wazza77
Replied by wazza77 on topic Ethercat HAL driver
thanks for the quick reply I will have a crack at it in the next few hours.
I did not get the full force of the cyclone here on the east coast of oz but I can tell you
that over 500mm or 20" of rain in 80 minutes makes things interesting I can tell you
I did not get the full force of the cyclone here on the east coast of oz but I can tell you
that over 500mm or 20" of rain in 80 minutes makes things interesting I can tell you
Please Log in or Create an account to join the conversation.
- wazza77
- Offline
- Senior Member
-
Less
More
- Posts: 60
- Thank you received: 2
9 years 5 months ago #92560
by wazza77
Replied by wazza77 on topic Ethercat HAL driver
Thanks, guys I have it up and running I had trouble with the concept of it installing the driver in the existing linuxcnc
that came with the setup I have had to change my XML to suit including <masters> <./Masters and I was using roschi's modification for halType="special32"
and i am now using the halType="complex"
e.g.
<pdoEntry idx="607A" subIdx="00" halType="complex" bitLen="32">
<complexEntry halType="float" halPin="poscommand" bitLen="32" scale="1000"/>
</pdoEntry>
but when I started linuxcnc axis would come up and as it was configuring the drives my estun drives would set an alarm complaining
About the electric gear ratio being an unreasonable number or along these lines.
The drives set this via an array as a ratio of pulses a revolution (numerator) and distance travelled a revolution (deviser)
e.g.
<sdoConfig idx="6093" subIdx="1"><sdoDataRaw data="00 80 00 00"/></sdoConfig>
<sdoConfig idx="6093" subIdx="2"><sdoDataRaw data="E2 04 00 00"/></sdoConfig>
the values given were originally from roschi and they worked for my previous setup all I did was change the scale value on the pdoEntry idx 607A
so I recalculated for my setup and ended up with smaller values, so I changed the this allowed me to get to the drives ready stage but
when I toggle the button for machine power, the drives give me the same error meaning I have my scale incorrect.
I have been messing with this all day today, but I am sure I don't understand how the halType complex works and this is truly where my problem is.
Hopefuly someone can give me some incite into this I would truly appreciate this.
This was previously a working set up
Warren
that came with the setup I have had to change my XML to suit including <masters> <./Masters and I was using roschi's modification for halType="special32"
and i am now using the halType="complex"
e.g.
<pdoEntry idx="607A" subIdx="00" halType="complex" bitLen="32">
<complexEntry halType="float" halPin="poscommand" bitLen="32" scale="1000"/>
</pdoEntry>
but when I started linuxcnc axis would come up and as it was configuring the drives my estun drives would set an alarm complaining
About the electric gear ratio being an unreasonable number or along these lines.
The drives set this via an array as a ratio of pulses a revolution (numerator) and distance travelled a revolution (deviser)
e.g.
<sdoConfig idx="6093" subIdx="1"><sdoDataRaw data="00 80 00 00"/></sdoConfig>
<sdoConfig idx="6093" subIdx="2"><sdoDataRaw data="E2 04 00 00"/></sdoConfig>
the values given were originally from roschi and they worked for my previous setup all I did was change the scale value on the pdoEntry idx 607A
so I recalculated for my setup and ended up with smaller values, so I changed the this allowed me to get to the drives ready stage but
when I toggle the button for machine power, the drives give me the same error meaning I have my scale incorrect.
I have been messing with this all day today, but I am sure I don't understand how the halType complex works and this is truly where my problem is.
Hopefuly someone can give me some incite into this I would truly appreciate this.
This was previously a working set up
Warren
Please Log in or Create an account to join the conversation.
- cgc
- Offline
- Senior Member
-
Less
More
- Posts: 40
- Thank you received: 10
9 years 5 months ago #92567
by cgc
Replied by cgc on topic Ethercat HAL driver
Hi Warren,
you need the halType complex only, if the drive send one variable that is a union of several individual variables.
E.g. position an status bits together.
With the complex type, you can divide it, like this.
The union is a variable with 48 bit, statusbits and position together.
The complex type divide it in single status bits and separate position
<pdoEntry idx="7000" subIdx="02" bitLen="48" halType="complex">
<complexEntry bitLen="1" halPin="X-cmd-SwitchOn" halType="bit"/>
<complexEntry bitLen="1" halPin="X-cmd-EnableVoltage" halType="bit"/>
<complexEntry bitLen="1" halPin="X-cmd-/QuickStop" halType="bit"/>
<complexEntry bitLen="1" halPin="X-cmd-EnableOperation" halType="bit"/>
<complexEntry bitLen="1" halPin="X-cmd-NewSetpoint" halType="bit"/>
<complexEntry bitLen="1" halPin="X-cmd-ChangeSetImmediatly" halType="bit"/>
<complexEntry bitLen="1" halPin="X-cmd-RelativPos" halType="bit"/>
<complexEntry bitLen="1" halPin="X-cmd-FaultReset" halType="bit"/>
<complexEntry bitLen="1" halPin="X-cmd-Halt" halType="bit"/>
<complexEntry bitLen="1" halPin="X-cmd-bit09" halType="bit"/>
<complexEntry bitLen="1" halPin="X-cmd-bit10" halType="bit"/>
<complexEntry bitLen="1" halPin="X-cmd-bit11" halType="bit"/>
<complexEntry bitLen="1" halPin="X-cmd-bit12" halType="bit"/>
<complexEntry bitLen="1" halPin="X-cmd-bit13" halType="bit"/>
<complexEntry bitLen="1" halPin="X-cmd-bit14" halType="bit"/>
<complexEntry bitLen="1" halPin="X-cmd-bit15" halType="bit"/>
<complexEntry bitLen="32" halPin="X-TargetPos" halType="float" scale="1000"/>
</pdoEntry>
regards Frank
you need the halType complex only, if the drive send one variable that is a union of several individual variables.
E.g. position an status bits together.
With the complex type, you can divide it, like this.
The union is a variable with 48 bit, statusbits and position together.
The complex type divide it in single status bits and separate position
<pdoEntry idx="7000" subIdx="02" bitLen="48" halType="complex">
<complexEntry bitLen="1" halPin="X-cmd-SwitchOn" halType="bit"/>
<complexEntry bitLen="1" halPin="X-cmd-EnableVoltage" halType="bit"/>
<complexEntry bitLen="1" halPin="X-cmd-/QuickStop" halType="bit"/>
<complexEntry bitLen="1" halPin="X-cmd-EnableOperation" halType="bit"/>
<complexEntry bitLen="1" halPin="X-cmd-NewSetpoint" halType="bit"/>
<complexEntry bitLen="1" halPin="X-cmd-ChangeSetImmediatly" halType="bit"/>
<complexEntry bitLen="1" halPin="X-cmd-RelativPos" halType="bit"/>
<complexEntry bitLen="1" halPin="X-cmd-FaultReset" halType="bit"/>
<complexEntry bitLen="1" halPin="X-cmd-Halt" halType="bit"/>
<complexEntry bitLen="1" halPin="X-cmd-bit09" halType="bit"/>
<complexEntry bitLen="1" halPin="X-cmd-bit10" halType="bit"/>
<complexEntry bitLen="1" halPin="X-cmd-bit11" halType="bit"/>
<complexEntry bitLen="1" halPin="X-cmd-bit12" halType="bit"/>
<complexEntry bitLen="1" halPin="X-cmd-bit13" halType="bit"/>
<complexEntry bitLen="1" halPin="X-cmd-bit14" halType="bit"/>
<complexEntry bitLen="1" halPin="X-cmd-bit15" halType="bit"/>
<complexEntry bitLen="32" halPin="X-TargetPos" halType="float" scale="1000"/>
</pdoEntry>
regards Frank
The following user(s) said Thank You: wazza77
Please Log in or Create an account to join the conversation.
- roschi
- Offline
- Senior Member
-
Less
More
- Posts: 40
- Thank you received: 29
9 years 5 months ago #92571
by roschi
Replied by roschi on topic Ethercat HAL driver
hi warren,
nice to see you agaim on this forum.
just a quick hint from my site. take into account that that the bytes in the sdoconfig -> sdoraw data are reverse orderded.
so eg. numerator shall be 0xe12 then the config is 12 0e
also do the math in the right way num/den shall be the smallest possible Integers in case for estun drives eg. not 4/8 more 1/2
hope that will help.
regards andreas
nice to see you agaim on this forum.
just a quick hint from my site. take into account that that the bytes in the sdoconfig -> sdoraw data are reverse orderded.
so eg. numerator shall be 0xe12 then the config is 12 0e
also do the math in the right way num/den shall be the smallest possible Integers in case for estun drives eg. not 4/8 more 1/2
hope that will help.
regards andreas
The following user(s) said Thank You: wazza77
Please Log in or Create an account to join the conversation.
Time to create page: 5.316 seconds