Does Stop task reset a quadrature encoder counter?

I am using an M-Series PCI-6280 board, with one of its onboard counters wired as a quadrature encoder.
1)I start the counter task, take a set of measurements with the counter, and then stop the task.
2) The encoder which the encoder counter is monitoring continues to output quadrature encoder signals into the PCI board's counter.
3) I start the task again, and perform another set of measurements.
Which of the following occurs?
Upon starting the task again, the counter's previous value was wiped and the measurements taken in (3) start at 0 counts. 
The counter keeps the value it had before it was stopped and subsequently started, and the measurements in (3) cumulate on top of the measurements taken in (1). 
The counter keeps the value it had before it was stopped, continues to increment/decrement position in (2) even after the task is stopped, and when the task is started in (3) the counter value is cumulative with the quadrature encoder pulses in (1) and (2). 
Thanks in advance for the help. 
Solved!
Go to Solution.

Hello acmap,
In this case The behavior will be the following:
Upon starting the task again, the counter's previous value was wiped and the measurements taken in (3) start at 0 counts.
However, you can specify the initial count value of the counter on the Initial Count terminal of the DAQmx Start Task VI, so it doesn't have to start at zero, and you can implement the behavior described in your second option.
Daniel

Similar Messages

  • Quadrature encoder counter with 8 channels

    Hi,
    I need to acquire the signals (A and B) of four quadrature encoders. The signals have a maximum frequency of about 5kHz and should be read out with about 100 Hz. Is there a device that fulfils these requirements? It seems that a frequency of 5kHz is no problem since e.g. the USB-6008 has a counter for frequencies up to 1 MHz. However, I can't find a simple low-cost device that provides several counters. Does anyone know such a device with 4 or 8 counters?
    No other analog or digital channels are necessary, but a USB connection and Matlab support would be ideal.
    Thanks in advance.

    Depending on your definition of low-cost, the 9171+9401 might suit your needs:
    4 counters capable of quadrature encoder measurements (the single counter on the 6008 only does simple edge counting).
    USB connection.
    MATLAB support via the Data Acquisition Toolbox (according to their website).
    I don't believe NI currently has any other option that meets these requirements at a lower cost.  If USB isn't mandatory, you could also consider the PCIe-6612 which provides 8 counters.
    Best Regards,
    John Passiak

  • Can I use the 'Export Signal Property Node' on a quadrature encoder?

    Hi,
    So I don't know which counter board I'd be using yet for this (it's used in conjunction with a PCI-6280--the PCI-6280's counter inputs are all taken and so I need another board), but assuming this is possible at all in DAQmx I wouldn't mind knowing whether, say, the PCI-6601 (or any other timer board for that matter) could do this. I'm programming this in LabVIEW 2010 by the way. 
    I want to have a counter which counts the number of pulses on one channel (I'll call this the 'clock' channel) between when another channel goes from low to high (which I'll call the trigger). It's basically a pulse width measurement, but I only care if there are more than n clock pulses between triggers. I need to have a hardware-timed digital signal which goes from low to high if there are ever more than n pulses between trigger changing state from low to high. 
    What I am planning to do is this: 
    Wire 'trigger' to the z-input of the quadrature encoder, and set the z-input value to some arbitrary large value such that, at the quadrature encoder counter task's settings, the counter reaches terminal count in n pulses.
    Configure the quadrature encoder counter using DAQmx Export Signal Property Node (tutorial I was looking at is here: http://zone.ni.com/devzone/cda/tut/p/id/5387 ) to toggle a digital channel ('counter event output') from low to high if the counter reaches terminal count (ie, if the encoder reads n pulses).
    If the encoder ever reads n pulses on 'clock' between two rising pulses on 'trigger', it sets counter event output high.
    Is this possible? Reading through the manual of M series PCI-62xx devices, the index pulse loads the counter with a particular value so it seems like you could conceivably set the counter to the terminal count if you wanted. My only real problem is whether DAQmx Export Signal Property Node works on all counter tasks or just on edge counting tasks. 
    Thanks in advance for your help. If this isn't possible, I can reply with more details on the problem this is supposed to solve so that you can help me figure out an alternate method.
    Solved!
    Go to Solution.

    There is probably a way to do it, but it it may be easier to use an X-series board for the job.   They support a new counter capability for count reset on a digital edge without needing to be configured in encoder position mode.  I am not sure exactly how that feature's been implemented however, so maybe it won't make things easier after all.
    The plan based on the hoped-for behavior: 
    1. Configure an X-series counter for pulse generation based on "ticks" of your clock channel.
    2. Set both initial delay and low time to the critical # of ticks.
    3. Configure for count reset on a digital edge (if possible in pulse generation mode)
    4. Configure the count reset value to be the critical # (or possibly 1 less, if possible in pulse generation mode)
    5. If you want the output to remain high indefinitely, configure the counter task to use its own output as a
    pause trigger, and pause while high.
    The way pulse generation works is to preload a # of "low time" ticks into the count register.  Then every source edge will decrement the count.  When the count reaches terminal count (0), the counter's output is toggled (or can be configured to pulse).  The register is then loaded with the # of "high time" ticks and the process continues.
    You would be perpetually interrupting the count-down process as long as you got your triggers in time.  The count would keep getting reset to the # of low counts, keep decrementing toward 0 without reaching it, and so on.  If ever you did reach 0, the output state would toggle high, then the high state would prevent subsequent clock signals from decrementing the count.
    You can conceivably do a similar thing with a 6601, but I'm pretty sure you'd need 2 counters working together to get it working.
    -Kevin P

  • RPM Measurement using Quadrature Encoder and PXI 6602 counter

    Hi,
    I am on a project at work where I need to verify the speed (in RPM) of an unloaded motor which can operate up to 1400 rpm.  After doing some research, i determined that a quadrature encoder could be used to make the measurement.  I am looking at this encoder  http://sine.ni.com/nips/cds/view/p/lang/en/nid/205321.
    I have a PXI 6602 counter/timer module in which I would like to interface to the quadrature encoder.  I would like to create a VI that allows me to calculate the speed using the encoder.  Can someone provide me with details of what needs to be in the VI or an example which can do this?  At the most basic level, i want to calculate the speed on demand.  After doing this, i would like to figure out how to quickly calculate the speed so that i can determine response time of the speed changing within sub-millisecond resolution (1 ms resolution max).
    Further, i created a VI that allows me to change the pulse width of a 100 Hz pulse train at run-time which tells the motor controller the desired speed.  I would like to be able to use this VI to change the speed of the motor and the first VI (that I am seeking help about) to calculate the response time (time between the initial speed and settling at the new setpoint).
    I am familiar with the NI example finder, but have not been able to find an example that I can use.
    Thanks,
    Gary

    Hey Gary,
    I think for you setup, you should try using the Meas Dig Frequency - Low Freq 1 ctr. You can find it by searching example finder with 'low freq'. This vi tells you the frequency of a digital signal by sampling between two pulses and inverting the time between pulses. If you hook up your encoder to a counter and have that counter specified in the vi, it will be able to give you on demand readings of frequency (you can do some multiplication to get the rpm value, freq*60/pulses per revolution of encoder). A simple way to take continuous readings is to put a while loop around the daqmx read and the data output of the read. You can also replace the numeric indicator to a waveform chart to graphically display the change of frequency or rpm readings over time.
    You should be able to integrate this as two separate tasks with the pulse train vi you created earlier.
    Hope this helps
    Luke W

  • Generate a pulse train using a count from a quadrature encoder as the clock

    I am trying to generate a pulse train with the same frequency as my quadrature encoder.  Every time the encoder counts, I want the pulse to go high until the next count and then go low and so on.  I am using a 6602 PCI card and a BNC 2121 accessory.

    Maybe I'm not understanding your app, but I *think* you and I are approaching it from two very different directions.
    As I understand it, you'd like to emit a pulse with each quad state change.  Then that pulse would act as a counter Source signal.  The counter will then increment on each pulse, to keep track of accumulated position.  Further, you'd use your device-under-test (DUT) as a counter Gate signal, which would buffer the position count each time there's a rising edge on your DUT.  The end result is a buffer of position values, captured at each rising edge of your DUT.
    I'm talking about a different approach to produce the same data.  You'd use 2 tasks on a M-series board.  One of them is a hardware-timed digital input task based on "change detection."  Each time one of the specified bits has a transition, your whole set of digital input bits can be captured and an internal "change detect pulse" is generated on the board.  This task should be sensitive to the DUT edges.
    The other task would be a buffered position measurement.  It would receive the reference encoder inputs and internally do quad decode and keep a running count.  The sampling clock for this task would be specified as the other task's "change detect pulse."
    Net result: on each specified edge of your DUT, you'll buffer a reference encoder position value and a digital state of your DUT.  You can choose to be sensitive to rising edges, falling edges, or (!!!!) both at once. You can also choose to be sensitive to many bits simultaneously.  These are better capabilities than you get with the 6602 alone.
    I *think* the 6220 should be ok, based on a quick overview of specs.  I assume your 3.6 MHz is the rate of ref encoder quad state changes, right?  In the approach I'm suggesting, you only need concern yourself with the rate of DUT edges which appear to be in the 10's of kHz or less.
    Gotta go for now.  Post back if any further questions.
    -Kevin P.

  • Need to use quadrature encoder to trigger (RTSI) single point DAQ on 2 channels of E-Series DAQ, using 6602 NI-TIO for counting encoder pulses.

    This is for LV6i, W2000, all PCI equipment.
    Using a quadrature-measure position-VI, I get 7200 edges/rev from the encoder of my physical system. This equates to 0.05 degrees of angular displacement. This amounts to an angle stamp as opposed to a time stamp.
    I need each of these 7200 edges (source: 6602 NI-TIO) to trigger (using RTSI) the acquisition of a single sample from each of 2 channels on an E-Series DAQ board (maybe more channels later). I only need/want one rev (7200 samples per channel) of data for each run of the test. As I write this I think I want pre-triggering and a little more than a rev of data. So the
    re is a buffering step. Anyway, you can get the idea.
    I need this angle stamp and the DAQ samples to be placed in an array and on the hard drive for graphing and other mathematical treatment, analysis, etc.
    I think there must be a way to use the quadrature output of the counter/timer as a scan clock for the DAQ board, but I haven't seen an example to guide me.
    It seems like all of the RTSI or other triggering examples I have seen trigger once to start a continuous scan, not a series of discrete samples repeated quickly. I am not sure how to fill an array with this data. Again, examples are for continuous sampling, not a series of discrete readings.
    Any hints on any part of this task will greatly appreciated. This is my first LV project.

    Sounds like a fairly ambitious first project!
    I assume your 7200 edges/rev come from an encoder with 2 channels in quadrature which each provide 1800 cycles/rev. You can clock in analog data at 1800 scans/rev with either of the two encoder channels, but will probably need an external quadrature decoder circuit to produce 7200 scans/rev. Either method can be done with screwdriver and wire or else by using another counter from the 6602 and the RTSI bus. Here are two approaches in detail, but you could mix-and-match as needed.
    Note also that if you can be sure that your reference encoder will be uni-directional, you wouldn't need to measure position -- position could be determined by the array index of the analog scan data. This would simplify things greatly.
    1800 scans/rev, screwdriver & wire
    Wire both encoder channels to your 6602 breakout box and configure your counter for the 4x quadrature option. Send a wire from one of the encoder channel connections at your 6602 breakout box to a PFI pin at your E-series board breakout box. Config the analog acquisition to use an external scan clock and specify the correct PFI pin -- there are built-in examples that will guide you. Now one edge of one encoder channel acts as a scan clock for your analog acquisition. Inside the 6602 breakout box, route the same signal to one of the default gate pins and configure your encoder counter gate to use that pin as its gate signal. Note that there will be a race condition governing whether the encoder value updates from the encoder inputs before or after the value is latched by the gate.
    7200 scans/rev, extra counter & RTSI
    Make sure you have a RTSI connector between your two acquisition boards inside your PC. Build a quadrature decoder circuit that will convert your two encoder channels into a clock and direction output. (Consider the LSI 7084 decoder chip or similar). Setup your "encoder" counter for buffered position measurement. Use "Counter Set Attribute" to define "up down" as "digital" (don't use it to define "encoder type"). The clock output goes to the counter SOURCE and the direction output goes to the counter UP_DOWN pin.
    Use "Adjacent Counters.vi" to identify the counter considered adjacent to your encoder counter. Configure it for "retriggerable pulse generation". Use "Counter Gate (NI-TIO).vi" to specify "other counter source" as the gating signal. Configure the output pulse specs to be short duration (make sure total of delay + pulse width is less than the minimum period of the incoming encoder clock signals). Use "Route Signal.vi" to send this counter's output onto the RTSI bus, say RTSI 0.
    Now configure the analog acq. to use RTSI 0 as its external scan clock. Also configure the encoder counter to use RTSI 0 as its gate signal. Voila! Now your quadrature decoder clock output acts as a scan clock for analog acquisition and a "gate" to buffer your encoder measurement. The short delay helps ensure that the clock updates the position measurement before the gate fires to latch the value.
    Respond if you need clearer explanation. There's a fair amount of decent info "out there" if you scour the online help and this website. Good luck!

  • Using a Counter(PC-TIO-10) to Perform Quadrature Encoder Buffered Position Measurement in Visual C++

    I have Driver Ni-Daq 6.9 and Using a Counter to Perform Quadrature Encoder Buffered Position Measurement in Visual C++ 6.0
    (I think Ni-Daq not support PC-TIO-10 because card not support pulg&play, you can hint me driver for support this card. ) and i want example program for read counter. i use Visual C++ for run,i don't use Measurement Studio.

    NI-DAQ 6.9 supports the PC-TIO-10.
    I attached an example that will show you how to do it in CVI (ANSI C).
    Attachments:
    Cviencod.zip ‏19 KB

  • DAQmx Quadrature Encoder Initial Position

    Hello, 
    I am building an application that requires trackig the raw counts from a quadrature encoder connected to a NI USB-6212.  In order to count each rising and falling edge of both channel A and channel B, I have configured a DAQmx Linear Encoder Channel for 4X decoding with the units set to ticks.  In order to prevent the counter from rolling over when the ticks become negative, I convert the U32 value from DAQmx Read to I32.  So far this all works as expected.  I would additionaly leik to retain to position of the encoder if the VI is stopped but remains in memory.  For this reason I wire the value of the raw counts to a shift register which is read into the initial position input of the DAQmx Create Channel VI.  For some reason, the DAQmx Create Channel VI quadruples whatever value is wired to the inital position input.  I solve this by deviding the previous counts by 4 before writing to initial position.  However, the problem occours that if the value of the previous count was not an even multiple of 4, the inital position must be rounded to the nearest integer, causing the count to jump when restarting the VI.  How can I reset the inital postition to the exact value of the encoder at the end of the previous iteration?

    Yes, It does. In 1X decoding mode, the starting count equal to the supplied initial position, but then I only count 1/4 of the pulses I expect to see.  Perhaps I am misunderstanding the meaning of 'inital position'?

  • Quadrature Encoder measurements with PXI-6143 S-Series DAQ

    Has anyone used a S-series PXI-6143 DAQ to take encoder position measurements? I believe there are 2 counters available, if you have any examples of how to access and read from these counters it would be greatly appreciated.

    Hi Bentup,
    Measuring a quadrature encoder on your device is actually going to be a bit different than on an M series device.  The STC-2 chip, which is used in the M series, allows for A and B inputs specifically for encoder signals (used in the Angular Encoder task).  The original STC-1 chip which is used in E series and most S series boards (including your 6143) does not have these same inputs.  Instead, you may must a Count Digital Events task (taking advantage of the up/down line of the counter).  The Angular Encoder task is not supported on STC-1 devices.
    The article that lab_boy linked earlier actually mentions how to use an encoder with an E series device once you scroll down a bit (here's the link again).  This same procedure should apply to your S series--connect the A output of your encoder to the source of the Counter (this is the signal that you are counting).  Connect B to the up/down line of the counter (P0.6 and P0.7 for counter 0 and 1 respectively). 
    The downside with this method is that it is more susceptible to vibrations or noise on the encoder lines. If this is a problem for you, you can look into an external encoder conditioner like the one mentioned in the article.  I hope this helps!
    Best Regards,
    John
    John Passiak

  • How to route Quadrature Encoder signal to CC1 using PCIe 1429 + IO extension card

    Hi there,
    i am currently trying to interface the Basler L304kc to the NI PCIe 1429 + Cameralink IO extension board
    I want to operate the camera in Ex-SYNC level controlled mode. I would like to route external Quadrature Encoder signals (connected to the IO extension board) to the CC1 cameralink control of the camera
    Currently, I cannot find this option either in MAX or the Camera File Generator.The L304kc camera file only provides pre-defined pulses, or MAX only offers "External","ISO","RSTI" options for the CC1 sources.
    Is it possible to route the encoder signal from the IO extension board directly to the CC1 of the camera? Or is there a work-around?
    Thanks!
    Derek Chan
    Application Engineer
    Basler Asia Pte Ltd

    Hi Alex,
    I posted the following (similar) text to the support center but I think it is of common interest:
    A) CL-card with ext. board. One can use the ISO, ext. and RS422 encoder inputs and also output cannels ISO and external.
    There is also a SMB connector corresponding to the ext. channel 0.
    B) with MAX one can define what kind of signals should be routed to CC1 to CC4. As I learned from
    this side one cannot use MAX or the Camera File generator but has to do this manually in order to use RS422 encoder triggering!!!
    C) on the other side there exists function to route and control signals explicitely, for example
    * imgSessionLineTrigSource2 -> what is this good for then? All your manuals are saying that this is done in MAX or the camera file by defining what signal drives the correspondung CC ine?? On the other side there is an example in CVI that does not work ("Trigger Each Line From Encoder") (at least it does not work with the PCIe1430).
    D) Can one implement the CC routing from MAX or the camera file manually with the following functions
    * imgSessionLineTrigSource2
    * imgPulseCreate2
    * imgSessionTriggerDrive2
    or does MAX use hidden functions ore mechanism to control the CL Cards?
    E) I can use one single line to setup scaled encoder triggering
    * imgSessionLineTrigSource2(iLS_ZK1_SessionID, IMG_SIGNAL_SCALED_ENCODER, 0, IMG_TRIG_POLAR_ACTIVEH, 0);
    but this only starts to work if I reset the encoder position to zero by sending this to the CL card, i.e.
    * imgEncoderResetPosition(SessionID);
    AND only in positive counting direction!
     If I just run though the zero position without a position reset I do not get ExSync on CC1????
    Is the information where to route the Scaled encoder to coming from the camera file? Why cannot I simply and explicitely route the scaled encoder
    signal to a certain CC line? Why using all those different approaches?
    F) now if in addition to E) i use
    * imgSessionTriggerDrive2(iLS_ZK1_SessionID, IMG_SIGNAL_EXTERNAL, 0, IMG_TRIG_POLAR_ACTIVEH, IMG_TRIG_DRIVE_SCALED_ENCODER);
    to drive ext. 0 (SMB connector) I can see exactly this behavior on the scope. No signal until I reset the encoder counter. Then I get signals as long as the image sequence is running. After the recording the signal disappears.
    kind regards, Holger h.baur(at)ivisso.com

  • Can PCI-6601 pulse signal over RTSI every Nth encoder count?

    Hi All,
    I have a PCI-6601 counter/timer connected to a quadrature angular encoder.   The 6601 is also connected to a PCI-1422 frame grabber with a RTSI cable.
    I want to be able to trigger the frame grabber by sending a pulse over the RTSI cable every N encoder counts (or X degrees).
    How would I go about do this using C++?
    Thanks in advance,
    Brad 

    Hi Brad,
              There are a few resources I think you may find helpful.  First, there's this DevZone article, " Generate and output pulse every no count an encoder traverses".  Generally, the way this would work is:
    If you want to output a pulse every 4 counts, you will need to take the
    total count size of the counter (2^32 bits) and subtract 4 from this.
    This will be the initial count to set, so that after 4 counts, the
    counter will reach Terminal Count and the Counter Output Event pulse
    will be fired. You can then export the Counter Output Event to a PFI
    line, and use this line as the Z index terminal. If you set the Z index
    value to be equal to the initial count, the counter will always reset
    to 4 ticks below the Terminal Count, and will output a pulse on every
    4th tick. The only drawback to this method is that it will require that
    only X1 decoding be used, and that the counter would have to be
    dedicated to sending out the Counter Output Event (if you want to
    actually count the encoder and keep track of position, another counter
    will have to be used).
    As for specifically doing this in C++, I would recommend referencing the DAQmx C Reference Help (Start»All Programs»National Instruments»NI-DAQ»Text Based Code Support»DAQmx C Reference Help).  Hope that helps, for more assistance on the frame grabber portion of your question, I would reference the post you put in the vision forum.  Have a great day! 
    aNItaB
    Applications Engineer
    National Instruments
    Digital Multimeters

  • Help! AME Stops in the Middle of Encoding - AME 5.5

    Hello - I am hoping someone can help me as I am hitting a brick wall with my production suite! I am going to be as detailed as possible however I am not an expert in how software and my hardware interact.
    Issue - My Adobe Media Encoder stops in the middle of encoding and does not complete the task in the queue.
    Software -
    1. Adobe Production Premium - Premiere Pro CS 5.5 (v5.5.2) and Adobe Media Encoder (v5.5.1.12)
    2. Mac OSX v10.7.5
    Hardware -
    1. 12GB Ram
    2. ATI Radeon HD 5770 1024MB Graphics Card (obviously not supporting Mercury Engine)
    3. 2x 2.4GHz 6-Core Intel Zeon
    Issue History
    - Until this point, all of my projects, videos, and exported media have been 78 minutes or less. I am now working on a project that is 112 minutes of full HD footage. Before Thursday, AME has performed flawlessly for me. The project in Premiere Pro has source video footage that is 1920x1080 29.97 (50mbps). On this Premiere Sequence there are several dynamically linked AE compositions with upper and lower thirds and titling. Finally, there are maps that are in native 720p size movies that are scaled to fit throughout the program at the beginning of each chapter.
    - I am attempting to export and encode this video for use in Encore. I have queued the project for export out of Premiere into AME using the following settings:
    H.264 Blu-ray
    Video Only
    VBR 1-pass
    Custom Bitrate - 26.5 target, 35 max
    Render at Maximum Depth
    Use Maximum Render Quality
    Prior to Updates in Software:
    - On Thursday I queued 4 files for export: 2- PCM audio only files, 1-H.264 Blu-ray video only, and MPEG-2 DVD video only
    - AME ran over night and produced the following: 2 audion files completed successfully, 1 H.264 file completed successfully, MPEG2 file seemed to be 'hung up" and AME was not responding.
    - Shut down/forced quite AME and tried to encode only the H.264 file. The encode failed as it hung up at different points in each attempt in AME.
    - I searched and installed updates for my adobe production suite (premiere pro, AME, and others were updated to the versions listed above).
    - Friday I attempted to export the H.264 file from Pr to AME and it encoded successfully!
    After Updates were Installed:
    - I had to make some additional revisions to the project in Pr after reviewing a draft Blu-ray. Now trying to export the revised video has failed each attempt:
    - On Saturday, I experienced the following results with AME:
    2 PCM Audio Only files - encoded successfully in AME (with Pr running)
    H.264 Video Only file (specs above) failed - the AME froze about 1/3 through the composition.
    At this point I shut the computer down and let it sit overnight.
    - Today (Sunday), I tried again and experienced the following:
    H.264 Video Only encode (same specs) though this time I shut down Pr thinking this would save RAM and the encode failed again. I did notice that it locked up at the same point as the previous attempt on Saturday which was a new symptom.
    RAM usage was 7-9GB during the encode.
    The place where AME locks up is immediately before a transition from the source video to the 720p map footage. Although there are two other segments with the same transitions and 720p footage that it did encode through.
    I have researched this issue on this forum and have read the following thread thoroughly: http://forums.adobe.com/thread/856263
    The above thread described the issue I was encountering before I installed the updates precisely. But now I am still unable to successfully encode this project in AME to H.264?
    I am hoping someone can provide something to help, I have a completed project and I can't get it encoded! (I contacted Adobe and they said my SW was now unsupported from their customer service).
    Thanks for any help with this!!!
    Chris

    Thank you Todd for your quick reply - I contacted Adobe via Live Chat and never got a case number... I did however send the transcript of the conversation to my email...
    Khongyairong: Please give me 2-3 minutes while I check and see what best I can do to resolve this issue.
    Christopher Kratzen: sure - I have checked the forum for similar issues and found that there was a large thread on the subject - but no clear solution. I am starting to panic because I can't get my project to export
    Khongyairong: Okay . Thank you.
    Khongyairong: Thank you for your patience.
    Khongyairong: Christopher, I am sorry to inform you this, we don't have support for CS5.5 , we have support available only for CC and CS6 . I request you to please refer support portal or forum where you can repost your issue and our experts will be giving you the answers.
    Khongyairong: You can also purchase the phone support if you want a support.
    So your advice would be to pursue Adobe Technical Support on this issue? I wasn't sure how to go about this since I really haven't had an issue until now... the production suite does a spectacular job with everything else! Just need to get my finished program encoded....

  • Speeding up quadrature encoder read out

    Hi,
    I`m using a quadrature encoder together with a 6259 DAQ Card and BNC2110 Terminal Block.
    I managed to have it working with the DAQ-Assistent at 80Mhz using the Counters and reading one value at a time. Before the DAQ-Assistent I used a DAQmx command to connect PFI10 and PFI9 as the BNC2110 Terminal only outputs PFI0-9. This works but it is really slow, the distance between each measurement point is around 6 us. The VI is in the attachement (AquadB_one_value.vi)
    So I thought I might use the n-values version with the DAQ-Assistent but this does not work and I dont see any reason why, it is complaining about that connection between PFI10 and PFI9 which it didnt do before in the one-value-version. The VI is also in the attachement (AquadB_n_values.vi)
    I also tried another method using a VI I was given some time ago and modified it but here the distance between each measurement point is also around 6us. This VI is also in the attachement (Counter - Read Encoder.vi)
    Or am I missunderstanding something? The minimum achievable time distance between measurement points should be 1/80.000.000 s where of course the value can only differ 1/0/-1 because it has only calculated one new change in the A and B Signals right? I thought with using the n-values it is storing all the calculated values in the memory and I am transferring them afterwards for doing all the "post-processing"?
    If I am wrong, how can I spped up the read-out of the calculated values any other way?
    Best regards
    Attachments:
    AquadB_n_values.vi ‏56 KB
    AquadB_one_value.vi ‏49 KB
    Counter - Read Encoder.vi ‏98 KB

    Hi Dani_munich,
    I just realized that you asked the same question in our Service request. In the service request, I was missing out more information which I found them here by chance . I will further assist you in the SRQ you have created. I also sent you an email.
    Regard
    Anoj
    Anoj Mubarak
    National Instruments

  • Programming quadrature encoder

    I'm trying to program a incremental optical encoder with nidaqmx 7.4, with C#, using the PCI-6071e card. I want to measure position, velocity, and acceleration.
    As per the "How Do I Use a Quadrature Encoder with My Data Acquisition Board?" document, channel A of the encoder is connected to ctr0_source, channel B is connected to DIO6, and index is connected to ctr1_source.
    I'm trying to run the the MeasAngularPositionBuffered_Cont_ExtClk example. However, an exception is thrown when calling myTask.CIChannels.CreateAngularEncoderChannel.
    The messagebox says "Selected physical channel does not support the measurement type required by the virtual channel you are creating. Create a channel of measurement type that is supported by the physical channel, or select a physical channel that supports the measurement type"
    Also, there is an option in the example program to enable the Z index. How does that program know which channel to read the index pulse?
    I'm new at data acqusition, so any other hints regarding optical encoders are appreciated.
    Thanks,
    Gerry

    You also may be able to measure position using the "Count Edges" measurement with an external direction control. This may be enough for your purposes. Just bear in mind that quadrature encoders typically give off noisy signals, so you might have to build an external circuit to clean up the input signals. Let me know if you need more information on doing this with your E Series device.
    gus....

  • Troulbe in measuremen​t quadrature encoder with 6601

    Hi,
    Thanks for Ross's help.But I cannot differ 6601's x4 mode from other counter/timer counting mode. In measurement position, what difference between them. And I just want to know whether my application viable.
    We are trying to measure position with 6601. The frequency of quadrature encoder is from 100Hz to 8MHz. Now, we connet the A,B and Z channel directly to counter . Using the example in CVI, we change the filter to 100ns and use x4 mode. It works perfect at low frequency.
    The problem is when the frequency of encoder is higher than 2MHz, the accuracy decreases greatly. I'd like to know about following:
    1.Can 6601 do the previous task enough? Or I must change to use 6602.
    2.If
    6601 is available, is there any way to increase measurement accuracy ?(in software or wire connection )

    >jimmyjimmy2000
    "Hi,
    Thanks for Ross's help.But I cannot differ 6601's x4 mode from other counter/timer counting mode. In measurement position, what difference between them. And I just want to know whether my application viable.
    >>mross>The application is viable. However, the use may be difficult.
    >jimmyjimmy2000
    We are trying to measure position with 6601. The frequency of quadrature encoder is from 100Hz to 8MHz. Now, we connet the A,B and Z channel directly to counter . Using the example in CVI, we change the filter to 100ns and use x4 mode. It works perfect at low frequency.
    The problem is when the frequency of encoder is higher than 2MHz, the accuracy decreases greatly. I'd like to know about following:
    1.Can 6601 do the previous task enough? Or I must change to use 6602.
    >>mross>The 6601 is just as good as the 6602 at 2MHz. Therefore, a 6602 will have the same problem of inaccuracy.
    >jimmyjimmy2000
    2.If 6601 is available, is there any way to increase measurement accuracy ?(in software or wire connection )"
    >>mross>Yes, in the wire connection you can make improvements.
    6601 can count as fast as 20MHz (60MHz with prescaling). The signal is noisy (containing addtional, incorrect information).
    You must use an oscillosope to look at the signal. Look at it when 6601 is counting correctly, and look at it when 6601 is "malfunctioning".
    The counter will increment whenever the signal is high for more than 5 nanoseconds. The conditions for "High" and "Low" signals must be strictly met. If the signal is greater than 0.8V, the counter may increment. The signal must then drop below 2 Volts for a "Low" to be seen.
    This sounds wrong, but is true. The counter is expecting TTL signal conditions (Transistor -Transistor Logic). This specification is very broad.
    A "High" will absolutely be recognised if the signal is greater than 2.0V.
    A "Low" will absolutely be recognised if the signal is less than 0.8 V.
    However, the range from 0.8V to 2.0V is "undefined." This means the counter could increment at 0.8V. It has been my experience that National Instruments TTL will always see 0.8V as a "High." If your noise exceeds 0.8V you will never be able to count accurately.
    The problem will be solved when your encoder signal is read cleanly by the 6601. This is why I gave you the URL for US Digital in the previous answer. The circuits they sell can help to clean up the counter signals. You will have to see what works best, since I don't exactly understnad you application. If the noise is very bad, you may wish to use the Encoder to Binary Number circuit. There will be no noise in the reading of a binary number. Since your encoder may run as fast as 8MHz, you must be sure the circuit you choose is also this fast.
    The other solution is to eliminate the noise which is causing the counter to trigger falsely. THis can be a very interesting problem to solve. Please look a this NI link:
    Field Wiring and Noise Considerations for Analog Signalsv
    http://zone.ni.com/devzone/conceptd.nsf/webmain/01​F147E156A1BE15862568650057DF15?opendocument
    Follow these instructions very carefully.
    Also, this book is helpful to explain noise and how one may reduce it.
    From Amazon.com you can get Grounding and Shielding Techniques, by Ralph Morrison.
    http://www.amazon.com/exec/obidos/ASIN/ 0471245186/104-3492923-2811911
    Be very careful how you wire the circuits. Try to use only one ground point.
    The worst source of noise can be the motor and drive that spins the encoder. Be particularly careful in wiring this apparatus. A simple solution can be to use an air powered motor insted of an electric motor.
    Good luck,
    Mike Ross

Maybe you are looking for

  • Play Count Sync Issues

    hey here, I've had my touch for a week now but since updating to 1.1.3 I've noticed that any songs played on the iPod aren't added to the play count in iTunes. Anyone else have or had this problem, or any ideas for how I can cure his? I don't really

  • Specs for the Credit Release  Report ?

    Hi, I need this report urgently, can anyone help me out in creating the specs for the same :- Fields Of The Report a) Sr. No. b) Business Area c) Sales Representative d) Customer Code e) Customer Name f) Sale Order Number g) Qty h) Delivery No. i) In

  • How do you call a single block in a form from a different form ?

    Hello All, I'm trying to call a particular block in a form. The actual call is done via fnd_function.execute. This brings up 2 blocks: 1) a find/search block 2) the block I want with the correct information based on the parameters I have passed in. E

  • Vectorial map viewer

    Hello, I'm looking for a MIDP library to view vectorial map (viewer). I found out the open source tiny SVG library for SVG format. Does anybody knows if there are other tools handling other map formats than the SVG one? (e.g. Flash) Thank you and Reg

  • Multi-region DVD player?

    I bought my white Macbook back in the States, as well as my collection of DVD's. However, I am currently studying abroad in the UK for well over a year, and am frustrated to no end that I cannot watch anything but region one on my computer, without s