Delta Tau GEO BRICK LV 사용자 설명서
Turbo PMAC User Manual
Turbo PMAC Computational Features
239
Servo Interrupt Tasks
Another timer register can be used to evaluate the computation load of the servo-interrupt tasks such as
the conversion table, interpolation, position/velocity-loop closure, and data gathering. This register,
located at Y:$000037, holds the number of timer increments elapsed from the beginning to the end of the
servo-interrupt tasks for the last interrupt.
the conversion table, interpolation, position/velocity-loop closure, and data gathering. This register,
located at Y:$000037, holds the number of timer increments elapsed from the beginning to the end of the
servo-interrupt tasks for the last interrupt.
If this time plus the phase-task time is less than the time between phase interrupts (X:$37 + Y:$37 <
X:$FFFF8C), then this is the actual time the servo tasks took. However, if the sum of these times is
greater than one phase cycle (X:$37 + Y:$37 > X:$FFFF8C), then the servo tasks were interrupted (at
least once) by phase tasks, and the time for the interrupting phase tasks must be subtracted out (see
example below).
X:$FFFF8C), then this is the actual time the servo tasks took. However, if the sum of these times is
greater than one phase cycle (X:$37 + Y:$37 > X:$FFFF8C), then the servo tasks were interrupted (at
least once) by phase tasks, and the time for the interrupting phase tasks must be subtracted out (see
example below).
When the net time for the servo tasks is divided by the product of the phase-interrupt period and the
number of phase-interrupts per servo-interrupt, the result is the duty cycle of the servo-interrupt tasks.
Note that certain servo tasks, such as data gathering, foreground motor data reporting, and even servo-
loop closure if Ixx60 > 0, do not have to be executed every servo cycle, so the duty cycle can vary.
number of phase-interrupts per servo-interrupt, the result is the duty cycle of the servo-interrupt tasks.
Note that certain servo tasks, such as data gathering, foreground motor data reporting, and even servo-
loop closure if Ixx60 > 0, do not have to be executed every servo cycle, so the duty cycle can vary.
Real-Time Interrupt Tasks
Two timer registers provide information on the loading of real-time interrupt (RTI) tasks such as PLC 0,
PLCC0, and motion-program calculations. The first register, at X:$00000B, holds the number of timer
increments from the beginning to the end of the RTI tasks for the last interrupt. The second register, at
Y:$00000B, holds the largest number of timer increments from the beginning to the end of a set of RTI
tasks since the last power-up/reset.
PLCC0, and motion-program calculations. The first register, at X:$00000B, holds the number of timer
increments from the beginning to the end of the RTI tasks for the last interrupt. The second register, at
Y:$00000B, holds the largest number of timer increments from the beginning to the end of a set of RTI
tasks since the last power-up/reset.
If these times plus the phase and servo-task times are less than the time between phase interrupts (X:$37
+ Y:$37 + X/Y:$0B < X:$FFFF8C), then these are the actual times the RTI tasks took. However, if these
times are greater than one phase cycle (X:$37 + Y:$37 + X/Y:$0B > X:$FFFF8C), then the RTI tasks
were interrupted (at least once) by phase tasks, and the time for the interrupting phase tasks must be
subtracted out. Also, if these times are greater than one servo cycle, then the RTI tasks were also
interrupted by servo tasks (see example below).
+ Y:$37 + X/Y:$0B < X:$FFFF8C), then these are the actual times the RTI tasks took. However, if these
times are greater than one phase cycle (X:$37 + Y:$37 + X/Y:$0B > X:$FFFF8C), then the RTI tasks
were interrupted (at least once) by phase tasks, and the time for the interrupting phase tasks must be
subtracted out. Also, if these times are greater than one servo cycle, then the RTI tasks were also
interrupted by servo tasks (see example below).
Dividing the latest net time for the RTI tasks by the product of the phase interrupt period, the number of
phase interrupts per servo interrupt, and the number of servo interrupts per RTI yields the duty cycle of
the RTI tasks. The duty cycle for real-time interrupt tasks can vary widely within an application, so it is
advisable to compute a running average to compute general loading.
phase interrupts per servo interrupt, and the number of servo interrupts per RTI yields the duty cycle of
the RTI tasks. The duty cycle for real-time interrupt tasks can vary widely within an application, so it is
advisable to compute a running average to compute general loading.
Total Interrupt Tasks
The total duty cycle for Turbo PMAC interrupt tasks can be calculated by summing the duty cycles for
the three types of interrupt tasks. In general, it is recommended that the duty cycle for phase and servo
tasks does not exceed 50%, and the duty cycle for all foreground tasks does not exceed 75%. These are
not strict limits – it is possible to exceed them, but the timing of all operations should be carefully
evaluated if these guidelines are exceeded.
the three types of interrupt tasks. In general, it is recommended that the duty cycle for phase and servo
tasks does not exceed 50%, and the duty cycle for all foreground tasks does not exceed 75%. These are
not strict limits – it is possible to exceed them, but the timing of all operations should be carefully
evaluated if these guidelines are exceeded.
Sample Monitoring Program
The following sample code can be used to monitor the total interrupt-task duty cycle:
M70->X:$FFFF8C,0,24
; Time between phase interrupts
M71->X:$000037,0,24
; Time for phase tasks
M72->Y:$000037,0,24
; Time for servo tasks
M73->X:$00000B,0,24
; Time for RTI tasks
P70=4
; 4 phase interrupts per servo interrupt
P76=16
; Length of filter for averaging duty cycle
OPEN PLC 17 CLEAR
P71=M71/M70
; Phase task duty cycle
P69=INT((M71+M72)/M70)
; # of times phase interrupted servo