Introduction
United Electronic Industries offers two operating modes for deploying UEI Cube and Rack data acquisition systems. This article provides an overview and comparison of the two operating modes: PowerDNA and UEIPAC.
In PowerDNA Mode (Distributed Network Architecture) your application runs on a host PC under almost any OS including Windows, Linux, and VxWorks and controls a Cube or RACKtangle over Ethernet. The PowerDNA hardware runs dedicated firmware and uses a UDP-based protocol named DAQBios to communicate with the host PC. The PowerDNA API implements the DAQBios protocol to ease application programming. Almost any programming language is supported. All languages use the same API, so your software design is portable. PowerDNA series chassis act as I/O slaves supervised by an application running on a host PC. The PowerDNA hardware can’t do anything useful without the application, which must run at all times. This configuration works well in both data acquisition and control applications.
UEIPAC (Programmable Automation Controller) systems are UEI’s standalone/embedded configuration. Applications run directly on the hardware. Code is compiled on a development PC and then downloaded to the UEIPAC. UEIPAC systems run a standard Linux or VxWorks operating system. UEIPACs are perfect for embedded control and monitoring applications. The same PowerDNA API used in PowerDNA mode is also used in UEIPAC mode to control the local I/O cards.
PowerDNA Server
For UEIPAC systems, UEI provides PowerDNA Server. PowerDNA Server is a user application that implements the DAQBios protocol. This allows the UEIPAC to be accessed by remote applications (such as PowerDNA Explorer) the same way those applications would access PowerDNA mode slave hardware.
User/kernel Separation for UEIPAC Systems
Note that user/kernel separation is enabled on UEIPAC systems. The Linux kernel runs on ring0 on Intel CPUs or supervisor mode for ARM processors. User applications run on ring3 on Intel CPUs or user-mode for ARM processors. This prevents user applications from accessing kernel memory and from interfering with the memory of other applications. User applications make calls to the PDNA library which calls the kernel driver.
Latencies in Systems with PowerDNA Server
Note that there are higher latencies when running PowerDNA Server on a UEIPAC system versus a hosted PowerDNA configuration. This is due to the larger Linux kernel on UEIPAC systems and additional layers of software that need to be crossed than on the simple embedded firmware of a PowerDNA system.
Application Development
For application development, UEI provides our low-level C API. The low-level API provides direct access to the DAQBIOS protocol and is intended for speed-optimization, when programming unconventional functionality, or when programming under Linux or real-time operating systems. Applications utilizing the low-level API can run in either PowerDNA mode or UEIPAC mode.
Alternatively, the UeiDaq Framework is available for Windows users. The Framework is object-oriented and provides support for C++, Python, .NET languages, LabVIEW, and more. ANSI C support is also provided. The Framework simplifies the low-level API, making programming easier and faster while still providing access to the majority of low-level API features.
Data Acquisition Modes
UEI offers data acquisition and control modes that satisfy an assortment of application requirements. A summary of these modes is provided below. See FAQ | Data Acquisition Modes for more detailed information.
Note that maximum speeds for RtDMap, RtVMap, ADMap, and AVMap are additionally limited by system hardware. Acquisition speeds for PowerDNA systems are limited by the speed of your Ethernet port.