NI IEEE 488.2 and Borland C++ Builder 1.0

I have an NI IEEE 488.2 card connected to a HP DVM. I am using this as a
test bed to develop the 488.2 base code for other projects. The rack system
normally runs off of LabVIEW 6.1.
I will eventually move this code over to run an old prober. When I initiate
the program level commands, ibdev or ibwrt for example, through WIBIC I have
no problems. Neither setting up or reading from the meter. When I utilize
these very same commands in the compiled software I get nothing. It's as if
the program isn't even going out and looking for the card.
I have called the decl-32.h and the NI provided .obj file as the language
translator, but nothing.
Any help?
Seth

Diego,
Thanks for the reply. I fixed the problem. It was the machine I was working
on. I had our IT guy give me a more up to date machine and comm. commenced
nicely. I've only written a small bit of C++ and like the Builder
environment. There never was anything wrong with the card, the NI 488.2 or
NI 488 commands.
But, I'm moving on to our LabVIEW 6i. As an engineer, I was appalled to
find that we owned a full version of 6i Development System and are still
testing our production devices by hand.
Being that I am learning LabVIEW, you are sure to hear from me quite a bit.
Any help as to the location of some nice info on communicating with Excel
from LabVIEW?
Regards,
Seth
DiegoF wrote in message
news:50650000000500000034270100-10423
[email protected]..
> Hi Seth,
>
> Do you get any compiler/linker errors? How about run-time errors from
> the GPIB calls?. Do you check the status of ibsta after ibfind or
> ibdev?.
>
> Try to run one of the examples to see what happens. It is really
> strange that nothing happens at all.
>
> DiegoF
> National Instruments.

Similar Messages

  • Program NI boards using the DAQ Libary and Borland C++ builder 5

    Hi,
    I am programming Lab PC-1200 NI boards using the DAQ Libary and Borland C++ builder 5.
    But I get the following error msg:"[Linker Error] 'C:\NI-DAQ\LIB\NIDEX32.LIB' contains invalid OMF record, type 0x21 (possibly COFF)" although I have linked all DAQ lib files in C builder.
    Anyone who had tried or succeeded in a similar application and solved this problem??
    Thank you in advance for your help!

    Hi w,
    Please check out this related DevZone question/answer:
    http://exchange.ni.com/servlet/ProcessRequest?RHIVEID=101&RNAME=ViewQuestion&HOID=5065000000080000007D180000&ECategory=Measurement+Hardware.Real-Time+Data+Acquisition
    The basic reason is that we design our libraries for many environments, but Builder is not one of them. You can use the dll's (they're just dll's), but you will need to make your own library or use run-time linking.
    For more information about run-time linking, you can try http://msdn.microsoft.com and search for "About Dynamic-Link Libraries"
    I hope this gives you a start.
    John N
    Applications Engineer
    National Instruments

  • Run-Time errors using DAQmx and Borland C++ Builder 5.0

    I've written a simple program on MS Visual C++ 6.0 to test my PCI-6014 board and it works fine.
    I copied the code to Borland C++ builder 5.0 and had some linker problems with the .lib files that where solved with borland's "coff2omf".
    Now I've been getting run-time errors when I use the function DAQmxCreateAIVoltageChan()... The error code is -50251: "The specified software component is not available. The component was not loaded".
    But I'm sure that the code is right, since it works fine on MS Visual C++ 6.0!
    That the part of the code where I'm getting the error:
    iErro = DAQmxCreateTask("", &thTask);
    iErro = DAQmxCreateAIVoltageChan(thTask, "Dev1/ai0", "", DAQmx_Val_Diff, -10.0, 10.0, DAQmx_Val_Volts, NU
    LL);
    Thanks for the help,
    Marcelo

    Hello
    Borland enables certain types of exceptions by default which are initially disable in MSVC. You will need to refer to the documentation for Borland Builder on how to disable floating point exceptions. I believe you can do it by adding the following statement to your initialization code, but you should double check this:
    _control87(MCW_EM, MCW_EM);
    These exceptions get thrown because we are doing some floating point initialization underneath. This is not an indication of a bug or a problem of any sort. Apparently you have to this for alot of libraries to work correctly with Borland (OpenGL etc...)
    Hope this helps
    Bilal Durrani
    NI
    Bilal Durrani
    NI

  • Communicating between GPIB IEEE 488-1978 Instrument and LabView

    Hi,
    I'm currently trying to convert some old BBC BASIC Code into Labview 6.1.
    The BBC Computer has a GPIB Comms Unit attached to it to communicate with an old Marconi Instruments Microwave Counter 2440 using GPIB IEEE 488-1978.
    I am currently trying to get Labview to communicate with the Counter using GPIB 488 vis and a NI GPIB 488.2 Card but I'm not able to get anything out of the Counter or get MAX to even acknowledge the equipment exists.
    I was wondering if anyone out there knows if it is possible to communicate with a GPIB IEEE 488-1978 instrument in Labview 6.1 (or any other LV Versions) and if it is, does anyone have a driver for the instrument (Marconi Instruments Microwave Counter 2440 circa 19
    84) or having any helpful tips on the protocol for talking to a IEEE 488-1978 instrument.(I have some previous experience using VISA.)
    Many Thanks in Advance for your help.
    Sammy Mason

    I have done this with several instruments. It is best to get a hold of the manual for this instrument and see what commands it uses.
    MAX will not find this using the *IDN? query. In MAX, open the "Communicate With Instrument" window and type "ID?" (without the quotes), and hit query. You should get some basic information back from your instrument.
    I use GPIB Read and GPIB Write most often. Your instrument probably doesn't support much else. Maybe Clear and Poll.
    Be careful if you are using a newer, faster computer. There are Knowledge Bases and Discussion Forum topics that discuss the problems that can arise. To prevent these problems, I created my own Read and Write VIs. They just have a few milliseconds delay before the read or writ
    e takes place
    Attachments:
    GPIB_Read_with_Delay.vi ‏37 KB
    GPIB_Write_with_Delay.vi ‏35 KB

  • S: cheap LabView compatible GPIB-IEEE-​488 Card

    Hi Newsgroup,
    i'm looking for a cheap GPIB-IEEE-488-Card (LabView compatible) to control a
    climate-chamber with LabView 6.i. As the climate-chamber was build more than
    ten years ago, i don't expect it's interface to be compatible to the
    IEEE-488.2 standard.
    Following information about the interface occur in the manual: IEC-bus, IEEE
    488 plug connector
    Is there a downward-compatibly form IEEE-488.2 to IEEE-488?
    Does anybody know where i can buy such a card for few money?
    I've found a Dealer in Germany (where i come from) with the following offer:
    http://www.quancom.de/quancom/quancom01.nsf/home_p​rod_deu.htm?OpenFrameSet&F
    rame=unten&Src=http://www.quancom.de/qprod01/deu/p​b/gpib_1.htm
    For me it seems to be quite inexpens
    ive, but i have few experience within
    this range. Therefore I would be glad, if you could help me. My boss would
    not appreciate if spend a lot of money for a card, which does work together
    with the climate-chamber.
    Greetings
    Florian

    Les's answer about 488 is right on. 488.2 is just a superset of the original 488 - nothing about the electrical interface has changed. You question about low cost cards has a different problem however. The GPIB functions in LabVIEW will only work with an NI card. If a vendor offers a VISA driver for their card, then the LabVIEW VISA functions will work but I have had some problems with very old instruments and VISA. If the vendor offers GPIB drivers for LabVIEW, then use those. If all they have is a DLL that you need to call, then you've got a lot of software development ahead of you. All of this means is that the cost of the hardware is just a part of the overall cost of a project. If you manage to save $100 on the board and then have spend a week or two o
    n the basic GPIB software, you really haven't saved anything.

  • How can I call a DLL from Borland C++Builder that was generated by LabVIEW?

    In the linking phase, the linker of Borland C++Builder echoes the message shown below:
    [Linker Error] 'Test.LIB' contains invalid OMF record, type 0x21 (possibly COFF)
    'Test.LIB' was generated by LabVIEW Application Builder and had been verified working well with Microsoft Visual C++

    "Murray Chen" schrieb im Newsbeitrag
    news:[email protected]..
    > In the linking phase, the linker of Borland C++Builder echoes the
    > message shown below:
    >
    > [Linker Error] 'Test.LIB' contains invalid OMF record, type 0x21
    > (possibly COFF)
    >
    > 'Test.LIB' was generated by LabVIEW Application Builder and had been
    > verified working well with Microsoft Visual C++
    Hi Murray,
    Borland C++ Builder uses a .lib format which is not equal with VC++. You
    have to rebuild your .lib by using implib.
    Try 'implib library.lib library.dll' to create a new .lib.
    Greets
    Henrik

  • How can I add a new channel in CWAI control in Borland C++ Builder 5.0

    I'm using Borland C++ Builder 5.0 and CWAI control of ComponentWorks to get the analog signal from DAQ card.
    I want to delete or add a new channel object in CWAI control when the program is running.
    So I did:
    CWAI1->Channels->RemoveAll(); <--It seems to work fine
    CWAI1->Channels->Add((wchar_t*)0,upperlimit,lowerlimit,InputMode,Coupling);
    But,It does not work in second line. I can't understand what is wrong.
    Please answer me this question.

    I'm using Borland C++ Builder 5.0 and CWAI control of ComponentWorks to get the analog signal from DAQ card.
    I want to delete or add a new channel object in CWAI control when the program is running.
    So I did:
    CWAI1->Channels->RemoveAll(); <--It seems to work fine
    CWAI1->Channels->Add((wchar_t*)0,upperlimit,lowerlimit,InputMode,Coupling);
    But,It does not work in second line. I can't understand what is wrong.
    Please answer me this question.

  • Counter Task issue with NI6229 and Boralnd C++ builder

    Hello!
    I am using the NI-6229 M series Acquisition Board and I am writing my application in Borland C++ Builder 6.
    My goal is to generate digital pulses on the counter output that are syncronized with a video camera.
    To do this I created a task that generates one digital pulse (5ms in high state and 495ms in low state).
    I am starting this task in one thread and in another thread I am waiting until this task is done and then I am stoping it.
    The problem is that on the counter output I have pulses bu the low state is much shorter than 495ms and is not even constant.
    Is it possible that waituntiltaskdone function waits only until the output goes in to the low state and then it considers the task done?
    If not can anyone give me a solution?
    Thank you.

    Kevin,
    While preparing a response for you, I realized that in playing with my
    VI I had entered the wrong delays, causing me to think that the
    retriggerable property would cause CO.PulseDone to stay false the
    duration of the low time. I then remembered that for single pulse
    generation, the low time is actually ignored. Therefore, if your idle
    state is low, the counter remains low for "initial delay," transitions
    high, stays there for "high time," then transitions low. After this,
    the task is done. If your idle state is high, the levels are reversed
    and "high time" is ignored.
    I recreated your setup using DAQmx 7.5, and did not observe the early
    transition of PulseDone. This was with CO Pulse Ticks. Were you using
    CO Pulse Time? Perhaps you did not arrive at the same number of ticks
    (based on time) as the driver. Or, maybe you mistook the "low time" and
    "initial delay" inputs, as it is certainly easy to do. Do you know what
    version of the driver you were using?
    Thanks,
    Ryan Verret
    Product Marketing Engineer
    Signal Generators
    National Instruments

  • I was given a task to find out more informatio​n on the following before we purchased anything. Please, can you answer the following questions regarding the IEEE 488 to Ethernet.

    1) How do we connect our network analyzers to the network?
    2) What do we need to purchase?
    3) How much is this going to cost us?
    4) What kind of capabilities will this give us? (if any)

    I think you are talking about the GPIB-ENE from NI.
    1) You have to setup the ENET box by giving it an IP address. You may also need your Sys Admins help to do this. After that you will need to install the software, connect to the ethernet and connect to the equipment.
    2) GPIB-ENET/100 from NI. Not sure if the NI488.2 comes with it or seperately, but you need it also.
    3) Between $1,000 and $1,500 (US)
    4) I like this solution. It allows you to control IEEE 488
    equipment from virtually anywhere. You do not have to have a GPIB controller on every PC, but only on the equipment to control. I have test stations that I roll from place to place. I don't have to worry about connecting the station to a PC. I simply plug the station into the LAN and use any PC I want.
    If you have e
    quipment that you would like to control from anywhere or move from place to place this is the only way to go.
    Kevin

  • Communicate to a Fluke 8840a, VB, IEEE-488; Error ECIC(1)

    I am trying to communicate to a Fluke 8840a using VB 6/Measurement Studio via IEEE-488
    Using Explore GPIB I can scan and find the DMM.  However when ever I try to “Communicate with Instrument” I’m getting a ECIC (1) error [NI Spy] no matter what is typed into the “send string”.  I have been through the help files and nothing has worked or I am doing something wrong [most likely].
    I have look at the fluke example and other examples and it is not much help as I keep getting the CIC error
    I know the interface works on the DMM because it is calibrated through the port.
    NI-488.2 Version is 1.6, NI Spy is 1.4.  My development system is Windows 2000 [no out side net connection]
    Any help is much appreciated

    Matt S,
    This was not the answer I was hoping for but what I sort of expected.  The reason was the additional paper work I needed/had to go through to allow the download of the executable from the net.
    I got the upgrade installed and was able to read the DMM through the Explorer with no problem.  From here, I do not expect any further problems. 
    Thanks Again
    Matt

  • Compiler error importing TestStand ActiveX Engine with Borland C++ Builder 6

    I'm having problems importing TestStand Engine Activex in Borland C++ Builder 6.
    In the file "TS_TLB.h" automatically generated, the compiler stops with the error message "E2034: Cannot convert 'Variant' to 'tagSAFEARRAY'"
    and the point in source code is...
    LPSAFEARRAY __fastcall InsertCodeModules(VARIANT itemList/*[in,opt]*/= TNoParam())
    _TDispID _dispid(/* InsertCodeModules */ DISPID(18));
    TAutoArgs<1> _args;
    _args[1] = itemList /*[VT_VARIANT:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();//<<<<
    Is there anything like in Delphi Operator Interface help file "readme.doc" that I can do to avoid this problem?
    Thank you.

    Axeel -
    I have never used Borland Builder C++ but I downloaded the trial version 6.0 (Build 10.160) and I was able to use the Project Import Type Library menu command to generate the TS_TLB files. From there I was able to create a simple form application where I dropped the TEngine control from the ActiveX palette, a button control and a timer control for message polling. The code below is what I added to call into TestStand. I did not have any compiling problems.
    Hope this helps...
    Scott Richardson (NI)
    void __fastcall TForm1::Button1Click(TObject *Sender)
    try
    VARIANT_BOOL = VARIANT_FALSE;
    TNoParam tNoParam;
    Ts_tlb:equenceFilePtr seqFile;
    Ts_tlb::ExecutionPtr exePtr;
    Form1->Engine1->UIMessagePollingEnabled = true;
    seqFile = Form1->Engine1->GetSequenceFile(L"c:\\temp\\temp.seq", 0);
    exePtr = Form1->Engine1->NewExecution(seqFile, L"MainSequence", 0,
    0, 0, tNoParam, tNoParam, tNoParam);
    exePtr->WaitForEnd(-1, 1, tNoParam);
    catch (Exception &exception)
    Application->ShowException(&exception);
    catch (...)
    try
    throw Exception("");
    catch (Exception &exception)
    Application->ShowException(&exception);
    void __fastcall TForm1::Timer1Timer(TObject *Sender)
    Ts_tlb::UIMessagePtr UIMsg;
    if (!Form1->Engine1->IsUIMessageQueueEmpty)
    UIMsg = Form1->Engine1->GetUIMessage();
    UIMsg->Acknowledge();
    Scott Richardson
    National Instruments

  • How to use labview to talk to PC ELITE IEEE 488 Interface

    hi,
    I am trying to talk to EAC 300HR and EAC 2000 controllers using PC ELITE IEEE 488 Interface throguh labview. It would help if someone cpould give me a clue ablout how to start with it??
    ABhishek

    Hi,
    As with any hardware, this board should come with its device driver. The device driver allows you communicate with the device from your application.
    Also, the device driver needs to provide Language Interface files. For example, NI-488.2 (NI's GPIB driver) provides header and library files for Visual C, .bas files for Visual Basic and VIs for LabVIEW. Each of these allows you to call the GPIB function from any of these programming environment.
    You should check the documentation of you board and determine what Language interface files it provides. Look in their website for any LabVIEW drivers.
    If the driver does not provide LabVIEW drivers, you can still use the driver if it provides a dll where you can call the driver function. In labVIEW yo
    u can use the Call library node to directly call dll functions.
    DiegoF.
    National Instruments.

  • Can IEEE 488.2 Labview software/drivers used on a IEEE 488.1 instrument

    I have a IEEE 488.1 device but am using a IEEE 488.2 Labview software/driver package.  Measurement and Automatiion
    tells me that the IEEE 488.2 board is working properly but there is no communication between the board and the device.
    Is IEEE 488.2 downward compatible?  If not, is there any remedy rather than getting a new board or getting a new instrument
    with IEEE 488.2 software?
    Thanks.
    Mark

    Hello,
    In my application I am conducting a pressure test, Here am using DMA Make Air Data Test Set witch I am interfacing to the PXI system through GPIB.
    In MAX the particular GPIB address is detected but if i write a query "*IDN?" it did nt respond.
    To debug this issue I used NI 488.2 Interactive control when i started communicating with the instrument it throws error such as EAB0 and status as TIME0 and CMPL
    Here the Instrument DMA make MPS31C is 1EEE 488.1 Compliant.and NI 488.2 Ver 2.52
    Please find the attached operation manual and Device communication manual of the Air data test set
    Please suggest be a solution for this issue.
    Waiting for a quick reply
    Regards
    Lingaraj
    Attachments:
    EM MPS31C Operating0108.pdf ‏2452 KB
    EMPS31CExtDrivComm.1010.pdf ‏104 KB

  • How can you interface IEEE 488 bus with labview

    Hi
    How should I proceed to interface labview with an instrument (an impedence analyser with a IEEE 488 port) and labview through a IEEE 488 interface card in the PC.
    Thanks
    Mal

    Hi,
    You hava a group of functions to do that. Go to Instrument IO --- GPIB.
    There you can find the tools you need to comunicate with an instrument via GPIB.
    You can also use MAX (Measurement and Automation Explorer) to test your comunication before implementing it in LabVIEW.
    Hope this gets you started,
    Paulo

  • Hameg power supply HM7044 ieee 488 (GPIB) device control

    Dear All,
    I have a power supply (Hameg HM7044) with a GPIB interface.It seems that there is no VI to control it in the HAMEG or the ni websites.
    Since i am new to this kind of interface i have two questions.
    -if i connect the device how do i know the address it is in.
    -is there a general VI to interact with GPIB -ieee 488 devices?
    thank you in advance,
    thodoros 

    Well, there is a driver here but it is for RS-232 and for some stupid reason, they have password protected the VI. That should deserve a nasty message to them.
    First, if you use an NI GPIB controller, you will get a program called Measurement & Automation Explorer (MAX). As part of the installation instructions, you will do a 'Scan For Instruments'. This will return a list of GPIB addresses for all of the connected instruments. Second, the information for setting the GPIB address is going to be in the instrument manual. If you don't have a manual, get one because you can't do a thing without one.
    To communicating to GPIB instruments, the recomended API is VISA. The majority of the time, all that you will need is a VISA Write and a VISA Read.
    You can learn some of the basics at the Instrument Control Fundamentals page.

Maybe you are looking for