Submitted:
13 July 2025
Posted:
15 July 2025
You are already at the latest version
Abstract
Keywords:
Table of Contents
Introduction
1. Background and Motivation
Using Different Platforms
Process Visibility (Situational Awareness)
- the status of the process variable (presence of alarms at different levels, data validity, maintenance status),
- normal operating limits, including minimum and maximum values,
- other data that describe the process context.
Alarm Subsystem
Equipment Diagnostics
Fault Handling
System Commissioning
- The ability to change the state of an input variable independently of the physical channel value for algorithm testing.
- Rapid response from simulated sensor signals during algorithm testing without a real process (e.g., limit switches on valves).
- The ability to override output channel values independently of the values calculated by the user program in order to test outputs.
Operator Training
Design-Phase Changes
Integration with MES/MOM and Other Subsystems
A Common Language
A Unified Software Development Standard and Team Collaboration
Balancing Functionality with Resource Constraints
Integration into IIoT Systems
2. What Is PACFramework
Definition of PFw
Purpose
Key Characteristics
Related Projects
- PACFramework Tools (PFwTools)
- PACFramework IoTGateway (PFwIoTGateway)
PFwTools
- Automating PLC deployment based on project master data
- Reverse-generating project data from the PLC into master data
- Validating the correctness of master data
- Generating reports based on master data
- XLSX - for importing master (project) data from Excel into JSON format
- Unity PRO/Control Expert - deployment and processing utilities for Unity PRO / Control Expert
- TIA Portal - utilities for working with TIA Portal and WinCC
- PFW IoT Gateway - utilities for IoT Gateway integration
- Citect - utilities for Plant SCADA
- other
PFwIoTGateway
- Providing a web-based human–machine interface (HMI) for commissioning and tuning control systems implemented with PFw
- Performing IoT gateway tasks, including data collection, processing, local storage, and interaction with cloud applications and storage systems

PFw2 Infrastructure
- Master Data (DB) is planned to become part of a composite digital twin of the system, which will eventually serve as a component of the DTw PFw Platform. Import and export via JSON will continue to be supported for offline use.
- Excel or Google Sheets will no longer be considered Master Data, but instead one of several possible Master Data Editors. Reverse synchronization from Master Data to Excel is planned.
- Import/export integration with Eplan Electric (or other CAD systems) into Master Data is also planned.
- The structure of Master Data will be redefined to meet the needs of the new version.
- The DTw PFw Platform is intended to serve as the primary platform for PFwIoTGateway.
- PFwTools in their current form will no longer be developed. Instead, a new set of Node-RED–based services will be created to simplify maintenance and customization.
- PFwTools will include a graphical interface via a dedicated user dashboard.
3. Core Technologies Behind the Framework
- Equipment object model as defined by ISA-88 (IEC 61512), ISA-95 (IEC 62264), and ISA-106
- State-based control, including state machines and operating modes, according to ISA-88
- Alarm state machine as defined by ISA-18.2 (IEC 62682)
- Visualization based on ISA-101 guidelines
- Built-in simulation models within the PLC
- Standardized industrial network protocols
- IoT protocols such as MQTT and REST API
- The Node-RED environment
Standards
Equipment Concept
- a control element (the valve or damper itself),
- an actuator with a single pneumatic control signal “OPEN,”
- two end position sensors: “OPEN” and “CLOSED.”
- Basic control and monitoring functions, such as executing control commands according to a defined logic
- HMI interaction functions, including manual/automatic mode switching and manual control capability
- Alarm signaling functions, such as indicating a “failed to close” condition
- Blocking a valve if one of the sensors fails
- Blocking a valve if it fails to open
- Temporarily allowing operation without one of the sensors
- Equipment exists as a distinct entity in the control system, with its own attributes
- Equipment has an assigned role that determines which functions it is responsible for
- Equipment forms a hierarchy, where its position affects how it interacts with other control elements
State Based Control
State
- Operational function (control/position monitoring): OPEN, CLOSED, OPENING, CLOSING, UNDEFINED (e.g., both end switches activated simultaneously), and so on.
- Alarm function: NO ALARMS, FAILED TO OPEN, FAILED TO CLOSE, UNEXPECTED POSITION, etc. Each of these alarms also has its own state: INACTIVE, ACTIVE UNACKNOWLEDGED, ACTIVE ACKNOWLEDGED, and so on. The overall alarm state of the valve is determined as an aggregation of the individual alarm states.
- Operating mode: AUTOMATIC (controlled by system logic), MANUAL (operator control), LOCAL (controlled by local switches), or LOCKED (control functions disabled).
- Simulation mode (for commissioning): NOT SIMUALTED (input values are read from physical inputs and outputs are written) and SIMULATED (sensor values are generated by the simulation algorithm, and output signals are not physically written).
- Maintenance function: ON REPAIR, OPERATING, along with parameters such as the time of the last service and the number of switch operations.
State Machines
- an operational state machine;
- four alarm-related machines: “NOT OPENED”, “NOT CLOSED”, “POSITION MISMATCH”, and “SENSOR ERROR”;
- a lockout state machine;
- an operating mode machine;
- a simulation machine.
Modes
Transition Conditions and Commands
Equipment Hierarchy
Definition of Equipment Hierarchy
- the object has a unique set of operational states;
- the object has performance indicators (KPIs);
- the object has its own set of operating modes;
- the object has a defined set of alarms;
- the object is identified as a technological unit that performs one or more process operations.
- Processing of input and output values: scaling, filtering, inversion, etc.
- Ability to manually override sensor values (forcing)
- Operation in simulation mode
- Alarm handling in accordance with IEC 62682, including:
- Threshold-based response for analog signals
- Consideration of delay and hysteresis
- Generation of system bits for fault or warning conditions
- Configuration capabilities:
- Setting threshold values and alarm parameters;
- Temporarily taking alarms out of service;
- Configuring scaling and filtering parameters.
- Considering the state of lower-level objects (normal/alarm/validity) and diagnostic information in the control logic. For example, if a limit switch is in an INVALID state (due to I/O module failure), the valve can automatically switch to a LOCKED mode.
- Simulating the operation of subordinate sensors by managing their states using a simulation algorithm (e.g., for testing or operator training).
- Controlling the INVALID state of subordinate sensors with logic - for example, if both limit switches simultaneously indicate activation.
Equipment Hierarchy in ISA-88 (IEC 61512)
IoT Technologies
Overview of Other Technologies Used
- Using incremental counter variables updated by a periodic pulse bit;
- Using a variable that increases based on the time difference between function calls.
Hardware Abstraction
- Avoiding constraints by changing the system architecture or selecting a different platform;
- Accepting the constraints and adapting the architecture accordingly;
- Offloading part of the functionality to external services or devices.
- Using indexed arrays and buffers to exchange large volumes of data;
- Implementing universal FCs/FBs with parameterization;
- Distributing processing across cycles (using a scheduler);
- Bit-packing into words to optimize data transmission.
Built-In PLC Simulation Models
4. Technological Solutions in PFw
CM Hierarchy
- CHDI – Digital inputs
- CHDO – Digital outputs
- CHAI – Analog inputs
- CHAO – Analog outputs
- CHCOM – Communication channels
- Additionally, other objects related to channel operations are included here, such as MODULS, used for displaying module states and providing interactive diagnostics (e.g., PLC module mapping).
- AIVAR – Analog input variables
- AOVAR – Analog output variables
- DIVAR – Digital input variables
- DOVAR – Digital output variables
- Actuators (on/off valves, control valves, motors, pumps)
- Control loops and regulation circuits (for feedback control functions)
- Other devices that include multiple process variables and have explicitly defined states
- All elements, regardless of level, are processed in parallel, there is no nested POU calling; the subordination model is implemented via an Allocation mechanism or conventional programmatic links.
- Level 2 elements (e.g., actuators, controllers) must not interact directly with Level 0 elements (channels).
- Higher-level elements can interact with any lower-level elements except those at Level 0 (as per the previous rule).
- A higher-level element may change the state of a lower-level element: modify its value, switch modes (e.g., forcing, simulation), change alarm settings, etc.
- A Level 1 element (process variable) can allocate a Level 0 element (channel).
- A Level 0 element is aware of who owns it.
- A Level 1 element knows what it owns.
- When elements are implemented across different devices (in distributed systems), the interaction occurs via STATUS–COMMAND pairs (described later). When implemented within the same device, both direct value access and STATUS–COMMAND interaction are allowed.
Typical Modes
- Supervisory/Automatic – for LVL2 objects, indicates whether control is performed by SCADA/HMI or PLC logic.
- Local Manual – for LVL2 objects, indicates that control is performed from a source outside the PLC+SCADA/HMI system.
- Simulation – a mode in which input values are generated by a simulation model algorithm.
- Forcing – a CM mode for LVL0 and LVL1, in which the input or output value is set from SCADA/HMI (similar to supervisory mode for LVL2).
PLC Class and Object
- Executing controller-wide functions, particularly those not related to any specific process area or equipment section;
- Monitoring controller statuses, such as lockouts, forcings, manual modes, first scan, and whether at least one object is in simulation mode - used, for example, to display controller status on HMI;
- Monitoring global alarm statuses (e.g., active alarms, warnings, channel faults, new alarms, unacknowledged alarms);
- Handling general signaling, such as hardware light and sound indicators (buzzers, sirens, etc.) and their acknowledgment;
- Processing PLC-specific alarms (e.g., cycle time overrun);
- Generating interval bit pulses and square waves (meanders);
- Maintaining statistical data (if required);
- Calculating integral metrics, including total runtime since the last or first start, and timestamps of the last stop/start events;
- Formulating general operator messages;
- Receiving and processing broadcast commands for other framework objects.
- The PLCFN function block handles essential general controller operations:
- acknowledges broadcast commands (passes the broadcast command through for one cycle)
- detects the first scan of the task - sets the corresponding bit to 1 for one cycle at the first scan
- generates bit pulses and square waves (see CFG) that can be used within the same task (TASK) where the function is triggered
- maintains general time in milliseconds (rolls over upon reaching the maximum UDINT value)
- tracks the elapsed time since the first controller cycle (in seconds)
- tracks total PLC uptime since startup (in minutes)
- provides astronomical time in BCD format
- indicates the start of the hour and day
- indicates the start of a shift (default: 8-hour shift)
- resets alarm bits and certain status bits collected during the entire cycle from procedural and basic control (see PLC_CFG)
- resets alarm counters and some status words
- displays current cycle time (last task execution time and maximum in milliseconds)
- generation of additional square waves
- control of general audible alarms
- maintenance of additional general statistics
- monitoring (alarm control) of communication with other PLCs
- monitoring (alarm control) of communication with DIO (distributed I/O)
Note on future use
- TASK, which handles each task and is executed in sequence with all objects associated with it
- PLC, which processes the results of TASKs and communicates with the HMI
Channels (LVL0) and PLC Map
- binds its internal value to the physical value of a specific channel
- provides higher-level CMs with diagnostic information, at minimum a valid bit, and if possible - the reason for channel failure or malfunction
- includes a value forcing mode:
- forced overrides the input channel value regardless of the physical signal
- forced overrides the output channel value regardless of the variable assigned to it
- indicates the fact of binding to a process variable and its number
- continuous monitoring (display) of channel errors (if at least one) at the MODUL level
- selection of a channel group for display (SUBMODULS - a group of 16 channels)
- displaying the status of channels in the selected group according to the channel structure data
- loading any channel from the group into a buffer (see below for buffer details)
- interaction with the channel via the buffer (forcing, value modification)
Note on future use
- a significant reduction in the memory required for channel variables
- synchronization of channel buffer loading with the variable bound to the channel
Process Variables (LVL1) and Variable Map
- binding to a channel by its number and type, with optional dynamic reassignment (configured channel number)
- deactivation from service (alarm suppression and upper-level exclusion)
- monitoring of value validity based on channel faults, out-of-range measurements, etc.
- diagnostic reporting from the linked channel to the upper level
- input/output value processing: scaling (including piecewise linear interpolation if needed), filtering, inversion (for digital variables)
- forcing (manual mode according to ISA-88)
- simulation mode, where for input variables the value is set by upper-level CMs (or an independent program), and for output variables the values are frozen at the output channel
- alarm handling (ISA 18.2): threshold reaction, delay consideration (limits configurable via separate setpoints if needed), hysteresis, generation of a general system alarm/warning bit, one-cycle new alarm flag
- alarm configuration (ISA 18.2): setting alarm values, alarm types (alarm/warning/channel failure), temporary alarm suppression
- network variables - their data source is located on other (networked) nodes, and the address cannot be changed during operation
- calculated (internal) variables - computed based on several other variables or channels
Note on future use
Control Modules, Loops, Actuators (LVL2)
- considering the state of the process variable (normal/alarm/validity) and diagnostic data in the execution logic of the CM
- simulating CM behavior using an internal modeling algorithm (if needed) for:
- advanced model-based process diagnostics
- model-based control
- simulation mode for demonstration, training, or system commissioning
- enabling simulation mode for the CM and all related lower-level CMs
- collecting statistical information (depending on CM type)
Note on future use
General Requirements for the Implementation of PACFramework POU, Function and Function Block Interfaces
Structure of Function/Procedure and Function Block Interfaces
- Real-Time HMI Data (RT HMI)
- PLC Configuration Data (CFG)
- HMI display
- Alarm subsystem integration
- Trend and log data
- Control of the CM state (including configuration control)
- CM parameter setup and verification
- Advanced diagnostics of CM operation
- Use of CM service modes (forcing, simulation, deactivation)
ID та CLSID
Principles of Using Buffered Exchange with SCADA/HMI

Note on future use
State (STA) and Command (CMD) Variables
- STA - status word containing bit sets for all state machines (STATUS) and operating modes (MODES)
- CMD - command word used for controlling the state and modes of the CM, as well as for its configuration; each command is encoded as a unique numerical value across all CM types
- setting default configuration
- enabling/disabling simulation mode
- switching all objects of a class to manual/automatic mode
- ...
Note on future use
Data type requirements
Object Classification and Customization Concept
Classes (CLSID)
Parameters
State Variables (STA)
- separation of real-time data from configuration data
- packing bits into words, avoiding the use of Boolean (bit) structures for HMI communication
- using a buffer for configuring homogeneous object types
- presence of manual mode in at least one actuator
- presence of forcing in at least one CM
- presence of simulation mode in at least one CM
- presence of at least one “warning” level alarm
- presence of at least one “alarm” level alarm
- presence of at least one “invalid” data alarm
- and others
Note on future use
- All standard diagnostics will be integrated into PFwIoTGateway and accessible via the web console, eliminating the need to implement them in SCADA/HMI. However, PFwTools will continue to offer options for generating SCADA/HMI tag databases.
- There is a need to separate status bits and counters (e.g., alarms, locks) by zones.
5. Conclusions
- PLC/PAC frameworks
- Digital Twin
- DevOps in ICS
- Simulation modeling and other domains
References
- Pupena, O. M. (2017). PACFramework [GitHub repository]. GitHub. https://github.com/pupenasan/PACFramework.
- Pupena, O. M. (2025, ). PACFramework: History of the project development [Blog post, in Ukrainian]. GitHub. https://github.com/pupenasan/PACFramework/blob/master/blog/history07072025. 7 July.
- Department of Automation and Computer-Integrated Technologies of Control Systems. (n.d.). IASU-NUFT. Retrieved , 2025, from https://www.iasu-nuft.pp. 6 July.
- Pupena, O. M. (2025, ). PAC Framework: What it is and why it is needed [Video]. YouTube. https://youtu. 6 July.
- International Society of Automation. (2015). ANSI/ISA-101.01-2015: Human Machine Interfaces for Process Automation Systems. Research Triangle Park, NC: ISA.
- International Electrotechnical Commission. (2013). IEC 61131-3:2013 Programmable controllers – Part 3: Programming languages (3rd ed.). Geneva, Switzerland: IEC.
- International Society of Automation. (2016). ANSI/ISA-18.2-2016: Management of alarm systems for the process industries. Research Triangle Park, NC: ISA.
- International Electrotechnical Commission. (2005). IEC TR 62390:2005 – Common automation device – Profile guideline (1st ed.). Geneva, Switzerland: IEC.
- International Electrotechnical Commission. (2012). IEC 61499-1:2012 – Function blocks – Part 1: Architecture (2nd ed.). Geneva, Switzerland: IEC.
- Polupan, V.; Mirkevych, R.; Pupena, O.; Klymenko, O.; Mirkevych, O. Determining the efficiency of techniques for optimizing the number of tags in modern human-machine interfaces under conditions of limited resources. Eastern-European J. Enterp. Technol. 2024, 4, 52–66. [Google Scholar] [CrossRef]
- TDA in, UA. (n.d.). TDA in UA [Website]. Retrieved , 2025, from https://sites.google. 6 July.
- Retrieved , 2025, from https://ela.kpi. 6 July 1234.
- Пупена, О.М. МЕТОДИКИ СТАНДАРТУ ISA-106 ДЛЯ АВТОМАТИЗАЦІЇ ПРОЦЕДУР ОПЕРАЦІЙ НЕПЕРЕРВНИХ ПРОЦЕСІВ. Autom. Technol. Bus. - Process. 2024, 16, 101–109. [Google Scholar] [CrossRef]
- MOMdisc. (n.d.). Дисципліна «Автoматизoвані системи керування вирoбничими oпераціями (Manufacturing Operations Management, MOM)» [Website]. Retrieved , 2025, from https://pupenasan.github. 6 July.
- SCADA/HMI: Навчальний пoсібник. Київ: Ліра-К.
- Pupena, O. M. (n.d.). HMI book [GitHub repository]. Retrieved , 2025, from https://github. 6 July.
- Пупена, О.М.; Шишак, А.В. СУЧАСНІ СТАНДАРТИ З РОЗРОБЛЕННЯ ТРИВОЖНОЇ СИГНАЛІЗАЦІЇ В АВТОМАТИЗОВАНИХ СИСТЕМАХ КЕРУВАННЯ ТЕХНОЛОГІЧНИМИ ПРОЦЕСАМИ. Autom. Technol. Bus. - Process. 2019, 11, 46–58. [Google Scholar] [CrossRef]
- Шишак, А.В.; Пупена, О.М. Життєвий цикл oрганізації системи тривoжнoї сигналізації. Autom. Technol. Bus. - Process. 2021, 13, 4–11. [Google Scholar] [CrossRef]
- Retrieved , 2025, from http://dspace.nuft.edu.ua/jspui/bitstream/123456789/31888/1/Tom_26_%233. 6 July.
- Node-RED: Flow-Based Programming for the Internet of Things. Available online: https://nodered.org (accessed on 30 August 2021).
- Pupena, O. M. (n.d.). TI40 [GitHub repository]. Retrieved , 2025, from https://github. 6 July.
- Unity Pro: Навчальний пoсібник. Київ: Ліра-К.
- Pupena, O. M. (n.d.). Control Expert book [GitHub repository]. Retrieved , 2025, from https://github. 6 July.
- International Society of Automation. (2010). ISA Draft TR88/95.00.01: Batch control and enterprise-control system integration, using ISA-88 and ISA-95 together. ISA.




















| Bit | Description |
| 0 ALMOPN | = 1 alarm DOES NOT OPENED |
| 1 ALMCLS | = 1 alarm DOES NOT CLOSE |
| 2 BLCK | = 1 BLOCKED |
| 3 ALMSHFT | = 1 alarm RANDOM SHIFT |
| 4 ALMSNSR | = 1 alarm SENSOR ERROR |
| 5 OPNING | = 1 OPENING |
| 6 CLSING | = 1 CLOSING |
| 7 OPNED | = 1 OPENED |
| 8 CLSED | = 1 CLOSED |
| 9 DISP | = 1 MANUAL mode (with PC/OP), = 0 AUTOMATIC mode |
| 10 MANBX | = 1 LOCAL mode |
| 11 ALM | = 1 general alarm |
| 13 FRC | = 1 at least one of the variables in the object is forced |
| 14 SML | = 1 simulation mode |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2025 by the author. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).