Program napisan v Turbo pascalu mogo"ca merjenje upornosti z DMM povezanim z PC. Meritve zapisuje v datoteko rezultati.prn. Ob napaki je mo"zno ponoviti zadnjo meritev. Program bere SRQ linijo in s tem ugotovi, "ce se je meritev "ze kon"cala. Pri inicializaciji DMM in lokalnega krmilnika je potrebno testirati mno"zico mo"znih napak, ki se lahko zgodijo ob nepravilni komunikaciji ali slabo napisanem programu. Z rutino errCheck() kontroliramo mo"zne napake in jih izpisujemo na zaslon.
program vaja1; uses crt, p60hpib; const ISC = 7; { interface card address} OM = 723; { ohmmeter na naslovu} var i : integer; err : integer; code : string[30]; reading : real; tipka : char; f : text; procedure errCheck(err : integer; message : string); begin if err <> 0 then writeln('Napaka: #',err, ' ', message); end; procedure initialize; begin err := ioReset(ISC); errCheck(err, 'Inicializacija kartice'); err := ioTimeOut(ISC, 5.0); errCheck(err, 'ioTimeout po 5 sekundah'); err := ioClear(ISC); errCheck(err, 'ioClear'); end; procedure serviceRequest; { What is the current condition of the SRQ line} const condition:integer = 1; var status : integer; begin code := 'KM01'; err := ioOutputs(OM, code, 4); errCheck(err, 'KM20 output in SRQ'); repeat repeat err := ioStatus(ISC, condition, status); errCheck(err, 'What is the current state of the SRQ line?'); until status <> 1; err := ioSpoll(OM, status); errCheck(err, 'IoSpool on SRQ'); until status <> 65; end; begin{main} initialize; code := 'F3N5T4'; err := ioOutputs(OM, code, 6); errCheck(err, 'F3N5T4 output na zacetku'); assign(f, 'rezultati.prn'); rewrite(f); i := 1; writeln('Merimo upore'); writeln('Za koncanje pritisni "n"'); writeln('Za ponovitev "p", za naprej "ENTER".'); repeat code := 'T3'; err := ioOutputs(OM, code, 2); errCheck(err, 'Nastavitev posamicne meritve.'); serviceRequest; err := ioEnter(OM, reading); errCheck(err, 'Branje ene vrednosti po ukazu SRQ.'); writeln('Meritev #', i:3, ' Upornost=', reading:8:4); tipka := readKey; if tipka <> 'p' then begin i := i + 1; writeln(f, reading) end else writeln('Ponavljam meritev!'); until tipka = 'n'; close(f); end.