Skip to Main Content
AVEVA™ PI System™ Feedback Portal

Welcome to our new feedback site!


We created this site to hear your enhancement ideas, suggestions and feedback about AVEVA products and services. All of the feedback you share here is monitored and reviewed by the AVEVA product managers.

To start, take a look at the ideas in the list below and VOTE for your favorite ideas submitted by other users. POST your own idea if it hasn’t been suggested yet. Include COMMENTS and share relevant business case details that will help our product team get more information on the suggestion. Please note that your ideas and comments are visible to all other users.


This page is for feedback specifically for AVEVA PI System. For links to our other feedback portals, please see the tab RESOURCES below.

Status No Status
Product PI Interfaces
Created by jagdish.konathala
Created on Aug 17, 2022

Convert incoming string data to float and provide division all in the same tag instead of a PE

OPC server is outputting data with the currency data type (VT_CY) and it needs to be stored in the float type.  As per the OPCtoCSV document, the OPCtoCSV tool/OPC interface invokes VariantChangeType in order to convert this currency value to it's string representation before PI receives it. "Some OPC servers have property values that are type VT_CY. The VT_CY type is intended to represent monetary values. A VT_CY value is a fixed-point number with four digits after an implied decimal point that is scaled and stored as a 64-bit integer. When VariantChangeType converts a VT_CY value to string, the string representation is an integer. To account for the implied decimal point, divide the integer by 10000. That is, “123456” actually represents 12.3456 (using dot to indicate the decimal point), “123” represents 0.0123, and so forth. (p. 19) So essentially, PI is receiving an integer value of the string type that is several orders of magnitude larger than the original.  He needs PI to first convert this value from a string to a float, and then scale it down by 1/10,000.  Typically, a conversion from currency to float would be done on the source before the data reaches PI, but his OPC vendor has prevented this. As far as I know, the Data Archive is not capable of automatically converting and scaling this event before archiving it.  We tried setting a conversion factor to 0.0001 and changing the point type to float but then we started getting "Bad" values.  The only way I know to accomplish is to create a performance equation that will parse the string value (using Float()) and then scale the result by 1/10,000.  In fact, we did create a test performance equation and it did exactly what we needed it to.
  • Attach files