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.
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).
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:
- 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
Brak komentarzy.