Jump to content
OMRON Forums

Eric Hotchkiss

Omron
  • Posts

    558
  • Joined

  • Last visited

  • Days Won

    8

Posts posted by Eric Hotchkiss

  1. This would be a technical support issue.
    Please contact ODT's direct technical support with your full issue details at:
    ODT-Support@Omron.com

    You can also contact Omron TSG at "ia.techsupport@omron.com" but make sure to have PMAC or Delta Tau in the subject line for proper routing.

  2. It sounds like 1 is the real issue and 2 happens because encoder settings aren't properly saved.

    Can you please share...?
    Your IDE version, firmware version, and CPU type. (in the green bar at the top of the IDE)
    A screenshot of the encoder setup page.
    A screenshot of the motor setup topology page.

  3. This is possible. You could servo the motor to a position of zero and then write a position to Motor[1].MasterPos every servo cycle. There will be a delay of one servo cycle.

    I am including training slides on position following. Not everything applies when just writing to MasterPos directly. Offset/normal following mode applies, as well as the speed and acceleration limit features on the last slide.

    It would be best to do this from a custom servo routine attached to Motor 0 (written in C, pshm->Motor[x].MasterPos=Value;). 

    • Like 1
  4. We have a tool to remove vibration called a Trajectory Pre-Filter, sometimes referred to as vibration suppression. We used to have a demo where a linear motor had a block and spring on top. When vibration suppression was enabled, the block did not vibrate.

    Typically either a Low-pass or notch filter would be used. I would recommend to start with a Low-pass.

    The concept is discussed in the Power PMAC Users Manual and the tool to implement the filter in interactive position loop tuning.

    image.png.6789aff4f1802e2e6575b7b81273198a.png
    image.png.3df402ef67b4d7cb66e4d61bfab82c9b.png

     

    There is also a way to use MATLAB to generate a trajectory, but it's much more complicated and I don't know if it would have input shaping functionality.

  5. Firmware versions will typically be distributed directly to customers through Omron Distributors rather than being available for download for anyone. If you need to upgrade the firmware on your unit or obtain a specific other version, contact your Omron Distributor for more information. You may need to provide some information about the product so that the correct file and procedure are provided. These can be obtained by issuing "CPU", "TYPE", and "VERS" into the terminal window, so please be prepared to provide the responses to these commands, too.

    • Thanks 1
  6. I believe you are trying to set up Motor 4 as Gate3[1].Chan[0], even though the IDE expects it to be Gate3[0].Chan[3]. This was an issue in previous IDE versions, I am not sure exactly when it was corrected, but it seems to work fine in my IDE 4.6.0.14.

    If you do not wish to update the IDE, you will have to set the following variables. These can be dragged into the terminal from the editor window.

    Motor[4].pEncStatus=CK3WAX[3].Chan[0].Status.a
    Motor[4].pEncCtrl=CK3WAX[3].Chan[0].OutCtrl.a
    Motor[4].pCaptFlag=CK3WAX[3].Chan[0].Status.a
    Motor[4].pCaptPos=CK3WAX[3].Chan[0].HomeCapt.a

    To sync these settings with the IDE project, right click on the motor folder and select "Sync All Motor Settings (PMAC to Project)".image.png.c25ea1a97a436234a8418db5a35b196c.png

    If this is a sinusoidal encoder, you may also want to make sure the following settings are in affect:

    Arctangent Enabled:
    Gate3[1].Chan[0].AtanEna = 1

     

    With Standard Sinusoidal:
    Motor[4].EncType = 6

     

    With ACI:
    Motor[4].EncType = 7

  7. I am assuming you are using the IDE plot tool for settings and have it open.

    What firmware and IDE versions are you using? It's possible they we released far enough apart that gathered data does not upload correctly. There is a legacy mode that might be able to help if the firmware is too old for the IDE.

    Firmware version is visible in the top bar of the IDE or after the command "vers" is issued in the terminal.
    IDE version is visible in the top bar.

    It can also help to Start Gather, Stop Gather, Upload and Plot once manually first if the gather tools is misbehaving.

    What type of encoder is the motor using? Quadrature? Sinusoidal? Serial?

    Plotting velocity while moving and checking if Gate3[i].Chan[j].CountError is automatically set true (after manually setting it to 0) can help diagnose encoder issues.

  8. How do you want the speed of the rotary axis (C) decided?
    Should it be running at a constant speed?
    Should it slow down to maintain a constant overall speed when X and Z speed up?

    How do you want the speed of X and Z to decided?
    Should they follow along to draw on a rotating cylinder?
    Should they maintain a fixed combined feedrate (ignoring C)?

  9. Take a look at EncTable[n].PrevEnc. The name might be a little confusing, it's where the ECT output value is saved.
    EncTable[11].pEnc=EncTable[3].PrevEnc.a

    Because PrevEnc is an integer, this means a type 1 ECT entry (integer read) can still be used.

    Note that this register must be multiplied by EncTable[n].ScaleFactor to get the result you expect. This means you can set EncTable[11].ScaleFactor=EncTable[3].ScaleFactor to read both Motor 11 and Motor 3 positions at the same scale.

    I tried this with a digital tracking filter on my quadrature encoder and I needed EncTable[11].ScaleFactor = EncTable[3].ScaleFactor = 1/256 to read the filtered value correctly.

    Also note there is a section in the Power Brick ARM Manuals titled "Digital Tracking Filter" that calculates EncTable[n].index1, EncTable[n].index2, and EncTable[n].index4.
    https://assets.omron.com/m/661730249d3863b4/original/Power-Brick-LV-ARM-User-Manual.pdf

    EncTable[11].type = 1
    EncTable[11].pEnc = EncTable[3].PrevEnc.a
    EncTable[11].index1 = // From Brick PLC
    EncTable[11].index2 = // From Brick PLC
    EncTable[11].index4 = // From Brick PLC
    EncTable[11].ScaleFactor = EncTable[3].ScaleFactor // or maybe 1/65536
    Motor[x].pEnc = EncTable[n].a
    Motor[x].pEnc2 = EncTable[n].a
    

     

     

    • Like 1
  10. 5 hours ago, sdefisher said:

    I am running a real time PLC that is stuffing position data into registers that I can read from later. I'd like to filter the positions to take random out . My plan was to make a simple average. Is there a feature in PowerPMAC that can already do this for me, or do I need to roll my own?

    You can set an encoder conversion table entry to act as a digital tracking filter by changing the values of index1 and index2. A "motor" could then be set up to read the position and display it in the position window. It would probably look like below.

    EncTable[n].type = 1 // Single register read
    EncTable[n].pEnc = [HardwareLocation].a
    EncTable[n].index1 = (filter Ki) // For possible digital tracking filter
    EncTable[n].index2 = (filter gain) // For possible digital tracking filter
    EncTable[n].ScaleFactor = 1/65536 // For result units of LSBs
    Motor[x].pEnc = EncTable[n].a // Use result for position-loop feedback
    Motor[x].pEnc2 = EncTable[n].a // Use result for velocity-loop feedback

    You could also write your own code in PLC 0 (the RTI PLC) if you feel setting up a motor to read the position is too complicated.

    5 hours ago, sdefisher said:

    How fast is the RTI PLC operating (or how can I look it up on my machine?). I am reading the data around 2000 Hz, so I need to make sure my running average is a lot faster than that. 

    RTI is divided down from Servo based on Sys.RtIntPeriod.

    • Like 1
  11. Was this question about Sysmac Studio? If so your local Omron representative should be able to help.

    This sub-forum is meant for legacy Delta Tau products from multiple generations back, so I don't think it will get a lot of attention.

  12. Two EtherCAT bridge devices can be used to connect three PMACs as shown below.
    I left out the computer connections on eth0.
    The EtherCAT port on PMAC is sometimes labeled ETH1 and Sometimes labeled ECAT. I have labeled it "ECAT M" for ECAT Master.
    Arrows pointing to nothing are to daisy chain extra EtherCAT devices.

    image.png

     

    In this configuration, PMAC 1 must transfer data between PMAC 2 and PMAC 3. They do not talk directly.

    Once PMAC slave is available, it will be much easier to have multiple slaves together on the same network.

  13. I believe there was a miscommunication.

    PMAC and the NC HMI is fully capable of controlling a lathe system. The platform is very flexible and can be used to control almost any type of system, and the NC HMI ultimately doesn't get into kinematics or the mechanics of the specific hardware, so they can be adapted to control a lathe if it is set up. That said, our pre-made library contains a standard list of G Codes for use by a milling machine. We do not have a sample G Code library for a Lathe application for Power PMAC.

×
×
  • Create New...