Gas System Control Applications

From GlueXWiki
Revision as of 15:41, 27 July 2011 by Hovanes (Talk | contribs) (Brooks0254 Control and Programming module)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Introduction

Both FDC and CDC in Hall D will be using a gas system which will mix two or possible three different gases and deliver it to the working volume of the drift chambers. The gas systems of CDC and FDC are similar, but the number of gas ouput channels and volumetric flow are different. Both gas systems consist of two logically separate sections: mixing section which will be located in the gas shed, and deliver section which will be located in the Hall.


Brooks0254 Control and Programming module

The Brooks0254 allows for remote control via RS232 interface. We developed an EPICS driver to control it from a Linux host running Soft IOC. The source code of the device support for this module can be obtained directly from the SVN repository. The EPICS support package allows to continuously monitor and control multiple Brooks0254 module via serial line of a single host.

The EPICS support consists of two logical components: the driver and device support. The driver is a intermediate layer between the record processing and the Brooks module. It continuously scans the hardware via serial line at constant frequency and synchronizes the parameters in the driver and the hardware. The scanning frequency and the number of parameters are independent of the EPICS database which use this driver. The driver has C-style functions for connecting to the synchronous device support for bo, bi, mbbi, mbbo, mbbiDirect, mbboDirect, ai, ao records.

The driver is written in C++ programming language. It defines classes for a chassis, for an MFC channel, for each parameter. Also there is a class for handling the serial port and a class for managing the multiple instances of the chassis. The driver starts a separate thread for each chassis and synchronizes its MFC channels and its global parameters with the hardware. In turn, each channel (or card) synchronizes all of its channel-related parameters. Synce this is a multi-thread application, we use mutex locking to prevent access conflicts between the synchronizing thread and the record processing. But we do not lock the objects, like chassis and channel, as a whole because it would produce a very large dead-time for record processing dues to slow serial communication speed. We only lock memory locations when parameters are being synchronized.


NITRA Solenoid Valves

Beni gave us two directional control solenoid valves, AVS-3211-24D, AVP-31C1-24D from Nitra Pneumatics. These two models have different valve configuration but identical control solenoids working at 24V DC. I used a 1734-OB4E Point I/O Protected Output Module to control this valve in PLC. It worked well, but the solenoid seems to be slightly overheating. If we want to control these valves with 1734-OB4E modules we should make sure that the Point I/O power supply and the breaker can provide sufficient current. Each of these solenoids consumes 3 Watts of power.