Different Modbus Value Indication Nuflo 2000 ModWorx vs Modscan32

C

Thread Starter

Chrisman

Hello all,

I have a project using NuFlo Scanner 2000 - Cameron for oil export metering.

The system architecture is using SCADA server – Vijeo Citect that read process parameter from Modbus Register through Modbus gateway EGX100SD.

The problem we face that the parameter reading comparing ModWorx and SCADA is showing different value. (MorWorx is proprietary application to read/calibrate the smart transmitter NuFLo Scanner 200)

I have tested to compare with Modscan32 with Mordworx both using the same serial port (without any gateway) but unfortunately, both still show different indication.

Does anyone have idea to solve the problem?

Cheers,
Chrisman
 
It would help if you gave

- several examples of what the differences are.

- word format (integer, real/floating point, single/double) for the registers in question
 
B
You did not mention "how different" the values are. Is one correct and the other totally invalid? Or do they just differ by a small value?

If the values are float (real) then the format may be the issue. Little endian or big endian?

I have not observed complaints about incorrect values when using Vijeo Citect so the issue is likely with the ModWorx protocol.
 
The ModWorX program does not use a proprietary protocol. It communicates using modbus. You can check the actual transmitted bytes for any value by selecting the Tools menu and 'View All Modbus Registers'. Tables show the Data Address, Register Name, Data Type, Hex bytes, and Data Value (in decimal).

The issue is likely the Vijeo Citect is polling for the wrong registers or its using the wrong data type (Integer vs. float) or the wrong byte or word order (big vs. little endian).

To find the error, more info is required about what actual register is causing concern and what values you are reading.

You could always get tech support from Cameron. The phone numbers are in the ModWorX about box.
 
Hello,

Try use the modbus tester from www.modbus.pl.
You can see raw data (byte by byte) from the modbus frames in that application. Maybe this can help you.

Regards
Andrzej
 
The word format are 32 bit float.
example variable:

Some variable value, for instant reading are showing equal value.
<pre>variable MB Addr ModWorx ModScan32/VCitect

FR grand total 48026 80711.1 80384.00
FR daily total 48030 8881.31 8996.52
FR prev day tot 48036 41370.9 41420.25
FR prev interval 48038 48.914 48.9013
Instant Temp 48452 113 113
Instant DP 48408 150 150</pre>
<i>FR: Flow rate

</i>I've tried to swap the order, but the result are more worse.
 
Chrisman, The values you show are very close, which suggests that you have the correct high word, but it's selecting the wrong low word.

For example, the first value is::
register 8026 (hex 1F5A) = value hex 479D
register 8027 (hex 1F5B) = value hex A38D
FR grand total = hex 4797A38D = 80711.1

The 4xxxx conversion typically uses an offset of 40001. So asking for register 48026 & 48027 will actually convert to 8025 and 8026.
register 8025 (hex 1F50) = value hex 0000
register 8026 (hex 1F5A) = value hex 479D

When you combine this with word swapping,also called "lo word/high word" or reverse floats. I think Modscan calls it "swapped FP". These 2 registers will then convert to:
FR grand total = hex 47970000 = 80384.00

The solution would be to add one to the register numbers and change the format to not swap words.
 
There were a couple of typos in my last post that could cause confusion. They are corrected here.

The values you show are very close, which suggests that you have the correct high word, but it's selecting the wrong low word.

For example, the first value is::
register 8026 (hex 1F5A) = value hex 479D
register 8027 (hex 1F5B) = value hex A38D
FR grand total = hex 479DA38D = 80711.1

The 4xxxx conversion typically uses an offset of 40001. So asking for register 48026 & 48027 will actually return 8025 and 8026.
register 8025 (hex 1F59) = value hex 0000
register 8026 (hex 1F5A) = value hex 479D

When you combine this with word swapping,also called "lo word/high word" or reverse floats. I think Modscan calls it "swapped FP". These 2 registers will then convert to:
FR grand total = hex 479D0000 = 80384.00

The solution would be to add one to the register numbers and change the format to not swap words.
 
Top