Original Code
          Consulting Original Code Consulting

OCC Home Page  LabVIEW
              Programs for Download  Products  MICAS-X  LabVIEW related
              publications  LabVIEW Presentations

MICAS-X Resources  MICAS-X
              Customer Experience  MICAS-X Architecture  MICAS-X Modules  MICAS-X Features


Multi-Instrument Control and Acquisition System - eXtended

    MICAS-X is a framework of software infrastructure, written in LabVIEW, and designed to be extensible and to provide a wide-ranging platform for the efficient development of scientific instrumentation acquisition and control software.  MICAS-X contains an extensive set of functionality that many, if not most, data acquisition and control systems will need, such as sequencing, alarming, error and event logging, file writing, and more.  In addition, MICAS-X is highly modular, allowing it to be customized to fit each situation with only those parts of the pre-built functionality that are needed, and, most importantly, the ability to easily integrate custom LabVIEW software for the specific needs of each system.
    This software package evolved out of over twenty years of experience in writing software for R&D-grade, state-of-the-art atmospheric and other scientific instruments.  As LabVIEW became more capable, and my experience with LabVIEW increased, I was gradually able to coalesce many of the features common to my various software efforts into a generalized framework.  MICAS-X brings together many of the functions found necessary and/or useful in field-based scientific instrument software, and assembles them in a way that is highly extensible, allowing for the addition of custom modules for specific instruments, while still taking advantage of the many functions and features already built into MICAS-X.
    Based on the above description, the primary market for MICAS-X is as a platform for the development of custom software for scientific instruments.  However, in practice, MICAS-X has found a niche in another set of applications as well.  Due to the wide range of Drivers already created for MICAS-X, it is easy to configure MICAS-X for use with a wide variety of lower-performance data logging applications.  Rather than writing a new LabVIEW program each time a new test needs to be set up, many common laboratory and industrial tests and experiments can be carried out by simply reconfiguring MICAS-X.
    As of version 2.1, the MICAS-X system now directly supports National Instruments' Real-Time embedded platforms. Through MICAS-X-RT, much of the functionality and benefits of MICAS-X can now be quickly and easily be deployed to a LabVIEW-RT system such as a CompactRIO chassis. More information on MICAS-X-RT can be found below.

 MICAS-X Control Tab Screen
    When MICAS-X is set up to run autonomously on boot-up, it may be useful to use the OCC Program Prep software to launch MICAS-X.  OCC Program Prep can be used to ensure that the NI DAQ devices are fully initialized by the OS before MICAS-X launches.  (If they aren't, they won't work in MICAS-X and MICAS-X will need to be restarted.)  OCC Program Prep can also be used to synchronize the computer clock to a GPS or to an NTP server before launching MICAS-X.  Note that OCC Program Prep is not included with MICAS-X, but is a separate purchase.

    The current release of MICAS-X is 3.0.0.  For downloadable documentation, check out the MICAS-X Resources page.  A Limited Demo version of MICAS-X is available for free and runs with all functionality enabled for 20 minutes.  Contact Original Code Consulting (support(at)originalcode.com with (at) replaced with the "@" symbol) to obtain the Limited Demo version or visit the LabVIEW Tools Network.

    The 2.0 release of MICAS-X included significant restructuring of the MICAS Driver model. Drivers can now be disabled and re-enabled, and MICAS-X can start and stop any or all Drivers. Among other benefits, these functions allow one to deal with hardware issues or failures without stopping and restarting MICAS-X. If one device fails, the associated Driver can be disabled, allowing MICAS-X to continue running without errors while the troublesome device is repaired. The 2.0 release also made the Driver time channel for each Driver optional. This channel can be used to track when each Driver's data was acquired, which can be useful for configurations with multiple acquisition loops running at different rates. By making it optional, simple configurations with a single acquisition loop need not be cluttered with these channels which are unnecessary in that situation. Similar State channels can be enabled for each Driver, which record the enabled/disabled state of the Driver.

    Numerous new Commands were been added to MICAS-X 2.x as well. Among them: The Record Once Command allows for triggered data recording. EnableDriver and DisableDriver allow control of each Driver in the configuration via Commands. The Sequences have numerous new features, including the PauseSeq and UnpauseSeq Commands and the ability to pause and unpause Sequences from the user interface. The StartSeq Command now allows a numeric parameter which can specify the step number to start the Sequence at. The WaitForSeq Command can be used after starting one Sequence within another Sequence, which causes the newly started Sequence to act as a sub-routine, rather than spawning it as a separate process. The CondSource Command allows Sequence steps to define conditions which compare two channels to each other, rather than comparing a single channel to a constant value. The StopAllSeq Command can be used to stop all running sequences.

    The new Document Driver allows for custom documentation to be integrated into a MICAS-X configuration and displayed in sync with the program's operation. The NIDaqBridge Driver brings force and other bridge measurements to MICAS-X. Several Vaisala Drivers are available for humidity and temperature sensors, and the Equations Driver now supports a new set of equations such as Min(a,b,c...), Max(a,b,c...), Median(a,b,c...), and Rate(a).

    Another significant change in MICAS-X 2.0 is that the license key hardware has been upgraded to a much more robust USB drive implementation, with the accompanying phase out of the previously-used third party USB license hasp.

    Scripts were added to MICAS-X 2.1.4. Scripts are a more powerful version of the existing Sequences. Scripts are saved in individual script ( *.mscr) files, and are loaded into MICAS-X as Sequences when the program starts. Scripts can simplify longer, more complicated Sequences since Scripts use a more feature-rich language. For example, a single Script line can execute multiple calls to the same Command, so that many Channels can be set to new values with a single Set command. Script lines can have an optional Condition, which is evaluated at run time. The Condition Threshold value can be a constant, a Channel, or an expression based on other Channels. (The expression syntax is the same as for the Equations Driver and is documented in the manual.) Similarly, numeric values for Commands can be constants, Channels, or expressions.

    Many other features and improvements have also been added to MICAS-X, as can be found in the MICAS-X Changes Log document on the MICAS-X Resources page. The Modules page describes the MICAS-X Modules currently available. A discussion of the overall architecture of MICAS-X can be found on the Architecture page, and a list of additional features can be found on the Features page.

Compatible with LabVIEW

    MICAS-X has been certified as "Compatible with LabVIEW" and is now on the LabVIEW Tools Network.  A free demo version of the program can be downloaded directly from NI's site.  (Note that this download will not always be the most current version of MICAS-X.)

    MICAS-X has always supported National Instruments' embedded data acquisition platforms, such as CompactRIO. In fact, roughly half of the MICAS-X systems deployed to date have included a CompactRIO or other embedded target. Before version 2.1, these embedded targets were integrated into MICAS-X as custom Instruments or custom Drivers. Using these methods, the full potential of the embedded system could be utilized, but at the expense of developing custom code. With the release of MICAS-X-RT, the broad functionality, flexibility, and configurability of MICAS-X is now available directly on LabVIEW Real-Time embedded platforms.
    MICAS-X-RT itself is a direct port of the MICAS-X program to the RT platform. Due to the high degree of cross-platform compatibility built into LabVIEW, moving the bulk of the MICAS-X code to LabVIEW RT was straightforward. This means that all the advanced functionality of MICAS-X on Windows is available on LabVIEW RT, and that the code for this functionality immediately inherits the robustness and maturity of MICAS-X on Windows. MICAS-X-RT includes Alarms and Triggers, Sequences, Error and Event Logging, Data Logging, Data Acquisition and Control via MICAS-X Drivers, and much more. Due to the embedded nature of the RT platform, not all the functionality of MICAS-X is relevant to MICAS-X-RT. Since it is usually run headless, the user interface of MICAS-X-RT is seldom used and is quite basic. For the same reason, no user dialogs are implemented on MICAS-X-RT. However, due to its extremely high level of integration with MICAS-X on Windows, these omissions are easily remedied and do not appear as deficits.
    MICAS-X-RT can be configured from the same Configuration Editor as MICAS-X. In fact, existing MICAS-X configurations can often be edited to work on MICAS-X-RT. Many of the same Drivers as are used on MICAS-X for Windows can be used directly in MICAS-X-RT. In addition, a RIO Scan Engine Driver has been created specifically for MICAS-X-RT which allows immediate, programming-free access to many IO modules and channels on RT systems via the Scan Engine interface. If custom FPGA functionality is needed in a project, that can also be added via a custom MICAS-X-RT Driver or Instrument.
    Although MICAS-X-RT is normally run headless with no direct UI, the MICAS-XRT Driver, when added to MICAS-X on Windows, provides a highly functional, versatile user interface. The MICAS-XRT Driver translates all the input and output Driver channels on MICAS-X-RT directly to the MICAS-X Windows program. E.g. viewing data, including time-series graphs, is easy and immediate. Likewise, the output channels on the RT system can be controlled directly from the MICAS-X Windows program just as if they were local channels on the Windows machine. Finally, the MICAS-XRT Driver also brings all the Commands available on the RT platform directly to the Windows program. Thus, Sequences on the RT platform can be started and stopped directly on the Windows machine, just as local Sequences can. Channel values can be manipulated via the various Commands, and all the other programmatic functionality that Commands bring to MICAS are similarly available. (Note that a small number of MICAS-X Commands are not supported on the RT platform, such as those that create user dialog windows.)
    When combined in this way with MICAS-X on Windows, the missing user-interface functionality of MICAS-X-RT is quickly ameliorated. As mentioned, time-series graphs and other data displays are direct and trivial. Data logging can occur on the RT platform (for maximum robustness) and/or on the Windows platform. Alarms that are triggered on the RT platform can be annunciated on the Windows platform using sounds, visual queues, emails, or other notifications. However, the embedding of key logic directly on the RT platform greatly enhances the robustness of the entire system, since it is much less susceptible to crashes and interruptions than a Windows computer. In some instances, MICAS-X-RT will be run alone, without a MICAS-X Windows interface, and act as a highly robust embedded controller and/or data logger.

MICAS-X SE (Student Edition)

    The Student Edition of MICAS-X is targeted at graduate and undergraduate students in the physical sciences and engineering. It includes all the features of the MICAS-X base package, as well as Drivers for Analog Input and Output and Digital Input and Output using National Instruments Daq devices. As such, it provides a quick way for students to create simple data logging and experiment control systems with minimal programming. The executable version of MICAS-X SE is available for free to qualifying students, whereas the source code version (which required that LabVIEW 2015 be installed as well) is available for a small price. Students interested in obtaining MICAS-X SE should contact OCC at  micasxse (at) originalcode.com .
    Two videos are available that demonstrate how to use MICAS-X SE. The first requires no external hardware and executes a ramp on simulated channels. The second shows how to use an NI data acquisition device to set up a simple experiment.
    The MICAS-X SE page contains additional information on the Student Edition and how to use the example configurations.

OCC Home Page  LabVIEW Programs for Download  MICAS-X  LabVIEW related publications  LabVIEW Presentations  BotLabs Web Page - home of the Saurobots!  Links
Please report any bad links, other problems, or comments to: 

Site Map and Downloads