What is the recommended way to create programs on groov EPIC that access strategy variables?


#1

We have a shell license for our groov, and we would like to embed a program on the groov itself that is capable of accessing and updating strategy variable values and accessing IO Point values.

The only software development kit that I can find from OPTO22 that advertises that it is able to access strategy variables is the .NET Controller Software Development Kit for groov EPIC and SNAP PAC. I cannot find a C++ or Java version of this SDK.

Since Mono does not appear to be installed on the groov, and this SDK does not have a C++ or Java version that we can run on a groov, what is the recommended way build and run programs on a groov that can access strategy variables?

  1. To use the C or C++ compiler on the groov, we would need to have a C++ version of the PAC_DEV_CONTROLLER SDK, but does this exist? We could also write our app in Java. (The groov supports Java.) But I cannot find a Java version of this SDK either :frowning:
  2. We could write this app in C#, but the groov does not appear to have Mono installed. Can Mono be installed on a groov? If so, what are the things we should take into consideration prior to installing Mono of a groov?

#2

There is a C++ OptoMMP SDK that works with the EPIC, where any non-IO variables you want to access could be written into scratchpad areas by a PAC strategy, or you could use the REST APIs. There is the Manage REST API for IO, along with the PAC Control API for variables, and groov View REST API for data-store tags – all of which access data over https and are compatible with most programming languages like Python, Java, or even via curl in bash scripts, depending on what you want to do.


#3

And Python examples in the Forums;


#4

We have a legacy application that accessed variable values and digital settings using the now outdated “HostWords” interface. We are writing an adapter for this protocol so that we can connect to a groov so we can have this legacy app communicate to either an LCM4, PAC SIM, or groov without changing the legacy app. The app loops through a list of variables and io points to get values. Values are stored in trend log files and are also used to update a GUI.

The REST API looks very promising – is there a way we can set up PACSIM so that it has a REST API? Or do we need a real groov for that?

I would rather not mess with the scratchpad for this – it would mean adding logic to move variable values back and forth, and the indexes used would need to be scrupulously maintained in order to make sure that both side are referring to the same variable.