Ethercat HAL driver
<Sm MinSize="40" MaxSize="1486" DefaultSize="512" StartAddress="#x1800" ControlByte="#x26" Enable="1">MBoxOut</Sm>
<Sm MinSize="40" MaxSize="1486" DefaultSize="512" StartAddress="#x1c00" ControlByte="#x22" Enable="1">MBoxIn</Sm>
<Sm StartAddress="#x1100" ControlByte="#x24" Enable="1">Outputs</Sm>
<Sm StartAddress="#x11C8" ControlByte="#x20" Enable="1">Inputs</Sm>
You try to use
<syncManager idx="4" dir="in">
Please Log in or Create an account to join the conversation.
But how can i apply the velocity command and the other parameters.
The first two SM are yousless for this!? Bcause the are mailbox.
And the other two SM's do just have two parameters.
Or how can i acces the other values?
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
i am getting closer.
I have changed the PDO Mapping of the Drive and i can generate a c file with the comandlinetool.
How can i integrate this into the startup of linuxcnc?
Thanks
Please Log in or Create an account to join the conversation.
either make an XML file as discussed above
or patch the linuxcnc-ethercat with a "library" for Kollmorgen .
If you understand the underlying etherlab lib well enough, then you can also code your own stand-alone component
similar to wiki.linuxcnc.org/cgi-bin/wiki.pl?Etherlab .
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
trying to sort my XML File,
Q1
the value for appTimePeriod=""
where does this come from/what is it for, as i can not see this in my XML file for the drives.
is this what syncs the clocks on master & Slave?
here is a copy from estun the xml
pastebin.com/iAnxBSR4
this is what i have written so far as an XML file
pastebin.com/B7FXUq5J
also can you see anything else wrong, as right now when i run this XML the hole PC locks up after a random time with linuxcnc open and in standby and forcing a hard reboot. so i dont know if something is wrong in the XML?
timing/clock or something else as at first to update the encoders this takes few seconds untill read. but once first read update seems ok if moving the motor shafts untill the system locksup.
Q2
with the Pos & Poscommand is type float the correct type to use?
or do you need to use S32 on Pos & poscommand in XML?
ie
Posfeedback
lcec.0.0.pos > S32 to Float > Scale value > Float to S32 > Feed to pos-fb
pos command
motor-pos-command > S32 to float > scale > float to S32 > lcec.0.0.poscommand
on the drive i have set the encoder ratio as
0.0001mm Res
10mm Pitch Screw
17bit encoder = 32768
32768x4/(10/.0001)=131072/10000
as reduced fraction = 4096/3125
then in estun drive
P201=4096
P202=3125
copy of the hal file so far for reff
pastebin.com/dihu2fxV
Please Log in or Create an account to join the conversation.
That is where appTimePeriod is used github.com/sittner/linuxcnc-ethercat/blo...c_main.c#L1119-L1132.Hi
trying to sort my XML File,
Q1
the value for appTimePeriod=""
where does this come from/what is it for, as i can not see this in my XML file for the drives.
is this what syncs the clocks on master & Slave?
So the cycle time of the HAL thread the linucnc-thread is attached to is appTimePeriod of the EtherCAT cycle.
Q2
with the Pos & Poscommand is type float the correct type to use?
or do you need to use S32 on Pos & poscommand in XML?
ie
Posfeedback
Your estun the xml pastebin.com/iAnxBSR4 says that Positions are measured as DINT = S32 in HAL terms.
I do not understand this line:
You map a 16 bit value to one bit Hal pin? or did you mean the so called "complex entry" as shown here for instance<pdoEntry idx="6040" subIdx="00" bitLen="16" halPin="drivecontrol" halType="bit"/>
github.com/sittner/linuxcnc-ethercat/blo...-conf_X.xml#L98-L116 ?
Please Log in or Create an account to join the conversation.
i have the drives running and moving now.
just trying to figure how to sort the homing out, id like to just hit the home all button and have the drives run there home method. and report back to linuxcnc that its complete and set the axis to homed.
i have setup a state change to home mode on the drive when axis.n.homing is true
and set the bits to start the home method
but linuxcnc gives a following error when the drive move due to feedback.
am i missing something as is there a speshial value/setting to allow drive homing in linuxcnc?
what values should be in the home ini to allow drives todo there home method while linuxcnc just waits for it to report home finish?
thanks, rob
Please Log in or Create an account to join the conversation.
i have the drives running and moving now.
just trying to figure how to sort the homing out, id like to just hit the home all button and have the drives run there home method. and report back to linuxcnc that its complete and set the axis to homed.
i have setup a state change to home mode on the drive when axis.n.homing is true
and set the bits to start the home method
but linuxcnc gives a following error when the drive move due to feedback.
I do not know much about HOMING by the means of linuxcnc and thus I do not know if
EtherCAT drives can be homed by the means of linuxnc only.
I guess you have to read on about
<Object>
<Index>#x6060</Index>
<Name>Modes of operation</Name>
<Type>SINT</Type>
<BitSize>8</BitSize>
<Flags>
<Access>rw</Access>
<Category>o</Category>
<PdoMapping>RT</PdoMapping>
</Flags>
</Object>
Please Log in or Create an account to join the conversation.