Approximated points

  • Hi all,


    I'm new to KRL (I worked with a Panasonic before) and I'm having notification messages that I'm trying to resolve but I'm not successful so far.


    System used:

    KR3 R540 C4SR

    KSS 8.3.38


    Prog 'dprd576_0003'

    Prog 'dprd576_0004'

    Those 2 programs are subprograms of this program 'dprd576_0000':

    When I'm running the program dprd576_0000 in T1 (or T2) GO mode, I get the following notification:

    "Approximated positioning not possible (module dprd576_0003, block#)(=>1442)"

    followed by "Sequence of instructions that cannot be approximated (module dprd576_0004, block#)"


    In fact I have those notifications too between sub prog 0001 and 0002 but not between sub prog 0002 and 0003.

    I tried many things such as:

    - removing the CONT when I had it

    - using PTP instead SPTP

    - adding an advance run stop with a WAIT SEC 0

    - removing APO_MODE=C_DIS in the dat files

    None of this worked.


    So here are my questions:

    1. Any idea why it's trying to approximate these points even though its not requested in the code?

    2. What the number after "block" is referring too? obviously not the line number because it doesn't correspond (for example notification would say block86 but I have only 50 lines)


    Thanks in advance

  • 1. can't see actual code, only few selected instructions. there must be something trying to use approximation and not succeeding due program structure in fact you complain about message poping up when program transitions from sub 0001 to sub 0002 but you only show code for subs 0000, 0003 and 004. are you kidding or this is accidental?


    2. it is not only 50 lines. line number mentioned in messages is correct only if you open ALL folds. or if working offline and you open file in plain text editor such as Notepad or Notepad++ just add number of header lines (prefix &) to line number mentioned in message. that will take you to line of interest.

    1) read pinned topic: READ FIRST...

    2) if you have an issue with robot, post question in the correct forum section... do NOT contact me directly

    3) read 1 and 2

  • 1. can't see actual code, only few selected instructions. there must be something trying to use approximation and not succeeding due program structure in fact you complain about message poping up when program transitions from sub 0001 to sub 0002 but you only show code for subs 0000, 0003 and 004. are you kidding or this is accidental?

    I didn't include the INI part of the code because it is as per default when creating a new module and in my user INI I have the initialisation of my counter and outputs but otherwise what I showed here is literally the 1st line after the INI and the last line before END.

    I didn't include the sub 0001 and 0002 because these are similar to 0003 and 0004 just moving to difference points so I assumed if someone could answer on those programs it will be the solution for all programs and in READ FIRST it is clearly specify to keep "brief(!) code sample". Sorry for trying to follow your rules!

    Anyway, this will not answer to my question so see attached the full code (src + dat) of all programs!

    2. it is not only 50 lines. line number mentioned in messages is correct only if you open ALL folds. or if working offline and you open file in plain text editor such as Notepad or Notepad++ just add number of header lines (prefix &) to line number mentioned in message. that will take you to line of interest.

    Yes that's what I thought too but I checked using WorkVisual to compare and it doesn't correspond.

    After making sure that the robot performs all the movements safely, you can connect WV5 and in debug mode (T2) see where the green arrow meets the yellow one.

    Thanks fuzzy, I'll try that.

    Edited once, last by SBDP_4.0 ().

  • The INI-Part in many cases causes the message.

    You can try it with:

    Code
    IF $T1 then
     INI
    ENDIF

    In your provided files still are some movements with approximation: f.e. dprd576_0001(): SPTP P1 CONT Vel=25%....

    I think the the number always will be a secret, it is only provided for confusing the user :winking_face:

  • When I'm running the program dprd576_0000 in T1 (or T2) GO mode, I get the following notification:

    "Approximated positioning not possible (module dprd576_0003, block#)(=>1442)"

    followed by "Sequence of instructions that cannot be approximated (module dprd576_0004, block#)"

    Just in case I wasn't clear, I'm getting these messages when transiting from sub0003 to sub0004 (and sub0001 to sub0002 respectively) - so in T1 Motion mode, last line of sub0003 there is no message but when reaching sub0004 first motion line those 2 messages appears simultaneously.

  • Just in case ist was not clear:

    .....

    So here are my questions:

    1. Any idea why it's trying to approximate these points even though its not requested in the code?

    You asked why the approximation is tried even if the points are without approx, then you provide files with approx.

    I never had this issue, so I think you didn't really change all movements to have no approximation.


    In the example the last movement in sub0003() is with approx. then the INI - line in sub0004() is stopping the approx, so you will get the message.

  • code sample can be pruned down but - it still need to contain the problem. without being able to reproduce the issue, one must guess...

    you did not mention that 0001 and 0002 are similar to 003 and 0004. in fact you stated that 0003 and 004 did NOT have an issue.

    also you did not state that those are global subroutines.

    1) read pinned topic: READ FIRST...

    2) if you have an issue with robot, post question in the correct forum section... do NOT contact me directly

    3) read 1 and 2

  • in fact you stated that 0003 and 004 did NOT have an issue

    Nope I stated that between 0002 and 0003 there was no issue.

    The message of the notification was stating 0003 and 0004 that's why said that I had those notifications too between 0001 and 0002.

    Sorry to tell you that but your answers are very agressive… I'm sure you are very proficient in KRL but not everybody are - we are all glad that expert like you can help people like me - so a little of indulgence would be appreciated.

    also you did not state that those are global subroutines

    Would a local subroutine have change something? Can you have a CONT motion as a last point if the subroutine is local rather than global?

  • the point is that posted code shall reflect the issue. simply trimming code down manually without testing on robot if that really reprodices problem is not real example.


    Local subroutines don't have INI. You create them from scratch by typing code line by line.

    INI is only inserted when program is created from template called Module. Such programs can be used as subprograms as well but they are sepearate files and hence they are automatically global.

    1) read pinned topic: READ FIRST...

    2) if you have an issue with robot, post question in the correct forum section... do NOT contact me directly

    3) read 1 and 2

Advertising from our partners