SoftIntegration Solutions

 Plotting/Numerical Computing
 Embedded Scripting

Enterprise solution for real-time computing and prgoramming for embedded and mechatronic systems
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.