On Mar 1, 2009, at 8:58 AM, Eric H. Johnson wrote: > 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 > :-) Have at it! I've wanted a scheduler for a long time. Your vision of a scheduler is much more comprehensive than my requirements but that is OK. Good luck.
Dave > > > ---------------------------------------------------------------------- > -------- > 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 ------------------------------------------------------------------------------ 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
