Overview
Introduction
TFC is a software framework designed to develop scalable and maintainable software for controlling mechanics in fish and poultry factories. The framework provides the necessary tools to create software that can easily be reused, and includes generic components for control. TFC is designed to run on an industrial PC with a touch screen and a user-friendly human-machine interface (HMI). The framework is capable of connecting to frequency converters and input/output units through an EtherCAT master, which enables users to runtime connect inputs and outputs to running services.
Proposed Work
The TFC framework includes the following components:
Interprocess Communication Mechanisms
TFC includes two interprocess communication mechanisms, one with centralized mapping from a web interface and the second using a publish-subscribe pattern with predefined topics.
Type specific IPC
The first mechanism is centralized, meaning connections can be changed during runtime without restarting. This IPC interface includes static types, such as boolean, integer, double, string, and JSON, and the mapping of connections is in a one-to-many format, similar to signals and slots. Signals are stored as read-only parameters in the configuration, and slots have read-write in the configuration to specify which signal to listen to. This is also brokerless.
Message based IPC
The second mechanism is using a publish-subscribe pattern with predefined topics.
Config Management
The framework includes a config management component that allows users to change configuration parameters for all running services, and the service receives a callback for the given configuration change. The config manager, named confman, is a daemon that relays changes from the web interface to the running services. The service stores the configuration in JSON and provides the web interface with the service’s JSON schema. The service also exposes a UI JSON schema to easily expose the information necessary to configure the service.
Reporting Mechanism
TFC includes a reporting mechanism to report noticeable events and alarms exposed in the HMI.
Export metadata from Inventor to target and being able to order spare parts on the target based on lifetime or faults. Store System Manual on target.
Inter Process Communication Relay
The framework includes a relay for interprocess communication to SCADA using OPC UA or MQTT, and a relay from the two interprocess communication mechanisms from the current PC to other industrial PCs running this framework.
Proactive Service
The idea is to offer proactive service where a running controller (industrial PC) can send log dump and/or stack trace into a Baader server.
Serviceability
The serviceability of the TFC framework is accomplished through the web interface, which is most likely using the Red Hat Cockpit project with in-house-made plugins. The web interface provides the following items:
Start and stop running systemd services that are using this framework
View logs and download logs from a running system
Configuration management of this framework’s services
Connection of IPC signals and slots
Terminal
Offline documentation for the framework and its running services in Readthedocs
The controller will host a repository for the framework packages and be able to update and revert packages
Map of EtherCAT devices, states of the devices, and the ability to navigate to a device to get greater information
Deployment
The deployment of systems such as Fluid Ice System (FIS) is made with a UI JSON schema, which exposes high-level configuration parameters for electricians to configure systems when they have been connected electrically.