# PlexusLAB Release notes

# 0.62

# 0.62.0

  • New: Admin logs can be shown both in the system-related timezone and in the browser-local timezone, when the system is set to a different timezone than the local one
  • New: Loop rate speed and other settings are now configurable via a .env.json file that must be put inside /var/www/ folder. Available fields:
    • "allowedCurlFailed": 3 - number (max curl fault before flagging a device to "timeout"),
    • "bridgeCurlFrequency": 3 - number (every N system loop we call a device of type bridge with a curl),
    • "modbusCurlFrequency": 3 - number (every N system loop we call a device of type modbus with a curl),
    • "modbusCurlTimeoutMs": 50 - number (after how many ms the curl towards a modbus-device must end in timeout),
    • "writeRomFrequency": 300 - number (every N system loop RAM data is stored on disk),
    • "systemLoopMs": 100 - number (system loop time in ms).
  • Fix: Function page UI revert/save/upload button behaviour sometimes was inconsistent
  • Fix: Blackbox page data fetch when switching between timezones sometimes was faulty
  • Fix: Alert messages sent to Plexus Cloud now have the trigger timestamp fixed; multiple identical messages could be displayed in a single email before the fix

# 0.62.1

  • New: Units of measurements now can be set for analog outputs and Modbus devices too
  • Fix: minor fixes for users with the "Admin" role and general minor UI fixes

# 0.60

# 0.60.0

  • New functionality: slots, UM and conversion formulas
  • New function IIR_2o_LP and reset_IIR_2o_LP in API list, described in the online docs
  • New feature: blackbox data can be shown both in the system-related timezone and in the browser-local timezone, when the system is set to a different timezone than the local one

# v0.54

# 0.54.0

  • New: IO Scanner functionality with Modbus TCP

# 0.54.2

  • Fix: Datetime in Logs page are now shown in the browser locale timezone
  • New: Admin role is allowed to perform a project upload

# v0.53

# 0.53.0

  • New: Fuctions API delay_action and reset_delay_action.
  • New: Broken/Faulty sensors are always displayed in the Info Messages box (HMI), as well as in the Debug Messages (Functions Page)
  • Potential breaking change: if functions with the same name are implemented in the static functions, they must be removed or renamed.

# v0.52

# 0.52.0

  • New: Fuctions API disable_once disables a specified variable only when the function itself is invoked on it. As soon as the function is not called inside the program flow, the specified variable returns enabled.
  • Fix: Functions API enable allows also to enable a variable which has been disabled by disable_once.

# v0.51

# 0.51.0

  • New: Functions API maintenance_status that returns 1 when you are in Maintenance Mode (you can turn this on/off with the button in the HMI)
  • New: Functions API emergency_status that returns 1 when you are in Emergency Stop Mode (you can turn this on/off with the button in the HMI)

# v0.50

# 0.50.0

  • Fix: Emergency mode (from HMI Panels) is restored: All outputs will be forced to 0 (not for the Digital Outputs configured as Power Supply), and all inputs will continue to read values.

# v0.49

# 0.49.0

  • New: Functions API add_value_range

# v0.48

# 0.48.0

  • New: Delayed alerts are now recorded in the blackbox as a ramp:
    • 0 when they are not set and not delayed
    • 1 when they are actually triggered
    • a value in between when they are delayed, scaled from 0 to 1 with respect to the delay time set
  • New: Log pages for system administrators

# v0.47

# 0.47.0

  • New: POD C1 analog input channels now can be set to 4-20mA SAFE. This way we can acknowledge a sensor fault: when a sensor reads 0mA (cable disconnect, cable failure, other issues) the value will be set to -2147483648 (PHP_INT_MIN on 32-bit systems); when a sensor reads something in between 0 and 3 mA (sensor failure) the value will be set to -2147483647 (PHP_INT_MIN on 32-bit systems + 1).
  • New: Functions API to detect faulty 4-20mA sensors
    • is_sensor_faulty
    • all_faulty_sensors

# v0.45

# 0.45.0

  • Fix: Blackbox and Cloud loop are stopped before importing a project

# 0.45.1

  • Potential breaking change - New function in API list:
    • since_startup
  • New: Maximum number of users, blackbox and functions increased to 25
  • New: Blackbox now can read up to 15 variables at a time (it was limited to 12 before)
  • Fix: Alert reset at system startup
  • Fix: Timers reset at system startup

# 0.45.2

  • Fix: All channels list fixed when channel name contains characters to be URL encoded (e.g. '+')

# v0.44

# 0.44.0

  • New: HMI API for getting info messages from functions
  • Fix: Alerts and Timers are not restored after a system/service restart anymore
  • Fix: Frozen "ACTIVE" alert messages should not appear anymore

# 0.44.1

  • New: HMI API readValues now contains info messages counter
  • Fix: HMI API readValues now keeps track of current plxService loop status

# v0.43

# 0.43.0

  • New: HMI API for clearing active alerts and message history

# v0.42

# 0.42.0

  • New: Gauges with ranges

# 0.42.1

  • Fix: Auto-updates of mysql-server package now don't break Blackbox and Cloud service loops

# v0.41

# 0.41.2

  • Fix: Regression on PHP session introduced in 0.40.0
  • New: API v2 for custom pages / custom HMI @ path: /plexus/api-v2/ authorized via JWT

# 0.41.3

  • New: Toggling Modbus or Profinet now doesn't require the system restart
  • Fix: Rename variables when they keep the same name but some chars changes lower/upper-case
  • Fix: Minor UI fixes for left-side lists

# v0.40

# 0.40.0

  • Breaking change - New: this new version request MySQL Server instead of SQLite3. Now PlexusLAB stores up to 1 year of data and up to 190 different variables inside Blackbox. If an update from a previous version to v0.40 is needed, execute these commands before:
sudo apt install mysql-server -y
sudo systemctl enable mysql.service
sudo mysql -e "CREATE DATABASE IF NOT EXISTS plexus_db;"
sudo mysql -e "CREATE USER plexus@localhost IDENTIFIED BY 'plexus4mysql';"
sudo mysql -e "GRANT ALL PRIVILEGES ON plexus_db.* TO 'plexus'@'localhost';"
sudo mysql -e "FLUSH PRIVILEGES;"

Since mysql is case-insensitive, before proceeding with the update, it is necessary to perform a check on variable names (channel/section/timer/alert names) to ensure any name is not in use twice (differing by just the lowercase/uppercase). For example, using both "input_1" and "INPUT_1" is not allowed anymore.

To quickly export a list of all names in use, it's possible to export the entire configuration by clicking on the Plexus logo in the header, then on "View Configuration".

At this point it's possible to proceed with the update by following the instructions in the installation page.

After the update is performed, whenever importing the old records from SQLite3 is needed, the following command must be run:

php /var/www/html/plexus/scripts/migrations/sqlite_2_mysql.php import_rows

# v0.31

# 0.31.0

  • Potential breaking change - New function in API list:
    • is_interval_of

Notice: if any of those names were used inside the Static Function, they must be replaced before performing the upgrade.

  • Fix: Search term in function now is made case insensitive

# v0.30

# 0.30.0

  • Potential breaking change - New functions in API list:
    • PID_controller (and reset_PID_controller)
    • PWM_controller (and reset_PWM_controller)
    • moving_average (and reset_moving_average)
    • fixed_average (and reset_fixed_average)
    • moving_max (and reset_moving_max)
    • moving_min (and reset_moving_min)
    • both set_alert and set_alert_delay has a new parameter to define a set of subordinated alerts that shouldn't trigger when the current alert is active

Notice: if any of those names were used inside the Static Function, they must be replaced before performing the upgrade

  • New: A user can change its own password from the HMI
  • Fix: Find term in functions
  • Fix: Strange behavior in resetting + setting an alert inside a plexus-function loop
  • Fix: write_val_period now accepts 0ms as a period duration, the necessary condition has changed to (period1 + period2 > 200ms)

# 0.30.1

  • New: Last blackbox zoom is kept during navigation, so you can switch through different charts without losing the shown timerange

# v0.29

# 0.29.0

  • Potential breaking change - New functions added in API list:
    • get_bounded_value
    • is_value_inside_target_range
    • is_value_inside_target_range_mod
    • scale_value
    • to_bitmap
    • from_bitmap
    • increment_cycling_variable

Notice: if any of those names were used inside the Static Function, they must be replaced before performing the upgrade

  • Fix: Minor UI fixes

# v0.28

# 0.28.0

  • New: Modbus new library now allows to use FC23 (Read/Write multiple registers) when calling an external Modbus slave that supports it.
  • New: Modbus new library is compatible with PHP 8.2
  • Fix: Minor UI fixes

# v0.27

# 0.27.0

  • New: Functions page now has a new button to load the current running (the "uploaded") version of the code inside the editor

# v0.26

# 0.26.0

  • New: Emergency mode and Maintenance mode, available from the HMI. When activated, the system status will be reflected on PlexusCloud too

# v0.25

# 0.25.0

  • New: Blackbox visibility modifiers (identical to HMI visibility ones)

# v0.24

# 0.24.0

  • New: Users can now decide to view translated HMI by default, by flagging an option in the Edit user popup, under Users tab

# v0.23

# 0.23.0

  • New: "All channels"-special device, available for super admin users when 2 or more devices are configured

# 0.23.1

  • New: PHP 8.2 compatibility

# v0.22

# 0.22.0

  • New: PID controller API: evaluate_PID() + reset_PID()

# 0.22.3

  • New: Disabled device channels and section variables are now striked, in order to be detected easily

# v0.21

# 0.21.0

  • New: System loop optimization, performance improvement (~10%)

# v0.20

# 0.20.4

  • New: "Alerts" instead of "Alarms" inside the pages, as "alarms" is now intended solely for user configured alarms, and "Alerts" stands for "Alarms" + "Warnings"

# 0.20.3

  • New: Alarms and warnings are now sent as different entities to PlexusCloud, in order to distinguish them inside notification emails and in the Alarm page

# 0.20.2

  • Fix: Alarm durations fix
  • New: Panel cards now can have a background color
  • New: HMI header turns orange when any alarm is active, increasing visibility. Warnings just forces the bell to blink, instead

# 0.20.0

  • New: Operations made from panels are now logged in a file with path /var/log/plexus/panel.log (coming from Admin page or HMI)
  • Fix: Improved function editor with text selection after autocomplete selection

# v0.19

# 0.19.8

  • Fix: Minor fixes when editing registers on a Modbus device
  • New: Plexus Bridge frequency calls incremented in system loop

# 0.19.7

  • New: Functions page, shortcut to beautify PHP script (CTRL + B)

# 0.19.6

  • Fix: Function editor UI and auto-complete functionality

# 0.19.5

  • Fix: Fix random error when listing functions in Function page.

# 0.19.4

  • New: Two static functions, one for constants and one for functions. They can now be not overwritten on purpose during projects import.
  • New: Panel pages now can be exported and imported as standalone structures
  • Fix: HMI emergency button hidden for guests, or when HMI is locked

# 0.19.3

  • Fix: PHP 8.0 fix, startup on blank systems

# 0.19.2

  • Fix: Supervisors are locked when trying to set channel device values

# 0.19.1

  • Fix: Sync between tabs now works for switches (devices, functions, system status)
  • New: Search button in Devices and Section pages

# 0.19.0

  • Fix: Plexus Bridge malfunctioning occasionally
  • New: Permission system update
Role type PlexusLAB permissions HMI permissions
Admin View and write View and write
Supervisor View + User edit + Alarm messages delete View and write
Operator Forbidden View and write
View-Only Forbidden View

# v0.18

# 0.18.3

  • New: Panels can now be shown to single and/or multiple user groups
  • Fix: User groups handling fixes
  • Fix: User edit now don't lose the old password

# 0.18.1

  • Breaking change - New: user passwords are now stored in their hashed version. If you are updating from any previous PlexusLAB version, please follow the reset-password steps as described inside documentation's troubleshooting section

# v0.17

# 0.17.7

  • New: function editor UX redesigned and fixed

# v0.16

# 0.16.6

  • New: In settings page, timestamps in which services were started now can be seen by hovering badges (tooltips appear).

# 0.16.5

  • Fix: Minor UI improvements and fixes on Panels page.
  • Fix: Tooltips added on all action buttons.

# 0.16.0

  • Breaking change - New: Panels now allow users to set units of measure for elements, as well as conversion formulas for text variables, inputs, progress bars and gauges.

# v0.15

# 0.15.16

  • Fix: Modbus and Profinet now work correctly when Apache2 authorization on pages is active

# 0.15.15

  • New: CSV data can be exported from HMI blackbox charts

# 0.15.13

  • Fix: Cloud system loop exception handling and CURLs calls timeout set

# 0.15.9

  • New: Modal popups restyling

# 0.15.8

  • New: Dygraph lib for blackbox updated, for faster charts loading

# 0.15.5

  • New: Session is extended to 7 days, removed idle browser detection

# 0.15.2

  • New: HMI authentication is now enabled via username + password. 4-digits PIN code is now removed

# 0.15.1

  • Fix: HMI panels sometimes lose data sync. This will be notified with a popup, asking the user to reload the page
  • Fix: blackbox sqlite DB failed when columns had characters that needs to be escaped (e.g.: "Column+++")

# 0.15.0

  • New: PHP 8.0 compatibility
  • New: tunnelling service can now be done without requiring a password, because..
  • New: ..authentication wizard scripts are now included in the bundle, to deny the navigation to un-authenticated users (more details included in the online documentation)

# v0.14

# 0.14.7

  • Fix: Minor UI fixes, reduced size for js scripts

# 0.14.3

  • Fix: SSE communication layer fix; sometimes pages did not refresh their values correctly

# 0.14.2

  • New: Warning added if changing a device channel, or a variable, or a timer, or an alarm name used inside functions or blackboxes

# 0.14.1

  • Fix: Blackbox chart last minute data

# 0.14.0

  • Fix: Empty warning list
  • New: Blackbox UX improved
  • New: Blackbox data retention increased to 28 days
  • New: Blackbox-cloud sync now tries to recover unsent data up to 28 days ago
  • Fix: Blackbox chart variable inversion; this error may happen after adding a new variable to a blackbox
  • Fix: Sometimes deleting a section variable caused values to shift and be assigned to other variables

# v0.13

# 0.13.2

  • New: Device channels can now be "force saved" when edited, in case of conflicting name; this will reset the other channel that was previously using the same name you are trying to assign to the current one

# 0.13.1

  • Fix: Cloud system loop now handles gzdeflate error fallbacking to gzcompress or none

# 0.13.0

  • New: Find feature in Functions page to find terms inside device channels or sections
  • Fix: Old find feature in scripts regex fixed

# v0.12

# 0.12.0

  • New: Functions, improved autocomplete features for function editors
  • Fix: Functions, Uploading the Include Function requires a system restart
  • New: System timezone now can be set in system page
  • Fix: Device channels hide/show mode is kept during navigation
  • Fix: Modbus device edit now reflects registry range changes on channels
  • New: Device channels can be reset to their default unused values (name and min/max/decimals/offset or power supply status)
  • Minor fixes

# v0.11

# 0.11.2

  • New: Profinet network interface name configurable via System page

# 0.11.1

  • Fix: System page toggle status buttons (Profinet and ModBus) behavior

# 0.11.0

  • New: Profinet support added
  • New: ModBus service is now enabled and activated only when needed
  • Minor fixes
Last Updated: 7/16/2024, 3:13:36 PM