Incorrect values of frequency quadrature encoder measurement

Hello

I use a rotary encoder with the slice has and tranche B and an exit on the ground, attached to an M - series SCB-68 that is attached to an NI PCI-6221.

I use the soul hollow low frequency Freq 1 Ctr.vi I added some time a loop to and is attached below.

I tied to the 9 PFI for the measurement of the frequency of the phase a. (I have attached to the floor to phase B 10 PFI and D GND).

When I run the VI I get a rate that fluctuates wildly to reach as high as 2285714 Hz frequencies.

I used a multimeter between phase has and ground wires and got a rate of 118 ~ 122 Hz which corresponds to the number I want.

Should what steps I take to get the correct frequency in LabVIEW?

My ultimate goal is to find the speed of ROTATION of the encoder that has 64 PPR.

Thanks for any help you can provide.

Hi pd1234,

You probably pick up glitches on transitions (encoders tend to be quite noisy signal sources).  These seeds would record in the form of very short impulses, which may be calculated to represent very large frequencies.  To resolve this problem, you must enable digital filtering (see the user manual of M series):

The foregoing will cross any superior to 6,425 impulses, but will ignore the little glitches that you probably see.

Best regards

Tags: NI Hardware

Similar Questions

  • Erratic counting quadrature encoder

    Hello

    I try to use LabVIEW 9.0 and an acquisition of data USB-6212 for measuring angular displacement of rotating quadrature encoder (digital model we E2) attached to a linear actuator based on the stepper motors.

    With the help of the VI linked to below and the default PFI pin on the acquisition of data, I can get the Angle of the VI to change, but with two issues indicator.

    http://forums.NI.com/attachments/NI/170/144774/1/QuadratureEncoderM-series.VI

    1. the only way I can assure you that the Angle indicator remains at a constant value with the VI running and the stepper motor moves do not is to turn off the power to the encoder.  In other words, when the 5V power is provided to the encoder, the Angle indicator sometimes remains constant at a certain value and sometimes increases, even if the motor step does not move.  I added a waveform table that displays the Angle to see more easy output.

    2. with the engine not to not pass any if she moves hourly or counterclockwise, the angle indicator only increases (counting).  Changing the direction of engine displacement does not decrease the angle.

    I checked the DAQ pins I use: PFI 3, Z = A = B = 11 PFI with ctr and PFI 4 1.  I tried both ctr0 and ctr1 with the same results.  I used a multimeter to check the outputs a, B and Z on the encoder to output with the motor step-by-step to displacements of various populations, and I'm getting ~ + 5V sometimes and ~ 0V sometimes telling me that the encoder, which is new, seems to move from high to low.

    This sounds like the kind of behavior that may be caused by noise in signals?  If so, who should not have something to do with the Angle only, correct?  To get the Angle to reduce, should I change something in VI?

    I thank you very much for any assistance, you can give.

    Hi Mike,.

    From what you describe, I feel the symptom of the meter backwards never is a side effect of the issue where the meter continuously counts up while in not moving.  This really looks like a noise problem, and there are a few small but noticeable spikes in your graphics HAVE you provided.  Basically, as long the (Source) Signal led B Signal (to THE), then the meter progressive count.  This is for X 1 coding, which I assume that you are using.  Look here Figure 5, in virtue of the X 1 section for how this encoding reads your signals of encoding:

    Your connections you describe are correct, so it'll be a matter of getting rid of the problem where the meter is incremented on its own which I believe will solve your other problems.  Take a look at these links to see if adding filters on the internal counter inputs to the card allows the measurement: Activate the digital M series filtering  allowing digital filters for TIO Debounce NOR-DAQmx devices

  • quadrature encoder synchronize the sample

    Using a USB-6251 housing measure a quadrature encoder, I will determine the angle that external discrete changes state.  I tried to connect the unobtrusive to a DIO of entry and using code CVI PC read the angle of the encoder, when the state change occurs.  The problem is the lag time of the PC code that adds up to 4 degrees (with a variability) to the measured angle.  An ideal solution would be to trigger a measure in a buffer in the USB-6251 housing when the State of the discrete changes, then read the value in the PC at a later date.  Is this possible with the USB-6251 housing?

    Thanks Adam,.

    I solved my problem by using this idea with the addition of the use of sampling buffered and discreet as a trigger.  Engaging the material task also seems to be a good idea, but may not be required.

    The installation code looks like this:

    Start a way to encode on the counter 1 to control the angle of the label sensor PNP edges
    status = DAQmxCreateTask ("PNP Rising edges", & pnpTaskHandle);

    strcpy (chanString, devName);
    strcat (chanString, "/ ctr1 ');

    status = DAQmxCreateCIAngEncoderChan (pnpTaskHandle, chanString, "", DAQmx_Val_X4, 1, 0, DAQmx_Val_AHighBHigh)

    DAQmx_Val_Degrees, 4096, 0,0, "");
    sprintf (chanString, "/");
    strcat (chanString, devName);
    strcat (chanString, "/ PFI1");
    status = DAQmxCfgSampClkTiming (pnpTaskHandle, chanString, 1000000, DAQmx_Val_Rising, DAQmx_Val_ContSamps, 10)

    (0000);
    If (status<>
    DAQmxGetErrorString (status, errString, 1000);
    DAQmxTaskControl (pnpTaskHandle, DAQmx_Val_Task_Commit);
     
    Start the task
    status = DAQmxStartTask (pnpTaskHandle);
    angleTaskStarted = 1;

    Read the value of looks like this:

    status = DAQmxReadCounterF64 (npnTaskHandle, DAQmx_Val_Auto, 0, npnEdgeArray, 1000, & npnSampsRead, 0);

  • VI quadrature encoder does not work after programming of FPGA

    I'm rather new on the MyRIO, and I work on the motor of the MyRIO and read control in a quadrature encoder at the same time. Programmed individually, the two pieces of work at Marvel, but once I have combine them and try programming, control of motors not to not work signals, but the reader encoder does not work. I use the Express VI for the LabVIEW quadrature encoder reader, and I produce four stepper motors signals using FPGA.

    It seems as if the encoder is disabled when I program the FPGA with my code, because if I have two parallel loops, one for the reader encoder and the control of step motors, if I stop the loop of step motors, the encoder works immediately.

    Is there something simple that I'm missing?  Any suggestions would be greatly appreciated!

    Thank you

    Enan

    I realize now that my last answer could have been confused and not useful to someone else who may come across the same problems later.

    Here is how I solved the problem I've had:

    I had to derive Boolean expressions for an encoder quadrature (essentially to create my own) and then used the outputs (UP, DOWN) to increment/decrement a counter using the conditional statements. Then, I stored the value of direction in a flip flop implemented using two conditional statements of T/F in series and connected to a shift on the edge of the loop register.

    It was all able to be implemented in a single cycle timed Loop, and then I managed to place in the same loop that I used to control stepper motor.

    In this way, I could have a VI collected in a Bitfile and could be programmed to the FPGA.

    Hope this is clearer!

    Enan

  • NEITHER USB-6343: erratic low frequency 1 counter measures

    Dear members,

    I'm looking for help with a measure of low frequency counter.  I tried to make it work for a week or two, but I keep getting erratic measures.  It will read the rpm properly for a second or two and then it will give a ridiculous value on the order of 10,000 times the correct value. I can not get a constant value.

    I use a DAQ series X NI USB-6343 multifunction with Geartooth Honeywell GTN1A111 sensor. I enclose a sketch of the wiring configuration.  I think that it is correct.  Sensor output to the door of the meter.

    To try to solve this problem, I hooked the sensor to an analog input channel to make sure that I was getting a TTL signal by sensor.  I noticed every once in a while I'd see a glitch of little noise in the signal and I guess that's what is causing my problem with the meter.  I inserted two waveforms of the sensor signal (one with the clean signal) and the other with the glitch of noise.  My understanding of a TTL signal meter channel will examine LO voltage when it is below 0.8V and HI when it is larger than 3.8V.  So I really do not understand why these little glitches could be the cause of the problem because they are well below and above 0.8V and 3.8V, respectively.  I think that the noise comes from a frequency converter used to drive the engine.  I tried the system as much as possible of the Earth.

    I guess I'm looking for another approach.  I could potentially use a digital filter to help with noise? The glitch is in fact the problem or I forgot something.  The VI in question is attached.

    Thanks in advance,

    Mike

    Have you tried to set up a digital filter yet?  Obviously the seeds are collected as an additional transition (the method of low frequency counter 1 measure the period and then reverse, so a short glitch would record as a very high frequency).

    You can enable the digital filter with the following property node:

    Min pulse width is guaranteed pulse past the filter, so it should be low enough for the real signal is guaranteed to pass through (but high enough so that the glitch is always rejected).

    Best regards

  • How to read a quadrature encoder, using a PCMCIA card from 6036E?

    Hello

    I 6036E PCMCIA card and I want to read a quadrature encoder.

    I must not use the z index.

    My version of Labview is 8.5.

    When I try to use the DAQ assistant and choose the option 'angular position' I get the answer that no supported device were found.

    What should I do?

    Thank you in advance,

    Fotios

    Hello

    Card PCMCIA-6036E has a STC chip that does not support the encoding position because there is no support of Z. It must be resolved in the software and using the edge counting.

    Some info on E-cards and quadrature encoding:

    http://zone.NI.com/DevZone/CDA/tut/p/ID/4623

    http://zone.NI.com/DevZone/CDA/tut/p/ID/2879

    http://zone.NI.com/DevZone/CDA/EPD/p/ID/1427

    / Klas

  • COS() returning incorrect values

    Hi, anyone of you tried get values of cos() to native c++... ? It seems that sin values are correct, but the cos returns incorrect values. As for example, sin(pi/2) Returns infinity. No idea what could be wrong?

    @SuhairZain,

    #include 
    #include 
    int main(void)
    {
            float pi = 3.14159265f;
            printf("Result: %f\n", sin(pi/2));
    }
    

    Result: 1.000000

  • Incorrect value for PERM in TUXCONFIG

    I get incorrect values of PERM in TUXCONFIG. I did not define PERM in my UBBCONFIG file so ideally, its value must be 0666 in the TUXCONFIG file. After tmloadcf running - there, I'm like value of PERM 0600. TUXCONFIG file generates also with 600 permissions. Is there something I miss or are there changes I need to make in UBBCNOFIG?

    I use 12.1 Tuxedo.

    Hello

    Sorry about that.  The default value has been changed some time back and apparently as part of the documentation was missing.  Normally the best place to see the default values in the description of the file UBBCONFIG.

    Kind regards

    Todd little

    Chief Architect of Oracle Tuxedo

  • PDEElementGetBBox returns an incorrect value

    Hello

    I have developed a plugin that remove the object such as text, image, and path with respect to the coordinates of user input. In some cases, the value obtained by PDEElementGetBBox return the false value.

    Code I used

    If (PDEObjectGetType ((PDEObject) pdeElement) == kPDEPath)

    {

    PDEElementGetBBox (pdeElement, & bbox);

    float PathTop = ASFixedToFloat (bbox.top);

    float PathBottom = ASFixedToFloat (bbox.bottom);

    float PathLeft = ASFixedToFloat (bbox.left);

    float PathRight = ASFixedToFloat (bbox.right);

    If (the Condition is true)

    {

    PDEContentRemoveElem (pdeContent, j);

    }

    }


    Bbox return an incorrect value


    Is all that I'm missing

    Hmm. It seems that the method returns the BBox of the shape of XObject. This is the bounding box used to design the form elements, not the bounding box when she turned on the page scaling and offset. The documentation says that the BBox is returned in the 'user space '. I wonder, if you need to use PDElementGetMatrix and apply it to the BBox returned in this case - maybe anyway and you had the chance before - have you tried PDEImages?

  • You enter a value and tab out of af:inputListOfValues displays an incorrect value

    Hello. I have a problem with the autosubmit and tab off af:inputListOfValues in my code.

    Problem: When I type in a valid value and tab out of the field, it ignores the value, I entered and displays everything the first list in the result of the query instead regardless of the value that I typed.

    My code snippet. What it does is simply a search for employee LoV unattached to an attribute of the entity, and depending on selection, it displays the name of the employee within the page. (it also retrieves a table view what employee number came into office)

    < af:inputListOfValues id = "empNoId".

    popupTitle = "search and select: #{bindings." EmpNo.hints.label}.

    value = "#{bindings." EmpNo.inputValue}.

    label = "#{bindings." EmpNo.hints.label}.

    model = ' #{bindings. " EmpNo.listOfValuesModel}.

    required = "#{bindings." EmpNo.hints.mandatory}.

    columns = "#{bindings." EmpNo.hints.displayWidth}.

    shortDesc = "#{bindings." EmpNo.hints.tooltip}.

    Binding = "#{workLocationBean.txtEmpNo} '"

    partialTriggers = "id1".

    valueChangeListener = "{bean.onEmpNoChange}" "

    autoSubmit = "true" >

    < f: validator binding = "#{bindings." EmpNo.validator} "/ >"

    < / af:inputListOfValues >

    Other things to note:

    When I enter a valid employee number and click anywhere on the page (not TAB), it behaves properly.

    I tried to figure this out for days. Even my valueChangeListener Gets an incorrect value (when I do System.out) when I tab out, so I do not know where to catch them and replace it with the correct value.

    Thank you.

    This happens usually when the primary key is not defined in the view object used by LOV.

    Dario

  • Incorrect value during validation?

    When I try to validate I always come with the following statement of the "incorrect value".  The first comment comes from the validator and the 2nd is the real html in my Spry Menu. I would like to know what part of the HTML is bad.  I tried to put a %20 between words and apparently is not the problem.  Thanks in advance.bad code.jpg

    Sorry, you seem to have misread my post, which was based on your original image.

    The image has a type-o, which shows

    With a dashboard where would be an equal sign. If this part is correct in your actual code, which is not the problem.

    FWIW: I just have to dig a little deeper, and it seems that html5 doctypes consider spaces in filenames as an error. Apart from Firefox, I don't know of any browser that has serious problems with spaces in the paths of files, usually only they understand without problem. If you have not used specific tags in HTML5 in the rest of your site, you can change your doctype to html 4 to avoid validation issues on file name spaces.

  • Problem CS5: merging HDR Pro &amp; EV incorrect values

    Hello

    I try to use the HDR Pro on Photoshop, but have not yet find a way around a problem I encounter.

    The game Gran Turismo 5 3 Playstaiton has a photo and you mode allows to edit the parameters of the camera in the game and then export your image. When you open the images with Photoshop, a message appears informing you Photoshop data file is maybe damaged. You can choose to ignore this and the image appears as usual.

    The real problem occurs when you take photos with different exposure settings and then try to use the option "Merge to HDR Pro. For some reason, the values embedded in the files are incorrect. I took three pictures, the picture of high level was-3,0 exposure value seen in HDR Pro, which is obviously false, and the normal and low level photos both had a value of 0.0. Of course these confused values cause the whole process of HDR to go bad horrible, as shown here:

    http://i53.Tinypic.com/euh7ra.jpg

    Photoshop support pages inform me for files with missing values EV, can I put them manually, however there is no option for files with incorrect values. Is it possible that I can change the settings manually? Either through Photoshop or editing files elsewhere?

    Thanks for any help.

    Yes, there are the editing/display EXIF utilties.

    You can hand or change the hexadecimal numbers in the file (if you know how).

  • Start little problem-ORA-07446: sdnfy: incorrect value "for parameter

    what I am doing wrong?

    SQL > startup nomount pfile=/oracle/product/9.2.0.6/dbs/initncersp.ora;
    ORA-00444: background process 'PMON' failed during startup
    ORA-07446: sdnfy: incorrect value "for the parameter.

    -rw - r - r - 1 oracle dba 466 Jan 21 11:11 initncersp.ora
    Oracle: tulppwradb02:ncersp > pwd
    /Oracle/product/9.2.0.6/DBS

    *************
    Oracle: tulppwradb02:ncersp > vi initncersp.ora
    "initncersp.ora" 127 lines, 3788 characters
    ##############################################################################
    # Copyright (c) 1991, 2001, 2002 by Oracle Corporation
    ##############################################################################

    ###########################################
    # Archive
    ###########################################
    Log_archive_dest = ' / archive_nmarket/ncersp.
    log_archive_format='arch.ncersp.%s_%t.log'
    log_archive_start = true

    ###########################################
    IO and cache memory #.
    ###########################################
    DB_BLOCK_SIZE = 8192
    db_cache_size = 25165824
    db_file_multiblock_read_count = 16
    DB_FILES = 400

    ###########################################
    # The library Cache and sliders
    ###########################################
    open_cursors = 500

    ###########################################
    # Identification of the database
    ###########################################
    db_domain =""
    db_name = ncersp
    # Global Naming - apply as a dblink has same name as the db, that it connects
    global_names = TRUE

    ###########################################
    # Diagnostic and statistical
    ###########################################
    background_dump_dest = / oracle/admin/ncersp/bdump
    core_dump_dest = / oracle/admin/ncersp/cdump
    user_dump_dest = / oracle/admin/ncersp/udump
    TIMED_STATISTICS = TRUE

    ###########################################
    # Configuration file
    ###########################################
    control_files = ("/ db01/oradata/ncersp/ncerspcontrol01.ctl","/db01/oradata/ncersp/ncerspcontrol02.ctl", "/ db01/oradata/ncer")
    SP/ncerspcontrol03. CTL")

    ###########################################
    # Identification of the instance
    ###########################################
    instance_name = ncersp

    ###########################################
    # Work queue
    ###########################################
    JOB_QUEUE_PROCESSES = 0 #zero for maintenance


    ###########################################
    # Optimizer
    ###########################################
    hash_join_enabled = TRUE
    #query_rewrite_enabled = TRUE
    #query_rewrite_integrity = "trusted."
    #star_transformation_enabled = FALSE

    ###########################################
    # Pools
    ###########################################
    JAVA_POOL_SIZE = 51200
    LARGE_POOL_SIZE = 8388608
    shared_pool_size = 55343360

    ###########################################
    # Process and Sessions
    ###########################################
    process = 100

    ###########################################
    Recovery and # redo Log
    ###########################################
    fast_start_mttr_target = 300

    ###########################################
    # Security and audit
    ###########################################
    Remote_login_passwordfile = 'EXCLUSIVE '.
    AUDIT_TRAIL = DB

    ###########################################
    # Sort, hash joins, index Bitmap
    ###########################################
    pga_aggregate_target = 25165824
    sort_area_size = 1024000

    #######################################################
    # Need Varification for under parameters of primary s/n
    #######################################################
    ###########################################
    # Various
    ###########################################
    aq_tm_processes = 1
    compatible = 9.2.0.0.0
    log_buffer = 32768
    log_checkpoint_interval = 10000
    log_checkpoints_to_alert = TRUE
    max_dump_file_size = '10240'
    OS_ROLES = FALSE
    remote_os_roles = FALSE
    os_authent_prefix = "

    ###########################################
    # System managed Undo and Rollback Segments
    ###########################################
    UNDO_MANAGEMENT = AUTO
    UNDO_RETENTION = 10800
    undo_tablespace = UNDOTBS1
    #utl_file_dir ='* '



    ###########################################
    # OLD SETTINGS DB
    ###########################################
    #db_block_buffers = 550
    #resource_limit = true
    #parallel_max_servers = 5 # SMALL
    #global_names = TRUE
    #job_queue_interval = 60

    There may be additional or better clues in file alert_SID.log

  • I get an incorrect value for the MIN function?

    Hello

    I get an incorrect value when I run the query below. Here, I'm getting the minimum of the two values. I use the function table of pipeline. This split function the comma separates into single value string. Actuatlly of the sub query min value is 956.23. But he's back 1002.56 as min value. How is it possible?

    Other wise, is there another way to get the min of comma-separated string value?
    SELECT  MIN(COLUMN_VALUE)
    FROM    TABLE(get_string_comma('956.23,1002.56',','));

    Hello

    I understand your situation, try:

    SELECT  MIN(to_number(COLUMN_VALUE))
    FROM    TABLE(get_string_comma('956.23,1002.56',','));
    

    Kind regards

  • Quadrature encoder frequency division dotNet VB Net c#

    Hello

    After a long search on this forum, I decided to start this thread for dotNet developer.

    I have a PCI-6602 with an encoder in quadrature (A, B, Z). The frequency of the pulses is average (10 kHz).

    I'm only using the channels A and B.

    The function I need to implement is to output all N pulses forward. N is a natural number and ranging from 1 to say 100.

    I have no constraints on the output. I may be a little switch or a generation of impulses.

    What features I'll call in MeasurementStudio.Net to implement this?

    How many counters should I use?

    On the registry, my guess is that I have to preload a value in the registry.

    Then when countdown counter reaches 0 this in turn does 2 things:

    • reload its set value meter
    • triggers the generation of output (TerminalCount)

    Thanks for any help you can provide

    Guy nOTEs for EITHER:

    ---------------------------------

    Moreover, in samples of NOR, squaring does work all the way.  I NLE sample "CountDigEvents" with CountDirection the 'Externally controlled' value, backward motion is never displayed. This is because the meter is read as a UInt32.

    Hi anthony75fr,

    Although there is no support for A, B and Z entries, the behavior you're looking for is essentially how a counter output tasks works.  Wouldn't not enough output on each pulse signal of A N (ignoring B and Z)?

    If so, you can configure it with only one meter by making a simple change to the example of GenDigPulseTrain_Continuous.  The basic shipping example uses the CreatePulseChannelFrequency method.  You want to use the CreatePulseChannelTicks method to specify your low and high time regarding ticks of the external signal (regardless of the PFI line the A out of your encoder is connected to).  By default, the output of the meter will switch between high and low in a way the number of ticks high and low ticks that you specify (for example, you can set up the meter for the output up 2 ticks and low for 98 ticks, giving a boost all 100 ticks - 2 is the minimum value for high or low ticks).

    Best regards

Maybe you are looking for

  • Hello help, Mac can't find the printer

    Hi all 'BonjourPSsetup.exe not supported under OS X' I am puzzled. To create a roaming network, I added as an express to my Time Capsule airport and doing so changed the name of the network. (Original name was a little too identifiable) now MacBook W

  • Overview of the *.pdf documents is graph

    When I click on Entourage 2008 Office email with an attached *.pdf, the checkerboard search overview document. I'm unable to print it without these checkerboard blocks all over the page.  Why is it happening and how I can fix?  For the moment, I need

  • Messages not displayed in chronological order

    I am running OS X El Capitan (10.11) on a Macbook Pro - end 2011 edition. How can I get my text messages appear in chronological order on my Messages app? It shows that I have new messages and I can go directly to them by right click (or control + cl

  • BSOD appears on Qosmio G30 during the recovery procedure

    Hello I have a Qosmio G30 and I want to format it and return to the out-of-the-box state...Unfortunately came with the laptop recovery CD doesn't seem to work... Whenever I try to boot from the DVD, it says "windows is loading files" and once this is

  • Replacement radiator fan on HP H8-1214

    I want to replace the fan on the heatsink in my H8-1214 because it has become squeaky/gay enough sounding even at low speeds, probably because of the bad bearings. I can't find a picture that looks exactly like that (However, could be the Ebay announ