Custom Modbus Masked Boolean Register Displays as Not Available
Issue
A Boolean value from a custom Modbus device displays as Not Available in PME even though the corresponding bit is valid and active in the device register.
Product Line
Power Monitoring Expert 8.0
Power Monitoring Expert 9.0
Power Monitoring Expert 2020
Power Monitoring Expert 2021
Power Monitoring Expert 2022
Power Monitoring Expert 2023
Power Monitoring Expert 2024
Environment
Modbus Device Importer
Device Type Editor
Custom Modbus device type
Cause
The custom Modbus device type uses a GlobalNotAvailable value that is identical to the valid value produced by a masked Boolean register.
For example, the device type may define:
GlobalNotAvailable="0x8000"
The affected Boolean register may use:
Format="MaskedBool"
Mask="0x8000"
When the most significant bit is active, the register value becomes 0x8000. Because this value matches GlobalNotAvailable, the device translator interprets the valid Boolean state as Not Available.
Resolution
Back up the custom device type XML file before making any changes.
Open the XML file for the custom Modbus device type and locate the ModbusInfo element for the affected masked Boolean register.
Add the following attribute to the affected ModbusInfo element:
DisableNotAvailableCheck="1"
Example device-level configuration:
Example affected register before the change:
Example affected register after the change:
Save the XML file and apply the updated device type according to the process used by the installed PME version.
Verify that the affected Boolean register now displays the correct active or inactive state instead of Not Available.
Note: Add DisableNotAvailableCheck="1" only to registers where a valid register value can match the configured GlobalNotAvailable value. Applying this setting unnecessarily can prevent PME from identifying a legitimate Not Available response.
Recommendation