MICAS-X is highly modular, and is built on numerous types of plug-ins. This allows systems to be configured with just the functionality they need, without bloating the software with every feature that has ever been added to MICAS-X. A description of the MICAS-X architecture can be found here. This section describes the various modules and plug-ins currently available for MICAS-X.

Currently, more than four dozen MICAS-X components are available, allowing a wide range of customization even before custom-written components are added to a system. Over a hundred drivers have been written, including thirteen that are part of the MICAS-X base package. Four displays come in the base package, with over thirty total Displays having been created. Two dozen Instruments have been written for MICAS-X, as well as twenty Calculations and fourteen Utilities. This highly modular nature of MICAS-X means that each system includes the functionality that it needs, without being burdened with unused functionality that other customers required.

The following MICAS-X components are currently available or under development:

 

Drivers

The following Drivers are included in the MICAS-X base package:
Array: The Array Driver allows one to create a one-dimensional array of numeric values. These values can be read and written to programmatically throughout the MICAS-X program, and allow for functionality such as scanning a process variable through a set of values that might not be easily calculated from an equation, such as setting a voltage to values like 1,2,5,10. Multiple arrays can be created by adding this Driver to the configuration multiple times.
Averager: This Driver averages the values of other, existing channels over a user-specified number of acquisitions.
Calculations: This Driver allows a MICAS-X end user who is familiar with LabVIEW create their own plug-in calculation routines. The interface to these calculations is well defined, and templates and examples exist to help with development of new Calculations. Although the LabVIEW development environment is required in order to create or edit Calculations, the resulting Calculations can be run in MICAS-X either within LabVIEW or when MICAS-X is an executable program and LabVIEW is not installed. A Calculation will typically have one to many Housekeeping Channels as inputs and will create one to many additional Channels. These calculated Channels are then available within MICAS-X for use for the same purposes as any other Channel.
Document: This Driver works in conjunction with the Document Display. Together, they allow MICAS-X to present the operator with instructions that can be synchronized to the operation of the program.
Equations: The Equations Driver is similar to the Calculations Driver, but is simpler and requires no programming in LabVIEW. Using a standard formula language specified by LabVIEW, this Driver allows one to create new calculated Channels whose values depend on existing Channels. One to many existing Channels are used as input to each Equation, which then puts out one new calculated Channel.
Manual: This is a very simple Driver that creates any number of new Channels within MICAS_X. Each Channel has a name and is viewed by MICAS-X as a Controller, or output Channel. These Manual Channels can be shown on the main Control tab, so that the operator can manually enter values into them. They can then be used as inputs to Calculations or Equations, as local variables within MICAS to store intermediate values or counters, and as conditions or outputs of Sequences, Triggers, and Alarms.
MICM: This Driver implements the Instrument Communication Module (ICM) in MICAS-X, allowing a configuration-based mechanism for reading and writing data from a wide range of instruments. ICM is similar to OSDS, but with greater functionality.
MOSDS: The OCC Streaming Data System is a well-established utility for acquiring data from a wide variety of sources using configuration files, and hence requiring very little, if any, LabVIEW programming. It includes tools for reading data from serial ports, Ethernet, NTP, and the computer clock, and has extensive support for parsing a wide variety of data streams. MOSDS is the MICAS-X implementation of the OSDS open-source tool. This Driver can therefore be configured to acquire data from many different instruments.
NIDaqAD: This Driver allows one to acquire Housekeeping data from a wide variety of National Instruments data acquisition devices, including CompactDaq. This Driver includes numerous options for scaling the data, allowing the resultant MICAS-X channels to be already scaled in Engineering Units.
Sequences: The Sequences Driver provides additional functionality for MICAS-X Sequences. Sequences can be used without including the Sequences Driver. If the Driver is included, additional Housekeeping Channels are created that allow for new ways to control the Sequences and which record the current step of every Sequence as they are running.
Timers: The Timers Driver allows one to create any number of Timer channels. These Timers have sub-second resolution, and are useful as conditions for Sequences, Triggers, and Alarms.
Triggers: Similar to the Sequences Driver, the Triggers Driver is optional and creates additional functionality for the Triggers and Alarms in MICAS-X. Triggers and Alarms can be used without the Triggers Driver, but if the Triggers Driver is included, additional channels are created that allow for recording the state of each Trigger and Alarm as well as allow for the control of the trigger threshold of each Trigger and Alarm.
Variables: This Driver is functionally identical to the Manual Driver, except that it can be instantiated multiple times. By including multiple copies, one can configure them to be in different loops. or can make some of the Channels remember their value from one run of the program to the next while other Channels always initialize with the values contained in the configuration file.

Note that the Calculations, Equations, MOSDS, and NIDaqAD Drivers are all multiply-instantiable—one can include multiple copies of each of those Drivers within MICAS-X. For example, three NIDaqAD Drivers can be configured so that MICAS-X can acquire data from three different National Instruments devices.

In addition to the above Drivers included with MICAS-X, the following Drivers are available for an additional price:
2D Array: The 2D Array Driver allows one to create a two-dimensional array of numeric values. These values can be read and written to programmatically throughout the MICAS-X program, and allow for functionality such as scanning a process variable through a set of values similarly to Array. Multiple arrays can be created by adding this Driver to the configuration multiple times.
Agilis: This Driver controls Agilis motorized mirror mounts.
Airmar: This Driver interfaces to the Airmar 200WX and similar weather stations, allowing acquisition of GPS, motion, attitude, wind, and meteorological data.
Alicat: The Alicat Driver interfaces to a variety of Flow and Pressure Controllers made by the Alicat company.
CANBus: This Driver allows communication to devices using the industrial CANBus protocol.
Controllers: This Driver allows the operator to associate a SetPoint channel with an existing output (Controller) channel, using one of several different control algorithms. For example, a SetPoint channel called Tank Level could be created and mapped to an analog output channel on an NI Daq device using a PID control loop, thus allowing the user to specify the SetPoint of the Tank Level and have the Daq output channel control the voltage to a valve on the tank. The control algorithms available are: Mass Flow with Volume Flow SetPoint, Volume Flow with Mass Flow SetPoint, Thermostat Control (on/off or bang-bang controller with hysteresis), Simple Control (a semi-proportional feedback control), PID (Proportional-Integral-Differential), and Follower (applies a linear scaling to an existing channel to send out a proportional voltage on an output channel).
Expressions: This Driver is very similar to the Equations Driver, but is many times faster and includes many more functions.
File Reader: This Driver provides data to MICAS-X after reading in a file of previously recorded or created data. It can be used to simulate data or playback data that was acquired earlier.
GRIMM 1p109 OPC: This Driver acquires data from a GRIMM 1p109 Optical Particle Counter.
Look Up Table: This Driver can be used to scale any number of channels using any number of look-up tables, allowing complex scaling relationships that cannot be implemented as a polynomial.
MCCDaqAD: This Driver supports analog data acquisition from many Measurement Computing multifunction devices.
MCCDaqDA: This Driver supports analog output for many Measurement Computing multifunction devices.
MCCDaqDI: This Driver supports digital input from many Measurement Computing multifunction devices.
MCCDaqDO: This Driver supports digital output for many Measurement Computing multifunction devices.
MCCDaqTC: This Driver supports temperature data acquisition from Measurement Computing thermocouple devices.
MICAS-XRT: The MICAS-XRT Driver provides a link from a Windows copy of MICAS-X to a copy of MICAS-X-RT running on a Real-Time embedded system.
Modbus: This Driver supports input and output channels from Modbus instruments using serial or Ethernet interfaces.
myRIO Daq: This Driver is for MICAS-X-RT only and interfaces to the Daq signals on the myRIO platform.
NIDaqBridge: This Driver interfaces with NI Bridge modules, and currently supports load cell measurements, with other bridge measurements available in the future.
NIDaqCounter: With this Driver, the operator can use the Counter functionality built into many NI Daq devices to measure pulses or edges.
NIDaqDA: This Driver creates output channels (Controllers) using the analog outputs available on many NI Daq devices.
NIDaqDI: This Driver is for creating digital input channels using NI Daq devices.
NIDaqDO: This Driver is for creating digital output channels using NI Daq devices.
NIDaqRTD: Interfaces to NI Daq devices that can read RTD temperature sensors.
NIMotion: This Driver can be used for basic motion control using NI hardware.
Obis Laser: This Driver interfaces to Obis lasers from Coherent.
Omega: This Driver interfaces to the Omega CNi series of temperature controllers.
Picarro G2401: This Driver acquires data from a Picarro G2401 cavity ring down spectrometer.
PID: The PID Driver creates PID control loops, similar to the Controllers Driver, but with more flexibility. It includes multiple gains for gain scheduling, the ability to change gains while the program is running, and an auto-tune wizard.
PrimeScales: This Driver reads the weight from a PrimeScales PS-IN202 industrial scale.
PWM: This Driver uses an existing channel to define the duty cycle to turn on and off an existing digital output channel.
RIO Scan Engine: This MICAS-X-RT Driver interfaces to Scan Engine variables on RIO platforms with no FPGA programming required.
System: The System Driver can monitor CPU and RAM usage, disk free space, and dozens of other computer resources.
System-XRT: Similar to the System Driver for Windows, but specific to RT platforms.
UPS: Communicates with several brands of UPS's to monitor the AC power state and the battery state.
Vaisala HI70: This Driver interfaces to the Vaisala HI70 model humidity sensor.
Vaisala HMT310: The Vaisala HMT310 series of RH sensors are high precision devices for RH and temperature measurement.
Vici Valve: This Driver interfaces to certain Vici valves from Valco Instruments.
Watlow EZZone: This Driver supports Watlow temperature controllers with a serial interface.
Web Power Switch 7: This device is a convenient way to control AC power for up to 8 instruments. It can also implement a watchdog function, ensuring that power to any device is turned off if the computer or software becomes unresponsive or crashes.

Custom Drivers have been written to interface with industrial controls through Modbus, control various industrial-grade motion control systems, and to use CompactRIO as the system's acquisition and control hardware.

 

 

Instruments

In addition to custom Instruments developed for specific customers, the following MICAS-X Instruments are available for additional charge.
Broadcast: This module is not a typical MICAS-X "Instrument", as it does not interface to a specific piece of scientific hardware. However, it provides additional functionality using the Instrument specification, allowing it to be implemented or not as needed. This Instrument allows any set of MICAS-X channels to be sent out over serial or Ethernet communications to another system. This Instrument can be multiply-instantiated within MICAS-X, allowing more than one data stream to be sent from the MICAS-X computer to other systems.
Command: This module is also not a typical MICAS-X "Instrument". When added to a MICAS-X configuration, this module adds the functionality of allowing other computer programs to send commands to MICAS-X. This module can be configured to listen for commands on a serial port or a UDP port. Any command valid MICAS-X command (such as those used with Sequences or Triggers) can be read by this module and acted on. When this module is included in a MICAS-X configuration, a Utility called Command Interface is also included. This VI can be run within LabVIEW or as an executable. By reading the same configuration file as MICAS-X is using, it compiles a list of all the Commands, Channels, Sequences, and Triggers in the current MICAS-X system, and presents these as options in a graphical interface, so that any known command can be sent to the MICAS-X system. Custom programs can also be written to provide this type of external control.
Email: This module enables the operator to configure MICAS-X to send e-mails or text messages in response to commands or alarms.
Ocean Optics: This Instrument allows the acquisition of optical spectra, with averaging and file writing, from an Ocean Optics USB spectrometer.
Ramp: The Ramp Instrument creates linear or exponential Ramps of a Controller (output) channel vs time, with a time resolution much more precise than can be attained through the Sequences. The ramp high and low values, the ramp time, and starting and stopping the ramp can all be configured so that they can be controlled programmatically or manually.
RT File Transfer: This Instrument automates the transfer and archiving of data files created on an embedded RT target by MICAS-X-RT to the Windows host. After transferring files from the RT target to the host, this instrument can optionally delete the original files on the RT target to ensure that the target does not run out of disk space.
SMPS Ramp: This Instrument builds on the Ramp functionality to allow the acquisition of particle data transmitted through a scanning DMA (Differential Mobility Analyzer).
WebCam: This Instrument allows for one to display the image from a USB WebCam or a WebCam built into a laptop.
Web Interface: This Instrument publishes data via the Skyline API, allowing it to be used on a custom web page written with LabVIEW NXG.
Web Page - This Instrument displays a web page in an embedded browser. Customization can allow for additional functionality such as ingesting information from the web page into MICAS-X.

 

 

Displays

The following Displays are included in the MICAS-X base package:
3Graphs: This display contains three time-series graphs, each with a data channel graphed on the left axis and another graphed on the right axis.
Big Display: This is a very simple display that is intended to be configured so that it opens up outside of the main MICAS-X windows, so that it is always visible regardless of which tab is currently displayed. It has three LED indicators and three numeric indicators, all of them much larger than usual. Any channel can be configured for any of the indicators. This display is intended to be used to allow for several important channels to be viewable from a distance, such as across a room.
Document Display: This module displays a document in a MICAS-X window. This can be used to provide instructions and information regarding the specific MICAS-X configuration or system. In addition, by using the .mdoc file format, MICAS-X can programmatically control the display of different sections of the document, allowing the presentation of instructions specific to the current step in the process or experiment being controlled.
Sequences: This display can optionally be used whenever any Sequences are defined in MICAS-X. This Display shows all the defined Sequences as well as whether they are running and if so, what step they are on. One can also scan through the Sequences to see how each step is defined. Sequences can also be turned off and on from this Display.

The following Displays are available at an additional cost:
Indicators Display: The Indicators Display can show up to 32 channel indicators. Each channel can be configured to be displayed as a gauge, bar, numeric, or an LED.
Map: This Display uses map tiles downloaded ahead of time to display color-coded Channel data on a zoomable map. This functionality can be indispensable for a mobile lab that does not have internet access.
Multi Display: The Multi Display module provides a highly-flexible display that can adapt to many situations. Each instantiation of the Multi Display can be configured to have up to six custom Views. Each View contains two time-series Graphs, up to four Buttons, and up to five Options. The Top Graph can display up to eight Channels, while the Bottom Graph can display up to four. Both graphs have a left and right Y axis, and any of the Channels can be configured to either axis. The Buttons can be programmed to execute any MICAS-X Commands, just like the Buttons on the top of the MICAS-X window. The Options can each be configured as any one of the following: a numeric indicator for one Channel, a Controller Channel that the operator can set the value of, a Switch, or a Sequence.
Recipes: The Recipes Display creates a simplified interface to creating and using sequences. Each Recipe Step can be a Sequence which itself has many steps. The operator, during run time, can create a Recipe from existing Recipe Steps. Native Sequence Steps can also be used, allowing looping and conditional execution in the Recipe. Furthermore, Recipes can be created and executed while MICAS-X is running, rather than only defined from the Configuration Editor.
XRT Sequences Display: This Display is similar to the regular Sequences Display, except that it is used on a Windows version of MICAS-X to view and control Sequences that are running on an embedded RT target using MICAS-X-RT.
XYZ Graph: This Display creates a plot which uses two channels for the X and Y points, and a third channel is displayed by color at the coordinates of the first two channels. This Display is especially useful for geographic display of data, as Longitude and Latitude can be used for X and Y and any measured channel can be used as the color-coded Z channel. In addition, an optional Marker (black X) can be placed anywhere on the graph as a reference point.

 

 

Utilities

Utilities can be run inside MICAS-X in the Utilities tab, or as stand-alone programs. The following Utilities are included in the base MICAS-X package:
Configuration Editor: This Utility provides a graphical interface the operator can use to configure MICAS-X. Using this Utility, modules can be added or removed from MICAS-X, and each module can be configured to determine how it works. Multiple configuration files can be saved, so that MICAS-X can be run with various "personalities".
Data Reader: This Utility reads in the .csv files that MICAS-X saves whenever it is in the Record mode. It displays any two channels vs a third channel (usually time) for review.
Log Reader: The Log Reader displays the Log file, which records errors, events, and messages.
mDoc Editor: This utility provides a quick and convenient way to create text documents in the .mdoc format, which can then be used to present information or instructions to the user under programmatic control through the Document Display.
mDoc Reader: The mDoc Reader allows one to view mDoc documentation outside of MICAS-X. This can be useful for documents that describe how to use or configure MICAS-X.
TMDS File Reader: This Utility reads the .tdms file that MICAS-X saves whenever it is in Acquire mode. The operator can use it to view any channel in a table or in a graph.

The following Utilities are available add additional cost:
Command Interface: This Utility is used with the Command Instrument. It serves as an example of how to interface to MICAS-X and send commands remotely over a serial port or through UDP. Like all Utilities, it can be run inside MICAS-X or as an external program, either inside LabVIEW or as an executable. When running inside MICAS-X, it can control the same instance of MICAS-X or another, depending on how the communication is configured.
FTP Utility: This Utility implements a simple FTP file transfer interface between the computer running MICAS-X and another computer. It can be useful for manually transferring data files from an embedded MICAS-X program to the Windows host, or for other file transfer.