Transmisja informacji po magistrali standardu IEC-625
Transkrypt
Transmisja informacji po magistrali standardu IEC-625
LABORATORIUM SYSTEMÓW POMIAROWYCH KTP IR PW MAGISTRALA SYSTEMU POMIAROWEGO W STANDARDZIE IEC-625. 2 (IEEE-488.2) (materiały pomocnicze do ćwiczenia nr 2) Opracowali: dr inż. W.Winiecki Gerard Ciasnocha Piotr Pawlak Warszawa 1996 SPIS TREŚCI 1. Cel ćwiczenia.................................................................................................................3 2. Wstęp............................................................................................................................3 3. Tester interfejsu IEC-625...............................................................................................5 4. Opis multimetru HP 34401A..........................................................................................6 4.1 Płyta czołowa................................................................................................................6 4.2 Programowanie multimetru............................................................................................8 4.3 Format wyniku pomiaru multimetru.............................................................................12 4.4 Najczęściej sygnalizowane błędy przez multimetr.........................................................12 5. Pytania kontrolne.........................................................................................................14 Dodatki: D1 System statusu w standardzie SCPI..............................................................................15 D2 Kody ASCII.................................................................................................................18 D3 Handshake trójprzewodowy.........................................................................................19 2 1. CEL ĆWICZENIA Celem ćwiczenia jest praktyczne zapoznanie się z metodami uruchamiania nowoczesnych systemów pomiarowych w standardzie IEC-625.2.Wykonanie ćwiczenia polega na realizacji prostego zadania pomiarowego w systemie składającym się z testera interfejsu IEC-625 (pełniącego funkcję kontrolera) oraz multimetru firmy Hewlett-Packard. Zastosowany sprzęt programuje się wykorzystując standard instrukcji SCPI, który jest obecnie standardem w dziedzinie oprogramowania urządzeń pomiarowych. 2. WSTĘP Jednym z najważniejszych etapów projektowania systemów pomiarowych jest ich uruchamianie. Uruchamianie systemu pomiarowego obejmuje uruchamianie sprzętu połączonego w system oraz uruchamianie oprogramowania: procedur komunikacyjnych (zapewniających poprawne sterowanie pracą wszystkich bloków funkcjonalnych i poprawną wymianę informacji między nimi) oraz procedur przetwarzania danych (łącznie z prezentacją wyników). Generalną zasadą przy uruchamianiu systemu pomiarowego jest: "uruchamiać kolejno i stopniowo"; zaczynając od uruchomienia sprzętu pracującego w systemie, kończąc na procedurach przetwarzania danych.Uruchomienie części sprzętowej systemu pomiarowego polega na sprawdzeniu zdalnego sterowania poszczególnych bloków funkcjonalnych systemu (przyrządów, modułów, kart pomiarowych, itp.). Sprawdzenie to najczęściej sprowadza się do zaprogramowania pracy danego bloku i odebrania wyniku jego działania (w przypadku przyrządu pomiarowego: wyniku pomiaru). Uruchamianie bloków funkcjonalnych można podzielić na dwa etapy (rys.1): - uruchomienie zdalnego sterowania poszczególnych bloków funkcjonalnych dołączonych do kontrolera indywidualnie, z odłączeniem pozostałych bloków (uruchamianie indywidualne), - uruchomiania zdalnego sterowania poszczególnych bloków funkcjonalnych w obecności wszystkich bloków dołączonych do kontrolera (uruchamianie w grupie). Rolę kontrolera pełnić może tester magistrali lub komputer. Uruchamianie bloku funkcjonalnego indywidualne statyczne w grupie dynamiczne statyczne dynamiczne Rys.1. Etapy uruchamiania urządzeń systemu pomiarowego 3 Uruchamianie indywidualne bloku funkcjonalnego umożliwia sprawdzenie poprawności kodów i formatów danych programujących oraz wyników pomiarów. Uruchamianie w grupie pozwala na stwierdzenie nieprawidłowego zachowania urządzenia w obecności innych bloków funkcjonalnych. Badania takie umożliwiają m.in. wykrycie nadmiernego obciążenia magistrali systemowej wynikającego zwykle z uszkodzenia buforów w interfejsie, czy też wykrycie niewykonania pewnych rozkazów przez urządzenie (np. rozkazu UNL w systemie z interfejsem IEC-625), mogącego uniemożliwić poprawną pracę projektowanego systemu. Uruchamianie bloku funkcjonalnego indywidualne lub w grupie może być przeprowadzone w sposób statyczny lub dynamiczny. Uruchamianie statyczne polega na krokowym wykonaniu procedury zdalnego sterowania (najczęściej poprzez ręczne sterowanie magistralą systemową z wykorzystaniem specjalnego testera) i obserwacji reakcji bloku na poszczególne kroki sterowania oraz analizie komunikatów o błędach. Niektóre kontrolery systemu wyposażone są w specjalny program interakcyjny, który umożliwia użytkownikowi wykonanie pojedyńczych procedur zdalnego sterowania i kontrolę na bieżąco ich wykonania. Przy pracy krokowej należy zawsze pamiętać o ustawieniu w sterownikach programowych bloków funkcjonalnych i kontrolera odpowiednio długiego czasu reakcji na sygnały sterujące magistrali tak, aby uniknąć błędu przekroczenia czasu reakcji (ang.: timeout). Uruchamianie dynamiczne polega na wykonaniu serii wyzwoleń pracy bloku i odczytów od niego wyników z maksymalną prędkością. Testowanie dynamiczne - często zresztą pomijane - jest o tyle istotne, że niektóre urządzenia, mimo pozytywnego przejścia testów statycznych, mogą nieprawidłowo pracować w ekstremalnych warunkach dynamicznych. Niezauważenie tego faktu może znacznie utrudnić uruchamianie całego systemu. 4 3. TESTER INTERFEJSU IEC-625 Tester interfejsu opracowany w Instytucie Radioelektroniki umożliwia obserwację i ręczne sterowanie wszystkich linii magistrali IEC-625. Jest to urządzenie niezależne od komputera, z własnym, niezależnym zasilaniem. Na płycie tylnej umieszczone jest gniazdo interfejsu IEC-625, które umożliwia dołączenie testera do magistrali systemowej. Płyta czołowa testera zawiera 16 przycisków odpowiadających poszczególnym liniom magistrali (8 linii danych, 5 linii sterujących, 3 linie synchronizacji) oraz skojarzonych z nimi 16 diod świecących sygnalizujących stan magistrali (rys. 2). Wciśnięcie przycisku powoduje zapalenie odpowiadającej mu diody i ustawienie stanu logicznego "1" na danej linii; zwolnienie - oznacza powrót do stanu logicznego "0" wraz ze zgaszeniem diody. TESTER INTERFEJSU IEC-625 9V LINIE DANYCH LINIE STERUJ¥CE DIO8 DIO7 DIO6 DIO5 DIO4 DIO3 DIO2 DIO1 DAV NRFD NDAC ATN SRQ REN EOI IFC INSTYTUT RADIOELEKTRONIKI PW Rys.2. Rysunek płyty czołowej testera interfejsu IEC-625 Tester może pracować w 3 trybach: monitora biernego, monitora aktywnego i kontrolera. Tryby te opisano w tablicy 1. W trybie kontrolera tester włączony jest do systemu zamiast właściwego kontrolera systemu. W pozostałych trybach pracy tester jest dołączany do systemu jako urządzenie dodatkowe, tzn. nie jest traktowany przez kontroler systemu jako urządzenie wchodzące w skład systemu; jest dla niego "niewidoczne". Przy pracy krokowej testera należy pamiętać o wyłączeniu czasu przeterminowania (ang.: timeout) w urządzeniach biorących udział w transmisji. Tab. 1. Tryby pracy testera interfejsu IEC-625 Tryb pracy monitor bierny monitor aktywny (odbiorca) kontroler Funkcja testera Wykorzystane klawisze obserwacja stanu magistrali podczas pracy systemu, bez możliwości zwolnienia transmisji obserwacja stanu magistrali podczas pracy systemu, z możliwością wymuszenia pracy krokowej lub zatrzymania transmisji krokowe sterowanie pracą systemu (wysyłanie adresów, rozkazów, danych, odbiór danych) z podglądem stanu magistrali 5 wszystkie przyciski wyciśnięte operowanie przyciskami NRFD i NDAC operowanie wszystkimi klawiszami 4. OPIS MULTIMETRU HP 34401A 4.1 PŁYTA CZOŁOWA Funkcje dostępne bezpośrednio z płyty czołowej pogrupowane są w cztery bloki: 1.FUNCTION Pomiar napięcia oraz prądu stałego i zmiennego, rezystancji, okresu i częstotliwości a także testowanie diody; 2.MENU Włączenie i wyłączenie menu oraz wywołanie ostatnio używanej funkcji. 3.RANGE / DIGITS Ustawienie zakresu pomiarowego oraz ilości cyfr znaczących; 4. MATH Pomiar z uwzględnieniem wartości odniesienia, wyznaczenie wartości minimalnej i maksymalnej w serii pomiarów, pomiary w dB i dBm; Poza tym możliwy jest wybór rodzaju wyzwalania (ręczne lub automatyczne). Struktura menu Menu posiada strukturę 3-poziomową (menus, commands, parameters). Poruszanie się pomiędzy poziomami: góra ∧ , dół ∨ . Każdy z trzech poziomów ma kilka opcji, których wybór następuje przez naciśnięcie < lub > . . Menus Commands Parameters On/Off - włączenie menu: naciśnięcie shift < , - wyłączenie: analogicznie lub naciśnięcie dowolnego przycisku z grupy function lub math w górnym rzędzie płyty czołowej. - wykonanie polecenia menu: naciśnięcie Auto/Man ENTER 6 Przykładowe polecenia menu A:MEASurement MENU 1: AC FILTER ⇒ 2: CONTINUITY ⇒ 3: INPUT R ⇒ 4: RATIO FUNC ⇒ 5: RESOLUTION 1: AC FILTER 2: CONTINUITY 3: INPUT R 4: RATIO FUNC 5: RESOLUTION Selects the slow, medium, or fast ac filter; Sets the continuity beeper threshold ( 1Ω to 1000Ω); Sets the input resistance for dc voltage measurements, Enables the dcv: dcv ratio function; Selects the measurement resolution. B: MATH MENU 1: MIN-MAX ⇒ 2: NULL VALUE ⇒ 3: dB REL ⇒ 4: dBm REF R ⇒ 5: LIMIT TEST ⇒ 6: HIGH LIMIT ⇒ 7: LOW LIMIT 1: MIN-MAX 2: NULL VALUE 3: dB REL 4: dBm REF R 5: LIMIT TEST 6: HIGH LIMIT 7: LOW LIMIT Recalls the stored minimum, maximum, average, and reading count; Recalls or sets the null value stored in the null register; Recalls or sets the dBm value stored in the dB relative register; Selects the dBm reference resistance value; Enables or disables limit testing; Sets the upper limit for limit testing; Sets the lower limit for limit testing. C: TRIGer MENU 1: READ HOLD ⇒ 2: TRIG DELAY ⇒ 3: N SAMPLES 1: READ HOLD 2: TRIG DELAY 3: N SAMPLES Sets the reading hold sensitivity band; Specifies a time interval which is inserted before a measurement; Sets the number of samples per trigger. D: SYStem MENU 1: RDGS STORE ⇒ 2: SAVED RDGS ⇒ 3: ERROR ⇒ 4: TEST ⇒ 5: DISPLAY ⇒6: BEEP ⇒ 7: COMMA ⇒ 8:REVISION E: Input / Output MENU 1: HP-IB ADDR ⇒ 2: INTERFACE ⇒ 3: BAUD RATE ⇒ 4: PARITY ⇒ 5: LANGUAGE F: CALibration MENU 1: SECURED ⇒ [ 1: UNSECURED ] ⇒ [ 2: CALIBRATE ] ⇒ 3: CAL COUNT ⇒ 4: MESSAGE UWAGA: Dwie komendy ujęte w nawiasy kwadratowe ( [ ] ) są „ukryte” dopóki multimetr jest zabezpieczony przed zmianą kalibracji. 7 Przykład użycia komendy z MENU: Zmiana adresu multimetru On/Off - wejście do MENU, ( nacisnąć shift , a następnie < , pojawia się napis: A: MEAS MENU ); - naciskając < lub > dokonać właściwego wyboru menu ( tu: E: I/O MENU ); - nacisnąć ∨ żeby przejść do podmenu commands, ( pojawia się napis: 1:HP-IB ADDR ); - dokonać wyboru komendy analogicznie jak wyboru menu, ( tu: 1:HP-IB ADDR ); - nacisnąć ∨ żeby przejść do podmenu parameters, ( pojawia się napis: ∧22 ADDR ); - naciskając < lub > dokonać wyboru cyfry która ma ulec zmianie; - zmiany wartości dokonujemy naciskając ∧ lub ∨ ; - potwierdzenie zmiany, ( nacisnąć Auto/Man , w przeciwnym razie zmiany nie zostaną zapamiętane ). ENTER 4.2 PROGRAMOWANIE MULTIMETRU HP-34401A Funkcje i zakresy pomiarowe multimetru HP-34401A przedstawiono w tabeli 2. Tab.2. Funkcje i zakresy pomiarowe multimetru HP-34401A. Funkcja Zakresy pomiarowe DC V, AC V 100mV, 1V, 10V, 100V, 1000V (750Vac) Ω 2W, Ω 4W 100Ω, 1kΩ, 10kΩ, 100kΩ, 1MΩ, 10MΩ, 100MΩ DC I, AC I 10mA (tylko dc), 100mA (tylko dc), 1A, 3A Freq (period) 3Hz do 300kHz (0.33s do 3.3 µs) Multimetr HP-34401A posiada rozbudowany system wyzwalania. System ten pozwala na automatyczne generowanie wyzwolenia, wykonanie wielu pomiarów po jednym wyzwoleniu i umieszczenie opóźnienia przed wykonaniem każdego pomiaru. Po włączeniu zasilania lub po rozkazie *RST, system wyzwalania jest skonfigurowany na wykonanie jednego pomiaru za każdym razem, kiedy odbierze wyzwolenie. System wyzwalania można skonfigurować na wielokrotne wykonanie pomiaru po każdym wyzwoleniu (do 50000 pomiarów na jedno wyzwolenie). Po włączeniu zasilania lub po rozkazie *RST multimetr jest skonfigurowany na wewnętrzne źródło wyzwalania i po wprowadzeniu go w stan oczekiwania na wyzwolenie, zostanie wykonany jeden pomiar, po którym system wyzwalania wróci do stanu spoczynkowego. System wyzwalania multimetru HP-34401A przedstawiono na rys. 3. 8 Initiate Triggering: MEASure? READ? INITiate Trigger Source: TRIGger:SOURce IMMediate TRIGger:SOURce EXTernal TRIGger:SOURce BUS Trigger Delay: TRIGger:DELay Sample (*) Annunciator Idle State Wait-for Trigger State Dealy Measurement Sample Sample Trigger Count≠1 Count≠1 Rys.3. System wyzwalania multimetru HP-34401A. Wyzwolenie multimetru dające w efekcie wynik pomiaru jest kilkuetapowym procesem, na który składają się następujące czynności: 1. Konfiguracja multimetru do pomiaru, tzn. wybranie funkcji, zakresu, rozdzielczości etc; 2. Wybór źródła wyzwalania, z którego multimetr będzie akceptował wyzwalanie. Multimetr akceptuje trzy źródła wyzwalania: -bezpośrednie - z wewnętrznego generatora wyzwalającego, oznaczone skrótem IMM; -programowe - poprzez magistralę (rozkaz *TRG), oznaczone BUS; -wyzwalanie sprzętowe poprzez zewnętrzne wejście wyzwalające, oznaczone skrótem EXT (nie używane w ćwiczeniu); 3. Wprowadzenie systemu wyzwalania w stan oczekiwania na wyzwolenie (wait-for-trigger state). Wyzwolenie nie będzie zaakceptowane jeżeli multimetr nie jest w stanie oczekiwania na wyzwolenie. 4. Wyzwolenie multimetru. • Konfiguracja multimetru. Do konfiguracji multimetru służy podsystem CONFigure. UWAGA: zapis typu CONFigure oznacza, że można używać skrótu CONF zamiast całej nazwy CONFIGURE. 9 Składnia wybranych rozkazów z podsystemu CONFigure: -konfiguracja do pomiaru napięcia stałego (DC) albo zmiennego (AC); CONFigure:VOLTage:DC {<range>|MIN|MAX|DEF}, {<resolution>|MIN|MAX|DEF} CONFigure:VOLTage:AC {<range>|MIN|MAX|DEF}, {<resolution>|MIN|MAX|DEF} -konfiguracja do pomiaru prądu stałego (DC) albo zmiennego (AC); CONFigure:CURRent:DC {<range>|MIN|MAX|DEF}, {<resolution>|MIN|MAX|DEF} CONFigure:CURRent:AC {<range>|MIN|MAX|DEF}, {<resolution>|MIN|MAX|DEF} Przykłady: -konfiguracja do pomiaru napięcia stałego, zakres 10V, rozdzielczość 0.003V: CONF:VOLT:DC 10, 0.003 -konfiguracja do pomiaru prądu zmiennego, zakres 1A, rozdzielczość 0.1mA: CONF:CURR:DC 1, 0.1M • Wybór źródła wyzwalania. Do wyboru źródła wyzwalania służą rozkazy z podsystemu TRIGger: TRIGger:SOURce {BUS|IMMediate|EXTernal} Przykład: TRIG:SOUR BUS Po włączeniu zasilania ustawiane jest bezpośrednie źródło wyzwalania (IMM). Rozkazy z podsystemu CONFIGURE także automatycznie ustawiają źródło wyzwalania na bezpośrednie. • Wprowadzenie systemu wyzwalania w stan oczekiwania na wyzwolenie. Następujące rozkazy wprowadzają system wyzwalania w stan oczekiwania na wyzwolenie: READ? INITiate MEASure? 10 Rozkaz READ? działa tylko przy źródle wyzwalania ustawionym na IMM albo EXT, nie działa przy źródle BUS. W przypadku źródła wewnętrznego (IMM) wykonanie rozkazu READ? jest praktycznie równoważne z wyzwoleniem multimetru. Wynik pomiaru jest umieszczany w buforze wyjściowym multimetru. Przykład: CONF:VOLT:DC 10, 0.003 READ? Rozkaz INIT działa ze wszystkimi źródłami wyzwalania. W odróżnieniu od rozkazu READ? wynik jest umieszczany w pamięci wewnętrznej multimetru, skąd należy go pobrać do bufora wyjściowego rozkazem FETCh?. Rozkaz READ? daje więc ten sam efekt co rozkaz INIT z następującym po nim bezpośrednio rozkazem FETCh?. Zapamiętywanie wyników w pamięci wewnętrznej jest szybsze niż przesyłanie ich do bufora wyjściowego. Multimetr może zapamiętać do 512 wyników w pamięci wewnętrznej. Przykłady: -wyzwolenie wewnętrzne: CONF:VOLT:DC 10, 0.003 INIT FETCh? -wyzwolenie programowe z magistrali: CONF:VOLT:DC 10, 0.003 TRIG:SOUR BUS INIT *TRG FETCh? Najprostszym sposobem zaprogramowania multimetru jest użycie rozkazu MEASure?. Wysłanie rozkazu MEASure? jest równoważne wysłaniu rozkazu CONFigure z bezpośrednio po nim następującym rozkazem READ?. Wykonanie rozkazu MEASure? powoduje, że multimetr bezpośrednio wykonuje pomiar, co nie zawsze jest korzystne. Rozkaz CONFigure z następującym po nim rozkazem INITiate lub READ? jest bardziej elastyczny. Składnia rozkazu MEASure różni się tylko pierwszym słowem od podanej wcześniej składni rozkazu CONFigure, tzn. zamiast słowa CONFigure należy użyć MEASure. Rozkaz MEASure podobnie jak CONFigure automatycznie ustawia źródło wyzwalania na IMM. Przykład: MEAS:VOLT:DC? 10, 0.003 11 4.3 FORMAT WYNIKU POMIARU MULTIMETRU HP-34401A Dla pojedynczego wyniku pomiaru przyjęto następujący format zgodny ze standardem IEEE-488.2 : SD.DDDDDDDDESDD<NL> S D E <nl> Przykład: (16 bajtów) -znak wyniku; -cyfry dziesiętne; -eksponent; -znak nowej linii. +4.00000000E+00. 4.4 NAJCZĘŚCIEJ SYGNALIZOWANE BŁĘDY PRZEZ MULTIMETR HP-34401A -101 Invalid character Wykryto niewłaściwy znak w słowie programującym np.: CONF:VOLT#DC -102 Syntax error Nieprawidłowa składnia słowa programującego np. spacja przed lub po dwukropku bądź przecinku np.: SAMP:COUN ,1 -103 Invalid separator Nieprawidłowy znak przestankowy w słowie programującym np. przecinek zamiast dwukropka -105 GET not allowed Niedozwolone wyzwolenie przyrządu: przyrząd nie został jeszcze poprawnie zaprogramowany -108 Parameter not allowed Za dużo parametrów w tekście programującym lub parametr po słowie, które jego nie wymaga np.: READ? 10 -109 Missing parameter Zbyt mało parametrów np.: SAMP:COUN -113 Undefined header Nieznana komenda. Prawdopodobnie wystąpił błąd ortograficzny w tekście programującym np.: TRIGG:COUN 3 (forma skrócona komendy musi składać się z 4 znaków) -121 Invalid character in number Nieprawidłowy znak w liczbie określającej wartość parametru np.: 12 STAT:QUES:ENAB #B01010102 -211 Trigger ignored Zignorowane polecenie wyzwolenia przyrządu. Należy upewnić się, że multimetr znajduje się w stanie oczekiwania na wyzwolenie „wait-for-trigger state” i wyzwolenie przyrządu nastąpiło z odpowiedniego źródła -213 Init ignored Zignorowane polecenie INIT. Multimetr prawdopodobnie nie zakończył jeszcze poprzedniego pomiaru -222 Data out of range Liczbowa wartość parametru spoza dozwolonego zakresu np.: TRIG:COUN -3 -410 Query INTERRUPTED Przyrząd otrzymał komendę wysyłającą dane do bufora wyjściowego, lecz bufor ten zawiera dane umieszczone w nim w wyniku działania poprzedniej komendy. Należy usunąć dane z bufora np.: rozkazem *RST lub wyłączeniem zasilania -532 Cannot achieve reqested resolution Przyrząd nie może zaakceptować podanego tekstu programującego. Prawdopodobnie wystąpił błąd w składni komendy CONFigure lub MEASure 5. PYTANIA KONTROLNE 1. Opisać typową sekwencję operacji, jaką należy wykonać za pomocą testera interfejsu IEC625 aby zaprogramować,wyzwolić i odebrać wynik z multimetru HP-34401A. 2. Omówić metodę transmisji stosowaną w standardzie IEC-625 tzw. handshake trójprzewodowy. 13 D1. SYSTEM STATUSU W STANDARDZIE SCPI Wszystkie urządzenia w standardzie SCPI mają tak samo zorganizowany system statusu. System ten przedstawiono na rysunku 4. Bufor wyjściowy Bajt Statusu Rejestr Sumaryczny Zdarzenie Standardowe Rejestr Zdarzeń Zakończ. Operację Nie Wykorzystany Błąd Zapytania Błąd Urządzenia Błąd Wykonania Błąd Rozkazu Nie Wykorzystany Zasilanie *ESR? Nie Wykorzystany Rejestr Maski Nie Wykorzystany Nie Wykorzystany 0 1 2 3 4 5 6 7 Nie Wykorzystany OR Dostępny Komunikat Zdarzenie Standard. Żądanie Obsługi Nie Wykorzystany *ESE <wartość> *ESE? Odpyt. Szereg. *STB? Rejestr Maski 0 1 2 3 4 5 6 7 OR *SRE <wartość> *SRE? Rys.4. System statusu. System statusu składa się z rejestru zdarzeń standardowych i z rejestru bajtu statusu (zwanego też sumarycznym rejestrem bajtu statusu). Są to rejestry przeznaczone tylko do odczytu. Ponadto, każdemu z tych rejestrów przydzielono rejestr maski. Rejestry maski umożliwiają maskowanie poszczególnych bitów rejestru bajtu statusu i rejestru zdarzeń standardowych. Dowolny rejestr maski można zarówno odczytać, jak i zapisać. Suma logiczna niezamaskowanych bitów rejestru zdarzeń standardowych daje w rezultacie jeden bit, który jest następnie umieszczany w rejestrze bajtu statusu jako bit o numerze 5. Jest to tzw. bit zdarzenia standardowego. Niezamaskowane bity rejestru bajtu statusu także są sumowane logicznie. Wynik tego sumowania jest umieszczany w rejestrze bajtu statusu jako bit o numerze 6. Jest to tzw. bit żądania obsługi. Bit ten bezpośrednio steruje linią SRQ interfejsu. Ustawienie się tego bitu jest więc równoważne ze zgłoszeniem przerwania. Bit ten nie jest sumowany logicznie z innymi niezamaskowanymi bitami rejestru bajtu statusu, ponieważ odpowiadający mu bit w rejestrze maski jest zawsze równy zeru (próba ustawienia tego bitu zostanie zignorowana). Oprócz bitu żądania obsługi i bitu zdarzenia standardowego w rejestrze bajtu statusu istotny jest bit, który sygnalizuje dostępność komunikatu (np. wyniku pomiaru) w buforze wyjściowym. Jest to tzw. bit dostępności komunikatu. Komunikat w buforze wyjściowym pojawia się w wyniku wykonania rozkazu typu zapytanie. Wykonanie np. rozkazu *STB? spowoduje odczytanie bajtu statusu i umieszczenie go w buforze wyjściowym. Pojawienie się komunikatu w buforze wyjściowym (w tym przypadku bajtu statusu) zostaje następnie zasygnalizowane przez ustawienie bitu dostępności komunikatu w rejestrze bajtu statusu. 14 Pozostałe niewykorzystane bity rejestru bajtu statusu (zwanego też sumarycznym rejestrem bajtu statusu) mogą być wykorzystane przez producentów urządzeń zgodnych z SCPI. Przykładowo w multimetrze HP-34401A znajduje się dodatkowy rejestr zdarzeń, a mianowicie rejestr służący do sygnalizacji niepewności danych pomiarowych (rys.5). Rejestr ten jest 16-bitowy, z czego wykorzystano tylko 5 bitów. Stan tych bitów informuje między innymi o przekroczeniu zakresu pomiarowego. Z rejestrem tym stowarzyszony jest rejestr maski i sumator logiczny. Wynik sumowania umieszczany jest w sumarycznym rejestrze statusu jako bit o numerze 3. Informację dostarczaną przez ten rejestr można wykorzystać np. do programowej zmiany zakresu pomiarowego multimetru. Niepewność Danych Rejestr Zdarzeń Rejestr Maski 0 1 Not Used 2 Not Used 3 Not Used 4 Not Used 5 Not Used 6 OR Bit nr 3 Not Used 7 Rejestru Not Used 8 Sumarycznego Ohms Overload 9 Not Used 10 Limit Test Fail LO 11 Limit Test Fail HI 12 Not Used 13 Not Used 14 Not Used 15 STAT:QUES:EVEN? STAT:QUES:ENAB <wartość> STAT:QUES:ENAB? Voltage Overload Current Overload Rys.5. Dodatkowy rejestr zdarzeń zastosowany w multimetrze HP-34401. Zastosowany system bajtu statusu jest więc bardzo elastyczny. Rejestry maski umożliwiają np. zgłaszanie żądania obsługi spowodowane różnymi zdarzeniami. Praktyczne uwagi dotyczące wykorzystania poszczególnych rejestrów systemu statusu w programach aplikacyjnych: • Rejestry zdarzeń. Można je tylko czytać. Bity w rejestrach zdarzeń są zatrzaskiwane, tzn. raz ustawiony bit jest pamiętany niezależnie od zmian zdarzenia. Bity te są automatycznie zerowane w następujących przypadkach: -poprzez odczytanie danego rejestru zdarzeń za pomocą rozkazu zapytania np. *ESR? (rejestr zdarzeń standardowych) lub STAT:QUES:EVEN? (rejestr niepewności danych w multimetrze HP-34401A); -za pomocą rozkazu *CLS (clear status). 15 Reset (*RST) lub zerowanie urządzenia nie zerują bitów w rejestrach zdarzeń. Odczytanie rejestru zdarzeń daje dziesiętną wartość odpowiadającą ważonej binarnie sumie bitów ustawionych w rejestrze. • Rejestry maski. Można je czytać i zapisywać. Do czytania poszczególnych rejestrów maski służą rozkazy typu zapytanie: *SRE?, *ESE?, STAT:QUES:ENAB?. Każdy z nich dotyczy jednego rejestru maski zgodnie z rysunkami rys.2 i rys.3. Odczytanie dowolnego rejestru maski nie zmienia jego zawartości. Rozkaz *CLS (clear status) także nie ma wpływu na zawartość rejestrów maski. Do zapisywania rejestrów maski służą następujące rozkazy: *SRE <wartość>, *ESE <wartość>, STAT:QUES:ENAB <wartość>. • Sumaryczny rejestr statusu. Zawiera sumaryczną informację zgłaszaną przez pozostałe grupy rejestrów. Bity w sumarycznym rejestrze statusu nie są zatrzaskiwane. Wyzerowanie np. któregoś z rejestrów zdarzeń spowoduje wyzerowanie odpowiadającego mu bitu w sumarycznym rejestrze statusu. W szczególności: -odczytanie rejestru standardowego zdarzenia lub rejestru niepewności danych zeruje odpowiadające tym rejestrom bity w sumarycznym rejestrze bajtu statusu; -odebranie (odczytanie) wszystkich komunikatów z bufora wyjściowego wyzeruje bit dostępności komunikatu; Wyzerowanie tych bitów może oznaczać zniknięcie przyczyny żądania obsługi, czyli dodatkowo wyzerowanie bitu żądania obsługi, a to oznacza zmianę stanu linii SRQ z aktywnego na nieaktywny. Przeprowadzenie odpytywania szeregowego także zeruje bit żądania obsługi. Rozkaz *STB? zwraca ten sam rezultat (bajt statusu) co odpytywanie szeregowe, nie zeruje jednak bitu żądania obsługi. Wszystkie bity bajtu statusu można wyzerować rozkazem *CLS. 16