TwinCAT NC Configuration

19
www.infoPLC.net TwinCAT NC Configuration NC Tasks The NC-System (Numeric Control) has 2 tasks 1 is the SVB task and the SAF task. The SVB task is the setpoint generator and generates the velocity and position control profiles for the entire move of all drives according to the current position, command position, maximum velocity, acceleration and deceleration rates, and jerk of each drive. This task is typically run every 10ms and a change in any of these parameters will result in a new profile for the entire move every 10ms. As such if a drive is at the target position it will still be calculating profiles to hold it at that target position. The SAF Task is the control loop that issues and adjusts the position, velocity or torque to the drive. The default control loop is as follows: This task is typically run every 2ms (though it is possible to go as fast as 100us if the network and drive can handle the data that fast) This task is typically operating on drives

Transcript of TwinCAT NC Configuration

Page 1: TwinCAT NC Configuration

www.infoPLC.net

TwinCAT NC Configuration

NC Tasks

The NC-System (Numeric Control) has 2 tasks 1 is the SVB task and the SAF task.

The SVB task is the setpoint generator and generates the velocity and position control

profiles for the entire move of all drives according to the current position, command

position, maximum velocity, acceleration and deceleration rates, and jerk of each drive.

This task is typically run every 10ms and a change in any of these parameters will result

in a new profile for the entire move every 10ms. As such if a drive is at the target

position it will still be calculating profiles to hold it at that target position.

The SAF Task is the control loop that issues and adjusts the position, velocity or torque

to the drive. The default control loop is as follows:

This task is typically run every 2ms (though it is possible to go as fast as 100us if the

network and drive can handle the data that fast) This task is typically operating on drives

Page 2: TwinCAT NC Configuration

www.infoPLC.net

that are controlled in Velocity Command mode. So it will issue new velocity commands

to the drives every SAF cycle. It adjusts the command velocity based on command

position, current position and the control parameters. If the drive is in Position control

mode, such as many SERCOS axis, this control loop is disabled, and the positions

generated by the SVB task are directly output to the drive. It is then up to the drive to get

the motor to the specified position, and the drive will fault on any commands it is unable

to perform.

SAF Task Settings SVB Task Settings

The SVB task should be set up to run once for every 5 cycles of the SAF task. If the SAF

task has a 2ms update rate, the then SVB task should have a 10ms update rate. If the

SAF task has a 1ms update rate of the drives, the SVB task should be set for 5ms

NC Image

The NC-Task 1-Image is simply a listing of all the variables that are available in the NC-

Task.

The Axis heading lists all Axis that are controlled by the NC-Task.

Each axis has several parameters that may be specified in the System Manager or may be

provided and updated by the PLC Program code.

Page 3: TwinCAT NC Configuration

www.infoPLC.net

Each Axis has an encoder, a drive, a control loop and some inputs and outputs associated

with it.

Axis General Properties

The General tab indicates the type of drive, the name of the axis, the axis ID number,

and a checkbox for the creating the symbol table entries for the axis (typically for Scope

View)

The Settings Tab

The settings tab indicates what type of drive it is, which physical drive it is connected to

(if it is a direct digital connection) and what the units are. The drop down list allows

mm, in, degrees, and grad, if the desired unit is not present it can be typed in, for example

ft, all command values to that drive must now be specified in ft/second. The display

(only) units are what units will be displayed for example mm/min for speed. The

command values must still be entered in mm/second. (these are usually left unchecked)

Page 4: TwinCAT NC Configuration

www.infoPLC.net

Axis Types

Standard (mapping via Encoder and Drive) is for drives where the feedback is coming

from the drive to a fieldbus connected encoder module and command values are being

sent to a fieldbus connected analog module. The other connections are direct digital

connections where digital feedback values and digital command values are passed

directly into the drive through a fieldbus connection on the drive itself.

The Global Tab

The global tab contains the basic drive parameters, the Maximum Velocity of the drive,

Manual Velocity (Fast) is the fast jog, Manual Velocity (slow) is the slow jog.

Calibration velocities (homing). The Rapid traverse velocity and Velo Jump factor are

used for G-Code Controled Interpolated machines. Soft Position Limits and enables of

those soft position limits. Lag Distance Monitoring, when enabled is the maximum

allowable difference between the set position and actual position. Target position

monitoring when enabled is the amount of time the drive must spend in the position

window before the move is declared finished, so with these values the drive must be

within +/- 1mm of the target position for 20ms before the move will be declared finished.

The In-target time out when enabled is the maximum amount of time the drive will spend

hunting the target position, so if a drive enters the target window but cannot stay within

+/-1mm for 20ms the move will be declared finished and the timeout flag will be set.

This is to prevent a drive from continually hunting a position it cannot maintain. There

Page 5: TwinCAT NC Configuration

www.infoPLC.net

are more settings that are available if the Expert Mode is selected, but should not be used

unless it is know what they are used for.

To change a parameter double click the value of the parameter, type in the new value and

hit enter (the value will not be accepted if enter is not pressed) an asterisk will appear to

let you know the value has changed but is not yet being used, the value must be

downloaded before the change will be valid. It is possible to change many values, select

them and download them all at once. Some parameters are not changeable while the

drive is enabled. If the PLC program has changed the value, it must be uploaded from the

controller to see what the current value is, good practice is to select all an upload before

changing any parameters.

The Dynamics Tab

This tab is used to set the dynamics of the drive, how fast it will accelerate and decelerate

to reach maximum speed. If the values are known they can be entered directly, if they

are not known it is possible to calculate them by using the Maximum velocity and time to

accelerate to and decelerate from the maximum velocity. The characteristic curves are

for how hard the drive accelerates it is much easier on the drive and very nearly as fast to

accelerate smoothly and much easier on the motor. Note if commands are issued at less

than the maximum velocity the drive will accelerate at the specified acceleration rates,

not the acceleration time, so if a value of 1200 mm/s is use it will take approximately

150ms to reach that speed not 300ms.

Page 6: TwinCAT NC Configuration

www.infoPLC.net

The Online Tab

The online tab is a great tool for testing moves, the drive can be enabled, and run without

a PLC program running as well as to see the values of current moves. The online

position is shown, setpoint position is the final target position. Lag distance is the

difference between the immediate commanded position and the actual position. Note with

SERCOS axis in position mode the lag distance is artificial in that it is only the delay of

the network feeding back the actual position in reference to the current command position

and can be calculated by Actual Velocity *3 NC Cycles. The override % is a direct

override on any move command, so if a 50% override is set, all moves will be performed

at 1/2 the of the commanded velocity, not 1/2 of the maximum velocity.

F1 – – is Manual Velocity (Fast) in the negative direction. (Negative Jog Fast)

F2 – is Manual Velocity (slow) in the negative direction. (Negative Jog Slow)

F3 + is Manual Velocity (Slow) in the positive direction (Positive Jog Slow),

F4 + + is Manual Velocity (Fast) in the forward direction (Positive Jog Fast).

F5 button will issue a go to the value set in the target position at the velocity set in the

Target velocity.

F6 Stop stops any move.

F8 Resets any soft errors (the drive itself may have to be reset as well.

F9 performs a MC_Home command. Warning: If the Home Switch is directly wired into

the drive this command will not work and the drive will run in the negative direction until

it runs into a physical stop.

Page 7: TwinCAT NC Configuration

www.infoPLC.net

The Encoder

The encoder has several settings pages associated with it.

The General tab

This tab contains the name of the encoder, the ID number Axis that the encoder is

associated with and a check box for creating a symbol listing of all the encoder

parameters (usually used with Scope View)

NC-Encoder tab

This tab is used for picking the type of encoder that is feeding back the position to the

Axis. If the axis is a Digital Drive with a direct connection to the fieldbus then the

encoder will be selected automatically and the tabs will be grayed out. Otherwise you

will be allowed to select the form of feedback. There are various types of feedback, pick

the one appropriate for your drive. Usually a KL51X1 is used which receives a

quadrature encoder input. When using a Virtual Axis, the NC-Encoder should be a

simulation encoder.

The Global Tab

The encoder specific parameters are the Encoder Mode determines what the encoder

returns, Pos is Position only, PosVelo, is position and velocity, PosVeloAcc is Position,

velocity and acceleration. Invert Encoder Counting direction can be used to reverse the

Page 8: TwinCAT NC Configuration

www.infoPLC.net

count direction (IE positive motion direction) This should only be used on Analog axis,

digital axis which are capable of having their direction reversed via internal parameters

should have the direction set inside the drive. Scaling Factor is used for determining

how far the axis travels per increment of the encoder. For sercos axis which are capable

of running in linear mode, or rotational mode with input and output gear ratios the

Scaling Factor should be 0.0001 and the position control mode scaling should be adjusted

to accordingly. Position Bias can used in absolute encoder systems to set the zero

position of the axis. Modulo Factor determines when a modulo rollover should occur

for cyclic systems. Min and Max Soft Position Limits are the same as those found

under the Global tab of the axis. Noise Level of Simulation Encoder is used in

simulation systems to add some encoder noise.

The Incremental Tab

For axis that are homed via MC_Home commands the homing direction can be set up

here. If the Invert Direction for Calibration cam is true, then the axis will home in the

negative direction. After the home switch is encountered the drive will then search for

the Sync Pulse if the Invert Sync Impulse Direction is True then the drive will search

for the sync impulse in the negative direction. The Calibration Value is the drive

position to be implemented after homing.

Page 9: TwinCAT NC Configuration

www.infoPLC.net

The Online Tab

The Position is the absolute position of the axis based on the number of increments from

the encoder multiplied by the scaling factor. The Uncorrected Position is the position

before the Position Bias is applied and the Correction is the Position Bias. Hard

Increments is the number of increments actually received from the Encoder and will

rollover when the encoder rolls over. The Soft Increments are the increments used to

track all the rollovers. Soft Increments are reset to zero upon restart of TwinCAT. The

Modulo Actual Pos is the remainder of the Absolute Position Divided by the Modulo

Factor. The Modulo Turns is the number of whole modulo positions traveled through.

The Calibration Flag can be used to manually set the homing (calibration) flag. Set

Actual position can be used to manually set the position of the Axis.

The Sercos Tab

On Sercos Axis there is a Sercos Tab. The Modulo Scale is the Modulo value on a

Sercos Axis (IDN 103) the Upload button uploads the value from the IDN list of the

Axis, the Calculate button will determine the rollover point of the axis. When setting up

a Sercos Axis, hit the calculate button, and then download the value.

Page 10: TwinCAT NC Configuration

www.infoPLC.net

The Drive

The General Tab

This tab contains the name of the encoder, the ID number Axis that the drive is associated

with and a check box for creating a symbol listing of all the drive parameters (usually

used with Scope View)

The NC-Drive Tab

If the Axis is a directly connected Digital Fieldbus Axis, then the buttons will be disabled

and it will show which physical axis the drive is connected to. If the axis is not a directly

connected Digital Fieldbus Axis, then the type of connection can be selected and linked.

The Global Tab

The Axis can have it’s polarity inverted (Positive move command direction) this should

only be used on axis which do not have internal parameters for changing the counting

direction.

The Analog Tab

Page 11: TwinCAT NC Configuration

www.infoPLC.net

The Reference Velocity is the maximum velocity possible from the drive, if full speed is

commanded. The Drift Compensation (DAC-Offset) is available in Expert Mode, for

axis that do not have any other method of adjusting the Zero Voltage the Drift

Compensation can be used to adjust the axis to Velocity to zero.

The Sercos Tab

The Output Scale is used to scale the velocity command value to a Sercos axis if the Axis

is used in Velocity mode.

The Controller

The General Tab

This tab contains the name of the Controller, the ID number Axis that the Controller is

associated with and a check box for creating a symbol listing of all the Controller

parameters (usually used with Scope View)

Page 12: TwinCAT NC Configuration

www.infoPLC.net

The NC-Controller Tab

The Controller Type can be specified, for a Sercos Axis in Position Control mode it will

be automatically selected and none of the position controlling parameters have any effect

For typical Analog Servo Drive control Position Controller P is enough for control. The

Position Control with 2 P Constants and Ka (Pre acceleration)

The Controller Type Determines what elements of the control loop will be available for

manipulation. A PID System with Ka will have the following loop. A torque control

system will have a more complex control loop.

The Function of the control loop operates on the position error and velocity error and

adds/subtracts the error values into the commanded position or velocity. The parameters

in the PID tab change depending on the controller type selected

P-Controller Type PID Parameters

With the P controller the only parameter that can be set is the Kv sometimes referred to

as the Kp factor, or Position Gain. This value multiplied by the position error determines

how much

Position Controller with 2 P Constants (with Ka)

Page 13: TwinCAT NC Configuration

www.infoPLC.net

This control has two Kv (Kp) Pos Control Stopping is the gain used while the velocity

of the axis is below the Threshold, and the Pos Control Moving is the gain used while

above the velocity threshold. The Velocity threshold is the portion of the reference

velocity at which the Kv factors will switch smoothly. The Acceleration Proportional

Factor is used to increase the rate of acceleration and deceleration in order to make up

for the lag which occurs during velocity changes. The time value is the amount of time

where the Ka factor is active during acceleration and deceleration.

Position Controller PID (with Ka)

The PID controller has one Proportional gain, Kv (Kp), and the Integral Action Time,

Derivative action time and Damping Time operate according to the following transfer

function.

The shorter the time used in Tn and Td, the faster and more significant the response the

shorter the time used in Tv the slower the response.

Position P and Velocity PID (with Ka) Torque

This controller is to be used with an axis that receives a Torque input value instead of a

velocity input value. The PID loop operates on the velocity control, and the Kv and Ka

constant operate on the position control.

Page 14: TwinCAT NC Configuration

www.infoPLC.net

Initial Setup of a Sercos Axis Type of Axis

Before the axis can be setup it must be determined what type of axis is going to be

controlled and where the Position Control Loop is to be located. Add the Sercos Axis to

the I/O configuration and determine if the axis is to run in Position Control mode, and if

it is to be Linear or Rotational. Linear axis are measured in Inches or Millimeters,

whereas Rotational Axis are measured in Degrees.

The normal control of a Sercos axis is Position 1 without Lag. See the Drive

manufactures manual for a definition or availability of this mode. If Position 1 without

lag is not available Position 1 usually is, if not the axis will have to be run in velocity

mode. (though this is rarely the case for Sercos Axis) Position 2 refers to controlling the

axis via a second feedback (external encoder) see the drive manufactures manuals on the

secondary interface to determine if the axis supports a second feedback interface.

The startup Parameters are parameters that are loaded into the drive upon startup every

time the axis is started, this can be used for common parameters but it should not contain

more than a few parameters as it will slow the starting of the Sercos ring.

Depending whether the axis is to be rotational, or linear the Startup parameters can be set

accordingly. The Sercos drive manufacturer determines which parameters and which

settings for each parameter can be used.

1) Set Startup IDN’s

The parameters that must be set are: IDN 76, IDN 79, IDN 103 then depending upon

mode of operation IDN 123 for Linear, and IDN 121 and IDN 122 for rotational

operation with Load Side Scaling. See the Sercos Setup Power Point on the procedure to

calculate these IDN’s.

Page 15: TwinCAT NC Configuration

www.infoPLC.net

2) Set SERCOS Encoder Parameter

After the IDN’s have been set the NC Axis Sercos Tab under the Encoder must be set

accordingly.

3) Set ADS Port

The ADS port must be set according to the way the PLC program expects to see the ADS

address of the axis. This is usually the Linked Drive ID plus Hex 7100.

4) Maximum Velocity Calculation

The maximum velocity and acceleration and deceleration rates must be calculated and

tested. If the drive is commanded at too fast a speed, it will fault and if the axis is

commanded at too high an acceleration it will fault.

5) Other Modes of operation

If the axis is to be used in multiple modes of operation the IDN’s must be setup

accordingly, see the drive manual for possible Secondary modes of operation. If Torque

Mode is to be a secondary mode of operation it must specified in IDN 33 and the

Torque/Force Command IDN 80 must be added to the Outputs of the drive.

Page 16: TwinCAT NC Configuration

www.infoPLC.net

6) Variable Linking If other values are to be used in the cyclic channel they must be linked

Initial Setup of an Analog Axis Type of Axis The type of the axis is not as important in an Analog Axis. The first thing to be

determined is the Command and Feedback Method. Most commonly a KL4032 (+10/-

10V terminal) for command and a KL51x1 (Quadrature encoder) for feedback.

1) Link Encoder Feedback

2) Link Drive Output

Page 17: TwinCAT NC Configuration

www.infoPLC.net

3) Set Encoder Scaling Factor

The encoder Scaling Factor Must now be calculated. To do this, with the Encoder

dismounted go to the online tab of the encoder and determine how many encoder counts

are returned per revolution:

The Hard Increments will determine the rollover point, it will always be a 2^n number

1024, 4096, 65536, etc. After determining this value we then need to calculate how far

the axis will travel per increment and enter this value in the scaling factor. For example

if my drive travels 100mm per revolution and my encoder counts 65536 counts per then

the scaling factor would be 100/65536 = 0.0015259021896696421759365224689097 the

whole number can be cut and paste into the scaling factor

4) Determine Reference Velocity

This is probably the most important parameter within TwinCAT motion control. The

Reference velocity is the velocity the axis would reach if given full command value, so

on a +/-10V system the Reference velocity would be the maximum speed reached at 10V.

All commands to the drive will be a percentage of this value and calculated in a linear

manner. So if my drive can achieve 3000mm/s at full velocity then my reference velocity

must be 3000mm/s. If I command a velocity of 1500mm/s then the output of my KL4032

will be 5V. If I am incorrect and my Reference velocity is actually 4000mm/s the 5V

output will give me 2000mm/s instead of my expected 1500mm/s.

TwinCAT does it’s positioning by outputting a Velocity command and the distance

traveled is the integral of the velocity. In a perfect world where the axis travels exactly at

the velocity specified for the time specified, then the axis would stop exactly where it is

supposed to without the need for any feedback. However this is never the case, during

acceleration and deceleration, the drive will not change velocity perfectly, thus a control

loop must be incorporated to “correct” the drive to get it to the appropriate target

position.

To test and determine the Reference Velocity, Set all controller gains to zero command

fwd and bwd commands and compare the Actual Velocity vs the Command Velocity,

they should agree withing +/- 2 to 3 percent. Scoping with Scope View is absolutely

crucial.

If our scope looks like this where the pink line is the actual velocity and our command

velocity is the blue line, then our reference velocity is set a little high, we are not going as

fast as we expect. If the actual velocity was consistently over the command velocity then

our Reference velocity is a little low and we are going faster than we expected.

Page 18: TwinCAT NC Configuration

www.infoPLC.net

5) Detect Hamonics It’s important in a system without any control loop (gains) that we look for any

harmonics in the system as these will play a crucial role in our ability to position a drive.

We want to avoid commands that follow or amplify the natural harmonics of our system.

If we have a system like the above, then we have some natural harmonic frequencies we

want to avoid. We don’t want to accelerate or decelerate or terminate a move in full

cycles of the harmonic. IE I don’t want to have any acceleration or deceleration

commands have the same duration of a harmonic.

6) Set Kv

Kv should now be added to the system until the system starts to oscillate during a move

then drop Kv by about 30%. In some cases it will be necessary to use 2 Kv constants one

for stopping and holding position and one for moving. To determine if this is necessary

if the Kv cannot hold or bring the axis into the target position quickly but increasing the

Kv causes oscillations while moving, then a Control Loop with 2 P constants is a likely

solution. A low Kv can be used while moving and then switched over to a high Kv with

a velocity near zero.

The stopping Kv should be much higher than the moving Kv and the crossover threshold

should be between 2 and 5% of max velocity.

7) Set Ka

In many systems a Ka pre acceleration can be used especially if the actual acceleration

curve is a fair ways behind the command acceleration curve. The Ka value will kick up

the command voltage for the specified time for acceleration and decrease the command

voltage for the specified time for deceleration. It is important that you don’t want the

actual velocity to overshoot the command velocity by much or the control loop has to try

and reign the overshoot in which usually results in some oscillation.

8) PID control

If Ka, and 2 Kv values are not enough to get control of the system a PID can be added, in

which case the system drops back to 1 Kv value and the PID parameters must be adjusted

to get the desired effect.

Page 19: TwinCAT NC Configuration

www.infoPLC.net

Sections to be referenced in the TwinCAT information system

For Tuning, Setup and Parameter definition the following sections of the TwinCAT information system should be read.