|
Highlights of the Real-Time Rescheduling
Technology
|
|
Although constant advances have been made during the past two
decades in both hardware and software technologies used in the
field of automation, many automated and robotic systems installed
in companies are operating below their real capabilities. The
enthusiasm generated by the development of an automated system
is often quickly replaced by the frustration of realizing that
the performance, flexibility and reliability of the installation
simply do not meet expectations.
Under certain constraints, an automated system is usually designed
to execute activities automatically on a number of resources.
In order to coordinate the execution of these activities as efficiently
as possible and to allocate the required resources on time, a
piece of software called a scheduling engine is needed. The scheduling
engine decides when an activity must be executed and on which
resource in order to minimize the amount of time needed (or the
cost) for completion of all activities. The scheduling engine
of an automated system is not just another piece of software:
it is the vital core technology which makes it possible for the
system to execute all operations without violating any constraint.
Existing schedulers have shown their limitations when handling
the complex situations which are usually found in resource- and
time-critical automated applications. Most of them offer a good
user-interface as well as effective communication with equipment,
but the scheduling engine itself is often quite limited in its
ability to handle the situations that require real-time reactions
and recomputing of existing schedules (viz., "rescheduling").
At Odysis, a new and innovative technology is currently under
development that promises to give the automation industry what
schedulers currently on the market cannot: effective rescheduling
of automated tasks in real time.
With our new technology embedded in their planning and scheduling applications,
equipment manufacturers, software developers and system integrators
will be able to build more productive, flexible and reliable automated
systems. It will be an open, universal and standard object-oriented
package which can be easily integrated by a software engineer
with mastery of an object-oriented programming language such as
C#,
C++ or Ada. It is designed to be embedded in automated systems
dedicated to specific markets, applications and users.
|
Our technology can optimize the performance of automated systems subjected
to unpredictable events such as alarms, breakdowns, exceptions,
process or environment changes, process interruptions and delays,
conditional processing, the unanticipated arrival of new items
to handle, and a variety of other constraints. Not only will an
automated system run better with this technology, but it will
also perform at a level to meet--if not surpass--the user's expectations.
It can be used in automated systems designed for quality
control, production, supply-chain management, transportation,
embedded systems, and a variety of other applications.
Just imagine the advantage of having a software product that allows
your automated and robotic system to accept--at any time--new
jobs for processing; to manage the ordering and refilling of stock
material automatically; to synchronize production lines; to select
a scenario to execute on-the-fly according to a decision made
at runtime; to repair schedules when unexpected events such as
breakdowns or delays occur; or to recover a complete process after
a system crash. All this will be possible with our
technology, whose
numerous features are described in the Software Product
Description.
The Object Model
Our software provides a series of predefined data structures with
primitive operations ("classes") that can be inherited by application
programs for the purpose of creating and manipulating objects
representing resources, activities, constraints or processes.
The application program is responsible for defining its own communication
protocols, user-interface and data management systems according
to the needs of both the end-user and the company's markets. We
will now turn to a brief discussion of the software's four main classes:
Resources, Activities, Links and Processes.
|
Object |
Description |
|
Resource |
A person or a thing that can perform certain
operations or is needed for those operations to occur. A resource
can be an employee, machinery, materials and supplies, an item
to process, a vehicle, a storage unit, a facility, a software
program or an abstract object. Resources can also include consumables
(which need to be renewed or refilled when used up) and products
with limited life-duration, such as unstable material or equipment
using a battery. |
|
Activity |
A task or job to be scheduled and executed. An activity might be: - an operation with a fixed,
variable, or estimated duration - a control for the scheduling
of operations to allocate/deallocate resources, to produce/consume
stock units, deposit/retrieve resources in/from a container, select
a branch in a scenario according to a decision made at runtime
or during scheduling - a scenario for grouping a logical set of
operations and controls, to fill/empty a stock, to start a timer
(of a resource with limited life-duration), or to define an exceptions-handler.
Picture an automated process in which, after a series of operations,
an item must be stored for 24 hours. Immediately after the storage
period, a robot is programmed to pick up the item and bring it
to a measurement device. Depending on the result of the measure,
the item must either go on production line A, B, or C. This is
a typical situation in which a decision can be made only at runtime.
How can the required resources be allocated/deallocated so as
to ensure that there will be no collisions or conflicts during
the execution of operations? Our technology offers the solution: it
will compute a schedule, and then recompute it once the decision
is made. |
|
Link |
A time constraint governing the coordination of two
activities. |
|
Process |
A set of activities to be scheduled and executed on a set of resources. Several simulation processes
can be executed in parallel for the sake of comparing different
options in real time. Imagine that you are processing a batch
on your automated system. You want to see how the processing of
that batch could be disturbed if you add a new batch. You can
start a simulation process, add your new batch, and see how the
schedule is affected. Armed with this prognostic information,
you can then decide whether to start the new batch. |
Real-Time Rescheduling
Our software reschedules the activities of a process whenever one
of the following events occurs: - new activities are added to
a process - an estimated duration becomes shorter or longer -
the value of a conditional statement is known at runtime - execution
of a scenario as an exceptions-handler - modification of resource,
activity or link attributes such as must-dates, priority, duration,
etc. - resource breakdowns - activities and links are discarded
- resume after a crash.
Exceptions-Handling
Exceptional situations can be handled by starting a scenario which
can be associated with an activity (usually the activity which
caused the exception). A scenario which is launched in this way
is called an "exceptions-handler." The associated activity is
suspended until the exceptions-handler completes its task. At
the end of the execution of the exceptions-handler, the activity--that
is, the launching activity--given to the exceptions-handler resumes
at the point in the process where it left off before the exceptional
situation arose. This mechanism even makes multi-level exceptions-handling
possible (exceptions-handlers which are launched from other exceptions-handlers).
The Advantages of our Technology
The innovative features of our rescheduling technology
certainly set it apart from other scheduling engines, but, more
importantly, they promise to deliver to the automation industry
the efficiency and flexibility that users have a right to expect
in an automated system. With our software working behind the automated
scenes, equipment manufacturers, software developers and system
integrators will reap important rewards, all of which add up to
improved performance and better margins:
-
fastest time-to-market for more productive, flexible and reliable solutions
-
no further need to spend valuable time developing complex scheduling technologies in-house
-
resources will stay focused on market and customer
applications
-
because they can finally take advantage of the
real capabilities of their automated and robotic systems, users
will be satisfied
To receive more
information on this technology, please send an e-mail to info@odysis.com. |