INSTYTUT AUTOMATYKI
Politechniki lskiej w Gliwicach
ZAKAD SYSTEMÓW POMIAROWYCH
LABORATORIUM INTERFEJSÓW
W SYSTEMACH POMIAROWYCH
wiczenie nr 2
STANDARD INTERFEJSU IEEE 488.2
oraz S.C.P.I.
( Standard Commands
for Programmable Instruments )
Opracowa:
dr in. Janusz ELEZIK
Gliwice 1994, 2004
1 Cel wiczenia
Celem wiczenia jest zapoznanie si z rozszerzeniem standardu interfejsu pomiarowego IEC-625 (IEEE 488), znanego pod nazw IEEE 488.2 oraz uniwersalnym jzykiem SCPI (Standard Commands for Programmable Instruments), który stosuje si w programowanych przyrzdach pomiarowych. Oba standardy dotycz obszaru software'u. Implementacj IEEE 488.2 dla komputera personalnego typu PC jest oprogramowanie podstawowe NI-488.2 firmy National Instruments, które studenci poznaj i wykorzystuj w czasie wiczenia przy tworzeniu programów obsugi programowanych przyrzdów pomiarowych. Na przykadzie inteligentnego multimetru HP34401A wiczcy ucz si wykorzystania rónorodnych funkcji pomiarowych tego przyrzdu z zastosowaniem do komunikacji rozkazów SCPI.
2 Wprowadzenie
Standard interfejsu IEC-625, znany równie jako IEEE 488, HP-IB, GPIB sta si ze wzgldu na swoje zalety najpowszechniej stosowanym systemem interfejsu pomiarowego. Wprowadzona w latach siedemdziesitych pierwsza wersja tego standardu umoliwia proste czenie rónorodnych urzdze cyfrowych, m.in przyrzdów pomiarowych i ich sprzgnicie z komputerem w celu uzyskania systemów pomiarowych do obsugi zoonych eksperymentów. Normalizacja obejmowaa gównie dziedzin hardware, m.in. wymagania mechaniczne i elektryczne. Zostaa zdefiniowana struktura równolegej magistrali interfejsu i rodzaje przesyanej informacji (komunikaty jedno i wieloliniowe). Okrelono, w jaki sposób pojedyncze komunikaty s przesyane po magistrali (protokó handshake) i jak powinny zachowywa si urzdzenia przy nadawaniu i odbieraniu komunikatów (funkcje interfejsowe).
Najwikszym niedostatkiem byo brak ustale w dziedzinie software. W szczególnoci nie byy ustalone protokoy komunikacyjne, potrzebne przy wymianie informacji, formaty przesyanych danych, uniwersalny sposób raportowania statusu urzdze, czy wreszcie rozkazy programujce urzdzenia. Rezultatem tego bya rónorodno i dowolno rozwiza u rónych producentów. W efekcie tego skonfigurowanie kadego systemu byo zadaniem trudnym, wymagao indywidualnego podejcia szczególnie do oprogramowania, a dalej wizao si ze strat czasu i kosztem.
W zwizku z tym po wielu latach dowiadcze ucilono i rozszerzono podstawowy standard, jak to pokazano na rys. 1. Pierwotne ustalenia w dziedzinie hardware nazwano IEEE 488.1, natomiast wprowadzono dodatkowo standard IEEE 488.2 i zalecenia SCPI. Stosowanie tych standardów usuwa poprzednie problemy niekompatybilnoci, upraszcza tworzenie nowych i zmian konfiguracji istniejcych aplikacji.
Rys. 1.Ewolucja standardu IEEE 488 (IEC).
2.1 IEEE 488.2
Standard IEEE 488.2 (wprowadzony w 1987r) ustala dodatkowy, wyszy poziom zgodnoci interfejsu IEEE-488, a jednoczenie usuwa trudnoci, które wystpoway przy stosowaniu IEEE-488.1. Ustala protokoy wymiany informacji midzy urzdzeniami, a kontrolerem; definiuje formaty danych i sposób raportowania statusu - jednolity dla rónych urzdze.
Poniewa nowe wymagania zastay okrelony stan aktualny to ustalono, e powinna by równie moliwo wspópracy z urzdzeniami wykonanymi w.g. pierwotnej wersji standardu IEEE 488.1. Wszystkie zalety i korzyci uzyskuje si jednak dopiero wtedy, kiedy zarówno kontroler jak i urzdzenia s zgodne i kompatybilne z IEEE 488.2.
2.1.1 Wymagania IEEE.2 dla kontrolera
Norma definiuje okrelone wymagania dla kontrolera, które nie byy obligatoryjne w IEEE 488.1. W szczególnoci kontroler powinien mie moliwo:
-sterowania liniami Iterface Clear IFC oraz Remote Enable REN,
-ustawiania i detekcji stanu linii End Or Identify EOI;
-reagowania na zmian stanu linii Service Request SRQ;
-wykrywania przekroczenia limitów czasowych przy operacjach I/O (timeout),
-monitorowania linii magistrali.
Innymi wanymi ustaleniami s tzw. "Sekwencje sterujce" i "Protokoy".
2.1.1.1 Sekwencje sterujące
Standard IEEE 488.1 definiuje tylko zbiór elementarnych komunikatów, które mog by przesyane po magistrali. Wiadomo, e przy komunikowaniu si sterownika z urzdzeniami i wykonywaniu okrelonych operacji musz by wykonywane pewne sekwencje tych komunikatów. Tak np. w celu przesania pewnych danych midzy urzdzeniami sterownik musi ustali sygna ATN=1, zaadresowa nadajnik i odbiorniki, umoliwi przesanie danych przy ATN=0, za po wykryciu koca bloku danych (np. EOI=1) ponownie przej sterowanie magistral. Dodatkowo naley w odpowiednim czasie rozadresowa urzdzenia - na pocztku i/lub na kocu operacji.
IEEE 488.2 definiuje wanie pewien zbiór potrzebnych sekwencji sterujcych, które umoliwiaj realizacj najczciej wykonywanych operacji interfejsowych. Sekwencja sterujca jest cigiem kilku komunikatów, przy czym okrelona jest dokadnie ich kolejno, jak i stan interfejsu przed, w trakcie operacji i po jej wykonaniu.
W tablicy 1 podano zbiór 15 wymaganych i 4 opcjonalnych sekwencji sterujcych IEEE 488.2, opis kadej z nich mówi jednoznacznie o przeznaczeniu. Obejmuj one takie proste operacje jak przesyanie danych, komunikatów interfejsowych, sterowanie urzdzeniami (np. zerowanie i wyzwalanie), jak i zarzdzanie magistral.
Dziki sekwencjom programowanie systemu jest o wiele prostsze. Zamiast szczegóowego podawania cigu elementarnych komunikatów interfejsowych wystarczy wykonywa cae sekwencje, realizujce w sposób kompletny wymagane operacje uytkowe. Z kolei jednoznaczne, zdefiniowane zachowanie si urzdze w trakcie operacji usuwa problemy niekompatybilnoci, jakie wystpoway w IEEE 488.1. System jest bardziej niezawodny i przewanie szybszy.
TABLICA 1 Sekwencje sterujce IEEE 488.2
Lp |
Nazwa sekwencji |
Opis |
|
1 |
SEND COMMAND |
Nadanie komunikatów interfejsowych |
|
2 |
SEND SETUP |
Zaadresowanie wybr. urzdze do odbioru |
|
3 |
SEND DATA BYTES |
Przesanie danych do zaadresowan. urzdze |
|
4 |
SEND |
Przesanie danych do okrel. urzdzenia |
|
5 |
RECEIVE SETUP |
Zaadresow. wybr. urzdzenia do nadawania |
|
6 |
RECEIVE RESPONSE MESSAGE |
Przyjcie danych od urzdzenia zaadresowanego do nadawania. |
|
7 |
RECEIVE |
Przyjcie danych od okrel. urzdzenia |
|
8 |
SEND IFC |
Nadanie komunikatu jednoliniowego IFC |
|
9 |
DEVICE CLEAR |
Zerowanie wybranych urzdze (SDC) |
|
10 |
ENABLE LOCAL CONTROLS |
Ustaw wybrane urzdz. na ster. lokalne |
|
11 |
ENABLE REMOTE |
Ustaw wybrane urzdz. na sterow. zdalne |
|
12 |
SET RWLS |
Ustaw sterow. zdalne z blokad lokalnego |
|
13 |
SEND LLO |
Ustaw blokad ster. lokaln. wszystk. urz. |
|
14 |
READ STATUS BYTE |
Odpytyw. szeregowe pojedyn. urzdzenia |
|
15 |
TRIGGER |
Wyzwolenie pojedynczego urzdzenia |
|
16 |
PASS CONTROL |
Przeka sterowanie do innego kontrolera |
opc |
17 |
PERFORM PARALLEL POLL |
Wykonaj odpytywanie równolege |
opc |
18 |
PARALLEL POLL CONFIG. |
Konfig. urzdzenia do odpyt. równoleg. |
opc |
19 |
PARALLEL POLL UNCONFIGURE |
Likwidacja kontroli równolegej w wybranych urzdzeniach |
opc |
opc - oznacza sekwencj opcjonaln.
2.1.1.2 Protokoły
Protokoy IEEE 488.2 s procedurami wyszego poziomu ni sekwencje sterujce i obejmuj przewanie kilka sekwencji. Ogólnie su do wykonania ogólnych, systemowych operacji testujcych. W tablicy 2 podano wykaz protokoów, zawiera ona dwa protokoy wymagane i sze opcjonalnych.
TABLICA 2 Protokoy kontrolera IEEE 488.2
Lp |
Nazwa |
Opis |
|
1 |
RESET |
Zainicjowanie systemu |
|
2 |
FINDRQS |
Odszukaj urzdzenie dajce obsugi (RQS) |
opc. |
3 |
ALLSPOLL |
Odpytanie szeregowe wszystkich urzdze w systemie |
|
4 |
PASSCTL |
Przekazanie sterowania magistral do innego kontrolera |
opc. |
5 |
REQUESTCTL |
Przejcie sterowania magistral |
opc. |
6 |
FINDLSTN |
Odszukanie wszystkich odbiorników |
opc. |
7 |
SETADD |
Ustawienie adresu |
opc. |
8 |
TESTSYS |
Równoczesne wykonanie wewntrznych testów urzdze |
opc. |
Protokó RESET inicjalizuje cay system i ustawia wszystkie urzdzenia w znany stan pocztkowy. Drugi z obowizujcych protokoów wykonuje kontrol szeregow wszystkich urzdze i zwraca bajty statusu. PASSCTL i REQUESTCTL umoliwiaj przekazywanie sterowania magistral midzy rónymi urzdzeniami.
Dwa wane protokoy FINDLSTN i FINDRQS wykorzystuj waciwo kontrolera IEEE 488.2 do monitorowania linii magistrali. Umieszczenie pierwszego z nich na pocztku programu aplikacyjnego umoliwia okrelenie aktualnej konfiguracji systemu. Lista wykrytych odbiorników jest wykorzystywana dalej w innych protokoach np. TESTSYS, który wykonuje i zbiera raporty z testów wewntrznych wszystkich urzdze.
Protokó FINDRQS jest wygodnym narzdziem odpytywania szeregowego i szybkiego wykrycia urzdze, które zgaszaj danie obsugi.
2.1.2 Wymagania IEEE 488.2 od urzdze
Standard IEEE 488.2 definiuje równie zbiór wymaga, którym powinny odpowiada wszystkie urzdzenia. I tak, kade z urzdze musi mie moliwo:
-odbioru i nadawania danych zgodnie z ustalonym protokoem;
-zgaszania dania obsugi SRQ i odpowiedzi na odpytywanie szeregowe;
-wykonywania rozkazu zerowania urzdzenia.
-cile okrelonego raportowania statusu urzdzenia;
-wykonywania pewnego zbioru tzw. rozkazów wspólnych i udzielania odpowiedzi
na okrelone zapytania kontrolera.
W szczególnoci dwa ostatnie wymienione ustalenia wymagaj od kadego z urzdze pewnej inteligencji.
2.1.2.1 Rozkazy i zapytania uniwersalne
Rozkazy i zapytania uniwersalne dla wszystkich urzdze IEEE 488.2 s niezalene od ich przeznaczenia. Mog by wysyane przez kontroler w postaci cztero- bd picioznakowego acucha danych i rozpoczynajcego si zawsze od znaku *. W tablicy 3 podano ich zestawienie wraz ze skróconym opisem.
Rozkazy wymagaj wykonania przez urzdzenie okrelonych operacji, np. *RST powinno ustawi urzdzenie w znany stan pocztkowy, jak po wczeniu zasilania, *TRG powoduje wyzwolenie urzdzenia (podobnie jak komunikat interfejsowy GET).
acuchy zakoczone znakiem ? oznaczaj zapytania do urzdzenia. To ostatnie musi udzieli na nie odpowiedzi przez umieszczenie odpowiednio sformatowanego meldunku w buforze wyjciowym. Wystawiona odpowied moe by nastpnie przesana do kontrolera po wykonaniu przez niego odczytu (np. sekwencja RECEIVE). Tak np. *IDN? jest zapytaniem identyfikacyjnym, po jego otrzymaniu urzdzenie powinno poda: producenta, typ przyrzdu i wersj. *TST? powoduje wykonanie przez urzdzenie testu wewntrznego i podanie raportu (0 - oznacza poprawno testu, inna liczba - kod bdu).
TABLICA 3
Rozkazy i zapytania uniwersalne dla urzdze wg IEEE 488.2
Lp |
Symbol |
Nazwa angielska |
Opis |
1 |
*IDN? |
IDeNtification query |
Identyfikacja urzdzenia |
2 |
*TST? |
self TeST query |
Wykonanie testu wewn. (0-odp.pozytywna) |
3 |
*RST |
ReSeT command |
Ustawienie stanu, jak po wczeniu zasilania |
4 |
*TRG |
TRiGger |
Wyzwolenie urzdzenia (jak GET) |
5 |
*ESR? |
Event Status Register q |
Pyt. o zawarto rejestru zdarze i 0->ESR |
6 |
*ESE {v} |
Event Status Enable |
Ustawienie maski rejestru zdarze |
7 |
*ESE? |
" query |
Pytanie o mask rejestru zdarze |
8 |
*STB? |
read STatus Byte |
Odczytanie bajtu statusu |
9 |
*SRE {v} |
Service Request Enable |
Ustawienie maski do generacji SRQ |
10 |
*SRE? |
" query |
Pytanie o mask do generacji SRQ |
11 |
*PSC {b} |
Power-on Status Clear |
Maska kasowania statusu po zaczeniu |
12 |
*PSC? |
" query |
Pytanie o mask PSC (j.w.) |
13 |
*CLS |
CLear Status |
Kasowanie rejestru statusu i rej. zdarze |
14 |
*OPC |
OPeration Complete |
Ustaw bit zakoczenia operacji w ESR |
15 |
*OPC? |
" query |
Po zakoczeniu operacji 1 w buforze wy. |
16 |
*WAI |
WAIt to complete |
Oczekiwanie na zakoczenie operacji |
Objanienia:
v - liczba z przedziau 0-255, otrzymana po zsumowaniu wszystkich bitów maski z odpowiednimi wagami;
b - 0 - nie, 1 - tak :kasuj status po wczeniu zasilania.
2.1.2.2 Raportowanie statusu
Pewna liczba rozkazów i zapyta (tab. 3. poz.5 15) dotyczy sposobu raportowania statusu urzdzenia. W tym celu wymaga si, aby urzdzenie posiadao okrelone rejestry statusu. Map rejestrów i model raportowania statusu pokazano na rys. 2.
Rys. 2.System raportowania statusu w.g. IEEE 488.2 i SCPI.
W IEEE 488.2 wymagane s dwie pary rejestrów statusu nazwane:
-bajt statusu (Status Byte) i
-rejestr zdarze (Standard Event).
Rys. 2 pokazuje system raportowania statusu dla multimetru HP34401A, zgodnego równie z dalej omawianymi zaleceniami SCPI, a wtedy potrzebna jest trzecia para rejestrów statusu tj.: Questionable Data. Dla zwartoci omówiono je cznie.
Kada para rejestrów skada si z waciwego rejestru, którego bity odzwierciedlaj okrelony stan urzdzenia oraz odpowiadajcego rejestru masek. Sumaryczny bit stanu z kadej pary rejestrów jest wypracowywany jako suma logiczna tych bitów rejestru waciwego, dla których odpowiadajce maski maj warto 1.
Znaczenie poszczególnych bitów rejestrów statusu podano na rysunku 2. Ich stan mona odczyta z przyrzdu wykorzystujc odpowiednie zapytania (wg.tab.3): *ESR?, *STB?, ESE?, SRE?; urzdzenie zwraca liczb dziesitn {v} odpowiadajc waonej sumie wszystkich bitów rejestru. Tylko do rejestrów masek moliwy jest zapis. Realizuje si to za pomoc rozkazów wspólnych *ESE {v}, *SRE {v}, gdzie parametr {v} ma to samo znaczenie, jak przy odczycie.
Rozkaz *CLS zeruje wszystkie rejestry statusu, natomiast nie zmienia rejestrów masek. Z kolei rozkaz *RST (reset) nie powoduje zmiany w adnym z rejestrów.
Event Register (ESR) jest rejestrem zatrzaskowym; tzn. po wystpieniu okrelonego zdarzenia i ustawieniu przez urzdzenie "1" na odpowiadajcym bicie kolejne zmiany stanu s ignorowane, a do odczytania tego rejestru *ESR? , bd otrzymania rozkazu *CLS. Te dwa rozkazy zeruj rejestr ESR.
Na uwag zasuguje pierwszy bit rejestru ESR - "operacja zakoczona". Bit ten jest ustawiany rozkazem wspólnym *OPC. Umieszczenie tego rozkazu na kocu pewnej sekwencji powoduje, e zostanie zasygnalizowane zakoczenie wszystkich operacji ustawieniem "1" na zerowym bicie rejestru zdarze ESR. Uwaga: podobny rozkaz zapytania *OPC? dziaa nieco inaczej; po zakoczeniu operacji wpisywana jest "1" do bufora wyjciowego urzdzenia.
Rejestr Questionabla Data (SCPI) zawiera m.in. dane o jakoci wykonanych pomiarów. Bity 0, 1 i 9 informuj o wystpieniu nadmiaru w pomiarze. Z kolei bity 11 i 12 s ustawiane podczas wykorzystania funkcji multimetru "LIMIT TEST" - testowania wyników pomiaru na zadane ograniczenia; sygnalizowane jest odpowiednio przekroczenie ograniczenia górnego, bd dolnego.
Najwaniejszym rejestrem statusu jest Status Byte (bajt statusu), wykorzystywany m.in. przy odpytywaniu szeregowym i wprowadzony ju w IEEE 488.1. S w nim raportowane sumaryczne bity statusu pozostaych rejestrów (rys. 2). Bit 4 (MAV - Message Available) jest ustawiany ("1"), jeeli w buforze wyjciowym urzdzenia znajduj si jakiekolwiek dane (meldunek) gotowe do wysania (np. wynik pomiaru, odpowied na zapytanie).
Maska SRE bajtu statusu decyduje na podstawie których bitów ma by wypracowane danie obsugi SRQ (Service Request). Jednoczenie z tym jest ustawiany 6 bit bajtu statusu (komunikat RQS - Request Service), który pozwala zidentyfikowa urzdzenie zgaszajce obsug podczas kontroli szeregowej.
W przeciwiestwie do ESR rejestr Status Byte nie jest zatrzaskowym, tzn. raportowane s zawsze stany biece. Odczyt stanu bajtu statusu za pomoc zapytania *STB? nie zeruje rejestru!. Jak wiadomo, inn moliwoci odczytania statusu jest wykonanie odpytywania szeregowego, lecz ta operacja nie jest równowana *STB?. Po kontroli szeregowej jest zerowany bit RQS w bajcie statusu oraz likwidowane danie obsugi SRQ.
Z raportowaniem statusu zwizane s jeszcze 2 rozkazy uniwersalne. I tak, wykonanie PSC 0 (Power-on Status Clear) spowoduje, e wyczenie zasilania nie zmieni stanu rejestrów: bajtu statusu (STB) i maski rejestru zdarze (ESE). Rozkaz PSC 1 daje efekt odwrotny. Z kolei zapytanie *PSC? suy do odczytania aktualnego ustawienia w.w. stanu kasowania statusu przy wyczaniu urzdzenia.
2.2 Zalecenia SCPI
Chocia standard IEEE 488.2 porzdkuje dziedzin oprogramowania interfejsu m.in. przez zdefiniowanie wspólnych rozkazów, okrelenie protokoów wymiany informacji, sposobu raportowania statusu, to jednak pozostawia spraw otwart sam sposób (rozkazy) programowania funkcji uytkowych przyrzdów. Mówic obrazowo standard IEEE 488.2 precyzuje jak urzdzenia maj nadawa i odbiera, ale dalej dopuszcza, aby róne przyrzdy "rozmawiay" rónymi jzykami. Pewn namiastk wspólnego jzyka s jedynie w.w. rozkazy i zapytania uniwersalne.
Efektem braku standardu w tej dziedzinie bya wielka rónorodno rozwiza wród producentów aparatury. Przykadowo funkcja pomiaru napicia staego w multimetrze bya programowana w jednym typie przyrzdu jako "X3", podobny przyrzd innego producenta wymaga rozkazu "F1" itd. Tak wic, gdy zachodzia potrzeba wymiany przyrzdu w systemie naleao zmienia i oprogramowanie. Ponadto naleao uczy si programowania nowego przyrzdu.
Aby zaradzi tym kopotom konsorcjum 31 firm, producentów aparatury pomiarowej zaproponowao w 1990 roku standard w tej dziedzinie nazwany skrótowo SCPI (od Standard Commands for Programmable Instruments). Jest to zwarte rodowisko programowe i jzyk dla przyrzdów programowanych. Definiuje struktur, skadni i zbiór rozkazów do komunikacji midzy kontrolerem i przyrzdami w automatycznych systemach pomiarowych.
2.2.1 Cechy standardu SCPI
SCPI jest rozwiniciem IEEE 488.2, std obowizuj ustalenia tam przyjte. Poniewa jednak jzyk programowania przyrzdów dotyczy gównie ich funkcji uytkowych niezalenie od rodzaju interfejsu, std zaleca si stosowanie SCPI równie w innych interfejsach pomiarowych np. RS 232. SCPI jest równie obowizujcym standardem w nowoczesnym systemie interfejsu VXI.
Przyjto zaoenie, e ma to by jzyk uniwersalny, tzn. niezaleny od rodzaju i typu przyrzdu. Tak np. jeli ma by realizowana funkcja pomiaru napicia staego, to niezalenie czy to bdzie prosty woltomierz, czy zoony multimetr, powinien by programowany VOLTAGE:DC. Jeeli ma by ustawiony zakres przyrzdu, to zarówno dla woltomierza, omomierza, czstociomierza, oscyloskopu czy kalibratora naley przesa rozkaz RANGE itp.
SCPI jest jzykiem samokomentujcym si. Rozkazy s po prostu angielskimi nazwami (lub powszechnie znanymi skrótami) odpowiednich wielkoci, funkcji, parametrów itp., np. FRQUENCY, CALCULATE, AVERAGE. Ich zapamitanie i skojarzenie nie nastrcza trudnoci. Napisane programy nie wymagaj w zasadzie dodatkowych komentarzy.
SCPI jest standardem otwartym. Z góry przewidziano, e wraz z postpem techniki powstan nowe przyrzdy, o nowych waciwociach i funkcjach. W zwizku z przyszymi potrzebami zaoono, e corocznie standard bdzie rozszerzany w nowej wersji, przy czym reguy, skadnia i wczeniejsze ustalenia pozostan obowizujce.
Przyrzdy w których zaimplementowano SCPI musz posiada oprócz czci funkcjonalnej i komunikacyjnej - interfejsowej dodatkowy blok funkcjonalny, którym jest tzw. procesor SCPI, czyli zoony interpreter rozkazów. W zwizku z tym jest to zawsze przyrzd inteligentny, z reguy wyposaony w mikroprocesor.
2.2.2 Struktura rozkazów
Wszystkie rozkazy SCPI mona podzieli na kilka kategorii, zwizanych z blokami funkcjonalnymi przyrzdów. Uogólniony model funkcjonalny przyrzdu programowanego pokazano na rys. 3. Dotyczy on wszystkich typów przyrzdów, lecz nie kady przyrzd posiada wszystkie bloki. Urzdzenie moe zawiera cz pomiarow (np. woltomierz, oscyloskop) i/lub generacyjn (np. generator, kalibrator).
Rys. 3.Model przyrzdu programowanego (SCPI).
W przyrzdzie mona wyróni nastpujce bloki:
- ROUTe - zwizany z podczeniem sygnau do przyrzdu;
- MEASure - cz pomiarow;
- GENerate - cz generacyjn;
- MEMory - zapamitywanie danych wewntrz przyrzdu;
- FORMat - zamiana formatu danych zwizana z transmisj;
- TRIGger - blok synchronizacji i wyzwalania;
- DISPlay - blok wywietlania danych;
- INPut, OUTput - blok wejciowy i wyjciowy, kondycjonowanie sygnau;
- SENSe - konwersja sygnau na dane;
- SOURce - konwersja danych na sygna;
- CALCulate - przetwarzanie danych w przyrzdzie;
SCPI definiuje hierarchiczn struktur rozkazów; z kadym z zaznaczonych bloków zwizany jest pewien zbiór rozkazów programujcych jego funkcje. Dodatkowe grupy rozkazów s zwizane z caym przyrzdem, s to:
- SYSTem - operacje systemowe;
- CONFigure - uproszczone rozkazy konfiguracji o funkcjach podobnych do SENSe;
- STATus - rozkazy zwizane z raportowaniem statusu wg. SCPI.
- CALibration - okresowa kalibracja przyrzdu.
Rozkazy danej grupy mona uoy w hierarchiczn, drzewiast struktur, podobnie jak zbiór katalogów na dysku komputera. Najwyszy poziom zajmuje rozkaz o nazwie grupy. Na rys. 4 pokazano przykadowy fragment drzewa rozkazów. SENSe jest tu rozkazem gównym, caa grupa suy do konfiguracji pomiarów. Zauwamy, e aby doj do rozkazów podrzdnych trzeba przej odpowiedni ga w dó drzewa. Cae polecenie musi specyfikowa pen ciek dojcia. Tak np. polecenie automatycznego wyboru zakresu przy pomiarze napicia staego ma posta:
:SENSe:VOLTage:DC:RANGe:AUTO ON
2.2.3 Skadnia rozkazów
Pene polecenie zawiera ciek rozkazów oddzielonych znakiem : dwukropka. Dwukropek na pocztku pokazuje, e pierwszy rozkaz rozpoczyna si od najwyszego poziomu. Polecenie moe zawiera parametry, umieszcza si je na kocu polecenia po spacji. Wiksz liczb parametrów oddziela si znakiem , przecinka.
W jednej linii mona poda kilka rozkazów oddzielonych ; rednikiem. Interpreter rozkazów pamita ostatni ciek; gdy kolejny rozkaz rozpoczyna si od tego samego poziomu nie trzeba ju specyfikowa caej cieki - dwukropek naley pomin; np.:
:SENSE:FRESistance:RANGe MAX; RESolution MIN
S tu dwa polecenia: 1) przy pomiarze rezystancji metod 4 przewodow (FRESistance) ustaw zakres maksymalny i 2) rozdzielczo minimaln.
Niektóre pojedyncze rozkazy - sowa mog wystpowa w rónych gaziach drzewa rozkazów i mie rón interpretacj, std reguy podawania cieki musz by cise.
W SCPI obowizuj wszystkie rozkazy uniwersalne i zapytanie IEEE 488.2, powinny jak zwykle zaczyna si od znaku * gwiazdki.
Niektóre rozkazy s domylne i mona je pomin; w dokumentacji objte s w nawiasy kwadratowe. Na rys. 4 takim rozkazem jest np. SENSe. Funkcj pomiaru prdu zmiennego mona wybra bezporednio jako:
:FUNCtion "CURRent:AC"
Wikszo rozkazów ma dwie i tylko dwie: formy pen i skrócon (w dokumentacji posta skrócona zapisana duymi literami); interpreter nie rozrónia duych i maych liter. Tak np. poprawne s formy rozkazu: CURRent, CURRENT, cUrReNt, CURR, curr, cuRR; ale bdne s: CURRen, CUR.
Parametry rozkazów_ mog by:
&numeryczne; naley je zapisa liczb dziesitn ewentualnie ze znakiem i kropk dziesitn. Mog by uyte przedrostki jednostek miar np. k, m, u. Jeeli tylko pewne wartoci s akceptowane wtedy interpreter zaokrgla wprowadzon liczb.
& specjalne np. MAXimum, MINimum, DEFault, HIGH, LOW .
& logiczne, np. ON, OFF, 0, 1.
& dyskretne jak BUS, IMMediate, EXTernal, INTernal.
& acuchowe - powinny by objte cudzysowem np. "CURRent", "NAPIS".
&polecenie moe nie zawiera parametrów, np. rozkaz :DISPlay:TEXT:CLEar, :INITiate.
Kady rozkaz z parametrem ma swój odpowiednik w postaci zapytania. Wtedy zamiast parametrem koczy si znakiem ? zapytania (bez spacji), np.:
:VOLTage:DC:NPLCycles?
jest zapytaniem o aktualnie ustawiony czas cakowania przy pomiarze napicia staego, wyraony jako liczba okresów napicia zasilania przyrzdu (Number Power Line Cycles). Regu jest, e na kade dopuszczalne zapytanie przyrzd powinien udzieli odpowiedzi, przez umieszczenie jej w buforze wyjciowym. Tak np. po rozkazie :SYSTem:ERRor? kontroler bdzie móg odczyta z bufora komunikat o bdzie. Po rozkazie :READ? przyrzd wykona pomiar zgodnie z wczeniej ustawion konfiguracj i w buforze umieci wyniki pomiaru.
Format odpowiedzi przyrzdu, moliwych do odczytania z bufora wyjciowego jest nastpujcy:
& pojedyczy pomiar: ZC.CCCCCCCCEZCC<lf>
& wielokrotny pomiar: ZC.CCCCCCCCEZCC,...,...,<lf>
& inne odpowiedzi: <max 80 znaków ASCII>
gdzie: Z - znak + -; C - cyfra; E - Exponenta; <lf> - zmiana wiersza.
Niektóre polecenia daj si realizowa na kilka sposobów, np. skonfigurowanie przyrzdu do pomiaru napicia staego o zakresie 10 V i rozdzielczoci 0.01 V mona zrealizowa co najmniej na dwa sposoby:
:FUNC "VOLT:DC"; VOLT:DC:RANG 10; RES 0.01
:CONFigure:VOLT:DC 10,0.01
Peniejszy wykaz rozkazów SCPI, zaimplementowanych w badanym multimetrze jest omówiony w p.3.2 i bdzie dostpny na stanowisku pomiarowym.
3 Opis wiczenia
3.1 Karta sterownika IEEE 488.2
Sterownikiem systemu w wiczeniu jest komputer PC z zainstalowan kart sterownika IEEE 488 typu GPIB-PCII/IIA firmy National Instruments. Karta odpowiada cile standardowi sterownika IEEE 488.2. Firma National Instruments jest wiatowym liderem w dziedzinie produkcji kart sterowników IEEE do komputerów oraz oprogramowania tego interfejsu.
Sterownik instaluje si w jednym z wolnych slotów komputera. Wczeniej naley ustawi za pomoc odpowiednich przeczników wymagane opcje konfiguracyjne:
& adres bazowy karty w przestrzeni we/wy komputera (standardowo 2B8H),
& poziom wykorzystywanego przerwania (2 7), (standardowo 7);
& numer kanau DMA (1 3), (standardowo 1);
& emulacja elementu 7210 lub 9914, (standardowo 7210).
Oprogramowanie licencjonowane dostarczane razem ze sterownikiem zawiera m.in:
& program instalacyjny INSTALL.EXE - do instalacji caego oprogramowania;
& programy diagnostyczne:
- IBDIAG.EXE - do diagnostyki hardware,
- IBTEST.EXE - do testowania software;
& program konfiguracyjny IBCONF.EXE;
& zasadniczy driver NI-488.2;
& interfejsy do rónych jzyków programowania;
& program sterowania interakcyjnego IBIC.EXE;
& program uruchomieniowy - debugger: APMON.EXE (Aplication Monitor).
3.1.1 Program konfiguracyjny IBCONF.EXE
Program konfiguracyjny pozwala dwupoziomowo skonfigurowa hardware w systemie tj. sterownik i podczone urzdzenia. Edycj wykonuje si za pomoc prostego menu. Na wyszym poziomie ustala si, jakie urzdzenia s w systemie oraz nadaje si im symboliczne nazwy. Na poziomie niszym podaje si (modyfikuje) niektóre charakterystyki urzdze m.in.: adres pierwotny ew. wtórny, czas przeterminowania (timeout) operacji we/wy, czas przeterminowania odpytywania szeregowego, sposób koczenia bloku danych (EOS lub EOI). Dla sterownika-pytki parametrów tych jest wicej (np. adres bazowy karty, kana DMA, poziom przerwania itd.) lecz s one na bieco komentowane i mona skorzysta z pomocy (help).
Po wykonaniu konfiguracji parametry systemu s przekazywane i obowizujce w zasadniczym driverze, dopóki nie zostan zmienione.
3.1.2 Driver NI-488.2
Jest to podstawowe narzdzie do tworzenia oprogramowania aplikacyjnego obsugujcego interfejs IEEE 488. Driver zawiera zbiór atwych w uyciu funkcji i procedur, które z jednej strony s wywoywane z programów aplikacyjnych, a z drugiej komunikuj si z hardware interfejsu i pozwalaj na realizacj odpowiednich funkcji interfejsowych.
Driver (zawarty w pliku GPIB.COM) musi by instalowany w systemie DOS przy starcie komputera, std w pliku CONFIG.SYS powinna by umieszczona linia:
device=dir\gpib.com
W.w oprogramowanie jest w peni kompatybilne z wczeniej omawianym standardem IEEE 488.2, dlatego podstawowy zestaw procedur drivera - to implementacja zdefiniowanych w IEEE 488.2 sekwencji sterujcych i protokoów. W tablicy 4 podano peny wykaz procedur NI-488.2. Nazwy (kol.2) i opisy (kol.5) pokrywaj si, bd s bardzo zblione do zamieszczonych w tablicy 1 i 2; w ostatniej kolumnie tab.4 podano formalnie przyporzdkowanie procedury odpowiedniemu standardowi: S - sekwencji sterujcej, P - protokoowi (liczba po symbolu okrela pozycj w tablicy 1 lub 2). Podane procedury mona podzieli na kilka kategorii, wg. operacji jakie realizuj:
& nadawanie i odbiór danych (4, 5, 8) - najczciej uywane,
& sterowanie pojedyczymi urzdzeniami (10, 16, 17, 19, 20, 21, 22),
&l sterowanie wieloma urzdzeniami (11, 12, 13, 18, 26, 27),
& zarzdzanie magistral (9, 14, 15, 23, 24, 25, 28, 29),
& procedury we/wy niskiego poziomu (1, 2, 3, 6, 7).
TABLICA 4 Procedury NI-488.2
Lp |
Nazwa procedury |
Parametry |
Opis |
Stan dard |
|
|
|
T.Pascal |
IBIC |
|
|
1 |
SendCmds |
bd, coms, cnt |
data |
Nadanie komunikatów interfejsowych |
S1 |
2 |
SendSetUp |
bd, AdrLi |
list |
Zaadresowanie wybranych urzdze do odbioru |
S2 |
3 |
SendBataBytes |
bd, dat, cnt, end |
list, data end |
Przesanie danych do zaadresowanych urzdze |
S3 |
4 |
Send |
bd, adr, dat cnt, end |
adr, data end |
Przesanie danych do okrelonego urzdzenia |
S4 |
5 |
SendList |
bd, AdrLi, dat,cnt,end |
list, data end |
Przesanie danych do okrelonych urzdze |
S4 |
6 |
ReceiveSetup |
bd, adr |
adr |
Zaadresowanie okrelonego urzdzenia do nadawania |
S5 |
7 |
RcvRespMsg |
bd, dat, cnt, end |
data, end |
Przyjcie danych od urzdzenia zaadresowanego do nadawania. |
S6 |
8 |
Receive |
bd,adr, dat, cnt, end |
adr, data end |
Przyjcie danych od okrelonego urzdzenia |
S7 |
9 |
SendIFC |
bd |
|
Nadanie komunikatu jednoliniowego IFC |
S8 |
10 |
DeviceClear |
bd, adr |
adr |
Zerowanie wybranego urzdzenia (SDC) |
S9 |
11 |
DeviceClearList |
bd, AdrLi |
list |
Zerowanie wybranych urzdze (SDC) |
S9 |
12 |
EnableLocal |
bd, AdrLi |
list |
Ustaw wybrane urzdzenia na sterowanie lokalne |
S10 |
13 |
Enable Remote |
bd, AdrLi |
list |
Ustaw wybrane urzdzenia na sterowanie zdalne |
S11 |
14 |
SetRWLS |
bd, AdrLi |
list |
Ustaw sterow. zdalne z blokad lokalnego dla okrel. urzdze |
S12 |
15 |
SendLLO |
bd |
|
Ustaw blokad sterowania lokalnego dla wszystkich urzdze |
S13 |
16 |
ReadStatusByte |
bd, adr, istb |
adr |
Odpytywanie szeregowe pojedynczego urzdzenia. |
S14 |
17 |
Trigger |
bd, adr |
adr |
Wyzwolenie pojedynczego urzdzenia |
S15 |
18 |
TriggerList |
bd, AdrLi |
list |
Wyzwolenie grupy wybranych urzdze |
S15 |
19 |
PassControl |
bd, adr |
adr |
Przeka sterowanie do innego kontrolera |
S16 P4 |
20 |
PPoll |
bd, wyn |
|
Wykonaj odpytywanie równolege. wyn - wynik |
S17 |
21 |
PPollConfig |
bd, adr, line, sense |
adr, line sense |
Konfigurowanie urzdzenia do odpytywania równolegego |
S18 |
22 |
PPollUnconfig |
bd, AdrLi |
list |
Likwidacja kontroli równolegej w wybranych urzdzeniach |
S19 |
23 |
ResetSys |
bd, AdrLi |
list |
Zainicjowanie systemu (REN, IFC, DCL, *RST) |
P1 |
24 |
TestSRQ |
bd, wynik |
|
Okrelenie stanu linii SRQ (wynik: 1 lub 0) -natychmiast. |
|
25 |
WaitSRQ |
bd, wynik |
|
Czekaj na wystawienie SRQ (wynik:1-jest,0-brak po timeout) |
|
26 |
FindRQS |
bd, AdrLi, istb |
list |
Odszukaj urzdzenie dajce obsugi. W ibcnt zwracany indeks urzdzenia wg. AdrLi. |
P2 |
27 |
AllSpoll |
bd, AdrLi, ResLi |
list |
Odpytywanie szeregowe wszystkich urzdze w systemie |
P3 |
28 |
FindLstn |
bd, AdrLi, ResLi, limit |
list, limit |
Odszukanie wszystkich odbiorników w systemie |
P6 |
29 |
TestSys |
bd, AdrLi, ResLi |
list |
Równoczesne wykonanie wewntrznych testów urzdze |
P8 |
Procedury NI-488.2 musz by wywoywane z odpowiednimi parametrami (wykaz w kol. 3 tablicy 4. W rónych jzykach programowania nazwa i znaczenie parametrów s takie same, natomiast ich typ moe si nieco róni. Przykadowo dla jzyka TurboPascal znaczenie i typ parametrów s nastpujce:
bd (integer) - numer karty sterownika ( 0, 1, ...),
adr (integer) - adres urzdzenia,
AdrLi (array[1..255] of integer) -lista adresów urzdze,
{uwaga: po ostatnim adresie na licie - liczba NOADDR=-1,}
ResLi (array[1..255] of integer) -lista odpowiedzi urzdze,
dat (array[1..255] of char) - bufor bajtów danych,
coms (array[1..255] of char) - bufor bajtów komunikatów,
cnt (longint) - liczba przesyanych bajtów,
end (integer) - sposób zakoczenia bloku danych
(uywa symboli predefiniowanych):
przy odbiorze: STOPend - EOI
przy nadawaniu: NULLend - bez znaku zakoczenia
NLend - znak nl + EOI,
DABend - ostatni DAB + EOI
istb (integer) - Lo(istb)=bajt statusu;
line (integer) - nr linii danych,
sense (integer) - przyporzdkowany stan (0 lub 1)
limit (integer) - liczba ograniczajca.
Oprócz procedur zgodnych z IEEE 488.2 i wymienionych w tab.4 driver NI-488.2 zawiera szereg uytecznych funkcji wprowadzonych we wczeniejszych wersjach NI-488, które stay si ju pewnym standardem przemysowym w programowaniu interfejsu IEEE 488. wiczcy mieli moliwo poznania ich w pierwszym wiczeniu dotyczcym IEC-625.
W driverze zdefiniowano cztery globalne zmienne systemowe, w których s umieszczane istotne informacje po wywoaniu kadej procedury. Zmiennymi tymi s:
ibcnt (integer) - standardowo: liczba przesanych bajtów podczas zapisu,
bd odczytu; w procedurach 26 29 dodatkowe znaczenie.
ibcntl(longint) j.w.
ibsta (integer) - sowo statusu,
iberr (integer) - kod błędu.
W tablicy 5 podano znaczenie i opis poszczególnych bitów sowa statusu (nie myli z bajtem statusu IEEE 488), w którym po zakoczeniu kadej procedury jest informacja o stanie interfejsu i karty sterownika. Testowanie ibsta pozwala ustali, czy s warunki dalszego przetwarzania.
W przypadku, kiedy zostanie ustawiony najstarszy bit (ERR) w sowie statusu, oznacza to wystpienie bdu przy realizacji procedury i interpretacja tego bdu podana jest w zmiennej iberr. W tablicy 6 podano zestawienie kodów sygnalizowanych bdów.
TABLICA 5 Sowo statusu "ibsta" - mapa bitowa
Znak |
Bit poz |
Hex |
Typ Ú) fukcji |
Nazwa angielska |
Opis |
ERR |
15 |
8000 |
dev,bd |
ERRor |
Bd przy realizacji funkcji |
TIMO |
14 |
4000 |
dev,bd |
TIMeOut |
Przekroczony limit czasowy operacji |
END |
13 |
2000 |
dev,bd |
END-EOS |
Odebrano komunikat EOI lub EOS |
SRQI |
12 |
1000 |
bd |
SRQ Interrupt |
Ustawiona linia SRQ *) |
RQS |
11 |
800 |
dev |
ReQuest Serv. |
Aktualne urzdzenie da obsugi *) |
EVENT |
10 |
400 |
bd |
Event |
Stan DTAS lub DCAS *) |
SPOLL |
9 |
200 |
bd |
Serial Poll |
Karta odpytana szeregowo *) |
CMPL |
8 |
100 |
dev,bd |
I/O Comleted |
Operacja We-Wy zakoczona |
LOK |
7 |
80 |
bd |
Lockout State |
Bit ustawiany po wykryciu komunikatu LLO -blokada sterowania lokalnego |
REM |
6 |
40 |
bd |
Remote State |
REN=1 i pytka zaadres. do odbioru |
CIC |
5 |
20 |
bd |
Controller In-Charge |
Karta jest aktywnym kontrolerem |
ATN |
4 |
10 |
bd |
Attention |
Linia ATN=1 |
TACS |
3 |
8 |
bd |
Talker |
Karta zostaa zaadresowana do nadaw. |
LACS |
2 |
4 |
bd |
Listener |
Karta zostaa zaadresowana do odbioru |
DTAS |
1 |
2 |
bd |
Dev.Trig.Stat |
Karta odebraa komunikat GET od innego kontrolera |
DCAS |
0 |
1 |
bd |
Dev.ClearStat |
Karta odebraa DCL lub SDC z innego kontrolera |
Ú) - wszystkie procedury NI-488.2 s typu bd.
*) - dokadniejsze wyjanienie w materiaach dodatkowych.
TABLICA 6
Zmienna "iberr" - kody bdów
Znak |
Kod |
Opis |
EDVR |
0 |
Bd DOS, np. nie zainstalowany driver GPIB.COM w CONFIG.SYS |
ECIC |
1 |
Próba wyk. proced. aktywnego kontrolera, za karta nim nie jest. Wykonaj procedur SendIFC lub funkcj ibsic. |
ENOL |
2 |
Zapis przy braku odbiornika (zy adres, wyczenie, brak urzdzenia). |
EADR |
3 |
Karta nie zaadresowana do nadawania bd odbioru. |
EARG |
4 |
Zy argument w wywoaniu funkcji lub konflikt adresów karty i urzdze. |
ESAC |
5 |
Karta nie ma wymaganej funkcji kontrolera. |
EABO |
6 |
Operacja We-Wy zostaa przerwana (powód: rozczenie kabli, wywoanie DCL, SDC, ibstop lub przekroczony limit timeout). |
ENEB |
7 |
Brak karty-kontrolera pod adresem I/O wskazanym w konfiguracji. |
EDMA |
8 |
Bd transmisji przez DMA (bd tylko dla Windows 3.x). |
EOIP |
10 |
Operacja asynchroniczna We-Wy nie zakoczona, a rozpoczto kolejn operacj na magistrali. |
ECAP |
11 |
Aktualne konfiguracja oprogramowania nie umoliwia wykonania operacji. |
EFSO |
12 |
Bd operacji z wykorzystaniem zapisu lub odczytu z pliku. |
EBUS |
14 |
Wykryto bd na magistrali IEEE-488, problemy z jednym z urzdze; np. zbyt wolne do aktualnej konfiguracji. |
ESTB |
15 |
Zagubiono bajt stanu podczas automatycznej kontroli szeregowej. |
ESRQ |
16 |
Linia SRQ nie moe by zgaszona (nie jest znane urzdzenie wystawiajce SRQ lub zwarcie linii SRQ). |
ETAB |
20 |
Problemy z tablic przy wykonaniu: FindLstn,FindRQS, ibevent. Np. adne z wym. przy FindRQS urzdze nie da obsugi. |
3.1.3 Interfejsy do rónych jzyków programowania
W programach aplikacyjnych pisanych w rónych jzykach programowania wysokiego poziomu mona uywa funkcji i procedur drivera NI-488.2. Kady program jest linkowany do drivera za pomoc odpowiedniego interfejsu programowego. Oferowane s interfejsy programowe do szerokiej gamy jzyków programowania, wczajc róne odmiany jzyków BASIC, C, PASCAL i FORTRAN. Jest równie moliwe wykorzystanie odpowiedniej wersji drivera w rodowisku WINDOWS.
Przykadowo, w jzyku Turbo Pascal interfejsem programowym jest dodatkowy unit TPDECL.TPU, który zawiera odwoania do wszystkich funkcji i procedur drivera. Unit ten naley docza do kadego programu aplikacyjnego, pisanego w w/w jzyku za pomoc deklaracji uses. wiczcy mog zapozna si z czci deklaracyjn tego unitu zapisan w postaci pliku TPDECL.PAS.
Oprócz procedur NI-488.2, funkcji NI-488 i w/w zmiennych globalnych w unicie TPDECL.TPU jest zawarta deklaracja pewnych typów i zmiennych, które mona uywa w programach aplikacyjnych. Są to:
type cbuf: array[1..255] of char;
AddrList: array[1..255] of integer;
var wrt, rd : cbuf; {mona uy jako buforów przy nadawaniu i odbiorze}
Cz programu aplikacyjnego zwizana z komunikacj za porednictwem interfejsu IEEE 488.2 ma przewanie nastpujc struktur:
1. Inicjalizacja interfejsu (SendIFC);
2. Odszukanie urzdze podczonych do magistrali (FindLstn);
3. Identyfikacja urzdze (analiza odpowiedzi na zapytanie "*IDN?" );
4. Inicjalizacja urzdzenia (DevClear, "*RST" );
5. Zaprogramowanie urzdzenia; m.in.: funkcja pomiarowa, rodzaj wyzwalania,
sposób raportowania statusu i generowania SRQ (zgodnie z SCPI);
6. Wyzwolenie urzdzenia (Trigger lub rozkaz wspólny "*TRG" );
7. Odczekanie na zakoczenie pomiarów (WaitSRQ);
8. Odpytywanie szeregowe (ReadStatusByte lub AllSpoll);
9. Odczytanie wyników (Receive).
Po wykonaniu kadej procedury interfejsowej naley bada sowo statusu ibsta, a w przypadku wystpienia bdu program powinien okreli kod bdu (iberr) i ew. zakoczy dziaanie. Oczywicie, w programach aplikacyjnych mona wykorzystywa do przetwarzania wszystkie standardowe elementy jzyka Turbo Pascal.
3.1.4 Program sterowania interakcyjnego IBIC
Jest to wygodne narzdzie do nauki programowania interfejsu oraz tworzenia oprogramowania aplikacyjnego. IBIC pozwala wykona dowolne, pojedyncze procedury lub funkcje drivera NI-488.2 bezporednio z klawiatury (bez wczeniejszego pisania programu). Na ekranie s na bieco wywietlane: rezultat wykonania procedury, sowo statusu i ew. kod bdu z objanieniami. Mona uzyska pomoc (Help) w zakresie uywania danej procedury.
Zanim zostanie napisany program aplikacyjny, mona krokowo sprawdzi proponowany sposób sterowania interfejsem i sposób komunikacji z dowolnymi urzdzeniami. Poniewa sterowanie odbywa si bezporednio z klawiatury, a wyniki s pokazywane na ekranie, std przy wywoywaniu procedur wystarczy podawa tylko niektóre parametry wejciowe (wyjciowe pomija si zawsze, gdy rezultaty procedur s wywietlane na ekranie). W tablicy 4 z list procedur podano w kol. 4 wykaz potrzebnych parametrów przy wywoywaniu odpowiednich procedur NI-488.2 w programie IBIC. Parametr od procedury, jak i od kolejnych parametrów naley oddzieli spacj. Znaczenie parametrów jest nastpujce:
& adr - l. cakowita oznaczajca adres IEEE 488 urzdzenia; liczb mona zapisa
dziesitnie (I cyfra 0), oktalnie (poprzedzi cyfr 0) lub hexadecymalnie
(poprzedzi znakami 0x np. 0x1A);
& list - jest oddzielon przecinkami list adresów;
& data - acuch danych lub komunikatów interfejsowych do nadawania zamknity
znakami cudzysowu "...".Poszczególne symbole w acuchu mog by
znakami ASCII albo kodami bajtów w postaci oktalnej (liczba poprzedzona
znakiem backslash \) lub hexadecymalnej (liczba poprzedzona znakami \x ).
Dopuszczalne s dodatkowo dwa znaki specjalne: \n - znak zmiany wiersza, \r - powrót karetki.
& line, sense - l. cakowite reprezentujce odpowiedni lini danych i sposób
odpowiedzi na odpytywanie równolege;
& limit - liczba cakowita ograniczajca liczb odbiorników w systemie;
& end - sposób koczenia bloku danych przy nadawaniu - jak w jez. Turbo Pascal.
Zanim zostan wywoane w programie IBIC jakiekolwiek procedury NI-488.2 naley wybra za pomoc funkcji set 488.2 N aktualn kart sterownika interfejsu w komputerze. W tablicy 7 podano wykaz i opis dodatkowych funkcji pomocniczych, które mog by bardzo uyteczne przy korzystaniu z programu IBIC.
TABLICA 7 Pomocnicze funkcje programu "IBIC" -interaktywnego
Lp |
Skadnia |
Opis |
1 |
set 488.2 N |
Wybór aktywnej karty kontrolera (N -oznacza nr karty np. 0). Funkcj t naley koniecznie wywoa przed wykonaniem innych procedur NI-488.2). |
2 |
set NazwaUrz |
Przeczenie aktywnego urzdzenia lub karty. (Wczeniej urzdzenie powinno by otwarte za pomoc funkcji ibfind). NazwaUrz jest nazw zadeklarowan w czasie konfiguracji (IBCONF). |
3 |
help [opcja] |
Wywietlenie informacji do pomocy; pominicie opcja powoduje wywietlenie menu. |
4 |
! |
Powtórz poprzedni funkcj. |
5 |
- |
Wycz wywietlanie. |
6 |
+ |
Zacz wywietlanie. |
7 |
n* funkcja |
Wykonaj podan funkcj n razy. |
8 |
n* ! |
Powtórz poprzedni funkcj n razy. |
9 |
$ NazwaPliku |
Wykonaj funkcje IBIC zawarte w pliku o podanej nazwie. |
10 |
print string |
Wywietlenie podanego acucha na ekranie. |
11 |
e lub q |
Zakoczenie programu IBIC. |
3.2 Multimetr HP 344010A
Pena instrukcja obsugi i wykorzystania przyrzdu jest dostpna na stanowisku laboratoryjnym. Poniej zamieszczono tylko wybrane dane o moliwociach i programowaniu zdalnym urzdzenia.
Multimetr HP 344010A jest nowoczesnym przyrzdem wielofunkcyjnym do pomiarów wielkoci elektrycznych. Moe by sterowany lokalnie za porednictwem klawiatury na pycie czoowej oraz zdalnie za pomoc interfejsu. Wyposaony jest w dwa interfejsy pomiarowe: w peni zgodny z IEEE 488.2 oraz RS 232. Zasadniczym jzykiem programowania przy sterowaniu zdalnym jest SCPI. Zarówno rodzaj interfejsu, adres urzdzenia jak i jzyk programowania przyrzdu ustala si z pyty czoowej.
3.2.1 Funkcje pomiarowe
VOLTage:DC;
VOLTage:DC:RATio - stosunek dwóch napi staych (na zaciskach Input i Ratio Ref);
VOLTage:AC;
CURRent:DC;
CURRent:AC;
RESistance - rezystancja metod 2-przewodow;
FRESistance - rezystancja metod 4-przewodow;
FREQuency;
PERiod;
CONTinuity - test przewodnoci przy prdzie 1 mA;
DIODe - sprawdzenie diody przy prdzie 1 mA;
3.2.2 Konfiguracja podstawowa pomiarów
Po zaczeniu multimetru do sieci, a take po wykonaniu rozkazu uniwersalnego *RST (RESET) multimetr ma ustawion standardow, w pewnym sensie optymaln konfiguracj pomiarow. Parametry konfiguracji standardowej podano w tablicy 8. Przed wykonaniem okrelonych pomiarów niektóre parametry przyrzdu mona zmieni.
Najbardziej elastycznym sposobem ustalenia wymaganej, podstawowej konfiguracji jest wykorzystanie rozkazów z grupy SENSe (rys.4). Uwaga: ustalenie konfiguracji nie jest jeszcze wykonaniem pomiarów. I tak, mona zaprogramowa tymi rozkazami lub przesa zapytanie o: funkcj pomiarow, zakres, rozdzielczo (podaje si w jednostkach wielkoci mierzonej, nie jako liczb cyfr znaczcych), czas cakowania (NPLCycles), czas apertury przy pomiarze czstotliwoci i okresu, czstotliwo odcicia filtru górnoprzepustowego AC (DETector:BANDwith), wczenie/wyczenie autozerowania.
Impedancj wejciow multimetru mona sterowa za pomoc rozkazu:
:INPut:IMPedance:AUTO {OFF | ON};
TABLICA 8. Standardowa konfiguracja multimetru po zaczeniu (i Reset State)
L p |
Nazwa parametru |
Standardowy Stan Parametru |
1 |
Funkcja pomiarowa |
VOLTage:DC |
2 |
Zakres |
AUTO |
3 |
Rozdzielczo |
odpowiada 5 cyfry (slow) |
4 |
Czas cakowania |
10 NPLCycles |
5 |
Autozerowanie |
wczone (:ZERO:AUTO ON) |
6 |
Filtr AC (górnoprzepust.) |
20 Hz (medium) |
7 |
Rezystancja wej. dla VOLT:DC |
10 MW (:INP:IMP:AUTO OFF) |
8 |
Stan operacji matematycznych |
Wyczone |
9 |
Rezystancja odniesienia dla dBm |
600 W |
10 |
ródo wyzwalania |
natychmiastowe (IMMediate) |
11 |
Opónienie wyzwalania |
automatyczne (:TRIG:DEL:AUTO ON) |
12 |
Liczba pomiarów po wyzwoleniu |
1 |
Innym, mniej elastycznym sposobem zmiany konfiguracji s rozkazy z grupy CONFigure. Ogólna posta polecenia:
:CONFigure:<func> {<range>|MIN|MAX|DEF},{<resol.>|MAX|MIN|DEF}
gdzie: <func> - jest dowoln funkcj wymienion w 3.2.1;
pozwala na równoczesne ustalenie funkcji pomiarowej, zakresu i rozdzielczoci. Wprawdzie dla funkcji FREQuency i PERiod zakres jest zawsze ten sam, jednak musi by formalnie wymieniony, gdy chce si poda jako drugi parametr rozdzielczo. Inne parametry pomiarowe nie specyfikowane w poleceniu CONFigure s ustalane automatycznie wg. wartoci standardowych (tab.8 z wyj. poz.5). Po wykonaniu polecenia CONFigure, a przed wykonaniem pomiarów, mona dodatkowo zmienia wybrane parametry konfiguracyjne poleceniami z grup: SENSe, INPut, CALCulate itd.
Odpowiadajc form uproszczonego zapytania o konfiguracj jest CONFigure?
3.2.3 Wyzwalanie pomiarów
Najprostszym, ale najmniej elastycznym sposobem wykonania pomiaru jest polecenie MEASure o postaci:
:MEASure:<func>? {<range>|MIN|MAX|DEF},{<resol.>|MAX|MIN|DEF}
Jak wida, struktura polecenia jest podobna do CONFigure, rezultatem jest natychmiastowe wykonanie pomiaru. Funkcja, zakres, rozdzielczo s okrelone rozkazem natomiast inne parametry ustawione standardowo niezalenie od wczeniejszych ustale (jak w CONFigure). Wynik pomiaru jest umieszczony bezporednio w buforze wyjciowym przyrzdu (typowa reakcja na zapytanie).
Multimetr ma jednak due moliwoci i elastyczno przy programowaniu wyzwalania pomiarów, synchronizacji, itp. ródo wyzwalania przyrzdu moe by wczeniej wybrane rozkazem z grupy TRIGger:
:TRIGger:SOURce {IMMediate | EXTernal | BUS}
gdzie parametrami s rodzaje wyzwalania:
IMMediate - natychmiastowe,
EXTernal - sygnaem elektrycznym,
BUS - programowe z magistrali intrerfejsu.
Zapytaniem o ródo wyzwalania jest oczywicie :TRIGger:SOURce?.
Na rys.5 pokazano schematycznie wieloetapowy proces wyzwalania urzdzenia i wykonywania pomiarów. Pocztkowym stanem multimetru m.in. w czasie programowania konfiguracji pomiarowej jest stan spoczynkowy ( Idle State ). W tym stanie adne ze róde wyzwalania nie jest akceptowane. Dopiero jeden z trzech rozkazów: :MEASure..?, :READ? bd :INITiate powoduje przejcie multimetru do stanu oczekiwania na wyzwolenie (Wait-for-Trigger State) (przejcie wymaga czasu ok. 20 ms).
W tym stanie przyrzd reaguje na zadeklarowane ródo wyzwalania i z chwil jego zadziaania realizowany jest kolejny etap, a mianowicie odmierzanie ustalonego opónienie (Delay), po czym wykonywany jest pomiar (Measurement Sample). Czas opónienia moe by wczeniej ustalony rozkazami:
:TRIGger:DELay {<sekundy>|MIN|MAX}
:TRIGger:DELay:AUTO {ON|OFF}
przy czym MIN=0 s, za MAX=3600 s. Standardowym ustawieniem po wczeniu oraz w CONFigure i MEASure jest ..:AUTO ON.
Rys. 5.Wieloetapowy proces wyzwalania multimetru.
Jeeli przed wyzwoleniem pomiaru bya zadeklarowana rozkazem:
:SAMPle:COUNt {<liczba>|MIN|MAX} (MIN=1, MAX=50000)
liczba pomiarów wiksza od 1, wtedy kolejno realizowane s nastpne próbkowania (w ramach tego samego wyzwolenia) z zachowaniem zadanego opónienia midzy pomiarami (mona tym sposobem programowa okres próbkowania). Z kolei po ich wyczerpaniu przyrzd moe przej ponownie do stanu oczekiwania na wyzwolenie, jeli wczeniej zadeklarowano wiksz od 1 liczb wyzwole rozkazem:
:TRIGger:COUNt {<liczba|MIN|MAX} (MIN=1, MAX=50000)
Po wyczerpaniu zadeklarowanej liczby multimetr ponownie przechodzi do stanu spoczynkowego. Powrót do tego stanu mona równie wymusi z dowolnego etapu pomiarów, wysyajc przez magistral komunikat zerowania urzdzenia (DeviceClear).
Wyjanienia wymagaj jeszcze rónice midzy wprowadzonymi wyej rozkazami inicjujcymi oczekiwanie na wyzwolenie pomiaru:
:READ? - rozkaz powoduje przejcie do stanu Wait-for-Trigger State i dalej pomiary
przebiegaj w.g. wczeniejszych ustale. Poniewa ma form zapytania, wic
wszystkie wyniki s natychmiast przekazywane do (i tylko) bufora wyjciowego
urzdzenia.
:INITiate - dziaanie identyczne z tym, e wyniki pomiarów s umieszczane w pamici
wewntrznej przyrzdu (max. 512 pomiarów). Dopiero podanie dodatkowego
rozkazu - zapytania:
:FETCh?
powoduje przepisanie wyników do bufora wyjciowego i umoliwia ich odczytanie
poprzez magistral;
:MEASure...? - Jak wczeniej wspomniano, po tym poleceniu przyjmowane s
w wikszoci standardowe parametry konfiguracji, m.in. wyzwalanie IMMediate.
Std otrzymanie tego rozkazu jest równoznaczne z wyzwoleniem przyrzdu, tzn.
z bezporednim przejciem do etapu odmierzania opónienia (dobranego automatycznie) i wykonaniem pojedynczego pomiaru (do bufora).
3.2.4 Inne funkcje multimetru i rozkazy programujce
& wywietlanie:
:DISPlay {OFF|ON|?} - wcz/wycz wywietlanie wyników na p. czoowej.
:DISPlay:TEXT <"łańcuch"> - wyœwietl tekst;
:DISPlay:TEXT:CLEar
:DISPlay:TEXT?
& operacje systemowe:
:SYSTem:VERSion? - zapytanie o wersj SCPI,
:SYSTem:ERRor? - Zapytanie o bdy; jeli s to przeniesienie najwczeniejszego
do bufora wyjciowego, celem póniejszego odczytania poprzez magistral.
:SYSTem:BEEPer - natychmiastowy sygna dwikowy;
:SYSTem:BEEPer {ON|OF|?}.
:DATA:POINts? - zapytanie o liczb pomiarów zebranych w pamici wewntrznej multimetru.
& obsługa rejestru statusu Questionable Data Register (SCPI):
:STATus:QUEStionable
:EVENt?
:ENABle <value>
:ENABle?
:STATus:PRESet - zeruje wszystkie bity rejestru Questionable.
& Wan i liczn grup rozkazów jest :CALCulate. Polecenia tej grupy umoliwiaj wykonanie przez multimetr jednej z piciu operacji matematycznych, z wykorzystaniem biecych pomiarów. wiczcy zapoznaj si z tymi rozkazami i zastosuj je praktycznie, korzystajc bezporednio z dokumentacji firmowej przyrzdu.
Dodatkowymi przyrzdami, które Studenci maj do dyspozycji na stanowisku laboratoryjnym s: ródo sygnaów prdu staego, generator funkcyjny, przetwornik prdu staego na czstotliwo i tester IEEE 488.
4 Zadania i problemy
1. Zapozna si z multimetrem HP 34401A, w szczególnoci:
- funkcjami pomiarowymi i charakterystykami metrologicznymi,
- przeznaczeniem gniazd sygnaowych na pycie czoowej i tylnej przyrzdu,
- rczn obsug za pomoc klawiatury i menu multimetru.
Korzystajc z menu systemowego przyrzdu ustali rodzaj interfejsu IEEE 488, adres urzdzenia i jzyk programowania SCPI.
2. Skonfigurowa hardware systemu: komputer z kart sterownika, multimetr, tester IEEE 488. Za pomoc programu IBCONF skonfigurowa software.
& kolejne zadania 3 12 zrealizowa z wykorzystaniem programu interakcyjnego IBIC;
& wymiana informacji z multimetrem ma si odbywa poprzez magistral interfejsu;
& w protokole notowa wszystkie rozkazy sterujce, istotne dla zadania rezultaty i uwagi
& po wystpieniu bdu przyrzdu odczyta przez interfejs odpowiedni meldunek, zapisa
i zinterpretowa przyczyn.
3. Wyzerowa interfejs. Podajc list kilku adresów odszuka formalnie odbiorniki w systemie. Odczyta i wywietli na monitorze dane identyfikacyjne multimetru oraz wersj jzyka SCPI. W zamian przedstawi si, wywietlajc swoje dane identyfikacyjne na multimetrze. Wykona dwoma sposobami testowanie wewntrzne multimetru. Czy sposób wykonywania i odczytane rezultaty s identyczne?
4. Sprawdzi zachowanie przyrzdu i moliwo sterowania po wysaniu polece sterowania zdalnego i lokalnego, z blokad i bez.
5. Naley zebra (i odczyta) wyniki 10 pomiarów napicia staego z okresem próbkowania 0.5 s i najwiksz rozdzielczoci. Spróbuj wykona to za pomoc rozkazów: MEASure, READ oraz INITiate, podaj spostrzeenia.
6. Ustal dowiadczalnie, jaka jest maksymalna pojemno pamici wewntrznej multimetru, a jaka bufora wyjciowego. Jak naley postpi, gdy potrzebna jest jeszcze dusza seria pomiarów z równomiernym próbkowaniem.
7. Skonfigurowa przyrzd i wykona cig 512 pomiarów napicia staego z minimalnym okresem próbkowania. Powtórz to dla napicia zmiennego.
8. Metod programowania parametrów konfiguracyjnych i uzyskiwania odpowiedzi na zapytania ustal zaleno midzy rozdzielczoci, a czasem cakowania przy pomiarach napicia staego. Czy obowizuje to dla napi zmiennych? Od czego zaley rozdzielczo pomiarów czstotliwoci i czasu? Zbadaj t zaleno .
9. Odczytaj i zinterpretuj aktualny stan wszystkich rejestrów statusu.
10. Skonfiguruj przyrzd tak, aby zgasza danie obsugi:
a) po wykonaniu pierwszego pomiaru z serii,
b) po ukoczeniu wszystkich pomiarów,
c) po wystpieniu dowolnego bdu multimetru.
Sprawd w/w przypadki wykonujc 10 pomiarów rezystancji metod 4-przewodow. Obserwuj monitorowan lini SRQ i odczytaj dwoma sposobami bajt statusu; jaka jest rónica?
11. Wykonaj pomiar 10 rezystancji na jednej dekadzie opornicy metod 2-przewodow, lecz z moliwie maym bdem metody od rezystancji doprowadze. Uwaga! korekcja powinna by wykonywana automatycznie przez multimetr.
12. Wykonaj niezbdne pomiary ilustrujce zjawisko idealnego aliasingu. Wszystkie pomiary maj by wykonane zdalnie. W odpowiedzi kocowej poda czstotliwo i amplitud sygnau wejciowego, czstotliwo próbkowania, amplitud sygnau spróbkowanego (rónic midzy maksymaln i minimaln wartoci).
& dalej naley zrealizowa jedno z zada 13 17 wskazane przez prowadzcego,
& rezultatem ma by program aplikacyjny dziaajcy w czasie rzeczywistym,
& przy próbach mona posugiwa si programem interakcyjnym IBIC,
& w sprawozdaniu zamieci wydruk programu, jak i wyniki jego dziaania.
13. Dla generatora przebiegów sinusoidalnych wyznaczy zaleno amplitudy od czstotliwoci, przy staym ustawieniu pokrta amplitudy. Róne wersje maj obejmowa bezporedni pomiar amplitudy w innych skalach:
a) napicia,
b) skali wzgldnej (w odniesieniu do napicia przy czstotliwoci max.),
c) w decybelach dla rezystancji odniesienia 600 i wzgldem punktu
o czstotliwoci max.
14. Zdj charakterystyk górnoprzepustowych filtrów wejciowych AC w multimetrze. Róne wersje maj obejmowa bezporedni pomiar amplitudy w rónych skalach:
a) napicia,
b) skali wzgldnej (w odniesieniu do napicia przy czstotliwoci max.),
c) w decybelach dla rezystancji odniesienia 600 i wzgldem punktu
o czstotliwoci odcicia filtra.
15. Wyznaczy charakterystyk przetwornika prdu staego 0 20 mA na czstotliwo 5 15 Hz. Wskazówka: do podczenia dwóch sygnaów mona wykorzysta gniazda na pycie czoowej i tylnej przyrzdu.
16. Zdj charakterystyk tumienia zakóce szeregowych multimetru dla okrelonych czasów cakowania. Napicie wejciowe z generatora (zakócenia rzeczywiste) mierzy jako VOLT:AC. Amplitud zakóce mierzonych wyznacza jako poow rónicy (MAX-MIN) z serii pomiarów (CALCulate!). Uwaga: okres próbkowania serii powinien by taki, aby na cay horyzont pomiarów przypadaa cakowita liczba N okresów zakóce oraz N i SAMPle:COUNt nie miay wspólnych podzielników. Dlaczego?.
17. Dla rónych ksztatów napicia: sinusoidalnego, trójktnego, i prostoktnego o rónych wspóczynnikach wypenienia wyznaczy rozkad prawdopodobiestwa pomiarów (histogram, bd histogram skumulowany) wykonywanych w przypadkowych (bd pseudoprzypadkowych) chwilach czasu. Czas cakowania w pomiarach VOLT:DC powinien by co najmniej dziesiciokrotnie mniejszy od okresu przebiegu. Przypadkowe chwile pomiaru mog by generowane w komputerze, bd przyj stay okres próbkowania w/g zasad podanych w zadaniu 16. Uwaga: Nie odczytywa pojedynczych wyników pomiaru do komputera, lecz wykorzysta funkcj matematyczn multimetru LIMit i zlicza odpowiednio generowane dania obsugi SRQ.
5 Literatura
Mielczarek W. - „ Urządzenia pomiarowe i systemy kompatybilne ze standardem SCPI”. Helion, Gliwice, 1999.
Nawrocki W. „Komputerowe systemy pomiarowe”, WkiŁ, Warszawa 2002
"NI-488.2 Software Reference Manual for Windows", National Instruments Corporation, Austin (Texas USA).
"NI-488 and NI-488.2 Subroutines for Pascal", National Instruments Corporation, Austin (Texas USA), Dec 1992.
"IEEE 488 and VXIbus Control, DataAcquisition, and Analysis", katalogi National Instruments Corporation, Austin (Texas USA), 1994, 2005.
"Products for the IEEE 488 BUS", IOtech.Inc. Cleveland, Ohio, 2004.
"HP 34401A Multimeter - User's Guide", Hewlett-Packard Company, Loveland, Colorado, 1992.
"HP 75000 Family of VXI Products & Services", Hewlett-Packard Company, Loveland, Colorado, 1993.