hp3852a gpib programmering
Re: hp3852a gpib programmering
Det är en lång bit dit ännu... Måste fundera på placering... Den går in under bänken vid labbdatorn, så har lekt med tanken att laga en vagn på hjul så man kan dra ut den vid behov.
Re: hp3852a gpib programmering
Och läsa igenom manualerna. Kom så långt som att få ett program (Excel/VBA) som sänder kommandon till voltmetern, men det är ju en eller två parametrar man behöver förstå för att få den att spela....
Re: hp3852a gpib programmering
OK. Nu börjar det likna något:
Kod: Markera allt
Sub Logger()
'
' Loger Macro
' Sample to read data from a high-speed voltmeter in av hp3852a rack
'
Dim Port As Integer
Dim rc As Long
Dim str As String
Dim i, j As Integer
Dim n As Long
Port = 1
j = 1
rc = CommClose(Port)
rc = CommOpen(Port, "COM4", "baud=9600 parity=N data=8 stop=1") ' Speed does not really matter as COM-port is virtual anyway
If rc > 0 Then
rc = CommGetError(str)
MsgBox str
End If
str = "Q " + Chr$(3) ' Turn off debug mode on my interface
rc = CommWrite(Port, str)
CommFlush (Port)
str = "6" + Chr$(10) ' Set remote (assert REN)
rc = CommWrite(Port, str)
For n = 1 To 1000
Next n
str = "2 ?U8" + Chr$(10) ' Set HP 3852A to listen assuming av address of 24
rc = CommWrite(Port, str)
For n = 1 To 1000
Next n
CommFlush (Port)
rc = GPIB(Port, "DISPLAY START") ' Show info on display
rc = GPIB(Port, "OUTBUF ON") ' Set output buffering on
rc = GPIB(Port, "USE 600") ' Use Voltmeter in slot 6-7
rc = GPIB(Port, "RST 600") ' Reset it
rc = GPIB(Port, "TERM EXT") ' Use voltmeter external terminals
rc = GPIB(Port, "NRDGS 10") ' Ten readings
rc = GPIB(Port, "DELAY 0,0.1") ' 0.1s between readings
rc = GPIB(Port, "AZERO ONCE") ' Send command
rc = GPIB(Port, "TRIG INT") ' Internal trigger (pocer)
rc = GPIB(Port, "XRDGS 600") ' Do read
CommFlush (Port)
str = "2 ?UX" + Chr$(10) ' Set HP 3852A to talk
rc = CommWrite(Port, str)
For n = 1 To 1000
Next n
rc = GPIB(Port, "DISPLAY end") ' Show we're done
rc = CommWrite(Port, str)
For n = 1 To 1000
Next n
str = CommGetstr(Port) ' Read data
MsgBox str
str = CommGetstr(Port)
MsgBox str
str = CommGetstr(Port)
MsgBox str
str = "2 ?U " + Chr$(10) ' Unlisten
rc = CommWrite(Port, str)
str = "4 " + Chr$(10) ' IFC
rc = CommWrite(Port, str)
rc = CommClose(Port)
'
End Sub
Function CommGetstr(Port As Integer) As String
Dim str As String
Dim timeout As Integer
done = 0
timeout = 1000
While done <> 1 And timeout > 0
If CommRead(Port, str, 10) > 0 Then
If InStr(str, Chr$(10)) Then done = 1
CommGetstr = CommGetstr + str
End If
timeout = timeout - 1
Wend
CommGetstr = Replace(CommGetstr, Chr$(0), "")
CommGetstr = Replace(CommGetstr, Chr$(10), "*")
CommGetstr = Replace(CommGetstr, Chr$(13), "|")
End Function
Function GPIB(Port As Integer, Cmd As String) As Integer
rc = CommWrite(Port, " " + Cmd + Chr$(10))
For n = 1 To 1000
Next n
End Function
Re: hp3852a gpib programmering
Det är VB6?
Tips: lägg in "DoEvents" så händer:
- Andra processer släpps in dvs CPU:n ligger inte på 100% pga While-loopen,
- Du kan få programmet att göra andra saker, typ läsa en cancel-knapp:
Tips: lägg in "DoEvents" så händer:
- Andra processer släpps in dvs CPU:n ligger inte på 100% pga While-loopen,
- Du kan få programmet att göra andra saker, typ läsa en cancel-knapp:
Kod: Markera allt
my_cancel = False
While done <> 1 And timeout > 0 And not my_cancel
.
.
DoEvents
wend
Private Sub cmdCancel_Click()
my_cancel = True
End Sub
Re: hp3852a gpib programmering
Det är VBA i Excel 2000 vilket jag har på labbdatorn. Inte så överdrivet elegant, men det tillåter mig att suga in ett gäng mätvärden i ett excelark. Jag använder C/c++ då jag programmerar "på riktigt" 

Re: hp3852a gpib programmering
Bara FYI: Jag har moddat John Miles prologix.exe så att man kan använda det att dunka ned en programsnutt.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: hp3852a gpib programmering
Min egen förståsVad är det för USB-GPIB adapter du använder?

Böjade på en liten sida.
Re: hp3852a gpib programmering
Det var intressant!
HP3852A verkar vara en riktigt "versatile" maskin, vad har du för moduler till din?
Vad för cpu använder den?

HP3852A verkar vara en riktigt "versatile" maskin, vad har du för moduler till din?
Vad för cpu använder den?
Re: hp3852a gpib programmering
Den är Motorola 68000-baserad. Jag har en 44702 fast voltmeter, två FET-multiplexers, två 44725 en 44877 samt en HP Agilent 44726A 2 CHL Arbitrary Waveform DAC Module. Den sista på väg från USA. Kommer i April.
Re: hp3852a gpib programmering
@Platis
@X-IL
Tog mig några år dock...
Nej, tack för tipset! Skall lägga in en länk till dem.Vet inte om du har sett det här, nyligen inlagt!
@X-IL
Tog mig några år dock...