We are a small company and looking to make larger plants that will contain many machines to be operated simultaneously, the process will be completely automatic however some problems can arise such as a valve getting stuck, hoses getting plugged, that require the operator to intervene.
There could be up to 40 machines or more and 1-4 operators monitoring the process.
One of the solutions I thought of was having a summary page with lights that indicate if there are any problems with a process and then you could go to a “dynamic page” enter a number in an input box and all the tags on the page will be tied to a pointer that goes to a DO or AO point. Problem with this idea is that I would need an unknown amount of these pages for the operators to use and groov View pages from what I know cannot be created on the fly. It would also just be better if I could setup a few parameters for the summary page and itll make all associated indicator lights and buttons per machine on strategy run, this way I could make a setup that’d work for all plants instead of making a unique groov View setup for each one.
If there are no HMIs with this capability and no work arounds can get this same effect is it possible to somehow use optommp to make our own HMI that can satisfy these requirements? If so how would I set that up, would I need a middle man like Node-RED to send messages back and forth between our groov EPIC and server or could I have the server speak directly to the groov EPIC?
I have some thoughts on this (it’s a pretty common question of groov View and other HMIs)… But before I jump in, I think both @philip and @grant1 have some experience with this sort of thing…
This strikes me as a job for Ignition. I don’t have much experience with Perspective, but Vision would work really well for this application I think. It’s an up-front investment, but probably worth it.
If all you’re doing is displaying status screens, you could probably roll your own with the PAC Control REST API if you don’t need crazy fast refresh times. You could build in some tag writes into a custom HMI this way, but it’s probably more trouble than it’s worth.
For a different approach if you’re using Groov EPIC or RIO controllers… you could push tags to MQTT and use something like Grafana for building realtime status screens. You could also use Node-RED on Groov to push tags to something like InfluxDB so that you could not only display realtime status, but also some history in Grafana. Grafana makes it easy to have dashboard variables that can be used to alter your data retrieval queries.
Sorry I probably wasn’t too descriptive of what I wanted, I also want control for cases when the status is red to give the operator the chance to cut / disable parts of the process so something can be done to fix the issue including quick response times ~1s response to hitting a button turning off a pump, etc
Long time feature request here for PAC Display and for groov view - I just don’t think it will ever happen.
If groov view allowed the index field to be bound to a user session variable, then what you want would be possible for multiple users. For single user operation, then you can have an index point in the controller, that then populates HMI variables for a single field, tedious, but less so than building 40 screens.
I am with @varland on looking at Ignition, which can do what you want (perspective or vision). When considering labor costs, it is cheaper than groov and I frequently steer clients to Ignition that have larger HMI projects and respectively decline to do work for those that want to build 40 screens in groov - complete insanity and can cause wrist injury - and they will inevitable want to add or move tags which is mind numbing work.
The general steps to build this in Ignition:
Make sure your tags have the permissions set on them in PAC Project
Configure your EPIC with the built-in OPC Server
Connect your EPICs to the Ignition gateway using the EPIC OPC server.
Create a UDT (user defined type) that represents your machine tags. This UDT would have a parameter for the machine number or EPIC OPC server name or both depending on how many machines you have per EPIC devices.
Create instances of these UDTs in the Ignition tag browser (they have a tool in Ignition to create them all at the same time provided you used sequential names for things- 1, 2, 3, etc.).
Create one window with your machine HMI and bind each tag using “indirect binding” where you can use another tag/parameter to be part of the instance name (Machine1, Machine2, etc.). The tags can be writable too.
A good Ignition integrator could have you up and running in a day for a handful of points in the machine.
Also, run Ignition on a real server - don’t run it on an EPIC if you can avoid it.