Incremental encoder rotational acceleration

I am trying to obtain acceleration velocity and displacement from an incremental encoder using labview 7.0. I am currently using an analogue input and a waveform measurement block to get a time period. The problem is that when the shaft is not rotating i get an error message saying the signal has not crossed the reference point enough times. Is there a way around this?
I know differentiating the signal produces inaccurate results.
I have have also tried connecting the signal to a edge count but cant obtain velocity and acceleration signals.
any suggestions

Thanks.
We are setting up a moment of inertia experiment where a flywheel is accelerated by a mass attached to a cord which is wrapped around the axial. We are timing how long it takes for the mass to go from stationary to the time it touches the floor. The current experiment used stopwatches and assumes at time = 0sec velocity =0 seconds. Although I have been able to extract an initial velocity, my supervisor wanted it to start from zero to make calculation simpler for the students.
Because the experiment is over in around a minute the sampling has been set to 1 second obviously the longer the sample times the less results I get. I want to create some kind of loop that will trigger when the first edge counts the timer starts. I May have just answered my question with this but if you have any suggestions would be useful.
Do you know what the default number of pulses are that are required to for the waveform vi to work?
I’ll have a look at the gated count. How do you ignore errors when the period is below a set value and how do you overwrite the signal?
 Thank you for your help!
Tim

Similar Messages

  • I want to measure rpm using 100 ppr incremental encoder via digital input

    i want to measure rpm using 100 ppr incremental encoder  via digital input max speed (4000 rpm)
    am using 9178 c-DAQ chassis and 9426 digital input module
    pl provide me example code for this

    Hi asaccullo.
    The recommended settings for encoders are using the counters in the daq cards. Using digital I/O’s is not recommended, the encoders send digital signals but one of the main differences between using digital IO vs counters is that counters are designed to handle these type of events.
    Here I found several examples in ni.com/code that you might check:
    Imitation Quadrature Encoder with DAQmx Counter Tasks
    Use Counter Frequency to obtain an Encoder Rotational Speed
    An Elvis is a daq device, so this should work for you.
    I also found an example for myDAQ, it uses the DIO but with a counter task in the set up.
    Regards,
    steve.bm
    AE | NI

  • Incremental encoder, velocity, position and direction

    hi,
    A incremental encoder(With channel A and B)
    I know that the velocity is proportionate with the frequence of the pulses and we can find the position with a simple edge count. But it's a bit difficult to find out the rotating direciton even if the principe is very evident.
    are there any exemples for these kinds of application?

    PCI-MIO-16E-1 --> DAQ-STC --> see paragraphs concerning DAQ-STC in this
    file
    Unfortunately I have never used a SC-2345. But after a short overview of its specifications, it seems that you will need one SCC-FT01 to connect the A channel to the counter source and the other to connect B to the auxiliary line that will set the direction. See schematic in the file mentionned above. So your hardware will allow you to take this measurement.
    See this example to see how to configure a DAQ-STC counter for position measurement.
    1) Simple event counting
    2) Up/down counting. Direction is given by hardware --> auxiliary line of the counter (DIO6 for counter 0 and DIO7 for counter 1)
    3) Start the counter
    4) Read periodically the counter value
    5) Reset the task when finished
    Don't be troubled by the BNC-2120. Use your SC-2345 instead. Obviously you will need to adapt the number of encoder pulses/rev to suit your encoder.
    Add a shift register to store the position from one iteration to the other and compute the difference to determine the direction.
    If you want to add the velocity, than you have two options :
    1) If the accuracy must not be very high, then you can compute it (delta position / loop time).
    2) If you need high accuracy, then it will necessary to use the second counter to measure the frequency of channel A. In order to avoid errors due to vibrations it is recommended to use the LS7084 in this case.
    As you can see here, there are 3 methods to measure a frequency.
    Obviously, the examples will not work with your DAQ-card because the 660X is a NI-TIO type counter.
    If you want to measure the velocity at the same time than the position, then you will need to use the first method (Inverse period measurement) because the others will need 2 counters. (your card has only 2 counters and one is already used for the position measurement).
    There is an example of period measurement for DAQ-STC that ships with LV (Measure Period (DAQ-STC).vi).
    1) Single period measurement
    2) Source specification --> internal timebase
    3) Gate specification --> channel A
    4) Start task
    5) Wait for one pulse on Gate. I recommend to add a timeout to not enter in an endless wait if there is no pulse.
    6) Read number of pulses of the internal timebase.
    7) Check if counter overflow
    8) Reset task
    You will need to combine both examples in one vi.
    I hope this is clear enough to help you.

  • How to check a incremental encoder by multimeter

    hi
    i have a robotic machine i am facing problem in one convyer that convyer not taking step i have a dout on encoder i want to check that encoder  by multimeter how i can check it encoder make -- Baumer GI342 A707123. so help me to check this

    Hi amit1980,
    Let me make sure I understand you correctly-
    You have a machine that includes a conveyer. You have an incremental encoder and you would like to debug your system using a multimeter.
    When you wrote "that conveyer not taking step" do you mean that it is a stepper motor that is not moving at all?
    An incremental encoder generates pulses that overlap on the two lines. By counting the pulses and which order they occur on the two lines you can determine the distance, speed and direction travelled.
    If the motor is not moving at all then the encoder will generate no pulses.
    You can do a sanity check of your encoder with a multimeter. You can read the voltage of one of the tracks while you very slowly turn the shaft of the motor. Very very slowly. The rotor has to turn slowly enough that the multimeter will have time to detect the change in voltage. If you just spin the motor the pulses will happen too quickly for the multimeter to see them. This encoder has 2048 pulses per revolution. To be able to see one transition you would have to move the shaft 1/2048th of a turn.
    If you just want to make sure that the encoder is producing any pulses at all then you can just set your multimeter to AC mode and spin the motor. A non zero voltage while spinning will mean that pulses are being generated.
    If you need more information that this- such as the direction, whether the tracks are overlapping properly, or especially velocity- you will need to use a scope rather than a multimeter.
    Since the encoder only produces pulses when it rotates, if your motor really isn't moving at all then the encoder is not likely to be the problem and you should investigate further up.

  • How do i use my NI 6216 daq to find a angular position of an incremental encoder

    i have a ni 6216 daq baord and an incremental encoder (i dont know the pulses per revolution of encoder). How do i write a labview code to get the angular positon of a motor wihch is interfaced with the encoder. How can i know the pulses per revolution of the incremental encoder.
    Thanks.

    Hi, 
    My name is Thomas and I am an application engineer at National Instruments.
    I looked through some of the information we have on file for incremental encoders and found a couple of documents that may be of help to you. 
    Follow this link for some general documentation on setting up an incremental encoder to measure the angular position of your motor.
    Follow this link for some example code off of which to build your application.
    As you alluded to, we are going to need to know at how many pulses per revolution your encoder runs. Which encoder are you using? With a bit of research we can hopefully learn the specifications for your specific encoder. 
    Best Regards,
    Thomas B.
    National Instruments
    Applications Engineer

  • Incremental encoder: reset counter on pci 6014?

    I want to connect an incremental encoder with A, B and Z to a PCI 6014 card. I found some VI's for counting A and B (DAQmx->Counter->Count Digital Events; DAQmx->Counter->Measure Posititon) . However I can't figure out what to do with the Z. Is there a way to reset the counters by Z? (I am using labview 2009)
    Thank you very much!

    Sorry, my fault. I didn't see you have an E-Series device.
    Resetting your counter with a digital trigger is possible for Counter/Timer devices but not for your PCI 6014.
    You can reset the counter with DAQmx by stopping and starting the task again. You could read your Z index on a digital input, if the input goes high (or low) you could reset the counter.
    DAQmx: Count Digital Events with Option to Reset Counter
    http://decibel.ni.com/content/docs/DOC-6576 
    I think this is the only way for the PCI 6014. Since you have to go through several software layers, the performance goes down a bit. If it is possible, i would recommend to change to a M-Series device...
    Cheggers
    Sascha E.
    Group Leader Applications Engineering
    National Instruments Switzerland

  • NI Motion with incremental encoder and precise position

    I am currently working on a project that requires me to get the precise position (mesure) with an incremental encoder with 2 channels A and B. I am Using NI Motion, NI UMI-7774,NI PCI 7550, and Labview 10 

    That should work!

  • NI Motion witth incremental encoder and precise position

    I am currently working on a project that requires me to get the precise position (mesure) with an incremental encoder with 2 channels A and B. I am Using NI Motion, NI UMI-7774,NI PCI 7550, and Labview 10

    Hey that's great!
    I think you're in the wrong forum: http://forums.ni.com/t5/Motion-Control-and-Motor-Drives/bd-p/240
    jigg
    CTA, CLA
    teststandhelp.com
    ~Will work for kudos and/or BBQ~

  • Incremental encoding

    I recently finished encoding a 2 hour iDVD project from iMovie on the Varsity Baseball season - It took nearly 4 complete days of computer time to finish this!!!! Needless to say - I missed my deadline for some of the graduation parties I promised this to!
    Now - looking at the DVD on a TV I wish to tweek the menu. Will I need to wait 4 days again to watch this re-encode the entire mess?
    Is there a way to incrementally encode assests of the project?
    As a second question - - I have an older PowerPC G4 Mac (1.25GHz with 3/4 GB RAM) What is the best platform for encoding? Are the new multi-core Intel Macs best? If I eventually upgrade my hardware, would I be better off with a multi-processor/multi-core PPC tower, or an Intel based Mac?
    What has more impact - amount of physical ram, available hard disk swap space and disk speed, or CPU speed?

    in addition to Len's advice...:
    the biggest "brake" while encoding is the size of free disk space! iDVD needs at last 10 - 15GB free on internal drive (ext. drives don't matter, to be precise: start-up partition, for people, who have partitioned their drives…)
    going under that size forces iDVD to do zilliones of read/write operations from/to RAM<<>>HD; and because we speak of >10GigaBytes, even a good portion of RAM doesn't help that much…
    other factors, as Len has mentioned are CPU (G4, G5, Intel, M/GHZ), RAM, HD speed, bus speed, usage of int. only/fw connected hd, and even content of project is time relevant…
    on my antique hardware (see specs), I have to calculate a factor of 8x - 10x for encoding a project… Cube computes at nite… 100% quite.... hmmm ;-)))
    Will I need to wait 4 days again
    you have to encode the whole DVD again, sorry to say that, but, cleaning up your drive (=>export some big space eaters to ext. drive), I'm sure it will be done much faster…
    helpful?solved?

  • 7344 with the incremental encoder

    Hi
         The system uses the 7344 control and UMI7764 with the incremental encoder feedback. Before the system is power off, I want to record the value of the encoder to the flash ROM of the 7344. Then next time,  I can read  this value to know exactly the status of the system when it is power on.
          But the question is that it doesn't work when I try to solve this with the Object Management nodes. So, will you please give me some instructions or maybe some example code like this?
          Thanks in advance!

    Could anybody please give some instructions?
    Thanks!

  • Open collector Incremental encoder

    So I have this TRD SH1000 BD Incremental Encoder which I am trying to connect to the NI 9411. Can I connect it with differential type terminal configuration? 
    http://www.automationdirect.com/static/specs/encoderld.pdf
    This is the manual for reference.

    Buechsenschuetz a écrit :
    Open-collector outputs and differential outputs are different things....
    Since you have open-collector outputs on your encoders only (never heard of encoders having both), you should connect them in single-ended configuration to your DAC board. To work properly with an open-collector output, the inputs of the DAC board must have pull-up resistors. In most cases these resistors are already on-board, check the manual of your DAC board for details. 
    The wiring between your encoder and the board should not be too long since single-ended inputs and non-differential signal lines are prone to environmental noise. If possible, use shielded cables with the shield connected to digital input ground (DGND) on the DAC board. 
    I guess you mean DAQ board...

  • Incremental Encoder Velocity VI Help

    Howdy Everyone,
    I am currently working on a project that requires me to get the velocity of an incremental encoder with 2 channels A and B. I already have the counts for A and position but I still did not find any VI that calculates velocity. I am currently using a Wireless Data Aquistion System "WLS-9163" with NI-9215 module.
    Any help would be really appreciated.
    Thanks.
    Mechanical Engineer

    Velocity is:
    Actual Sample - Previous Sample / Sampling Rate.
    1.Create Channel: CI - Position Linear Encoder
    2. The sample rate can be set using the Sample Clock Vi. One of the inputs is Rate.
    3.Use Counter 1DBL 1Chan N Samples in order to set the number of samples read.
     This way you'll get an array with "position values" sampled using the specified rate (at 2.). So you have to compute:
    pos[i] - pos[i+1] / rate  =>> velocity
    Paul
    PS: Sorry for VIs in German but I think it's easy to find them also in English, in DAQmx

  • What hardware do I need to monitor the signal from an incremental encoder?

    We are trying to implement a feeding
    solution for one of our cutting machines and I’m not quite sure how to proceed. 
    I have attached a document from the NI website that outlines exactly what we are
    trying to do but does not go into detail on any of the concepts like programming
    and implementation.
    1.) We have a NI DAQPad-6015
    connected to a SC-2345 which has one SCC-CTR01 module installed.  Which this
    configuration can we read the incremental encoder signal and use to setup our
    cutting machine as outlined in the attached document?  If not what is the
    minimum amount of hardware we need to sample the signal from the incremental
    encoder and obtain both the direction and magnitude of the
    movement?
    2.) If we wanted to use the
    information obtained from the encoder and subsequently send a signal to a
    stepper motor controller or perhaps a PLC what additional hardware would be
    needed.
    Thanks,
    Chris  
    Attachments:
    Incremental Encoder Example.pdf ‏94 KB

    Hi Chris,
    For quadrature encoder measurements your
    hardware is not the ideal equipment. The 6015 doesn't provide X4
    decoding. That means, that the board counts only one raising edge of
    one phase. Still, if you connect phase A and B to the counter inputs,
    it will count up and down, depending on the direction of the axis, but
    as already mentioned, you will loose 75% of the available resolution. Here is some more information about this topic.
    The document that you are referring to recommends a PCI-6624
    and this is in fact a much better option. This board provides X4
    decoding and isolated inputs not only for phase A and B but also for
    the Z-index (not available for the 6015).
    If you need a USB-solution and if you can work with TTL voltages, you might have a look at the USB-6218, that provides isolated I/Os.
    For motion control there are various options. E. g. you could use an NI motion control device like the PCI-7332,
    but there are also options to communicate with external motion
    controllers through CANopen, RS232 or various fieldbusses. Depending on
    the solution that you choose, you may need a bus interface that
    provides support for your programming software.
    I hope that helps,
    Jochen KlierNational Instruments
    Message Edited by Jochen on 09-24-2008 09:24 AM

  • PCI 6024E with incremental encoder

     I have a 6024E board, and want to measure the rotated angle of the gear with the encoder. How to connect the board's pins to the encoder's, how to programming it in Labview? Thanks!

    Please have a look at this document which describes how to use a quadrature encoder with an E-Series device like the 6024E.
    Best regards,
    Jochen Klier
    National Instruments Germany

  • How to find the velocity of an incremental encoder

    , i'm using RE22I encoder which can give upto 8192 counts per revolution, i have A,B,Z signals I'm using an fpga as a controller please help me.
    how to find velocity of the encoder using these signals i'm having a sysytem clock in the fpga will it be useful.
    Solved!
    Go to Solution.

    Start by looking at the information on Wikipedia on Rotary Encoders and an NI white paper on encoders.  These articles will give you a basic understanding of the encoder and the signals it produces.
    With appropriate decoding you can get the direction and a pulse each of the 8192 points on your encoder.  If the shaft can reverse direction (even vibration over a single point while mnearly stationary), the full decoding should be used.  If the data is only of interest while the shaft is rotating in one direction and the speed does not go near zero, a simpler decoding can be used.  Decoding a quadrature encoder is a good way to learn how to use a state machine.  The A and B signals can exist in only four possible combinations, but the possible transitions make things interesting.
    Defining the deconding is a purely logical exercise and coding it in LabVIEW as a state machine is straightforward.  There are examples, Desing Patterns, or Project Templates (depending on your LV version) which come with LV to help you get started.
    USing the A and B channels you can update your velocity calculation 8192 times per revolution.  Using Z you only get one update per revolution. Which you use may depend on your application.  The Z pulse also is useful to define a position reference for phase angle measurements.
    Lynn

Maybe you are looking for