Jump to content
OMRON Forums

dholden

Members
  • Posts

    28
  • Joined

  • Last visited

Posts posted by dholden

  1. I have the following rack system

     

    Slot 1 Turbo PMAC CPU

    Slot 2 ACC-5E

    Slot 3 ACC-24E2A (4-axis)

    Slot 4 ACC-24E2A (4-axis)

     

    My system will have 3 "remote" Macro servo axes and 8 "local" stepper axis. What I mean by local is that the steppers are controlled by the ACC-24E2A card NOT controlled over MACRO.

     

    I have successfully setup either:

    -All 8 Axes of stepper motion while removing the ACC-5E

    or

    -All 3 Axes of servo motion while removing the 2 ACC-24E2A cards

     

     

    When i plug all cards in i will see the encoder positions of the MACRO servo change if i turn the shafts, however if i try to command a move (i.e. "#1j=0") i get the error message:

     

    "Attempt to perform phase reference during move, move during phase reference, or enabling with phase clock error"

     

    Also by global status bit 7, Servo/Macro IC config error is set

     

     

     

    It would seem the cards are fighting whose clock to use (my best guess), so i

    set jumper E13 on the ACC-24E2A cards to jump 1-2 (receive phase and servo clocks). this however did not resolve the issue

     

    I also tried changing SW1 positions from

    6 5 4 3 2 1

    Card 1 on on on on on on

    Card 2 on on on on off on

     

    to

     

    6 5 4 3 2 1

    Card 1 on on on off on on

    Card 2 on on on off off on

     

    This also did not resolve the issue.

     

     

    The ACC-5E SW1 settings are currently

    4 3 2 1

    Card 1 on on on on

     

    What am I missing/what should I check

     

    Thanks

  2. S1 Dipswitch are all set to "on"

    This should make the base channel address $78400 (MARCO IC 0)

     

    This is the only other card in the rack right now (with the Turbo PMAC CPU) to help with troubleshooting

     

    Also, I can confirm that J1 jumper pins 1-2. I am using fiber for MACRO not the RJ45 connectors.

  3. I have an ACC-5E that was working fine with a Power PMAC but when i try to use it with a Turbo PMAC it does not accept configuration.

     

    Specifically when using the card in a rack system with a Trubo PMAC i cannot set any of the MACRO variables, for example:

     

    I6800=6527

    I6802=3

    I6840=$4030

    I6890=$90

     

    etc...

     

    When setting a value to these variables they simply return to a value of zero.

     

    Any idea why this would be the case?

    is there a difference between the Power PMAC card vs the Turbo PMAC card?

    Are there jumpers that need to be changed

     

    Any Ideas or suggestions would be appreciated

     

    Thanks

  4. I have an application that would be very easy to implement via electronic gearing, but with one catch, what I would gear to is moving when I want to apply the electronic gearing and I do not wan to expose my axis to uncontrolled acceleration as this gearing is applied.

    Is there a way to define (or just limit) the maximum acceleration an axis would undergo when enabling electronic gearing?

  5. In the Turbo PMAC the On-Line command for open loop mode was

    #1o0 for zero torque

    #1o50 for 50% torque

    #1o100 for 100% torque

    in a PLC the code would be

    cmd"#1o50"

     

    What is the command(s) for open loop mode in PPMAC (on-Line and in a PLC)?

     

     

    Also the max allowable torque was at register Ixx69, Output Command Limit/Scale, (0-32,767). What is the PPMAC equivalent?

     

     

    In the Turbo and you were in open loop mode you could changed the open loop magnitude via suggested M-Var xx79 (a value of 0-32,767 resulted in 0-100% torque). How is this accomplished in the PPMAC?

     

    Finally, what is the best variable to monitor if you are in open loop mode, int he Turbo it was suggested M-Var Mxx38?

  6. In my system I have a servo motor driving a set of rolls which feeds material and also a second encoder providing position feedback (the material at times slips slightly in the feed rolls).

     

    This setup is pretty straightforward, Ixx03 points to the encoder tracking the material position and Ixx04 points to the servo motor encoder.

     

    All is working well except there is one issue, if the encoder or rolls lose contact with the web material there is no following error so the servo driving the rollers will run away.

     

    What suggestions would there be for fixing this issue?

     

    Thanks

  7. I may have answered my own question, it looks like my error was correctly setting up Lookahead, which limits the max speed and acceleration of a move. Basically this controls how aggressively you 'jump' to the PMATCH position after changing following modes.

     

    If anyone feels there is something more I am missing on this please let me know.

     

    Thanks

  8. Below is the motion program for the above kinematics.

    When we want to enable tracking we simply set EnableHwJogBit and run the program (&1b3r)

    The line encoder runs slowly but constantly

     

    Since I see no change in L1 or C6 I assume PMATCH is actually doing nothing, causing the jumps. If I should see change in L1 and C6 what should I look to change? If I should not see change in L1 and C6 what should I be looking for from here?

     

    Thanks

     

     

    //Motion Program

    open prog 3

     

    Linear

    Abs

    F 1 // Set Feed Rate to 1inch/sec

    Ta 0.250 // Set accel time to 0.250 sec

     

    X 2.0 // Move to position 1

    DWELL 0

     

    EncoderPosCaptured = Motor[3].ActPos // Get Current Line Encoder Position

    KinematicsMode = LineFollowingMode // Enable Part Belt Tracking Mode

    DWELL 10 cmd"&1PMATCH" DWELL 10 // Do ths every time you change kinematics modes

     

    while(EnableHwJogBit == 1){ // Track with Line Encoder

    X 2.0

    // ******SMALL JUMP HERE******************************************************************

    }

    KinematicsMode = NormalMode // Disable Line Encoder Tracking Mode

    DWELL 10 cmd"&1PMATCH" DWELL 10 // Do ths every time you change kinematics modes

    // ******LARGE JUMP HERE******************************************************************

    X 0 // Move back to home

    DWELL 0

    close

  9. With forward an inverse kinematics setup using only X-Axis for simplicity I should see C6 and L1 update when watching online right? they both stay at Zero and i am getting the classic Kinematics 'jump' when moving from 'Line Following Mode' to 'Normal Mode'

     

    suggestions?

     

    Below is my setup

    Motor 1 is my X-Axis

    Motor 3 is my belt tracking encoder (line encoder)

     

     

    // Global Definitions

    global KinematicsMode;

    global NormalMode = 1,LineFollowingMode = 2;

    global EncoderPosCaptured, TrackingOffset;

     

    #define KinPosMotor1 L1 // Motor Position in Counts

    #define KinPosAxisX C6 // Coordinate System Position in Inches

    #define KinAxisUsed D0 // See table below for examples or page 472 of the Users Manual

     

    // Coordinate system definition

    &1 // Select C.S. #1

    #1 -> I // Use Kinematics for Motor 1

    Coord[1].SegMoveTime = 2 // 2 mSec segmentation period (required to be > 0 for kinematics)

     

    // Forward kinematics

    &1 // Address Coordinate System 1

    open forward // Open Forward Kinematics Buffer

    KinAxisUsed = $40 // Specify X axis used in inverse kinematics

    if(Coord[1].HomeComplete){ // Have all axes in this coordinate system Completed Home?

    KinPosAxisX = KinPosMotor1 / 20320; // X-Axis Tool Tip Position Calculation

    }

    else { // Not valid; halt operation

    KinPosAxisX = sqrt(-1); // Return "not-a-number“ for X axis

    }

    close // Close Forward kinematics buffer

     

     

     

    // Inverse kinematics

    &1 // Address coordinate system 1

    open inverse // Open buffer, clear contents

    if(KinematicsMode == NormalMode){ //Check if we are in 'Normal Mode'

    KinPosAxisX = KinPosAxisX; // Inverse kinematic equations for NO Tracking

    }

    if(KinematicsMode == LineFollowingMode){ //Check if we are in 'Line Following Mode' and Apply the Tracking Offset

    //Get the Current Line Encoder Position, Subtract from the Captured Position, and Convert to Inches

    TrackingOffset = (Motor[3].ActPos - EncoderPosCaptured) / 53333;

    KinPosAxisX = KinPosAxisX + TrackingOffset; // Apply TrackingOffset to the X-Axis of the Coordinate System

    }

    KinPosMotor1 = KinPosAxisX * 20320; // Scale Position to Counts

    close

  10. I have had good success with "Tracking a Moving Object" in the Turbo PMAC and I wanted to know if this document was for the Power PMAC. If not where I would find the Power PMAC version of the example.

     

    I notice there are no PMATCH commands as you change following modes. in the Turbo PMAC you typically needed something like this:

     

    KinematicsMode=FollowingBelt

    DWELL 10

    cmd"PMATCH"

    DWELL 10

     

    Is PMATCH not needed in the PowerPMAC for this application?

     

    Even when i do find a few sparse examples of PMATCH in the Users Manual it is not preceded and followed by DWELL commands in the motion program, is this correct?

     

    Thanks

    Tracking a Moving Object.pdf

  11. I have run across a scenario that seems to come up rather regularly and I would appreciate any thoughts on what I might be missing.

     

    I have been in situations where I have a servo drive/motor pairing that I could configure in Velocity or Torque mode. 9 times out of 10 I use Torque mode because I am trying to position a servo on a ball screw axis or something similar. This makes total sense and I understand that the motion controller is handling speed and position in this case and the drive is only closing the current loop.

     

    I do, from time to time, have cases where i don't care to position an axis and simply need to run at a given velocity, a spindle motor axis for example, and it is here that I wonder which mode is best. Perhaps the better way to put it is:

     

    Are there any reasons NOT to be in Torque mode when running the axis at a constant velocity?

     

    The only disadvantage I have seen so far is that if my tuning is off I could have ever-increasing following error that eventually leads to a fatal following error situation. Tuning in general seems more sensitive in this application, as loads vary much more in a cutting application than a fixed inertial load with known accelerations might.

  12. So how does one designate which items are "saved" and which items are "fsaved"? in other words, how do create the shorter list of "fsave" variables vs creating the longer list of "save" variables since both are taken from the "pp_custom_save.tpl" file?
  13. When using the Turbo PMAC I would setup an M-Var to point to a ModBus TCP bit like below, How do I do the same thing with the Power PMAC?

     

    ;Setup for General Purpose Bits (a value of 0 or 1)

    ; Modbus adresses 400001:00 to 400016:15 (256 total available regiters)

    ; M-Vars 3301 to 3556

    M3301->X:$10780,0,1 ; Modbus 400001:00

    M3302->X:$10780,1,1 ; Modbus 400001:01

    M3303->X:$10780,2,1 ; Modbus 400001:02

    M3304->X:$10780,3,1 ; Modbus 400001:03

    M3305->X:$10780,4,1 ; Modbus 400001:04

    M3306->X:$10780,5,1 ; Modbus 400001:05

    M3307->X:$10780,6,1 ; Modbus 400001:06

    M3308->X:$10780,7,1 ; Modbus 400001:07

    M3309->X:$10780,8,1 ; Modbus 400001:08

    M3310->X:$10780,9,1 ; Modbus 400001:09

     

    M3311->X:$10780,10,1 ; Modbus 400001:10

    M3312->X:$10780,11,1 ; Modbus 400001:11

    M3313->X:$10780,12,1 ; Modbus 400001:12

    M3314->X:$10780,13,1 ; Modbus 400001:13

    M3315->X:$10780,14,1 ; Modbus 400001:14

    M3316->X:$10780,15,1 ; Modbus 400001:15

    M3317->Y:$10780,0,1 ; Modbus 400002:00

    M3318->Y:$10780,1,1 ; Modbus 400002:01

    M3319->Y:$10780,2,1 ; Modbus 400002:02

    M3320->Y:$10780,3,1 ; Modbus 400002:03

  14. When using the Turbo PMAC "Save" and "Fsave" did very different things (in my opinion) than in the Power PMAC. This is not necessarily a bad thing, in fact I like some of the changes, but I want to be sure I am understanding what I think I am seeing.

     

    First it appears that ANY variable I woudl want saved with a "Save" or "FSave" command needs to be listed in the "pp_custom_save.tpl" file, is this correct?

     

    It also appears that if a variable is removed from here and it had a value saved before the value woudl be reset to zero on restart or $$$, is this correct? For example if P100 was in the file and when saved had a value of 1234 the value would be retained on restart, but if it was removed and the controller restarted it would be reset to zero.

     

    I actually really like this feature because previously I would find myself creating a long list of variables to reset and frankly it was easy to forget to include one. I find it much easier to track what I do NOT want to be reset.

     

    Finally, it is a bit unclear to me what the difference between using "Save" and "FSave" is on the Power PMAC. In the Turbo "Save" saved everything and took some time to execute (a couple of seconds), whereas "FSave" was fast (a few mSec) but only saved something around 100 variables. I don't know that I have a way to see any difference in the Power PMAC in save times (although I assume there is), and I don't see any restrictions on the number or variables to "FSave".

     

    Am I missing something on the speed of saving and the restrictions on how many variables I can "FSave" and am I misunderstanding how the Power PMAC saves in general?

     

    Thanks

  15. I have a variable (P4100) that I need to read the bits of and assign to variables. I was thinking it would work like this:

     

    //Digital Inputs

    PTR Input01->P4100.0.0;

    PTR Input02->P4100.0.1;

    PTR Input03->P4100.0.2;

    PTR Input04->P4100.0.3;

     

    However clearly this is not the correct approach, how would one do this correctly.

     

    By the way the Inputs are read from a ModbusTCP variable into the local P-Variables like so:

     

    cmd"ModbusRegisterRead 0,0,4,P4100"

     

    Which is why i am not simply addressing the corresponding I/O card Addresses.

  16. I have been looking over the ellipse example in the circular interpolation.pdf file but I have some questions about it. First the example talks about the use of a NORMAL command but this command is not listed in the example program. Second the example has a couple of blocked out areas in the example that i am guessing are important to the example.

     

    Does anyone else have any examples on how to draw ellipses?

     

    Thanks in advance

    Circular Interpolation.pdf

  17. The controller is a Turbo PMAC in a rack, and no there is no PC close by. I have considered using a serial-to-ethernet converter to do something like what you are suggesting.

     

    I guess all of this is more motivation to learn the Power PMAC as this would be very do-able with it I am sure.

  18. I have successfully done something similar using VB.Net and the PCOMM server library.

     

    Having a separate PC polling all the time can get a bit tricky though. For example you have issues with if the controller was on or off as well as if it went off unexpectedly, etc.

     

    A good suggestion, just wondering what my other options might be.

  19. Has anyone needed to do any data logging in the PMAC and then push the data up to a file or better yet a SQL server? I have a process that i need to monitor at low frequencies (~once per second for half a dozen variables) and then push or pull data from the controller.

     

    Just wondering how others have done this in the past.

     

    Thanks

×
×
  • Create New...