05-19-2009 11:22 AM
05-20-2009 03:47 PM
Thanks for posting on the NI forums. If you see a change in voltage that occurs before the turn on time of the input circuitry for the PCI-6509, then would miss that change in voltage. I am not sure if this is exactly the case though because you are receiving changes every half second. However, this may be something to pay attention to. Could you try slowing stepper motor to see if this behavior occurs? This is a tough problem because of the rarity of the missed change.
Why Does Change Detection Miss Changes, or Time Out?
I have a few additional questions about your application. How are you measuring that the change did not occur and what are you using the DigitalChangeEvent for in the application? Could it be possible that the stepper motor is missing the control signal to move therefore causing there to be no DigitalChangeEvent?
05-20-2009 04:43 PM
Hi Jordan F,
The photo-sensors are hooked to 74HC14 inverting Schmitt triggers which drive the digital inputs. The photo sensors are interrupted by a simple mechanical system that is attached to the stepper motors. I check to make sure the DigitalChangeDetection event was raised after the stepper motor has finished moving to its new position to make sure the mechanical system is functioning correctly. I have set the channel’s DigitalFilterEnable to true and DigitalFilterMinimumPulseWidth to 2 milliseconds. The task SampleQuantityMode is set to ContinuousSamples. This problem does not appear to be affected by the state of the task SychronizeCallbacks property.
Would it be a problem if 2 inputs (from different stepper motors) change state at about the same time?
Dave
05-21-2009 08:41 PM
When the 6509 (or any other Static DIO device that supports change detection) sees a change on one of the input lines, an interupt is generated and the DAQ driver notifies the software that a change occured. The manual states (page 9) that an overflow bit will occur if you see multiple changes before the software has processed the previous change. However, there is a chance that you could miss changes if the input circuitry is not ready and if the pulses are coming in too quickly. If this was the case, you would not see any errors and it would be a limitation of the hardware. If a change is detected, there is no information as to where the change occured (which channel) so I do not think it would make a difference if the change was occuring on other lines.
Why Do I See Two Different Errors When using Change Detection with a Static DIO Board?
http://digital.ni.com/public.nsf/allkb/3C945830C285A5C186256E7B005FCB3B?OpenDocument
6509 User Specifications (Page 9)
http://www.ni.com/pdf/manuals/372117b.pdf