Skip to content

sulmar/WZL.Modbus

Repository files navigation

Komunikacja z Modbus i SPCI w C#

  • Kod źródłowy powstał w ramach szkolenia dla Wojskowych Zakładów Lotniczych nr 1 w Łodzi

Sprzęt

Opis Model Adres Dokumentacja
moduł wyjść binarnych SM4 2 link
miernik temperatury N30U 3 link
miernik natężenia prądu N30U 4 link
miernik napięcia stałego N30H 5 link
wyjścia analogowe S4AO 6 link
miernik parametrów sieci N10 7 link
konwerter Ethernet RS 485 PD8 10.1.1.122:502 link
zasilacz PS9040 10.1.1.124:5025 link

Sprzęt

Szkic aplikacji

wykonany w Balsamiq

Szkic

Realizacja

App

Przydatne narzędzia

  • eCon - aplikacja do konfigurowania urządzeń firmy Lumel
  • PD8Config - aplikacja do konfigurowania konwertera PD8
  • Modbus Simulator - symulator modbusa w trybie slave
  • PuTTY - klient TCP, COM

Biblioteki

PM> Install-Package NModbus4

Konfiguracja

PD8

  1. Uruchom aplikację PD8Config. Aplikacja powinna odnaleźć konwertery w sieci. PD8Config

  2. Ustaw adres IP PD8Config

  3. Wybierz opcję Otwórz stronę WWW

  4. Wybierz tryb Industrial Automation - umożliwia komunikację po TCP. Dopuszcza wielu klientów typu master. Konfiguracja

  5. Ustaw parametry transmisji Konfiguracja

W jaki sposób wyświetlić nowy pomiar?

  1. Utwórz interfejs w projekcie WZL.Services
  2. Utwórz implementację usługi np. w WZL.LumelServices
  3. Przejdź do projektu WZL.PowerUnit.WPFClient
  4. Utwórz właściwość, która będzie przechowywała pomiar
  5. Utwórz zmienną tego interfejsu w ViewModel PowerSupplierViewModel
  6. Utwórz instancję usługi w PowerSupplierViewModel
  7. Wywołaj metodę do pobrania pomiaru i przypisz ją do utworzonej właściwości
  8. W widoku PowerSupplierView umieść np. TextBox i zbinduj do właściwości z pomiarem

W jaki sposób zapisać pomiar do bazy danych?

  1. Utwórz klasę w modelu WZL.PowerUnit.Models
  2. Dodak właściwość Id
  3. Dodaj do kontekstu obsługę klasy w WZL.PowerUnit.DAL
  4. Utwórz interfejs w WZL.Services
  5. Utwórz implementację interfejsu do zapisu do bazy danych w WZL.PowerUnit.DAL
  6. Utwórz komendę np. SaveThreePhaseMeasureCommand do zapisu w klasie ViewModel np. PowerSupplierViewModel
  7. Dodaj wywołanie metody zapisu
  8. Podepnij komendę do przycisku w widoku PowerSupplierView

Projekty

  • WZL.PowerUnit.WPFClient - aplikacja WPF (Views i ViewModels)
  • WZL.Services - interfejsy
  • WZL.LumelServices - implementacja komunikacji z urządzeniami firmy Lumel
  • WZL.EAServices - implementacja komunikacji z zasilaczem EA
  • WZL.MockServices - implementacja udawanych urządzeń