A congenial programming language environment is critical
for rapid integration of mechatronic devices
that may include stepper motors, DC and AC motors,
laser and vision sensors, force and torque sensors,
tactile sensors, pneumatic grippers, etc.
These mechatronic devices are essential components of
many mechatronic systems such as
robot manipulators, CNC machines, and automatic assembly systems.
For example,
according to its preprogrammed software implementations,
a robot can make
intelligent decisions and actions on
the basis of external
sensory information.
Experience indicates that a large portion of
a typical
application program is non-motion related.
Programs deal mainly with initialization,
communication, synchronization,
sensory information processing, and error checking and correction.
Much of intelligence of a mechatronic system is derived from these
sophisticated software implementations.
Requirements for programming of
mechatronic systems such as
robot manipulators, CNC machines, and measurement machines
are in general much higher than those for programming in desktop
computers because of real-time and special constraints
with machinery.
Some important features in Ch for programming of mechatronic systems
are listed below.
Important Features in Ch for Programming of Mechatronic Systems
- Deterministic for real-time computing
- Interpretive
- Interactive user interface
- Superset of an established language
- Based-on an open language with international standard
- Object-based
- Graphic user interface
- Supported in heterogeneous platforms
- Code portable across-different platforms
- Secure network computing
- Advanced numerical computing with matrix
- Interface binary objects
Research and application experience of industrial automation
and manufacturing systems
indicate that an ideal programming language for mechatronic systems
must be a sophisticated computer programming language.
The language should appeal to both sophisticated expert programmers
and novice users. In most cases, sophisticated users
will write high-level functions that can be readily used by less
experienced users.
Ch is a superset of C interpreter.
Programming of mechatronic systems in Ch can draw upon
a large body of existing user and code base.
Ch is deterministic for real-time programming.
It is interpretive with a quick system response.
The program compilation presents a serious problem for
real-time manipulation of mechatronic systems.
For a real-time mechatronic systems,
the external environment may be different
at each execution, so the testing scenario may not be repeatable.
During debugging and testing,
it is impractical to restart a program
from the very beginning every time a change is made or a problem is
diagnosed.
Ch has a small footprint and is embeddable. The pointer and time
deterministic nature of the C language provide a perfect interface with
hardware in real-time systems.
Ch supports command or function execution interactively.
Ch can seamlessly interface binary C/C++ objects.
Time critical components, compiled in C or C++ compilers,
can be accessed in Ch.
Although Ch is interpretive,
some time critical code such as
control algorithms for servo loop might be compiled for fast execution.
Interpretive scripts in Ch can easily interface binary objects.
It is typical that multi-tasks or threads are executed for
servo update, IO checking, user interface, etc.
Ch support concurrent multi-task processing through its binary objects.
Ch can be used
not only for programming of manufacturing systems, but
also for daily programming tasks.
The object-based programming in Ch
encourage modular programming and code reuse.
Programming of mechatronic systems in Ch
is similar to very high-level shell programming.
Application programs are created not by writing
large programs starting from scratch. Instead,
they are combined by relatively small components.
These components are small and concentrate on
simple tasks so that they are easy to build,
understand, describe and maintain.
Ch supports GTK+ and OpenGL with user-friendly graphical interface across different platforms.
Note that
an entirely visual based programming environment without
a base of procedural programming language is difficult to program for
complicated manufacturing tasks, especially for sensor fusion.
Ch is supported in multi-platforms such as
Windows and Unix so that application programs will be portable.
Ch is designed to be
mechatronic-system-independent so that
high-level application programs
can be developed to relieve programmers of the
task of learning different programming languages for different
mechatronic systems.
It will enable integration of
mechatronic devices from different vendors
for consistent interfaces external to machinery.
An integrated mechatronic system often consists of
several subsystems such as a workcell with multiple robot manipulators.
A safe Ch program can be dynamically downloaded through
the network and executed securely so that a mechatronic system
can be adaptive to the external sensory information.
Many complicated algorithms are used in various mechatronic systems.
Ch also supports advanced numerical features such as matrix computations
for intelligent control of mechatronics systems.