Skip to main content
Submitted by Matt on Wed, 11/15/2017 - 00:00

Figure 1: Communications Architecture

In keeping pace with advances in PC hardware and Operating Systems, Galil has released its latest generation of software tools for OEMs looking to develop fully featured, robust solutions to the most demanding motion control applications. This paper offers a brief overview a feature that may not be immediately familiar to long time Galil users, the gcaps server.

Galil's newest generation software includes three components:
1. gclib: a C based communications API for use with Galil Motion Controllers and PLCs. This library provides a collection of functions that make interfacing with a Galil Motion Controller from the PC a straightforward and simple process. This library is recommended for new applications.
2. GDK: Galil Design Kit. A replacement for previous generation software tools (WSDK, GalilTools, GalilSuite) providing communications, programming and design tools for Galil Motion Controllers and PLCs.
3. gcaps server: A background service on the host PC which manages communications between Galil hardware and software applications. The remainder of this paper will detail the capabilities and advantages of the gcaps server.

What is the gcaps server?

      Although gclib and GDK are replacements for Galil's legacy software products and APIs, the gcaps server presents a new means of communication between the controller and PC. The core concept is laid out in Figure 1. Galil's legacy libraries established a direct connection to the controller. Both solicited and unsolicited traffic are passed between the controller and PC. In the new gcaps architecture, the application instead connects to the server which in turn connects to the controller. The benefit of this architecture is that multiple applications on the PC can connect to the server and communicate with the controller simultaneously. The gcaps server ensures that communications are relayed between each of these components with minimal latency, eliminating race conditions and collisions. 

Why should I use the gcaps server?

      Where the gcaps server really shines is with its handling of unsolicited messaging and the controller data record. In legacy libraries, only one application could receive these data from a controller. In contrast, with the gcaps server, any number of applications can 'subscribe' to these data. This is particularly important during application development. Through the gcaps server, GDK can subscribe to and plot real time data to its oscilloscope tool while a separate host application is running. This was not possible with previous Galil communications libraries and software packages. In addition, this server architecture allows simultaneous communications with the controller regardless of communication bus, Ethernet, Serial or PCI.

How do I use the gcaps server?

      The gcaps server is installed on the PC alongside either GDK or gclib and starts automatically as a background service. GDK and applications built on the gclib library will by default connect the server. This makes the new communications architecture virtually invisible to the user. At deployment, if the server is not desired and the developer wishes to 'opt out' of using it, a simple addition to the gclib connection function argument establishes a direct connection.