Encoder Value Problem

  • Hello


    I joined for the first time.


    I'd like to inquire about a phenomenon that I've never seen before.


    Model: ZX165L
    controllers:E-CON


    Manipulation Content
    1. Encoder Rotation Reset
    2. Zeroing


    Problem situation
    1. The encoder settings of JT5 and JT6 at zero point are different from the current values (JT1~JT4 are the same).
    2. e.g.) Large numbers other than 1-10 such as the set value of 268411111 -> the current value of 268433333 are different.


    If the encoder rotation was reset and zeroed, shouldn't the encoder's current value and set value be the same at zero point?

    It also matches zero position when operating in zero degree position.

    What is the cause?

  • Welcome to the forum............:beerchug:

    Have you read any manuals regarding the encoders and re-zeroing?

    It has to be carried out in a specific order due to the nature of the encoders (Encoder counter rotation reset then Zeroing), due to the hybrid nature of the encoders.

    Also care must be taken with the minor axes as motion can be induced on the other minor axes during zeroing, so there is also a specific order for these also.....namely 4, 5 ,6.

  • Thank you for answer

    Zeroed after encoder count rotation reset.

    jt1 ~ jt4 also proceeded in the same way, but the problem occurred only in jt5 and jt6.

    Are there any problems other than zeroing after resetting?



    In the state that jt4 is rotated by -180 degrees, jt5,jt6 encoder count is reset and then zeroed.

    Could this part be the problem?

  • Any robot should be supplied with the original encoder values set from manufacture via data sheets.

    Unless a Motor/Encoder or ANY mechanical disconnect has occurred, then these values can be re-used.

    As soon as ANY mechanical disconnect has taken place, the manufacture supplied values become redundant and should never be used as the hardware/software relationship has changed.


    Re-zeroing any joint, does not change the set zeroing values set for other joints unless you re-zero incorrectly.


    When re-zeroing minor axes, unless the previous minor axis is at zero degrees when zeroing the current minor axis, then this can produce a differing value.

    Therefore when re-zeroing ANY minor axis, it is paramount for the previous minor axis to be at zero position already.

    This is what the manual describes (albeit not very clearly stated).

    In the state that jt4 is rotated by -180 degrees, jt5,jt6 encoder count is reset and then zeroed.

    Could this part be the problem?

    Why would you re-zero JT5 and JT6 when JT4 is not at zero?

    This is the what the manual is stating not to do (albeit not very clearly stated).


    Recommended procedure, is to move ALL joints to their respective zero degree positions prior to re-zeroing any joint as the whole point of re-zeroing is AFTER a mechanical replacement or mechanical alignment checking after a collision and no other reason.


    I always have a #zero_jt_ang position taught, so that I can return the robot to ALL set zero degree's prior to ANY re-zeroing that is required (within reason).

    Some circumstances I also re-zero a joint with a specific joint angle and not necessarily at zero degree's.

  • jt4 is zeroed at the gauge mark point. When I zeroed jt5 and jt6, I found that jt4 was rotated by -180 degrees.


    The rs20n robot was just ready, zeroed jt4 at the gauge mark point, rotated -180 degrees, and then reset and zeroed jt5 and jt6 encoder counts, but the current and set values match normally.


    I reproduced the same situation, but the results are different.


    Manufacturing date

    ZX165L : 2011

    RS20N : 2019

    ZX165LSetting valueCurrent value
    JT1268428701(zero mark)268428701(0˚)
    JT2268433948(zero mark)268433948(0˚)
    JT3268432487(zero mark)268432487(0˚)
    JT4268428520(zero mark)267872692(-180˚)
    JT5268427127(zero mark)268434274(0˚)
    JT6268425858(zero mark)268432546(0˚)

    Edited once, last by ksj ().

  • jt4 is zeroed at the gauge mark point. When I zeroed jt5 and jt6, I found that jt4 was rotated by -180 degrees.

    Use encoder counter reset followed by zeroing (aux 503, then aux 501).

    Use joint interpolation mode.

    Move JT1 to line up with the scribe line and carry out JT1 zeroing.

    Then move JT2 to line up with the scribe line and carry out JT2 zeroing.

    Then move JT3 to line up with the scribe line and carry out JT3 zeroing.

    Then move JT4 to line up with the scribe line and carry out JT4 zeroing.

    Then move JT5 to line up the scribe line and carry out JT5 zeroing (whilst JT4 is at 0 degrees).

    Then move JT6 to line up the scribe line and carry out JT6 zeroing (whilst JT4 and JT5 are at 0 degrees).


    ALL joints should be displaying 0 degrees (via the axis data monitor).


    Create a position #xxxxxx for 0 degrees for all joints.

    Jog the robot to a different location and then move back to the #xxxxxx position and ALL joints should be at their respective scribe lines.


    If JT4 has rotated by -/+ 180 degrees, then the scribe line will be 180 degrees out.


    If this is the case:

    - Create a file save and post it here on the forum.

    - If you are concerned about company IP, then you can send it via 'conversation'.

    - Provide the EXACT model no for the fitted arm (as per rating plate from the fitted arm).

    - Provide the EXACT model no for the fitted controller (as per the rating plate from the controller).

    - Is the ZX being re-purposed from a previous application?

  • I have attached the material as a conversation.

Advertising from our partners