MLMotionStatus

PLCopen motion icon Pipe Network motion icon

 FunctionClosed A function calculates a result according to the current value of its inputs. A function has no internal data and is not linked to declared instances. - Returns the status of the motion engine 0 (zero).

Inputs

Input

Data Type

Range

Unit

Default

Description

En

BOOL

0, 1

N/A

No default

Enable function.

Outputs

Output

Data Type

Range

Unit

Description

OK

BOOL

No range

N/A

Status

DINT

0, 3

N/A

Status of the Motion Engine.

Based on the Internal Defines, the status is one of these:

  • #define MLSTATUS_NOT_INITIALISED 0 (*Motion not initialized*)
  • #define MLSTATUS_RUNNING 1 (*Motion is running*)
  • #define MLSTATUS_STOPPED 2 (*Motion is stopped*)
  • #define MLSTATUS_ERROR 3 (*Motion is in error*)

Remarks

FBD Language Example

FFLD Language Example

IL Language Example

Not available.

ST Language Example

//Initialization code to start EtherCATClosed ***EtherCAT is an open, high-performance Ethernet-based fieldbus system. The development goal of EtherCAT was to apply Ethernet to automation applications which require short data update times (also called cycle times) with low communication jitter (for synchronization purposes) and low hardware costs network.
//First initialize network with MLMotionInit command
//Then wait for command to finish by monitoring MLMotionStatus output
//Once initialized, create any cam profiles and PLCopenClosed A vendor -and product- independent worldwide association active in Industrial Control and aiming at standardizing PLC file formats based on XML or Pipenetwork devices
//Then call MLMotionStart and monitor MLMotionStatus again before beginning rest of program

FirstCycle := TRUE;

On FirstCycle DO //Initialize the motion engine
MLMotionInit( 1000);
END_DO;

MotionEngineStatus := MLMotionStatus();//Check the current status of the motion engine
//Once motion engine is initialized, create CAM profiles and defined Axis, then start the motion engine
ON MotionEngineStatus = MLSTATUS_INITIALISED DO
Profiles( MLPR_CREATE_PROFILES );
PLCopen( 0 );
MLMotionStart();
END_DO;

IF MotionEngineStatus = MLSTATUS_RUNNING THEN
bMotionEngineStarted := TRUE;
ELSE
bMotionEngineStarted := FALSE;
END_IF;