OPTA + Modbus TCP/IP

Hello
I'm trying to connect my OPTA through the Modbus TCP/IP with the FactoryIO software to do some simulations/demonstrations, but I'm not being successful.
The same IP that I define in the programming I also place within the software to connect to that same IP, but all attempts were unsuccessful.
Below I have the programming that I am testing and I believe that even using a different library than the conventional one it should work.
Has anyone managed to make a TCP/IP connection with OPTA to help me?

/*
  Web client

 This sketch connects to a website (http://www.google.com)
 using an Arduino Wiznet Ethernet shield.

 Circuit:
 * Ethernet shield attached to pins 10, 11, 12, 13

 created 18 Dec 2009
 by David A. Mellis
 modified 9 Apr 2012
 by Tom Igoe, based on work by Adrian McEwen

 */

#include <PortentaEthernet.h>
#include <Ethernet.h>
#include <SPI.h>

#include "MgsModbus.h" //Esta libreria se encuentra aqui en github, la tienes que incluir en el proyecto

MgsModbus Mb;  // Creamos una instancia de la clase MgsModbus llamada 'Mb'


byte mac[] = {0x90, 0xA2, 0xDA, 0x0E, 0x94, 0xB5};  // Dirección MAC para la interfaz Ethernet del Arduino
IPAddress ip(192, 168, 1, 100);  // Configuramos la dirección IP del Arduino
IPAddress gateway(192, 168, 1, 1);  // Configuramos la dirección del gateway
IPAddress subnet(255, 255, 255, 0);  // Configuramos la máscara de subred

int pinEntrada = A0;  // Definimos el pin 2 como una entrada digital


void setup() {
  // Configuramos los pines D3-D10 como salidas digitales


  Ethernet.begin(mac, ip, gateway, subnet);  // Iniciamos la conexión Ethernet
  // Configuramos los pines A1-A4 como una salida digital
  pinMode(D0, OUTPUT);  

}

void loop() {
  Mb.MbData[0] = 0;  // Inicializamos un registro Modbus con un valor de 0.

  while (true) {
    // Leemos y escribimos valores en función de bits de registros Modbus
    digitalWrite(A1, bitRead(Mb.GetBit(0x02), 0));  // Enciende/apaga la banda (factory io) en función del registro Modbus 0x02
    digitalWrite(4, bitRead(Mb.GetBit(0x04), 0));  // Enciende/apaga el indicador de señal digital (fisico) en función del registro Modbus 0x04
    

    int entradaValor = digitalRead(pinEntrada);  // Leemos el valor del pin 2

   

    if (entradaValor == HIGH) {  // Si se presiona el botón externo, activamos la banda y el indicador de señal digital
      Mb.SetBit(0x04, true);  // Establecemos el bit en el registro Modbus 0x04 en verdadero
      Mb.SetBit(0x02, true);  // Establecemos el bit en el registro Modbus 0x02 en verdadero
      digitalWrite(D0, HIGH);  // Encendemos el pin A2
    } else {
      digitalWrite(D0, LOW);  // Apagamos el pin A2
      Mb.SetBit(0x04, false);  // Establecemos el bit en el registro Modbus 0x04 en falso
    }


   

    Mb.MbsRun();  // Procesamos las solicitudes entrantes del maestro Modbus.
  }
}