The ADEPT software platform offers the most advanced built-in capabilities of any commercial industrial IoT framework. With all the features you need to hit the ground running, ADEPT will quickly save your team time and effort. Follow are some of the most important ADEPT capabilities.
ADEPT supports models and code from all popular tools and languages so your engineers can always work in the best tool for the job. And because ADEPT uses standard data dictionary connections, you can run multiple models at the same time and even mix-and-match models of any type!
MATLAB/Simulink models are supported through a toolbox that makes it easy to expose interfaces to/from ADEPT and Simulink environments. The latest version of ADEPT supports MATLAB/Simulink R2010b to R2019b for 64-bit Windows, and R2014b to R2019b for 64-bit Linux. Embedded Coder is required.
FMU Model Import for both Co-Simulation and Model Exchange are supported by ADEPT (both versions 1.0 and 2.0). The FMI/FMU standard is powerful because it enables models from the following tools to be exported and run in ADEPT: CATIA, Dymola, IBM-Rhapsody, Modelica, Flomaster, SimulationX, ControlBuild, FLUIDON, EASY5, and MapleSim.
C/C++, Fortran and ADSIM
C/C++ code and models are natively supported by ADEPT, as well as Fortran and ADSIM. ADEPT makes it easy to interface with these model types by importing header file information to automatically generate data dictionaries for interfacing with I/O and other models.
ONNX and TensorFlow
ONNX has become the de facto standard for deploying artificial intelligence and machine learning (AI/ML) inference engines and is now supported by ADEPT. The following popular AI/ML toolchains can export to ONNX and run in an ADEPT framework: TensorFlow, Caffe2, PyTorch, MATLAB for ML, Apple Core ML, Microsoft Cognitive Toolkit, Keras, scikit-learn, and many more.
ADEPT is always adding support for additional model types, so check back here if you don’t see what you’re looking for, or send us a message and we can tell you more about our development pipeline.
ADEPT supports I/O and interfaces from the best off-the-shelf commercial sources. This enables ADEPT-based solutions to select the best offerings from each manufacturer and provide a total solution that most efficiently meets the needs of any application.
ADEPT has proven solutions for all of the expected standard interfaces, including analog inputs, analog outputs, digital I/O, relays, timers/PWMs, positioners, resolvers, encoders, and temperature sensors/RTDs.
ADEPT also has strong support for more complex interface boards, including FPGAs, reflective memory and time synchronization.
ADEPT has first class support for many standard communication protocols, including MIL-STD-1553, ARINC, SpaceWire, EtherNet I/P, EtherCAT, Modbus-RTU, Modbus-TCP, CANopen, and OPC-UA.
Preferred interface suppliers include: Acromag, ADLink, Ballard, General Standards, National Instruments, North Atlantic Industries (NAI), Pickering, TEWS Technologies.
ADEPT makes it easy to connect data between models and I/O. Just drag inputs or outputs from one port to the other, and ADEPT handles transferring the data (even across servers) at just the right time. ADEPT then tracks and manages your data connections inside each server and between distributed servers in your framework.
ADEPT was designed to run on standard off-the-shelf computing resources, so you can take advantage of the tremendous advancements that have been made in data center server hardware, including high performance and high reliability with built-in redundancy at a mass market price point. And the ADEPT software adds less than 1% overhead to each model-dedicated processor core.
At the heart of an ADEPT server is the rtxd, which provides a set of built-in, performance optimized micro services that provide a highly efficient and proven set of basic functionality before you even write any code of your own.
Probe gives you a comprehensive view into your models with the ability to unobtrusively read any signal or memory value in your framework, regardless of which server it is running on.
ADEPT is pre-wired to monitor run-time statistics and health of every model in your framework, including how much frametime is used for inputs, outputs and model computation and how much real-time jitter your system is experiencing.
Data acquisition is vital to most real-time applications. ADEPT has a trusted, high performance, and configurable built-in data acquisition service.
Logical Device Drivers
ADEPT wraps your low-level I/O and interfaces in logical device drivers that abstract your data interfaces so that your models and other interfaces can read and write the latest data at all times.
Serial & Data Handlers
ADEPT has built-in serial and data handlers that parse signals from complex messages and enable direct access to the specific data your interface needs. ADEPT handles package and unpacking of the messages as well as queuing up the sends and receives as needed.
Schedules & Triggers
Also built-into ADEPT is a high performance, time deterministic logic engine that provide real-time execution that can be updated without recompiling your framework. Schedules any triggers can be used to generate real-time test signals (such as sine waves at a specific frequency) or to capture the specific frame when a signal crosses a threshold.
High Resolution Local & Distributed Real-Time Clock
Critical to ADEPT’s time deterministic performance is its built-in microsecond resolution clock and its ability to synchronize those clocks across distributed servers in a framework.
ADEPT controls and monitors your models during runtime to make sure they are running as expected, when expected.
With ADEPT, setting up a distributed computing framework that leverages two or more servers is as easy as dragging the desired servers into your framework and selecting which mechanism you want ADEPT to use to synchronize the systems (IRIG-B, PTP, Ethernet, etc) and share data (reflective memory, high speed Ethernet, etc).
Since ADEPT can compile the same framework to run on a real-time server and in a virtual environment, ADEPT allows you to use the same code and automations at all stages of product development and testing. This allows you to perform early development and integration in an environment that doesn’t tie up costly equipment or put people or the environment at risk, and then once you’ve proven your basic capability, you can transfer your framework to a system connected to your real equipment with a substantial head start.
ADEPT operator interface panels provide users of the ADEPT Framework an environment to create and operate custom, embedded graphical user interfaces. Users are provided a wide variety of gauges, indicators and control components to build an easy-to-operate interface that provides quick access to critical system data and the ability modify commonly changed test variables. ADEPT Panels can be used for a variety of purposes such as monitoring overall system health, evaluating test progression, or built up as the primary user control interface for the real-time simulation.
The ADEPT Panels, while not a separate application, can be opened, developed and ran from several points in the ADEPT Framework, including ADEPT-DE, ADEPT-VI and ADEPT-GD. The Panels are built with a variety of provided components, which include a set of commonly used gauges, indicators and control objects. Highly customizable, these components can be fine tuned to user preferences. Users have the ability to save off individual or groups of custom components into a shareable, reusable custom component template library.
ADEPT’s built-in data acquisition service (DAS) has been designed to be both flexible and high performance. With four independently configurable data streams, ADEPT’s DAS allows you to acquire different groups of data at different rates, up to and including every frame.
Data acquisition from a Model Assembly is set up through the ADEPT-VI runtime environment. Data capture lists can be set up prior to the run or set dynamically while the Framework is running.
Simple setup is achieved through drag and drop from the Data Dictionary to the data capture window. Capture lists can be saved as part of project setup or variables can be flagged in Data Dictionary for automatic capture. Data is captured on the real-time system based on the data rate specified. Each frame of data recorded is time-tagged with the system time (system time can be set to IRIG-B time). All recorded data files include a header consisting of the time/date, project name, and comments (settable through scripts or interactively).
Data recording can be set up to be collected for the entire run. Data are buffered on the real-time system and sent back to the Client PC. Data are saved in an XDR format. A utility is provided to convert XDR to MATLAB, ASCII or CSV format for further analysis.
ADEPT was designed from the start with a strong emphasis on real-time performance monitoring. Each Model Assembly is automatically monitored for computation and real-time performance statistics, including the following.
Steptime is the frequency that each frame is called. This can also be called the control loop rate.
Frametime is the amount of time used for computation during each frame. Frametime is further broken out into separate values for processing inputs, executing the model assembly algorithms, and processing outputs. The difference between the steptime and frametime is the time that is available for additional algorithm or I/O processing.
Real-time jitter is difference between when the frame should start executing and when it actually starts. On a purpose-built, real-time industrial Linux server, we typically see a real-time jitter on the order of a few microseconds.
Frame overruns occur when the frametime exceeds the steptime. This can be a serious problem for some real-time applications, so it is often important to monitor this value to ensure there are no frame overruns and if an overrun is detected, that it is handled appropriately.
ADEPT provides a complete Python API that enables any level of automation desired, from grouping a few common tasks to run every time a framework is loaded to complete system control for lights-off operation. ADEPT can be controlled by an external Python script but it also has hooks for executing Python scripts at all common times, such as on framework open, framework load, runtime start, runtime end, etc.
ADEPT also provides open APIs throughout, so that it can be easily integrated with external systems of all types.
ADEPT enables highly efficient workflows by enabling the same code-base and automation functions to be run across the entire product development lifecycle, from real-time to synchronized virtual deployments.
ADEPT takes a modern approach to cybersecurity by leveraging standard protocols and operating system services, both in Linux and Windows, to comply with the latest cybersecurity industry standards and best practices while supporting standard corporate IT/cyber policies.
NIST 800-171 compliance can be achieved through ADEPT’s built-in support for user management and access control along with leveraging standard Linux and Windows services for authentication, encryption, boot sequencing, etc.
CIS Security Level 2
CIS Security Level 2 compliance can be achieved through configuration and hardening of the ADEPT installation.
Contact us for more details on how ADEPT can be hardened to meet NIST 800-171 and CIS Security Level 2 standards.
ADEPT has built-in support for Subversion (SVN) revision control. This allows users to integrate revision control actions (update, check-out, check-in, etc) into Python scripts that are executed as part of a standard workflow to ensure that the correct version of files are always used and to make sure test data and reports are programmatically archived so that no data are lost.
ADI offers full-service commercial technical support for ADEPT throughout the life of your program and beyond. Our experienced support team is available to answer your questions and quickly resolve any issues you may encounter. With over 60 years of delivering excellence, you can trust ADI’s team will be there when you need it. Let us handle supporting your real-time capabilities so that you can focus on your models and your products.