Re: [foxboro] String vs. Integer

  • From: "Joseph M. Riccardi" <Joe@xxxxxxxxxxxxx>
  • To: <foxboro@xxxxxxxxxxxxx>
  • Date: Sat, 19 Mar 2011 15:03:47 -0400

Alex,

Thanks again for the details.  It sort of validates my understanding of the
differences.  The specifics that I am referring to is a case where Mode and
Status data was built in an IND block.  It was built in parallel as both an
Integer value (IO0001) and String data (SN0001).  Both parameters are
historized.  1st, I believe building both is a waste of block resources, and
2nd, given a choice, I recommended historizing the Integer only because it
was less resource intensive; if that is even the correct word to use but I
have drawn the same conclusion from your description below.  The response I
received was that it does not matter as both parameters are equal (not sure
of the exact wording because I am away from the office and cannot get to
those e-mails).  I am trying to make a case for building the data only one
way (Integer or String, whichever is less resource intensive) and
historizing only that single parameter for each block.  Just in case it
matters, it is the InFusion Historian if it handles data differently than
AIM*.

Thanks gain.


Joseph M. Riccardi

386-441-0250 Home Office
386-451-7607 Florida Cell
440-725-4025 Ohio Cell
 
Joe@xxxxxxxxxxxxx
 
"To give real service you must add something that cannot be bought or
measured with money; and that is sincerity and integrity." - Donald A. Adams


-----Original Message-----
From: foxboro-bounce@xxxxxxxxxxxxx [mailto:foxboro-bounce@xxxxxxxxxxxxx] On
Behalf Of Johnson, Alex P (IOM)
Sent: Saturday, March 19, 2011 2:28 PM
To: foxboro@xxxxxxxxxxxxx
Subject: Re: [foxboro] String vs. Integer

Joe,

There are many differences between the storage of scalar values and
non-scalar (array) values. The two most significant relate to:

1) How they are stored in the CP
2) How their values are made available to other users


Value Storage
Scalar parameters, e.g., float, Boolean, integer, long, etc., are stored in
the block. 


String parameters, e.g., SN0001 and DESCRP, are stored differently. The CP
contains a string pool, a chunk of RAM dedicated to holding strings. Strings
with the same text are stored once in the string pool. In this case, the
block "hold" a pointer to that string in the string pool as opposed to
holding the string itself.

To my knowledge this is the approach that has been used in all models of the
CP.


Data Transfer
The OM's connected service (read/writes) works only on scalar data. For this
reason string variables are not "change-driven."

Access to string data requires non-connected (get/set) calls on the OM.
These calls are much slower and less efficient than change driven
connections. "Change driven" read access is simulated by FV by allowing the
user to specify a scalar variable to monitor and to force FV to get the
value when the scalar value has a change reported. Typically, the parameter
MSGNO is used to indicate that it is time to get a SNxxxx parameter and
display it.

MSGNO Message Number indicates the number of the last message assigned to a
      user string parameter. It is incremented by one each time a message is
      assigned, to show updates of SN00xx on the detailed displays. If the
      parameter value reaches 2E31-1, the next message number is 0.

IIRC, AIM*Historian supports triggered reads of STRING parameters as well.


Generally, it is much "cheaper" to monitor scalar values (using read lists)
than string values (using gets) because many more values (up to 255) can be
monitored at a time.



I don't know if this addresses your question, but, if not, please provide
some details around what you are doing.


Regards,
 
Alex Johnson
Invensys Operations Management
10900 Equity Drive
Houston, TX 77041
+1 713 329 8472 (desk)
+1 713 329 1600 (operator)
+1 713 329 1944 (SSC Fax)
+1 713 329 1700 (Central Fax)
alex.johnson@xxxxxxxxxxxx (current)
alex.johnson@xxxxxxxxxxxxxxxx (good until September 2010)


-----Original Message-----
From: foxboro-bounce@xxxxxxxxxxxxx [mailto:foxboro-bounce@xxxxxxxxxxxxx] On
Behalf Of Joseph M. Riccardi
Sent: Saturday, March 19, 2011 10:51 AM
To: foxboro@xxxxxxxxxxxxx
Subject: [foxboro] String vs. Integer

Folks,
From an overhead and/or resource viewpoint (i.e. historized data), is there
a difference between the use Integers (IO0001) vs. String (SN0001)
variables?  I was always told there was.  Now Foxboro claims there is no
difference.  What great software development feature created them equal and
when?  Due to some loading/resource issues, everything is up for review and
we historize tens of thousands of them both.  

As always, thanks in advance for the help and advice from the group.


Joseph M. Riccardi

386-441-0250 Home Office
386-451-7607 Florida Cell
440-725-4025 Ohio Cell
 
Joe@xxxxxxxxxxxxx
 
"To give real service you must add something that cannot be bought or
measured with money; and that is sincerity and integrity." - Donald A. Adams




 
 
_______________________________________________________________________
This mailing list is neither sponsored nor endorsed by Invensys Process
Systems (formerly The Foxboro Company). Use the info you obtain here at
your own risks. Read http://www.thecassandraproject.org/disclaimer.html
 
foxboro mailing list:             //www.freelists.org/list/foxboro
to subscribe:         mailto:foxboro-request@xxxxxxxxxxxxx?subject=join
to unsubscribe:      mailto:foxboro-request@xxxxxxxxxxxxx?subject=leave
 


*** Confidentiality Notice: This e-mail, including any associated or
attached files, is intended solely for the individual or entity to which it
is addressed. This e-mail is confidential and may well also be legally
privileged. If you have received it in error, you are on notice of its
status. Please notify the sender immediately by reply e-mail and then delete
this message from your system. Please do not copy it or use it for any
purposes, or disclose its contents to any other person. This email comes
from a division of the Invensys Group, owned by Invensys plc, which is a
company registered in England and Wales with its registered office at 3rd
Floor, 40 Grosvenor Place, London, SW1X 7AW (Registered number 166023). For
a list of European legal entities within the Invensys Group, please go to
http://www.invensys.com/legal/default.asp?top_nav_id=77&nav_id=80&prev_id=77
.

You may contact Invensys plc on +44 (0)20 3155 1200 or e-mail
reception@xxxxxxxxxxxxx This e-mail and any attachments thereto may be
subject to the terms of any agreements between Invensys (and/or its
subsidiaries and affiliates) and the recipient (and/or its subsidiaries and
affiliates).


 
 
_______________________________________________________________________
This mailing list is neither sponsored nor endorsed by Invensys Process
Systems (formerly The Foxboro Company). Use the info you obtain here at
your own risks. Read http://www.thecassandraproject.org/disclaimer.html
 
foxboro mailing list:             //www.freelists.org/list/foxboro
to subscribe:         mailto:foxboro-request@xxxxxxxxxxxxx?subject=join
to unsubscribe:      mailto:foxboro-request@xxxxxxxxxxxxx?subject=leave
 

 
 
_______________________________________________________________________
This mailing list is neither sponsored nor endorsed by Invensys Process
Systems (formerly The Foxboro Company). Use the info you obtain here at
your own risks. Read http://www.thecassandraproject.org/disclaimer.html
 
foxboro mailing list:             //www.freelists.org/list/foxboro
to subscribe:         mailto:foxboro-request@xxxxxxxxxxxxx?subject=join
to unsubscribe:      mailto:foxboro-request@xxxxxxxxxxxxx?subject=leave
 

Other related posts: