EMC2, like most other CNC programs are primarily designed to move a 
single point in XYZ space.   EMC2 is unique in that you can change the
"joints" so the axes do not have to be at right angles to each other, as 
in a robot.   (I haven't gone there yet.. ) but still the end result is 
that a single point in space is controlled - in the case of a robot, 
usually the end of the gripper.

In "generic industrial motion controls", oftentimes the axes on a 
machine are not linked into a cartesian space....

That is why you can buy industrial controllers with 8+ axis.   Usually 
in an industrial motion controller such as the Galil, Parker, Delta Tau, 
and Delta computer boxes, you can connect certain axes to a program 
thread or task (say two or three in a task) and then gear them or do 
coordinated motion between two or three axes, so one task could do 
cartesian motion control with 3 axis for a pick and place, another task 
might have two axes assigned to it and that task runs the feeder system 
that puts the parts in front of the pick and place etc.

EMC2, out of the box is primarily designed to run CNC machine tools, so 
it starts out assuming that you are going to run 3 axis in a cartesian 
space and position a milling cutter or position a lathe (usually in two 
axes).

Hal allows you to do all kinds of things with the back end of EMC2.   
For instance you can start out with X,Y,Z axis in cartesian space and 
then decide to gear another axis to the X axis at a determined ratio.   
But in the end the G code interpreter is limited to
running a single task to position a single point usually in cartesian 
space.   It would be really nice if EMC2 could run multiple instances of 
the G code interpreter so you could assign different axes to different G 
code interpreter tasks.

I would not be surprised if this has not been done already by someone as 
it is a common need with industrial controls...  (if this has been done, 
I'd be very interested in hearing about it..   :-) )

However there are ways to get around this right now.    Using the G code 
interpreter is not required.  You can interface with Hal via Python and 
run "multiple tasks" via your Python program.   I also believe that you 
can run a Python program along side the Gcode interpreter and use the 
Python program as one task controlling certain axes and use the Gcode 
interpreter to control the rest.

I'm relatively new to EMC2 but I believe that when EMC was conceived by 
the NIST way back when that it was originally designed as a general 
purpose motion controller not necessarily tied to only CNC machines that 
tend to work with a single point of motion.
It would be interesting to go back in time and see how they planned on 
implementing a true general purpose motion controller back then.

The other way to look at doing multiple tasks with EMC2 is to use more 
than one computer and dividing the tasks between them.  Since computers 
are dirt cheap now, and they are getting crazy small (I have two 
mini-ITX based computers stacked up next to me at the moment taking up 
less than 8x8x6 inches of space)  the use of additional hardware to get 
around a software limitation is a viable idea.

If have anything wrong here, someone please correct me.....     As 
usual, I'm still learning also!  :-)

Dave




On 4/2/2010 9:13 AM, Cal Grandy wrote:
> It would be of interest to know the control scheme for pick and place
> machinery.
>
>
> ----- Original Message -----
> From: "Alex Joni"<alex.j...@robcon.ro>
> To: "Enhanced Machine Controller (EMC)"<emc-users@lists.sourceforge.net>
> Sent: Friday, April 02, 2010 8:47
> Subject: Re: [Emc-users] independent motion of axes
>
>
>    
>> How about programming the move using inverse time mode (G93) ?
>>
>> Regards,
>> Alex
>>
>> ----- Original Message -----
>> From: "Stuart Stevenson"<stus...@gmail.com>
>> To: "Enhanced Machine Controller (EMC)"<emc-users@lists.sourceforge.net>
>> Sent: Friday, April 02, 2010 3:29 PM
>> Subject: Re: [Emc-users] independent motion of axes
>>
>>
>>      
>>>   The one line program you show will not work. That motion can be achieved
>>> but the program would probably be a very long program. A CAM system can
>>> output the code to move the axes in the manner you wish depending on each
>>> slide configuration and the actual requirements you have. With the
>>> limited
>>> amount of information available it is impossible to determine the
>>> possibility for your situation.
>>>
>>> On Fri, Apr 2, 2010 at 12:50 AM, Klemen Dovrtel
>>> <klemen_dovr...@yahoo.com>wrote:
>>>
>>>        
>>>> Hello everybody,
>>>>
>>>> Is there a way to move axes independently using G code? For instance i
>>>> want
>>>> to move G0 X200 Y300 and at the same time G1 U30 F100 and G1 V20 F50.
>>>>
>>>> This probably won't work:
>>>> N100 G0 X200 Y300   G1 U30 F100   G1 V20 F50
>>>>
>>>> Regards
>>>> Klemen
>>>>
>>>>          
>>
>> ------------------------------------------------------------------------------
>> Download Intel&#174; Parallel Studio Eval
>> Try the new software tools for yourself. Speed compiling, find bugs
>> proactively, and fine-tune applications for parallel performance.
>> See why Intel Parallel Studio got high marks during beta.
>> http://p.sf.net/sfu/intel-sw-dev
>> _______________________________________________
>> Emc-users mailing list
>> Emc-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/emc-users
>>
>>      
>
> ------------------------------------------------------------------------------
> Download Intel&#174; Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
> _______________________________________________
> Emc-users mailing list
> Emc-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/emc-users
>
>    


------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to