Adroit: a compelling platform for MES solutions |
This paper sets out to present the Adroit suite of software applications as a compelling platform for implementing effective MES solutions. A key point is every manufacturing operation has its own unique set of challenges, and therefore a shrink-wrapped, one-size-fits-all approach is not feasible. General, as well as MES-specific features and characteristics of Adroit are elaborated, and their relevance to MES highlighted.
MES systems track and record the transformation of raw materials through finished goods. They provide the right information at the right time and show the manufacturing decision maker how the current conditions on the plant floor can be optimized to improve production output. MES systems work in real time to enable the control of multiple elements of the production process - e.g. inputs, personnel, machines, support services, etc.
MES systems may operate across multiple function areas:
- Management of product definitions across the product life-cycle
- Resource scheduling
- Order execution and dispatch
- Production analysis
- Downtime management/Overall Equipment Effectiveness (OEE)
- Product quality
- Materials track and trace
![]() |
MES systems create the as-built record, capturing the data, processes and outcomes of the manufacturing process and maintaining
the system of record. This can be especially important in regulated industries, such as food and beverage or pharmaceuticals,
where the documentation and proof of processes, events and actions may be required.
MES systems can be seen as a layer in between Enterprise Resource Planning (ERP), and Supervisory Control and Data Acquisition (SCADA) |
That said, an exact definition of MES is difficult in that many designations are perceived to fill the Manufacturing Execution space, and these vary from one manufacturing operation to another. Central to an MES is the execution aspect, as in Manufacturing Execution System versus planning in Enterprise Resource Planning. As in all ventures, planning has its significance, but planning without execution is ineffectual.
It is important to realize that an MES is not one single, monolithic application. An effective MES consists of an integrated set of production activity and support applications that have been developed using a specific set of requirements and correctly matched technologies.
The real key to understanding MES is to be aware that at the most basic level it automates the information loop between the shop floor and enterprise information systems. An MES makes up-to-the minute shop floor information available companywide, which allows a swift response to conditions and requirements. MES is the application to collect manufacturing data needed by any other system in the organization, providing a real-time database for traceability while providing information for continuous improvement in operations.
In addition, current economics continue to drive manufacturing toward smaller and smaller production runs with more stress on quality and complex regulatory requirements. An MES offers access to real-time shop floor information to allow quick and timely responses to any challenge that could negatively influence efficiency, quality and regulatory compliance.
These characteristics will now be explored in some detail:
a. Data acquisition and control
![]() |
Reliable, effective data acquisition and control is vital for the shop floor/plant floor data gathering and control aspects of any MES solution. Adroit has dozens of different PLC and front-end equipment drivers: Siemens, Rockwell, Omron, Mitsubishi as well as OPC, including OPC UA. All Adroit drivers provide high-performance scanning (data acquisition) as well as the ability to execute immediate plant write operations (control) when required. |
b. Visualization
![]() |
Likewise, effective visualization of the relevant information is crucial to a successful MES solution. The human-machine interface (HMI) functionality in Adroit is known as Smart UI. This is because it simultaneously combines the benefits of rich-client (high functionality, high productivity) with thin-client (web-based, ease-of-deployment, auto-updating). Current versions of SmartUI provide an ISA 101 compliant, high-performance HMI toolkit. Based on Situation Awareness research carried out in fields as demanding as avionics instrumentation, the toolkit offers a range of best-practice techniques and artefacts for implementing truly effective HMIs that do not overwhelm users. More... |
Given that any number of SmartUIs, either locally or web-based, can connect in, subject to proper security credentials, means that visualization requirements for an effective MES are more than adequately catered for.
c. Long-term information storage and access
![]() |
As shown in the pyramid diagram above, MES is considered to be at level 3 in the ISA-95 model. Above and below are ERP and SCADA, PLC, DCS systems respectively. At the same level as MES are other Manufacturing Operations Management systems such as LIMS (Laboratory Information Management), WMS (Warehouse Management), CMMS (Computerized Maintenance Management), etc. Central to any effective MES implementation is a long-term information repository where data gathered from the various lower-, upper-, and peer-level systems can be stored and accessed, long-term. |
The Adroit software suite offers a complete spectrum of long-term information storage options as follows:
Simple data logging | Very high-speed, relatively short duration logging of tag values to binary file(s), including even higher speed logging when logged values are considered out limit |
SQL data logging | Same as simple data logging but the data is logged to any industry-standard SQL database. Typically SQL logging would take place at a slower rate, but for a longer duration than simple data logging. Both forms of data logging allow seamless trending, and charting of logged values in the Smart UI |
DBAccess | This allows groups of values (rows) to be Inserted, Updated, Retrieved or even Deleted to/from SQL tables, with user-definable value to field (column) mappings. For example, this is one way schedules, manifests, etc. originating in the ERP system can be taken on board by an MES |
DBLog | This is another way by which user-definable groups of values can be logged in a single SQL Insert transaction. This method of logging is primarily used for interfacing information captured by an MES into the Adroit SCADA Intelligence data warehousing product, where data mining techniques can then be applied to data captured |
d. Alarming
![]() |
When important process or manufacturing parameters deviate from their designated valid range, it is important that an MES system and its users immediately become aware. |
To this end Adroit provides sophisticated alarming and eventing capabilities for raising these kinds of alerts. For quality management and any other purpose, alarm and event occurrences can optionally be routed through to the central MES information repository for long-term storage, record-keeping, and subsequent analysis, and reporting.
A common problem with many such alarm systems is they simply record too much meaningless data instead of relevant information The Adroit solution to this is EEMUA 191 Alarm Management whereby nuisance alarms are progressively filtered out as malfunctioning equipment, inadequate or unrealistic procedures, poor operator training, etc. are identified and rectified. More...
e. User-defined extensibility
![]() |
At the heart of Adroit is an extensible, real-time, object-based repository that contains objects referred to as agents The reason they are called agents
is because the term is meant to give credence to the fact that these objects embody behaviour or rules, as well as state. State is the combined value of
all encapsulated data including externally accessible properties or slots as they are called in Adroit. Behaviour is a bit more difficult to grasp, but can
be thought of as the logic or collection of methods (functions) that operate on encapsulated data.
Adroit includes many in-built types of agents or data types ranging from simple Boolean, Real, etc., through typical SCADA data types Analog, Digital, etc., right through to complex MES data types like OEE (Overall Equipment Effectiveness). |
The real beauty and elegance of the Adroit object model is that the model can be extended by solution providers or even end-users to create their own data types using a few different techniques:
UDT Agents | UDT Agents (User-defined agent types) are primarily used for performance reasons to map large, complex PLC or front-end data objects where complex objects like this can be communicated by the front-end device. UDT agent types contain only data or state, i.e. no logic or behaviour |
Custom Agents | Custom agent types are similar to UDT agent types in that the user defines their structure by means of a special Designer tool. But unlike UDT agents, Custom agents can have logic or behaviour implemented as a collection VBScript methods |
ADK Agents | ADK agents are agents created by means of the agent development kit in the C++ programming language. ADK- developed agents become fully fledged Adroit data types on a par with any of the in-built data types that ship shrink-wrapped with an Adroit installation |
So, by implementing one or more of these different data types it is possible to embed the required business and/or manufacturing rules and logic right into the heart of the real-time data repository in an extremely elegant and powerful way. Any user-defined types enjoy the same benefits in terms of scanning, logging, alarming, visualizing, reporting, as do the in-built data types.
f. Programmability and accessibility
![]() |
Earlier in this article, special emphasis was laid on the execution aspects of an MES. As every manufacturing operation is generally different from every other one, this is one of the areas where it is impossible to envisage a shrink-wrapped, one-solution-fits-all scenario. Whilst many in-built, MES-specific features exist in the Adroit suite, and which are described later, one of the characteristics that differentiates Adroit as a compelling platform for MES solutions is the sheer breadth and reach of programmability and accessibility options on offer: |
Expressions | Expressions represent the most fundamental level of programmability. Slot values from any number of agents, or values acquired from any front-end device or data entry screen can be combined into arbitrarily complex logical or mathematical expressions. The resulting values can then be used for whatever purpose you like: alarming, logging, visualizing, reporting, feeding into higher-level expressions, outputting to plant, etc. They are regarded as the lowest level of programmability and are called Expressions because they implement purely combinational logic, i.e. there is no inherent sequencing other than when and if the Expression evaluates or not |
Server scripts | Moving up a level, server scripts in either JScript or VBScript can be created that are able to read or write any agent slot value. As well as various timing methods, any method supported by the Windows Script Host (WSH) object model can be executed inside a server script |
OLE Automation | OLE Automation exposes objects, methods and properties to other applications that support Automation. The Adroit agent server implements this IDispatch interface to enable access by Automation clients, such as Visual Basic applications. It provides several methods that operate on logged as well as real time data. There is also an ActiveX control that can be embedded into external C++ or VB applications |
OPC DA Server | In addition to providing OPC DA client support in the form of an OPC client driver to connect with OPC DA servers, Adroit also offers an OPC DA server interface so that any OPC DA client can gain read-write access to any agent server slot value |
COM Interop |
So far we have talked about accessing and programming Adroit from legacy, unmanaged code applications. COM Interop is a technology included
in the .NET Framework Common Language Runtime (CLR) that enables unmanaged code Component Object Model (COM) objects to interact with managed
code .NET objects, and vice versa
Adroit’s COM Interop DLL, AdroitCOM.DLL allows external, managed code, .NET applications full access to logged, as well as real time data values in the agent server. Full Intellisense support means building controls and applications via this interface is very straightforward and productive |
User-defined data types | The three variations on how to create your own user-defined data types were covered under the previous heading, User-defined extensibility. But, in reality, because it is possible in at least two of these to embed rules or logic into the newly created type, this must also rank as an advanced form of programmability |
UI Scripts | Programmability and accessibility have so far been presented in the context of interacting with information contained in the object-based agent server repository. There is also a complete object model located at the heart of the Smart UI HMI component. This is accessible to Smart UI clients running on any network or local user interface. Because the whole of the Smart UI is .NET managed code, access to and programmability of the Smart UI object model is available via C# and VB.NET scripts that can be developed and debugged via standard MS Visual Studio development tools. More... |
g. Resilience
![]() |
Resilience is something of a motherhood statement in that all industrial automation applications are expected to be reliable, robust, high-performance, etc. That said, Adroit does possess some unique attributes in this regard. Specifically, its support for 3-level redundancy (PLC, Agent Server, Graphics Server), configurable via straightforward point-and-click as opposed to complex scripting and programming. PLC and Agent Server redundancy means the platform will be able to bumplessly survive hardware failure, while graphics server clustering facilitates load-sharing and balancing across all servers leading to enhanced levels of performance. |
Moving on from the general category, some of the specific features of the Adroit platform that make it a great fit for MES solutions are: Overall Equipment Effectiveness (OEE); 21 CFR 11 Support; Recipe Handling; Timing, scheduling, shift management, etc.; Reporting and data warehousing.
These features will now be examined in some detail:
h. Overall Equipment Effectiveness (OEE)
![]() |
Overall Equipment Effectiveness (OEE) is a measure of how effectively an item of equipment, a group of equipment items, or even
an entire plant or factory is being utilised. Specifically, it is the percentage determined by the cumulative impact of the following three factors:
|
Therefore: OEE% = Availability% x Performance% x Quality%
The extensible Adroit object model described previously has been put to good effect in the creation of an in-built OEE data type. Many different OEE agent instances can be created in the server meaning that an arbitrary number of equipment groups or individual items can be monitored, charted, trended, etc. with OEE in mind. More...
i. 21 CFR 11 Support
![]() |
21 CFR Part 11 (21 CFR 11) of the Code of US Federal Regulations is a standard that defines the criteria and circumstances under which electronic records are considered to be trustworthy, reliable and equivalent to paper records by the United States Food and Drug Administration (FDA). This includes the auditing and authorization of changes to values. |
It also requires that the following controls and requirements be implemented:
- limiting system access to authorized individuals
- use of operational system checks
- use of authority checks
- use of device checks
- persons who develop, maintain, or use electronic systems have the education, training, and experience to perform their assigned tasks
- establishment of and adherence to written policies that hold individuals accountable for actions initiated under their electronic signatures
- appropriate controls over systems documentation
Although not the default mode of operation, Adroit can be configured to operate in strictly 21 CFR11 mode, making it a suitable platform for MES solutions in highly regulated industries such as pharmaceuticals, food and beverage, etc. More...
j. Recipe Handling
![]() |
A recipe is a statement of the ingredients and procedures necessary for the making or compounding of some preparation or formulation.
It defines how the control system is to process its raw materials to make the desired product and by-products.
Once again the extensible Adroit object model has been put to use in creating an in-built Recipe data type that provides a means for automatically writing information to process variables. These variables allow a plant to produce the final product. Mundane tasks can be automated saving time and removing the element of human error. |
Adroit’s recipe data type allows:
- Each control recipe to be assigned a batch identification
- Accumulation and logging of batch histories
- Writing out of process variables that are of type Boolean, Integer, Real or String
- Execution to be delayed by a specified amount of time, to be paused until a desired condition in the plant is met, or to be redirected to another step
- Master recipes and control recipes to be imported or exported for ease of viewing and editing in everyday tools (e.g. Excel)
- The progress of a running recipe to be monitored
- Verification of the values scanned out to the front-end device
- Optional rollback should verification fail
Many different Recipe agent instances can be created in the server meaning that an arbitrary number of products and product variations can be manufactured.
k. Timing, scheduling, shift management, etc.
![]() |
Various in-built data types exist in Adroit for timing, scheduling, shift management, etc. – all of the common, day-to-day operations needed in a manufacturing environment:
|
Timer |
Timer agents can perform several commonly used timing operations:
|
||||||
Scheduler | Scheduler agents trigger their value TRUE when the current time corresponds to any number of different defined periods, for example Mondays between 2pm and 5pm, and Thursdays between 8am and 1pm | ||||||
Shift | Similar in some ways to Scheduler agents in that up to six different shifts per day can be defined, with different shift patterns for different days of the week, month, or special dates. Based on current time, Shift agents compute the current shift number and description |
The Last Word
To recap then, Adroit is 64-bit platform designed for process control, manufacturing and other industrial automation applications. It is optimised to run on the latest versions of the Microsoft family of Operating Systems – Server, ideally for its server components.
Multiple HMIs run as .NET Smart Client applications; the server is essentially a user-extensible, object-based, real-time information store with a rich in-built set of data types, many of which are ideally suited to MES solutions. Specific manufacturing rules and logic can readily be encapsulated into user-definable data types that enjoy the same benefits that the numerous in-built types do.
For a variety of purposes, tight connectivity is possible to any standard SQL database to provide long-term storage and record-keeping. Accessibility to and programmability of the information repositories via a number of industry standards and programming languages is key to the kind of flexibility needed to produce effective MES solutions.
Some typical screenshots