Connect with us

Controlling old dye laser via ieee 488 with labview 7

Discussion in 'Electronic Design' started by Christoph Bollig, Oct 21, 2003.

Scroll to continue with content
  1. Hi everyone,

    I am cross-posting this in a few groups, because this seems to be a
    problem relevant to a number of areas and we are quite desperate to
    solve it. Thanks for your time.

    One of our students is programming an automated data acquisition
    system with labview and has a problem to set up communication to an
    old dye laser. It worked with the old measurement pc, an old gpib card
    and a very old version of hp-vee, but in labview with the new pc and
    gpib interface he just cannot get it going.

    The laser is a Lambda Physik Dye Laser FL 3001/2 made in April 1987.
    The GPIB "card" is an Agilent 82357A USB/GPIB interface for Windows.

    The problem is to get communication between the old dye laser's ieee
    488 interface and a new usb gpib ieee 488.2 interface. He is using
    Labview 7 and VISA to control it. But he can only send a byte to the
    laser, it switches in remote control and is waiting for the rest, but
    there is also no response from the laser to the computer interface.

    In theory, the 488.2 should be downwards compatible, but maybe there
    are some issues. Or their might be some settings in labview, which we
    don't know of.

    Maybe someone can help us, or has even got a little program written in
    labview, which might help to solve the problem??

    Many thanks for your help,

  2. gagir

    gagir Guest

    I encoutered some old Thermotron chambers with IEE488 that would not
    respond properly with the more recent drivers. I think we had to install
    NIDAQ 6.0 to fix it. I am not sure it was a problem with the instrument or
    if it was just the software that was bad.

    Eric Girard
  3. I don't know the hardware or software you are using, but
    your description sounds like you may not have set up the
    agreed protocols (between the controller and the instrument)
    that define the End_Of_String..... whether EOS is done in
    hardware or software and (if in software) whether the EOS
    is defined as a CR or CR+LF.

    You have to look in the manual of the instrument to see what
    it requires (and/or whether it can be set), and then set the
    required EOS in the Labview software.

    If you have multiple instruments on the bus, then you may
    have to do an individual EOS method for each one.

    If you still have access to it, a read of the old programme
    that did work may give some hints.
  4. Eugen T

    Eugen T Guest

    Hi Christoph,

    We are doing similar things down at our university. Similar (same?) problems
    occur when we tried to use 488.2 GPIB interface cards with "old" controllers
    that had 488.1 interface. For some reasons those 488.2 did not want to
    communicate with 488.1 devices. Anyway, try getting one of those older ISA
    488.1 cards or if you want to go the hard way (the way I am connected to one
    of my controllers now), use serial RS-232C port - that port in fact is
    Universal :)


    viperz (at) mail (dot) com
  5. Mantra

    Mantra Guest

    The only difference between 488.1 and 488.2 is that 488.1 defines the
    hardware and electrical specs, and 488.2 requires the instrument
    respond to a handfull of standard commands (*RST, *IDN?, etc.) *and*
    implement the entire 488.1 spec.

    There is absolutely no difference in the GPIB card between 488.1 or
    488.2 operation. The likely difference is that you aren't
    willing/able to get down-and-dirty with GPIB - most LabView and Vee
    drivers I've looked at lately are *hardwired* to *presume* 488.2
    commandset availability. This is mostly laziness on the part of the
    software developers.

    What you will need to do is use the lower-level VISA drivers available
    on both NI and Agilent GPIB interfaces. The general programming
    involves something like:

    viOpen(rsrcMgr, "GPIB::16::INSTR", instrHandle);
    viPrintf(instrHandle, "*RST");
    viQueryf(instrHandle, "*IDN?", buffer);
    viScanf(instrHandle, buffer);


    status =
Ask a Question
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.
Electronics Point Logo
Continue to site
Quote of the day