Table of Contents

Class CmmtDriveModule

Namespace
Loehnert.Lisrt.Drive.Festo
Assembly
Loehnert.Lisrt.Drive.Festo.dll

Represents a module for a CMMT-ST-...-MP/EP drive with telegram 111 configured.

public class CmmtDriveModule : InitializableCompositeModule, ICompositeModule, ILisrtModule, IInitializable, INotifyPropertyChangedEx, INotifyPropertyChanged, IPositioningAxis, IHasServiceView, IHasDeviceLabel
Inheritance
PropertyChangedBase
CmmtDriveModule
Implements
INotifyPropertyChangedEx
Inherited Members
PropertyChangedBase.Refresh()
PropertyChangedBase.IsNotifying
PropertyChangedBase.PropertyChanged

Remarks

Configuration

1. Fieldbus

Either configure the Fieldbus with the hardware switches S1 to S3 on the top of the device or configure it in the Festo Automation Suite on the Fieldbus -> Configuration page.

2. Communication telegram

To enable the full control via Modbus, the telegram 111 must be selected on page Profiles -> PROFIdrive -> Telegram.

3. Insert the factor to the LisRT module configuration

Insert the correct configuration values to the configuration file, which you can find in the Festo Automation Suite on your CMMT component under Profiles -> PROFIdrive -> Factor Group

Festo Automation Suite Parameter Module Configuration Example
Actual user unit PositionUnit 'm'
Position PositionFactor -6 -> PositionFactor = 0.000001
Velocity VelocityFactor -3 -> VelocityFactor = 0.001

Festo Automation Suite factor

Constructors

CmmtDriveModule(string, IModbusMaster)

Initializes a new instance of the CmmtDriveModule class.

public CmmtDriveModule(string name, IModbusMaster modbusModule)

Parameters

name string

Name of the module.

modbusModule IModbusMaster

Modbus master module for communication.

Exceptions

ArgumentNullException

Thrown when name is null or empty or modbusModule is null.

Properties

CurrentPosition

Gets the current position in PositionUnit.

public double CurrentPosition { get; }

Property Value

double

DeviceLabel

Gets or sets the device label.

[Configuration("")]
public string DeviceLabel { get; set; }

Property Value

string

DisableHasFaultMessage

Gets or sets a value indicating whether the has fault message will be shown.

public bool DisableHasFaultMessage { get; set; }

Property Value

bool

DisableNotReferencedMessage

Gets or sets a value indicating whether the not referenced message will be shown.

public bool DisableNotReferencedMessage { get; set; }

Property Value

bool

EnableDisableTimeoutInMS

Gets or sets the timeout for enabling or disabling the drive in ms.

public uint EnableDisableTimeoutInMS { get; set; }

Property Value

uint

Default is 15000ms.

HomingTimeoutInMS

Gets or sets the maximum time in ms for homing.

[Configuration(30000, Unit = "ms", Description = "Maximum time for homing")]
public uint HomingTimeoutInMS { get; set; }

Property Value

uint

Default is 30000ms.

Icon

Gets a icon which is representative for the module.

public override Uri Icon { get; }

Property Value

Uri

InstanceID

Gets or sets the instance ID.

public int InstanceID { get; set; }

Property Value

int

IsReferenced

Gets a value indicating whether the drive is referenced.

public bool IsReferenced { get; }

Property Value

bool

MaximumPosition

Gets or sets the position maximum.

[Configuration(0, Unit = "See PositionUnit value")]
public double MaximumPosition { get; set; }

Property Value

double

MinimumPosition

Gets or sets the position minimum.

[Configuration(0, Unit = "See PositionUnit value")]
public double MinimumPosition { get; set; }

Property Value

double

PositionFactor

Gets or sets the factor for position.

[Configuration(1)]
public double PositionFactor { get; set; }

Property Value

double

PositionUnit

Gets or sets the position unit.

[Configuration("")]
public string PositionUnit { get; set; }

Property Value

string

PositioningTimeoutInMS

Gets or sets the maximum time in ms for positioning./>.

[Configuration(10000, Unit = "ms", Description = "Maximum time for positioning")]
public uint PositioningTimeoutInMS { get; set; }

Property Value

uint

Default is 30000ms.

PositioningVelocity

Gets or sets the positioning velocity.

[Configuration(0, Unit = "PositionUnit per second")]
public double PositioningVelocity { get; set; }

Property Value

double

TreeItem

Gets the view model for the module.

public override ITreeItem TreeItem { get; }

Property Value

ITreeItem

VelocityFactor

Gets or sets the factor for velocity.

[Configuration(1)]
public double VelocityFactor { get; set; }

Property Value

double

Methods

Disable()

Disables the drive.

public void Disable()

Remarks

Goes to 'S6: Switch On' state.

Exceptions

NotInitializedException

Thrown when InitializationState is not Initialized.

DoHoming()

Does the homing.

public void DoHoming()

Exceptions

NotInitializedException

Thrown when InitializationState is not Initialized.

InvalidOperationException

Thrown when drive is not enabled
-or- drive is still busy.

TimeoutException

Thrown when homing was not completed in the expected time span, HomingTimeoutInMS.

OperationCanceledException

Thrown when the drive is disabled during movement.

Enable()

Enables the drive.

public void Enable()

Exceptions

NotInitializedException

Thrown when InitializationState is not Initialized.

InvalidOperationException

Thrown when remote control is denied
-or- quick stop is active
-or- enabling is locked (e.g. by safe torque off signal)
-or- drive and motion could not be enabled within EnableDisableTimeoutInMS milliseconds.

Exit()

Exits the module.

public override void Exit()

GoToPosition(double, int)

Goes to the position.

public void GoToPosition(double position, int timeout = 1000)

Parameters

position double

Set point position in PositionUnit.

timeout int

Timeout for reaching the position in milliseconds. If timeout is less than 0, PositioningTimeoutInMS is used.

Exceptions

ArgumentOutOfRangeException

Thrown when position is not between MinimumPosition and MaximumPosition.

NotInitializedException

Thrown when InitializationState is not Initialized.

InvalidOperationException

Thrown when drive is not enabled
-or- drive is not referenced
-or- drive is still busy
-or- PositionFactor is 0(zero)
-or- VelocityFactor is 0(zero).

TimeoutException

Thrown when positioning is not started
-or- position is not reached in the expected timeout time.

OperationCanceledException

Thrown when the drive is disabled during movement.

Initialize()

Initializes the module.

public override void Initialize()

ResetFault()

Acknowledges a fault.

public void ResetFault()

Exceptions

NotInitializedException

Thrown when InitializationState is not Initialized.

InvalidOperationException

Thrown when warning and fault is not reset.

TimeoutException

Throw when fault could not be reset within 3000ms.

ShowServiceView()

Shows the service window.

public void ShowServiceView()

StartNegativeJog()

Starts negative jog.

public void StartNegativeJog()

Exceptions

NotInitializedException

Thrown when InitializationState is not Initialized.

InvalidOperationException

Thrown when drive is not enabled.

StartPositiveJog()

Starts positive jog.

public void StartPositiveJog()

Exceptions

NotInitializedException

Thrown when InitializationState is not Initialized.

InvalidOperationException

Thrown when drive is not enabled.

StopJog()

Stops negative and positive jog.

public void StopJog()

Exceptions

NotInitializedException

Thrown when InitializationState is not Initialized.