HPIB IEEE
488 primjer
|
U ovom primjeru kontroler je kompjutor spojen na digitalni multimetar
DMM preko HPIB-a. Kontrolerov HPIB interface je određen jednim kodom ISC koji obično
iznosi 7. DMM se po defaultu nalazi na HPIB adresi 22. HPIB BASIC locira
instrument na adresi 722. U
ovom primjeru kontroler ima Talk/Listen na adresi 30. Program obavlja sljedeći zadatak: Obrisati DMM, očitati DC napon, poslati rezultat natrag u kontroler,
serial-polls DMM i pokazati rezultat. 10 REAL Rdg (Rdg je 'REAL' varijabla za pohranu očitanog napona). 20 INTEGER Stat (Stat je integer varijabla koja sprema status bit kojeg vraća serial
poll). 30 ASSING @ Dmm TO 722 (Naredba kojom određujemo adresu uređaja na lokaciji 722). 40 CLEAR 7 (Naredba koja briše sve uređaje na HPIB-u). Iza ove naredbe stoji sljedeći niz HPIB operacija. REN ATN
:DCL Lijeva strana ovog izraza prikazuje stanje 3 kontrolne linije REN, ATN i EOI. EOI je u ovom slučaju
naktivan pa nije niti prikazan. REN i ATN su aktivni prikazujući komandni
bit. REN je jedna od 5 glavnih sabirničkih linija.Koristi je System
kontroler kako bi postavio udaljene uređaje u programabilni mod. ATN također pripada skupini od 5 sabirničkih linija.Nju koristi
trenutno aktivni kontroler kako bi poručio svim uređajima na HPIB-u da
su komandni i adresni bitovi poslani. Ovi bitovi adresiraju izvršioce i
upravljače, održavaju status uređaja itd. Kad je ATN linija potvrđena
svi uređaji moraju odgovoriti u roku od 200ns i prestati sa trenutnim
operacijama koje su izvršavali. Desna strana izraza pokazuje bitove koji se
prenose. U ovom slučaju to je komandni bit DCL (Device Clear). 50 OUTPUT @ Dmm; ˝*RST˝ (Izraz OUTPUT koristi HP BASIC kako bi poslao
bitove preko HPIB-a do udaljenih uređaja, DMM). Iza ove naredbe stoji sljedeći niz HPIB operacija. REN ATN
:TAD 30
(MTA) REN ATN
:UNL REN ATN
:LAD 22 REN
:˝*˝ REN
:˝R˝ REN
:˝S˝ REN
:˝T˝ REN
:CR REN
:LF Prvi bit određuje kontrolera kao upravljača, drugi kaže trenutno
adresiranom izvršiocu (ako ga ima) da prestane s radom zbog adresiranja
novog izvršioca, a treći postavlja DMM-a kao izvršioca. Nakon toga
poslan je u DMM poslan string ˝*RST˝ . Kontrolni karakteri
CR(carriage-return) i LF(line-feed) izbrisati će string i time dati do
znanja DMM-u kako je komanda potpuna i da počne s njenim izvršavanjem. 60 OUTPUT @ Dmm; ˝*CLS˝ REN ATN
:TAD 30
(MTA) REN ATN
:UNL REN ATN
:LAD 22 REN
:˝*˝ REN
:˝C˝ REN
:˝L˝ REN
:˝S˝ REN
:CR REN
:LF Nakon ovih operacija postavlja se pitanje: čemu RST i CLS kad već
koristimo DCL? Odgovor je toliko jednostavan da ga neću ni napisati.(Pošalica) 70 OUTPUT @ Dmm; ˝MEASURE: VOLTAGE: DC? DEF˝ REN ATN
:TAD 30
(MTA) REN ATN
:UNL REN ATN
:LAD 22 REN
:˝M˝ REN
:˝E˝ REN
:˝A˝ REN
:˝S˝ REN
:˝U˝ REN
:˝R˝ REN
:˝E˝ REN
:˝: ˝ REN
:˝V˝ REN
:˝O˝ REN
:˝L˝ REN
:˝T˝ REN
:˝A˝ REN
:˝G˝ REN
:˝E˝ REN
:˝: ˝ REN
:˝D˝ REN
:˝C˝ REN
:˝? ˝ REN
:˝ ˝ REN
:˝D˝ REN
:˝E˝ REN
:˝F˝ REN
:CR REN
:LF Jedina razlika u odnosu na prijašnje izraze je string ˝DEF˝ koji
specificira nazivni opseg mjernog napona za DMM. 80 ENTER @ Dmm; Rdg (Naredba koja je slična naredbi OUTPUT samo u suprotnom smjeru tj. sada
je kontroler izvršioc ,a DMM upravljač. DMM vraća očitanu vrijednost
napona kao string). REN ATN
:UNL REN ATN
:LAD 30
(MLA) REN ATN
:TAD 22 REN
:˝1 ˝ REN
:˝. ˝ REN
:˝2˝ REN
:˝3˝ REN
:˝4˝ REN
:˝5˝ REN
:˝E˝ REN
:˝+ ˝ REN
:˝0˝ REN
:˝1˝ REN
EOI
:LF EOI i LF terminatori se ovog stringa. (ASTA LA VISTA BEJBI) 90 PRINT ˝Reading value:
˝;Rdg (Nakon što program vrati vrijednost napona ona se ispisuje na zaslonu
kompjutora). 100 Stat=SPOLL(@Dmm) (HP BASIC program ispituje stanje serial poll-a). REN ATN
:UNL REN ATN
:LAD 30
(MLA) REN ATN
:TAD 22 REN ATN
:SPE REN
:0 REN ATN
:SPD REN ATN
:UNT Kontroler šalje SPE(Serial Poll Enable) komandni bit kako bi rekao DMM-u da odgovori na poll. DMM vraća bit vrijednosti 0 pokazujući da nema ništa.U tom slučaju ATN je neaktivan zato jer samo kontroler smije slati bitove dok je ATN aktivan. Nakon toga kontroler šalje SPD(Serial Poll Disable) komandni bit i nakon toga oduzima pravo govora DMM-u. 110 PRINT ˝Serial Poll status:
˝;Stat 120 END
|