My hardware is USB6509 running Windows 10. I am setting up a change detection callback where I specify a digital filter for some of my inputs. In my regular flow, I call a function to request the status of a digital input (different task, different channel etc.) without specifying any digital filter and I get an error:
Attempt to set the digital filter interval failed, because another task has already configured a different digital filter interval.\n\nUse the same digital filter interval in the two tasks, or wait for the other task to finish before starting or committing this task.',)
Any ideas why?
I think you can provide more information so we can help you further.
How are you setting up this digital filter?
Are you using LabVIEW for this application or are you using other software?
Does the error have an error code?
The error code is -200645.
I am using Python for my application.
This is how I am attempting to set it:
th = daqmx.CreateTask("cd_task")
daqmx.CreateDIChan(th, "USB6509/Port8/Line0,USB6509/Port9/Line4:7,USB6509/port5/line0:7", "",
daqmx.CfgChangeDetectionTiming(th, "USB6509/Port9/Line4:7", "USB6509/Port8/Line0,USB6509/port5/line0:7",
#daqmx.SetDIDigFltrEnable(th, "USB6509/port2/line0:7,USB6509/port5/line0:7", 0)
#daqmx.SetDIDigFltrMinPulseWidth(th, "USB6509/port2/line0:7,USB6509/port5/line0:7", 0.0001)
daqmx.SetDIDigFltrEnable(th, "USB6509/Port9/Line4:7,USB6509/port5/line0:7,USB6509/Port8/Line0", 1)
daqmx.RegisterSignalEvent(th, daqmx.CONST.DAQmx_Val_ChangeDetectionEvent, 0, changeDetectionCallback_ptr, None)
As you can see the lines where I pick a value for the filter are commented out. Also, I found a way to enable it with a default value. Without a filter this is useless. When I trigger my input I get 3 to 5 calls to change detection callback function due to noise.
Somewhere else in my code I check the status of other inputs without explicitly enabling any filters. But when the 2 lines above are enabled my other call produces mentioned error.
Did you ever discover the cause or how to fix error code is -200645. I'm using the 6509 and having the exact same issue.
I'm using the USB-6509 in LabVIEW to simultaneously detect changes and read lines (on different ports). The configuration of the change detection has the digital filter enabled and min pulse width set to 20ms to ignore switching and transient noise. When change detect is active and reading any other port the DIO returns error -200645 Attempt to set the digital filter interval failed, because another task has already configured a different digital filter interval.
In order to avoid this error, you must also enable the digital filter and set the min pulse width interval to the same value for all ports configured to read. Once the value is set - you can then disable the filter for those read ports where you don't want it.