Academic Company Events NI Developer Zone Support Solutions Products & Services Contact NI MyNI
This Document is not yet Rated  Rate this Document

How to Perform an Asynchronous Communication with the Interactive Control ?

Hardware: GPIB

Problem:
When I use IBIC and do an ibwrt and ibrd everything works fine. However, when I do an ibwrta and then I try to do an ibrda I get an EOIP error. What am I doing wrong?

Solution:
The EOIP error according to the NI-488.2 Help will happen when an asynchronous I/O operation has not finished before some other call is made. During asynchronous I/O, you can only use ibstop, ibnotify, ibwait, and ibonl, or perform other non-GPIB operations. If any other call is attempted, EOIP is returned.

What is happening is that the controller doesn't know that the I/O operation has finished. We need to get the CMPL bit from the ibsta to know that it has finished, before we can continue with the GPIB commands.

Therefore what we need to do is send an ibwait that will get back when the CMPL is sent. That will notify the controller that the I/O has finished and will resynchronize the driver and the application.
Once the ibwait completes you can do the ibrda and then a last ibwait .

Here is a sample sequence:

ibdev 0 2 0 10 1 0
ibwrta "*idn?"
ibwait 0x0100 <-----Check for CMPL
ibrda 100
ibwait 0x2100 <----- Check for END and CMPL

Related Links:

Attachments:





Report Date: 09/30/2004
Last Updated: 02/20/2008
Document ID: 3DTFG7RY

Your Feedback! poor Poor  |  Excellent excellent   Yes No
 Document Quality? 
 Answered Your Question? 
  1 2 3 4 5
Please Contact NI for all product and support inquiries.submit