Collect data from multiple PLCs on different networks

I'm working on a project which the purpose is to collect data from a steering unit similar to a PLC. This unit is steering a fountain and i am using Node-RED to collect data from it. I can receive data from it if Node-RED and the steering unit is on the same network using Modbus Flex Getter and opening port 502 in the router. My problem is that i need to be able to collect the data from multiple fountains that have different networks and routers. How can i have one Node-RED flow collecting data from multiple steering units on different networks using Modbus TCP/IP?

If each fountain is connected to a network and have access to internet somehow, you could maybe solve it by using MQTT and a public MQTT cloud solution

Imagine you have on each network installed a RPi also running Node-RED, responsible for collecting data from the fountain, then publish it to the MQTT cloud. Repeat this for all fountains and their networks. Then connect your main Node-RED solution to the same cloud and you should receive data from all connected fountains

Do you also need to be able to control the fountains from remote?

Thanks for the answear. I think this has to be the solution!