Simulador de varios Esclavos con ModBus con un solo Arduino

La mayoría de las librerías de Arduino están pensadas para que trabaje como maestro o como esclavo, por otra parte es casí normal. En PC si existen alternativas como ModRSim2 o Modbus slave. Así que no te queda más remedio que escribir tu propio programa, y ahí todo depende de tu habilidad como programador.

Tendrías que crear una "lista" de dispositivos a emular guardando la información del id, de las funciones que soporta y las direcciones de los registros (más que las direcciones en sí, la cantidad de registros).

Cuando recibas una "trama" tendrás que ver si el id del dispositivo está en la lista, analizar si la función es soportada y por último validar datos.

Aquí entra el problema de la memoria. No podrás simular los registros de datos por la escasa memoria de Arduino, así que lo lógico sería que los datos también fueran "emulados". Por ejemplo, si pides leer los registros del 10 al 20 devolver valores del 1 al 10.

Mi recomendación es que busques una libreria como Simple-Modbus la analices, veas como funciona y con la ayuda de la guia de modbus modifiques a tu gusto.