User Tools

Site Tools


DASL Gantry

This page covers the design of the DASL Gantry control software. The SISTR Gantry has been through many iterations of mechanical and program design. This latest one is designed to be both robust and simple to use.

(More on this to come) TODO: Backstory TODO: Publications TODO: Photos

Software Architecture

The Gantry control software is a C# GUI that communicates with Techno CNC's proprietary API for driving their CNC controllers. Communication between these systems is done through a wrapper class called DASLGantry, which simplifies some of the functions and adds additional features.

Main GUI

This form presents the user controls and readouts, and shows basic information about the gantry's current status. All Gantry control is achieved through callbacks from the GUI. Within this object, there are 3 timers that control periodic functions:

Manual Control Loop Timer

When enabled, this timer sends velocity commands at approximately 40Hz to the Gantry's controller, continuously updating the desired velocity of the 3 main axes. The update function performs several safety checks before committing to a new velocity command, and commands zero velocity if anything goes wrong. This way, the gantry control is only active if conditions are safe.

Update Timer

This somewhat poorly named timer polls the Joystick for its state, copying the axis and button positions into local memory. Other functions in the GUI then use this local data to check for button presses and axis position.

Slow UI Timer

Running at about 10Hz, this timer updates the displays on the GUI, and polls the gantry's current velocity for home switch checking. Basically, any function that needs to be periodic, but is not high priority, is triggered here.

Power Up / Down

Enabling / Disabling Manual Control

Joystick Interface

Changing Speed Modes

Changing Coordinate System

Home Switches and Recovery

drexel_gantry.txt · Last modified: 2016/11/06 14:18 by dwallace