I'm assuming you have an embedded real-time controller in a PXI chassis and the LAN cable is just to connect to the host PC to provide a simple-to-implement user interface from the LabVIEW dev environment.
You'll need the AO task to be unbuffered for sure. I'd make the AI task unbuffered too, at least initially. All you need to do is *not* include a call to DAQmx Timing and that'll leave your tasks in software-timed "on-demand" mode. In this mode you'll read and write just 1 sample at a time so the main control loop will need to iterate at a high rate.
I haven't been around RT in a long time, but IIRC, the real-time DAQmx driver has a lot less overhead for these on-demand reads and writes. So you'll not only be able to have reliable timing under RT, but you should be able to get a pretty fast loop rate.
And you're going to *need* it. Dunno what frequencies you need to "cancel", but your loop rate probably needs to be faster than those frequencies. I'm guessing you'll want a loop rate of at least 5 kHz.
It may be important for you *not* to update any indicators inside the main control loop. I'm not sure how VI Server handles this stuff when managing the LAN traffic with your host-side GUI, but those updates might slow the loop down. You can put the indicator updates in a parallel "consumer" loop and have your main loop push data to it with an RTFIFO, a lossy Queue, or similar mechanism.
As to the actual science of noise cancellation, I have no idea. I can only help give hints about making a faster control loop with low latency. I don't know what that control algorithm needs to look like.
-Kevin P
ALERT! LabVIEW's subscription-only policy came to an end (finally!). Unfortunately, pricing favors the captured and committed over new adopters -- so tread carefully.