Jump to content
OMRON Forums

xiaomupeng2009

Members
  • Posts

    27
  • Joined

  • Last visited

Posts posted by xiaomupeng2009

  1. Can the turbo PMAC2 use the c++ code to write the servo algorithm and use the download function to the card ?if i use the Windows library function,the pamc can recognition it ?
  2. when i use the PLC to monitor the PID parameter,everytime i open the PMAC ,The pid parameter is return to the PID parameter which i monitored.if I want to change the PID parameters,i have to send a command "disable plcc16"to the terminal window,I use the "open plc16 clear"command to clear the plc ,but it can't be cleared!

    so in this situation,everytime i have to send a command"disable plcc16"to the terminal window before i want to change the pid parameters!this is the normal situation?

  3. thank you!but I also do not know the format of m166->X:$00009D,0,24,S,if i according to the definition of the above table.it should be the m166->x:$00009D.

     

    Motor present desired velocity (X-register units 3/[ixx08*32] cts/msec at %100; Y is fractional) .what is it the mean of X-register units 3/[ixx08*32] cts/msec at %100; Y is fractional? can you take an example?

     

  4. (1) X:$000x9D/1D ; Motor present actual velocity (unfiltered)

    (1/[ixx09*32]cts / [ixx60+1] servo cycles)

     

    m166->x:$00009D,0,24,S ; motor actual velocity

    they are all point to the actual address?who can tell me the different!thank you?

    what is the "1D"?

     

    (2) D:$000x86/06; Motor present desired velocity (X-register units

    3/[ixx08*32] cts/msec at %100; Y is fractional)

    when i use the m167->D:$000086 to show the desired velocity,why the display speed is vary a lot with the velocity of program(for example F6 in program)?

    what it is relationship of D:$000X86/06 and the command velocity? how can i visit the command velocity like visit the actual velocity?

     

     

  5. The "OPEN SERVO" feature uses the PLCC compiler so the messages are the same as in compiling a PLC (this is very much like a PLCC0). There is an error in your code.

     

    The following should be one line of code not two.

    This is: DACOUT = FLIMIT(ITOF(Ix30)*K16 * ( FE + K128 *(ITOF(Ix32) * DVEL + ITOF(Ix35)

    * (DVEL - PDVEL) - ITOF(Ix31) *AVEL) + IPOS), ITOF(Ix69))

    This should be: DACOUT = FLIMIT(ITOF(Ix30)*K16 * ( FE + K128 *(ITOF(Ix32) * DVEL + ITOF(Ix35)* (DVEL - PDVEL) - ITOF(Ix31) *AVEL) + IPOS), ITOF(Ix69))

     

    This is not a typographical error but a result of "cut and paste" putting a character in the middle of the line.

     

    Once you make this correction it should download without errors.

     

    YES !thank you!but i want to know that the PID parameters address that M variables visit and L variable visit is the same address? for example,X:$000X9F/1F is the address of IX33,but in here,the L6->X:(R1-$11).is I133.they are represents the same address of I133?

    or they are some different?

  6. #define K16 0.000015259 ; Constant of 2^-16

    #define K128 0.0078125 ; Constant of 1/128

    #define K23 0.000000119; Constant of 2^-23

    #define Ix08 L1

    L1->Y:(R1-$27)

    #define Ix09 L2

    L2->Y:(R1-$14)

    #define Ix30 L3

    L3->Y:(R1-$17)

    #define Ix31 L4

    L4->X:(R1-$1E)

    #define Ix32 L5

    L5->X:(R1-$21)

    #define Ix33 L6

    L6->X:(R1-$11)

    #define Ix35 L7

    L7->Y:(R1-$1D)

    #define Ix63 L8

    L8->Y:(R1-$11)

    #define Ix69 L9 ; Note that this is 24-bit value, not 16

    L9->Y:(R1-2)

    #define STATUS L10

    L10->X:(R1+0)

    #define IPOS F1 ; Integrated position error register

    F1->L:(R1-$12) ; Automatically zeroed on motor open loop

    #define PDVEL F2 ; Previous desired velocity register

    F2->L:(R1-$29) ; Automatically zeroed on motor open loop

    #define AVEL P0 ; Floating-point actual velocity

    #define DVEL P1 ; Floating-point net desired velocity

    #define FE P2 ; Floating-point following error

    #define APOS P3 ; Floating-point actual position

    #define DPOS P4 ; Floating-point net desired position

    #define DACOUT P5 ; Floating-point commanded output

    OPEN SERVO CLEAR

    COPYREG P0 ; Copy Motor AVEL,DVEL,FE,APOS,DPOS to float P0..4

     

     

    If (STATUS&$12000 = $12000 Or STATUS&$10000 = 0) ; Test Ix34 mode

    IPOS = FLIMIT(ITOF(Ix33)*FE*K23+IPOS, ITOF(Ix63)*ITOF(Ix08)*2)

    ; Scale Ix63 to include Ix08

    EndIf

    DACOUT = FLIMIT(ITOF(Ix30)*K16 * ( FE + K128 *(ITOF(Ix32) * DVEL + ITOF(Ix35)

    * (DVEL - PDVEL) - ITOF(Ix31) *AVEL) + IPOS), ITOF(Ix69))

    PDVEL =DVEL ; Store for next cycle

    RETURN(FTOI(DACOUT))

    CLOSE

     

     

     

    this is a program in the instruction,when I put it into the software to run,it show the error that " PLCC illegal command or format string",why?

    this is not a plc program,why it show PLCC illegal? the address of the PID parameter in normal algorithm can use it in the user defined algorithm?wish for your detail instruction!thank you!

  7. If I want to detect the change of the load of the linear motor,for example ,i want to detect the velocity,I can use the M parameters to visit the register,then i can change the PID parameters according to different velocitys. but how can i know the change of the load and how to detect the change of the load? thank you?
  8.  

    parabolic velocity

    when I choose the "parabolic velocity "to adjust the PID, what is the mean of the step size and step time?if i want to make the motor reach

    perfect performance,how do i choose the step size and step time?

     

  9. I want ask someone who can give me some material about the pmac programming?the pmac user manual is not detail!

    for example

    OPEN SERVO ; Following lines to be compiled

    CLEAR ; Not necessary, but acceptable

    COPYREG P30 ; Copy following error into P32

    P35=P32*I(ITOF(MTRNUM*100+30))/65536 ; Multiply by gain, scale

    RETURN(FTOI(P35)) ; Make an integer and output

    CLOSE

    on above,there is nowhere in the manual that tell about the "FIOI AND THE ITOF " if i want to konw more about the programming ? where can i reference?

     

     

     

     

  10. Xiaomupeng,

     

    There is no automatic self-adjustment algorithm in the Turbo PMAC firmware, such as adaptive control. In contrast, Power PMAC does have such an adaptive control algorithm in firmware.

     

    However, if you have enough controls knowledge, you can implement your own PLC program to change your controller (PID) gains dynamically. Some PMAC-users use the technique "gain scheduling," some use "adaptive control," etc. The PLC would just modify the gains depending on the "state" or situation the PMAC is encountering. You can also use the "User-Written Servo Algorithms" in an unused motor whose number precedes the motor whose gains you want to vary. This user algorithm can read inputs and vary the gains of subsequent motors at the servo rate. See page 169 of the Turbo PMAC User Manual.

     

    What specifically do you need to do for your application? If you give us more specific details, we can help you better.

     

     

     

    i want to use the turbo PMAC to control the linear motor,but influence of the load is different in different time, it is to say different situations have different PID parameters, so i want the PMAC can turning the PID parameters in itself! thank you !

     

    the PLC program can edit the pmac adaptive control algorithm ?

    I have used the PLC to change the PID parameters before,but the pid parameters is have adjusted by myself ,then i use the PLC program to change the PID parameters!!! thank charles very much!!!

     

  11. when PMAC2'S digital current loop is used, is it to say that the current loop is closed in the pmac?if it is like that,so what the driver will do ? the driver will not close any loop!!!thank you ?
  12. encoder line count (um) ?

    electrical cycle (mm) ?

    phase position resolution ?

     

    I want to ask what are those meaning for linear motor? please tell the detail! thank you! My grating resolution of my linear motor is 50nm,it is to say that 1VM=20cts!

  13. xiaomupeng2009,

     

    When you do a step move, by default the tuning software is showing the commanded position and actual position of the motor. You can also select to see the "Servo Command" on the right hand vertical axis. This will help you identify an acceptable step size.

    The servo effort shows how the PMAC is responding to the step command by commanding different torque/force command to the amplifier.

     

    The size of the step and the time to achieve that is concluded as the bandwidth of the system. If you perform an auto tuning, the Tuning software will give you a conservative bandwidth. When you try to tune your motor manually, try to get to 4 times the bandwidth that auto tuning came up with. (bandwidth is shown as natural frequency under the step result graph)

     

    Through out the step tests, you have to make sure that your servo command is not being saturated for a long time during the step move. Although by definition, you'll have an instantaneous saturation in servo command at the beginning of the step move, if your Kp is too high or step is too big, you'll have saturation.

     

    A step size for a rotary motor is about 1/2 revolution and for a linear motor, is about 1/4 to 1/2 of electrical cycle length.

     

    Regards,

    i am sorry! i want to what is it electrical cycle length?can you tell me the detail? thank you!

     

     

  14. when I adjust the pid parameters, what is it relationship between the step move size and time and the motor accuracy? because different step move size and time will have different PID parameters for the same motor! how can i konw which move size and time will be the most suitable?
×
×
  • Create New...