Class DryveD1Module
Represents a LisRT module for an Igus Dryve D1, with Modbus TCP communication.
public class DryveD1Module : InitializableCompositeModule, ICompositeModule, ILisrtModule, IInitializable, INotifyPropertyChangedEx, INotifyPropertyChanged, IPositioningAxis, IHasServiceView, IPolling
- Inheritance
-
PropertyChangedBaseDryveD1Module
- Implements
-
INotifyPropertyChangedEx
- Inherited Members
-
PropertyChangedBase.Refresh()PropertyChangedBase.IsNotifyingPropertyChangedBase.PropertyChanged
Remarks
Firmware
Requires drive firmware >= dryve-D1-1-20220525.
Configuration
Web Interface
Important
Never import configurations saved with an older firmware.
- On page Start, Motor and Axis setup the drive
- On page Communication enable Modbus TCP Gateway
- On page Drive Profile select Modbus TCP Gateway
LisRT Module Configuration
The configured Velocity, HomingVelocity, Acceleration and HomingAcceleration will overwrite the equivalent value on Axis page in the web interface.
Constructors
DryveD1Module(string, IModbusMaster)
Initializes a new instance of the DryveD1Module class.
public DryveD1Module(string name, IModbusMaster modbusModule)
Parameters
name
stringThe name of the instance.
modbusModule
IModbusMasterThe Modbus module for communication.
Exceptions
- ArgumentNullException
Thrown when
name
is null or empty ormodbusModule
is null.
Properties
Acceleration
Gets or sets the acceleration in PositionUnit per second squared.
[Configuration(0, Unit = "Position unit per second squared")]
public double Acceleration { get; set; }
Property Value
ActualPosition
Gets the actual position in PositionUnit.
public double ActualPosition { get; }
Property Value
DigitalInputs
Gets the digital inputs.
public IReadOnlyDictionary<DryveD1DigitalInput, DryveD1DigitalInputModule> DigitalInputs { get; }
Property Value
DigitalOutputs
Gets the digital outputs.
public IReadOnlyDictionary<DryveD1DigitalOutput, DryveD1DigitalOutputModule> DigitalOutputs { get; }
Property Value
Enabled
Gets or sets a value indicating whether the module is enabled.
public override bool Enabled { get; set; }
Property Value
HomingAcceleration
Gets or sets the homing acceleration in PositionUnit per second squared.
[Configuration(0, Unit = "Position unit per square second", Description = "Should be 5 to 10 times greater than HomingVelocity")]
public double HomingAcceleration { get; set; }
Property Value
HomingTimeoutInMS
Gets or sets the maximum time in ms for homing. Default is 10000ms.
[Configuration(10000, Unit = "ms", Description = "Maximum time for homing")]
public int HomingTimeoutInMS { get; set; }
Property Value
HomingVelocity
Gets or sets the homing velocity in PositionUnit per second.
[Configuration(0, Unit = "Position unit per second")]
public double HomingVelocity { get; set; }
Property Value
Icon
Gets an icon which is representative for the module.
public override Uri Icon { get; }
Property Value
IsPolling
Gets a value indicating whether the polling is enabled.
public bool IsPolling { get; }
Property Value
IsReferenced
Gets a value indicating whether the drive is referenced.
public bool IsReferenced { get; }
Property Value
MaximumPosition
Gets or sets the maximum position in PositionUnit.
[Configuration(0, Description = "Maximum position of the axis (must be positive)", Unit = "position unit")]
public double MaximumPosition { get; set; }
Property Value
MinimumPosition
Gets or sets the minimum position in PositionUnit.
[Configuration(0, Description = "Minimum position of the axis (must be positive)", Unit = "Position unit")]
public double MinimumPosition { get; set; }
Property Value
PollingInterval
Gets or sets the interval in ms for polling data. Default is 100ms.
public double PollingInterval { get; set; }
Property Value
Remarks
Starts polling with Update() after Initialized.
PositionUnit
Gets or sets the position unit (e.g. mm).
[Configuration("")]
public string PositionUnit { get; set; }
Property Value
PositioningTimeoutInMS
Gets or sets the maximum time in ms for positioning. Default is 10000ms.
[Configuration(10000, Unit = "ms", Description = "Maximum time for positioning")]
public int PositioningTimeoutInMS { get; set; }
Property Value
StatusWord
Gets the current status word.
public StatusWord StatusWord { get; }
Property Value
TreeItem
Gets the module tree item view model.
public override ITreeItem TreeItem { get; }
Property Value
Velocity
Gets or sets the velocity in PositionUnit per second.
[Configuration(0, Unit = "Position unit per second")]
public double Velocity { get; set; }
Property Value
Methods
DisableDrive()
Disables the drive.
public void DisableDrive()
DoHoming()
Does the homing.
public void DoHoming()
Exceptions
- TimeoutException
Thrown when homing was not completed in the expected time span, HomingTimeoutInMS.
- InvalidOperationException
Thrown when this drive is not initialized, not enabled, or an other operation(GoToPosition(double, int), DoHoming()) is already running..
EnableDrive()
Enables the drive.
public void EnableDrive()
Exceptions
- TimeoutException
Thrown when device gets not ready to enable, drive gets not enabled or operation gets not enabled.
Exit()
De initializes the object.
public override void Exit()
GoToPosition(double, int)
Goes to the position
.
public void GoToPosition(double position, int timeout = -1)
Parameters
position
doubleSet point position in PositionUnit.
timeout
intTimeout for reaching position in ms.
Remarks
When timeout
is less than 0, timeout is PositioningTimeoutInMS.
Only positive target positions are supported in absolute positioning mode. If the reference point is to be
set at the positive end point of an axis and positioned absolutely, a positive Offset must be entered over the entire
axis length.
Exceptions
- ArgumentOutOfRangeException
Thrown when
position
is not between MinimumPosition and MaximumPosition orposition
is less than 0.0.- TimeoutException
Thrown when motion was not completed in the expected time span.
- InvalidOperationException
Thrown when this drive is not initialized, not referenced, not enabled or an operation (GoToPosition(double, int), DoHoming()) is already running.
Initialize()
Initializes the module.
public override void Initialize()
Exceptions
- InvalidOperationException
Thrown when hardware is not enabled.
ResetFault()
Resets the fault state of the device.
public void ResetFault()
SetPositioningAcceleration(double)
Sets the positioning acceleration in PositionUnit per second squared.
public void SetPositioningAcceleration(double acceleration)
Parameters
acceleration
doubleAcceleration to set.
Exceptions
- InvalidOperationException
Thrown when this drive is not initialized.
SetPositioningVelocity(double)
Sets the positioning velocity in PositionUnit per second.
public void SetPositioningVelocity(double velocity)
Parameters
velocity
doubleVelocity to set.
Exceptions
- InvalidOperationException
Thrown when this drive is not initialized.
ShowServiceView()
Shows the service window.
public void ShowServiceView()
StartNegativeJog()
Starts negative jog.
public void StartNegativeJog()
Exceptions
- InvalidOperationException
Thrown when jog is already started.
StartPolling()
Starts polling. Polling means the cyclical call of the Update() method.
public void StartPolling()
StartPositiveJog()
Starts positive jog.
public void StartPositiveJog()
Exceptions
- InvalidOperationException
Thrown when jog is already started, or an other operation(GoToPosition(double, int), DoHoming()) is already running.
StopNegativeJog()
Starts negative jog.
public void StopNegativeJog()
StopPolling()
Stops polling.
public void StopPolling()
StopPositiveJog()
Stops positive jog.
public void StopPositiveJog()
Update()
Updates the StatusWord and ActualPosition.
public void Update()