10-03-2006 10:05 AM
10-04-2006 07:57 AM
UPDATE--On the one of the six PCs that has the 4-port RS-485 board I reinstalled all the NI stuff from the LabVIEW 6i distribution, then installed NIserial v1.5. Everything flew fine. The Windows configuration is proper and it works! MAX doesn't know there's an RS-485 board, and it doesn't know, in its software section, that there's a NIserial driver (it's MAX v2.0). Then I went through the same process with one of the other of the six PCs (which have the recently purchased 2-port RS-485 boards). After rebooting after serial driver installation, Windows can't find the driver for the hardware it senses. Taking a slightly different route, I can get to the point that I can select from available drivers for NI multifunction adapters. I choose the RS-485 multifunction parent, but then in Device Manager the ports have yellow exclamation points; and the properties page has no Resources tab! Since I need the base address this situation is non-functional for me.
Is there really no interest in this matter? Doesn't anyone buy new RS-485 PCI boards to run on WinXP anymore? It seems pretty clear to me that either there's a bug in this board's hardware/firmware or NI is pulling another fast one, trying to force their vision of how test and measurement computing should be done on unsuspecting buyers. What am I supposed to do now? Buy new 4-port boards? What a clever and profitable (for NI) solution! I'll probably try the tech support route, but when you haven't PAID for product support...well, you get what you pay for. I get routed to a salesman who wants to get me to buy the support program. He likes to say that they won't leave me hanging and finally routes me to tech support which has become totally worthless. They require so much hand-holding...before they fail utterly to provide any worthwhile solution--unless you consider reinstalling the OS to be worthwhile. They simply have no insight into these matters. Maybe those of us whose companies have decided to eliminate the considerable expense of the support program and perpetual upgrades just get routed to the tech support training section (after the sales pitch) and are promptly forgotten. If you opt for an email exchange with an "engineer" the useless result is the same, it just takes much longer.
Good luck to you all.
10-04-2006 08:48 AM
10-04-2006 11:38 AM
10-04-2006 03:23 PM
10-04-2006 04:42 PM
Hi RudyRed,
I was able to confirm that the board was designed to eliminate the use of I/O Space due to the problems which is brings. With more and more peripherals sharing the same small amount of I/O space, it is common for the system to be unable to allocate the I/O Space needed by a resource.
From your reference to AccessHW I assume that you are using LabVIEW as your programming environment? If this is true, then I also assume you are using NI-VISA to access your serial hardware. When using VISA in LabVIEW, the VISA Write function will not return until the last byte has been transferred to the serial board's hardware FIFO. Once the data is in the hardware FIFO, it will be transferred out the port in a deterministic time. Your application should be able to delay for a brief moment to ensure that the bytes in the FIFO have been transmitted.
The calculate the maximum amount of time it can take for the last byte to leave the serial port the following equation can be used:
(SizeOfTransmitFifo) * (SizeOfSerialFrame) / (BaudRate)
The size of the transmit FIFO can be set through the Windows Device Manager, and the size of the serial frame depends on your data bits, stop bits, and parity settings.
For Example: Using 115,200 Baud, 8 Data Bits, 1 Stop Bit, and no Parity, with a 64 byte Transmite Buffer:
64 * 10 (Start bit + 8 data bits + stop bit) / 115,200 = 5.5ms
I would highly recommend something of this manner in your application, so that you can continue to use the newer serial boards which you have purchased. In addition to several performance enhancements, the lack of an I/O space dependency is only going to become more important in the future. If this will not work for you, you could always work with your sales representative to see about exchanging these for the Legacy PCI boards, with which your existing application works.
Please let me know if you have any more questions, or if I can help in any other way,
Jason S.
GPIB & Serial
National Instruments
10-05-2006 09:20 AM
Thanks for the info, Jason. No, we don't use VISA, but rather the traditional serial VIs to receive and LabVIEW code that uses the inport/outport VIs to transmit. We found in early development that inserting any set value of LV wait yielded unpredictable results. In our application we send an address with mark parity followed by data with space parity. If parity is changed before the address is fully sent, the communications is corrupted. A few years ago we worked for a while with an NI person named, if I remember correctly, Andy Watchorn, trying to figure out a way to use VISA to accomplish our communications reliably and as fast as possible. But it was not possible.
That's an interesting looking equation...but wouldn't you be at the mercy of Windows in doing the timing of the 5.5 ms--and how do you propose to get tenths of a millisecond resolution out of the LabVIEW timer? I will take your suggestion and contact our sales rep about an exchange/credit. Thanks for your help, Jason.