• Not Answered

Document parameters used by a GRF File

Is there a way to generate a list of control module parameters used by a DeltaV Operate graphic (GRF File) in dynamos, buttons, datalinks,animations, etc.?

We want to buid a map of these parameters to Modbus registers to transfer to another 3rd party system via an EIOC (don't ask why it is a long story).  So rather than grab them 1 by 1 from the edit mode in Operate, I'm looking for a quick way to export list to Excel or similar file.

5 Replies

  • What version of DeltaV? With EIOC you will have to create module(s) to read parameters and write to 3rd party MODBUS Server.

    What if you used a PK controller (PK100). You still need the module to read via external parameters, but then map these to the MODBUS TCP server built into PK. You need v14. The purpose of this Modbus TCP server is to allow 3rd Party HMI to read data. Data has to be local to the PK, which you handle with the marshalling module(s).

    Your 3rd party HMI would then be the Modbus TCP Client and read the data from the PK.

    As for getting the tag data, the OPerate to Live migration utility generates XML outputs which might be easier to work with than GRF files. Don't spend much time in Operate these days but there might be a tool that outputs data link references. Note that displays use a lot of module data like Engineering units and scales that don't map directly to Modbus registers. These would need several registers each for EU0, EU100 and units.

    Good luck.

    Andre Dicaire

  • In reply to Andre Dicaire:

    We are running Version 13.3.1 so that rules out the PK controller for now and we probably don't have the DeltaV Live conversion tools either.
  • A way to view all datalinks used is the search function in the configure environment using *DVSYS* (also enable search scripts).
    An Emerson specialist will be able to create an Excel file dump of all the datalinks used by any graphic, as we have that produced for our system (I think they have their own scripts developed that they can run on the system).
  • In reply to Lily G:

    If your site makes use of PAS Integrity, it does a nice job of referencing tags used on graphics.
  • There is a VBA function called 'FindDataSource' you can use in a script to scan and drill down through all the objects in a display to extract any links.
    I put a list of the displays in a ListBox, selected the ones to scan and used code structured like this run in DV Operate edit mode to dump a list of the links out to a text file.
    For each object, you check if it has anything with a link at the top level and if it contains anything, drill down to the next level.
    Some object types cause 'FindDataSource' to choke so I added a list of exceptions to what is scanned, excluding things like 'InvisibleGroup' found by trial and error.

    For q = 0 To ListBox1.ListCount - 1
    If ListBox1.Selected(q) Then
    GraphicName = Mid(ListBox1.List(q), 1, Len(ListBox1.List(q)) - 4)
    FullDisplayName = ListBox1.List(q)

    frsOpenPic FullDisplayName, "", 0, 0, "" 'Open graphic in a new window
    Set ThePic = System.FindObject(GraphicName) 'Define graphic (and hence all its included objects) as a object
    Set PicObjects = ThePic.ContainedObjects

    'For each contained object, first check if it has any connections and then see if it is a group.
    'If it is a group, drill down one level and repeat the process
    If PicObjects.Count >= 1 Then
    For i = 1 To PicObjects.Count
    Set ASLevel(1) = PicObjects.item(i)
    If ASLevel(1).ClassName <> "Variable" [ + some other conditions to eliminate bgus objects ] Then
    If ASLevel(1).ContainedObjects.Count > 0 And ASLevel(1).Name <> "dtlCurrentLink" Then
    If FindDataSource(ASLevel(1)) <> "" Then
    Print #Filenumber1, GraphicName & "," & DataSourceParse(FindDataSource(ASLevel(1)))
    End If
    End If
    'Is there any object included inside this one?
    If ASLevel(1).ContainedObjects.Count > 0 Then
    For j = 1 To ASLevel(1).ContainedObjects.Count
    [ continue with similar code drilling down 5-6 levels seaching for tags ]


    There is also an internal Emerson tool to do this so your local rep might be able to help out. I found this VBA handy to get the list into Excel and update module Primary Display values.