Table of Contents

Class DryveD1Module

Namespace
Loehnert.Lisrt.Drive.Igus
Assembly
Loehnert.Lisrt.Drive.Igus.dll

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
PropertyChangedBase
DryveD1Module
Implements
INotifyPropertyChangedEx
Inherited Members
PropertyChangedBase.Refresh()
PropertyChangedBase.IsNotifying
PropertyChangedBase.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 string

The name of the instance.

modbusModule IModbusMaster

The Modbus module for communication.

Exceptions

ArgumentNullException

Thrown when name is null or empty or modbusModule 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

double

ActualPosition

Gets the actual position in PositionUnit.

public double ActualPosition { get; }

Property Value

double

DigitalInputs

Gets the digital inputs.

public IReadOnlyDictionary<DryveD1DigitalInput, DryveD1DigitalInputModule> DigitalInputs { get; }

Property Value

IReadOnlyDictionary<DryveD1DigitalInput, DryveD1DigitalInputModule>

DigitalOutputs

Gets the digital outputs.

public IReadOnlyDictionary<DryveD1DigitalOutput, DryveD1DigitalOutputModule> DigitalOutputs { get; }

Property Value

IReadOnlyDictionary<DryveD1DigitalOutput, DryveD1DigitalOutputModule>

Enabled

Gets or sets a value indicating whether the module is enabled.

public override bool Enabled { get; set; }

Property Value

bool

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

double

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

int

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

double

Icon

Gets an icon which is representative for the module.

public override Uri Icon { get; }

Property Value

Uri

IsPolling

Gets a value indicating whether the polling is enabled.

public bool IsPolling { get; }

Property Value

bool

IsReferenced

Gets a value indicating whether the drive is referenced.

public bool IsReferenced { get; }

Property Value

bool

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

double

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

double

PollingInterval

Gets or sets the interval in ms for polling data. Default is 100ms.

public double PollingInterval { get; set; }

Property Value

double

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

string

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

int

StatusWord

Gets the current status word.

public StatusWord StatusWord { get; }

Property Value

StatusWord

TreeItem

Gets the module tree item view model.

public override ITreeItem TreeItem { get; }

Property Value

ITreeItem

Velocity

Gets or sets the velocity in PositionUnit per second.

[Configuration(0, Unit = "Position unit per second")]
public double Velocity { get; set; }

Property Value

double

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 double

Set point position in PositionUnit.

timeout int

Timeout 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 or position 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 double

Acceleration 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 double

Velocity 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()