AxisStepperEL70xx
- Namespace
- ZEquipmentBeckhoff
- Extends
- Inherited Properties
- Inherited Methods
- Implements
FUNCTION_BLOCK ABSTRACT AxisStepperEL70xx EXTENDS ZEquipment.Axis IMPLEMENTS ZEquipment.IAxisHoming, ZEquipment.IAxisMovePosition, ZEquipment.IAxisMoveVelocity, ZEquipment.IAxisFeedbackPosition, ZEquipment.IAxisFeedbackVelocity, ZEquipment.IAxisFeedbackCurrent, ZEquipment.IAxisBase, ZCore.IBootable, ZCore.IObject, ZCore.IError (
[output] Diagnostics : ZCore.DiagnosticMessage)
Outputs
DiagnosticsDiagnosticMessage
Constructor
FB_init
METHOD FB_init (
[input] bInitRetains : BOOL,
[input] bInCopyCode : BOOL,
[input] parent : ZCore.IManagedObject,
[input] ethercatSlave : ZCore.IEthercatSlave) : BOOL
Inputs
bInitRetainsBOOLif TRUE, the retain variables are initialized (warm start / cold start)
bInCopyCodeBOOLif TRUE, the instance afterwards gets moved into the copy code (online change)
parentIManagedObjectethercatSlaveIEthercatSlave
Returns
- BOOL
Properties
ActualCurrent
PROPERTY ActualCurrent : LREAL
Returns the actual current, which is used by the drive. The value returned is usually given in % of the nominal current.
Property Value
- LREAL
ActualFollowingError
PROPERTY ActualFollowingError : LREAL
Returns the deviation between the nominal position of the axis, according to the drive internal profile generator, to the actual position. The actual position is usually related to a position encoder or resolver 1 or 2 depending on which encoder is used for the actual movement. The value returned is given in drive positional-unit, which is usually millimeters or degrees, respectively.
By summing up the values of ActualFollowingError and ActualPosition it is possible to calculate the nominal position of the profile generator.
Property Value
- LREAL
ActualPosition
PROPERTY ActualPosition : LREAL
Returns the actual position of the axis, which is usually related to a position encoder or resolver. The value returned is given in drive positional-unit, which is usually millimeters or degrees, respectively.
Property Value
- LREAL
ActualSafetyState
PROPERTY ActualSafetyState : ZEquipment.AxisSafetyStateFlags
This property can be used to test if a given safety feature of a drive is currently activated or not. Note that the property returns a "Flags" enumeration, which means that several bits of the returned value can be on at the same time.
Note
Retrieving the safety state of a drive is manufacturer specific.
- Some drives may not support some of the features that are depicted in the returned value (some bits may always be 0).
- Generic axes implementation (i.e. AxisPlcOpenMc) of the Zeugwerk Framework usually do not return the correct safety state of the drive. In doubt refer to the documentation of your specific implementation.
Warning
The EL70xx does not support any safety features, so this method will always return 0.
Property Value
ActualVelocity
PROPERTY ActualVelocity : LREAL
Returns the actual velocity of the axis, which is usually calculated by using a position encoder or resolver. The value returned is given in drive velocity-units, which is usually millimeters-per-seconds or degree-per-seconds, respectively. In contrast to speed, velocity is a signed value such that it can have a positive or negative sign.
Property Value
- LREAL
Referenced
PROPERTY Referenced : BOOL
This property can be used to test if an axis is referenced correctly. For axes that use an incremental encoder, this means that a homing procedure has been already been executed correctly. For axes that use an absolute encoder, this usually means that the encoder has been initialized correctly.
Read the documentation of your axes implementation (i.e. AxisPlcOpenMc) for more specifics.
Property Value
- BOOL
Simulation
PROPERTY Simulation : BOOL
Property Value
- BOOL
State
PROPERTY State : ZCore.ObjectState
Returns the object state of the axis object. This exposes if an object is still in its booting phase, had an error, or is busy executing an async action.
Property Value
Methods
HomingAsync
METHOD HomingAsync (
[input] startToken : ZCore.IStartToken)
Use this method to start the homing prodedure of the axis.
Executing this method while the drive is still Busy with another Async command will cause this method to fail. This can
be checked by submitting an StartToken as a startToken. Simply pass such an object and Assert it
or check for startToken.Error after calling this method.
Note
Although (servo) drives usually offer a comparable method for homing, it is hard to abstract all methods, which might be possible to use for specific drive manufactures. Therefore, the actual selection of a homing method can usually be found in specific implementations with a SetHomingMethod method (i.e. AxisStepperEL7031.SetHomingMethod.
Inputs
startTokenIStartToken(optional) object to check if the method was executed successfully - may be 0
IsAtPosition
METHOD IsAtPosition (
[input] pos : LREAL,
[input] window : LREAL) : BOOL
Use this method to check if an axis is at a specific location in a given window. Note that some implementation
may not use the parameter window, but may rely on a drive internal position-window.
In doubt, read the documentation of your axes implementation (i.e. AxisPlcOpenMc).
Inputs
Returns
- BOOL
MoveAbsoluteAsync
METHOD MoveAbsoluteAsync (
[input] startToken : ZCore.IStartToken,
[input] position : LREAL,
[input] speed : LREAL)
Starts to move the axes to a specific position with a given velocity. The method utilizes the drive's profile generator, which may offer to adjust acceleration, deceleration and jerk as PDOs or SDOs as well. The latter parameters are usually vendor specific and thus are not part of the interface. Use the Parameter property of each specialised axis to adjust said values before calling this method. Calling this method will beforehand automatically trigger the following sequences
- Unlock the drive if it has been locked before (AxisPlcOpenMc only)
- Reset any drive errors if there are still errors, which have not been acknowledged yet
- Write parameters to the drive that have been requested to read or write by using the Parameter property of each specialised axis
- Enable the drive if it is not enabled yet
Executing this method while the drive is still Busy with another Async command will cause this method to fail. This can
be checked by submitting an StartToken as a startToken. Simply pass such an object and Assert it
or check for startToken.Error after calling this method.
Inputs
startTokenIStartToken(optional) object to check if the method was executed successfully - may be 0
positionLREALspeedLREAL
MoveRelativeAsync
METHOD MoveRelativeAsync (
[input] startToken : ZCore.IStartToken,
[input] distance : LREAL,
[input] speed : LREAL)
Starts to move the axes to a specific distance from its current position with a given velocity. The method utilizes the drive's profile generator, which may offer to adjust acceleration, deceleration and jerk as PDOs or SDOs as well. The latter parameters are usually vendor specific and thus are not part of the interface. Use the Parameter property of each specialised axis to adjust said values before calling this method. Calling this method will beforehand automatically trigger the following sequences
- Unlock the drive if it has been locked before (AxisPlcOpenMc only)
- Reset any drive errors if there are still errors, which have not been acknowledged yet
- Write parameters to the drive that have been requested to read or write by using the Parameter property of each specialised axis
- Enable the drive if it is not enabled yet
Executing this method while the drive is still Busy with another Async command will cause this method to fail. This can
be checked by submitting an StartToken as a startToken. Simply pass such an object and Assert it
or check for startToken.Error after calling this method.
Inputs
startTokenIStartToken(optional) object to check if the method was executed successfully - may be 0
distanceLREALspeedLREAL
MoveVelocityAsync
METHOD MoveVelocityAsync (
[input] startToken : ZCore.IStartToken,
[input] velocity : LREAL)
Initiates axis movement at a specified velocity, which also defines the intended direction based on the sign—positive or negative—of the velocity. Calling this method will beforehand automatically trigger the following sequences
- Reset any drive errors if there are still errors, which have not been acknowledged yet
- Write parameters to the drive that have been requested to read or write by using the Parameter property of each specialised axis
- Enable the drive if it is not enabled yet
Executing this method while the drive is still Busy with another Async command will cause this method to fail. This can
be checked by submitting an StartToken as a startToken. Simply pass such an object and Assert it
or check for startToken.Error after calling this method.
Inputs
startTokenIStartToken(optional) object to check if the method was executed successfully - may be 0
velocityLREALvelocity in drive velocity units, usually millimeter-per-second, or degree-per-second; for variable frequency drives rotations/minute are common
RebootAsync
METHOD RebootAsync (
[input] startToken : ZCore.IStartToken)
Reboot of the axis, which means that the internal state is switched back to Booting. In practice, this switches the axis' fieldbus back to PREOP, writes all parameters to the drive and then switches back to OP. Internally this is achieved by parking the axis and then unparking it.
Inputs
startTokenIStartTokenpass an StartToken instance here to check if the call was successfully executed
RestoreParametersAsync
METHOD RestoreParametersAsync (
[input] startToken : ZCore.IStartToken)
Inputs
startTokenIStartToken(optional) object to check if the method was executed successfully - may be 0
SetLogger
METHOD ABSTRACT SetLogger (
[input] logger : ZCore.ILogger)
Use this method together with SetName to enable logging for this axis. Various methods of this implementation write log messages into the passed logger interface.
Note
Sometimes it is beneficial to disable logging by passing 0 to this method (e.g. for inputs or outputs which are switch very often).
Inputs
loggerILogger
SetName
METHOD ABSTRACT SetName (
[input] name : ZCore.ZString)
Sets the name of this object as it will show up in any log messages that is created by this object. The name set with this method should be relatable to the name of the input in the electrical plan of your automation project to identify the corresponding input properly.
Inputs
nameZString
SetSimulation
METHOD SetSimulation (
[input] on : BOOL)