Hi Tuboxg,
Welcome to the forum.
Great question this, been frowning at my screen thinking about it
From what I know there is no direct way of doing this, instead you need an indirect step where the parsing of products/limits happens and feeds the result to a PI tag/dataset.
If you take one product in the tank, say product x with 40--60 limit, would you want to have three states for the multistate? e.g. [zero]--40 no alarm, 40--60 alarm, 60+ no alarm where alarm = flashing red? Then for each other product the limits change?
If so, then in the past I have worked on something similar and what we did could be translated in to what you want as:
Using PI Points (or AFElements/AFAttribtues in AF):
- "TankA.Product" = product name
- "TankA.LowLimit" = PE based on product e.g. if 'TankA.Product' = "ProductX" then 40 else (if 'TankA.Product' = "ProductY" then 50 else 0) Alternatively, manual entry, PI ACE calculation, custom app etc
- "TankA.HighLimit" = same method as LowLimit
- "TankA.Quality" = Result of product test
- "TankA.QualityStatus" = PE based on quality result for product against the LowLimit & HighLimit values. Digital tag, "In Alarm", "Normal" etc
Then just multistate the Tank in ProcessBook based on the QualityStatus PI Point.
It will depend on your processes in place for updating the products, defining limits, when you get quality results in etc
Hope this helps.
Principal Consultant
Real-Time Data Management @ Wipro Technologies