Unknown Bad Quality or No Known Value for Modbus I/O Server Bound Variables

Updated Jan 24, 2023

Reported In

Software

  • LabVIEW Datalogging and Supervisory Control Module
  • LabVIEW Real-Time Module

Issue Details

I am setting up a Modbus I/O Server with the LabVIEW DSC Module to communicate with my Modbus Slave device. I have configured the server and created bound variables for the Modbus coils and registers I want to read/write and have deployed the I/O Server library. When I view the bound variables in NI Distributed System Manager, the Quality of the variables is either Unknown Bad Quality or No Known Value.
 

When I read the shared variables in LabVIEW, I do not get the correct data. 

Solution

The errors Unknown Bad Quality or No Known Value generally indicate that the Modbus I/O Server is unable to communicate with the Modbus slave device. 
  • Check that the slave device is powered on and in a state that it is able to communicate.
  • Make sure that the Modbus I/O server is configured in the LabVIEW project with the correct communication settings. If using Modbus Ethernet, check that the IP address of the slave device is correct. If using Modbus Serial, check that you are using the correct serial configuration (baud rate, stop bits, data bits, parity) for your device. Refer to your device's user manual for more information.
  • Undeploy and Redeploy the Modbus I/O Server library from the LabVIEW project explorer. 
  • Make sure that you are using the correct address format for the coils, inputs, or holding registers. LabVIEW may be using a different Modbus addressing scheme than your device.
  • Try accessing the slave device from a 3rd-party Modbus tool