Jump to content
OMRON Forums

kandauru

Members
  • Posts

    109
  • Joined

  • Last visited

Posts posted by kandauru

  1. Hi,

     

    there is a question regarding stopping on hardware limit:

    I have some problem with Z axis. When it runs with a high speed, it does not stop on the limit immediately. So, what is the parameter that allows to change deceleration when hardware limit was detected? Thanks.

  2. Hi again,

     

    I have couple of questions regarding compensation table:

    1) the values entered into the table - what is this? The difference (correction) between target position and measured one when the target was reached

    or absolute corrected position?

    2) I built 2 compensation tables using GUI in PowerPMAC IDE. Although Sys.CompEnable=2, I didn't see it working. For point 100 mm I put the correction of 50 mm, just to see it working, but running distance, anyway, was 100 mm. Please, advise.

    3) If I have two motors in gantry mode, should I prepare something specific, or it is enough to setup up compensation table for "master" motor only?

     

    Thank you in advance!

  3. Hi,

     

    We want to use CAD/CAM/CATIA files directly with PPMAC.

     

    In the introduction_the_power_pmac.pdf file (attached) it is written:

    "Want the controller to execute a complex “G-code” motion sequence generated by an industrystandard CAD/CAM program? Just download the program file to the Power PMAC and let the builtin interpreter and automatic motion sequencer take over".

     

    What is the general way to implement this? Any example? Please.

     

    Thank you in advance.

    introducing_the_power_pmac.pdf

  4. &1

    Coord[1].FeedTime = 1000 //sec

    Coord[1].SegMoveTime = 0

    Coord[1].AltFeedRate = 300 //mu/s

    Coord[1].MaxFeedRate = 300 //mu/s

    Coord[1].Ta=10

    Coord[1].Td=0

    Coord[1].Ts=50

    Coord[1].Tm=-200

    Coord[1].NoBlend=0

     

     

    #1->533.3432x

    #2->0 //position follower

    #3->533.3432xx

    #4->0 //position follower

    #5->799.9702y

    #6->799.9702yy

    #7->2719.5545z //Ua

    #8->2719.5545zz //Ub

    #9->2777.957u // Ba

    #10->2777.957uu // Bb

    //#11->0//a

    //#12->0//aa

    //#13->0//b

    //#14->0//bb

    #15->1927.0626v

    #16->1927.0626vv

  5. And here are my points:

     

    XX4240YY-3065ZZ256UU-175VV-90

    XX4240YY-3065ZZ256UU-175VV-90

    XX4240YY-3065ZZ257UU-175VV-89

    XX4239YY-3065ZZ258UU-175VV-88

    XX4239YY-3065ZZ259UU-175VV-87

    XX4238YY-3065ZZ260UU-175VV-86

    XX4238YY-3065ZZ261UU-175VV-85

    XX4237YY-3065ZZ261UU-175VV-84

    XX4237YY-3065ZZ262UU-175VV-83

    XX4236YY-3065ZZ263UU-175VV-82

    XX4236YY-3065ZZ264UU-175VV-81

    XX4235YY-3065ZZ265UU-175VV-80

    XX4235YY-3065ZZ266UU-175VV-79

    XX4234YY-3065ZZ266UU-175VV-78

    XX4234YY-3065ZZ267UU-175VV-77

    XX4233YY-3065ZZ268UU-175VV-76

     

    XX4233YY-3065ZZ268UU-175VV-76

    XX4233YY-3065ZZ267UU-175VV-77

    XX4234YY-3065ZZ266UU-175VV-78

    XX4234YY-3065ZZ265UU-175VV-79

    XX4235YY-3065ZZ264UU-175VV-80

    XX4235YY-3065ZZ263UU-175VV-81

    XX4236YY-3065ZZ263UU-175VV-82

    XX4236YY-3065ZZ262UU-175VV-83

    XX4237YY-3065ZZ261UU-175VV-84

    XX4237YY-3065ZZ260UU-175VV-84

    XX4238YY-3065ZZ259UU-175VV-85

    XX4238YY-3065ZZ258UU-175VV-86

    XX4238YY-3065ZZ258UU-175VV-87

    XX4239YY-3065ZZ257UU-175VV-88

    XX4239YY-3065ZZ256UU-175VV-89

    XX4240YY-3065ZZ255UU-175VV-90

  6. Additional questions:

    in my system I have 12 axes. I define all my axes in CS1 when my application is started.

    While the application is running CS1 definition is not changed.Is it OK? Or I should define axes in CS

    before each simple movement (or complex trajectory movement)?

  7. Hi Steve,

     

    I have implemented the rotary buffer according to what you had described but the result was same.

    I have seen all my points in the buffer (using list Rotary command) before I sent the command &1b0r. So, if all points were

    in the buffer, then I think the problem is in ta, ts, td parameters. Or maybe I should go for lookahead feature?

  8. Thank you for your reply, Gregs.

     

    The following part is defined in 0-coordinate_system.pmh

    &1

    Coord[1].FeedTime = 1000 //sec

    Coord[1].SegMoveTime = 0

    Coord[1].AltFeedRate = 300 //mu/s

    Coord[1].MaxFeedRate = 300 //mu/s

    Coord[1].Ta=1

    Coord[1].Td=0

    Coord[1].Ts=5

    Coord[1].Tm=-5

    Coord[1].NoBlend=0

     

    #1->1865x

    #2->1865xx

    #3->1865y

    #4->1865yy

    #5->1865z

    #6->1865zz

    #7->680.9714v

    #8->324.8089u

    #9->680.9714vv

    #10->324.8089uu

     

    Motion program 1:

     

    open prog 1

    frax(X,Y,Z)

    F20

    cmd "&1a"

    cmd "&1 delete rotary"

    cmd "&1 define rotary 600000"

    cmd "&1 open rotary abs linear close"

    cmd "&1b0r"

    while (RunProg == 1) //RunProg - global variable

    {

    cmd "&1 open rotary X-207Y308Z573V186U-249 X-207Y309Z573V186U-249 X-208Y311Z573V186U-249 X-208Y312Z573V185U-249 X-209Y314Z573V185U-249 X-209Y315Z573V185U-249 X-210Y317Z572V184U-249 X-211Y318Z572V184U-249 X-211Y320Z572V184U-249 X-212Y322Z572V183U-249 X-212Y323Z572V183U-249 X-213Y325Z572V183U-249 X-214Y326Z572V182U-249 X-214Y328Z572V182U-249 X-215Y329Z572V182U-249 X-215Y331Z571V181U-249 close"

     

    Sendallcmds

     

    cmd "&1 open rotary X-215Y330Z570V180U-249 X-214Y329Z571V181U-249 X-213Y327Z571V181U-249 X-213Y326Z571V181U-249 X-212Y324Z571V182U-249 X-212Y323Z571V182U-249 X-211Y321Z571V182U-249 X-210Y320Z571V183U-249 X-210Y318Z571V183U-249 X-209Y316Z571V183U-249 X-209Y315Z571V184U-249 X-208Y313Z571V184U-249 X-207Y312Z572V184U-249 X-207Y310Z572V185U-249 X-206Y309Z572V185U-249 X-206Y307Z572V185U-249 close"

     

    Sendallcmds

    }

    close

     

    So, there is only one motion program. This is a small example that was implemented as a motion program and didn't work in the past.

    In a real application trajectory will be computed on the fly, that's why I need a rotary buffer.

    If you see something wrong, please, tell me.

  9. Finally, I see that rotary buffer is working, but not exactly what I wish. Axes move from point to point with a small stop, not smoothly.

    You can see it here: https://drive.google.com/open?id=0B6Q9gPky33lbd2J0V3l6OVl0VGs .

     

    Below you can find a motion program and parameters:

    &1

    Coord[1].FeedTime = 1000 //sec

    Coord[1].SegMoveTime = 0

    Coord[1].AltFeedRate = 300 //mu/s

    Coord[1].MaxFeedRate = 300 //mu/s

    Coord[1].Ta=1

    Coord[1].Td=0

    Coord[1].Ts=5

    Coord[1].Tm=-5

    Coord[1].NoBlend=0

     

     

    &1

    #1->1865x

    #2->1865xx

    #3->1865y

    #4->1865yy

    #5->1865z

    #6->1865zz

    #7->680.9714v

    #8->324.8089u

    #9->680.9714vv

    #10->324.8089uu

     

    open prog 1

    Ldata.coord=1

    frax(X,Y,Z)

    linear

    abs

    F20

    cmd "&1a"

    cmd "&1 delete rotary"

    cmd "&1 define rotary 600000"

    cmd "&1 open rotary abs linear close"

    cmd "&1b0r"

    while (RunProg == 1)

    {

    cmd "&1 open rotary X-207Y308Z573V186U-249 X-207Y309Z573V186U-249 X-208Y311Z573V186U-249 X-208Y312Z573V185U-249 X-209Y314Z573V185U-249 X-209Y315Z573V185U-249 X-210Y317Z572V184U-249 X-211Y318Z572V184U-249 X-211Y320Z572V184U-249 X-212Y322Z572V183U-249 X-212Y323Z572V183U-249 X-213Y325Z572V183U-249 X-214Y326Z572V182U-249 X-214Y328Z572V182U-249 X-215Y329Z572V182U-249 X-215Y331Z571V181U-249 close"

     

    Sendallcmds

     

    cmd "&1 open rotary X-215Y330Z570V180U-249 X-214Y329Z571V181U-249 X-213Y327Z571V181U-249 X-213Y326Z571V181U-249 X-212Y324Z571V182U-249 X-212Y323Z571V182U-249 X-211Y321Z571V182U-249 X-210Y320Z571V183U-249 X-210Y318Z571V183U-249 X-209Y316Z571V183U-249 X-209Y315Z571V184U-249 X-208Y313Z571V184U-249 X-207Y312Z572V184U-249 X-207Y310Z572V185U-249 X-206Y309Z572V185U-249 X-206Y307Z572V185U-249 close"

     

    Sendallcmds

    }

    close

     

    BTW, way frax(X,Y,Z,U,V) is not acceptable with projpp? I am getting the following error:

    Error : ( error #31) invalid data : frax(z,y,z,v,u).

     

    So, my main question is how to make it moves smoothly?

    Thank you in advance!

  10. Under the topic "Constraints on Linear/Circle Moves" I have read the following:

    With very short moves, user must be careful not to overwhelm Power PMAC real-time calculation capabilities (run-time error would result and program would halt).

    It looks like it is my case, isn't it?

  11. Hi,

     

    I am facing a new problem using rotary buffer: the rotary buffer stops running after first line was executed.

    Please, advise how to fix this problem.

     

    Here is my source code:

     

    CS defined as below:

     

    &1

    #1->x

    #2->0 //position follower of #1

    #3->xx

    #4->0 //position follower of #3

    #5->y

    #6->yy

    #7->z

    #8->zz

    #9->u

    #10->uu

    //#11->a //not used in current configuration

    //#12->aa //not used in current configuration

    //#13->b //not used in current configuration

    //#14->bb //not used in current configuration

    #15->v

    #16->vv

     

    Then in my application written on C#:

     

    //buffer initialization

    cmds.Add("&1a");

    cmds.Add("&1 delete rotary");

    cmds.Add("&1 define rotary " + ROT_BUF_SIZE); // ROT_BUF_SIZE = 4096

    cmds.Add("&1open rotary linear abs close");

    cmds.Add("&1b0r");

     

    SendCommands(rotComm, cmds, out res);

     

    //buffer filling

    cmds.Add("&1open rotary X92028 Y1089221 Z1631730 U-500011 V173488 close");

    cmds.Add("&1open rotary X92087 Y1089385 Z1636252 U-500125 V172850 close"); //at this line the execution stops

    cmds.Add("&1open rotary X92152 Y1089550 Z1640774 U-500238 V172212 close");

    cmds.Add("&1open rotary X92221 Y1089714 Z1645296 U-500352 V171575 close");

    cmds.Add("&1open rotary X92296 Y1089878 Z1649817 U-500465 V170937 close");

    cmds.Add("&1open rotary X92376 Y1090042 Z1654338 U-500579 V170300 close");

    cmds.Add("&1open rotary X92461 Y1090206 Z1658858 U-500692 V169662 close");

    cmds.Add("&1open rotary X92552 Y1090370 Z1663377 U-500806 V169025 close");

    cmds.Add("&1open rotary X92648 Y1090533 Z1667895 U-500920 V168387 close");

    cmds.Add("&1open rotary X92749 Y1090697 Z1672411 U-501034 V167750 close");

    cmds.Add("&1open rotary X92855 Y1090860 Z1676927 U-501147 V167112 close");

    cmds.Add("&1open rotary X92966 Y1091024 Z1681440 U-501261 V166475 close");

    cmds.Add("&1open rotary X93083 Y1091187 Z1685953 U-501375 V165837 close");

    cmds.Add("&1open rotary X93205 Y1091350 Z1690463 U-501490 V165200 close");

    cmds.Add("&1open rotary X93332 Y1091513 Z1694971 U-501604 V164563 close");

    cmds.Add("&1open rotary X93464 Y1091676 Z1699478 U-501718 V163925 close");

     

    SendCommands(rotComm, cmds, out res);

  12. Hi,

     

    I try to build/rebuild my project, but I get a very strange error (see picture).

    Does anybody know how to fix this problem?

     

    Firmware version: 2.0.2.14

    PPMAC IDE: 2.0.3.40

    CPU: PowerPC,460EX

     

    Thank you in advance.

    Build_error.thumb.JPG.7745e3457927968a70011ad76064faaf.JPG

  13. Dear Charles,

     

    first of all, thank you for your reply.

     

    in the following lines you can find a plc program I am trying to run:

     

    //defined in global definitions

    Global minPos

    Global maxPos

     

     

    open plc HomeTest

    // --------------------User Code Goes Here------------------------

    minPos = motor[1].MinPos

    maxPos = motor[1].MaxPos

    motor[1].MinPos = 0

    motor[1].MaxPos = 0

    //Motor[1].pLimits = 0 //disable limits

    Motor[1].HomeVel = POSITIVE_HOME_SPEED

    Motor[1].JogTa = JOGTA_VALUE

    Motor[1].JogTs = JOGTS_VALUE

    Motor[1].HomeOffset = HOME_OFFSET_VALUE

    Gate3[0].Chan[0].CaptFlagSel = PLUS_LIMIT_FLAG

    Gate3[0].Chan[0].CaptCtrl = CAPTURE_FLAG_ON_LOW_SIGNAL

    home 1

    while(Motor[1].HomeComplete != 1){}// Wait until Home Complete

    //Motor[1].pLimits = Gate3[0].Chan[0].Status.a //restore limits

    Motor[1].MinPos = minPos

    Motor[1].MaxPos = maxPos

    close

     

    The situation is :

    1) If I run with pLimits enabled, axis stops on the limit, post-trigger move does not happen.

    2)if I run with pLimits disabled , axis passes the limit and continues running until mechanical stopper.

     

    Could you tell me what is wrong?

  14. Does anybody know why post-trigger move is not running?

    What could be a reason for this?

     

    An axis is doing homing on positive direction to a limit.

    When the limit is reached, I want the axis go out of the limit.

    To do that I am using HomeOffset parameter of motor structure,

    but nothing happens, the axis just stops moving.

×
×
  • Create New...