podsystem wyzwalania n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Podsystem wyzwalania PowerPoint Presentation
Download Presentation
Podsystem wyzwalania

Loading in 2 Seconds...

play fullscreen
1 / 31

Podsystem wyzwalania - PowerPoint PPT Presentation


  • 121 Views
  • Uploaded on

Podsystem wyzwalania. Sterowanie wyzwalaniem akcji urządzenia. Określenia podstawowe:. Wszystkie rodzaje akcji współczesnych urządzeń pomiarowych mogą być synchronizowane zdarzeniami zewnętrznymi lub wewnętrznymi. Pod pojęciem akcji rozumie się rozpoczęcie akwizycji lub generacji sygnału.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Podsystem wyzwalania' - weylin


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
podsystem wyzwalania

Podsystem wyzwalania

Sterowanie wyzwalaniem akcji urządzenia

okre lenia podstawowe
Określenia podstawowe:

Wszystkie rodzaje akcji współczesnych urządzeń pomiarowych mogą być synchronizowane zdarzeniami zewnętrznymi lub wewnętrznymi.

Pod pojęciem akcji rozumie się rozpoczęcie akwizycji lub generacji sygnału.

Synchronizację akcji urządzenia z zdarzeniami nazywa się ogólnie wyzwoleniem (triggering).

Polecenia odpowiedzialne za ustawienie parametrów wyzwolenia akcji urządzenia są zgrupowane w podsystemie TRIGger systemu poleceń SCPI.

podstawowy model podsystemu trigger
Podstawowy model podsystemu TRIGger :

IDLE - Stan spoczynkowy (obowiązkowy)

INITiated – stan zainicjalizowania (opcjonalny)

ARM – stan oczekiwania na uzbrojenie (dowolna liczba stanów, opcjonalny)

TRIGger – stan oczekiwania na wyzwolenie (obowiązkowy)

System musi przejść przez wszystkie stany , aby zainicjować akcję urządzenia.

dzia anie podsystemu trigger
Działanie podsystemu TRIGger :

Urządzenie pozostaje w stanie IDLE do momentu wykonania polecenia INITiate.

System TRIGger przechodzi do stanu następnego w sekwencji zastosowanych stanów.

W stanie ARM oczekuje na zdarzenie pozwalające mu wyjść z tego stanu i przejść do następnego.

Ostatnim ze stanów oczekujących na zdarzenie jest stan TRIGger.

Każde wyjście w dół lub w górę z danego stanu generuje sygnał zdarzenia, który może być wykorzystany do sterowania urządzeniem.

Sygnał wyjścia w dół ze stanu TRIGger jest wykorzystany do zainicjowania akcji urządzenia.

nazwy zasob w dotycz cych poszczeg lnych warstw sekwencji wyzwalania
Nazwy zasobów dotyczących poszczególnych warstw sekwencji wyzwalania :

Prosty system wyzwalania jest sekwencją pokazanych stanów (warstw), spośród których tylko warstwa ARM może mieć kilka instancji.

Zasoby funkcjonalne określające sposób działania warstw są związane wyłącznie z warstwami ARM oraz TRIGger.

W poleceniach nazwa danego zasobu jest poprzedzona nazwą warstwy do, której on należy , np.:

ARM:LAYer2 – poprzedza zasoby warstwy ARM nr 2

ARM:LAYer1 – poprzedza zasoby warstwy ARM nr 1

ARM – poprzedza zasoby warstwy ARM nr 1; nr 1 jest domyślnym określeniem i słowo LAYer1 można pominąć.

TRIGger – poprzedza nazwę zasobu warstwy TRIGger

System wyzwalania może składać się z kilku równoległych sekwencji. Wówczas w nazwie zasobu występuje dodatkowo nazwa sekwencji:

ARM:SEQuence3:LAYer2 – zasób warstwy ARM nr 2 sekwencji 3 systemu wyzwalania

ARM:SEQuence1:LAYer1 – zasób warstwy ARM nr 1 sekwencji1; równoważne określeniu ARM

stan idle oraz initiated
Stan IDLE oraz INITiated :

Podsystem wyzwalania może wyjść ze stanu IDLE tylko na skutek polecenia:

INITate[:IMMediate ]   lub  INITiate:CONTinous  ON

Dopóki podsystem TRIGger jest w stanie spoczynkowym wszelkie zdarzenia synchronizujące są ignorowane. Akcje urządzenia w sensie rozpoczęcia akwizycji danych czy generacji nowego sygnału są zablokowane.

Po zainicjowaniu system przechodzi natychmiast przez stan INITiated do najwyższej warstwy ARM:LAYer.

Odwrotne przejście jest uzależnione od sposobu zainicjowania podsystemu TRIGger. W pracy ciągłej (INIT:CONT ON) następuje powrót sterowania do najwyższej warstwy ARM.

Polecenie INIT jest poleceniem nakładkowym. Wyjście ze stanu INITiated ustawia flagę NOPF wykonywania operacji natomiast powrót do stanu INITiated zeruje ją wskazując zakończenie operacji.

stan oczekiwania na zdarzenie arm i trigger
Stan oczekiwania na zdarzenie (ARM i TRIGger) :
  • Programowalne zasoby każdej warstwy ARM oraz TRIGger:
    • Źródło zdarzenia
    • Charakterystyka zdarzenia
    • Liczba zdarzeń po których nastąpi wyjście z danej warstwy
    • Opóźnienie pomiędzy zdarzeniem i wyjściem z warstwy
    • Liczba powtórzeń akcji danej warstwy.
  • Przyrząd nie musi implementować wszystkich cech funkcjonalnych warstw oczekiwania na zdarzenie.
kwalifikacje sygna u wyzwolenia
Kwalifikacje sygnału wyzwolenia :

Określenie zakresu możliwości sygnału wyzwalającego dotyczy praktycznie sygnałów analogowych (źródło zdarzeń INT, EXT lub LINE).

r d o zdarzenia arm i trigger
Źródło zdarzenia (ARM i TRIGger) :

TRIGger:SOURce EXTernal – zdarzenie jest generowane przez sygnał zewnętrzny doprowadzony do specjalnego gniazda.

TRIGger:LEVel 4.5 – zdarzenie wystąpi , gdy sygnał wejściowy przekroczy poziom 4.5V.

ARM:LAYer2:SOURce INT

ARM:LAYer2:LEVel 5.0

ARM:LAYer2:SLOPe POS

ARM:LAYer2: HYSTeresis 0.2– polecenia ustawiające źródło wyzwolenia i parametry charakteryzujące zdarzenie dla warstwy ARM nr 2.

polecenia signal i immediate arm i trigger
Polecenia SIGNal i IMMediate (ARM i TRIGger) :

Polecenia te powodują jednorazowe pominięcie oczekiwania na zdarzenie w warstwie, do której zostanie skierowane.

Różnica pomiędzy nimi polega na tym, że IMMediate bocznikuje licznik ECOUnt oraz DELay, powodując natychmiastowe wyjście z warstwy.

Polecenie musi wystąpić w momencie oczekiwania na zdarzenie w danej warstwie. Jeśli wystąpi w innych warunkach jest ignorowane i zgłaszany jest błąd.

TRIGger:SIGnal – polecenie zbocznikuje detektor zdarzeń warstwy TRIGger.

TRIGger:IMMediate - polecenie zbocznikuje detektor zdarzeń warstwy TRIGger i spowoduje natychmiastowe wyjście z niej a więc także nastąpi natychmiastowy start akcji urządzenia.

delay oraz ecount arm i trigger
DElay oraz ECOunt (ARM i TRIGger) :

Zasób DELay pozwala opóźnić wyjście z warstwy w stosunku do zdarzenia o podany okres czasu (domyślnie =0):

TRIGger:DELay 0.05 – wyjście z warstwy trigger nastąpi z opóźnieniem 50ms w stosunku do wykrytego zdarzenia.

Zasób ECOunt określa po ilu zaistniałych zdarzeniach ma nastąpić wyjście z warstwy (domyślnie =1):

ARM:SOURce EXT

ARM:SLOPe POS

ARM:ECOunt 10 – wyjście z warstwy ARM w dół nastąpi po 10 zdarzeniach, np. po 10-tym narastającym zboczu zewnętrznego sygnału wyzwalającego.

count arm i trigger
COUNt (ARM i TRIGger) :

Zasób COUNt określa liczbę powtórzeń akcji danej warstwy (domyślnie =1):

TRIGger:COUNt 5 – wyznacza 5-krotne powtórzenie akcji warstwy TRIGger. Każde powtórzenie to wyzwolenie akcji urządzenia po wystąpieniu określonego zdarzenia. Po 5 wyzwoleniu i zakończeniu akcji urządzenia następuje przejście do warstwy wyższej.

ARM:COUNt 10 – podobnie jak w przykładzie poprzednim z tym, że dotyczy warstwy ARM.

zdarzenia wyj z warstw sekwencji
Zdarzenia wyjść z warstw sekwencji :

Podczas działania systemu następują przejścia w dół poprzez poszczególne warstwy oraz przejścia powrotne w górę do stanu spoczynkowego.

Każde wyjście z warstwy zarówno w dół jak i w górę generuje zdarzenie, które jest określone standardową nazwą i może być wykorzystane w procesie sterowania działaniem urządzenia.

Budowa nazwy zdarzenia jest następująca:

<nazwa_warstwy><sekwencja_warstwy>

<rozszerzenie_nazwy><[:DOWN] | :UP>

np.:

INITiated:DOWN

INITiated:UP – wyjście w dół i w górę z warstwy zainicjowania sekwencji nr 1 .

ARM:SEQuence2:LAYer3:DOWN – wyjście w dół z warstwy ARM nr3 sekwencji drugiej.

TRIGger:SEQuence2

TRIGger:SEQuence2:UP– wyjście w dół oraz w górę z warstwy TRIGger sekwencji drugiej.

podsystem trigger multimetru hp34401
Podsystem TRIGger multimetru HP34401 :

Podsystem TRIGger multimetru HP34401 wykorzystuje tylko warstwę IDLE oraz TRIGger.

Przykład zaprogramowania przyrządu do wykonania zadanej liczby <n> pojedynczych pomiarów inicjalizowanych sygnałem zewnętrznym bez dodatkowego opóźnienia :

TRIGger:Source EXT

TRIGger:COUNt <n>

TRIGger:Delay 0

SAMPle:COUNt 1

Lub podobnie, ale z założeniem wykonania po każdorazowym wyzwoleniu serii <k> pomiarów w odstępach 1sekundowych:

TRIGger:Source EXT

TRIGger:COUNt <n>

TRIGger:Delay 1

SAMPle:COUNt <k>

Równoważne polecenie złożone:

TRIGger:Source EXT; COUNt <n>; Delay 1;

:SAMPle:COUNt <k>

podsystem trigger multimetru 2001 keithley
Podsystem TRIGger multimetru 2001 Keithley  :
  • Multimetr ( 2001 Keithley ) posiada wewnętrzny moduł przełącznika kanałów pomiarowych.
  • Stosuje jedną sekwencję wyzwalania, ale z dwiema warstwami ARM.
  • Zdarzenia DOWN kolejnych warstw są wykorzystane następująco:
    • ARM:LAYer2 - powtarzanie cykli skanowania listy kanałów.
    • ARM:LAYer1 – przejście po kanałach listy;
    • TRIGger - start pomiaru w ustawionym kanale;
  • Odpowiednio programując system wyzwalania można zrealizować sesję pomiarową wykonującą:
    • n cykli pomiarowych w wybranych kanałach pomiarowych;
    • w każdym cyklu uczestniczy k kanałów;
    • w wybranym kanale pomiarowym wykonana jest każdorazowo seria m pomiarów.
z o one systemy wyzwalania
Złożone systemy wyzwalania :
  • Sekwencje złożonego systemu wyzwalania mogą być niezależne lub wzajemnie synchronizowane przez zdarzenia generowane w tych sekwencjach.
  • Wzajemne powiązania są predefiniowane w urządzeniu lub ustalane programowo.
  • Konfigurowanie programowe powiązań polega na :
    • wyborze źródła synchronizacji typu LINK dla danej warstwy w wybranej sekwencji;
    • podaniu nazwy zdarzenia, które detektor tej warstwy ma wykryć.

ARM:SEQuence2:LAYer1:SOURce LINK – wybór źródła typu LINK

ARM:SEQuence2:LAYer1:LINK "ARM:SEQuence1:LAYer3:DOWN" – nazwa zdarzenia związana z źródłem LINK wybranej warstwy.

aliasy sekwencji wyzwalania
Aliasy sekwencji wyzwalania :

Sekwencjom systemu wyzwalania można przypisywać własne nazwy (aliasy nazw standardowych).

Ma to na celu ułatwienie programowania przyrządu oraz zapewnienie dobrej czytelności poleceń w kodzie źródłowym programu.

Służy do tego celu jedno z poleceń:

ARM:SEQuence<n>:DEFine <alias>

TRIGger:SEQuence<n>:DEFine <alias>

Oba mają te same przeznaczenie. Jeśli sekwencja nie ma warstw ARM stosuje się drugie polecenie.

ARM:SEQuence2:DEFine VECTOR – VECTOR jest aliasem nazwy SEQuence2

ARM:VECTOR:SOURce BUS – ustawia wyzwolenie z interfejsu dla warstwy ARM sekwencji VECTOR. Wersję krótką aliasu można stosować dopiero po odpowiednim przystosowaniu urządzenia do tego celu (polecenie MGRules).

polecenia sekwencyjne i nak adkowe
Polecenia sekwencyjne i nakładkowe :

Sekwencyjne; Polecenia są wykonywane sekwencyjnie. Kolejne polecenie czeka w kolejce aż zostanie wykonane poprzednie.

Rozpoczęcie realizacji danego polecenia oznacza , że poprzednie zostało już wykonane w całości.

Nakładkowe; Polecenia realizowane współbieżnie .

Blok przekazywania poleceń inicjuje ich realizację przez blok funkcji urządzeniowych i nie czeka na zakończenie związanych z nimi operacji lecz przekazuje do wykonania następne polecenie.

Zwykle są to polecenia o długim czasie wykonania.

zaleta polece nak adkowych
Zaleta poleceń nakładkowych :

Ustawienie podsystemu TRIGger:

TRIGger:Source IMM

TRIGger:COUNt 100

TRIGger:Delay 0.1

SAMPle:COUNt 10

Czas wykonania jednego pomiaru równy np. około 50ms.

Polecenie INITiate inicjalizuje podsystem wyzwalania.

Proces zbierania wszystkich danych trwa około:

T = 100 * ( 100ms + 50 ms) * 10 = 150ms * 1000 = 150sekund

Komplet danych jest dostępny dopiero po upływie 2.5 minut.

Jeśli polecenie INITiate jest poleceniem sekwencyjnym wówczas przez ten okres czasu urządzenie jest niedostępne (głuche).

Jeśli polecenie INITiate jest poleceniem nakładkowym to w czasie jego realizacji można pozyskiwać z urządzenia inne dane, między innymi dowiedzieć się czy proces zbierania danych już się zakończył.

Jeśli czas realizacji polecenia jest relatywnie długi wówczas polecenie powinno mieć charakter nakładkowy.

synchronizacja programu z dzia aniem urz dzenia
Synchronizacja programu z działaniem urządzenia :

Polecenie MEAS? realizuje pomiar pewnej wielkości . Czas pomiaru jest duży około 100sek.

Fragment programu inicjujący pomiar i odczyt wyniku to w najprostszej postaci sekwencja instrukcji viPrintf i viScanf lub viWrite i viRead.

Jeśli Tpom>timeout operacji I/O wówczas powyższa sekwencja instrukcji nigdy nie wykona się poprawnie. Wystąpi błąd ‘timeout viRead’.

Można ustawić ‘timeout ‘ o odpowiednio dużej wartości , ale wtedy program wchodzi w realizację funkcji viRead i jest również zajęty (głuchy) przez tak długi okres czasu.

Aby uniknąć takich sytuacji należy przed wywołaniem operacji odczytu sprawdzić gotowość odpowiedzi i odczyt realizować gdy jest gotowa odpowiedź.

synchronizacja
Synchronizacja :

..........................

viPrintf(vi, ”MEAS?\n”);

do {

viReadSTB (vi, &stb);

} while (!(stb & 0x10)); // bit MAV

viScanf(vi, ”%t”, buffor);

..........

polecenia synchronizacji
Polecenia synchronizacji :
  • *WAI - czekaj na zakończenie zainicjalizowanych wcześniej poleceń nakładkowych;
  • *OPC - uaktywnia ustawienie bitu wykonania poleceń w standardowym rejestrze zdarzeń;
  • *OPC? - wstaw znak '1' ASCII do kolejki wyjściowej po wykonaniu wcześniej zainicjalizowanych poleceń.
przyk ad wykorzystania bitu opc
Przykład wykorzystania bitu OPC :

Ustawienie podsystemu TRIGger:

TRIGger:Source IMM

TRIGger:COUNt 100

TRIGger:Delay 0.1

SAMPle:COUNt 10

..........................

viPrintf(vi, ”*CLS; *ESE 1; INIT;*OPC\n”);

do {

viReadSTB (vi, &stb);

} while (!(stb & 0x20));

viPrintf(vi, ”FETCH?\n”);

viScanf(vi, ”%t”, buffor);

przyk ad wykorzystania bitu opc1
Przykład wykorzystania bitu OPC :

Ustawienie podsystemu TRIGger:

TRIGger:Source IMM

TRIGger:COUNt 100

TRIGger:Delay 0.1

SAMPle:COUNt 10

..........................

viPrintf(vi, ”*CLS; INIT;*OPC\n”);

do {

viPrintf(vi, ”*ESR?\n”);

viScanf (vi, ”%t”, buf);

} while (!(atoi(buf) & 0x01))

viPrintf(vi, ”FETCH?\n”);

viRead(vi, buffor);

?

przyk ad wykorzystania polecenia opc
Przykład wykorzystania polecenia *OPC? :

Ustawienie podsystemu TRIGger:

TRIGger:Source IMM

TRIGger:COUNt 100

TRIGger:Delay 0.1

SAMPle:COUNt 10

..........................

viPrintf(vi, ”*CLS; *ESE 0; INIT; *OPC? \n”);

do {

viReadSTB (vi, &stb);

} while (!(stb & 0x10));

viScanf(vi, ”%t”, buffor); // odczyt odpowiedzi na zapytanie *OPC?

viPrintf(vi, ”FETCH?\n”);

viScanf(vi, ”%t”, buffor);