Powrót do strony głównej

DSL do testowania HART w SQL i LabVIEW

Artykuł opisuje architekturę systemu do testowania czujników HART na bazie tabelkowego DSL w SQL i LabVIEW. Zaimplementowano pętle, 100+ operacji i edytor testów dla produkcji. Podejście zapewnia elastyczność bez abstrakcji OOP.

Elastyczne testy czujników HART: SQL-DSL + LabVIEW
Advertisement 728x90

Tablicowy DSL do testowania czujników HART w systemach produkcyjnych

Tworzenie systemu do kalibracji i testowania inteligentnych czujników z protokołem HART wymaga obsługi różnorodnego sprzętu: generatorów sygnałów, komór klimatycznych, woltomierzy, modemów HART i przełączników. Protokół HART działa w trybie punkt-punkt na pętli prądowej 4-20 mA, umożliwiając kalibrację, konfigurację i wymianę danych. Testy obejmują liniaryzację charakterystyk, cykle po ciśnieniu, temperaturze, zasilaniu oraz sesje HART. Architektura klient-serwer oparta na czystym SQL z tablicowym językiem skryptowym pozwoliła dwuosobowemu zespołowi wdrożyć edytowalne testy dla kilku stanowisk.

Dekompozycja systemu na podsystemy

System podzielono na kluczowe komponenty:

  • Zarządzanie sprzętem za pomocą LabVIEW.
  • Programowanie testów w tablicowym DSL.
  • Przetwarzanie danych i obliczenia w bazie danych.
  • Monitorowanie stanowisk w czasie rzeczywistym w stylu SCADA.

LabVIEW wybrano ze względu na gotowe sterowniki dla interfejsów USB, GPIB, TCP/IP, RS232. Klient na stanowisku testowym działa jako interpreter poleceń z bazy danych, unikając abstrakcji obiektowych. Logika testowania wyprowadzona do skryptów serwerowych minimalizuje złożoność diagramów LabVIEW.

Google AdInline article slot

Tablicowy język skryptowy: struktura i polecenia

DSL zaimplementowano jako tabele bazy danych z wykonaniem liniowym i cyklicznym. Każda wiersz to operacja z dwoma parametrami, co ułatwia edycję. Obsługiwane jest pośrednie adresowanie w cyklach.

Kluczowe możliwości DSL:

  • Liniowy przepływ operacji.
  • Cykle po sygnałach (ciśnienie, temperatura, kanały).
  • Cykle timerowe.
  • Inicjalizacja statycznych modeli sygnałów.
  • Ponad 100 operacji dla wymiany HART, pomiarów i zapisu danych.

Cykle zaimplementowano w procedurach składowanych SQL: oddzielne tabele przechowują parametry (początek, koniec, krok, wartość bieżąca, aktywny zestaw czujników). Polecenia INIT_LOOP i CHECK_END_LOOP sterują wykonaniem. Dla cykli po sygnałach dodano tabelę z modyfikatorami (pre/post-increment).

Google AdInline article slot

Przykład logiki cyklu:

  • Wczytanie modelu sygnału z bazy danych.
  • Inicjalizacja cyklu z parametrami.
  • Wykonanie operacji do warunku wyjścia.
  • Przejście do następnego polecenia po cyklu.

Realizacja cykli i optymalizacja

Eksperymenty z procedurami SQL potwierdziły skuteczność cykli w bazie danych. Parametry cykli (wartość początkowa/końcowa, krok) przechowywane są w tabelach, umożliwiając dynamiczne generowanie testów.

Typy cykli:

Google AdInline article slot
  • Ogólny cykl: po zmiennej dla zestawu czujników na stanowisku.
  • Cykl po ciśnieniu: z krokiem i granicami sygnału.
  • Cykl po temperaturze: inicjalizacja komory.
  • Cykl timerowy: powtarzanie operacji do upływu czasu.

Wprowadzenie cykli zmniejszyło objętość testów niemal o połowę. Operacje dostosowano: zależne od iteracji cyklu lub niezależne (dla timerów).

Tablicowy edytor testów automatyzuje numerację wierszy, odwołania do poleceń, komentarze i korektę cykli. Procedura składowana "kompilacja" zastępuje stary test nowym. Obsługa kopiowania i interaktywnej podpowiedzi przyspiesza rozwój. Stworzono ponad 100 programów do produkcji i okresowych prób czujników 4-20 mA/HART.

Integracja ze sprzętem i bazą danych

Klient LabVIEW pobiera skrypt z bazy danych i interpretuje polecenia sekwencyjnie. Długie operacje (cykle sygnałów) nie wymagają wysokiej prędkości. Surowe dane zapisywane są w bazie do obliczeń i generowania protokołów.

Zalety podejścia:

  • Edycja testów bez rekompilacji klienta.
  • Centralne przechowywanie skryptów i danych.
  • Skalowalność na dziesiątki stanowisk.
  • Minimalny zespół deweloperski.

Co najważniejsze

  • Tablicowy DSL na SQL z cyklami redukuje kod testów o połowę przy pełnej elastyczności.
  • LabVIEW jako interpreter poleceń z bazy unika komplikacji obiektowych.
  • Dwa parametry na operację dla ponad 100 poleceń testowania HART.
  • Automatyczna korekta odwołań i numeracji w procedurach składowanych.
  • Obsługa monitorowania stanowisk w czasie rzeczywistym przez interfejs w stylu SCADA.

— Editorial Team

Advertisement 728x90

Czytaj dalej