On Wed, 21 Aug 2019, John Dammeyer wrote:
Date: Wed, 21 Aug 2019 19:01:35 -0700
From: John Dammeyer <jo...@autoartisans.com>
Reply-To: "Enhanced Machine Controller (EMC)"
<emc-users@lists.sourceforge.net>
To: "'Enhanced Machine Controller (EMC)'" <emc-users@lists.sourceforge.net>
Subject: Re: [Emc-users] MESA 7i92H Saga
originally created by pncconfig. Should not
>>> setp hm2_7i92.0.stepgen.00.control-type 1
>>> be control-type 0?
>>>
>>
>> No, needs to be 1
>
> So what does it need to be for the spindle then?
Also 1 since you are setting the steprate from the spindle speed
>
> The tutorial suggests stepgen is type 0 for step/dir and "ctrl_type" type v
> for velocity.
>
> I haven't found the details on "control-type" in a document yet.
> hm2_7i92.0.stepgen.05.control-type
> Perhaps I overlooked it somewhere?
man hostmot2, stepgen section
Yes but... to quote
http://linuxcnc.org/docs/html/man/man9/hostmot2.9.html#stepgen
"(bit input) control??type
Switches between position control mode (0) and velocity control mode
(1). Defaults to position control (0)."
Why then do the XYZA axis have control_type set to 1 when the above snippet
clearly says position control mode is 0?
The stepgens are used in velocity mode (1) the position is controlled via the
PID component
You can run the stepgens in position mode but this has two disadvantages
1. The built in position mode controller is not as robust as the PID loop with
regard to host jitter
2. When the stepgens are used in velocity mode the hal boilerplate for
encoder feedback is already there (just a net change of the position feedback)
Is this then an error in the manual or just poorly explained? Does LinuxCNC,
when used to run a milling machine, use velocity control to move the motor and
somehow also track the position?
The hostmot2 manual applies only to the low level hardware and driver, the hal
configuration that pncconf creates does the position control with hal and the
PID component and hence uses the stepgen in velocity mode.
LinuxCNCs motion component hands position waypoints (and also velocities and
accelerations) to the hal layer at the servo thread rate. How these are
converted to signals that feed the motor drives is up to the machine specific
hal configuration.
When I wrote my Electronic Lead Screw software that had to track the spindle
speed the velocity of the Z axis carriage motor was critical and the position
was really only used to decide when to finish accelerating and when to
decelerate. Since the CNC G-Code specifies feed rate and in the case of
multiple axis the feed rate along the path I can see that this might well be
the way it's done. But with the manual stating 0 (position mode) is the default and
that G-Code tends to change positions but often leave the feed rate constant
it's a bit confusing.
John
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users