Skip to main content
Skip table of contents

EMCL Overview

Some of the main features of EMCL are:

  • It allows to manage, transparent to the user, a wide range of motor technologies: PMSM (BLDC and BLAC), DC, voice coil, steppers and AC induction motors.
  • It includes different motion modes (profiled position, profiled velocity, profiled torque, etc.).
  • It includes different control modes (torque, velocity and position) with high update rates (10 kHz, 1 kHz and 1 kHz respectively).
  • It grants high accuracy in torque control due to the use of vector control (field oriented control).
  • It includes general purpose digital and analog inputs and outputs that can be used for further system control or signaling.
  • It uses standard communications protocols for extended compatibility. It is CANopen CiA-301, CiA-305 and CiA-402 compliant, as well as including a RS-232 proprietary protocol also based on CANopen.
  • A programming language to store routines in its NVM has been defined, allowing the motion controller to work in stand-alone mode.

EMCL features

Controllable motors
  • Brushless DC (trapezoidal commutation).
  • Brushless AC (sinusoidal commutation).
  • DC brushed.
  • Bipolar steppers with microstepping (only some Products).
  • Voice coils.

Both rotary and linear motors can be controlled.

Torque feedback sensor
  • Analog input for external torquemeter.
  • Torque estimation based on current sensing.

Velocity feedback sensor
  • DC tachometer.
  • Velocity estimation based on position sensor.

Position feedback allowed
  • Digital halls.
  • Analog/linear halls.
  • Quadrature incremental encoder.
  • Sin-Cos encoder.
  • PWM encoder.
  • Analog input.
  • SSI (up to 32 bits).
  • Resolver (only available in CANOpen versions).

Digital inputsUp to 8.
Digital outputsUp to 8.
Analog inputUp to 3. Programmable.
Analog outputsUp to 2. Programmable.
Command sources
  • Network communication – USB.

  • Network communication – CANopen.

  • Stand-alone (execution from internal EEPROM memory).

  • Analog input

Analog input options:

  • ±10 V (12 bits)
  • 0 to 5 V (12 bits)

Updated at 10 kHz (CST)

Updated at 1 kHz (all other modes)

  • Step and direction.
  • Minimum step time = 50 ns
  • Direction setup time = 50 ns
  • PWM command.
  • Operation range = 200 to 50000 Hz
  • Minimum detectable pulse width = 200 ns
  • Encoder follower / electronic gearing.
  • Maximum frequency = 10 MHz
Shunt regulator

  • Constant voltage.
  • Variable voltage to reduce heat dissipation.

Flexible signaling monitor
  • Internal limit.
  • Driver health.
  • Internal generator.
  • Target reached.

Motion modes
  • Profiled position.
  • Profiled velocity.
  • Profiled torque.
  • Interpolated position.
  • Cyclic position.
  • Cyclic velocity.
  • Cyclic torque.
  • Homing.
  • Velocity.
  • Open loop scalar.
  • Open loop vector.

Control modes
  • Torque at 10 kHz update rate.
  • Velocity at 1 kHz update rate. 
  • Position at 1 kHz update rate.

Electronical Commutation for brushless motors
  • Trapezoidal.
  • Sinusoidal (based on field oriented control).

  • CANopen networking CiA-301, CiA-303, CiA-305, CiA-306 and CiA-402 compliant.
  • RS-232 proprietary protocol also based on CANopen.
  • USB proprietary protocol also based on CANopen.
  • EtherCAT with CoE (CANopen over EtherCAT).
  • CANopen networking (CANopen CiA-301, CiA-303, CiA-305, CiA-306 and CiA-402 compliant).

Motion controller capabilities

It has an internal programmable language that allows working completely in stand-alone mode.

  • Bus overvoltage. User configurable.
  • Bus undervoltage. User configurable.
  • Over temperature. User configurable.
  • Under temperature. User configurable.
  • Motor overload (i2t). User configurable.
  • Short-circuit detection. Phase-Gnd, Phase-DCbus, Phase-Phase.
  • Mechanical limits detection.
  • Hall sequence / combination error.
  • Encoder broken wire detection.

EMCL structure

The EMCL structure is based on an object dictionary. Each object is simply a memory address in which a value is stored, the meaning of which will depend on the object. Examples of objects are the current position, or the target speed, or the current running through the motor. Internal EMCL processes use objects to carry out functions and to deposit the results of operations, and these objects may be read and/or written using the featured communication protocols.

Some objects may be saved in the non-volatile memory of the system, enabling its value to be available after power-off. This feature allows to avoid object reconfiguration after every power on. In addition, the NVM saving and recovery process is also accessible through objects.

The following figure shows a summarized diagram of EMCL architecture for internal handling of objects:

Object Processing Structure

As it can be observed, EMCL internal architecture can be divided in three layers:

  • Communication: This layer provides the communication objects and the appropriate functionality to transport data via communication ports.
  • Object dictionary: The object dictionary is a collection of all the data items which have an influence on the behavior of the application objects, communication objects and state machine of the controller.
  • Application: The application comprises the functionality of the device with respect to the interaction with the process environment. 

Object structure

Each object or register contain the following information:

Index / SubIndex

Specifies the object number.


Specifies the object name.

Object type

Specifies the object type.


Specifies the type of object access.

Data type

Specifies the data type.

PDO mapping

Specifies if object could be accessed via PDO (only valid for CANopen communications).

Value range

Specifies the range of allowed values.

Default value

Specifies the default value of the object.

A 16-bit Index is used to address all objects within the object dictionary. In case of a simple variable Index references the value of this variable directly. In case of records and arrays however, Index addresses the whole data structure. To allow individual element of structures of data to be accessed a 8-bit SubIndex is defined. 

Possible object types are:

  • VAR: It indicates that is using a basic type value (UINT8, INT16, STR, etc).
  • ARRAY: It indicates that is a data set of the same basic type, i.e. UINT16. In that case, SubIndex zero is always an UINT8 that indicates the length of the array. Hence, the zero SubIndex in arrays can not be used.
  • RECORD: It indicates that is a data set with different basic types. In that case, SubIndex zero is always an UINT8 that indicates the number of items in the record. Hence, the zero SubIndex in arrays can not be used.

Possible access types are:

  • Read/Write (RW): Read and write access. The object can be consulted and modified.
  • Read only (RO): Read-only access. The object can only be consulted.
  • Constant (CONST): The object is constant and can only be consulted.
  • Write only (WO): Write-only access. The object can only be modified.

Possible data types are:

  • UINT8: 1 byte size. Value range [0 to 255]
  • UINT16: 2 byte size. Value range [0 to 65535]
  • UINT32: 4 byte size. Value range [0 to 4294967295]
  • UINT64: 8 byte size. Value range [0 to 18446744073709551616]
  • INT8: 1 byte size. Value range [-128 to 127]
  • INT16: 2 byte size. Range of values: [-32768 to 32767]
  • INT32: 4 byte size. Range of values: [-2147483648 to 2147483647]
  • STR: Character sequence terminated with a null character. Variable size between 1 and 8 bytes. The equivalent binary display is sent in RS-232 communications.

Elements stored in non-volatile memory are reloaded with the last value saved when starting the system. The list of objects saved into NVM can be found in the description of the object, as well as in appendices A, B and C. Other parameters are reset at the default value.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.