From 04:00 PM CDT – 08:00 PM CDT (09:00 PM UTC – 01:00 AM UTC) Tuesday, April 16, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Digital I/O

cancel
Showing results for 
Search instead for 
Did you mean: 

can't control more then 32 DIO lines at a time

labview 7.0
98OS
DIO-PCI-96 card
 
Write to digital line issue: device 1, port 0, port width 96, line 95, state true, iteration 0, result error-10003
Write to digital line issue: device 1, port 0, port width 24, line 23, state true, iteration 0, result NO Error
Write to digital line issue: device 1, port 0, port width 32, line 31, state true, iteration 0, result NO Error
Write to digital line issue: device 1, port 0, port width 48, line 47, state true, iteration 0, result error-10006
Write to digital line issue: device 1, port 0, port width 48, line 31, state true, iteration 0, result NO Error
i can't seem to control a digital line over the 32nd bit?
Write to digital line issue: device 1, port 0, port width 24, line 23, state true, iteration 0, result NO error
      first set of 3 ports initalize
Write to digital line issue: device 1, port 3, port width 24, line 23, state true,  iteration 0, result NO error
      second set of 3 ports initalize
Write to digital line issue: device 1, port 6, port width 24, line 23, state true,  iteration 0, result NO error
      third set of 3 ports initalize
Write to digital line issue: device 1, port 9, port width 24, line 23, state true, iteration 0, result NO error
      forth set of 3 ports initalize
Write to digital line issue: device 1, port 0, port width 24, line 23, state true, iteration 1, result NO error
     doesn't change to port 0 and set bit 23. stays at port 9 and sets bit 23
     can't seem to change ports with out reinializing....interation 0
problem can't get more then 32 bits in one lump. won't change port without reinitalizing the port.
i need to control all 96 bits.
any ideas?
 
 
 
0 Kudos
Message 1 of 5
(3,426 Views)

Hi dcfilter-

Both of the problems you're seeing are expected behavior- allow me to explain.

First, you can only refer to 32 lines in port 0 because each group of ports is organized on a seperate 8255 DIO chip.  This means that you could theoretically address port0 as 32 bits, port 3 as 32 bits, port 6 as 32 bits, and port 9 as 32 bits, but there is no way to operate at any port widths wider than those.  Because of the organization of the three ports onto a single chip, you have to be careful to initialize all ports as needed before you start operating on the individual ports because all ports on a given chip will re-initialize to default values whenever configuration is performed.

Hopefully this helps-

Tom W
National Instruments
0 Kudos
Message 2 of 5
(3,398 Views)
authentication test
0 Kudos
Message 3 of 5
(3,388 Views)

my first attempt to reply didn't go.

Each chip (M82C55A) has 3 registers PA0-7, PB0-7, PC0-7 for a toltal of 24 lines per chip and 4 chips per card for a total of 96 lines.the VI can span chips but only by one register. my problem is that i can only control the last port initalized. notice the last 2 lines.  the port line of the VI doesn't seem to change the port.

Write to digital line issue: device 1, port 0, port width 24, line 23, state true, iteration 0, result NO error

first chip of 3 ports initalize

Write to digital line: device 1, port 3, port width 24, line 23, state true,  iteration 0, result NO error

      second chip of 3 ports initalize
Write to digital line: device 1, port 6, port width 24, line 23, state true,  iteration 0, result NO error
      third chip of 3 ports initalize
Write to digital line: device 1, port 9, port width 24, line 23, state true, iteration 0, result NO error
      forth chip of 3 ports initalize
Write to digital line: device 1, port 0, port width 24, line 23, state true, iteration 1, result NO error
     doesn't change to port 0 and set bit 23. stays at port 9 and sets bit 23
 
thanks for your assistance
Dcfilter
 
0 Kudos
Message 4 of 5
(3,384 Views)
I would recomend that you don't use Write to Digital Line. At the beginning of your program, use DIO Port Config as many times as you need to for all the ports, and then when you need to write, use DIO Port Write. Both of these functions are inside Write to Digital Line.
0 Kudos
Message 5 of 5
(3,377 Views)