floating point to decimal in a G3 display

joecicpgh

Member
Join Date
Feb 2013
Location
pittsburgh
Posts
19
Ladies & Gent's,

I am reading a floating point number from a Seimens RWF40 controller(PV) modbus address 30000 IEEE_754 format. I want to display it as a decimal in the G3. I'm quite sure there is a simple way to do this i just have not been able to figure it out? I imagine i can set it up in the "data tag" to do this conversion.The problem I see is the controller does not have defined scale(it has severl different input types selectable(I am using type "J" tc).

Thanks for your time & effort,Joe
 
Ladies & Gent's,

I am reading a floating point number from a Seimens RWF40 controller(PV) modbus address 30000 IEEE_754 format. I want to display it as a decimal in the G3. I'm quite sure there is a simple way to do this i just have not been able to figure it out? I imagine i can set it up in the "data tag" to do this conversion.The problem I see is the controller does not have defined scale(it has severl different input types selectable(I am using type "J" tc).

Thanks for your time & effort,Joe

I'm not sure what you mean "display as a decimal" Do you mean integer?

You say something about a type J T/C, is it not scaled to floating point in the controller and linear in the Modbus register?
 
Yes, Sorry and integer. It is a floating point number in the modbus register and i can read it on the G3 but i need to change it to an integer to display it. I was going to use the "Scaling function" on the data tag setup but im not sure what to use as the min & max for both the number read from address and the number desired to display.I knoe the type "J" designed limits but im not sure of the input limits of the controller(highest and lowest calculated number).

Thanks again,

Joe
 
Yes, Sorry and integer. It is a floating point number in the modbus register and i can read it on the G3 but i need to change it to an integer to display it. I was going to use the "Scaling function" on the data tag setup but im not sure what to use as the min & max for both the number read from address and the number desired to display.I knoe the type "J" designed limits but im not sure of the input limits of the controller(highest and lowest calculated number).

Thanks again,

Joe

Why do you need to display it as an integer? You can display an floating point with no decimal places.
 
I was not clear enought in my question it is a 16 bit Hex floating point number. So an average guy will not understand the letters and numbers mixed together.(following if from the controller manual)
The following explanations apply under the condition that the master works with the
IEEE-754 format.

M-23 bit normalized mantissa
E-exponent (complement to base 2)
S-Sign-bit; 1 = negative, 0 = positive
MOD-Bus
Example:
Transmission of decimal value “550“:
MOD bus: 0x80, 0x00, 0x44, 0x09
Following is a description of all process values (variables) with their addresses, data
type and type of access.
Where:
R / O Read only access
Float value (4 bytes / 2 words)

Address Data type Access Parameter Value range Default value
0x0000 float R / O Actual value E1
0x0002 float R / O Actual value E2​
0x0004 float R / O Actual value E3


Am I just over thinking this??

Joe
 
I was not clear enought in my question it is a 16 bit Hex floating point number. So an average guy will not understand the letters and numbers mixed together.(following if from the controller manual)
The following explanations apply under the condition that the master works with the
IEEE-754 format.​

M-23 bit normalized mantissa
E-exponent (complement to base 2)
S-Sign-bit; 1 = negative, 0 = positive
MOD-Bus
Example:
Transmission of decimal value “550“:
MOD bus: 0x80, 0x00, 0x44, 0x09
Following is a description of all process values (variables) with their addresses, data
type and type of access.
Where:
R / O Read only access
Float value (4 bytes / 2 words)​

Address Data type Access Parameter Value range Default value
0x0000 float R / O Actual value E1
0x0002 float R / O Actual value E2​
0x0004 float R / O Actual value E3


Am I just over thinking this??

Joe

This is a 32 bit format.

I *think* you are over thinking it.
 
What you have is pretty common; it's a 32-bit IEEE-754 floating-point number that's been packed into two 16-bit registers that are accessible over Modbus protocol.

Have you tried defining the Tag as '300001.REAL' in Crimson 3 ? You might also have to experiment with the Manipulation setting, depending on how the data got packed into those Modbus registers.
 
What you have is pretty common; it's a 32-bit IEEE-754 floating-point number that's been packed into two 16-bit registers that are accessible over Modbus protocol.

Have you tried defining the Tag as '300001.REAL' in Crimson 3 ? You might also have to experiment with the Manipulation setting, depending on how the data got packed into those Modbus registers.

I didn't get the impression that he had gotten to the point of actually trying to display it.

You are definitely right about needing to address it correctly as a REAL, and possibly needing to manipulate the word and/or byte order.
 
Ken,

I have not but I was going to try a few of those things.Thanks for the direction. Its just one of the last things to get working a simple project. Just gets frustrating I though it would be simple:). This is my fourth time using a G3 and it is great for my application. This was an "extra" asked for by my customer. Watch the boiler temp which is the Seimens RWF40 controller. I have worked with honeywell,eurotherm,yokogawa and they were simple to read from an address in regards to PV and data type.

Joe
 
I think I figured it out !

Set up your tag in Crimson 3 addressed as "300001.REAL", selecting the 'Word as Real' Data Type.

I set this up so that the two Modbus registers in my simulator read:

30001: 0x0080
30002: 0x0944

And the value in Crimson 3 reads '550.0', as seen in the sample you posted.

In the Data Source part of your Numeric Tag definition, I set the Manipulation to 'Reverse Bytes'. You may or may not have to do so, depending on the actual byte order your device uses.
 
Thanks!!

Ken,

I think my main issue was "not real" :). I will try that Friday and mess with the reverse byte things.

Have a good Fourth of July!!

Joe
 

Similar Topics

Equipment- AB HMI PV600 2711-B6C20 Control Logix 1769L32E Software- RSlogix 5000 and Panelbuilder 32 Problem- I have an analog signal back to...
Replies
0
Views
1,276
I’m using a 05 PLC which cannot handle real (floating point) numbers. The operator must enter the cut length into the C-Micro panel. (I used a...
Replies
2
Views
3,591
I am working with a flow meter that registers floating point values through a pipe and want to first convert that to a decimal value, and second...
Replies
3
Views
7,450
I need to check an axis actual travel position, and to compare it to the master travel position. To do this I have to multiply the axis travel...
Replies
6
Views
2,570
We have AOIs for projects, which handle material dosing (by hand or by pipes and pumps), obviously they have comparison between setpoint and...
Replies
50
Views
14,226
Back
Top Bottom