ServoMotor
This simulation component emulates the behavior of a servo motor.
When to use
Use this simulation component if you want to emulate the behavior of a servo motor. It generates a position and speed output whose values are computed according to a configurable acceleration time and maximum speed.
For example, you can use this simulation component to move an axis by speed.
How to use
Add this simulation component from the simulation component library.
Set the MaxSpeed
, AccelerationTimeOverride
, SpeedOverride
and IsMotorEnabled
inputs. If there is no PLC available to control the motor,
you could use f.e. the DoubleConstant or BoolConstant simulation component to set constant values.
Decide whether the positioning should be started after the target position changes by setting the StartPositioningOnTargetChange
property or on a positive edge of the StartPositioning
input.
Depending on the setting you have chosen before, you only need to set a new TargetPosition
input or additionally activate the positioning by triggering the StartPositioning
input to start the positioning process.
Note
The servo motor will only start positioning if the simulation is running.
Parameters
AccelerationTime
A value indicating the time needed to reach the maximum speed, starting from zero.
JoggingSpeed
A value indicating the jogging speed in m/s.
PositioningMode
A value indicating how the target position is interpreted.
InitialPosition
A value indicating the initial position of the motor.
Note
This value takes effect after reset.
StartPositioningOnTargetChange
A value indicating whether positioning should be started after the target position changes or not - therefore the StartPositioning
input must be set to True
. If StartPositioningOnTargetChange
is not activated, positioning is started on a positive edge of the input StartPositioning
.
Inputs
AccelerationTimeOverride
An input indicating the override of the acceleration time. The used acceleration time is AccelerationTime
/AccelerationTimeOverride
.
IsMotorEnabled
An input indicating whether the servo motor is allowed to move or not. If this input changes to False
the current positioning process stops until the input is reactivated again.
JogNegativeDirection
An input which starts jogging the motor in negative direction. Used speed is defined JoggingSpeed
.
JogPositiveDirection
An input which starts moving in positive direction. Used speed is defined JoggingSpeed
.
MaxSpeed
An input indicating the maximum speed.
SpeedOverride
An input indicating the override of the maximum speed. The used maximum speed is SpeedOverride
* MaxSpeed
.
StartPositioning
An input which starts positioning on positive slope.
TargetPosition
An input indicating the target position of the servo motor.
Outputs
CurrentPosition
An output indicating the current position.
CurrentSpeed
An output indicating the current speed.
IsMotorStopped
An output indicating whether the servo motor is not moving or is.
IsPositioningActive
An output indicating whether the servo motor is moving to the target position or not.
IsTargetPositionReached
An output indicating whether the target position is reached or not.
Example
In this example, an axis is fully controlled by a PLC with help of the PLCConnector simulation component as seen in the picture below.
The 3D object of the servo axis is moved by the KinematicTranslationMover simulation component which is connected to
the CurrentPosition
output of the ServoMotor simulation component.
In the following video you can see another example of using the ServoMotor in combination with the KinematicTranslationMover simulation component.