• Software Capabilities

Software Integration

Node-Red

Node-Red is a low-code, highly versatile tool that is used to integrate between multiple platforms. For customers this has provided a platform to link multiple IO devices into a centralised historian. Node-Red can also support custome transformations on the fly and also trigger events such as automatic emails and messaging based of the IO data in the field. In addition Node-Red has the capability to host a web dashboard. This can be customized beyong the low-code solution using AngularJS to meet customer requirements

Ignition

Ignition is a powerful/first-class scada system that can be used to support integration across multiple PLC's and IO Devices. It also provides modules that add Historian, Reporting, Analytical, and more, functionality to a project. In many cases ignition is used primarily as a Scada system however it provides first-class integration capability to bridge Database, Online Service and Inter Device Communication as well

Databases

SQL Server

SQl Server is the most common database type we encounter with customers. This database is ACID compliant which essentially means that that the transactions will be processed in the order and will rollback on failure. In addition SQL Server allows for partitioning of tables which are crucial when the row count exceeds 10M rows. We've in the past developed an in-house Historian that utilized SQL Server to historize data in the field. This required a deep understanding of how to design the schema in such a way that teh database does not fall-over under large datasets and stays performant using appropriate partitions.

SQLite

SQLite is a light weight file-based database, which is supported by most code environments. It is mostly used by our customers when an instance of SQL Server isn't available. We've used this with regards to customers that wanted a licence free system for temporary R&D skids, to histories metrics. These solution has been used on servers and also smaller devices such as RevPi's.

Systems Technologies

.Net Core

DotNetCore is framework used by us to develop services that add functionality to SCADA and Integration systems. In previous systems we have used the DotNet Framework to write a service that tracked the runtimes of Motors and Pumps, then periodically pushed the data into 3rd Party Maintenance System via a SOAP protocol. This enabled the unification of the site data and the maintenance scheduling to provide accurate maintenance plans across per device.

Rust

Rust is a new language that has gained immense popularity for its focus on safety and performance. It is provides guarantees around bug detection and safety around concurrency, which greatly increases its reliability and confidence that is not seen in other languages. Automation Mechatronics has used Rust in many projects since the language often offers substantially greater confidence in its reliability and hence reduces the risk around deployment in production environments. These solutions often interface via a Rest endpoint and run as a service in the background.

Python

Python is used primarily bu us in the Ignition Scada System, however we have also developed services in Python to read data from the PLC and historize that data. Python code is highly adaptive and can be used to produce and adapt solutions effortlessly. This allows for greater in code production and reduced development time.

RabbitMQ

RabbitMQ is a Message Broker that utilises MQTT to manage the messages within a micro-services architecture. We have developed numerous projects that has a micro-architecture and utilises RabbitMQ to handle the messages between each service. RabbitMQ guarantees the order of processing of messages, and that the messages are acknowledged on receiving. In addition it has been used to relay messages across downstream across boundaries in a parallel redundancy system architecture.

Web Technologies

Grafana

Grafana is a no-licence solution for dashboard visualisation of data. Grafana has the ability to read data directly out of a database and present it in a format that is suitable for the customer. It also is able to use templates that can modify the query to the database. In addition it can be further extended using React and a custom backend service to enable write functionality back into a Database or IO Device. Grafana has a high appeal for its functionality and self-serve dashboard and the fact that it is open-source.

Angular

Angular is an Enterprise Framework developed by Google to provide Single Page Applications (SPA). Angular is most suitable for large projects since it provides enterprise grade tooling for the whole project. In addition, it is opinionated about its layout of code, which in tern makes it constant across developers. This trait of constance across developers is highly desirable since it provides a long-term maintainable front-end solution. Automation Mechatronics have developed many SPA's to support the backend integration of the services we code.

React

React is a versatile language that is by far the most popular web library used today. The main areas where we use React is in the development of Plugins/Modules in React based environments like Grafana and Ignition. React proves to be very easy and quick to produce solutions however demands discipline in coding practices. AMI posses the maturity of disciplined coding methods that is required to