I am running into trouble when re-writing named waveforms to a PXIe 6556 high-speed DIO, which means to run the "write named waveform vi" with a name already issued before. Although this should be possible according to the help files, I constantly run into two error messages:
Error -1074115896 occurred at niHSDIO Write Named Waveform (1D U32).vi
Driver Status: (Hex 0xBFFA4AC8) You cannot write data outside the boundaries of your waveform.
Make sure you are not trying to write more data than your waveform can accomodate and that your write location and write offset are set correctly.
Status Code: -200311
Error -1074116169 occurred at niHSDIO Write Named Waveform (1D U32).vi
Driver Status: (Hex 0xBFFA49B7) Write failed, because the number of samples to write per channel is invalid.
The number of samples to write per channel must be an integer multiple of the samples to write per channel increment.
Number of Samples to Write: 1834
Number of Channels: 1
Samples Per Channel Increment: 32
Status Code: -200584
I am wondering about this because the waveform size or integer multiples have never been an issue when writing a new waveform. Are there any limitations regarding the re-write? Any workarounds?
Thanks and best regards,
Solved! Go to Solution.
Can you please attach a simplified version of your code concentrating on the re-write portion of the waveform? From what I understand, you are trying to re-write a waveform, lets say wfmA, to the 6556's onboard memory. Are you writing wfmA, then editing wfmA, and then writing wfmA again to the 6556 using Write Named Waveform (1D U32).vi? Are you chaning wfmA's size? If this is incorrect, can you please describe your application.
Also, you said this should be possible according to the help files, which topic in the help files where you referring too? I'd like to get on the same page as you.
what you assume about my writing procedure is exactly right.
However, I've just successfully implemented a workaround: Before every re-write, I simply delete the old waveform using the "niHSDIO Delete NamedWaveform VI". This turns the re-write into writing a new waveform, which executes without any trouble.
Thanks a lot for your support anyway!
I am glad you found a workaround that will allow you to continue with your application. As for a few side comments, I believe the first error you receive comes from writing a new waveform in an existing waveform that is larger than the original waveform. Once a waveform is named and defined in memory, it reserves a contiguous space of memory of the size of the first waveform loaded. To reload the waveform name with new data, you can specify that waveform and new data, but it must be less than or equal to the sample count of the original. Anything larger should throw that error.
The second error comes from the waveform quantum (num samples to write per channel increment) that our memory is under constraint from. The way we address the memory, the number of samples in the waveform must be in a certain increment, which you see specified. In this case, the increment being 32 means you can write a waveform of 32 samples, 64, 96, 128, and so on. Any size waveform outside of this increment (not divisible by 32) will throw that error.
The reason that your solution works is that when you clear the memory, it frees up all space in memory and you basically download the waveform like its the first time, without taking into consideration any previous waveform reservation. If you write the same waveform name in memory after clearing, you are no longer looking at the size/location of the first downloaded waveform from that waveform name, since it was cleared.
This will certainly work, and while you will still see the 32 sample increment regardless of clearing the memory, you will effectively remove the first error. Hopefully this provides some background to both errors and best of luck moving forward with your application.
I have a few links that will help you out further with your application:
Scripting in HSDIO:
How to modify existing waveforms on the HSDIO card:
Writing waveforms to your HSDIO device:
Thank you and let me know if you have any other questions regarding this topic,