When calling the k8062D dll with LabVIEW, the k8062e.exe will intermittently stop responding, requiring a reboot before the VM116/K8062 interface will work again. The function of the LabVIEW program is as follows (as it pertains to DMX interface): invoke StartDevice, use SetData to write one byte on Channel 1, use SetData to write one byte on Channel 3, invoke StopDevice command. This process is repeated ~25 times to run one test. All data is sent as 32-bit integers. It is configured to use the stdcall(WINAPI) calling convention (the alternative is ‘C’). I have tried coding pauses in between the individual commands (i.e., StartDevice, pause, SetData, pause, etc.) but it does not seem to increase the reliability. Conversely, I can cause the .exe to freeze by sending commands in rapid succession. k8062d.dll, k8062e.exe, and FASTTime32.dll are all in the same directory. Any suggestions/advice will be greatly appreciated
It seems that the problem is when using the StartDevice and StopDevice repeatedly.
The StopDevice terminates the K8062e.exe task. The StartDevice loads the K8062e.exe program. These both tasks are time consuming events in PC.
You may try following:
- Invoke StartDevice
- Use SetChannelCount to set the number of channels you are using.
- Use SetData to set the channel data.
- Repeat SetData to change the data of the DMX channels.
- Do not use StopDevice in the meanwhile when using the card.
- When everything done, invoke StopDevice to terminate the K8062e.exe. You can use Task Manager to check the process is terminated.
As per your suggestion I changed the code to use StartDevice and StopDevice only once, and it is working fantastically! As a result, I can now run my tests in about 1/4 the time as before. Thank you for your prompt and extremely helpful reply!!
Thank you, this is good news for other users too!
The DMX interface K8062/VM116 can be run from within LabVIEW !
- As well as the PC oscilloscope PCSU1000, see: viewtopic.php?f=10&t=4785