Is it possible to program GROOV with Node-red and at the same time with the CODESYS runtime (and other questions)?

Hello everyone,
I am completely new to OPTO22 systems (and to this forum). So if my questions are basic (or in the wrong place), I would be more than happy if you could redirect me to the correct documentation where I can find my answers :blush:

  1. Is it possible to program GROOV with Node-red and at the same time with the CODESYS runtime (so basically run Node-red + program in structured text using IEC-61131-3 programming language for example)?

  2. If this is indeed possible – can those two programs communicate with each other (via some file’s if the GROOV’s controllers are based on linux)?

  • I am mainly asking this because programming in CODESYS runtime is more “industry robust” and I would use Node-red for only Cloud communication.
  1. Since GROOV controllers are based on Linux, can I install Anydesk for remote access and updates of software?
  • If no – how software updates are resolved? If my installation is somewhere on the other side of the country, do I need to “manually” update the software (for example using remote desktop in the local network and rewrite the program from there)?
  1. I couldn’t find any GROOV controller that has built in RS485 serial bus and thus for Modbus RTU capabilities. I could find only expansion modules. Is there any GROOV controller that has built-in RS485 and Modbus RTU capabilities (best-case scenario is something based of GROOV-AR1-BASE)?

If my questions are too wide and the answers differ based on which GROOV controller I choose – I am currently thinking about GROOV-AR1-BASE for IoT Edge computing.

Thank you in regards for any answers!
Jakub Szlaur

1 Like

First I want to welcome you to Opto 22. I will provide information to each point that I have answer for.

  1. Yes, you can run both Node Red and the Codesys runtime Engine at the same time.

  2. Yes as well. They can communicate. Node Red has an OPC-UA Node, and Codesys has an OPC-UA Server on board. This would allow for any tags that are exposed via the OPC-UA server on Codesys to be accessible in Node Red.
    To your bullet point, this is exactly the use case we are seeing with Codesys and Node Red. Codesys for control, and Node Red to move data to cloud/web/database solutions.

  3. I will have to defer on this one.

  4. If you are using Codesys, you would have to use our GRV-CSERI-4 for any serial communications. If you wanted though, you could potentially use a USB to serial with Node Red and pass the data into Codesys per the above method

to your closing statement, the groov AR1 does not run Codesys, so if you need control, the EPIC will be your best option.


Thank you for such a quick answers!

  • So if I would like to communicate via Modbus RTU (using Codesys) I would need to purchase GROOV-EPIC with the GRV-CSERi-4 extension right?

  • Could I use USB to serial with Node Red with any Groove controllers or are there any exceptions?

Hi Jakub.

Thanks @greichert for the Codesys insight.

Your point 3.
In short no, but, lets understand why… EPIC does not have a desktop! We don’t run a full Linux distro with a heavy desktop environment. It is all web based. This means you only need a web browser on a PC, tablet or phone to commission, install or debug any of the features in groov Manage.
The front touch screen on the EPIC is just a browser, so again, there is nothing to ‘remote’ into.
To your point about software updates, you can of course do them over your browser.
If you need remote access ‘on the other side of the country’ use of EPICs built in VPN is what our customers are setting up, using and loving.
The VPN gives secure access to the EPIC wherever it is and there are no IT rules or router changes required, because the EPIC VPN is outbound.
So no, you don’t need to set up remote access to an on-site PC, you can connect directly with the EPIC over the VPN and apply any software updates or program changes directly from your PC.

To Garrick’s closing remark, the EPIC can support 4 serial modules each with 4 serial ports, so Codesys can access that data directly.

1 Like
  • Oh wow that’s awesome! I will look into EPIC’s built in VPN! :slight_smile:

  • Does this feature also come with the GROOV-AR1-BASE? Because I am mainly looking for data acquisition capabilities. And only occasionally we would need to control systems via the GROOV-EPIC.

Or as I am thinking about it … Can you buy GROOV-EPIC without any I/O and only with Ethernet and USB ports?

VPN is not included on the AR1.
You can buy the EPIC with a Opto22 - GRV-EPIC-CHS0 -  <em>groov</em> EPIC mounting chassis for processor and power supply only (no I/O)
But keep in mind that Codesys can not directly access the USB to serial adapters, so you will need to use Node-RED to read the serial data and pass it onto Codesys as Garrick mentioned.

1 Like

Yes this is exactly what I would want :slight_smile: Thanks again!

Which OPC-UA package would I install to the node palette for communication between codesys and node red?

I am using the OPC-UA Node v0.2.244, we do not work with the latest node, so you will want to follow the steps in this forum post.

1 Like

I have been using Epic with Codesys runtime and Nodered to push the data to an InfluxDB database for years with no issues.

One thing to note using the OPC-UA nodes on epic. They have quite a few dependencies and I have had some issues from time to time keeping them up to date because the Nodered updater will fail on the OPC-UA update. To solve this, I run a separate server that I runs Nodered. I subscribe to the OPC topics that I want to log and it seems to be working solid for a few years now.

1 Like

I managed to install v0.2.244, I am now trying to read a variable and am a little stuck. What I understand is you need an OpcUa - item going into an OpcUa - Client node. I have populated the Opc-Ua -Client with an endpoint that is the same as the server URL I have for the OPC UA server going to GroovView (GroovView is communicating no problem).

I have tested the client node and it is failing to connect. Is there a security policy or mode or should i check use credentials for the server? Should localhost:4840 not be the specified endpoint in the client node?

The OpcUA - Item node seems to require a namespace and an identifier to find the variable in the server. Are these user defined or are they defined as soon as you make them available to the OpcUa server? In either case how do you define/find them?