300 likes | 445 Views
Podsystem statusowy. Struktura systemu raportowania stanu urządzenia według SCPI. Ogólna struktura raportowania stanu urządzenia :. Bity sumaryczne struktur Bajt Statusowy – STB Maska rejestru STB Generator rsv Funkcja SR. Generacja SRQ. Składnik rejestro wy struktury statusowej :.
E N D
Podsystem statusowy Struktura systemu raportowania stanu urządzenia według SCPI.
Ogólna struktura raportowania stanu urządzenia: Bity sumaryczne struktur Bajt Statusowy – STB Maska rejestru STB Generator rsv Funkcja SR Generacja SRQ
Składnik rejestrowy struktury statusowej : • Definiowanie zdarzeń: • Przejście L->H • Przejście H->L • Oba przejścia • Żadne (wyłączenie) • PTR NTR • 1 0 • 0 1 • 1 1 • 0 0
Dostępne operacje na elementachstruktury rejestrowej : • Przedstawiona konstrukcja struktury rejestrowej pozwala użytkownikowi w sposób elastyczny dostosowywać jej funkcjonowanie do potrzeb konkretnej aplikacji (definiowanie zdarzeń oraz kształtowanie komunikatu sumarycznego). • Korzystanie z tych możliwości zapewniają odpowiednie polecenia ustawiające rejestry oraz zapytania zwracające zawartość wybranych rejestrów. • W stosunku do poszczególnych rejestrów dowolnej struktury rejestrowej mogą być wykonywane następujące operacje :
Polecenia obsługi elementówstruktury rejestrowej : Przykłady: :STATus:OPERation:ENABle 5 - odmaskowanie bitów o wadze 1 i 4 rejestru zdarzeń. Wystąpienie jednego z tych zdarzeń spowoduje wystawienie komunikatu sumarycznego o wartości 1. :STATus:OPERation:PTRansition 5 - Zmiana stanu z L na H bitów o wadze 1 i 4 rejestru stanu wygeneruje zdarzenie rejestrowane wartością 1 na odpowiadających bitach rejestru zdarzeń.
Składnikkolejkowy struktury statusowej : • Składnik systemu raportowania stanu urządzenia o budowie kolejkowej jest buforem pamięci typu FIFO przeznaczonym do przechowywania sekwencji różnorodnych informacji. • Bufor ma własności struktury pozwalającej gromadzić dane różnego typu. • Komunikat sumaryczny kolejki wartością 1 sygnalizuje obecność w kolejce co najmniej jednej danej. Wartość zero oznacza, że kolejka jest pusta. Urządzeniazgodne z IEEE-488.2 dysponują zawszekolejką danych wyjściowych a dodatkowo zgodne z SCPI kolejką wykrytych błędów obsługi urządzenia.
Rejestr statusowy urządzenia i jego polecenia : Polecenie: *sre 48 -> 0011 0000
Standardowy rejestr zdarzeń : PON – Power on URQ – User request (rzadko) CME – Command error EXE – Execution error DDE – Device dependent error QYE – Query error RQC – Request control (gdy C) OPC – Operation complete Polecenie: *ese 5 -> 0000 0101
Polecenia wspólne systemu raportowania stanu : Polecenia i zapytania wspólne obsługujące systemu raportowania stanu urządzenia: *CLS -Zeruj rejestry systemu raportowania stanu. *ESE <NRf>-Ustaw maskę rejestru zdarzeń. *ESE?-Zapytanie o maskę rejestru zdarzeń. *ESR?-Zapytanie o zawartość rejestru zdarzeń. *SRE <NRf>-Ustaw maskę rejestru statusowego. *SRE?-Zapytanie o maskę rejestru statusowego. *STB?-Zapytanie o bajt statusowy. *IST?-Zapytanie o komunikat ist urządzenia. *PRE <NRf>-Ustaw maskę rejestru PP. *PRE?-Zapytanie o maskę rejestru PP. Uwaga: Tylko gdy implementowana jest funkcja PP.
Rozszerzenia SCPI: Rejestr stanu działania (operacji) urządzenia Rejestr stanu jakości działania urządzenia Kolejka błędów i zdarzeń
Rejestr stanu działania urządzenia (Operation Status): • Rejestr dostarcza danych o stanie typowych działań urządzenia. • Większości bitów przypisano na stałe określone typy działań. • Urządzenie wykorzystuje tylko bity związane z jego działaniem. • Np. urządzenie typu SOURCe nie wykorzystuje bitu MEASuring. • Niewykorzystywane bity mają zawsze wartość zero. • Struktura standardowo dysponuje pięcioma rejestrami : • CONDition • NTRansition • PTRansition • EVENt • ENABle
Przykład zastosowania : :STATus:OPERation :CONDition? :EVENt? :ENABle <NRf> :ENABle? :NTRansition <NRf> :NTRansition? :PTRansition <NRf> :PTRansition? :STATus:OPERation:CONDition?– Zapytanie o stan operacji urządzenia. Np. jeśli odpowiedź dostarczy wartość 16to oznacza to , że urządzenie jest w trakcie wykonywania pomiaru. :STATus:OPERation:NTRansition 17;PTRansition 0 – Polecenie definiuje dwa zdarzenia obowiązujące dla struktury; zakończenie kalibracji oraz pomiaru (przejścia stanów z H->L). :STATus:OPERation:ENABle 17 – Odmaskowanie zdarzenia z pozycji 0 i 4. Zakończenie pomiaru lub kalibracji spowoduje ustawienie bitu 7 bajtu statusowego STB. :STATus:OPERation:EVENt?– Zapytanie o zarejestrowane zdarzenia. Np. jeśli odpowiedź dostarczy wartość 17to oznacza to , że od chwili ostatniego czytania rejestru EVENt zakończyła się co najmniej jedna kalibracja oraz co najmniej jeden pomiar.
Rejestr stanu jakości działania urządzenia (Questionable Status): • Rejestr dostarcza danych o jakości różnych aspektów działania urządzenia. • Zgłoszenie zdarzenia kwestionującego nie musi oznaczać zaistnienia błędu; może to być ostrzeżenie, że nie osiągnięto oczekiwanych rezultatów. • Np. źródło napięciowe ma ustawione pewne ograniczenie prądowe. Przy ustawianiu kolejnego napięcia ograniczenie to zostało przekroczone. Wtedy bit VOLTage zostanie ustawiony sygnalizując fakt ograniczenia napięcia wyjściowego. • Urządzenie wykorzystuje wyłącznie bity związane z funkcjonowaniem urządzenia. Niewykorzystywane bity mają zawsze wartość zero. • Struktura standardowo dysponuje pięcioma rejestrami : • CONDition • NTRansition • PTRansition • EVENt • ENABle
Przykład zastosowania : :STATus:QUEStionable :CONDition? :EVENt? :ENABle <NRf> :ENABle? :NTRansition <NRf> :NTRansition? :PTRansition <NRf> :PTRansition? :STATus: QUEStionable :CONDition?– Zapytanie o stany jakości. Np. jeśli odpowiedź dostarczy wartość 1to oznacza to , że sygnał napięciowy nie jest stabilizowany. :STATus: QUEStionable :NTRansition 0;PTRansition 1 – Polecenie definiuje zdarzenie obowiązujące dla struktury; wyjście źródła z stabilizacji napięciowej generuje zdarzenie (przejście bitu VOLTage z L->H). :STATus: QUEStionable :ENABle 1 – Odmaskowanie zdarzenia z pozycji 0. Utrata stabilizacji napięciowej źródła spowoduje ustawienie bitu 3 bajtu statusowego (STB). :STATus: QUEStionable :EVENt?– Zapytanie o zarejestrowane zdarzenia. Np. jeśli odpowiedź dostarczy wartość 1to oznacza , że od chwili ostatniego czytania rejestru EVENt źródło przynajmniej raz utraciło stabilizację napięcia.
Opis rejestr stanu jakości działania multimetru HP34401: Struktura korzysta z predefiniowanych zdarzeń i posiada tylko rejestr EVENt oraz ENABle.
Raportowanie błędów i zdarzeń : • Zdarzenia i błędy powstałe w urządzeniu są raportowane przez bity standardowego rejestru zdarzeń. • Ustawiony bit wskazuje na wystąpienie zdarzenia lub błędu przypisanego do danego bitu. • Zgłoszenie zdarzenia lub błędu jest dostępne dla aplikacji dotąd aż kontroler wyśle zapytanie o zawartość rejestru lub polecenie zerujące *CLS. • Gdy tylko aplikacja zostanie poinformowana o sytuacji szczególnej , rejestr zdarzeń jest zerowany. • Kolejność wystąpienia zdarzeń lub błędów nie jest możliwa do określenia. • Rejestr zdarzeń dostarcza wyłącznie informacji o wystąpieniu sytuacji szczególnych w okresie od ostatniego czytania rejestru zdarzeń lub jego zerowania.
Kolejka błędów i zdarzeń : • Struktura raportowania statusu dysponuje kolejką błędów i zdarzeń powstałych w urządzeniu. • Rekordy opisujące zaistniałe sytuacje szczególne są przechowywane w kolejce w sekwencji czasu ich wystąpienia. • Kolejka jest buforem FIFO (First-In-First-Out). • Dzięki temu kolejne odczyty zawartości kolejki dostarczą rekordy zdarzeń lub błędów w kolejności ich wystąpienia. Odczytany rekord jest usuwany z kolejki. • Error/Event Queue dostarcza tych samych informacji co standardowy rejestr zdarzeń, ale dodatkowo uwidacznia ich czasową relację oraz liczbę wystąpień.
Rekord błędu / zdarzenia : • Rekord opisu błędu/zdarzenia posiada pole numeryczne i tekstowe rozdzielone znakiem przecinka. • Pole numeryczne przechowuje numer błędu/zdarzenia w postaci liczby całkowitej. • Wartość zero wskazuje brak zarejestrowanego błędu lub zdarzenia. • Wartości ujemne są kodami błędów zdefiniowanych w umowie SCPI. • Wartości dodatnie są zarezerwowane dla błędów specyficznych dla konkretnych urządzeń. • Pole tekstowe zawiera daną stringową złożoną z dwóch części: • Obowiązkowego opisu błędu/zdarzenia oraz opcjonalnego opisu wyjaśniającego uzależnionego od urządzenia. Obie części separuje znak średnika. • Długość części tekstowej nie może przekraczać 255 znaków. • Druga część jest opcjonalna i nie musi być implementowana w urządzeniu. Dostarcza dodatkowe informacje ułatwiające znalezienie przyczyn wystąpienia sytuacji szczególnej, np. : • -131,"Invalid suffix;FREQuency:CENT 2.0E+5 dBuV"
Polecenia obsługi kolejki błędów i zdarzeń : • SYSTem:ERRor[:NEXT]? - Polecenie jest implementowane w każdym urządzeniu zgodnym z SCPI. • <numeric_list> - lista zdarzeń określana numerami zdarzeń, np. : • SYSTem:ERRor:ENABle (-123,225:227) • Oznacza, że rejestrowane będą w kolejce tylko wymienione zdarzenia, czyli zdarzenia • o numerach –123, 225, 226 i 227.
Czytanie kolejki błędów i zdarzeń : Kolejka błędów/zdarzeń zawiera kilka rekordów : SYSTem:ERRor? – Zapytanie spowoduje umieszczenie w kolejce wyjściowej danych odpowiedzi zbudowanej na podstawie najstarszego zarejestrowanego rekordu błędu lub zdarzenia. Odczytany rekord zostaje usunięty z kolejki błędów/zdarzeń. Następne zapytanie pobierze kolejny rekord z kolejki błędów/zdarzeń itd. Przykład odpowiedzi: -113, ”Undefined header” , tutaj informuje, że nagłówek polecenia jest poprawny syntaktycznie ale nie jest zdefiniowany dla tego urządzenia (nie jest zaimplementowany w tym urządzeniu). Pusta kolejka błędów/zdarzeń: SYSTem:ERRor? – Zapytanie zwróci odpowiedź w postaci komunikatu: 0, ”No error” Nietypowe operacje rozpoznania błędów: SYSTem:ERRor:COUNt? – Zapytanie o liczbę zarejestrowanych zdarzeń. SYSTem:ERRor:ALL? – Zapytanie o wszystkie zarejestrowane zdarzenia. Odpowiedź dostarcza listę pełnych opisów wszystkich zdarzeń poczynając od najstarszego.
Przepełnienie kolejki błędów i zdarzeń : Kolejka błędów/zdarzeń posiada ograniczoną pojemność. Często do 10 rekordów. W sytuacji zapełnienia kolejki ostatni zarejestrowany błąd zostaje zastąpiony błędem przepełnienia: -350, ”Queue overflow” Informacja o rzeczywistej przyczynie błędu zostanie stracona. Taka sytuacja powtarza się dotąd dopóki nie zostanie zwolnione miejsce w kolejce. Wszystkie informacje o zdarzeniach występujących w czasie przepełnienia kolejki zostaną utracone. Fakt zaistnienia pewnego zdarzenia jest zawsze zarejestrowany przez standardowy rejestr zdarzeń. Także gdy kolejka błędów jest pełna.
Standaryzacja numerów błędów i zdarzeń : Execution Error – polecenie jest poprawne syntaktycznie, ale w istniejących warunkach nie może być wykonane. Przykłady: -211,”Trigger ignored”- wyzwolenie ignorowane, urządzenie nie oczekuje na GET lub *TRG. -222,”Data out of range” – dana polecenia poza dopuszczalnym zakresem wartości. -280,”Program error” – błąd uruchomienia załadowanego do urządzenia programu. Device-Specific Error – urządzenie nie może w pełni poprawnie zrealizować określonej operacji. Błędy noszą nazwę specyficznych dla urządzenia, ale nie są określane przez producentów. Są to błędy występujące w większości urządzeń i obejmuje je standaryzacja SCPI. Przykłady: -311,”Memory error”- błąd pamięci wewnętrznej urządzenia, np. parzystości. -321,”Out of memory” – operacja wewnętrzna potrzebuje więcej pamięci niż jest dostępne. -340,”Calibration failed” – błąd kalibracji urządzenia.
Rozbudowany rejestr stanu jakości działania urządzenia : Urządzenie może funkcjonować z wykorzystaniem wielu sygnałów danego typu, np. napięciowych. Wtedy podstawowy rejestr podaje informacje sumaryczne. Natomiast rejestr nadrzędny precyzuje , który z sygnałów danego typu charakteryzuje się kwestionowaną jakością.
Rejestr stanu jakości działania urządzenia wielokrotnego: Rejestr stanu jakości działania modułu 1. Rejestr stanu jakości działania modułu 2. Rejestr zdarzeń modułów. Rejestr zdarzeń sygnałów napięciowych Typ sygnału. Numer modułu.
Rejestr stanu jakości działania zasilacza HP3631: Brak regulacji napięciowej lub prądowej w jednym ze źródeł. Brak stabilizacji napięciowej lub prądowej w źródle P25V.
Rejestr stanu jakości działania zasilacza HP3631: STATus:QUEStionable : INSTrument : ISUMmary<n>: ENABle <enable_value> : INSTrument : ISUMmary<n>: ENABle? : INSTrument : ISUMmary<n> [: EVENt]? : INSTrument : ISUMmary<n> : CONDition? : INSTrument : ENABle <enable_value> : INSTrument : ENABle? : INSTrument [: EVENt]? : ENABle <enable_value> : ENABle? [: EVENt]? StrukturySTATus:QUEStionable:INSTrument:ISUMmary<n> posiadają rejestry CONDition, EVENt oraz ENABle oraz ustaloną definicję zdarzeń (rejestry PTR i NTR nie są dostępne). Struktury STATus:QUEStionable:INSTrument oraz STATus:QUEStionable posiadają tylko rejestry EVENt i ENABle. Komunikaty sumaryczne o wartości 1 dochodzące do nich są zdarzeniami zapamiętywanymi przez rejestry zdarzeń tych struktur.