Dear forum members, I ran into a problem with implementing LV RT (Pharlap ETS) on an embedded motherboard with multiple serial ports hopefully someone can help.
For our specific application that uses multiple serial ports, we'd like to keep the amount of add-on cards to a minimum (preferably none). So eventually we settled down with an x86 motherboard from IEI that has 10 serial ports (instead of buying extension card with serial port from NI). However, after we installed the LV Pharlap ETS on the board, there are only 2 COMs shown up in MAX. After tracing the problem for a while, it appeared that modifying the configuration file /ni-rt/system/niserial.ini (in [System] replicating the NonPnPDevice keys for the rest of the COM ports with correct IO addresses and IRQ levels) will get all 10 COM ports shown up in MAX and validation of them all went OK.
It's getting complicated eversince because when we tried to test it using viWrite and viRead on Open Visa Test Panel (in MAX) none of the ports can send of receive anything - the dreaded time out error BFFF0015 keeps occuring. We traced the problem for a while again and eventually it boiled down to the fact that the 10 COM ports share only 4 interrupt levels (3,4,10,11) and when we reduced the number of COM ports to 4 (so that each of them has a distinct interrupt level) then they can send and receive normally again.
I've tried to install Windows XP on the board and all 10 COM ports can work normally. However, we still prefer Pharlap ETS due to it's determinism.
I'm wondering if this is a specific limitation of Pharlap ETS? Is there a way to enable all 10 COM ports on the ETS platform?
Your help will be much appreciated.
All NI hardware with built-in serial ports assigns a dedicated interrupt line for each, so your scenario has never been tested with NI-Serial for LabVIEW Real-Time. I do not know if this is a limitation of the NI-Serial driver, or of the underlying operating system, but it seems like this is not going to work with the currently available software.
The expectation has been that if multiple serial ports are needed, they would be added through PCI or PXI expansion boards. Is this an option for your situation?