Guide to Successfully Accessing and Reading FLOAT32 Values with Schneider Digital Multimeters in Unity Pro

Question:

I am currently utilizing the Schneider P342020 and PM5110 digital multimeter for data readings. While I am successfully able to retrieve INT16 values from the register, I am encountering difficulties when trying to retrieve FLOAT32 values as it consistently displays 0. Can anyone provide guidance on how to properly access and read FLOAT32 values with Schneider digital multimeters?

Top Replies

Are you utilizing Modbus for your PM5110 device and in need of the Modbus register list? If so, kindly share the list or a link to it.

Below is the Modbus register list for the PM5110 meter, with data beginning at 3000. Just for your information (FYI).

Many PLCs have 16-bit registers, so when dealing with 16-bit Modbus communications, it is common to assign tag names to both the 16-bit and 32-bit addresses. For example, if the data memory area is designated as "D" or "M," you can assign D100 and D101 as integers, such as My_Var1 and My_Var2, and then designate D100 as a floating point number, My_float, to combine the two registers into a 32-bit float. The compatibility with CODESYS may vary, and considerations may need to be made for swapping the 16-bit registers, identifying the high and low bytes.

I'm having trouble understanding the block I'm using in Unity Pro for receiving data from a Modbus, specifically as an array of integers (SS1_TRANS1_PMU). Despite using float32 from the meter, all values are displaying as 0. Please provide clarification on this issue.

Is READ_VAR retrieving data from the PM5110 device through polling?

It sounds like you might not be interpreting the FLOAT32 data correctly. Unlike INT16 values, FLOAT32 values need to be interpreted as floating point numbers. Ensure your software/program is set up to handle this format. Also check if you need to swap the bytes, given Schneider's transmission format. You may find it useful to use software like Modbus Poll that automatically handles conversion for you. Lastly, ensure your device logic is programmed correctly to return FLOAT32 values, as not all outputs available in Schneider multimeters are FLOAT32.

You might be dealing with a possible data type mismatch or a software issue. FLOAT32 values are usually used for larger decimal numbers, so if your multimeter is not designed to work with such data type, it might return a 0. However, it's also worth checking your user manual or the technical documentation to clarify the methods for retrieving different data types. Specific software or a firmware update might be needed. If all else fails, contact Schneider's customer support for professional assistance.

It sounds like you’re on the right track with your INT16 readings, but for FLOAT32 values, the issue might be with the register mapping or how you're interpreting the data. Make sure you’re accessing the correct registers as FLOAT32 typically requires reading two consecutive 16-bit registers (as in a 32-bit float is represented in 4 bytes). Also, check if there's a specific configuration needed for FLOAT32 output in your device settings or if there’s a scaling factor you need to apply. Sometimes the response format can be tricky, so double-checking the documentation for the expected byte order (endianness) can also help solve the mystery.

It sounds like you're on the right track with the INT16 values, but reading FLOAT32 can sometimes be tricky due to byte ordering or how the data is interpreted. Make sure you're checking the register addresses and confirm that you're reading the right number of bytes—FLOAT32 typically requires 4 bytes. Also, double-check the configuration settings on the multimeter to ensure that the output format is set correctly for FLOAT32. If it's still displaying 0, it might help to look at the documentation for any specific commands or queries that are required to access those floating-point values properly.

It sounds like you're on the right track with the INT16 values, but for FLOAT32 readings, make sure you're using the correct function code for the specific register you’re trying to access, as FLOAT32 often requires reading multiple registers for accurate data. Also, double-check your endianness settings; if the data is saved in a different byte order than expected, it could lead to incorrect results like getting a zero value. Lastly, ensure that the multimeter settings are correctly configured to output FLOAT32 values in the desired format, as sometimes it requires specific mode settings. Good luck!

More Replies →

Streamline Your Asset Management
See How Oxmaint Works!!

✅   Work Order Management

✅   Asset Tracking

✅   Preventive Maintenance

✅   Inspection Report

We have received your information. We will share Schedule Demo details on your Mail Id.

To add a comment, please sign in or register if you haven't already..   

Frequently Asked Questions (FAQ)

FAQ: FAQs:

Answer: 1. How can I successfully access and read FLOAT32 values with Schneider digital multimeters in Unity Pro? - To successfully access and read FLOAT32 values with Schneider digital multimeters in Unity Pro, you need to ensure that you are following the correct process for retrieving these values. This may involve setting the correct data types, addressing registers accurately, and handling the data conversion appropriately.

FAQ: 2. Why am I encountering difficulties when trying to retrieve FLOAT32 values with Schneider digital multimeters?

Answer: - Difficulties in retrieving FLOAT32 values with Schneider digital multimeters could be due to incorrect configuration settings, addressing issues, or data conversion errors. Double-check your setup and ensure that you are correctly handling FLOAT32 data types in your communication protocol.

FAQ: 3. What could be the reason for consistently getting a value of 0 when trying to read FLOAT32 values with Schneider digital multimeters?

Answer: - Consistently getting a value of 0 when trying to read FLOAT32 values may indicate a communication problem, incorrect data type interpretation, or issues with the register addressing. Verify your settings, ensure proper data type interpretation, and troubleshoot any potential communication issues to resolve this issue.

Ready to Simplify Maintenance?

Join hundreds of satisfied customers who have transformed their maintenance processes.
Sign up today and start optimizing your workflow.

Request Demo  â†’