Varför finns programmerbara labbagg?

limpan4all
Inlägg: 8425
Blev medlem: 15 april 2006, 18:57:29
Ort: Typ Nyköping

Re: Varför finns programmerbara labbagg?

Inlägg av limpan4all »

National Instruments - Labview används nog oftast...
Användarvisningsbild
4kTRB
Inlägg: 20329
Blev medlem: 16 augusti 2009, 19:04:48

Re: Varför finns programmerbara labbagg?

Inlägg av 4kTRB »

HP-BASIC tror jag var vanligt när jag gick på gymnasiet.
sodjan
EF Sponsor
Inlägg: 43231
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Varför finns programmerbara labbagg?

Inlägg av sodjan »

> Vad använder man för språk att programmera instrument med vanligen?
> Är det C++ eller något annat?

Varken C++, LabView eller HP-BASIC (eller något annat vanligt språk) är rätt svar !

Dessa instrument programmeras med ett helt eget kommandospråk, ofta mer
eller mindre unikt för vrje instrument. Om du vill veta detaljer så får du ta ett
exempel på ett instrument och leta manuler på nätet.

Vilket verktyg man använder för att köra dessa kommandon från är mindre intressant.

Men sen så kan det vara så att olika verktyg har mer eller mindre bra inbyggda
hjälpmedel för att köra mot olika instrument. Men annars så spelar det normalt
ingen roll vilket "språk" man väljer.

Om det är HPIB/GPIB instrument så underlättar det ju om miljön (maskin+språk)
man använder i alla fall har stöd för HPIB/GPIB. Om det är en RS232 instrument
så underlättar det på samma sätt om miljön i alla fall har en serieport.

Här nedan ser du två programmeringsexempel, det första för en "power supply"
och det endra för en voltmeter. Som kodexemplen tydligt visar så handlar det mer
om själva instrumentens kommandon än om vilket språk/verktyg/miljö som man
använder för att skicka dessa kommandon till instrumenten. Vilket språk som
helst som kan skriva en text-sträng till en port (HPIB, seriell eller whatever)
duger för att "programmera" dessa instrument !

Nedan ser du ett exempel på programmering av ett "Agilent E3631A Triple Output
DC Power Supply" (vilket alltså var i princip det som du frågade från början) :

Bild

Kod: Markera allt

10 !
20 ! This program sets the output voltages and currents for
30 ! three outputs. This program also shows how to use "state
40 ! storage" to store the instrument configuration in memory.
50 !
60 ASSIGN @Psup TO 705 ! Assign I/O path to address 705
70 CLEAR 7 ! Clear interface - send "device clear"
80 OUTPUT @Psup;"*RST;*CLS" ! Reset and clear the power supply
90 OUTPUT @Psup;"*OPC" ! Verify reset command has executed
100 !
110 OUTPUT @Psup;"APPL P6V, 5.0, 1.0" ! Set 5.0 volts/1.0 amp to +6V output
120 OUTPUT @Psup;"APPL P25V, 15.0, 1.0" ! Set 15.0 volts/1.0 amp to +25V output
130 OUTPUT @Psup;"APPL N25V, -10.0, 0.8"! Set -10.0 volts/0.8 amps to -25V output
140 !
150 OUTPUT @Psup;"OUTP ON" ! Enable the outputs
160 !
170 OUTPUT @Psup;"*SAV 1" ! Store a state in memory location 1"
180 !
190 ! Use the "*RCL 1" command to recall the stored state
200 !
210 END
Och här är ett exempel taget ur manualen för HP/Agilent 34401A, en
programmerbar voltmeter :

Bild

Kod: Markera allt

10 REAL Aver,Min_rdg,Max_rdg
20 INTEGER Val,Hpib,Mask,Task
30 ASSIGN @Dmm TO 722
40 CLEAR 7 ! Clear HP-IB and dmm
50 OUTPUT @Dmm; "*RST" ! Reset dmm
60 OUTPUT @Dmm; "*CLS" ! Clear dmm status registers
70 OUTPUT @Dmm; "*ESE 1" ! Enable "operation complete" bit to set
! "standard event" bit in status byte
80 OUTPUT @Dmm; "*SRE 32" ! Enable "standard event" bit in status byte
! to pull the IEEE-488 SRQ line
90 OUTPUT @Dmm; "*OPC?" ! Assure synchronization
100 ENTER @Dmm; Val
110 !
120 ! Configure the multimeter to make measurements
130 !
140 OUTPUT @Dmm; "CONF:VOLT:DC 10" ! Set dmm to 10 volt dc range
150 OUTPUT @Dmm; "VOLT:DC:NPLC 10" ! Set the integration time to 10 PLCs
160 OUTPUT @Dmm; "TRIG:COUN 100" ! Dmm will accept 100 triggers
170 OUTPUT @Dmm; "CALC:FUNC AVER;STAT ON" ! Select min-max and enable math
180 OUTPUT @Dmm; "INIT" ! Place dmm in "wait-for-trigger" state
190 OUTPUT @Dmm; "*OPC" ! Set "operation complete" bit in standard event
! registers when measurement is complete
200 !
210 Hpib=7
220 ON INTR Hpib GOSUB Read_data
230 Mask=2 ! Bit 1 is SRQ
240 ENABLE INTR Hpib;Mask ! Enable SRQ to interrupt the program
250 !
260 ! Execute other tasks while waiting for data
270 !
280 Task=1
290 WHILE Task=1
300 DISP "Taking Readings"
310 WAIT .5
320 DISP ""
330 WAIT .5
340 END WHILE
350 DISP "AVE = ";Aver; " MIN = ";Min_rdg; " MAX = ";Max_rdg
360 STOP
370 !
380 Read_data: !
390 OUTPUT @Dmm; "CALC:AVER:AVER?;MIN?;MAX?" ! Read the average, min, and max
400 ENTER @Dmm; Aver, Min_rdg, Max_rdg
410 OUTPUT @Dmm; "*CLS" ! Clear dmm status registers
420 Task=0
430 RETURN
440 END
nanopile
Inlägg: 312
Blev medlem: 9 april 2006, 17:06:50
Ort: Stockholm

Re: Varför finns programmerbara labbagg?

Inlägg av nanopile »

Mycket väl förklarat, tackar, det gav en insikt.
Uppskattas :)
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: Varför finns programmerbara labbagg?

Inlägg av blueint »

Tänk om det fanns någon standardisering av dessa kommandon.. :vissla:
sodjan
EF Sponsor
Inlägg: 43231
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Varför finns programmerbara labbagg?

Inlägg av sodjan »

Notera att instrument som är lite äldre än dessa vanligstvis hade
betydligt mer kryptiska kommandon "CONF:VOLT:DC 10" går ju i
alla fall att läsa att det handlar om att ställa in volt-mätning, att
det ska vara DC och att det ska vara 0-10V.

På ett äldre instrument kunde det heta (t.ex) "A2F2G4" där "A" ställer
vad som ska mätas (A1 kunde betyda ström-mätning, A1 spänning o.s.v),
"Fx" om det ska vara AC eller DC och "G" anger mätområde. Går inte alls
att förstå utan en manual uppslagen bredvid.

Exemplet är helt påhittat och taget ur luften, men principen var en
bokstav + en siffra för varje inställning.

> Tänk om det fanns någon standardisering av kommandona..

Ja, det fanns nog en viss samordning mellan instrument i samma generation,
men å andra sidan så finns det inte så mycket som är lika mellan en voltmeter
och en signalgenerator, t.ex.
Användarvisningsbild
PeterH
Inlägg: 8635
Blev medlem: 15 mars 2006, 15:57:10
Ort: Gävle/Valbo

Re: Varför finns programmerbara labbagg?

Inlägg av PeterH »

Men det är vanligt att man skapar ett bibliotek med "drivare" (DLL:er) i den miljö man använder, exempelvis C++. Då kan man standardisera lite grann och bara ropa mott en DLL som i sin tur skickar dom "krångliga" anropen mot instrumenten. Då spelar det inte heller någon roll vilket kommunikationsgränssnitt som används eftersom du som programmerare bara ropar mot en DLL hela tiden. Instrumenten använder som sagt lite olika GPIB/HPIB kommandon, men genom att använda DLL:er kan man standardisera dom vanligaste parametrarna, speciellt när det gäller spänningsaggregat och multimetrar, det är lite värre att skapa generella kommandon för specialiserade radioinstrument och annat :)
sodjan
EF Sponsor
Inlägg: 43231
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Varför finns programmerbara labbagg?

Inlägg av sodjan »

Jo, men "DLL'er" är en ganska ny uppfinning, de har väl bara
funnits sedan PC'n kom ?
Användarvisningsbild
PeterH
Inlägg: 8635
Blev medlem: 15 mars 2006, 15:57:10
Ort: Gävle/Valbo

Re: Varför finns programmerbara labbagg?

Inlägg av PeterH »

Hehe... tänkte inte på hur gammal du är Sodjan :lol: När jag började jobba med GPIB/HPIB så fanns redan PC:n, trodde faktiskt inte att man kopplade styrda instrument (med GPIB) tidigare än när datorer fanns, då menar jag PC-datorer 8) En 286:a är ju också en PC...
sodjan
EF Sponsor
Inlägg: 43231
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Varför finns programmerbara labbagg?

Inlägg av sodjan »

På de teststationer som jag hade hand om var det HP "kalkulatorer"
av typen 9825 och 9826 som styrde det hela.

Bild

Bild
Nerre
Inlägg: 27150
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Varför finns programmerbara labbagg?

Inlägg av Nerre »

DLL:er kom väl med Windows, vi har haft flera gamla "PC-burkar" som haft HP-BASIC i ROM...

Numera är de "uppgraderade" till moderna burkar (läs: Pentium med typ 64 MB minne) som kör en HP-BASIC-emulator (eller nåt sånt) under Windows 95. Man får i alla fall upp en textkonsoll som ser ut som den gamla datorn.
_jonas_
Inlägg: 10
Blev medlem: 8 februari 2011, 12:57:23
Ort: Mörka småland

Re: Varför finns programmerbara labbagg?

Inlägg av _jonas_ »

Om man använder sig av en utvecklingsmiljö som ä specialicerad på test och mät, så slipper man grotta ned sig i specifika kommandon till instrumenten. Till LabVIEW finns mängde med drivrutiner för olika instrument som är fria att använda. Det finns också stöd för hantering av högre abstraktionsnivåer där man exempelvis styr ett spänningsaggregat, oberoende av fabrikat och typ. Valet av drivrutin sker automatiskt beroende på viket ID instrumentet svarar med.
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: Varför finns programmerbara labbagg?

Inlägg av blueint »

Det är säkert copyright på dom LabView drivrutinerna.

Och DLL:er är nya, runtime länkade bibliotek finns sedan gammalt på unix iaf. Skulle inte förvåna mig om dom fanns på äldre system också (IBM, HP, DEC, osv)
_jonas_
Inlägg: 10
Blev medlem: 8 februari 2011, 12:57:23
Ort: Mörka småland

Re: Varför finns programmerbara labbagg?

Inlägg av _jonas_ »

LabVIEW drivrutinerna är säkert skyddade. I vart fall går de ju inte använda utanför LabVIEW, så det är en klar begränsning. Tyvärr är LabVIEW alldeles för dyrt att användas i hobby-projekt... :(
Skriv svar