Hi all,

I am thinking about implementing a job scheduler in EMC and soliciting ideas
on how to do it and what features to include. I know within both Linux and
EMC, 'scheduler' can be an ambiguous term. By job scheduler I mean the
ability to schedule a sequence of g-code files to run in a specified order
and at a specified location in the work area.

I have occasions to run lots of small parts the size of labels, jewelry,
etc., so many individual parts can fit in the work area. But I don't want to
combine them into a single large file, because while some are running,
others are being edited in some graphics or CAM package.

My idea is to use the basic interface shared by emcsh, emcrsh, etc. to
monitor the machine state, run state, etc. and if scheduling is enabled,
when it detects that a job has finished, move to the defined starting
location, and then load and run the next job in queue. Enabling the
scheduler would simply require adding something like "loadusr emcsched" into
a hal file. 

The scheduler would basically implement a queue similar to a standard c++
container class with functions like:

Append to queue
Insert at front
Insert at location
Move an entry up
Move an entry down
Retrieve an entry by index number
Delete an entry by index number
Empty the queue
Get number of elements in queue

A few additional commands would include:
Enable scheduler
Disable scheduler
Retrieve an entry by Tag Id
Delete an entry by Tag Id

Each queue record would have fields such as (i.e. not necessarily an
exhaustive list):

IndexId   - Ordinal location in queue
TagId     - User defined field to be used as desired by a UI for example.
Program   - Path and name of g-code file
Zone      - G54 - G59.3 selection of coordinate system
X         - Machine coordinate X offset to use if Zone is not specified
Y         - Machine coordinate Y offset to use if Zone is not specified 
Z         - Machine coordinate Z offset to use if Zone is not specified
Feed rate - Override value for feed rate
Spindle   - Override value for spindle speed
Tool      - Default tool number for job

The interface could be just a c/c++ style object (.o) or shared object (.so)
file, unless there is some more convenient means for any of the user
interface.

Any suggestions appreciated.

Regards,
Eric



------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Emc-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emc-developers

Reply via email to