Flexible, modular, scalable systems lower cost and risk.
Sixclear Fabriq is a scalable system development platform built on LabVIEW. At its core, Fabriq is an extensible, actor-oriented abstraction over the Featherweight application framework which provides both out-of-the-box reusable actors for many hardware devices and system software needs, as well as overrideable templates for custom actors such as data publishers, data subscribers, request-responders, and more.
Important Note: Fabriq is NOT based on NI's Actor Framework. Fabriq intends to bring best-of-breed messaging and other technologies together to enable building scalable systems on the LabVIEW platform without compromising edit-time performance, run-time performance, or the ability to scale beyond a single computer. Fabriq systems are easy to comprehend, build, and deploy, while seamlessly integrating modern capabilities such as web interfaces.
In practice, Fabriq is an elegant solution to test, automation, and control systems of all sizes. While we cannot fully capture its capabilities in a few sentences here, important features and distinctions include:
The concepts are easy, so are building the systems.
Fabriq actors are independently running parallel processses which send and receive messages. They can be composed to build up systems by launching as many instances of each as necessary.
Let's consider an actor that acquires data from a National Instruments (NI) analog input device, which we'll call our NI AI actor. Perhaps a configuration file will define the initial configuration parameters such as physical channels and sampling rate. We should then be able to launch our actor and subsequently send messages such as "start acquisition" and "stop acquisition" and receive replies. Finally, suppose we want to send the acquired data to some CSV File I/O actor. We would configure our NI AI actor to publish data, and similarly configure a File I/O actor to subscribe to that publication. With Fabriq, this functionality and much more just magically works. A depiction of such a system is shown below.
In systems consisting of multiple devices we often need to "orchestrate" communication with a "system control" actor, such as sequencing commands across several devices in a test system, or aggregating measurements to compute and reflect control channels in a control system. The following diagram shows a depiction of such a system with 3 hardware devices as well as a WebSocket Host Actor which publishes data for monitoring in a browser interface.
Even systems of substantial complexity can be designed and built quickly and reliably. Desigining systems is as easy as drawing simple diagrams like shown above, where even hardware and other software integration can be represented as needed. Implementations are significantly simplified as actors are inherently decoupled allowing for unit testing and seamless collaborative development.
Down with reinventing wheels, up with deploying systems!
Fabriq actors are highly configurable, supporting custom channel names, complete hardware configurations where appropriate (ex. acquisition rates), data publishing, configurable request-response handling, configurable procedure definitions, and much more.
System & Data Storage
A powerful "application" which allows for manually issuing commands to system actors for test and debug purposes, as well as creating/saving/running sequences of commands.
Provides request and timing synchronization, pluggable derived channel computation points, control data reflection, data publishing, and more.
Filter which channels are published to a websocket for use with an existing Fabriq web interface, or your custom web interfaces.
Quickly configure channels to stream to disk in comma separated value (CSV) format.
Quickly configure channels to stream to a relational database using a common or your custom database design.
Manipulate FITS image files using common stretch transforms or adding custom metadata.
Measure and control channels in your NI CompactRIO system modules. Write data to output channels and read data from input channels. Swap modules and simply update your configured channel map.
Measure analog input data on NI's data acquisition platforms such as CompactDAQ (cDAQ), PXI, and USB.
Generate analog output data on NI's data acquisition platforms such as CompactDAQ (cDAQ), PXI, and USB.
Measure digital input data on NI's data acquisition platforms such as CompactDAQ (cDAQ), PXI, and USB.
Generate digital output data on NI's data acquisition platforms such as CompactDAQ (cDAQ), PXI, and USB.
Measure counter input data on NI's data acquisition platforms such as CompactDAQ (cDAQ), PXI, and USB.
Generate counter output data on NI's data acquisition platforms such as CompactDAQ (cDAQ), PXI, and USB.
Control Tektronix oscilloscopes using all standard commands and custom commands to support all model-specific features.
Configure and control nearly any FLI camera, filter wheel, or focuser.
Control Uniblitz optical shutters driven by a corresponding shutter driver.
Control and acquire laser profiles from Keyence laser setups.
(just override a few VIs)
Core request-response actor from which all other Fabriq actors derive.
Override just a few VIs to turn any device, or other actor concept, into a data publisher in your system.
Subscribe to data published by other actors and handle those subscriptions with your custom overrides.
Handle data from incoming subscriptions and transform, filter, or otherwise update data to publish.
Build your systems of the future on Fabriq.
Fabriq systems are quoted on a per-project or site-wide basis to accommodate projects of all sizes. For organziations wishing to maintain in-house expertise, comprehensive training is provided. In all cases, Sixclear professional services are available to help build your future systems on Fabriq.
Let's build your next system together with Fabriq. Reach out to us by requesting a quotation with information about your system, or simply give us a call to discuss details with a senior engineer.