hp3852a gpib programmering

Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 9097
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Re: hp3852a gpib programmering

Inlägg av AndersG »

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.
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 9097
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Re: hp3852a gpib programmering

Inlägg av AndersG »

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....
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 9097
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Re: hp3852a gpib programmering

Inlägg av AndersG »

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
janaf
EF Sponsor
Inlägg: 2275
Blev medlem: 14 september 2009, 14:51:03
Ort: Stockhom Söder

Re: hp3852a gpib programmering

Inlägg av janaf »

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:

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
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 9097
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Re: hp3852a gpib programmering

Inlägg av AndersG »

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" :)
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 9097
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Re: hp3852a gpib programmering

Inlägg av AndersG »

Bara FYI: Jag har moddat John Miles prologix.exe så att man kan använda det att dunka ned en programsnutt.
prologix_dump.jpg
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
Platis
Inlägg: 2464
Blev medlem: 24 november 2009, 20:19:28
Ort: Ljungby

Re: hp3852a gpib programmering

Inlägg av Platis »

Vad är det för USB-GPIB adapter du använder?
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 9097
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Re: hp3852a gpib programmering

Inlägg av AndersG »

Vad är det för USB-GPIB adapter du använder?
Min egen förstås :) http://www.dalton.ax/gpib.

Böjade på en liten sida.
Användarvisningsbild
Platis
Inlägg: 2464
Blev medlem: 24 november 2009, 20:19:28
Ort: Ljungby

Re: hp3852a gpib programmering

Inlägg av Platis »

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?
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 9097
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Re: hp3852a gpib programmering

Inlägg av AndersG »

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.
Användarvisningsbild
Platis
Inlägg: 2464
Blev medlem: 24 november 2009, 20:19:28
Ort: Ljungby

Re: hp3852a gpib programmering

Inlägg av Platis »

Vet inte om du har sett det här, nyligen inlagt!

X-IL
EF Sponsor
Inlägg: 8479
Blev medlem: 3 december 2008, 07:47:20
Ort: Hallstahammar

Re: hp3852a gpib programmering

Inlägg av X-IL »

Den här hamnade hos rätt kille helt klart!
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 9097
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Re: hp3852a gpib programmering

Inlägg av AndersG »

@Platis
Vet inte om du har sett det här, nyligen inlagt!
Nej, tack för tipset! Skall lägga in en länk till dem.

@X-IL

Tog mig några år dock...
Skriv svar