Open VISA Session

Hi to all,
I'm newbie with Labview 8.5, I'm viewing some example to connect serial port with VISA blocks. I see that these examples use a VISA Resource Name control to define the resource (example selecting COM1) but after they don't use Visa Open block to open a VISA session with the device, but they use directly the sequence "VISA write - VISA read - VISA Close" blocks. Why don't they use VISA open session to open a session with device?
I read in help that VISA Resource Name contains some informations on resource and it maintains VISA session also, instead VISA session is a unique identifier, I think that when I create new Visa Resource name Control, Labview automatically open a session with this resource, so it isn't necessary to use VISA Open block to create the session, isn't it?
best regards

It's not correct to say that just dropping a resource control itself on the front panel or diagram opens a session. The resource is automatically opened when calling VISA function (i.e. a write or a read), if the resource was not explicitly opened with the VISA Open function. You can see this yourself. Put just a resource control on the block diagram, select the resource and run the VI. Click the arrow on the control and look at the resources. Now, wire a VISA Write to the control, run the VI, and look at the resources. You will now see a little icon next to the resource you selected. This indicates that the resource is open. The automatic opening of a resource was a change made to VISA several years ago and you will still see the VISA Open in instrument drivers. It's not a bad idea to always use the VISA Open function. For serial, you would put it before the VISA Configure Serial Port.
Attachments:
Open Resource.PNG ‏4 KB

Similar Messages

  • Open VISA sessions (including duplicates​)

    I would like to obtain a list of open visa sessions. I found this knowledge base article which should work, however when opening duplicate sessions (e.g. "COM6 (1)") the list contains empty entries or multiple COM1 references.
    Please try the attached vi to see the effect; on my system the visa resource name control shows COM1 & COM2 (default system ports), COM6 & COM12 (2 USB-serial converters) and LPT1 (system parallel port) at start up.
    This is shown after opening "COM6" (3x) > opening "COM12" (4x) > opening "COM1" (1x) > closing "COM12" and "COM12 (1)"
    Maybe there is a way to read the contents of the drop down menu of the VISA resource control which contains all the information and is also updated automatically.
    Any help is greatly appreciated, regards W@Work
    Note: I'm using LabVIEW 2009 (32-bit) on Windows XP
    Attachments:
    open visa sessions.vi ‏28 KB

    Thank you very much for your response,
    First I'll explain the duplication: the "VISA open" VI allows for opening a duplicate session (which refers to the same port). I want to use this so I can have a separate session for writing and reading which can be locked and unlocked separately. The example I attached to my original post opens duplicate sessions when you (try to) open the same port ("COM1" for example) multiple times. 
    Could you please try the example again selecting "COM1" as "VISA resource name", then click "Open" two times. Now you should see "COM1" and "COM1 (1)" in both lists. On my system clicking "Close" (while "COM1" is still selected) removes "COM1 (1)" from the "open sessions found" list while it should remove "COM1".
    MAX lists ports 1, 2, 6 & 12 that I mentioned in my original post. When running the example this list does not change (no "COM1 (1)" for example) so I think this is just a list of physical ports, not the open VISA sessions. 
    I think you forgot to attach the image but I guess this is the printscreen you're asking for:

  • Open VISA Session Monitor.vi

    This is a vi that is located in \vi.lib\Utility\visa.llb. Did anybody ever had it worked? I started 2 VISA sessions on test equipment (a power meter connected to USB and a signal generator connected to a gpib-usb) and the number of open sessions indicated 0 when there was clearly 2 open sessions.
    Ben64

    Vincent90 wrote:
    Hi Ben,
    Can you specify your error ? Did you try to send commands to your instruments when you think that your session is open ?
    BR,
    Vincent
    There is no error generated, the open VISA sessions just doesn't show up and the Open Sessions.vi return an empty array of references. The issue seems to be with this vi but we can't look at the diagram since it is password protected.
    I was running continuous acquisitions and the VISA resource name controls was showing 2 open sessions (the small computers icon beside the resource name).
    Ben64

  • Open VISA sessions in LV6 VISA Ref control and LV executables

    I have created a LV executable that opens a TCP/IP socket class VISA
    session. Once the session is opened, it appears below the dividing
    line in the executable's VISA resource control. However, the open
    session does not appear in the resource control of any open,
    uncompiled VI in the development environment, nor in the VISA control
    of other LV executables. However, if I run the VI as an uncompiled
    VI, the opened session appears in all other open uncompiled VI's as an
    available resource that may be selected. It should also be noted that
    VISA sessions opened by executables are not returned by the "Open VISA
    sessions" utility VI running in the development environment.
    My wish is to create a
    separate compiled executable applet that
    creates a TCP/IP connection to a network device and have that resource
    appear in the VISA control of other executables and VI's. It appears
    the executable uses its own memory space to keep track of open VISA
    sessions. Is there any way to change this so that all runtime
    executables and the development environment all work from the same
    list?
    Thanks in advance,
    sm

    jwf wrote in message news:<[email protected]>...
    > If you haven't done so, you should try updating LabVIEW 6.0 to 6.0.2.
    > You can download this update for free by going to www.ni.com and
    > clicking on downloads and then drivers and updates and pick the
    > LabVIEW updater out of a list. I know for a fact that this update
    > fixed some problems using the VISA resouce control in LabVIEW 6
    > executables. Hope this is helpful.
    Thanks for the advice, but I've already updated to 6.0.2.
    sm

  • Open visa sessions for controllin​g external dlls

    I need to open a VISA session to pass a session reference into a call library fucntion that calls the vendors instrument functions.  I currently see no way to do this using the call library or visa open function.  Does anybody know how to proceed when you have a non NI instrument that has a dll wiht it that you need to control over USB serially? 

    Mike,
    First thanks for your help but I have been in both those docs before.  My issue is that I have an instrument vendor that has a dll with functions like this:
    ViStatus _VI_FUNC Instr_autoConnectToFirst(ViPSession vi)
      return(Instr_autoConnectToAll(vi,1,NULL));
    that is written using some of the variables in the VISA library...
    When I go to look up what datatypes these variables are in the VISA specifications so I can hopefully create inpuits on a call library function in Labview,  I get descriptions like this:
    Type ViStatus
    This is the operational return status. It returns either a completion code or an error code as follows.
    Completion Codes
    Description
    VI_SUCCESS
    Attribute value set successfully.
    VI_WARN_NSUP_ATTR_STATE
    Although the specified attribute state is valid, it is not supported by this implementation.
    Error Codes
    Description
    VI_ERROR_INV_SESSION
    VI_ERROR_INV_OBJECT
    The given session or object reference is invalid (both are the same value).
    VI_ERROR_NSUP_ATTR
    The specified attribute is not defined by the referenced session, event, or find list.
    VI_ERROR_NSUP_ATTR_STATE
    The specified state of the attribute is not valid, or is not supported as defined by the session, event, or find list.
    VI_ERROR_ATTR_READONLY
    The specified attribute is read-only.
    VI_ERROR_RSRC_LOCKED
    Specified operation could not be performed because the resource identified by vi has been locked for this kind of access.
     I do not see how I get the IO defined for passing and returning data to these external library calls.
    Any ideas???

  • Why Open VISA Session?

    In the driver here, the VISA Open sub-VI states that it "must be called first" when using the device. There is a similar sub-VI for closing the session.
    How true is this?
    I can open and run a different sub-VI (such as Write Single) with no immediately obvious problems, just by specifying the correct device in the VISA Session field. Are errors or performance hits building up in the background?
    My problem is that the KS 3988 will be called on in sub VI's within sub VI's within sub VI's (relative to the main program). I'm not clear on where, exactly, I should be putting that VISA Open panel. This is especially confusing if the "dup VISA session" needs to be wired into every use of the Write Single sub-VI.

    Here is a picture of the VI which actually calls the KS 3988.
    My problem is that this thing is just the sub VI of a VI which is itself the sub VI of a VI that is running in a frame. The top-level VI that contains the frames has four such frames.
    Now, those top three VI's all read out of the black Admin sub VI, and the bottom can both read from it and write to it. Currently, all programs use the same KS 3988 via VISA, but that needs to be something we can change on the fly.
    So, where does the Open sub VI go? Do I need to include, in the frame-containing VI, something like this?
    Message Edited by DJDDA on 07-31-2008 04:10 PM
    Attachments:
    convertfix.jpg ‏17 KB
    convertvi1.jpg ‏26 KB
    convertvicontext.jpg ‏66 KB

  • How are VISA sessions managed by executables?

    I have noticed that VISA sessions opened in the development environment (Labview version 6.0.2) do not show up in the VISA I/O reference control of compiled executables and visa versa. I assume that each EXE has its own memory space for open VISA sessions. Is it possible to get separate EXE's and the development environment to use the same VISA memory space so that all applications and uncompiled VI's show the same open VISA sessions?

    This answer, while correct, doesn't address the issue of some VISA classes and how Labview addresses open VISA sessions. It is quite correct concerning the listing of available resources, that is not the nature of my problem. The heart of the matter is the Open VISA sessions and how they are returned by the "Open VISA sessions.vi" vi in the vi.lib utilities. Also, the VISA reference control does, as you say, display currently available resources (for some classes), but it also displays currently open sessions below a dividing line for those resources not usually displayed.
    The best example of this is for the TCP/IP class. Resources of this class are not displayed unless a session for them has been opened.
    I have written and compiled an executable tha
    t opens a VISA session for a TCP/IP resource. After opening it, the session is displayed in the executable's VISA resource control below a dividing line that separates it from the available serial and GPIB resources. If, however, I have an uncompiled VI with a VISA control open in the development environment at the same time, the open session is not displayed in that VI's resource control. If I run the compiled executable as an uncompiled VI in the development environment along with other VI's containing VISA resource controls, the open TCP/IP session is displayed in all VI's. The same holds true for the "Open VI sessions.vi". Sessions opened by compiled VI's are not returned by this subVI when it is run from outside the executable.
    As I stated before, it appears the executable creates its own separate memory space for listing open VISA sessions.
    I would like to create a small executable that logs in to TCP/IP resources and makes those sessions available to other VI's that ar
    e either uncompiled and running in the devel environment, or are running as separate executables.
    Thanks for your comments
    Steve

  • SRQ event not received when multiple process open VISA instrument

    I'm having two different processes opening VISA sessions to the GPIB instruments.
    This first process install SRQ handler on the ressource and just wait for those events to occurs.
    The second process is basically a test program using standard read/write to my instruments.
    Provided my instrument is correctly configured, I've found that my first process won't see any SRQ when the second process generate badly formatted commands.
    However if the first process send badly formatted commands, then it will see those events.
    I've reproduced this easily with the VIC panels and I can't find any explanation for this behavior.
    I've hooked an AT-GPIB+ to the GPIB bus and confirmed that the SRQ occurred has expe
    cted; I've also confirmed that the GPIB controller do the serial pooling to identify the SRQ origin.
    Furthermore this problem is only reproductible with instrument who do not have secondary address :
    GPIB::4::INSTR => SRQ not detected
    GPIB::5::0::INSTR => SRQ detected
    I've tried different instruments without much differences.
    Finally, writting my first process using the GPIB library instead of VISA seems to works correctly (i.e. it always detects SRQs on the GPIB bus); the only difference being that in that case my callback is installed on the GPIB board instead of the instrument.
    Is it a bug in the VISA library ? How do I work around it ?

    Hi,
    I've further investigated the problem.
    I've upgraded to NI-VISA 2.6.1 and NI-IVI 3.3. This gave better results in the event handling mecanisms, but my issue still exist.
    I've tried to narrow the problem further and it seems that the issue isn't related to instruments with secondary addresses; in fact, it seems related to instruments session which already have seen SRQs before I open a second session on the same instrument.
    Let me try to explain :
    Process A start
    open instrument GPIB0::4::INSTR
    open instrument GPIB0::21::INSTR
    acknowledge SRQ on both instruments
    send "*SRE?" then read response
    call viReadSTB()
    install SRQ handler on both instruments
    call viEventHandler()
    call viEnableEvent()
    configur
    e both instruments for SRQ handling
    send "*ESE 52"
    send "*SRE 32"
    send invalid command to instrument at address 21
    send "xxx"
    => SRQ handler called for the correct instrument
    acknowledge SRQ on the instrument at address 21
    send "*SRE?" then read response
    call viReadSTB()
    Process B start
    open instrument GPIB0::4::INSTR
    send invalid command
    => no SRQ handler called !
    install SRQ handler on this instrument
    call viEventHandler()
    call viEnableEvent()
    => SRQ called in process B (not in process A !)
    acknowledge SRQ on this instrument
    send "*SRE?" then read response
    call viReadSTB()
    close instrument
    open instrument GPIB0::21::INSTR
    send invalid command
    => SRQ handler called in process A
    acknowledge SRQ on this instrument
    send "*SRE?" then read response
    call viReadSTB()
    close instrument
    I hope this detailed test sequence will help you to reproduce my problem more easily.
    Sincerely,
    Rémi THEVENI
    N

  • Error in using TCPIP/Inst​r class to open a VISA session

    I use the TCPIP/Instr class session to open a VISA session to Agilent 86140B Optical spectrum Analyser and I get an Error - VISA open in Appln.vi.Help me to fix this problem.
    I am able to access the instrument on LAN through a Telnet session.
    Vijayalakshmi.
    Attachments:
    OSA_Close.vi ‏28 KB
    OSA_Reset.vi ‏27 KB
    OSA_Initialize.vi ‏63 KB

    Thanx for the reply.The instrument is VXI-11 compliant.The error I am getting is Instrument timeout -1073807339 (BFFF0015) and I am using LabVIEW on Linux.
    I have another problem.I am able to see the instrument using a Telnet session but not using http//192.168.10.2 on a web browser.It is giving an error that the host may be down and try some time later.

  • Opening multiple visa sessions

    I'm having problems with opening multiple VISA sessions for communicating with 4 HP-34401A multimeters in LabVIEW 6.1. If you have a little bit of time, please take a look at what I have here to see if I'm doing something wrong.
    Thanks
    Attachments:
    HP34401_Test.vi ‏108 KB

    I have made a look at your VI. I don't have the driver for the instrument I couldn't go into the subVIs and its documentation and I could not change it for you.
    1. You initialise only 2 of the 4 meters. Initialize all meters.
    2. In sequence 0 you close the session to the meter. In the next loop iteration it will not measure as you intended. Delete the "VISA Close" function.
    3. The stop button would cause the while loop to exit. But your handling is a little bit complicated. Do following:
    Delete the "not" and case where the stop terminal is connected. Wire the stop terminal directly to the termination terminal of the while loop. With the context menu set it to "stop if True". Wire the VISA sessions to the right border of the while loop and connect t
    hem to the "VISA Close" function.
    Waldemar
    Waldemar
    Using 7.1.1, 8.5.1, 8.6.1, 2009 on XP and RT
    Don't forget to give Kudos to good answers and/or questions

  • GPIB Vi's vs. opening a VISA session

    Hi,
    I'm currently trying to develop a simple set of drivers for a GPIB device that we have (Stanford Research Systems SR430). I have used the Developer Zone and the guidelines and templates given there. Those templates all open a VISA session to establish communications with the instrument. I have noticed, however, that some of the GPIB vi's can perform the same functions (reading and writing) using just the address of the device rather than creating a VISA session. Is there any difference to these two methods and if so, which is recommended and why?
    Thank you very much,
    April

    VISA is much preferred. For one thing, VISA works for not only GPIB instruments but also for serial, vxi, and TCP/IP instruments. It is fairly easy to write a single driver that accomodates more than one interface. I've had to do this several times as we have instruments that were sometimes purchased with one or another interface. Another advantage to VISA is that it supports resource sharing and locking. Multiple applications can open the same resource and locking permits the applications to share the resource in a "graceful" manner.

  • URL opens new session

    hi,
    I wrote some test client for testing my server. I create URL and call URL.getContent(). This open new session. But I want use one session. How I can use request for same session?
    <code>
    for (int i=0; i<10; i++)
    URL url = new URL(BASE_ADDRESS + "/adetail.jsf?fid=" + i);
    URLConnection connection = url.openConnection();
    // new session is created
    Object content = connection.getContent();
    </code>

    As i stated, when i click links from 3rd party applications, such as skype; a youtube link or something similar. Firefox opens a new session however it does not visit the clicked url

  • Visa session problem

    Hello,
    I am quite new to LabView. I have to control a Nikon microscope TE2000E with a RS-232. Before writing the program I have opened a VISA session with MAX (basic I/O) to check that I can communicate with the microscope. But when I type a command (e.g. [r][S][P][R][CR], [r]=status request, SPR = function, CR=delimiter) the microscope send an error. I think that this is because I don't write the question in the correct format. Does anybody know the correct format for sending commands?
    Thanks in advance
    Raimon

    Raimon wrote:
    Hello,
    I am quite new to LabView. I have to control a Nikon microscope TE2000E with a RS-232. Before writing the program I have opened a VISA session with MAX (basic I/O) to check that I can communicate with the microscope. But when I type a command (e.g. [r][S][P][R][CR], [r]=status request, SPR = function, CR=delimiter) the microscope send an error. I think that this is because I don't write the question in the correct format. Does anybody know the correct format for sending commands?
    Thanks in advance
    Raimon
    Hi Raimon
    I am in a similar situation, new to labview and I have to set up a system to control the TE2000E via Labview. I was wondering if you had any luck getting things going, and if you could pass along any words of wisdom or sample vi's.
    Thanks very much,
    Jason

  • How do I fix an error message of "failed to open a session on this devices" for my HP photosmart 6510 scanner?

    how do I fix an error message of "failed to open a session on this devices" for my HP photosmart 6510 scanner?

    Hello Kwastfamily,
    It sounds like you are unable to print from your computer to your printer. I would run through the troubleshooting steps in this article:
    Troubleshooting printer issues in OS X
    http://support.apple.com/kb/ts3147
    Make sure that the printer is powered on, has ink / toner, and that there are no alerts on the printer’s control panel. Note: If you cannot clear an alert on the printer's control panel, stop here and check the printer's documentation or contact the manufacturer for support.
    Ensure the printer is properly connected to a USB port on the Mac or AirPort base station / Time Capsule. If the printer is a network-capable printer, make sure that it is properly connected to your home network.
    Use Software Update to find and install the latest available updates. If an update is installed, see if the issue persists.
    Open the Print & Scan pane or Print & Fax (Snow Leopard) pane in System Preferences.
    Delete the affected printer, then add the printer again.
    If the issue persists, try these additional steps:
    Reset the printing system, then add the printer again.
    If the issue still persists, reset the printing system again.  Download and install your printer's drivers. Then, add the printer again.
    Contact the printer vendor or visit their website for further assistance.
    Thank you for using Apple Support Communities.
    All the very best,
    Sterling

  • Has to type each character twice while supplying command in Open VISA test panel

    has a set of commands to work witha system connected to the MS windows PC. when I trype the commands in Hyperterminal (with/without ) they are yielding the expected results.
    in LabVIEW, to get the expected results I MUST has to type 'each character' in the command Twice(except blank space) in the Open VISA test panel (viWrite/viRead). If I give the command  is given the usual way(with each character typed only once), the result always is 'illegal command'.....the same works fine in the Hyperterminal.

    What confused Ashwin is that you said "In LabVIEW". OK, so you're using the MAX test panel. There's one thing that's not clear. You said "when I trype the commands in Hyperterminal (with/without )". With/without what? How is your Hyperterminal session configured? Have you tried something like PortMon to see what's actually being sent from the serial port driver?

Maybe you are looking for