Mihalis,
With what are you interfacing? Does it support any asynchronous protocols? You should be able to use an additional line on your 6009 as a "data ready" signal. This line would go high after you have written data to your 8 DO lines, and low before they are changed again. At this point, your device should latch the data, on either the rising or falling edge. Are you able to implement this functionality on your device? You may also need some input signal to the 6009 which your device asserts when it has read the value on the bus. The 6009 would hold "data ready" high during this time. Alternatively, your device may have a "hold" line which indicates whether or not it is ready to accept data. The 6009 should always check the state of this line before deasserting the "data ready" line and moving on to the next port value. Even with software-timed updates, you will have no problem implementing this protocol for a 3Hz rate. Please let us know if you have any more questions.
Hope this helps,
Ryan Verret
Product Marketing Engineer
Signal Generators
National Instruments