Lose VBA functionality from Operate to Live

We use VBA functionality in Operate to load parameters (a lot of data) by clicking buttons on graphics. Any solution yet when we migrate from Operate to Live?  We are currently using V14 but will change to V15 in 2025 and still waiting any solution before we can migrate from Operate to Live. 

10 Replies

  • When you say "use VBA functionality" what do you mean? Live uses typescript that can do scripting but can't do everything you were allowed to do in VBA like reading/writing files so please clarify in more detail of what VBA functionality you are referring to/using.
  • In reply to Matt Stoner:

    You are right. I need to describe more clear. We did use VBA functionality to load CSV file into Operate data matrix then copy matrix data into DeltaV Control Module. Based on your reply, Live can't reading files yet. Any possible solution for it or any suggestion to work around it? Our main purpose is to load csv file with parameter data into DeltaV. Thanks!
  • In reply to Wei Sun:

    I would suggest migrating the CSV file(s) to SQL Express and using SQL query to pull this information as this is currently the only method supported. The reading/writing of files is a known issue but from what I've been told is a Cybersecurity issue and currently no plans to address/support that I'm aware of.
  • In reply to Matt Stoner:

    Thank you for this route. I know DeltaV use SQL database for historian and Alarm & Event. Does SQL query function also work for DeltaV database? We need write parameter data into control module. How can we use SQL query write data into Control Module floating point array? For example, we like to write 1,2,3,4,5 into a simple array A(1,5) in control module, Test.
  • In reply to Wei Sun:

    the query would pull the information that is in the CSV and give you the results that you can then use those results to do writes to the database I'm sure like you are doing today from VB.
  • In reply to Wei Sun:

    DeltaV uses SQL Express for Event Chronicle, not Continuous Historian. There are also several internal SQL Databases as well. The Event Chronicle is the only database that you would use.

    The DeltaV Configuration database does not support SQL queries. It is based on Objectivity. DeltaV provides a Bulk Edit interface to support moving data in and out of the database, but there is no direct programmatic interface like a SQL query supported with the engineering database.

    The Live SQL database support requires the Premium license on the HMI's for SQL query commands to run in run time. As Matt pointed out, Live does not allow the interaction with files directly. Creating a SQLExpress database to contain data for use in Live is the best way to make your current data available.

    In v15, there is a new Table control object that allows you to retrieve SQL data into a scrollable table to handle varying number of returned items and such. It does a lot more, but it solves the problem of handling a larger dataset of rows and columns that your SQL query will return.

    For writing into a DeltaV module, this would be a parameter write. The SQL query would be used to retrieve the source data from the SQL Express database (instead of CSV file or such) and then with a script, parse this array and iterate through the values to execute a parameter write to the destination cells of the Control Module array. Note that when a console script writes to a DeltaV module, this is recorded in the event chronicle. Since you've been doing this in Operate, I'm sure you are aware. The point is that writes must be by exception and not continuous. Also, the workstation's logged on DeltaV user must have write privilege to the module.

    The Typescript script will be similar in structure to the Operate VBA in terms of reading the source data (CSV vs SQL Query) and parsing the information to the parameter writes. Note the SQL query returns directly into an script array.

    Andre Dicaire

  • Something you can try is to crearte an ODBC data source, using EXCEL driver, and then connect to this data source from DV LIVE to perform SQL queries. Not sure is this is supported by DV LIVE becuse only Microsoft SQL Server connections are valid.
  • Maybe it would help to take a step back and think about what your requirements are here. How many data points are going from the csv into DeltaV? I'm assuming this is a batch process based on the need to load so many parameters - have you looked into using DeltaV batch to manage this data in terms of different formulas selectable at the beginning of a batch? If the numbers here are not huge (>1000) it's possible to hold a few different predefined "formulas" within control modules and have operators select from a list of predefined parameters and then push those parameters to their destination based on the operator's selection.

    The migration will definitely take some work and planning but you've got a good amount of time still to make some positive changes.
  • In reply to chip.burge:

    We are planning to use DeltaV Batch for the scale-up system in the future. However, the characteristic of building product needs to have 20-50 reaction cycles, and each cycle will include 20 types of reaction and each reaction might have 2 to 10 different number of parameters. So, it is more than 1000 parameter data need to be load into one formula in Batch. In stead of manually create those formula & recipe parameter in Batch, someone manual build the formula in Batch, is there possible to load csv file into DeltaV Batch?
  • In reply to Weiming Sun:

    Maybe loading data from csv's would be possible with a "soft phase". I have been through the demo for soft phases but have never seen one of these implemented in the wild. Another option to get that volume of data into a recipe would be through the DeltaV campaign manager and creating custom formulas for each batch. From a data integrity perspective I think it would be best to have whatever is creating your csv file write directly into DeltaV if possible.