16 Replies Latest reply on Jun 15, 2012 2:16 PM by andreas

    Applying UOM to the core PI System?

      Are there any plans for to merge/combine/replace UOM from AF with the core PI system attribute EngUnits?
      It would be nice to force standards at the root of the PI system then in AF give the option to inherit the PI system UOM or use AF's own UOM.

      Thoughts from OSI?

      Reason: users have freedom to enter what they like for a PI system EngUnit and without any governance this can get ugly.  So you can have "DegC", "C", "Celcius", "DegreesC" etc being entered for on a PI system.  AF does it's job at standarising these but what if AF is not required and simply a PI system is the only required element, you are relying on your own standards written on paper to ensure standard units are enforced.

        • Re: Applying UOM to the core PI System?

          I'm sure some people involved in AF and PI Server development will comment on this soon (and I'll go grab them if they don't , but my take on this is that it is fine the way it is now:

           

             - In a first place, somebody who wants a very simple and extremely flexible installation (a lot of people do) should only have to install the PI System. And they can.

           

             - On the other hand, somebody who wants to have a more organized, controlled, analysis-friendly system, can install this AF "layer" on top of PI. And even get all its PI Point Management tasks performed from AF.

           

          Just my 2 cents... we'll see what they have to say!

            • Re: Applying UOM to the core PI System?

              By "flexible" though you mean a "free text field" .  I have seen other historians enforce Engineering Unit standards in the core functionality.

               

              Would be interesting to hear the PI System developers thoughts too...

              More I think about it the more I like the idea of being able to use this on the core system, use a version of performance equations that utilise UOM.  Could even enhance ProcessBook etc so when you request a value you select the UOM.  Everything ties neatly together from the moment of installation.  Sounds like what I want is AF and the core PI System completely merged into a single product...so OSI how about it?

               

               

               

               

              • Re: Applying UOM to the core PI System?
                Rick Davin

                Steve Pilon

                I'm sure some people involved in AF and PI Server development will comment on this soon (and I'll go grab them if they don't , but my take on this is that it is fine the way it is now:

                 

                   - In a first place, somebody who wants a very simple and extremely flexible installation (a lot of people do) should only have to install the PI System. And they can.

                 

                   - On the other hand, somebody who wants to have a more organized, controlled, analysis-friendly system, can install this AF "layer" on top of PI. And even get all its PI Point Management tasks performed from AF.

                 

                Just my 2 cents... we'll see what they have to say!

                 

                 

                I agree with Steve.  I like the flexible approach (free-form typing) in the PI database, especially when interfacing with a dozen DCS nodes that may have different limitations and values in the EU field.  I'd prefer to use AF layered on top of PI, and then apply the rigors of UOM in AF as I build my hierarchy. 

                 

                I've worked with non-PI historians that required a EU belong to a lookup table, and it was a hassle to import a few thousand tags when you discovered a couple of dozen EU's failed in the lookup.  At that stage, I'm more concerned about getting the points created, interfaced to the DCS, and collecting data.  After that, I'll worry about building a structured hierarchy.

                 

                 

                 

                 

              • Re: Applying UOM to the core PI System?
                cescamilla

                I remember the good-old-days when PI started and how it needed a "EngUnits" fields so people would know what they were actually looking at. But back then (and right now) the PI Server does not do anything else with that, it just shows that.

                 

                On the other hand, AF does convert values and knows about most kind of units, this is why AF needs to have everything strictly set to a correct value.

                 

                That said, it would be nice for the PI Server to be able to do simple unit conversion based on EngUnits, or even to tell you the units something is in after you do some math on them.

                 

                Anyway, let's see what the Developers have to say about it, this is gonna be really interesting. :D

                  • Re: Applying UOM to the core PI System?
                    Bryan Owen

                    The PI2 experience REQUIRED engineering units to be assigned for point creation.  This behavior disrupted workflow, raised errors, and caused rework especially when using bulk configuration utilities.

                     

                    Making it easier to collect data ended up being more important. One could almost hear the applause when PI3 relaxed engineering units requirement. 

                     

                    I agree with layering UOM support and believe this will be a compelling value to help drive AF adoption.  This approach is compatible with automated point creation.  Applications like PI Automatic Point Sychronization and MCN Health Monitor could futher leverage AF UOM into consistent exception and compression specifications for like assets. 

                     

                    No one will miss the legacy totalizer conversion factor issue!

                     

                     

                      • Re: Applying UOM to the core PI System?

                        Good, so we are all thinking along the same lines.

                         

                        ModuleDatabase was adapted and used to the brink of what it could do because it came with the PI System, imagine the use AF would get if it was part of the PI "system".

                         

                        Just a thought along these lines, I am presuming that UOM/AF would become part of SSB so that changes to UOM are replicated.  I can imagine that replicating AF data would be a nightmare because of the SQL Server involvement or maybe you guys at OSI are already working on this and have ideas?

                          • Re: Applying UOM to the core PI System?
                            formerpigeek

                            I'm assuming that you used SSB to refer to an HA solution for AF. The next version of AF (2.1) to be demoed at the next UC will be Highly Available using a combination of automatic AF SDK failover at the client level and SQL server replication at the DB level. Conceptually very similar to the current HA solution for the PI server except that for AF, data replication is managed by SQL.

                              • Re: Applying UOM to the core PI System?

                                Well this is pleasing to hear, as it would solve some issues we currently have (as a side so would SSB).

                                So look forward to seeing some demos and information on this

                                  • Re: Applying UOM to the core PI System?

                                    Does OSI have any scripts/code for comparing an AF server UOM to a PI server EngUnits attribute?  What I am intending to do is "force" standards on a PI server EngUnits...well at least advise of EngUnits irregularities of a PI server when using an AF server as the "master EngUnits".

                                      • Re: Applying UOM to the core PI System?
                                        andreas

                                        Hi Rhys,

                                         

                                        sounds like you would like to see another "whitepaper" ...

                                         

                                        So here is a quick idea:

                                         

                                        First getting all the UOMs in a string array:

                                        
                                        

                                        If PiSystemPicker1.PISystem.ConnectionInfo.IsConnected = True Then
                                            _AFUOMDatabase = PiSystemPicker1.PISystem.UOMDatabase
                                        End If

                                        txtUOM.Text = _AFUOMDatabase.UOMs.Count

                                        Array.Resize(_strUOM, _AFUOMDatabase.UOMs.Count)
                                        Dim _UOM As OSIsoft.AF.UnitsOfMeasure.UOM
                                        Dim i As Integer = 0
                                        For Each _UOM In _AFUOMDatabase.UOMs
                                            _strUOM(i) = _UOM.ToString
                                            i += 1
                                        Next

                                         

                                        next would be comparing:

                                        
                                        

                                        If PiSystemPicker1.PISystem.ConnectionInfo.IsConnected = True Then
                                            _PIServer = _PISDK.Servers.Item(PiSystemPicker1.PISystem.ToString)
                                            Dim _PIPoint As PISDK.PIPoint
                                            Dim _PointClass As PISDK.PointClass
                                            Dim _isUOM As Boolean

                                            Dim _strLine(1) As String
                                            Dim iWidth As Integer

                                            iWidth = ListView2.Width / 3
                                            Me.ListView2.Columns.Add("Tag", iWidth * 2)
                                            Me.ListView2.Columns.Add("EngUnit", iWidth)

                                            For Each _PIPoint In _PIServer.PIPoints
                                                _PointClass = _PIPoint.PointClass
                                                _isUOM = False
                                                If _PointClass.Name = "classic" Then
                                                    For i = 0 To _strUOM.Length - 1
                                                        If _PIPoint.PointAttributes.Item("engunits").Value.ToString = _strUOM(i) Then
                                                            _isUOM = True
                                                        End If
                                                    Next

                                                If _isUOM = False Then
                                                    _strLine(0) = _PIPoint.Name
                                                    _strLine(1) = _PIPoint.PointAttributes.Item("engunits").Value.ToString
                                                    Dim itmLine As New ListViewItem(_strLine)
                                                    Me.ListView2.Items.Add(itmLine)
                                                End If

                                                _isUOM = False

                                                End If
                                            Next

                                        End If

                                        so i guess what is left now is to write the code that edits the tags with a drop down list from the UOMs?

                                         

                                        regards,

                            • Re: Applying UOM to the core PI System?
                              formerpigeek

                              The PI System is actually now AF+PI server. These two products are not intimately tied together yet but we're moving towards deprecating MDB and substituting it with PI AF. PI AF will be soon an integrated part of every PI System and we'll start leveraging more of its capabilities to store and manage the overall PI System configuration (which includes the PI Server(s) configuration and the other layered products such as PI Notifications). So the answer is yes: we do have plans to leverage AF UOMS to enforce engineering units at the PI point level.