Udviklingsværktøjer

Modbus Digital Twin

Modbus Digital Twin simulerer TCP- og RTU-enheder, mens I udvikler og tester jeres software. I kan oprette registre og coils og bestemme, hvordan enhederne skal svare, før det fysiske udstyr er til rådighed.

Simulering af Modbus-enheder Udvikling og test uden fysisk udstyr Fysisk enhed Sensor PLC HMI Digital Twin Simulator Modbus TCP / RTU Virtuel enhed Sensor PLC HMI Hardware Simuleringsmotor Software
Anvendelse

Test af Modbus-klienten, før udstyret tilsluttes

Udvikling uden fysisk udstyr

Arbejdet med integrationen kan begynde, før udstyret er til rådighed. Simulerede enheder fungerer som modpart, mens I udvikler og afprøver jeres Modbus-klient.

Kontrollerede testforløb

Både normale driftsforløb og fejlsituationer kan gentages under kontrollerede forhold. Det gælder også timeouts og grænseværdier, som kan være svære at genskabe med fysisk udstyr.

Undervisning og træning

Simulerede Modbus-enheder giver mulighed for at øve konfiguration og fejlfinding uden at ændre på produktionsudstyret.

Integration med CI/CD

Simulerede enheder kan indgå i automatiserede regressionstest, når fysisk udstyr ikke er tilgængeligt i buildmiljøet.

Understøttede protokoller

TCP, RTU og Modbus-datamodellen

Modbus TCP

De simulerede enheder kan modtage forbindelser fra flere klienter på et Ethernet-netværk.

  • Standardport 502
  • Flere samtidige klientforbindelser
  • Sporing af transaktions-ID
  • Understøttelse af enheds-ID

Modbus RTU

Den serielle kommunikation har automatisk CRC-beregning og portindstillinger, som I selv kan vælge.

  • Konfigurerbar baudrate
  • Indstilling af paritet og stopbit
  • Automatisk CRC-16-beregning
  • Tidsinterval mellem rammer

Funktionskoder

Klienten kan læse digitale indgange og registre samt læse og skrive coils og holdingregistre. Simulatoren understøtter blandt andet disse operationer:

  • Read Coils (0x01)
  • Read Discrete Inputs (0x02)
  • Read Holding Registers (0x03)
  • Read Input Registers (0x04)
  • Write Single Coil (0x05)
  • Write Multiple Registers (0x10)

Hukommelsesmodel

I bestemmer størrelsen på de fire Modbus-dataområder og deres startværdier. Værdierne kan opdateres, mens simuleringen kører.

  • Op til 65.536 coils
  • Op til 65.536 digitale indgange
  • Op til 65.536 holdingregistre
  • Op til 65.536 inputregistre
Kodeeksempler

Eksempler på opsætning af simulerede enheder

TCP-enhed
using ULTRAMEGA.Modbus.DTS;

// Create TCP device on port 502
var device = ModbusDeviceFactory.CreateTcpDevice(
    deviceId: 1,
    port: 502
);

// Set initial values
device.SetHoldingRegister(0, 1234);
device.SetCoil(0, true);

// Start the device
await device.StartAsync();

// Device now responds to Modbus TCP requests
Console.WriteLine("Device running on port 502");
Console.ReadKey();
await device.StopAsync();
RTU-enhed
// Create RTU device with serial settings
var device = new ModbusRtuDevice(
    deviceId: 2,
    portName: "COM3",
    baudRate: 9600,
    parity: Parity.None,
    dataBits: 8,
    stopBits: StopBits.One
);

// Configure timeouts
device.ResponseTimeout = TimeSpan.FromMilliseconds(500);

// Start the device
await device.StartAsync();
Egen simulering
public class TemperatureSimulator : ModbusTcpDevice
{
    private Random random = new Random();

    public override void SimulateData()
    {
        // Simulate 10 temperature sensors
        for (int i = 0; i < 10; i++)
        {
            float temp = 20 + (float)(random.NextDouble() * 15);
            SetHoldingRegister(i, (ushort)(temp * 10));

            // Set alarm if temperature exceeds threshold
            SetCoil(i + 100, temp > 30);
        }

        base.SimulateData();
    }
}
Tekniske specifikationer

Ydelse og systemkrav

Ydelse

  • Forespørgsler: 1.000+/sek.
  • Hukommelse: < 10 MB
  • Trådsikker: Ja

Systemkrav

  • Runtime: .NET 6+
  • Operativsystem: Windows, Linux
  • Selvstændig applikation

Standarder

  • Modbus TCP
  • Modbus RTU
  • Modbus-fejlsvar

Tallene stammer fra interne målinger og afhænger af computeren og omfanget af simuleringen. Simuleringens registerkort, timing og adfærd skal kontrolleres i forhold til den konkrete enhed. Den afsluttende test skal fortsat udføres med det fysiske udstyr.

Fortæl os om jeres Modbus-test

Fortæl os, hvilke enheder, registerkort og testforløb I har brug for at simulere. Så gennemgår vi muligheder, licens og integration med jeres testmiljø.