Jump to content
OMRON Forums

kandauru

Members
  • Posts

    109
  • Joined

  • Last visited

Posts posted by kandauru

  1. Hello,

     

    below you can see a piece of source code for position reading:

    /****/

    if (commInThread.SendCommand("#1.." + MAX_AXIS.ToString() + "p", out reponse) == Status.Ok)

    {

    try

    {

    string[] words = reponse[0].Split(delimiterChars);

    for (int i = 0; i < MAX_AXIS; i++)

    {

    if (i == WIndex)

    {

    float Wpos = float.Parse(words);

    axisPositions = Wpos%360inpulses;

    }

    else

    {

    axisPositions = float.Parse(words);

    }

    }

    }

    catch (Exception /*ex*/)

    {

    DebugPrint("DTDEBUG::UpdatePosLoop: error while reading position from the controller\n");

    }

    }

     

    In case I move modulo operation to PLC program, the "p" command will return the value without modulo.

    So, I'll be forced to make changes for special position reading of W axis in the software. May be you know the better

    solution for such a case? Thanks!

  2. Hi again,

     

    there are 3 motors connected to same Gate3[0]. From Power PMAC IDE, I enable one of them and jog it, everything is good, if I enable any other motor and jog the same motor, the strange noise is coming from the motor.

    ( in both directions ). It happens like this with two others too. We have have checked electrical wiring and found that it is OK.

    Any idea why it might happen?

     

    Thank you in advance.

  3. Hi again,

     

    more than one year ago I asked this question, but the problem is still there. I need to reset the position of the rotary axis when it reaches 360° to 0° and so on.

    Until today I have been doing that in the software on PC side using the modulo. Our application is testing disks with different resolutions. It might be 1 degree and less. It is very critical to have data every scan resolution. With modulo sometimes we missed data in the areas where the reset was done. So, how can I implement it differently? I would like to make it as PLC module that monitors the position and when Home sensor is high, the position becomes 0. The motor is revolving when I want to do that. The sensor is connected to Gate3[0].Chan[0].HomeFlag. On PC side I execute the "#1p" command the get the current position.

     

    Is it possible to make something like this:

    open plc RESETPOSITION

    if (Gate3[0].Chan[0].HomeFlag == 1)

    Motor[0].ActPos = 0

    close

     

    I tried to reset ActPos, it does not work, so what does?

  4. I had problems with plotting and tuning because the Windows 10 firewall blocked the DeltaTauGatherProgram. Once I allowed it through the firewall everything worked.

     

    Did you have the filtered PWM or true DAC outputs on your Power Brick Controller and what do you have on the CK3M? The gains will be different if you change between the two types.

     

    We have true DAC outputs on all our controllers.

  5. Hi,

     

    I have changed it to $F, but when I try it manually with Gate3[0].Chan[0].EquWrite=1(3), it worked for the first channel only. It means

    Gate3[0].Chan[1(2,3)].EquWrite = 1(3) didn't work. I didn't get any hardware output.

    I tried to do that when all other channels had Gate3[0].Chan[j].EquOutMask=0 and also with their defaults.

     

    Can you give me an example how to initialize this?

  6. Hi,

     

    we have upgraded our system with CK3M controller (previously we had Power Brick controller). The main problem is that we have to tune all motors again, but they are same, why?. All parameters (Kp, Kd, Kvff and others) were dramatically changed.

    Kp parameter looks limited to 4-7. if I try to increase it, the plot gets very strange shape. A new UI for tuning motors (I use Power PMAC IDE 4)does not work! Basic tuning feature starts running, but never stops.

    Our problem - we cannot reach same behavior of motors with Kp=4. Is there something "undocumented"?

  7. Hi,

     

    we have started to use the new Omron CK3M controller with Power PMAC IDE 4.

    There are 8 motors connected to the controller, but only first output (Gate3[0].Chan[0] and Gate3[1].Chan[0]) is wired for hardware output pulse.

    So, for what I want to ask we have the following:

     

    Gate3[0].Chan[0] - motor 1 (X)

    Gate3[0].Chan[1] - motor 2 (Y)

    Gate3[0].Chan[2] - motor 3 (Z)

    Gate3[0].Chan[3] - motor 4 (W)

     

    I want to have position compare feature working for each of them, but separately.

    I know there is a flag Gate3[0].Chan[0].EquOutMask, but I did not understand how it works. Please, explain with examples.

     

    Right now, I can see the hardware output signal coming out from motor 1 only. For this I need to set all Gate3.Chan[j].EquOutMask to 0, except the first one (Gate3[0].Chan[0].EquOutMask=1).

     

    Thank you in advance.

  8. Then, how can I implement a hardware reset of axis position every 360 degrees? There is a sensor and it gets signaled every 360 degrees. At this moment I have to reset axis position to 0. Thank you in advance.
  9. Hi,

     

    I am trying to implement a "rollover" mode for my rotation table. I am doing the following:

    &1

    #1->Z

    #2->Y

    #3->U

    #4->V

    #5->X

    #6->CC 'rotation table

     

    Coord[1].FeedTime = 1000

    Coord[1].PosRollover[5] = 360

     

    All motors are homed and I make jog, rel, abs moves. I don't see that position of CC

    is running between 0-360 degrees. It is continuously grows up in + or - direction.

    What I am doing wrong? Please, advise.

     

    I am using PPmac IDE v.2.2.0.39, firmware - 2.3.2.5, CPU:PowerPC, 460EX, Type: UMAC

  10. Hi again,

     

    according to what I understand from the example above, we cannot run

    the system with block rate more than 1000 blocks/sec, because Coord[x].SegMoveTime will be 1 msec in this case and it is already very critical for CPU. Am I right?

  11. Hi,

     

    I did it exactly according to the book, and it was working for long period of time successfully, but recently

    the direction of the trajectory has been changed from Y to X and the problem started coming.

    Coord[x].SyncOps=16384.

    Could you explain, please, what does it mean - block rate to in attached example.

    There are a speed and an acceleration in our system as desired parameters.

    LookAHead.jpg.b1826c737bd4830969648797859d6474.jpg

  12. Hi,

    Just let me know if am I right.

    there are always two lines like the following - " M1==3 X4266.9636 XX5038.4409 Y1712.6760 YY-1584.7391 Z1295.9240 ZZ1390.4039 U-189.4451 UU-189.4451 V96.8888 VV-83.1111"

    per resolution((for M1==3 and M1==1)). Our current and regular resolution is 2 mm.

    The speed is 100 mm/sec and the distance, let it be 1000 mm. So, there will be distance/resolution*2 = 1000 lines

    are ready to be loaded into rotary buffer.

    To run it with the given speed, I need at least 100 blocks be ready at start position (loaded into rotary buffer).

    Is it correct? What should be a size of lookahead buffer for this example?

    What should be Coord[x].SegMoveTime (right now is 5)?

    I am still facing the problem with unexpected stops.

  13. M-variable defined as: M1->Gate3[0].Chan[0].EquWrite.

    There are about 900 lines starting with M1==1 or M1==3 and then positions of motors.

    In most cases it's running well, but there are couple of lines where it happens.

  14. Hi,

     

    Now it looks much better, but sometimes I am getting the following error message in PPMAC Error window:

    CoordExecStatus[1] = Stopped on Illegal Synchronous Assignment: prog0:0:M1==3 X4281.42145216373 Y1709.91811048309 Z1126.69892968668 U-188.953080151833 V92.6215471326753 @ 11/8/2017 11:02:18 AM

     

    Can somebody explain, please, what could be a reason for it?

    This error leads to unexpected stop of the motors too.

  15. Hi All,

     

    there is system with 10 axes. When I try to move one axis or more in jog, rel or abs mode, sometimes the movement unexpectedly stops. Also it happens in automatic test

    where I use rotary buffer and lookahead functionality. My question - is there any way to know what was the reason for unexpected stop?

    I used to look at Coord[x].ErrorStatus value, but in my case it is not informative.

     

    Please, advise.

×
×
  • Create New...