Modbus Emulator
Jest to aplikacja napisana w ramach zajęć z Informatycznych Systemów Sterowania. Program jest emulatorem urządzeń master i slave protokołu Modbus komunikujących się za pomocą połączenia szeregowego (porty szeregowe RS-232).
Aplikacja jest napisana w C# i korzysta z Windows Forms oraz klasy SerialPort (która załatwia całą komunikację po porcie COM). Całość implementacji bazuje na specyfikacji Modbusa znajdującej się tutaj. Oprócz tego podczas pisania wykorzystywałem również kilka aplikacji:
- Virtual Serial Ports Emulator (VSPE) – aplikacja emulująca pary portów COM,
- Modbus Poll – aplikacja emulująca urządzenie Master dla protokołu Modbus,
- Modbus Slave – aplikacja emulująca urządzenie Slave dla protokołu Modbus.
Dwie ostatnie aplikacje posłużyły mi jako referencja implementacji protokołu, ponieważ sama specyfikacja nie zawiera informacji o sposobie liczenia CRC i LRC, więc trzeba było do tego dojść metodą prób, błędów i Google.
Program obsługuje sześć pierwszych, publicznych funkcji protokołu Modbus dla obu urządzeń (Master i Slave) przesyłając dane w trybie ASCII lub RTU. Urządzenie Slave posiada podgląd rejestrów Coils, Discrete Inputs, Input Registers oraz Holding Registers, po 4096 sztuk każdy (wszystkie Read-Only, generowane na podstawie seed = 0). Aplikacja posiada również podgląd wysyłanych i otrzymywanych ramek w postaci logu transmisji.
Program wraz z kodem źródłowym znajdują się tutaj (wymaga .NET Framework 2.0) .