✨ New Features
- Visualization: Selectable Plot Time Units The basic Plotter now lets you choose the time units displayed on the chart, making long simulations easier to read and interpret.
- Simulation: View Execution Order on the Canvas The new Show Simulation Order command in the Simulate menu displays execution sequence numbers directly on the model canvas. Toggle the display to inspect calculation order and understand how information moves through your model.
- Custom Code: Error Line Identification C# and Python User Code editors now identify the lines associated with compilation and runtime errors, helping you locate and correct problems more quickly.
- MPC: Configurable Reference Values The MPC Controller now supports user-defined reference values for each PV and CV. These provide explicit operating references for the controller’s internal calculations.
🐞 Bug Fixes
- MPC: More Reliable Setpoint and Feedforward Changes Resolved controller disruptions associated with setpoint changes near the end of a calculation cycle, ramped setpoints, and changes to feedforward activation during operation. The redesigned controller also addresses incorrect behavior in integrating process applications.
- Optimization: Correct Constraint References Constraint block numbers now update correctly when constraint tags change. Invalid or missing constraint references produce clearer messages, making configuration problems easier to diagnose.
- SQL: Clear Data Before a New Run The option to clear the database table before starting a new run now works as intended when the database account has the required permissions, preventing unwanted records from previous runs from remaining in the table.
🎨 UI & Usability Improvements
- Model Management: Open Multiple Models Together The File Open dialog now supports selecting multiple models at once, simplifying model comparison and workflows that use several models together.
- Value Get/Set: Improved Variable Selection The variable selection dialog has been redesigned for more predictable navigation, selection, and dismissal. It also resolves unintended selection changes when cancelling.
- Model Canvas: Clearer Integrator and MQTT Displays Integrator blocks now display their transfer function directly on the canvas, making model parameters easier to review. External Read/Write blocks also provide sufficient width for the MQTT label.
- Object Dialogs: Easier Tag Editing Tag editing fields now remain visible above other dialog controls in User Code, Optimizer, Loop Tuner, and Model Identifier objects. The Heartbeat dialog also includes an editable tag field.
- DataFrame Creator: Context-Sensitive Data Window Controls The file-specific Data Window option is now hidden when PI or Live Data is selected, reducing confusion during data source configuration.
- Custom Code and Optimization: Clearer Feedback C# and Python editors provide more reliable syntax highlighting, including in longer scripts. Optimizer operations now include audible success and failure feedback so users can more readily recognize the outcome.
⚙️ Performance & Stability Improvements
- Optimization: Reliable License Accounting Optimizer licenses are now released correctly after failed operations and configuration errors. Repeated optimization attempts no longer accumulate incorrect active license counts that could prevent further use.
- Installation: Reliable DataFrame Loading The installer now deploys the required dependency versions consistently, resolving a compatibility problem that prevented DataFrame Creator from loading CSV data on affected systems.
🔌 Connectivity & Integration Enhancements
- Connectivity: Consistent External Read/Write Workflow OPC, PI, SQL, and MQTT clients now use a common External Read/Write approach for exchanging data with models. This provides a more consistent setup experience across connection types. Existing SQL and MQTT workflows using client-side block-number and variable-name mappings should be updated to use External Read/Write objects.
- MQTT: Publish and Receive Numeric Arrays MQTT now supports sending and receiving numeric arrays as comma-separated values, making it easier to exchange multiple related measurements or calculated results in a single payload.
- Connectivity: Reconnect During Simulation OPC DA, OPC UA, PI, SQL, and MQTT connections can now be enabled, disabled, and reconnected while a simulation is running. This allows connections to be refreshed as external tags become available without stopping the model. Additional log messages clarify connection status at startup and when communications are enabled or disabled.
- Real-Time Connections: Protection During Accelerated Simulation Real-time clients suspend communication when model execution exceeds the supported speed and report the condition in the log. This allows accelerated standalone testing while preventing excessive communication with connected systems.
📘 Documentation & Examples
- MPC: Simpler Multivariable Control Example The multivariable MPC example has been replaced with a simpler two-input, two-output model, making controller configuration and process interactions easier to follow.
- Control and Connectivity: Corrected Example Settings The long-deadtime MPC and PID comparison now uses matching process deadtimes for a consistent comparison. OPC example execution settings have also been adjusted for real-time communication.
