New GalilTools Software Release
In January 2008, Galil released their powerful GalilTools v1.0 software, a feature-rich controller communication and analysis suite that includes a syntax highlighting DMC code editor, system watch window, communication terminal, servo tuning tool and a real-time 8-channel scope.
In May 2008, v1.1 was released which includes support for the GalilTools application for Windows x86/x64 and Linux x86/x64. This represents Galil’s first cross-platform motion controller software by bringing servo tuning, analysis and code editing tools to Linux platforms. It’s also the first standard release of 64-bit native controller tools.
A new tool bundled in v1.1 is the GalilTools Communication Library (GCL). It exposes the underlying Application Program Interface (API) used for developing the GalilTools application. This allows programmers to make calls to the GalilTools library using their own application code. The GCL is comprised of a C++ library and a COM extension.
The C++ library allows C++ programming in Windows and Linux operating systems, and enables compilation for either 32-bit (x86) or 64-bit (x64) architectures. The standard Windows GalilTools installers include the files required for use with Microsoft Visual Studio™ C++ 2008. The Express Edition is free of charge from Microsoft. The Linux version is compatible with GNU g++.
For Windows users, the GCL COM extension provides access to the library for programming in Microsoft Languages such as VB and C#. (See Figure 1 for more information on compatibility.)
The syntax for both the C++ Library and the COM wrapper are very similar. The GalilTools integrated help feature provides a command reference chapter covering the entire API, example code in multiple programming languages, links to full programming projects such as the Grapher featured below, and other programming tips. From within the GalilTools environment, press F1 or choose Help|Contents to bring up the integrated help browser.
A powerful feature of the GCL is its easy to use Data Record functions. The controller data record is a conglomeration of controller information including axis positions, velocities, I/O status, profiler information, status codes, select user variables and more. Accessing the data record is the most efficient method for getting large amounts of data from the controller. The data record is transmitted as a response to the QR command or as an asynchronous, automatically-generated dispatch from the controller. The details of the data record operation are abstracted by the GCL in a handful of easy to use functions.
For example, Figure 2 shows a Trajectory Grapher and Rapid Prototyping application written in VB.net 2008. The application uses the data record functions of the GCL to plot axes Y vs. X actual and commanded positions. In this example code, the status of output #1 is also retrieved from the data record and used to provide pen color for the plotter. The red lines in Figure 2 represent sections of motion where digital
output #1 is asserted. This output could actuate the cutting tool or laser in the cutting field.
Not only can the application passively graph the X-Y position of the controller axes, but it also allows motion control via a mouse click in the graphing field. By clicking in the graph field, the software will command the controller to profile to the specified point in the X-Y plane. Furthermore, the application has an image overlay feature that allows a pattern to be placed on the cutting field to be manually cut around by clicking points on the border. By setting the appropriate scale and turning the cutting tool on and off by clicking an onscreen button, an object can be rapidly prototyped simply by clicking around its image boundaries.
(See Figure 3.)
The application leverages the power of the Microsoft.net graphics classes to provide drawing capabilities, and the Galil data record acquisition capabilities of the GCL to provide integration into the Motion Control Application. The full source code for this specific application is available in the GalilTools source code library at http://www.galilmc.com/support/manuals/galiltools/galilx.html.
An example of the simplicity of the GCL is demonstrated in the VB source snippet shown in Figure 4. The software requests a new data record from the controller, and retrieves the salient data from that record: Actual Position (_TPn), Commanded Position (_RPn) and output bit status (@OUT[01]). This and much more information is available from the controller in the form of the data record with just one communication transaction. Using the GalilTools communication library provides high performance as well as easy to implement development potential.
For further information on GalilTools and the GalilTools communication library, see the GalilTools product page at http://www.galilmc.com/products/software/galiltools.html
|