Festo

CMMB-AS-02 - Regulator Festo - Free user manual and instructions

Find the device manual for free CMMB-AS-02 Festo in PDF.

📄 98 pages English EN Download 💬 AI Question 10 questions ⚙️ Specs
Notice Festo CMMB-AS-02 - page 8
Pick your language and provide your email: we'll send you a specifically translated version.
Product Type Motor Controller for AC Servo Motors
Model CMMB-AS-02
Rated Power 200 W
Power Supply (Drive) Single phase 200-240 VAC ±10%, 50/60 Hz, 3 A
Power Supply (Control) Single phase 200-240 VAC ±10%, 50/60 Hz, 0.5 A
DC Bus Voltage Internal DC+ / DC- (max. from rectified input)
Control Modes Velocity, Torque, Position, Pulse Train, Homing, Jog
Communication Interface RS232 (X3), 38400 bps default, configurable
Digital Inputs 7 configurable, 12.5-30 VDC active
Digital Outputs 5 configurable, max 100 mA (OUT1/2), 20 mA (OUT3-5)
Analog Inputs 2 differential, ±10 V, 12 bit, 1 kHz bandwidth
Encoder Feedback 20-bit single-turn absolute encoder (EMMB motors)
Pulse Command Input CW/CCW, P/D, or A/B, max 500 kHz
Protection Degree IP20
Operating Temperature 0 to 40 °C
Storage Temperature -10 to 70 °C
Humidity 5 to 95% RH (non-condensing)
Altitude Up to 2000 m (derating above 1000 m)
Vibration Resistance ≤5.9 m/s² at 10-60 Hz
Cooling Natural convection (no fan for this model)
Certifications UL listed (US and Canada), CE
Intended Use Industrial control cabinets, regulation of torque, speed, and position
Setup Methods LED panel with Easy Use and tunE menus, PC software CMMB Configurator
Compatible Motor Series Festo EMMB-AS (100-750 W)

Frequently Asked Questions - CMMB-AS-02 Festo

What is the Festo CMMB-AS-02 motor controller?
The Festo CMMB-AS-02 is a servo motor controller rated at 200 W. It is part of the CMMB series designed for driving AC synchronous servo motors (EMMB series) in industrial automation. It supports multiple control modes including velocity, torque, position, and pulse train, and features an LED panel for easy setup.
How do I wire the power supply for the CMMB-AS-02?
The controller requires two separate single-phase power inputs: control power (L1C/L2C) and drive power (L1/L2). Both accept 200-240 VAC ±10%, 50/60 Hz. Use the X2 connector. For control power, draw 0.5 A; for drive power, draw 3 A (200 W). Connect the PE conductor properly. Refer to the manual for fuses and magnetic contactors.
What is the Easy Use function and how do I use it?
The Easy Use function guides you through initial setup via the LED panel. Steps: 1) In the EASY menu, confirm the motor type (auto-recognized), select command type (e.g., pulse train), set gear ratio, and choose load/application. 2) Save parameters (EA00) and reboot. 3) Then use the tunE menu to measure inertia ratio (tn03) and adjust stiffness (tn01) for optimal performance.
How do I perform auto-tuning on the CMMB-AS-02?
In the tunE menu, set tn03 to 1 to start inertia measurement. The motor will oscillate briefly. If successful, tn02 (inertia ratio) updates automatically. Then adjust stiffness (tn01) from 0 to 31 to set control loop bandwidth. Save parameters (tn00=1) and reboot. Ensure mechanical space for oscillation and disable external forces.
What do the LED panel error codes mean?
Errors are shown on the LED display as blinking codes. For example, 000.1 indicates an extended error (check Error_State2 via SET). Common errors: 000.2 = encoder not connected, 000.4 = multi-turn encoder battery error, 02.00 = following error. Use F007 to view error history. Refer to Chapter 8 for a full list of alarms and troubleshooting.
Can I control the CMMB-AS-02 via RS232?
Yes, the controller has an RS232 port (X3) that supports CANopen-like SDO protocol. Default settings: 38400 baud, 8 data bits, 1 stop bit, no parity. You can change baud rate via d5.02. Use the CMMB Configurator PC software for advanced control, monitoring, and parameter changes.
What motors are compatible with the CMMB-AS-02?
The CMMB-AS-02 is designed to work with Festo EMMB-AS series servo motors of the appropriate power class (e.g., EMMB-AS-60-02 for 200W). Motors feature a 20-bit single-turn absolute encoder. Use NEBM cables for plug-and-play connection. The motor type is auto-recognized upon power-up.
How do I set up homing on the CMMB-AS-02?
Homing is configured via digital input functions (e.g., DIN3 = Start Homing, DIN6 = Home Signal). In EASY menu, set EA07 to the desired homing method (0-35). Then assign DIN functions in F003 menu. The homing sequence starts when the Start Homing signal is activated while the controller is enabled. After homing, store parameters.
What safety precautions should I take when installing the CMMB-AS-02?
Always disconnect power and wait 10 minutes for DC bus discharge before touching terminals. Use only PELV circuits. Ensure the controller is mounted vertically in a cabinet (IP20). Provide adequate clearance for cooling. Do not block ventilation. Use recommended fuses and circuit breakers. The product must be installed by a qualified electrician.
How do I select the braking resistor for the CMMB-AS-02?
The CMMB-AS-02 has an internal braking resistor (10 W). For higher braking power, connect an external resistor between RB1 and RB- (X2). Recommended external resistance: 75 Ω for 200W model. Ensure the average brake power does not exceed the resistor rating. Use the parameters Chop_Resistor (d5.04) and Chop_Power_Rated (d5.05) to configure.

User questions about CMMB-AS-02 Festo

0 question about this device. Answer the ones you know or ask your own.

Ask a new question about this device

The email remains private: it is only used to notify you if someone responds to your question.

No questions yet. Be the first to ask one.

Download the instructions for your Regulator in PDF format for free! Find your manual CMMB-AS-02 - Festo and take your electronic device back in hand. On this page are published all the documents necessary for the use of your device. CMMB-AS-02 by Festo.

USER MANUAL CMMB-AS-02 Festo

natural_image Line drawing of an FESTO PLC internal unit with ventilation grilles and connector ports (no text or symbols on the device itself)

Description

Mounting and installation

For motor controller CMMB-AS-0x

8189115

2023-01c

[8189117]

Identification of hazards and instructions on how to prevent them:

Festo CMMB-AS-02 - Description - 1

Danger

Immediate dangers which can lead to death or serious injuries

Festo CMMB-AS-02 - Danger - 1

Warning

Hazards that can cause death or serious injuries

Festo CMMB-AS-02 - Warning - 1

Caution

Hazards that can cause minor injuries or serious damage to property

Other symbols:

Festo CMMB-AS-02 - Caution - 1

Note

Material damage or loss of function

Festo CMMB-AS-02 - Note - 1

Recommendations, tips, references to other documentation

Festo CMMB-AS-02 - Note - 2

Essential or useful accessories

Festo CMMB-AS-02 - Note - 3

Information on environmentally sound use

Text designations:

• Activities that may be carried out in any order

  1. Activities that should be carried out in the order stated

- General lists

→ Result of an action / references to more detailed information

Revisions history

VersionChapterDateChange
1.00All2017-03-17First release
1.013.2.4, 6.2.1, 6.3.12017-05-09Figure 3-5, tables 6-7, 6-11
1.023.1.1, 3.2.22017-07-18Table 3-1, Table 3-2
1.036.4.12017-10-25Figure 6-2, text
1.042.12020-04-13Figure 2-2, tables 2-2, 2-3, 2-4.
3.2.42020-04-13Table 3-4: Definition of X4, figure 3-5
4.3.22020-04-13Table 4-2: EASY menu parameters
6.12020-04-13Table 6-2
9.42020-04-13Added description for d4.01
9.52020-04-13Table 9-5
Chapter 112020-04-13New Chapter
1.0510.22021-02-23Updated the Node ID Added a negative sign as -
6.12022-11-25Table 6-2

Contents

Chapter 1 Safety and requirements for product use ....1

1.1 Safety....1

1.1.1 Safety instructions for commissioning, repair and de-commissioning .... 1
1.1.2 Protection against electric shock through protective extra-low voltage (PELV)....1
1.1.3 Intended use 2

1.2 Requirements for product use....2

1.2.1 Transport and storage conditions 2
1.2.2 Technical requirements....2
1.2.3 Qualification of the specialists (requirements for personnel) 3
1.2.4 Range of application and certifications .... 3

Chapter 2 Introduction....3

2.1 Product overview .... 3
2.1.1 CMMB Motor controller .... 3
2.1.2 EMMB Servo motor 4
2.1.3 NEBM cables....4
2.2 Device view....7

Chapter 3 Installation of the CMMB motor controller ....8

3.1 Mechanical installation 8
3.1.1 Environment requirements....8
3.1.2 Mounting conditions....8

3.2 Electrical installation 9

3.2.1 Front view of CMMB series motor controller....9
3.2.2 Power connector (X2)....10
3.2.3 RS232 port (X3) 10
3.2.4 Multi-function connector (X4) 11
3.2.5 Encoder input (X5) 13

3.3 Wiring of the CMMB servo system....13
3.3.1 Selection of fuses, braking resistors and circuit breakers 14

Chapter 4 Controller setup with LED panel ....15

4.1 Panel operation.... 15

4.2 Panel menu structure and navigation 16
4.3 Easy Use function 17

4.3.1 Setup process with Easy Use function 17
4.3.2 Flowchart and description of the EASY menu 18
4.3.3 Flowchart and description of the tunE menu 24
4.3.4 Jog mode (F006) 27
4.3.5 Error History (F007) 27

Chapter 5 CMMB configurator, user guide....29

5.1 Getting started 29

5.1.1 Language 29
5.1.2 Opening and saving project files 29
5.1.3 Starting communication.... 30
5.1.4 Node ID and baud rate....30
5.1.5 Objects (add, delete, help) 30

5.2 Init save reboot 31
5.3 Firmware update .... 31
5.4 Read/write controller configuration 32

5.4.1 Read settings from controller 32
5.4.2 Write settings to controller 32

5.5 Digital IO functions....33

5.5.1 Digital inputs 34
5.5.2 Digital outputs 36
5.5.3 Gear ratio switch (expert only).... 37
5.5.4 Gain switch (expert only)....38
5.5.5 Fast Capture 40

5.6 Scope 41
5.7 Error display and error history 42

Chapter 6 Operation modes and control modes....45

6.1 General steps for starting a control mode.... 45
6.2 Velocity mode (-3, 3) 48

6.2.1 Analog speed mode 48
6.2.2 DIN speed mode....50

6.3 Torque mode (4)....51
6.3.1 Analog torque mode....51
6.4 Position mode (1) 52

6.4.1 Position Table mode 52

6.5 Pulse Train mode (-4).... 57

6.5.1 Master-slave mode....58

6.6 Homing mode (6) 58

Chapter 7 Tuning of the servo system control....68

7.1 Auto-tuning 68

7.1.1 Parameters for auto-tuning....69

7.1.2 Start of auto-tuning....69

7.1.3 Problems with auto-tuning....70

7.1.4 Adjustment after auto-tuning....70

7.2 Manual tuning....71

7.2.1 Tuning of the velocity loop....71

7.2.2 Tuning of the position loop 73

7.3 Factors which influence tuning results 75

Chapter 8 Alarms and troubleshooting....76

Chapter 9 List of CMMB series motor controller parameters....78

9.1 F001 78

9.2 F002 79

9.3 F003 81

9.4 F004 84

9.5 F005 85

Chapter 10 Communication ....86

10.1 RS232 wiring 86

10.1.1 Point to point connection 86

10.1.2 Multi-point connection....86

10.2 Transport protocol....86

10.2.1 Point to point protocol 87

10.2.2 Multi-point protocol 87

10.3 Data protocol....87

10.3.1 Download (from host to slave) 88

10.3.2 Upload (from slave to host) 88

10.4 RS232 telegram example....89

Chapter 11 Appendix ......90

11.1 Multi-Turn Encoders supported by CMMB....90

11.1.1 Hardware requirements....90
11.1.2 Application scenarios....90
11.1.3 Warning and Error....90
11.1.4 Absolute position definition....91

Chapter 1 Safety and requirements for product use

1.1 Safety

1.1.1 Safety instructions for commissioning, repair and de-commissioning

Festo CMMB-AS-02 - Safety instructions for commissioning, repair and de-commissioning - 1

Warning

Danger of electric shock

  • If cables are not mounted to the plug X2.
  • If connecting cables are disconnected when energised.
    Touching live parts causes severe injuries and may lead to death.

The product may only be operated in the installed state and when all safeguards have been initiated.

Before touching live parts during maintenance, repair and cleaning work, and after been long service interruptions:

Switch off power to the electrical equipment via the mains switch and secure it against being switched on again.

After switching off, allow to discharge for at least 10 minutes and check that power is turned off before accessing the controller. Make sure that the charge lamp on the front of the controller is off.

Festo CMMB-AS-02 - Danger of electric shock - 1

Note

Danger from unexpected movement of the motor or axis

  • Make sure that motion does not endanger anyone.
  • Perform a risk assessment in accordance with the EC machinery directive.
  • Based on this risk assessment, design the safety system for the entire machine, taking into account all integrated components. This also includes the electric drives.
  • Bypassing safety equipment is impermissible.

1.1.2 Protection against electric shock through protective extra-low voltage (PELV)

Festo CMMB-AS-02 - Protection against electric shock through protective extra-low voltage (PELV) - 1

Warning

  • Use only PELV circuits in accordance with IEC/EN 60204-1 (protective extra-low voltage, PELV) for electrical power supply. Also comply with the general requirements for PELV circuits specified in IEC/EN 60204-1.
  • Use only power sources which guarantee reliable electrical disconnection of the operating voltage as per IEC/EN 60204-1.

Protection against electric shock (protection against direct and indirect contact) is ensured in accordance with IEC/EN 60204-1 through the use of PELV circuits (Electrical equipment of machines, general requirements).

1.1.3 Intended use

The CMMB-AS-0x is intended for

- Use in control cabinets for power supply to AC servo motors and regulation of torques (current), rotational speed and position.

The CMMB-AS-0x is intended for installation in machines or automated systems and may only be used:

  • When in excellent technical condition
    – In original condition without unauthorised modification
    – Within the limits of the product defined by the technical data
    – In an industrial environment

The product is intended for use in industrial areas. When used outside an industrial environment, e.g. in commercial and mixed residential areas, measures for radio interference suppression may be necessary.

Festo CMMB-AS-02 - Intended use - 1

Note

In the event of damage caused by unauthorised manipulation or other than intended use, the guarantee is rendered null and void and the manufacturer is not liable for damages.

1.2 Requirements for product use

● Make this documentation available to the design engineer, installer and personnel responsible for commissioning the machine or system in which this product is used.
- Make sure that the specifications of the documentation are always complied with. Also consider the documentation for the other components and modules.

Take legal regulations applicable at the destination into consideration, as well as:

  • Regulations and standards
    – Regulations of testing organizations and insurers
  • National specifications

1.2.1 Transport and storage conditions

- Protect the product during transport and storage from impermissible loads such as:

  • Mechanical load
  • Impermissible temperatures
  • Moisture
  • Aggressive atmospheres

- Store and transport the product in its original packaging. The original packaging offers sufficient protection from typical stressing.

1.2.2 Technical requirements

General conditions for correct and safe use of the product, which must be observed at all times:

- Comply with the connection and environmental conditions specified in the technical data of the product and of all connected components.

Compliance with limit values and load limits is mandatory in order to assure operation of the product in accordance with the relevant safety regulations.

- Observe the instructions and warnings in this documentation.

1.2.3 Qualification of the specialists (requirements for personnel)

The product may only be placed in operation by a qualified electrician who is familiar with:

  • Installation and operation of electrical control systems
  • Applicable regulations for operating safety-engineered systems
    – Applicable regulations for accident protection and occupational safety
  • Documentation for the product

1.2.4 Range of application and certifications

Festo CMMB-AS-02 - Range of application and certifications - 1

Certificates and declaration of conformity for this product can be found at www.festo.com/sp.

The product has been certified by Underwriters Laboratories Inc. (UL) for the USA and Canada and is marked as follows:

Festo CMMB-AS-02 - Range of application and certifications - 2

US LISTED

UL listing mark for Canada and the United States

Chapter 2 Introduction

2.1 Product overview

The CMMB motor controller series consists of four models of motor controllers for four different power ratings. Together with the EMMB servo motor series, the CMMB series provides a pulse train servo system platform with a rated power range of 100 to 750 W.

2.1.1 CMMB Motor controller

The CMMB motor controller is available in the following models:

Table 2-1: Model type

ModelPower
CMMB-AS-01100 W
CMMB-AS-02200 W
CMMB-AS-04400 W
CMMB-AS-07750 W

Festo CMMB-AS-02 - CMMB Motor controller - 1

flowchart
graph TD
    A["CMMB"] --> B["Motor controller"]
    C["AS"] --> D["AC synchronous"]
    E["01"] --> F["100W"]
    G["02"] --> H["200W"]
    I["04"] --> J["400W"]
    K["07"] --> L["750W"]
    M["CMMB - AS - 07"] --> N
    style A fill:#f9f,stroke:#333
    style C fill:#f9f,stroke:#333
    style E fill:#f9f,stroke:#333
    style G fill:#f9f,stroke:#333
    style I fill:#f9f,stroke:#333
    style K fill:#f9f,stroke:#333

Figure 2-1: Type code motor controller

2.1.2 EMMB Servo motor

The EMMB series of high performance AC servo motors includes motors within a range of 100 to 750W rated power and is a equipped with 20 bit single-turn absolute encoder feedback systems.

EMMB-AS-60-02-K-S30MB
Series
EMMBSeries B
Motor technology
ASAC-synchronous
Flange size Motors
4040 mm
6060 mm
8080 mm
Power class
01100 W
02200 W
04400 W
07750 W
Motor shaft
Smooth shaft
KKeyway shaft acc. to DIN 6885
Electrical connection
SStraight plug
Lead length
3030 cm
Measuring unit
SEncoder absolute, Single-turn
MEncoder absolute, Multi-turn
Brake
Without
BWith Brake

Figure 2-2: Servo motor type code

2.1.3 NEBM cables

NEBM cables provide plug and play connectivity between the motor controller and the servo motors, and are available in four different standard lengths.

Table 2-2: Motor cable

Standard cable
Length (unit: m) Type
2.5NEBM-H6G4-K-2.5-Q13N-LE4
5NEBM-H6G4-K-5-Q13N-LE4
7.5NEBM-H6G4-K-7.5-Q13N-LE4
10NEBM-H6G4-K-10-Q13N-LE4
Flexible cable (useable in cable chain)
Length (unit: m) Type
2.5NEBM-H6G4-E-2.5-Q13N-LE4
5NEBM-H6G4-E-5-Q13N-LE4
7.5NEBM-H6G4-E-7.5-Q13N-LE4
10NEBM-H6G4-E-10-Q13N-LE4
15NEBM-H6G4-E-15-Q13N-LE4
20NEBM-H6G4-E-20-Q13N-LE4
25NEBM-H6G4-E-25-Q13N-LE4

Table 2-3: Encoder cable

Standard cable
Length (unit: m) Type
2.5NEBM-REG6-K-2.5-Q14N-REG6
5NEBM-REG6-K-5-Q14N-REG6
7.5NEBM-REG6-K-7.5-Q14N-REG6
10NEBM-REG6-K-10-Q14N-REG6
Flexible cable (usable in cable chain)
Length (unit: m)Type
2.5NEBM-REG6-E-2.5-Q14N-REG6
5NEBM-REG6-E-5-Q14N-REG6
7.5NEBM-REG6-E-7.5-Q14N-REG6
10NEBM-REG6-E-10-Q14N-REG6
15NEBM-REG6-E-15-Q14N-REG6
20NEBM-REG6-E-20-Q14N-REG6
25NEBM-REG6-E-25-Q14N-REG6

Table 2-4: Brake cable

Standard cable
Length (unit: m)Type
2.5NEBM-H7G2-K-2.5-Q14N-LE2
5NEBM-H7G2-K-5-Q14N-LE2
7.5NEBM-H7G2-K-7.5-Q14N-LE2
10NEBM-H7G2- K-10-Q14N-LE2
Flexible cable (usable in cable chain)
Length (unit: m) Type
2.5NEBM-H7G2-E-2.5-Q14N-LE2
5NEBM-H7G2-E-5-Q14N-LE2
7.5NEBM-H7G2-E-7.5-Q14N-LE2
10NEBM-H7G2-E-10-Q14N-LE2
15NEBM-H7G2-E-15-Q14N-LE2
20NEBM-H7G2-E-20-Q14N-LE2
25NEBM-H7G2-E-25-Q14N-LE2

2.2 Device view

Festo CMMB-AS-02 - Device view - 1

natural_image Line drawing of a server rack unit with ventilation grilles and internal components (no text or symbols)

Festo CMMB-AS-02 - Device view - 2

natural_image Line drawing of a multi-panel electronic device with ports, buttons, and connectors (no text or symbols)

FESTO X1 X2 L10 L20 L1 L2 DC-1 MB RB DC M V W X3 X4 X5 T11 CMH2C2

Festo CMMB-AS-02 - Device view - 4

natural_image Technical line drawing of a rectangular enclosure with internal partitions and dimension annotations (no text or symbols)

Festo CMMB-AS-02 - Device view - 5

natural_image Technical line drawing of a multi-panel electronic control panel with no visible text or symbols

41 5 Ø5.5 155 160 4 5.5 35.8

Figure 2-3: Device view

Chapter 3 Installation of the CMMB motor controller

3.1 Mechanical installation

3.1.1 Environment requirements

Table 3-1: Environment requirements

Environment Requirement
Working temperature0 - 40°C (no ice)
Working humidity5 - 95%RH (no condensation)
Storage temperature-10 - 70°C (no ice)
Storage humidity5 - 95%RH (no condensation)
Assembly requirementIndoors without sunlight, corrosive gas, non-flammable gas, no dust.
AltitudeLess than 2000 m, power derating between 1000m and 2000m
VibrationLess than 5.9m/s ^2 , 10□ 60Hz (not to be used at the resonance point)
Degree of protection IP20

3.1.2 Mounting conditions

Air Outlet Air Outlet FESTO FESTO FESTO FESTO >10mm >10mm >10mm >50mm >20mm >20mm >50mm Air Inlet Air Inlet

Figure 3-1: Installation orientation, distances and clearances

Festo CMMB-AS-02 - Mounting conditions - 2

Note

The motor controller has to be installed in an electrical cabinet which provides a pollution degree 2 environment.

The installation orientation is vertical to provide sufficient convection air flow through the controller housing.

Comply with distances and clearances shown in figure 3-1.

Ensure that the motor controller is securely mounted with two M5 screws.

Do not insert anything into the ventilation openings of the controller.

Do not block the ventilation openings of the controller.

Only use attachments / accessories specified by the manufacturer.

The heat sink in the CMMB-AS-01, CMMB-AS-02 is cooled by natural air convection flow.

The heat sink in the CMMB-AS-04, CMMB-AS-07 is cooled by an internal fan.

Festo CMMB-AS-02 - Note - 1

Warning

In the case of use of an external brake resistor, provide adequate space around the brake resistor since it can become very hot. No burnable material should touch or be close to the brake resistor. Otherwise there is risk of fire, especially in case of a malfunction of the brake chopper.

3.2 Electrical installation

3.2.1 Front view of CMMB series motor controller

FESTO X1 : Reserved Connector X2 : Power & Motor Connector Control Power Input L1C L2C Main Power Input L1 L2 DC+/RB1 DC Bus/ Regenerative Resistor RB2 RB- DC- U V W Motor Charge Lamp Front Panel X3 : RS232 Connector X4 : Multi Function Connector X5 : Encoder Connector Ground Fan

Figure 3-2: Front view

The fan of controller is replaceable. If a fan becomes defective, open the fan cover and replace it with a fan with the same performance ratings. Technical requirements for the fan are as follows:

Power: 12VDC, 0.12A, size: 40 x 40 x 10 mm

3.2.2 Power connector (X2)

Table 3-2: Power connector

L1C—○L2C—○L1—○L2—○DC+/RB1—○RB2—○RB-—○DC-—○U—○V—○W—○Pin Function
L1CControl power input L/NSingle phase 200 – 240VAC ±10% 50 / 60Hz, 0.5ASupply earthing systems: TN-S, TN-C, TN-C-S, TT (not corner earthed).
L2C
L1Drive power input L/NSingle phase 200 – 240VAC ±10%, 50 / 60Hz750W @7A, 400W @4.5A, 200W @3A, 100W @1.5ASupply earthing systems: TN-S, TN-C, TN-C-S, TT (not corner earthed).
L2
DC+/RB1DC+ DC bus+i InformationShort circuit DC+ / RB1 and RB2 if choosing controller internal braking resistor (power: 10 W)→ NoteIt is forbidden to use the internal braking resistor if the average brake power is more than 10 W.
RB1External braking resistor input
RB2Internal braking resistor input
RB-External braking resistor input
DC- DC bus-
U/V/WU/V/W phase power output for servo motor

Wire cross section for all pins:
AWG 22 (0.32 mm ^4 ) to AWG 14 (2.1 mm ^4 )

3.2.3 RS232 port (X3)

Table 3-3: RS232 port

Festo CMMB-AS-02 - RS232 port (X3) - 1Pin numberDefinitionFunction
3 TX Send controller data
4 GND Signal ground
6 RX Receive controller data
OthersNCReserved

3.2.4 Multi-function connector (X4)

Festo CMMB-AS-02 - Multi-function connector (X4) - 1

natural_image Pure diagram of a rectangular device with internal components and a downward arrow, no text or symbols present.

Festo CMMB-AS-02 - Multi-function connector (X4) - 2

other | Label | Value | |---|---| | 19 | 19 | | AIN1+ | AIN1+ | | 20 | 20 | | OUT5 | OUT5 | | 21 | 21 | | +5V | +5V | | 22 | 22 | | GND | GND | | 23 | 23 | | OUT1+ | OUT1+ | | 24 | 24 | | OUT2- | OUT2- | | 25 | 25 | | MA+ | MA+ | | 26 | 26 | | 27 | 27 | | 28 | 28 | | 29 | 29 | | 30 | 30 | | 31 | 31 | | MB+ | MB+ | | 32 | 32 | | 33 | 33 | | MB- | MB- | | 34 | 34 | | 35 | 35 | | 36 | 36 | | COMI | COMI | | DIN1 | DIN1 | | 1 | 1 | | 2 | 2 | | 3 | 3 | | OUT1- | OUT1- | | 4 | DIN1 | | 5 | DIN1 | | 6 | DIN2 | | 7 | DIN2 | | 8 | DIN3 | | 9 | DIN3 | | 10 | DIN4 | | 11 | DIN4 | | 12 | DIN5 | | 13 | DIN5 | | 14 | DIN6 | | 15 | DIN6 | | 16 | DIN7 | | 17 | DIN7 | | MZ- | MZ- | | DIN7 | DIN7 | | MZ- | MZ- |

Figure 3-3: Multi-function connector

Table 3-4: Definition of X4

PIN Function
DIN1-DIN7Digital signal inputVinH (active): 12.5VDC-30VDC,VinL (inactive): 0VDC-5VDC,input freq.: <1KHz
COMICommon pin of digital input
OUT1+ / OUT1-Digital signal outputMaximum output current: 100mA
OUT2+ / OUT2-
OUT3 / OUT4 / OUT5Digital signal outputMaximum output current: 20mA
COMOCommon pin of digital output OUT3, 4, 5
MA+ / MA-Pulse inputInput voltage: 3.3V-24VMaximum frequency: 500KHz
MB+ / MB-
MZ+ / MZ-
ENCO_A+ / ENCO_A-Encoder outputVoltage: Voh=3.4V, Vol=0.2VMaximum current: ±20mA, maximum frequency: 10MHzThe ENCO_Z±signal is always happening when the encoder single turn crossing 0.
ENCO_B+ / ENCO_B-
ENCO_Z+ / ENCO_Z-
AIN1+ / AIN1-AIN2+ / AIN2-Analog inputResolution: 12 bit, input resistance: 350 KΩAnalog bandwidth: 1KHz, input voltage range: -10V +10V
+5V / GND5VDC power supply outputMaximum current: 100mA
VDD/VEE24VDC power supply outputVoltage range: 24VDC ± 20%, maximum current: 300 mA

The following figure shows the wiring of X4 with default IO function. More IO functions can be defined with the digital panel or PC software. Please refer to chapter 5.5 for more details regarding IO functions.

Festo CMMB-AS-02 - Multi-function connector (X4) - 3

flowchart
graph TD
    subgraph Digital Input
        A["Enable"] --> B["DIN1"]
        C["Reset Errors"] --> D["DIN2"]
        E["Start Homing"] --> F["DIN3"]
        G["P limit+"] --> H["DIN4"]
        I["P limit-"] --> J["DIN5"]
        K["Home Signal"] --> L["DIN6"]
        M["Input Common"] --> N["DIN7"]
        O["COMI"] --> P["2"]
    end

    subgraph Motor Brake
        Q["1 OUT1+"] --> R["Ready"]
        S["3 OUT1-"] --> T["Motor Brake"]
        U["5 OUT2+"] --> V["Pos Reached"]
        W["7 OUT2-"] --> X["Zero Speed"]
        Y["9 OUT3"] --> Z["Error"]
        AA["11 OUT4"] --> AB["Output Common"]
    end

    subgraph Impulse Command (<500k)
        AC["PUL+ / CW+ / A+"] --> AD["MA+"]
        AE["PUL- / CW- / A-"] --> AF["MA-"]
        AG["DIR+ / CCW+ / B+"] --> AH["MB+"]
        AI["DIR- / CCW- / B-"] --> AJ["MB-"]
        AK["Z+"] --> AL["MZ+"]
        AM["Z-"] --> AN["MZ-"]
        AO["AIN1+"] --> AP["AIN1+"]
        AQ["AIN1-"] --> AR["AIN1-"]
        AS["AIN2+"] --> AT["AIN2+"]
        AU["AIN2-"] --> AV["AIN2-"]
    end

    subgraph Analog Output
        AW["34 ENCO_A"] --> AX["Encoder Out A+"]
        AY["36 ENCO_/A"] --> AZ["Encoder Out A-"]
        BA["30 ENCO_B"] --> BB["Encoder Out B+"]
        BC["32 ENCO_/B"] --> BD["Encoder Out B-"]
        BE["26 ENCO_Z"] --> BF["Encoder Out Z+"]
        BG["28 ENCO_/Z"] --> BH["Encoder Out Z-"]
    end

    subgraph Internal 5V Output
        BI["+5V"] --> BJ["Internal 5V Output+"]
        BK["GND"] --> BL["Internal 5V Output-"]
    end

    subgraph Internal 24V Output
        BM["VDD"] --> BN["Internal 24V Output+"]
        BO["VEE"] --> BP["Internal 24V Output-"]
    end

Figure 3-4: X4 NPN-wiring of digital inputs and digital outputs

Figure 3-4 shows NPN wiring for the digital input and outputs. Figure 3-5 shows the PNP wiring.

Festo CMMB-AS-02 - Multi-function connector (X4) - 4

flowchart
graph LR
    A["Digital Input"] --> B["Enable"]
    A --> C["Reset Errors"]
    A --> D["Start Homing"]
    A --> E["P limit+"]
    A --> F["P limit-"]
    A --> G["Home Signal"]
    A --> H["Input Common"]

    B --> I["DIN1 4"]
    C --> J["DIN2 6"]
    D --> K["DIN3 8"]
    E --> L["DIN4 10"]
    F --> M["DIN5 12"]
    G --> N["DIN6 14"]
    H --> O["DIN7 16"]
    I --> P["COMI 2"]

    Q["Motor Brake"] --> R["OUT1+"]
    Q --> S["OUT1-"]
    Q --> T["OUT2+"]
    Q --> U["OUT2-"]
    Q --> V["OUT3"]
    Q --> W["OUT4"]
    Q --> X["OUT5"]
    Q --> Y["COMO"]

    R --> Z["Ready"]
    S --> AA["Error"]

    style A fill:#f9f,stroke:#333
    style Q fill:#ccf,stroke:#333

Figure 3-5: X4 PNP-wiring of digital inputs and digital outputs

CMMB series motor controllers do not support the direct motor brake control output. We suggest to using the OUT1 or OUT2 pin to control a relay which is connected to the motor brake. The wiring schematic is as follows:

Festo CMMB-AS-02 - Multi-function connector (X4) - 5

flowchart
graph LR
    Drive -->|5 OUT2+| Relay
    Drive -->|7 OUT2-| Relay
    Relay -->|24V Brake Power Supply| MotorBrake
    MotorBrake -->|+ -| Relay

Figure 3-6: Motor brake wiring

3.2.5 Encoder input (X5)

Table 3-5: Encoder input

Festo CMMB-AS-02 - Encoder input (X5) - 1Pin number Definition Function
1 +5V 5VDC power supply for encoder
2 GND Signal ground (+5 V)
5 SD Serial data signal
6 /SD Serial data signal
OtherNCReserved

3.3 Wiring of the CMMB servo system

Festo CMMB-AS-02 - Wiring of the CMMB servo system - 1

flowchart
graph TD
    A["220VAC Power Supply"] -->|N| B["Circuit Breaker (MCCB)"]
    A -->|L| C["Noise Filter (NF)"]
    B --> D["Fuse 1"]
    C --> E["Fuse 2"]
    D --> F["Magnetic Contactor (MC)"]
    E --> G["Magnetic Contactor (MC)"]
    F --> H["Braking Resistor"]
    G --> H
    H --> I["L1C L2C L1 L2 RB1 RB- U V W PE"]
    I --> J["FESTO"]
    J --> K["RS232 Cable"]
    K --> L["Motor Power Cable"]
    L --> M["Brake 24V Power Supply"]
    M --> N["Motor Brake Cable"]
    N --> O["Motor Encoder Cable"]

Figure 3-7: Wiring of the CMMB servo system
Festo CMMB-AS-02 - Wiring of the CMMB servo system - 2

Warning

Danger of electric shock

Before conducting any installation or maintenance work on the CMMB controller, switch supply power off. After switching off the power, wait for at least 10 minutes before touching any contacts and make sure that the charge lamp on the controller's front panel is off.

Never open the device during operation. Keep all covers and control cabinet doors closed during operation.

Never remove safety devices and never reach into live parts and components.

Connect the PE conductor correctly before switching on the controller.

Festo CMMB-AS-02 - Danger of electric shock - 1

Warning

Danger of electric shock

The CMMB motor controller uses mains voltage for logic supply power. Even when supply power to the controller is switched off and the DC bus is discharged (charge lamp at front is off), the control power input X2: L1C/L2C may still have active mains voltage.

If the LED at the front of the motor controller is on, mains voltage must be expected at X2: L1C/L2C.

Festo CMMB-AS-02 - Danger of electric shock - 1

Note

Use NEBM cables (see 2.1.3) to connect the CMMB motor controller to the EMMB servo motor, and connect the PE wire of the NEBM motor cable to the left PE screw at the front of the motor controller.

Do not subject the NEBM cables or the wires at the X2 connector to mechanical stressing. Comply with international and local standards and laws for the wiring and installation of live components in the electric cabinet such as fuses, circuit breakers and contactors in relation with the mains power supply of the motor controller.

In order to comply with EMC directive and standards, use suitable RF filters for installation of the motor controller mains supply.

3.3.1 Selection of fuses, braking resistors and circuit breakers

Fuses, braking resistors and circuit breakers should be selected according to following specifications:

Table 3-6: Recommended fuse

ModelControl power supply fuse (Fuse1) specificationDrive power supply fuse (Fuse2) specification
CMMB-AS-011.0A/250VAC3.5A/250VAC
CMMB-AS-021.0A/250VAC3.5A/250VAC
CMMB-AS-041.0A/250VAC7A/250VAC
CMMB-AS-071.0A/250VAC15A/250VAC

Table 3-7: Recommended braking resistor

ModelResistance [Ω]Power [W]Withstanding voltage [VDC]
CMMB-AS-0175 100 500
CMMB-AS-02
CMMB-AS-04
CMMB-AS-07

Table 3-8: Recommended circuit breaker

ModelRated current[A]Poles [P]Voltage[VAC]Release type
CMMB-AS-0110 2230 C
CMMB-AS-02
CMMB-AS-0416 2
CMMB-AS-07

Chapter 4 Controller setup with LED panel

After the servo system has been wired properly and in accordance with relevant standards, the motor controller can be setup for the desired application.

The CMMB motor controller provides an LED panel at the front panel. It consists of a 5-digit LED display and four buttons. Following general functions are possible with this LED panel:

  • Real time display of actual values at the LED display. The value which is displayed can be selected in the F001 menu, Real_Speed_RPM (d1.25) is shown as a default display, for other selections please see chapter 9 table 9-1.
  • Blinking display of error or warning information
  • Display of controller parameters and their modification
  • Easy controller setup using special menu functions EASY and tunE

Different functions and parameter groups are arranged in a menu structure. The 4 buttons can be used to navigate through that menu structure, select single parameters, modify values and access special functions.

4.1 Panel operation

Table 4-1: Panel view

Item Function
Dot 1N/A
Dot 2N/A
Dot 3When setting parameters: distinguishes between the data for the current object group and the object address inside the group.When the internal 32 bit data_appears at the display, the display is showing the high 16 bit of the current 32 bit data.Indicates that the earliest error information in the error history is being displayed when the error history record in F007 appears at the display.
Dot4When setting parameters and displaying real-time data, indicates the format of the data: HEX data when dot 4 is on and DEC data when dot 4 is off.Indicates that the latest error information in the error history is being displayed when the error history record in F007 appears at the display.
Dot5Lights up to indicate that data has been successfully modified when setting parameters.Lights up to indicate that internal data is being displayed when real time data appears.The controller's power stage is operative when dot 5 flickers.
MODESwitch function menu.When setting parameters, press briefly to switch the setting bit, press and hold to return to the last menu.
Increases the value.
Reduces the value.
SETEnter menu.Check the values of the parameters.Confirm the setting to access the next step.When the internal 32 bit data appears at the display, press and hold to switch high / low 16 bit.
Overall flashError or warning status. Lit up for 1s and dark for 1s indicates a controller error. Continuous flashing (3 consecutive rapid flashes) indicates that the controller is in a warning state.

4.2 Panel menu structure and navigation

The following flowchart shows the main structure of the panel. The user can select single parameters, modify values and access special functions using this flow. A list of all accessible parameters and values can be found in chapter 9.

Festo CMMB-AS-02 - Panel menu structure and navigation - 1

flowchart
graph TD
    A["Switch on"] --> B["CPLd3"]
    B --> C["Driver ID"]
    C --> D["Monitor State"]
    D --> E["EASY"]
    E --> F["SET"]
    F --> G["EAD 1"]
    E --> H["tunE"]
    H --> I["SET"]
    I --> J["tn0 1"]
    E --> K["F00 1"]
    K --> L["SET"]
    L --> M["d1.00"]
    M --> N["d1.0 1"]
    K --> O["F002"]
    O --> P["SET"]
    P --> Q["d200"]
    Q --> R["d20 1"]
    K --> S["F003"]
    S --> T["SET"]
    T --> U["d300"]
    U --> V["d30 1"]
    K --> W["F004"]
    W --> X["SET"]
    X --> Y["d400"]
    Y --> Z["d40 1"]
    K --> AA["F005"]
    AA --> AB["SET"]
    AB --> AC["d500"]
    AC --> AD["d50 1"]
    K --> AE["F006"]
    AE --> AF["SET"]
    AF --> AG["JOG Mode"]
    K --> AH["F007"]
    AH --> AI["SET"]
    AI --> AJ["Error History"]

Figure 4-1: Parameters setting

4.3 Easy Use function

The Easy Use function helps users setup the CMMB motor controller for the main types of applications in a very short time. The LED panel guides the userstep by step through the settings of the few most important parameters in order to prepare the controller for the desired application. The servo control loops of the motor controller are pre-configured to useful default settings which are adequate for many applications at as they are. A robust auto-tuning function can be used additionally to identify the applied mechanical system more precisely. After that, the user only needs to adjust the controller's servo performance with the stiffness parameter.

4.3.1 Setup process with Easy Use function

The process for setting up the CMMB motor controller with the Easy Use function follows a simple procedure. Step 1: The parameters of the EASY panel menu have to be accessed and confirmed, or set one by one. The auto-recognized motor type can be confirmed, the control interface has to be selected, interface-related main parameters have to be set and the mechanical- and control-application types must be chosen. Afterwards, these parameters have to be saved and the controller has to be rebooted. As a result of these settings the controller is configured for a suitable I/O setting and the servo control loop parameters are set to matching defaults. The controller is ready for use for a wide range of standard applications and can be tested.

Step 2: If the servo control performance of the controller has to be further improved, the tunE panel menu must be accessed. With the help of the functions in this menu, the controller can start an auto-tuning motor run in order to identify motor load conditions and to measure the inertia. After that the controller calculates the inertia ratio, which is the ratio of the measured inertia and the motor inertia. Depending on the obtained inertia ratio the controller defines a suitable stiffness value for the servo behavior. Using the inertia ratio and the stiffness value the controller tunes the servo loops automatically.

Step 3: Inside the tunE menu the stiffness can be adjusted up/down simply by panel buttons. The stiffness adjustment can be done also during the testing of the application, while the controller is being commanded via the selected command interface. After finding the best value for stiffness the tunE parameters need to be saved and the controller is finally ready for use. If the adjustment of the stiffness does not result in the required performance, the PC software "CMMB configurator" can be used to for further optimisation.

Festo CMMB-AS-02 - Setup process with Easy Use function - 1

flowchart
graph TD
    A["START"] --> B["Execute the flow chart of EASY"]
    B --> C{Jog the machine, evaluate the performance}
    C -->|Good| D["Adjust the Stiffness by Tn01"]
    C -->|Not good| E["Measure the Inertia Ratio by Tn03"]
    E --> F{Jog the Machine, evaluate the performance}
    F -->|Good| G["END"]
    F -->|Not Good| H["Adjust Gain by PC"]
    H --> G
    C -->|Not good| I["Measure the Inertia Ratio by Tn03"]
    I --> F
    style C fill:#f9f,stroke:#333
    style F fill:#f9f,stroke:#333

Figure 4-2: Flow chart of the Easy Use function

4.3.2 Flowchart and description of the EASY menu

The following flowchart and table explain the procedure for settings in the EASY menu in detail.

Festo CMMB-AS-02 - Flowchart and description of the EASY menu - 1

flowchart
graph TD
    A["FFFF"] --> B["MODE"]
    C["0000"] --> D["MODE"]
    B --> E["EASY"]
    D --> E
    E --> F["SET"]
    F --> G["EA01"]
    G --> H["SET"]
    H --> I["404b Motor Type"]
    I --> J["SET"]
    J --> K["404b LED is blinking. Press MODE can shift, the parameters below display in the same way"]
    K --> L["SET"]
    L --> M["404b Gear Factor Numerator"]
    M --> N["SET"]
    N --> O["1000 Gear Factor denominator"]
    O --> P["SET"]
    P --> Q["EA04"]
    Q --> R["SET"]
    R --> S["1000 Gear Factor denominator"]
    S --> T["SET"]
    T --> U["EA05"]
    U --> V["SET"]
    V --> W["0300 Analog Speed Factor ,Unit is rpm/V"]
    W --> X["SET"]
    X --> Y["EA06"]
    Y --> Z["SET"]
    Z --> AA["1000 From right to left, each LED represent Load Type, Application, Limited Switch, Polar of Alarm Output"]
    AA --> AB["SET"]
    AB --> AC["EA07"]
    AC --> AD["SET"]
    AD --> AE["0000 Homing Method"]
    AE --> AF["SET"]
    AF --> AG["EA00"]
    AG --> AH["SET"]
    AH --> AI["0001 Write &quot;1&quot; to save all the parameters. Write &quot;2&quot; to save all the parameters and restart the servo Write &quot;3&quot; to reboot the servo Write &quot;10&quot; to initialize the parameters Notice: Users MUST save all parameters and reboot the controller if changing the motor type"]
    style A fill:#f9f,stroke:#333
    style C fill:#f9f,stroke:#333
    style K fill:#f9f,stroke:#333
    style M fill:#f9f,stroke:#333
    style L fill:#f9f,stroke:#333
    style N fill:#f9f,stroke:#333
    style O fill:#f9f,stroke:#333
    style Q fill:#f9f,stroke:#333
    style R fill:#f9f,stroke:#333
    style S fill:#f9f,stroke:#333
    style T fill:#f9f,stroke:#333
    style U fill:#f9f,stroke:#333
    style V fill:#f9f,stroke:#333
    style W fill:#f9f,stroke:#333
    style X fill:#f9f,stroke:#333
    style Y fill:#f9f,stroke:#333
    style Z fill:#f9f,stroke:#333
    style AA fill:#f9f,stroke:#333
    style AB fill:#f9f,stroke:#333

Figure 4-3: Flowchart of the EASY menu

Festo CMMB-AS-02 - Flowchart and description of the EASY menu - 2

Information

The menu is exited automatically if there is no operation in 30s, and users have to start again. Entered data is valid immediately, but must be saved via EA00.

Table 4-2: EASY menu parameters

LEDParameterDescriptionDefault
EA01 Motor TypeFor a new motor controller, the set motor type is "00" and "3030" appears at the LED display. If the new motor controller is connected to a valid motor, the motor type is auto-recognized and saved.The motor type saved in the controller and the connected motor type are compared later on. If they are different, "FFFF" flashes at the LED display. The user needs to confirm the EA01 value, save motor data and reboot the controller to eliminate this state.Examples of motor type, motor code and EA01 display value.Motor code Motor type LED displayYY EMMB-AS-40-01... 5959Y0 EMMB-AS-60-02... 3059Y1 EMMB-AS-60-04... 3159Y2 EMMB-AS-80-07... 3259/
EA02 Command TypeThe command type affects controller-internal interface settings, the initial operation mode after power on and the default settings for DIN- and OUT functions (refer to table 4-3).0: CW/CCW pulse train mode Operation mode = -41: P/D pulse train mode Operation mode = -42: A/B phase control master / slave mode Operation mode = -46: Analog velocity mode by AIN1 Operation mode = -37: Analog velocity mode by AIN2 Operation mode = -38: Communication9: Position table mode Operation mode = 11
EA03Gear Factor NumeratorUsed when EA02 is set to 0-2.By default, the display shows the values in decimal format. If the number is greater than 9999, the display is in hexadecimal format.1000
EA04Gear Factor Denominator1000
EA05Analog Speed FactorUsed when EA02 is set to 6 or 7.The relationship between analog input voltage and motor velocity the unit of measure is rpm/V.For controller use with standard EMMB-AS motors, the maximum value is 374, the maximum velocity is 3740rpm/10v/.For more details see chapter 9.3 (d3.29).300
EA061.Load type2.Application3.Limit switch4. Alarm output polarityThe meaning of each digit of the LED display from right to left.(1) Load type, influences the control loop.0: No load1: Belt drive2: Ball screw(2) Application, influences the control loop.0: P2P1: CNC2: Master / slave mode(3) Limit switch.0: Controller default1: Delete the limit switch function(4) Polarity of OUT50: Normally closed contacts1: Normally open contacts1001 with Firmware V00121011 with Firmware V0013
EA07Homing methodRefer to chapter 6.60
EA00Save ParametersWrite "1" to save control and motor parameters.Write "2" to save control and motor parameters and reboot the servo.Write "3" to reboot the servo.Write "10" to initialize the control parameters.Notice:Users must save control and motor parameters and reboot the controller after changing the motor type in EA01.After saving the parameters, the servo will set the control loop parameters according to the load type and application./

As a result of setting the command type in EA02, the digital I/O configuration of the controller is defaulted differently, depending on the command type setting as shown in the following table:

Table 4-3: The default settings related to EA02

Pulse TrainPosition tableAnalog Input for Velocity ControlControl via RS232
CW/CCW P/D (default) A/BChannel 1 Channel 2
EA02 01 2 9 6 7 8
DIN1EnableEnableEnableEnableEnableEnable
DIN2Reset ErrorsReset ErrorsReset ErrorsReset ErrorsReset ErrorsReset Errors
DIN3Start HomingStart HomingStart HomingStart HomingStart HomingStart Homing
DIN4P limit+P limit+P limit+PosTable Idx0P limit+P limit+P limit+
DIN5P limit-P limit-P limit-PosTable Idx1P limit-P limit-P limit-
DIN6Start PosTable
DIN7Home SignalHome SignalHome SignalHome SignalHome SignalHome SignalHome Signal
OUT1ReadyReadyReadyReadyReadyReadyReady
OUT2Motor BrakeMotor BrakeMotor BrakeMotor BrakeMotor BrakeMotor BrakeMotor Brake
OUT3Pos ReachedPos ReachedPos ReachedPos ReachedVelocity ReachedVelocity ReachedPos Reached
OUT4Zero SpeedZero SpeedZero SpeedPosTable ActiveZero SpeedZero SpeedZero Speed
OUT5ErrorErrorErrorErrorErrorErrorError

Festo CMMB-AS-02 - Information - 1

Note

Be aware of the different (default) setting of the digital I/O configuration after setting the command type in EA02 or changing a motor type. When settings are changed, an active function may be assigned to digital inputs which have not been in use before as a result of the new defaults, and signals applied to the digital inputs may inadvertently trigger DIN functions. It's recommended to proceed with EASY menu settings with unplugged X4 connector or disconnected power supply to the digital inputs.

It's strongly recommended to process the EASY menu with switched off drive power input.

Double check X4 wiring before switching on drive power input.

Festo CMMB-AS-02 - Note - 1

Information

The EASY and tunE menus are designed to be set with button originally. For safety reasons, the EASY and tunE menus provide only the parameters EA00, EA01 and tn00 if any of following cases happen, case 1: the user initializes the parameters by any way; case 2: a motor type is connected to the controller which is different to the in EA01 confirmed one; case 3: the motor type setting has been changed by other way rather than through EA01 (e.g. by PC software).

After the motor type becomes confirmed in EA01, the contents of the entries in the menus get default values and the menus get back the full function.

The following pages show four different I/O function configurations based on different command type settings in EA02 and typical related wiring diagrams for I/O connector X4.

Pulse train mode configuration, command types 0, 1 or 2 in EA02:

Festo CMMB-AS-02 - Information - 1

flowchart
graph TD
    A["Digital Input"] --> B["Enable"]
    B --> C["DIN1 4"]
    C --> D["Reset Errors"]
    D --> E["DIN2 6"]
    E --> F["Start Homing"]
    F --> G["DIN3 8"]
    G --> H["P limit+"]
    H --> I["DIN4 10"]
    I --> J["P limit-"]
    J --> K["DIN5 12"]
    K --> L["Home Signal"]
    L --> M["DIN6 14"]
    M --> N["DIN7 16"]
    N --> O["Input Common"]
    O --> P["COMI 2"]

    Q["Motor Brake"] --> R["OUT1+ 3"]
    R --> S["OUT1- 5"]
    S --> T["OUT2+ 7"]
    T --> U["OUT2- 9"]
    U --> V["OUT3 11"]
    V --> W["OUT4 20"]
    W --> X["OUT5 13"]
    X --> Y["COMO"]
    Y --> Z["Ready"]
    Z --> AA["Output Common"]

    AB["Input Command (<500k)"] --> AC["PUL+ / CW+ / A+ MA+ 27 Self-adapt"]
    AC --> AD["PUL- / CW- / A- MA- 29 Self-adapt"]
    AD --> AE["DIR+ / CCW+ / B+ MB+ 31 Self-adapt"]
    AE --> AF["DIR- / CCW- / B- MB- 33 Self-adapt"]
    AF --> AG["Z+ MZ+ 35 Self-adapt"]
    AG --> AH["Z- MZ- 18 Self-adapt"]

    AI["Encoder Output"] --> AJ["ENCO_A Encoder Out A+ 34"]
    AJ --> AK["ENCO_/A Encoder Out A- 36"]
    AK --> AL["ENCO_B Encoder Out B+ 30"]
    AL --> AM["ENCO_/B Encoder Out B- 32"]
    AM --> AN["ENCO_Z Encoder Out Z+ 26"]
    AN --> AO["ENCO_/Z Encoder Out Z- 28"]
    AO --> AP["+5V +5V +24V GND +24V VDD 15 VEE"]
    AP --> AQ["Internal 5V Output+ GND - Internal 5V Output- VDD 17 VEE"]

    AR["Internal 5V Output"] --> AS["VDD - Internal 24V Output+ GND - Internal 24V Output- VEE"]

    AT["Internal 24V Output"] --> AU["VDD - Internal 24V Output+ GND - Internal 24V Output- VEE"]

Figure 4-4: X4 wiring in pulse train mode

Analog control mode configuration, command types 6 or 7 in EA02:
Festo CMMB-AS-02 - Information - 2

flowchart
graph TD
    A["Digital Input"] --> B["Enable"]
    B --> C["DIN1 4"]
    C --> D["Reset Errors"]
    D --> E["DIN2 6"]
    E --> F["Start Homing"]
    F --> G["DIN3 8"]
    G --> H["P limit+"]
    H --> I["DIN4 10"]
    I --> J["P limit-"]
    J --> K["DIN5 12"]
    K --> L["Home Signal"]
    L --> M["DIN6 14"]
    M --> N["DIN7 16"]
    N --> O["Input Common COMI 2"]

    P["Analog Speed Command"] --> Q["AIN1+ 19"]
    P --> R["AIN1- 21"]
    P --> S["AIN2+ 23"]
    P --> T["AIN2- 25"]

    U["Max. Torque Limit"] --> V["A/D"]

    W["Digital Output"] --> X["Ready"]
    X --> Y["Motor Brake"]
    Y --> Z["Velocity Reached"]
    Z --> AA["Zero Speed"]
    AA --> AB["Error"]
    AB --> AC["Output Common COMO"]

    AD["Encoder Output"] --> AE["Encoder Out A+"]
    AD --> AF["Encoder Out A-"]
    AD --> AG["Encoder Out B+"]
    AD --> AH["Encoder Out B-"]
    AD --> AI["Encoder Out Z+"]
    AD --> AJ["Encoder Out Z-"]

    AK["Internal 5V Output+"] --> AL["VDD"]
    AK --> AM["VDD"]
    AK --> AN["VDD"]

    AO["Internal 24V Output+"] --> AP["VDD"]
    AO --> AQ["VDD"]
    AO --> AR["VDD"]

    AS["Internal 24V Output-"] --> AT["VDD"]
    AS --> AU["VDD"]

    style A fill:#f9f,stroke:#333
    style P fill:#ccf,stroke:#333
    style AD fill:#cfc,stroke:#333
    style AK fill:#fcc,stroke:#333

Figure 4-5: X4 wiring in analog control mode

Position table mode, command type 9 in EA02:
Festo CMMB-AS-02 - Information - 3

flowchart
graph TD
    A["Digital Input"] --> B["Enable"]
    A --> C["Reset Errors"]
    A --> D["Start Homing"]
    A --> E["PosTable Idx0"]
    A --> F["PosTable Idx1"]
    A --> G["Start PosTable"]
    A --> H["Home Signal"]
    A --> I["Input Common"]

    B --> J["DIN1 4"]
    C --> K["DIN2 6"]
    D --> L["DIN3 8"]
    E --> M["DIN4 10"]
    F --> N["DIN5 12"]
    G --> O["DIN6 14"]
    H --> P["DIN7 16"]
    I --> Q["COMI 2"]

    J --> R["OUT1+"]
    K --> S["OUT1-"]
    L --> T["OUT2+"]
    M --> U["OUT2-"]
    N --> V["OUT3"]
    O --> W["OUT4"]
    P --> X["OUT5"]
    Q --> Y["COMO"]

    R --> Z["Ready"]
    S --> AA["Motor Brake"]
    T --> AB["Pos Reached"]
    U --> AC["PosTable Active"]
    V --> AD["Error"]
    W --> AE["Output Common"]

    Z --> AF["Encoder Out A+"]
    Z --> AG["Encoder Out A-"]
    Z --> AH["Encoder Out B+"]
    Z --> AI["Encoder Out B-"]
    Z --> AJ["Encoder Out Z+"]
    Z --> AK["Encoder Out Z-"]

    AG --> AL["+5V"]
    AG --> AM["24V"]

    AH --> AN["VDD"]
    AH --> AO["VEE"]

    AI --> AP["Internal 5V Output+"]
    AI --> AQ["Internal 5V Output-"]

    AJ --> AR["Internal 24V Output+"]
    AJ --> AS["Internal 24V Output-"]

    AK --> AT["Internal 5V Output+"]
    AK --> AU["Internal 5V Output-"]

    AL --> AV["Encoder Out A+"]
    AL --> AW["Encoder Out A-"]

    AM --> AX["Encoder Out B+"]
    AM --> AY["Encoder Out B-"]

    AN --> AZ["Encoder Out Z+"]
    AN --> BA["Encoder Out Z-"]

    AO --> BB["Internal 24V Output+"]
    AO --> BC["Internal 24V Output-"]

Figure 4-6: X4 wiring in position table mode

RS232 control mode, command type 8 in EA02:
Festo CMMB-AS-02 - Information - 4

flowchart
graph TD
    A["Digital Input"] --> B["DIN1 4"]
    A --> C["DIN2 6"]
    A --> D["DIN3 8"]
    A --> E["DIN4 10"]
    A --> F["DIN5 12"]
    A --> G["DIN6 14"]
    A --> H["DIN7 16"]
    A --> I["COMI 2"]

    J["Home Signal"] --> K["COMI"]

    L["Input Common"] --> M["COMI"]

    N["OUT1+"] --> O["Ready"]
    P["OUT1-"] --> Q["Motor Brake"]
    R["OUT2+"] --> S["Pos Reached"]
    T["OUT2-"] --> U["Zero Speed"]
    V["OUT3"] --> W["Error"]
    X["OUT4"] --> Y["Output Common"]

    Z["ENCO_A"] --> AA["Encoder Out A+"]
    AB["ENCO_/A"] --> AC["Encoder Out A-"]
    AD["ENCO_B"] --> AE["Encoder Out B+"]
    AF["ENCO_/B"] --> AG["Encoder Out B-"]
    AH["ENCO_Z"] --> AI["Encoder Out Z+"]
    AJ["ENCO_/Z"] --> AK["Encoder Out Z-"]

    AL["+5V"] --> AM["+5V"]
    AN["GND"] --> AO["Internal 5V Output+"]
    AP["GND +24V"] --> AQ["VDD"]
    AR["VEE"] --> AS["VDD"]

    AT["Internal 24V Output+"] --> AU["Internal 24V Output-"]

    AV["Internal 5V Output"] --> AW["Encoder Output"]
    AX["Internal 24V Output"] --> AY["Internal 5V Output"]

Figure 4-7: X4 wiring in RS232 control mode

4.3.3 Flowchart and description of the tunE menu

The tunE panel menu includes parameters and functions for auto-tuning with inertia measurement and servo control loop adjustment via just one parameter, namely stiffness.

After processing the EASY menu, the controller defaults the stiffness value and the inertia_ratio based on reasonable estimated values according to, load type and application settings in EA06.

If the inertia ratio is known based on the machine's mechanical system and the payload, the value can be entered directly in tn02 (see table 4-4). The inertia ratio does not need to be 100% correct to achieve reasonable servo performance by adjustment of stiffness alone. But the more accurate the inertia ratio, the better the tuning algorithm can match the different servo control loops to each other. That's why it is highly advisable to obtain a precise inertia ratio result by means of inertia measurement.

The following flowchart and table explain the procedure for settings in the tunE menu in detail.

Festo CMMB-AS-02 - Flowchart and description of the tunE menu - 1

flowchart
graph TD
    A["0000 MODE"] --> B["EASY MODE"]
    B --> C["tune SET"]
    C --> D["tn01 SET SET 00.10 Stiffness"]
    D --> E["00.10 adjusted by “▼▲”level by level and will be valid immediately"]
    E --> F["tn02 SET 0050 Inertia ratio, unit is 0.1"]
    F --> G["0050 Write automatically after inertia measuring. Or written by user. adjusted by “▼▲”level by level and will be valid immediately"]
    G --> H["tn03 SET 0000 Write “1” to start inertia ratio measuring"]
    H --> I["0000 LED is blinking, Press MODE can shift. the parameters below display in the same way."]
    I --> J["0000 Confirm the parameter ,the first dot on the right will lighten. the parameters below display in the same way."]
    J --> K["tn04 SET 0022 Measuring Distance,unit is 0.01 cycle"]
    K --> L["tn00 SET 0000 Write 1 to save all the parameters"]
    L --> M["Circle"]
    M --> N["tn03 SET 0000"]
    N --> O["Set"]
    O --> P["0000 Convert to save all parameters and restart servo"]
    P --> Q["tn04 SET 0022"]
    Q --> R["Set"]
    R --> S["0022 Convert to save all parameters and restart servo"]

Figure 4-8: Flowchart for the tunE menu

Table 4-4: tunE parameters

LEDParameterDescriptionDefault
tn01 StiffnessLevel of control stiffness from 0 to31 determines the bandwidth (BW) of the velocity loop and the position loop (see table 4-5). The larger the value, the greater the stiffness. If this parameter is too large, gain will change excessively and the machine will become unstable.When setting tn01 via the up and down buttons on the panel, entered values are valid immediately, in order to ensure the input of small change steps.Belt: 10Screw: 13
tn02 Inertia_RatioRatio of total inertia and motor inertia (unit: 0.1) for example 30 represent an inertia ratio of 3.This value becomes defaulted by the EASY procedure and measured by the inertia measuring function in the tunE menu (tn03).When setting tn02 by the panel up down buttons, the data will be valid immediately, to ensure the input of small change steps.Belt: 50Screw: 30
tn03 Tuning_MethodWriting 1 starts auto-tuning inertia measurement. The controller is enabled and the motor executes an oscillating motion for less than 1s.If tuning is successful, Tuning_Method indicates a value of 1. The measured inertia is used to determine the Inertia_Ratio. Stiffness is set to 4 to 12 depending on the inertia ratio. The control loop parameters are set according to Stiffness and Inertia_Ratio.If the inertia measurement fails, Tuning_Method indicates the fail-reason:0: The controller could not be enabled by any reason.-1: Inertia cannot be measured due to too little motion or too little current.-2: The measured inertia result is outside the valid range.-3: The resulting Inertia_Ratio value is greater than 250 (inertia ratio > 25).This is a possible result, but the control loop will not be tuned.-4: The resulting Inertia_Ratio value is larger than 500 (inertia ratio > 50).This is an uncertain result.In the cases 0, -1, -2, -4 Inertia_Ratio is set to 30, in the case -3 Inertia_Ratio is set as measured, Stiffness is set to 7-10In any fail case the control loop parameters are set to Inertia_Ratio of 30 and the set Stiffness values. To make the measured Inertia_Ratio of case -3 become effective, the value of tn02 must be confirmed by SET.
tn04 Safe_DistInertia measuring distance (unit: 0.01 rev), for example 22 represents 0.22 motor revolutions. The maximum is 0.4 revolutions.22
tn00Saving parametersWrite "1" to save control and motor parameters.Write "2" to save control and motor parameters and reboot the servo.Write "3" to reboot the servo.Write "10" to initialize the control parameters.Note: Users must save control and motor parameters and reboot the controller when changing the motor type.

The auto-tuning algorithm uses the following table of control loop bandwidth settings in relation to the stiffness value:

Table 4-5: Stiffness and control loop settings

StiffnessKpp/[0.01Hz]Kvp/[0.1Hz]Output filter [Hz]StiffnessKpp/[0.01Hz]Kvp/[0.1Hz]Output filter [Hz]
0702518161945700464
1983524172223800568
21395035182500900568
319570491927781000733
426495662033341200733
53341208321388914001032
638914010022472317001032
747317011823555620001765
855620014624638923001765
963923016425750027001765
1075027018926861231001765
118893202222794453400
12105638026828102783700
13125045034029111124000
14150054036030125004500
15166760039231138895000

Festo CMMB-AS-02 - Flowchart and description of the tunE menu - 2

Information

When the setting for the stiffness or inertia ratio results in a Kvp value of greater than 4000, it isn't useful to increase stiffness any more

Festo CMMB-AS-02 - Information - 1

Note

The EASY procedure must be run first and completed, before tunE may be used.

Inertia measurement might cause the machine to oscillate, please be prepared to shut off controller power immediately.

Provide enough mechanical space for motor oscillation during inertia measurement in order to avoid machine damage.

Festo CMMB-AS-02 - Note - 1

Information

Reasons for the failure of tuning:

  • Incorrect wiring of the CMMB servo system
    ● DIN function Pre_Enable is configured but not active
    ● Too much friction or external force is applied to the axis to be tuned
    ● Too big backlash in the mechanical path between the motor and the load

  • Inertia ratio is too large
    ● The mechanical path contains too soft components (very soft belts or couplings)
    For more information about tuning see chapter 7

4.3.4 Jog mode (F006)

The Jog mode is intended to be used for a motor test run by the buttons of the LED panel without the need for any other command signal. No matter other Operation_Mode and velocity settings, in the Jog mode the controller controls the motor rotating with the velocity set by Jog_RPM(d3.52) in instantaneous velocity mode (Operation_Mode=-3, referred to chapter 6.1).

Steps of Jog operation:

Step 1: Check all wiring is right, ESAY flow has been completed.

Step 2: Enter panel address F003->d3.52, set Jog_RPM.

Step 3: Enter panel menu F006, address d6.40 appears, press ▼ several times until d6.15 appears, press ▲ several times until d6.25 appears (this is a safety procedure to ensure the ▲ and ▼ buttons work properly and do not stick in a pressed state).

Step 3: Press SET and the LED display shows 'Jog'.

Step 4: Press and hold ▲ for positive direction or ▼ for negative direction. The controller will become enabled automatically and the motor shaft will rotate with velocity Jog_RPM. Release ▲ and ▼, to stop the motor shaft. If in Step 4 for more than 20 seconds none of ▲ or ▼ was pressed, the Jog operation will quit and a new Jog operation needs to be started from Step 1 again.

Festo CMMB-AS-02 - Jog mode (F006) - 1

Note

In the JOG mode configured Limit Switch functions are not working, the limit switches will be ignored.

Be aware of the human reaction time when controlling the motor in Jog mode. Use slow velocity settings for the Jog mode, especially if the motor travel is limited by mechanical blocks.

Festo CMMB-AS-02 - Note - 1

Information

If the digital input function Pre_Enable is configured, the Jog mode requires this function active either by the correct DIN signal or by DIN simulation, otherwise the Jog mode will cause a controller error "External enable".

4.3.5 Error History (F007)

The CMMB controller stores the last 8 errors in the error history. Enter panel menu F007, press SET, the value of Error_State(2601.00) (see chapter 5.7, table 5-7) will be shown, if it displays 0001 then it's an extended error, press SET to show the value of Error_State2(2602.00) (see chapter 5.7, table 5-8).

Press ▲ or ▼ to go through all error history. On the LED display, from left to right, dot 3 indicates it's the earliest error, dot 4 indicates it's the latest error. There's mask to specify which errors will be stored in the error history, please see chapter 5.5 for more details.

Table 4-6: Panel F007 example

F007 LED displayMeaning
000.1The latest error is Extended Error. Press “SET” key to see the Error_State 2(2602.00) value.
02.00The earliest error is Following Error.
0100There was Chop Resistor error, it’s neither the earliest nor the latest error.

Chapter 5 CMMB configurator, user guide

This chapter contains information about how to use the PC software CMMB Configurator.

Festo CMMB-AS-02 - Chapter 5 CMMB configurator, user guide - 1

natural_image 3D rendering of a CMB Configurator with connected motor modules and wiring (no visible text or symbols)

Figure 5-1: Main window of CMMB Configurator

5.1 Getting started

5.1.1 Language

Language can be switched between English and Chinese via menu item Tools->Language.

5.1.2 Opening and saving project files

Create a new project file via menu item File->New, or by clicking the button.

Open an existing project via menu item File->Open, or by clicking the button and selecting a .kpjt file.

Save a project via menu item File->Save, or by clicking the button and saving as a .kpjt file.

Festo CMMB-AS-02 - Opening and saving project files - 1

Information

Only the windows (object list, scope etc.) are saved-parameters in the controller can't be saved in this way.

5.1.3 Starting communication

Click menu item Communication->Communication settings. The following window appears:

Communication Settings COM COM COM3 Refresh Baud 38400 OPEN COM ID 1

Figure 5-2: Communication settings

Select the right COM port (if it's not shown click the "Refresh" button), baud rate and COM ID (Node ID), and then click the "OPEN" button.

Once communication has been established with the controller, communication can be opened or closed by clicking the button.

5.1.4 Node ID and baud rate

If more than one controller is being used in an application, you may need different node ID for different controllers in order to distinguish amongst them.

The controller's Node ID can be changed via menu item Controller->Controller Property.

Table 5-1: Node ID and baud rate

Internal addressTypeNameValueUnit
100B.00Uint8Node_IDDEC
2FE0.00Uint16RS232_BaudrateBaud

Festo CMMB-AS-02 - Node ID and baud rate - 1

Information

Node ID and baud rate setting are not activated until after saving and rebooting.

5.1.5 Objects (add, delete, help)

Open any window with an object list, move the mouse pointer to the object item and right click. The following selection window appears:

5606000int8Operation_Mode
6604000uint16ControlwordAddDeleteHelp
7607A00int32Target_Position
8608100uint32Profile_Speed
9608300uint32Profile_Acc
10608400uint32Profile_Dec

Figure 5-3: Object

Click Add and double click the required object from the Object Dictionary. The selected object is then added to the list.

Click Delete. The selected object is removed from the list.

Click Help to read a description of the selected object in the Object Dictionary.

5.2 Init save reboot

Click Controller->Init Save Reboot. The following window appears:

Init Save Reboot Save Control Parameters Save Motor Parameters Init Control Parameters Reboot

Figure 5-4: Init save reboot

Click the corresponding item to finish the necessary operation.

Festo CMMB-AS-02 - Init save reboot - 2

Information

After completing the init control parameters, the Save Control Parameters and Reboot buttons must be clicked to load the default control parameters to the controller.

5.3 Firmware update

A new motor controller is always delivered with the latest firmware version. If the firmware needs to be updated for any reason, load the new firmware via menu item Controller->Load Firmware.

Load Firmware NULL Current FW CRC: 92DD6D74 Software Version FD201701230913-Fs Load File NULL Download

Figure 5-5: Load firmware

Click Load File to select the firmware file (.servo) and then click Download to start loading firmware to the controller.

Festo CMMB-AS-02 - Firmware update - 2

Information

Do not switch off the power or disconnect the RS232 cable during firmware loading. If the download process is interrupted, first reset controller power. Then select the firmware file and click the Download button, and finally start RS232 communication.

5.4 Read/write controller configuration

This function can be used to read / write multiple parameters simultaneously for large production lots, in order to avoid setting the controller parameters one by one.

5.4.1 Read settings from controller

Click Tools->R/W Controller Configuration->Read Settings from Controller or click the button. The following window appears.

Transfer Settings Write Settings to Controller Read Settings from Controller Open List No path Read from Controller Save to File NUM Index Driver Value Result Name _______________________________ _______________________________

Figure 5-6: Transfer settings

Click Open List to select a parameter list file (.cdo). The parameter appears in the window. Click Read Settings from Controller to get the Drive Value and Result, and then click Save to File to save the settings as a .cdi file.

Festo CMMB-AS-02 - Read settings from controller - 2

Information

The .cdo file defines which objects will be read out, but if the object doesn't exist in the controller, the result will be "False"(displayed in red).

5.4.2 Write settings to controller

Click Tools->R/W Controller Configuration->Write Settings to Controller or click the button. The following window appears:

Festo CMMB-AS-02 - Write settings to controller - 1

Information

Always disable the controller before writing settings to the CMMB, because some objects cannot be written successfully if the controller is enabled.

Transfer Settings Write Settings to Controller Read Settings from Controller Open File No path Write to Controller Save in EEPROM Reboot NUM Index Source Value Check Value Result Name _______________________________

Figure 5-7: Transfer settings

Click Open File to select a parameter settings file (.cdi). The parameter settings appear in the window. The .cdi file contains information including object address, object value and readout result. If readout result is "False", "Invalid" will appear immediately in red ion the Result fied.

Click Write to Controller to get the Check Value and Result. The "False" Result means the value has not been written successfully, probably because the object doesn't exist in the controller. Click Save in EEPROM and Reboot to activate all parameters.

5.5 Digital IO functions

Click menu item Controller->Digital IO Functions or click the I-0 button. The following window appears. Function and polarity are shown as defaults here.

Digital IO Functions Digital Input Num Function DIN1 Enable >> Simulate Real Polarity Internal DIN2 Reset Errors >> ● ● DIN3 Start Homing >> ● ● ● DIN4 P Limit + >> × ● ● ● DIN5 P Limit - >> × ● ● ● DIN6 >> × ● ● ● DIN7 Homing Signal >> × ● ● Digital Output Num Function OUT1 Ready >> × Simulate Real Polarity OUT2 Motor Brake >> × ● ● OUT3 Pos Reached >> × ● ● OUT4 Zero Speed >> × ● ● OUT5 Error >> × ● ●

Figure 5-8: Digital IO

5.5.1 Digital inputs

The CMMB motor controller provides 7 digital inputs. The functions of these digital inputs can be configured. Functions can be set via factory defaults or application default settings after processing the Easy setup menu (see chapter 4). The functions of the digital inputs can also be freely configured.

Digital Input Num Function × Simulate Real Polarity Internal DIN1 Enable >>

Figure 5-9: Digital Input

Function: Click >> to select DIN function setting, click ✗ to delete the DIN function setting.

Real: Shows the real digital input hardware status.

1 means "active", logic status of the digital input is 1.

0 means "inactive", logic status of the digital input is 0.

Simulate: Simulates the digital input active hardware signal.

1 means the digital input is simulated as "active", logic status 1.

0 means no impact on the digital input logic status.

Polarity: Inverts the logic status of the digital input.

1 means Internal is set to 1 by "active" signal.

0 means Internal is set to 1 by "inactive" signal.

Internal: This is the result of Simulate, Real and Polarity via the logic formula: Internal=(Real OR Simulate) XOR (NOT Polarity)

1 means "active", logic status of the selected function is 1.

0 means "inactive", logic status of the selected function is 0.

Festo CMMB-AS-02 - Digital inputs - 2

Information

  • More than one digital input function can be selected for a given digital input. If not contradictory in any way, the selected digital input functions are handled simultaneously.
  • Several digital input functions modify controller-internal control variables. Please familiarise yourself with the information in chapter 6.1, especially regarding Controlword and Operation_Mode, before modifying the configuration of any related digital input function.

The following table lists the digital input functions:

Table 5-2: Digital input functions

DIN Function Description
EnableController enabling1: Enable controller (Controlword= Din_Controlword(2020.0F) , default value=0x2F)0: Disable controller (Controlword = 0x06)
Reset ErrorsSets the Controlword to reset errors, active edge: 0 -> 1
Operation Mode selOperation_Mode selection1: Operation_Mode=EL.Din_Mode1 (2020.0E), default value = -30: Operation_Mode=EL.Din_Mode0 (2020.0D), default value = -4
Kvi Off1: Velocity control loop integrating gain off0: Velocity control loop integrating gain has been setRefer to chapter 7 for more information about Kvi.
P limit+Positive / negative position limit switch input for “normally closed” limit switches0: position limit is active, the related direction is blocked
P limit-
Home SignalHome switch signal, for homing
Invert DirectionInverts command direction in the velocity and torque mode
Din Vel Index0Din_Speed Index in the DIN speed mode
Din Vel Index1
Din Vel Index2
Quick StopSets the controlword to start quick stop. After quick stop, the controlword needs to be set to 0x06 before 0x0F for enabling (if the enable function is configured in Din, just re-enable it)
Start HomingStarts homing. Only makes sense if the controller is enabled. The controller returns to the previous operation mode after homing.
Activate CommandActivates the position command. Controls bit 4 of the Controlword, e.g. Controlword=0x2F->0x3F
Multifunction0Gear ratio switch (refer to chapter 5.5.3 for more details)
Multifunction1
Multifunction2
Gain Switch 0PI control gain switch (refer to chapter 5.5.4 for more details)
Gain Switch 1
Motor Error1: Provokes the “Motor temperature” controller error. Can be used to monitor motor temperature by means of an external temperature switch or PTC sensor. Polarity must be set according to sensor type.
Fast_Capture1Fast Capture (refer to chapter 5.5.5 for more details)
Fast_Capture2
Pre EnableFor safety reasons, Pre_Enable can serve as a signal for indicating whether or not the entire system is ready.1: controller can be enabled0: controller can not be enabled
PosTable Cond0Position table condition for position table mode
PosTable Cond1
Start PosTableStart position flow of position table mode
PosTable Idx0Position table starting index of position table mode
PosTable Idx1
PosTable Idx2

Abort PosTable

Abort position flow of position table mode

5.5.2 Digital outputs

The CMMB motor controller provides 5 digital outputs. The functions of these digital outputs can be configured. Functions can be set via factory defaults or application default settings after processing the Easy setup menu (see chapter 4). The functions of the digital outputs can also be freely configured also.

Digital Output Num Function OUT1 Ready Simulate Real Polarity >>

Figure 5-10: Digital output

Function: Click >> to select the OUT function setting. Click ✗ to delete the OUT function setting.

Simulate: Simulates the digital output function logic status 1.

1 means the digital output function is simulated as logic status 1 0 means no impact on the digital output function logic status

Polarity: Inverts the logic status of the digital output function.

1 means Real physical digital output is set to ON by digital output function logic status 1 0 means Real physical digital output is set to ON by digital output function logic status 0

Real: Shows the real digital output status. This is the result of Simulate, Polarity and the logic status of the selected digital output function via the logic formula:

Real=(Dout_Function_Status OR Simulate) XOR (NOT Polarity)

Festo CMMB-AS-02 - Digital outputs - 4

Festo CMMB-AS-02 - Digital outputs - 5

Information

More than one digital output function can be selected for a given digital output. The resulting status is the OR logic of the selected digital output functions.

The following table lists the digital output functions:

Table 5-3: Digital output functions

OUT FunctionDescription
ReadyController is ready to be enabled
ErrorController error
Pos ReachedUnder position mode, position difference between Pos_Actual and Pos_Target=Position_Window_time(6068.00)
Zero Speed|Speed_1ms(60F9.1A)|<=Zero_Speed_Window(2010.18) and duration >=Zero_Speed_Time(60F9.14)
Motor BrakeSignal for controlling the motor brake. By this signal an external relay can be controlled, by which the motor brake is controlled. (see chapter 3.2.4).
Speed Reached|Speed_Error(60F9.1C)|<Target_Speed_Window(60F9.0A)
Enc IndexEncoder position is inside a range around the index position. This range is defined by Index_Window(2030.00).
Speed LimitIn torque mode actual speed reached Max_Speed(607F.00)
Driver EnabledController enabled
Position LimitPosition limit function is active
Home FoundHome found
Enc WarningEncoder warning
PosTable ActivePosition table mode running

5.5.3 Gear ratio switch (expert only)

Festo CMMB-AS-02 - Gear ratio switch (expert only) - 1

Information

This function is recommended for experienced users only.

There are 8 groups of gear ratio parameters which can be selected via the digital inputs. Gear ratio is only used for pulse train mode (see chapter 6.5).

Table 5-4: Gear ratio switch

Internal addressTypeNameValueUnit
2508.01Int16Gear_Factor[0]Dec
2508.02Uint16Gear_Divider[0]Dec
2509.01Int16Gear_Factor[1]Dec
2509.02Uint16Gear_Divider[1]Dec
2509.03Int16Gear_Factor[2]Dec
2509.04Uint16Gear_Divider[2]Dec
2509.05Int16Gear_Factor[3]Dec
2509.06Uint16Gear_Divider[3]Dec
2509.07Int16Gear_Factor[4]Dec
2509.08Uint16Gear_Divider[4]Dec
2509.09Int16Gear_Factor[5]Dec
2509.0AUint16Gear_Divider[5]Dec
2509.0BInt16Gear_Factor[6]Dec
2509.0CUint16Gear_Divider[6]Dec
2509.0DInt16Gear_Factor[7]Dec
2509.0EUint16Gear_Divider[7]Dec

The actual gear ratio is Gear_Factor[x], Gear_Divider[x], whereas x is the BCD code of

bit 0: Multifunction0

bit 1: Multifunction1

bit 2: Multifunction2

A bit which is not configured to a DIN is 0.

Example:

DIN3 Multifunction0 >> ✗ DIN4 Multifunction1 >> ✗ DIN5 Multifunction2 >> ✗ ● ● ● ●

Figure 5-11 Din gear ratio switch example

Multifunction0=0, Multifunction1=1, Multifunction2=1, so x=6, actual gear ratio is Gear_Factor[6], Gear_Divider[6].

5.5.4 Gain switch (expert only)

Festo CMMB-AS-02 - Gain switch (expert only) - 1

Information

This function is recommended for experienced users only, who are familiar with the basics of servo loop tuning.

There are 4 groups of PI gain settings, where each group contains the proportional (Kvp) and integral (Kvi) gain of the velocity control loop and the proportional gain (Kpp) of the position control loop. The CMMB motor controller provides several methods for selecting a group of PI gain settings dynamically.

Table 5-5: PI gain setting group parameters

Internal addressTypeNameValueUnit
60F9.01Uint16Kvp[0]Dec, Hz
60F9.02Uint16Kvi[0]Dec
60FB.01Int16Kpp[0]Dec. Hz
2340.04Uint16Kvp[1]Dec, Hz
2340.05Uint16Kvi[1]Dec
2340.06Int16Kpp[1]Dec. Hz
2340.07Uint16Kvp[2]Dec, Hz
2340.08Uint16Kvi[2]Dec
2340.09Int16Kpp[2]Dec. Hz
2340.0AUint16Kvp[3]Dec, Hz
2340.0BUint16Kvi[3]Dec
2340.0CInt16Kpp[3]Dec. Hz
60F9.28Uint8PI_PointerDec
60F9.09Uint8PI_SwitchDec

The actual PI settings are Kvp[x], Kvi[x], Kpp[x], x=PI_Pointer.

There are 3 methods for changing PI_Pointer.

Method 1: The Gain Switch 0 and / or Gain Switch 1 function is configured to DIN. PI_Pointer is the BCD code of

bit 0: Gain Switch 0

bit 1: Gain Switch 1

If only one bit is configured, the other bit is 0.

Example:

DIN3 Gain Switch0 DIN4 Gain Switch1

Figure 5-12: Din gain switch example

Gain Switch0=1, Gain Switch1=0, then PI_Pointer=1, the valid PI gain settings are Kvp[1], Kvi[1] and Kpp[1]

Method 2: If Method 1 is not applied, set PI_Switch(6069.09) to 1. Then, while the motor is rotating, set PI_Pointer ti =0. As soon as Pos Reached or Zero Speed, set PI_Pointer to =1

This is the function for a system which needs different PI gain settings for rotation and standstill.

Festo CMMB-AS-02 - Example: - 2

Information

Refer to the OUT function table in chapter 5.5.2 for Pos Reached and Zero Speed definition.

Method 3: If neither method 1 nor method 2 is applied, the PI_Pointer value can be defined by the user. The default setting of 0 is highly recommended.

5.5.5 Fast Capture

The Fast Capture function is used to capture the Position_Actual(6063.00) when the related DIN edge occurs. Response time is maximum 2ms.

Table 5-6: Fast capture objects

Internal addressTypeNameValueUnit
2010.20Uint8Rising_Captured1Dec
2010.21Uint8Falling_Captured1Dec
2010.22Uint8Rising_Captured2Dec
2010.23Uint8Falling_Captured2Dec
2010.24Int32Rising_Capture_Position1Dec
2010.25Int32Falling_Capture_Position1Dec
2010.26Int32Rising_Capture_Position2Dec
2010.27Int32Falling_Capture_Position2Dec

When DIN function Fast_Capture1 is configured to DIN and a rising DIN edge occurs, Rising_Captured1 is changed to 1. At the same moment Pos_Actual is stored to Rising_Capture_Position1. If a falling DIN edge occurs, Falling_Captured1 is to 1. At the same moment Pos_Actual is stored to Falling_Capture_Position1. Once Rising_Captured1 or Falling_Captured1 is changed to 1, the user needs to reset them to 0 for the next capturing operation, because any further edges after the first one will not be captured.

See Fast_Capture1 concerning DIN function Fast_Capture2.

5.6 Scope

The scope function is for sampling the selected objects' value with a flexible sample cycle (defined by

Sample Time) and a flexible total sample number (defined by Samples)

During operation, if performance does not meet the requirement or any other unexpected behaviour occurs, it's highly advisable to use the scope function to do the analysis.

Click Controller-->Scope or click to open the scope window

Scope Zoom Depth:0 Scope Mode:Normal Sample Time 62.5us 1 CH Object Value Unit Hide Small Scale Y Offset Auto Samples 500 I_q > Ap 0 0 Trig Source Trig Offset 250 Speed_QEI_Back > rpm 0 0 Null > Pos_Actual > inc 0 0 Trig Level 4 Pos_Actual > inc 0 0 Start Reread Export Import Single Cursors X1 X2 Sel CH Y1 Y2 Null X1 X2 dX Unit us Y1 Y2 dY Unit

Figure 5-13: Scope window

Trig offset: Number of samples before the trigger event occurs.

Object: Maximum 64-bit length data can be taken in one sample, e.g.: 2 Int32 objects bit or 4 Int16 objects.

Single: ☑ Single means sample for one trigger event only. □ Single means sample continuously.

Zoom in / zoom out the oscillogram: Press the right mouse key and drag to lower right / upper left. Left mouse click on ☐ activates the horizontally drag mode, the icon changes to ☐ and inside the oscillogram display area the mouse cursor changes to finger shape. A zoomed oscillogram can be moved then in horizontal direction by pressing the left mouse button and dragging to left/right.

Left mouse click on 📋 or any zoom-in or zoom-out action cancels the drag mode automatically.

X1 X2

Cursors: Up to 4 scope cursors can be selected by clicking the respective button: Y1 Y2. The scope cursors appear in the oscillogram. Select a channel in the Sel CH list box. Move the mouse pointer to the scope cursor. Press left mouse button and drag the scope cursor to move it. A sample value and the differences of X1, X2 and Y1, Y2 appear in the following fields:

X1 X2 dX Unit us Y1 Y2 dY Unit

Figure 5-14: Cusor data

Export: Exports the sampled data as a .scope file.

Import: Imports a .scope file and shows the oscillogram in the scope window.

Reread: Rereads the last scope data out of the controller and shows the oscillogram in the scope window.

Auto: If the checkbox Auto is checked, the oscillogram is auto-scaled.

If Auto is not checked, the oscillogram is scaled by scale and offset value in following field:

Festo CMMB-AS-02 - Scope - 3
Figure 5-15: Scale and offsetr data

Scale and offset value can be increased by pressing the ▲ button, and can be reduced by pressing the ▼ button. If Small scale checkbox is checked, scale value changing step is changed to 10% as before.

Scope Mode: On the upper left side of the oscillogram the Scope Mode "Normal" or "Import" is shown.

-Normal: all buttons are active.

Festo CMMB-AS-02 - Scope - 4
Figure 5-16: Scope mode: Normal

-Import: If the oscillogram is an import from a .scope file, the scope mode will be "Import", in this mode the Start, Reread button will be inactive. The "Import" mode can be quit by clicking the "Here" on the hint.

Scope Zoom Depth:0;Time Grid:3118.75uS Scope Mode:Import.Switch to Normal mode press Here

Figure 5-17: Scope mode: Import

5.7 Error display and error history

Error: Click Controller->Error Display or click the button (which turns red if an error occurs). The Error Display window appears. It shows the last errors.

Table 5-7: Error_State(2601.00) Information

BitError nameError codeDescription
0Extended ErrorRefer to object "Error_State 2"(2602.00)
1Encoder not connected0x7331No communication encoder connected
2Encoder internal0x7320Internal encoder error
3Encoder CRC0x7330Communication with encoder disturbed
4Controller Temperature0x4210Heatsink temperature too high
5Overvoltage0x3210DC bus overvoltage
6Undervoltage0x3220DC bus undervoltage
7Overcurrent0x2320Power stage or motor short circuit
8Chop Resistor0x7110Overload, brake chopper resistor
9Following Error0x8611Max. following error exceeded
10Low Logic Voltage0x5112Logic supply voltage too low
11Motor or controller IIt0x2350Motor or power stage IIt error
12Overfrequency0x8A80Pulse input frequency too high
13Motor Temperature0x4310Motor temperature sensor alarm
14Encoder information0x7331No encoder connected or no encoder communication reply
15EEPROM data0x6310EEPROM checksum fault

Table 5-8: Error_State2(2602.00) Information

BitError nameError codeDescription
0Current sensor0x5210Current sensor signal offset or ripple too large
1Watchdog0x6010Software watchdog exception
2Wrong interrupt0x6011Invalid interrupt exception
3MCU ID0x7400Wrong MCU type detected
4Motor configuration0x6320No motor data in EEPROM / motor never configured
5Reserved
6Reserved
7Reserved
8 External enable 0x5443DIN "pre_enable" function is configured, but the DIN is inactive when the controller is enabled / going to be enabled
9 Positive limit 0x5442Positive position limit (after homing) - position limit only causes error when Limit_Function (2010.19) is set to 0.
10 Negative limit 0x5441Negative position limit (after homing) position limit only causes error when Limit_Function(2010.19) is set to 0.
11SPI internal0x6012Internal firmware error in SPI handling
12Reserved
13Closed loop direction0x8A81Different direction between motor and position encoder in closed loop operation by a second encoder.
14Reserved
15Master counting0x7306Master encoder counting error

Festo CMMB-AS-02 - Error display and error history - 1

Information

There's a mask checkbox beside every error item, all are defaulted to be checked, means it can be unchecked, means it can't be unchecked. An unchecked item mean the related error will be ignored. The error mask can be set in Error_Mask(2605.01) and Error_Mask(2605.04) also (see table 5-9)

Error History: Click menu item Controller->Error History. The error history list window appears. It shows the last 8 errors' Error codes and respective the related DCBUS voltage, speed, current, controller temperature, Operation_Mode, and controller working time at the moment when the error occurred. There are mask parameters to specify which errors will be stored in the error history (see table 5-9). Table 5-9 Error and error history mask

Internal addressTypeNameMeaning (Bit meaning please see table5-7 and table 5-8)Default
2605.01Uint16Error_MaskMask of Error_State(2601.00). Bit = 0 means related error will be ignored.0xFFFF
2605.02Uint16Store_Mask_ONError mask for Error_History of Error_State(2601.00) when controller is enabled. Bit = 0 means related error won't be stored in the Error_History0xFBF
2605.03Uint16Store_Mask_OFFError mask for Error_History of Error_State(2601.00) when controller is not enebled. Bit = 0 means related error won't be stored in the Error_History0x0000
2605.04Uint16Error_Mask2Mask of Error_State2(2602.00). bit = 0 means related error will be ignored0xFFFF
2605.05Uint16Store_Mask_ON2Error mask for Error_History of Error_State2(2602.00) when controller is enebled. Bit = 0 means related error won't be stored in the Error_History0xF1FF
2605.06Uint16Store_Mask_OFF2Error mask for Error_History of Error_State2(2602.00) when controller is not enebled. Bit = 0 means related error won't be stored in the Error_History0x003F

Chapter 6 Operation modes and control modes

Controller parameters can be set via the control panel or the RS232 port (e.g. with CMMB Configurator software). In the following introduction, both the panel address (if it's available) and the internal address will be shown in the object tables.

6.1 General steps for starting a control mode

Step 1: Wiring

Make sure that the necessary wiring for the application is done correctly (refer to chapter 3).

Step 2: IO function configuration

See chapter 5.5 concerning meanings of the IO function and polarity.

Table 6-1: Digital input function

Panel addressInternal addressTypeNameValue (hex): description
d3.012010.03Uint16Din1_Function0001: Enable0002: Reset Errors0004: Operation Mode sel0008: Kvi Off0010: P limit+0020: P limit-0040: Homing Signal0080: Invert Direction0100: Din Vel Index00200: Din Vel Index11000: Quick Stop2000: Start Homing4000: Activate Command8001: Din Vel Index28004: Multifunction08008: Multifunction18010: Multifunction28020: Gain Switch 08040: Gain Switch 18100: Motor Error8200: Pre Enable8400: Fast_Capture18800: Fast_Capture29001: PosTable Cond09002: PosTable Cond19004: Start PosTable9008: PosTable Idx09010: PosTable Idx19020: PosTable Idx29040: Abort PosTable
d3.022010.04Uint16Din2_Function
d3.032010.05Uint16Din3_Function
d3.042010.06Uint16Din4_Function
d3.052010.07Uint16Din5_Function
d3.062010.08Uint16Din6_Function
d3.072010.09Uint16Din7_Function

Table 6-2: Digital output function

Panel addressInternal addressTypeNameValue (hex): description
d3.112010.0FUint16Dout1_Function0001: Ready0002: Error0004: Pos Reached0008: Zero Speed0010: Motor Brake0020: Speed Reached0040: Enc Index0080: Speed Limit0100: Driver Enabled0200: Position Limit0400: Home Found8002: Enc Warning9001: PosTable Active
d3.122010.10Uint16Dout2_Function
d3.132010.11Uint16Dout3_Function
d3.142010.12Uint16Dout4_Function
d3.152010.13Uint16Dout5_Function

Table 6-3: Polarity setting

Panel addressInternal addressTypeNameDescription
d3.532010.01Uint16Din_PolarityBit 0: DIN1Bit 1: DIN2Bit 2: DIN3...Bit 6: DIN7
d3.542010.0DUnit16Dout_PolarityBit 0: OUT1Bit 1: OUT2Bit 2: OUT3...Bit 5: OUT6

Switch\_On\_Auto (expert only)

If the Enable function is not configured to DIN, the controller can be auto-enabled at power-on or reboot, with the following setting:

Table 6-4: Switch_On_Auto

Panel addressInternal addressTypeNameValue
d3.102000.00Unit8Switch_On_Auto1

Festo CMMB-AS-02 - Switch\_On\_Auto (expert only) - 1

Note

This method is not recommended. Please consider all risks and related safety measures before using.

Step 3: Set necessary parameters

The user can access a basic operating parameters list by clicking Controller->Basic Operation. For more parameters, please add according to the introduction in chapter 5.1.5. The following pages in this chapter introduce the operating parameters. Refer to chapter 7 concerning performance adjustment.

Table 6-5: Common parameters

Panel addressInternal addressType NameDescription
6083.00Uint32Profile_AccProfile acceleration, profile deceleration, for Operation_Mode 1 and 3
6084.00Uint32Profile_Dec
d2.246080.00Uint16Max_Speed_RPMMaximal speed (unit: rpm)
d3.162020.0DInt8Din_Mode0If Operation Mode Sel function is configured to DIN,Operation_Mode(6060.00)=Din_Mode0 whenDin_Internal=0; Operation_Mode=Din_Mode1 whenDin_Internal=1
d3.172020.0EInt8Din_Mode1
6073.00Uint16CMD_q_MaxOutput current limit
6040.00Uint16Controlword0x0F/0x2F: Enable the controller for Operation_Mode 3, -3, -4, 4 and for Position Table mode0x2F->0x3F: Activate absolute position command for Operation_Mode 10x4F->0x5F: Activate relative position command for Operation_Mode 10x0F->0x1F: Start homing for Operation_Mode 60x06->0x86: Reset the controller error0x06: Disable the controller
6060.00Int8 Operation_Mode-3: Instantaneous velocity mode3: Profile velocity mode1: Position mode-4: Pulse train mode4: Torque mode

Festo CMMB-AS-02 - Step 3: Set necessary parameters - 1

Information

Operation_Mode itself is not savable, however, it is set in accordance with the settings in the Command_Type(3041.02) or EA02 in the EASY panel menu to a suitable value (see table 4-2 for EA02). Alternatively, Operation_Mode can be configured to be settable and/or switchable by the DIN function Operate_Mode_Sel (see table 5-2).

Step 4: Save and reboot

See chapter 5.

Step 5: Start operation

Start operation via DIN or PC software.

Festo CMMB-AS-02 - Step 5: Start operation - 1

Information

The DIN function has highest priority – the object value can not be modified manually anymore if it's configured in DIN, e.g. if the enable function is configured, Controlword(6040.00) cannot be modified manually via PC software.

6.2 Velocity mode (-3, 3)

There are 2 kinds of velocity mode: -3 and 3. The velocity command can be specified via Target_Speed or analog input (analog speed mode), or via digital input (DIN speed mode).

Table 6-6: Velocity mode

Panel addressInternal addressTypeNameDescriptionValue
6060.00Int8 Operation_Mode-3: The velocity command is specified directly by Target_Speed. Only the velocity control loop is active.3: The velocity command is specified by Target_Speed with profile acceleration and profile deceleration. Velocity- and position control loops are active.-3 or 3
60FF.00Int32Target_SpeedTarget velocityUser defined
6040.00Uint16ControlwordSee table 6-50x0F, 0x06

6.2.1 Analog speed mode

The analog speed object window in the PC software can be accessed via menu item Controller->Control Modes->Analog Speed Mode.

Table 6-7: Analog speed mode

Panel addressInternal addressTypeNameDescriptionValue
2501.06Uint16ADC1_Buff[1]AIN1 input real dataRead only
d1.132502.0FInt16Analog1_outAIN1 valid input; analog input signal1 (AIN1) input voltage after filter, deadband and offset
2501.07Uint16ADC2_Buff[1]AIN2 input real data
d1.142502.10Int16Analog2_outAIN2 valid input; analog input signal2 (AIN2), input voltage after filter, deadband and offset
d3.222502.01Uint16Analog1_FilterAIN1 filter (unit: ms)User defined
d3.232FF0.1DInt16Analog1_Dead_VAIN1 deadband (unit: 0.01V)
d3.242FF0.1EInt16Analog1_Offset_VAIN1 offset (unit: 0.01V)
d3.252502.04Uint16Analog2_FilterAIN2 filter (unit: ms)
d3.262FF0.1FInt16Analog2_Dead_VAIN2 deadband (unit: 0.01V)
d3.272FF0.20Int16Analog2_Offset_VAIN2 offset (unit: 0.01V)
2502.0AInt16Analog_Speed_FactorAIN speed factor
d3.282502.07Uint8Analog_Speed_Con0: analog velocity control OFF, velocity control via Target_Speed(60FF.00)1: Speed control via AIN12: Speed control via AIN20, 1, 2
2502.0DInt16Analog_Dead_HighDefault is 0, if it's NOT 0, Analog_out>Analog_Dead_High is treated as 0User defined
2502.0EInt16Analog_Dead_LowDefault is 0, if it's NOT 0, Analog_out<Analog_Dead_Low is treated as 0
d3.332FF0.22Int16Voltage_MaxT_FactorAIN-MaxTorque factor (unit: mNM/V)User defined
d3.322502.09Uint8Analog_MaxT_Con0: Analog_MaxTorque control OFF1: Max. torque control via AIN12: Max. torque control by AIN20, 1, 2

For convenience, some new names are used in the formula. Definitions:

AIN1_in: AIN1 input voltage after filter and offset

AIN2_in: AIN2 input voltage after filter and offset

Analog_out: Analog1_out or Analog2_out, depends on wiring and Analog_Speed_Con setting; It's the result of AIN real input, filter, offset and deadband.

Final result:

Analog_Speed control ON:

If Analog_out is not limited by Analog_Dead_High or Analog_Dead_Low:

Target speed[rpm]=Analog_out[V]*Analog_Speed_Factor[rpm/V]; otherwise Target speed[rpm]=0.

Analog_MaxTorque control ON:

Max torque[Nm]=Analog_out[V]*Analog_MaxT_Factor[Nm/V]

Example:

Setting: Analog1_Dead=1V, Analog1_Offset=2V, Analog_Speed_Factor=100rpm/V, Analog_Speed_Con=1, Analog_Dead_High=0V; Analog_Dead_Low=0V;

Where AIN1 input voltage is 5V:

AIN1_in=5V-2V=3V, |AIN1_in| >Analog1_Dead, so Analog1_out=3V-1V=2V;

Target speed=2*100=200rpm.

Where AIN1 input voltage is -5V:

AIN1_in=-5V-2V=-7V, |AIN1_in|>Analog1_Dead, so Analog1_out=-7V+1V=-6V;

Target speed=-6*100=-600rpm.

6.2.2 DIN speed mode

The Din_Speed object window in PC software can be accessed from menu item Controller->Control Modes->DIN Speed Mode.

To make the DIN Speed Mode available, at least one of the following has to be configured to DIN: Din Vel Index0, Din Vel Index1, Din Vel Index2.

Table 6-8: DIN speed mode

Panel addressInternal addressTypeNameDescriptionValue
d3.182020.05Int32Din_Speed[0]The velocity command is specified via Din_Speed[x].x is the BCD code ofBit 0: Din Vel Index0Bit 1: Din Vel Index1Bit 2: Din Vel Index2A bit which is not configured means 0.User defined
d3.192020.06Int32Din_Speed[1]
d3.202020.07Int32Din_Speed[2]
d3.212020.08Int32Din_Speed[3]
d3.442020.14Int32Din_Speed[4]
d3.452020.15Int32Din_Speed[5]
d3.462020.16Int32Din_Speed[6]
d3.472020.17Int32Din_Speed[7]

Example:

IO configuration

NumFunction×SimulateRealPolarityInternal
DIN1Enable>>×
DIN2Reset Errors>>×
DIN3Operate Mode Sel>>×
DIN4Din Vel Index0>>×
DIN5Din Vel Index1>>×
DIN6Din Vel Index2>>×

Figure 6-1: DIN Speed example

Table 6-9: DIN speed example

Panel addressInternal addressTypeNameValueUnit
d3.172020.0EInt8Din_Mode1-3
d3.202020.07Int32Din_Speed[2]500rpm

Din Vel Index0=0; Din Vel Index1=1; Din Vel Index2=0. As soon as DIN1 is active, the controller runs the motor in the velocity mode(Operation_Mode=-3) at 500rpm speed if there aren't any unexpected errors or limits.

6.3 Torque mode (4)

In the torque mode, the CMMB motor controller causes the motor to rotate with a specified torque value.

Table 6-10: Torque mode

Panel addressInternal addressTypeNameDescriptionValue
6060.00Int8Operation_Mode4
6071.00Int16 Target_Torque%Target torque, percentage of rated torqueUser defined
6040.00Uint16ControlwordSee table 6-50x0F, 0x06

6.3.1 Analog torque mode

In the analog torque mode, the CMMB motor controller controls motor torque and / or maximum torque by means of analog input voltage.

The analog torque object window in the PC software can be accessed via menu item Controller->Control Modes->Analog Torque Mode.

Table 6-11: Analog torque mode

Panel addressInternal addressTypeNameDescriptionValue
2501.06Uint16ADC1_Buff[1]AIN1 real input voltageRead Only
d1.132502.0FInt16Analog1_outAIN1 valid input, analog input signal1 (AIN1), input voltage after filter, deadband and offset
2501.07Uint16ADC2_Buff[1]AIN2 input real data
d1.142502.10Int16Analog2_outAIN2 valid input, analog input signal2 (AIN2), input voltage after filter, deadband and offset
d3.222502.01Uint16Analog1_FilterAIN1 filter (unit: ms)User defined
d3.232FF0.1DInt16Analog1_Dead_VAIN1 deadband (unit: 0.01V)
d3.242FF0.1EInt16Analog1_Offset_VAIN1 offset (unit: 0.01V)
d3.252502.04Uint16Analog2_FilterAIN2 filter (unit: ms)
d3.262FF0.1FInt16Analog2_Dead_VAIN2 deadband (unit: 0.01V)
d3.272FF0.20Int16Analog2_Offset_VAIN2 offset(unit: 0.01V)
d3.312FF0.21Int16Voltage_Torque_FactorAIN-Torque factor (unit: mNM/V)
d3.302502.08Uint8Analog_Torque_Con0: Analog_Torque_control OFF, target torque is specified by Target_Torque% (6071.00)1: Torque control via AIN12: Torque control via AIN20, 1, 2
d3.332FF0.22Int16Voltage_MaxT_FactorAIN-MaxTorque factor (unit: mNM/V)User defined
d3.322502.09Uint8Analog_MaxT_Con0: Analog_MaxTorque control OFF1: max. torque control via AIN1;2: max. torque control via AIN20, 1, 2

For convenience, some new names are used in the formula. The definitions are as follows:

AIN1_in: AIN1 input voltage after filter and offset.

AIN2_in: AIN2 input voltage after filter and offset.

Analog_out: Analog1_out or Analog2_out, depends on wiring and Analog_Torque_Con setting. It's the result of AIN real input, filter, offset and deadband.

Final Result:

When Analog_Torque control is ON, target torque[Nm]=Analog_out[V]*Analog_Torque_Factor[Nm/V].

When Analog_MaxTorque control is ON, max. torque[Nm]=Analog_out[V]*Analog_MaxT_Factor[Nm/V].

Example:

Refer to chapter 6.2.1, "Analog speed mode".

6.4 Position mode (1)

In the position mode, the CMMB motor controller causes the motor to rotate to an absolute or relative position. The position / velocity command is specified via Target_Position / Profile_Speed or via position table (Position Table Mode)

Table 6-12: Position mode

Panel addressInternal addressTypeNameDescriptionValue
6060.00Int8Operation_Mode1
607A.00Int32Target_PositionTarget absolute / relative positionUser defined
6081.00Int32Profile_SpeedProfile speed for positioningUser defined
6040.00Uint16ControlwordSee table 6-50x2F->0x3F,0x4F->0x5F,0x0F, 0x06

6.4.1 Position Table mode

The position table mode is used to run a positioning flow with up to 32 tasks in the position mode. Each task includes information about target position, velocity, acceleration, deceleration, next task stop / go, next task index, condition to go to next index, total loops and etc.

The Start PosTable function must be configured to a DIN in order to make the position table mode available. Other position table functions are optional.

Table 6-13: Din functions of the position table mode

NameDescription
PosTable Cond0If Cond0 ON, Condition0 = PosTable Cond0 (refer to introduction concerning Cond0 ON)
PosTable Cond1If Cond1 ON, Condition1 = PosTable Cond1 (refer to introduction concerning Cond1 ON)
Start PosTableStart position flow
PosTable Idx0Entry index of position flow, bit0: PosTable Idx0; bit1: PosTable Idx1; bit2: PosTable Idx2. A bit which is not configured to DIN means 0.
PosTable Idx1
PosTable Idx2
Abort PosTableAbort position flow

Table 6-14: OUT functions of the position table mode

NameDescription
PosTable ActivePosition table mode running

In the PC software, click menu item Controller->Control Modes->Position Table Mode in order to enter position table parameter settings.

CTL Reg of index:0
Bit0-4:Next IndexBit5Bit6Bit7Bit8:Next/StopBit9:Cond 0Bit10:Cond 1Bit11:And/OrBit12-13:MODEBit14-15:StartCond.
0000000000
IdxMODEStartCond.Pos incSpeed rpmDelay msAcc idxDec idxCTL RegLoopsRestAcc rps/sDec rps/s
0AIgnore00000000000
1AIgnore00000000100
2AIgnore00000000200
3AIgnore00000000300
4AIgnore00000000400
5AIgnore00000000500
6AIgnore00000000600
7AIgnore00000000700
8AIgnore0000000
9AIgnore00000

Figure 6-2: Position table mode window
The DIN Start PosTable signal (rising edge) triggers the entry index (specified via the DIN function) task, but whether or not the task is executed depends on the start condition (CTL reg bit14-15). After one task is finished, it goes to the next index (CTL reg bit0-4) or stops, depending on Next / Stop (CTL reg bit 8), Condition (CTL reg bit 9-11) and Loops. The current index box shows the index of the task which is being executed.
Up to 32 position control tasks can be set, and each task contains the following items:

Idx: Index of task, range: 0-31
Posinc: Position command
Speed rpm: Speed command during positioning
Delay ms: Delay time before going next index(unit: ms).
Accidx, Dec idx: Range: 0-7, index of profile acceleration, deceleration during positioning, related acc / dec value is set in following area fields:

Acc rps/sDec rps/s
000
100
200
300
400
500
600
700

Figure 6-3: Acceleration and deceleration table

CTL Reg: Contains following bits:

Bits 0-4: Next index, defines the index of the next position control task

Bits 5-7: reserved

Bit 8: Next / stop,

1: Next; go to next task if condition (see bit9-11) = 1 and loops checking is OK (see Loops) after current positioning task is finished. 0: Stop; stop after current positioning task is finished

Bit9: Cond0 ON,

1: Cond0 ON; condition0 means Logic status of DIN function PosTable Cond0. 0: Cond0 OFF

Bit 10: Cond1 ON,

1: Cond1 ON; condition1 = Rising edge of DIN function PosTable Cond1. 0: Cond1 OFF

Bit 11: and / or; only on case of both Cond0 and Cond1 is ON,

1: AND; Condition = (Condition0&&Condition1). 0: OR; Condition = (Condition0||Condition1). Condition = 1 if neither Cond0 nor Cond1 is ON Condition = Condition0 if only Cond0 is ON Condition = Condition1 if only Cond1 is ON

Bits 12-13: MODE, mode of the position command,

0 (A): Posinc is the absolute position. 1 (RN): Posinc is the position relative to current target position. 2 (RA): Posinc is the position relative to the actual position.

Bits 14-15: StartCond, start condition. If this task is triggered by the Start PosTable signal, normally the controller will execute it immediately, but if there's a positioning task still running:

0 (ignore): ignore.

1 (wait): execute this command after current task is finished (without delay).

2 (interrupt): interrupt the current task, execute this command immediately.

For convenience, all CTL_Reg bits can be set in the following fields:

CTL Reg of index:2
Bit0-4:Next IndexBit5Bit6Bit7Bit8:Next/StopBit9:Cond 0Bit10:Cond 1Bit11:And/OrBit12-13:MODEBit14-15:StartCond.
0000000000

Figure 6-4: CTL Reg edit

Loops: Defines loop limit for the task which is running in loops;

0: no limit,

≥ 1: max. number of task's execution in a running position flow. If a task has been executed Loops times already, the position flow will stop on the next attempt to go to this task again.

Rest: Shows the remaining number of possible task executions in the running position flow, if Loops ≥ 1;

0: no further execution of this task, if Loops ≥ 1,

≥ 1: remaining number of possible executions of this task in the running position flow.

Position control task information can be copied to another row. Right click a selected row and the following selection window appears:

Idx | MODE | StartCond. | Pos inc 0 | A | Wait | 400 1 | A | Cope Row 2 | A | Paste Row 3 | A |

Figure 6-5: Position table copy

Click Copy Row and then click PasteRow in another selected row.

When the position table is completed, click the Write Table button to write it to the controller.

Start the table via DIN with the Start PosTable function. The entry index task is triggered and position flow is started (via StartCond rule).

The DIN AbortPosTable signal (rising edge) or deleting the Start PosTable function configuration in DIN aborts a running position flow after the currently running task is finished.

Position flow is aborted immediately if an error occurs or if the Operation_Mode is changed.

Festo CMMB-AS-02 - CTL Reg: Contains following bits: - 2

Information

The table in the window is not written to the controller automatically. The button has to be clicked. The table can be read out of the controller and into the window by clicking the Read Table button. A table can be imported from an existing .pft file to the windowby clicking Import Table, and it can be exported from the window to a .pft file by

6.5 Pulse Train mode (-4)

In the pulse mode, the target velocity command is specified via the pulse input with gear ratio.

Table 6-15: Pulse mode

Panel addressInternal addressTypeNameDescriptionValue
6060.00Int8Operation_Mode-4
d3.342508.01Int16Gear_Factor[0]Gear_ratio=Gear_Factor/Gear_DividerUser defined
d3.352508.02Uint16Gear_Divider[0]
6040.00Uint16ControlwordSee table 6-50x0F, 0x06
d3.362508.03Uint8PD_CWPulse train mode0: CW / CCW1: Pulse / direction2: A / B (incremental encoder)0, 1, 2
d3.372508.06Uint16PD_FilterPulse filter (ms)User defined
d3.382508.08Uint16Frequency_CheckFrequency limit (inc/ms), if pulse count (in 1 ms) is greater than Frequency_Check, over frequency error occurs.

Table 6-16: PD_CW schematic

Pulse mode Forward Reverse
P/DFesto CMMB-AS-02 - Pulse Train mode (-4) - 1Festo CMMB-AS-02 - Pulse Train mode (-4) - 2
CW/CCWFesto CMMB-AS-02 - Pulse Train mode (-4) - 3Festo CMMB-AS-02 - Pulse Train mode (-4) - 4
A/BFesto CMMB-AS-02 - Pulse Train mode (-4) - 5Festo CMMB-AS-02 - Pulse Train mode (-4) - 6

Festo CMMB-AS-02 - Pulse Train mode (-4) - 7

Information

Forward means positive position counting's defaulted to the CCW direction. You can set Invert_Dir(607E.00) to 1 in order to invert the direction of motor shaft rotation.

PD_filter effect principle:
Festo CMMB-AS-02 - Information - 1

line | Filter TimeFilter Time | Command After Filter | Command Before Filter | | ---------------------- | -------------------- | --------------------- | | 0 | Px0.293 | Px0.707 | | End | Px0.293 | Px0.707 |

Figure 6-6: Pulse filter principle

6.5.1 Master-slave mode

The master-slave mode is a type of pulse train mode - PD_CW = 2. The pulse input for the slave controller comes from an external incremental encoder or the encoder output of the master controller. Encoder output (ENCO) signal resolution of the master controller is specified via Encoder_Out_Res.

Table 6-17: Master-slave mode

Panel addressInternal addressTypeNameDescriptionValue
2340.0FInt32Encoder_Out_ResSpecify encoder output pulse number for 1 motor encoder revolutionUser defined

For slave controller parameter setting, please refer to upper introduction of pulse mode.

Wiring between the master and the slave is as follows:

34 ENCO_A ENCO_/A36 ENCO_B30 ENCO_/B32 ENCO_Z26 ENCO_/Z28 MA+ 27 MA- 29 MB+ 31 MB- 33 MZ+ 35 MZ- 18

Figure 6-7: Master slave wiring (example: from one CMMB controller to another)

6.6 Homing mode (6)

For some applications, the system needs to start from the same position every time after power on. In the homing mode, the user can specify the system's home position and a zero (starting) position.

Click menu item Controller->Control Modes->Homing definition, and the following window appears:

Homing Definition Homing Trigger Use the Index Signal Use Limit Switch Use Home Switch By Special Method Disabled Configuration Origin Search Direction Positive Dir. Negative Dir. Limit Switch Use Limit Switch Positive Limit Negative Limit Home Switch Use Home Switch High Level Low Level Actual Home Method 0 Pre-Set Home Method 34 Write Down Home Offset 0 DEC Home back speed 300.00 rpm Home speed 100.00 rpm Home ACC 50.00 rps/s Home Current 5.68 Ap Start Homing When Power on Home offset Method 0:Run to Home -Offset Home Blind 0:0 Rev Index Signal 33 34 Description: Methods 33 and 34: Homing on the index

Figure 6-8: Homing settings

Select a home trigger under Homing Trigger. The related items appear in the configuration area. Select a suitable item according to mechanical design and wiring. The Appropriate homing_method then appears in the Pre-Set Home Method box. If Disabled is selected under homing trigger, you enter a number directly to the Pre-Set Home Method field. Click Write Down to set it to the controller.

The corresponding diagram of the Pre-Set Home method appears in the middle area.

All homing mode objects are listed in following table:

Table 6-18: Homing mode

Panel addressInternal addressTypeNameDescriptionValue
607C.00Int32Home_OffsetZero position offset to the home positionUser defined
6098.00Int8Homing_MethodSee figure 6-8
6099.01Uint32Homing_Speed_SwitchVelocity for searching position limit switch / home switch signal
6099.02Uint32Homing_Speed_ZeroVelocity for finding home position and zero position
6099.03Uint8 Homing_Power_On1: Start homing after power on or reboot and first controller enable0, 1
609A.00Uint32Homing_AccelerationProfile deceleration and acceleration during homingUser defined
6099.04Int16Homing_CurrentMax. current during homing
6099.05Uint8Home_Offset_Mode0: Go to the homing offset point. The actual position will be 0.1: Go to the home trigger point. The actual position will be -homing offset.0, 1
6099.06Uint8 Home_N_BlindHome blind window0: 0rev1: 0.25rev2: 0.5rev0, 1, 2
6060.00Int8Operation_Mode6
6040.00Uint16ControlwordSee table 6-50x0F->0x1F, 0x06

Festo CMMB-AS-02 - Homing mode (6) - 2

Note

Homing_Power_On=1 causes the motor to start rotating as soon as the controller is enabled after power on or reboot. Consider all safety issues before using.

Home\_N\_Blind:

If the homing_method needs home signal (position limit / home switch) and index signal, Home_N_Blind function can avoid the homing result being different with the same mechanics, when the Index signal is very close to the home signal. By setting to 1 before homing, the controller detects a suitable blind window for homing automatically. It can be used to assure that homing results are always the same.

During homing, the index signal inside this blind window is ignored after the home signal is found.

Home_N_Blind (0:0rev;1:0.25rev;2:0.5rev) is defaulted to 0. If it's set to 1, it's changed to 0 or 2 after homing depending on the index signal position relative to the homing signal. This parameter needs to be saved. If the mechanical assembly is changed or the motor has been replaced, just set it to 1 again for initial homing.

Table 6-19: Introduction to the Homing_Method

Homing_MethodDescription Schematic
1Homing with negative position limit switch and index pulseIndex Signal Festo CMMB-AS-02 - Home\_N\_Blind: - 1Negative Limit
2Homing with positive position limit switch and index pulseIndex SignalPositive LimitFesto CMMB-AS-02 - Home\_N\_Blind: - 2
3Homing with home switch and index pulseIndex SignalHome SignalFesto CMMB-AS-02 - Home\_N\_Blind: - 3
4Homing with home switch and index pulseIndex SignalHome SignalFesto CMMB-AS-02 - Home\_N\_Blind: - 4
5Homing with home switch and index pulseIndex SignalHome SignalFesto CMMB-AS-02 - Home\_N\_Blind: - 5
6Homing with home switch and index pulseFesto CMMB-AS-02 - Home\_N\_Blind: - 6Index SignalHome Signal
7Homing with positive position limit switch, home switch and index pulseFesto CMMB-AS-02 - Home\_N\_Blind: - 7Index SignalHome SignalPositive Limit
8Homing with positive position limit switch, home switch and index pulseFesto CMMB-AS-02 - Home\_N\_Blind: - 8Index SignalHome SignalPositive Limit
9Homing with positive position limit switch, home switch and index pulseFesto CMMB-AS-02 - Home\_N\_Blind: - 9Index SignalHome SignalPositive Limit
10Homing with positive position limit switch, home switch and index pulseIndex SignalHome SignalPositive LimitFesto CMMB-AS-02 - Home\_N\_Blind: - 10
11Homing with negative position limit switch, home switch and index pulseIndex SignalHome SignalNegative LimitFesto CMMB-AS-02 - Home\_N\_Blind: - 11
12Homing with negative position limit switch, home switch and index pulseIndex SignalHome SignalNegative LimitFesto CMMB-AS-02 - Home\_N\_Blind: - 12
13Homing with negative position limit switch, home switch and index pulseIndex SignalHome SignalNegative LimitFesto CMMB-AS-02 - Home\_N\_Blind: - 13
14Homing with negative position limit switch, home switch and index pulseIndex SignalHome SignalNegative LimitFesto CMMB-AS-02 - Home\_N\_Blind: - 14
17Homing with negative position limit switchFesto CMMB-AS-02 - Home\_N\_Blind: - 15Negative Limit
18Homing with positive position limit switchFesto CMMB-AS-02 - Home\_N\_Blind: - 16Positive Limit
19Homing with home switchFesto CMMB-AS-02 - Home\_N\_Blind: - 17Home Signal
20 Homing with home switchFesto CMMB-AS-02 - Home\_N\_Blind: - 18Home Signal
21 Homing with home switchFesto CMMB-AS-02 - Home\_N\_Blind: - 19Home Signal
22 Homing with home switchFesto CMMB-AS-02 - Home\_N\_Blind: - 20Home Signal
23Homing with positive position limit switch and home switchFesto CMMB-AS-02 - Home\_N\_Blind: - 21Home SignalPositive Limit
24Homing with positive position limit switch and home switchFesto CMMB-AS-02 - Home\_N\_Blind: - 22Home SignalPositive Limit
25Homing with positive position limit switch and home switchFesto CMMB-AS-02 - Home\_N\_Blind: - 23Home SignalPositive Limit
26Homing with positive position limit switch and home switchFesto CMMB-AS-02 - Home\_N\_Blind: - 24Home SignalPositive Limit
27Homing with negative position limit switch and home switchFesto CMMB-AS-02 - Home\_N\_Blind: - 25Home SignalNegative Limit
28Homing with negative position limit switch and home switchFesto CMMB-AS-02 - Home\_N\_Blind: - 26Home SignalNegative Limit
29Homing with negative position limit switch and home switchFesto CMMB-AS-02 - Home\_N\_Blind: - 27Home SignalNegative Limit
30Homing with negative position limit switch and home switchFesto CMMB-AS-02 - Home\_N\_Blind: - 28Home SignalNegative Limit
33, 34 Homing with index pulseIndex SignalFesto CMMB-AS-02 - Home\_N\_Blind: - 29 Festo CMMB-AS-02 - Home\_N\_Blind: - 30 Festo CMMB-AS-02 - Home\_N\_Blind: - 31
35 Homing to actual position
-17, -18Homing via mechanical limitNegative Limit Festo CMMB-AS-02 - Home\_N\_Blind: - 32 Festo CMMB-AS-02 - Home\_N\_Blind: - 33 Positive Limit

Chapter 7

Tuning of the servo system control

Festo CMMB-AS-02 - Tuning of the servo system control - 1

flowchart
graph TD
    A["Profile generator"] --> B["Average filter"]
    B --> C["Profile position"]
    C --> D["+"]
    D --> E["Speed demand analog1 analog2"]
    E --> F["Speed demand lowpass filter"]
    F --> G["+"]
    G --> H["kvi"]
    H --> I["+"]
    I --> J["Notch filter"]
    J --> K["Observer K-load"]
    K --> L["Lowpass s"]
    L --> M["Real speed"]
    M --> N["dx/dt"]
    N --> O["Actual position"]
    O --> P["Motor Feedback"]
    P --> Q["DCBUS-"]
    Q --> R["Current loop"]
    R --> S["Current feedback"]
    S --> T["DCBUS+"]
    T --> U["POWER"]
    U --> V["Acceleration feedforward"]
    V --> W["Profile speed"]
    W --> X["+"]
    X --> Y["Speed demand lowpass filter"]
    Y --> Z["+"]
    Z --> AA["+"]
    AA --> AB["Notch filter"]
    AB --> AC["Observer K-load"]
    AC --> AD["Lowpass s"]
    AD --> AE["Real speed"]
    AE --> AF["Kvi"]
    AF --> AG["+"]
    AG --> AH["+"]
    AH --> AI["Current loop"]
    AI --> AJ["DCBUS-"]
    AJ --> AK["Power"]

Figure 7-1: Servo system control block diagram

Figure 7.1 shows the servo system control block diagram. It can be seen from the figure that the servo system generally includes three control loops: current loop, velocity loop and position loop.

The adjustment process of a servo system is used to set loop gain and filters to match the mechanical characteristics, and finally to prevent the entire system from oscillating, to permit it to follow commands quickly and to eliminate abnormal noise.

7.1 Auto-tuning

The auto-tuning function will try to stimulate the motor and load system by some motions, and get the inertia of the load. If auto-tuning is successful, stiffness will be auto-set according to the inertia ratio.

Festo CMMB-AS-02 - Auto-tuning - 1

flowchart
graph TD
    A["Stimulate generator"] --> B["Control Loops"]
    B --> C["Power module Motor"]
    C --> D["&Load"]
    D --> E["Autotuning Module"]
    E --> F["Inertia, Auto-Stiffness"]
    F --> B
    B --> G["Position,Speed,Current"]
    G --> B

Figure 7-2: Auto-tuning

Caution: auto-tuning causes the motor to oscillate for about 1 second and the maximum oscillation range is roughly 0.5 rev: make sure that your machine system can withstand this oscillation.

7.1.1 Parameters for auto-tuning

Table 7-1: Auto-tuning function parameters

Panel addressInternal addressNameDescriptionDefaultRangeR: readW: writeS: save
tn013040.08StiffnessRange:0-31.Link to stiffness table.120-31RWS
tn02 3040.0B Inertia_RatioInertia_Ratio=(J_Load+J_Motor)*10/J_Motor3010-500RWS
tn033040.01Tuning_MethodWrite 1 starts tuning and inertia measurement. If 1 appears after tuning, tuning has been successful.RW
tn043040.06Safe_DistUnit: 0.01revThis parameter indicates the theoretical range of motion during auto-tuning.Setting this parameter to a higher value reduce disturbance influence and makes results more reliable, but alsoresults in greater oscillation.22 0-40 RWS

7.1.2 Start of auto-tuning

Via the LED panel (see chapter 4.3):

Open the tunE menu in the LED panel and go to tn03.

Write 1 to tn03. The motor oscillates with a small amplitude, the oscillation lasts less than 1s.

If tn03 remains at 1 after auto-tuning is done, auto-tuning has been successful. Otherwise it has failed (see 7.1.3).

Via PC software:

Click CMMB Configurator menu item Controller->Operation Modes->Auto-tuning

NUMIndexTypeNameValueUnit
0304001int8Tuning_Method0DEC
1304006uint16Safe_Dist22DEC
2304007int32EASY KLOAD992DEC
3304009int8Inertia_Get_Result0DEC
4304008uint8Stiffness12DEC
530400Bint16Inertia_Ratio30DEC
6304105uint8WriteFUN_CTL0DEC

Figure 7-3: Auto-tuning

Write 1 to TUN CTL (3041.05), and then write 1 to Tuning Method (3040.01). The motor oscillates for less than 1s and the results appear. If Inertia_Get_Result(3040.09) = 1 the tuning process was able to obtain a valid Inertia_Ratio(3040.0B). Otherwise the tuning process has failed, see 7.1.3 for hints. Write 1 to the Tuning_Method(3041.01) again to check that the Inertia_Ratio result is reproducible. If not, carefully increase

Safe_Dist(3040.06) to get more precise results. If the machine shakes too much, reduce_Safe_Dist to reduce oscillation.

7.1.3 Problems with auto-tuning

If the tuning process has failed, the error result of tn03 / Inertia_Get_Result(3040.09) tells the fail-reason:

0: The controller could not be enabled by any reason.

-1: Inertia cannot be measured due to too little motion or too little current.
-2: The measured inertia result is outside the valid range.
-3: The resulting Inertia_Ratio value is greater than 250 (inertia ratio > 25). This is a possible result, but the control loop will not be tuned.
-4: The resulting Inertia_Ratio value is larger than 500 (inertia ratio > 50). This is an uncertain result. In the cases 0, -1, -2, -4 Inertia_Ratio is set to 30, in the case -3 Inertia_Ratio is set as measured, Stiffness is set to 7-10

In any fail case the control loop parameters are set to Inertia_Ratio of 30 and the set Stiffness values. To make the measured Inertia_Ratio of case -3 become effective, the value of tn02 must be confirmed by SET or the Inertia_Ratio(3040.0B) must be written once.

Festo CMMB-AS-02 - Problems with auto-tuning - 1

Information

Reasons for the failure of auto-tuning:

  • Incorrect wiring of the CMMB servo system
    ● DIN function Pre_Enable is configured but not active
    ● Too much friction or external force is applied to the axis to be tuned
    ● Too big backlash in the mechanical path between the motor and the load
  • Inertia ratio is too large
    ● The mechanical path contains too soft components (soft belts or couplings)

If none of those reasons can be encountered, Safe_Dist may be increased in order to remedy problems. If auto-tuning still fails, manual tuning (see chapter 7.2) is advised to be executed.

7.1.4 Adjustment after auto-tuning.

After auto-tuning the stiffness is set to a value in the range of 4 to 12. The greater the inertia ratio, the smaller the stiffness value will be.

Table 7-2: Stiffness and control loop settings

StiffnessKpp/[0.01Hz]Kvp/[0.1Hz]Output filter [Hz]
0702518
1983524
21395035
31957049
42649566
533412083
6389140100
7473170118
8556200146
StiffnessKpp/[0.01Hz]Kvp/[0.1Hz]Output filter [Hz]
161945700464
172223800568
182500900568
1927781000733
2033341200733
21388914001032
22472317001032
23555620001765
24638923001765
9639230164
10750270189
11889320222
121056380268
131250450340
141500540360
151667600392

Stiffness should be adjusted according to the actual requirement.

If response is too slow → increase stiffness. If oscillation or noise increases → reduce stiffness.

If the command from the controller (e.g. PLC) is unreasonable or inappropriate for the machine, some filters should be modified in order to reduce oscillation (see chapter 7.3 manual tuning).

Festo CMMB-AS-02 - Adjustment after auto-tuning. - 1

Information

When the stiffness setting or the inertia ratio increases Kvp to a value of greater than 4000, it's not useful to increase stiffness any more, and bandwidth will be decreased if the inertia ratio is further increased. If changing stiffness via communication, WriteFUN_CTL(3041.05) must be set to 1 first, and be set back to 0 after stiffness has been changed.

7.2 Manual tuning

If the auto-tuning function does not support the actual application, or if the application has a gap, inertia changes or a very soft connection, manual tuning is the right choice.

The manual tuning process makes use of test motion. Match the controller to the actual application on the basis of experience with the application and a given scope of data by changing loop gain and filter settings.

Since current loop parameters are calculated internally based on the motor parameters, there is normally no need to set current loop parameters manually.

7.2.1 Tuning of the velocity loop

Steps required for adjustment:

Ensure limiting of velocity loop bandwidth

Velocity loop bandwidth limits position loop bandwidth and thus adjustment of velocity loop bandwidth is important.

Limitation of velocity loop bandwidth can be judged from several viewpoints.

1) According to oscillation and noise sensed with the finger and the ears: This method is based on experience, but it's efficient. The user can listen to or touch the machine, at the same time increasing and reducing the kvp. When an acceptable maximum kvp value is found, the current setting can be specified as the maximum velocity loop bandwidth.

2) According to the scope image: The user can create a jump command for velocity control and sample actual velocity and current while changing kvp. The right velocity curve should quickly fulfil the command without oscillation and unusual noise.

Table 7-3: List of velocity loop parameters

Panel addressInternal addressNameDescriptionDefaultRange
60F901Kvp[0]Proportional velocity loop gainCan be displayed in Hz in the PC tool can if the inertia ratio is right./ 1-32767
d2.012FF00AVelocity_BWChanging this parameter changes kvp[0] by the inertia ratio./ 1-700
60F902Kvi[0]Integral velocity loop gain/0-1023
60F907Kvi/32Integral velocity loop gain of in a smaller unit of measure/ 0-32767
d2.02 2FF019Kvi_MixWriting this parameter sets kvi[0] to 0, and the value is set to kvi/32./ 0-16384
d2.05 60F905Speed_Fb_NUsed to set Velocity feedback filter bandwidthFilter bandwidth=100+Speed_Fb_N*2025 0-45
d2.06 60F906Speed_ModeUsed to set the velocity feedback mode0: 2nd order FB LPF1: Directly feedback the original velocity2: Velocity feedback after velocity observer4: Velocity feedback after 1^st order LPF10: Velocity feedback after 2^nd order LPF and the velocity command is filtered by a 1^st order LPF. Both filters have the same bandwidth. 11: The velocity command is filtered by a 1^st order LPF12: Velocity feedback after velocity observer, the velocity command is filtered by a 1^st order LPF14: Velocity feedback after 1^st order LPF and the velocity command is filtered by a 1^st order LPF. Both filters have the same bandwidth1 /
60F915Output_Filter_NA 1^st order lowpass filter in the forward path of the velocity loop1 1-127
60F908Kvi_Sum_LimitIntegral output limit of the velocity loop/0-2^15

Velocity feedback filter adjustment

The velocity feedback filter can reduce noise that comes from the feedback path, e.g. reduce encoder resolution noise. The velocity feedback filter can be configured as 1^st and 2^nd order via the Speed_Mode for different applications. The 1^st order filter reduces noise to a lesser extent, but its also results in less phase shifting so that velocity loop gain can be set higher. The 2^nd order filter reduces noise to a greater extent, but its also results in more phase shifting so that velocity loop gain can be limited.

Normally, if the machine is stiff and light, we can use the 1st feedback filter or disable the feedback filter. If the machine is soft and heavy, we can use the 2^nd order filter.

If there's too much motor noise when velocity loop gain is adjusted, velocity loop feedback filter parameter Speed_Fb_N can be reduced accordingly. However, velocity loop feedback filter bandwidth F must be more than twice as large as the velocity loop bandwidth. Otherwise, it may cause oscillation. Velocity loop feedback filter bandwidth F=Speed_Fb_N*20+100 [Hz].

Output filter adjustment

The output filter is a 1^st order torque filter. It can reduce the velocity control loop to output high frequency torque, which may stimulate overall system resonance.

The user can try to adjust Output_Filter_N from small to large in order to reduce noise.

The filter bandwidth can be calculated using the following formula.

$$ \frac {1}{2} \frac {\ln \left(1 - \frac {1}{O u t p u t _ F i l t e r N}\right)}{T s \pi}, T s = 6 2. 5 u s $$

Velocity loop bandwidth calculation

Use the following formula to calculate velocity loop bandwidth:

$$ k v p = \frac {1 . 8 5 3 3 5 8 0 8 0 1 0 ^ {5} J \pi^ {2} F b w}{I _ {\text { Max }} k t \text { encoder }} $$

kt motor torque constant, unit: Nm/Arms*100

J inertia, unit: kg*m^2*10^6

Fbw Velocity loop bandwidth, unit: Hz

Imax max motor current I_max(6510.03) as DEC value

encoder resolution of the encoder

Integral gain adjustment

Integral gain is used to eliminate static error. It can boost velocity loop low frequency gain, and increased integral gain can reduce low frequency disturbance response.

Normally, if the machine has considerable friction, integral gain (kvi) should be set to a higher value.

If the entire system needs to respond quickly, integral should be set to a small value or even 0, and the gain switch should be used.

Adjust Kvi\_sum\_limit

Normally the default value is fine. This parameter should be added if the application system has a big extend force, or should be reduced if the output current is easily saturation and the saturation output current will cause some low frequency oscillation.

7.2.2 Tuning of the position loop

Table 7-4: List of position loop parameters

Panel addressInternal addressNameDescriptionDefaultsRange
d2.07 60FBB.01 Kpp[0]Proportional position loop gain.Used to set the position loop response.unit: 0.01Hz10 0-32767
d2.082FF0.1AK_Velocity_FF‰0 means no feedforward, 1000 means 100% feedforward.10000-4000
d2.09 2FF01B K_Acc_FF‰The unit only is right if the inertia ratio is correctly set.If the inertia ratio is unknown, set K_Acc_FF(60FB.03) instead./0-4000
d2.2660FB.05Pos_Filter_NThe time constant of the position demand LPF unit: ms11-255
d2.25 2FF0.0EMax_Following_Error_16Maximum allowable error, Max_Following_Error(6065.00) = 100 * Max_Following_Error_165242 /

Position loop proportional gain adjustment

Increasing position loop proportional gain can improve position loop bandwidth, thus reducing positioning time and following error, but setting it too high will cause noise or even oscillation. It must be set according to load conditions. Kpp = 103 * Pc_Loop_BW, Pc_Loop_BW is position loop bandwidth. Position loop bandwidth cannot exceed velocity loop bandwidth. Recommended velocity loop bandwidth: Pc_Loop_BW<Vc_Loop_BW / 4, Vc_Loop_BW.

Position loop velocity feedforward adjustment

Increasing the position loop velocity feedforward can reduce position following error, but can result in increased overshooting. If the position command signal is not smooth, reducing position loop velocity feedforward can reduce motor oscillation.

The velocity feedforward function can be treated as the upper controller (e.g. PLC) have a chance to directly control the velocity in a position operation mode. In fact this function will expend part of the velocity loop response ability, so if the setting can't match the position loop proportional gain and the velocity loop bandwidth, the overshot will happen.

Besides, the velocity which feedforward to the velocity loop may be not smooth, and with some noise signal inside, so big velocity feedforward value will also amplified the noise.

Position loop acceleration feedforward

It is not recommended that the user adjust this parameter. If very high position loop gain is required, acceleration feedforward K_Acc_FF can be adjusted appropriately to improve performance.

The acceleration feedforward function can be treat as the upper controller (e.g. PLC) have a chance to directly control the torque in a position operation mode. In fact this function will expend part of the current loop response ability, so if the setting can't match the position loop proportional gain and the velocity loop bandwidth, the overshot will happen.

Besides, the acceleration which feedforward to the current loop can be not smooth, and with some noise signal inside, so big acceleration feedforward value will also amplified the noise.

Acceleration feedforward can be calculated with the following formula:

ACC_%=6746518/ K_Acc_FF/ EASY_KLOAD*100

ACC_%: the percentage which will be used for acceleration feedforward.

K_Acc_FF(60FB.03): the final internal factor for calculating feedforward.

EASY_KLOAD(3040.07): the load factor which is calculated from auto-tuning or the right inertia ratio input.

Festo CMMB-AS-02 - Position loop acceleration feedforward - 1

Information

The smaller the K_Acc_FF, the stronger the acceleration feedforward.

Smoothing filter

The smoothing filter is a moving average filter. It filters the velocity command coming from the velocity generator and makes the velocity and position commands more smooth. As a consequence, the velocity command will be delayed in the controller. So for some applications like CNC, it's better not to use this filter and to accomplish smoothing with the CNC controller.

The smoothing filter can reduce machine impact by smoothing the command. The Pos_Filter_N parameter defines the time constant of this filter in ms. Normally, if the machine system oscillates when it starts and stops, a larger Pos_Filter_N is suggested.

Notch filter

The notch filter can suppress resonance by reducing gain around the resonant frequency.

Antiresonant frequency=Notch_N*10+100

Setting Notch_On to 1 turns on the notch filter. If the resonant frequency is unknown, the user can set the maximum value of the d2.14 current command small, so that the amplitude of system oscillation lies within an acceptable range, and then try to adjust Notch_N and observe whether the resonance disappears.

Resonant frequency can be measured roughly according to the Iq curve when resonance occurs on the software oscilloscope.

Table 7-5: Notch filter list

Panel addressInternal addressNameDescriptionDefaultRange
d2.03 60F9.03 Notch_NUsed to set the frequency of the internal notch filter to eliminate mechanical resonance generated when the motor drives the machine. The formula is F=Notch_N*10+100. For example, if mechanical resonance frequency F=500 Hz, the parameter setting should be 40.45 0-90
d2.04 60F9.04 Notch_OnUsed to turn on or turn off the notch filter.0: Turn on the notch filter1: Turn off the notch filter0 0-1

7.3 Factors which influence tuning results

The control command is created by the upper controller (e.g. PLC):

The control command should be smooth as much as possible, and must be correct. For example, the control command should not create the acceleration commands (inside the position commands) that the motor cannot provide. Also, the control command should follow the bandwidth limit of the control loop.

The machine design:

In the actual application, performance is normally limited by the machine. Gaps in the gears, soft connection in the belts, friction in the rail, resonance in the system – all of these can influence final control performance. Control performance affects the machine's final performance, as well as precision, responsiveness and stability. However, final machine performance is not only determined by control performance.

Chapter 8 Alarms and troubleshooting

Alarm code numbers flash at the panel when the controller generates an alarm.

If you need more detailed information about errors and error history, please connect the controller to the PC via RS232 and refer to chapter 5.7.

Table 8-1: Alarm codes of Error_State1

AlarmNameReasonTroubleshooting
FFF.FWrong motor modelThe current motor type is different from the motor type which is saved in the controller.Method 1: Access EA01 via the KEY, and confirm motor type, then access EA00, set 2.Method2: Access EASY_MT_TYPE (0x304101) via PC software, confirm the value, then save the parameter.
000.1 Extended ErrorErrors occurs in Error_State2Press the SET key to enter Error_State2 (d1.16), read the error bit, check the error meaning in table 8-2.
000.2Encoder not connectedThe encoder wiring is incorrect or disconnected.Use a multimeter to check connection of the encoder signal cable
000.4Encoder internalInternal encoder error or the encoder is damaged.1.Access panel address d3.51 Encoder_OP by KEY and set 1.2.Try to reset the controller error. If error persists, replace the motor.
000.8Encoder CRCEncoder CRC errorMake sure the equipment is well grounded
001.0Controller TemperatureThe temperature of controller's power module has reached the alarm value.Improve the cooling environment of the controller.
002.0 OvervoltageSupply power voltage exceeds the allowable input voltage rangeIn case of emergency stop, there is no external braking resistor or braking.Check to see if supply power voltage is unstable and if a suitable braking resistor is connected.
004.0 UndervoltageThe power voltage input is lower than the low voltage protection alarm value.Check to see if supply power voltage is unstable.
008.0 OvercurrentInstantaneous current exceeds the overcurrent protection value.Check the motor cable for short circuits.Replace the controller.
010.0 Chop ResistorThe braking resistor is overloaded or it's parameters are not set correctly.Set the resistance and power of the external braking resistor through d5.04 and d5.05.
020.0Following ErrorThe actual following error exceeds the setting value of Max_Following_Error.1. Stiffness of control loop is too small.2.The controller and motor together can't match the requirement of the application.3. Max_Following_Error (d2.25) is too small.4. feedforward settings are not feasible.5. Wrong motor wiring.Check and solve based on the reasons.
040.0Low Logic VoltageLogic power voltage is too low.Check to see if logic power voltage is unstable.
080.0Motor or controller IIItThe brake is not released when the motor shaft is rotatingMachine equipment stuck or excessive friction.Duty cycle of motor overload exceeds the motor rated performanceMeasure the brake terminal voltage is right and the brake is released when the controlleris enabled.Eliminate the problem of mechanical sticking, add lubricate.Reduce the acceleration or load inertia.
100.0Over frequencyExternal input pulse frequency is too high.Reduce pulse frequency.Increase the value of Frequency_Check (d3.38).
200.0Motor temperatureThe motor temperature exceeds the specified value.Reduce ambient temperature of the motor and improve cooling conditions or reduce acceleration and deceleration or reduce load.
400.0Encoder information1.Communication is incorrect when the encoder is initialized.2.The encoder type is wrong, e.g. an unknown encoder is connected.3.The data stored in the encoder is wrong.4.The controller can't support the current encoder type.Check and solve according to the reasons.
800.0 EEPROM dataData is damaged when the power is turned on and data is read from the EEPROM.Data is damaged when data is read from the EEPROM when the power is turned on.

Table 8-2: Alarm codes of Error_State2 (extended)

AlarmNameReasonTrouble shooting
000.1Current sensorCurrent sensor signal offset or ripple too bigCircuit of current sensor is damaged, please contact the supplier.
000.2WatchdogSoftware watchdog exceptionPlease contact the supplier and try to update the firmware.
000.4Wrong interruptInvalid interrupt exceptionPlease contact the supplier and try to update the firmware.
000.8MCU IDWrong MCU type detectedPlease contact the supplier.
001.0Motor configurationMotor type is not auto-recognized, no motor data in EEPROM / motor never configuredInstall a correct motor type to the controller and reboot.
010.0External enableDIN function "pre_enable" is configured, but the input is inactive when the controller is enabled or should become enabledSolve according to the reason.
020.0Positive limitPositive position limit (after homing), position limit only causes error when Limit_Function (2010.19) is set to 0.Exclude the condition which causes the limit signal
040.0Negative limitNegative position limit (after homing), position limit only causes error when Limit_Function (2010.19) is set to 0.Exclude the condition which causes the limit signal
080.0SPI internalInternal firmware error in SPI handlingPlease contact the supplier.
200.0Closed loop directionDifferent direction between motor and position encoderChange the encoder counting direction
800.0Master countingMaster encoder counting errorEnsure that the ground connection and the encoder shield work well.

Chapter 9 List of CMMB series motor controller parameters

9.1 F001

This panel menu contains all controller values which can be shown by the LED display when it's in the monitor mode (see 4.2) and no error or warning is shown. On the LED panel, select the panel address of the value to be displayed and press SET. After leaving the menu, the selected value is displayed. To make this selection permanent it must be saved through d2.00 in F002.

Table 9-1-1: Panel F001

Panel addressInternal addressNameDescriptionDefaultRangeR/W/S
F001 2FF00408 Key_Address_F001Internal value Panel value0 d1.002 d1.024 d1.04... ...For d1.xx meaning please refer to following table 9-1-225 / RWS

Table 9-1-2: Panel F001 setting

Panel addressInternal addressNameDescriptionDefaultRangeRWS
d1.002FF00F20Soft_Version_LEDFirmware version, display at the LED.//R
d1.022FF01008Motor_IIt_RateDisplays the rate of real iit and max iit of the motor.00-100% R
d1.04 2FF01108 Driver_IIt_RateDisplay the rate of real iit and max iit of the controller.00-100% R
d1.062FF01208Chop_Power_RateDisplay the rate of real power and rated power of the chopper.00-100% R
d1.0860F70B10Temp_Devicetemperature of controller, unit: °C,// R
d1.0960F71210Real_DCBUSDC bus voltage, unit: V,//R
d1.1120100A10Din_RealStatus of physical inputBit 0: Din 1Bit 1: Din 2Bit 2: Din 3...// R
d1.1220101410Dout_RealBit 0: Dout 1Bit 1: Dout 2Bit 2: Dout 3...// R
d1.132FF01610AN_V1analog signal 1 voltage, unit 0.01V//R
d1.142FF01710AN_V2analog signal 2 voltage, unit 0.01V//R
d1.1526010010Error_StateSee chapter 5.7, table5-700-65535R
d1.1626020010Error_State2See chapter 5.7, table5-800-65535R
d1.1760410010Status wordStatus word of controller//R
d1.1860610008Operation_Mode_BuffOperation mode in buffer0/R
d1.1960630020Pos_ActualActual position of motor0-2^31-2^31-1R
d1.2060FB0820Pos_ErrorFollowing error of position0-2^31-2^31-1R
d1.2125080420Gear_MasterInput pulse amount before electronic gear0-2^31-2^31-1R
d1.22 25080520 Gear_SlaveExecute pulse amount after electronic gear0-2^31-2^31-1R
d1.252FF01410Real_Speed_RPMReal speed, unit: rpm00-5000R
d1.2660F91910Real_Speed_RPM2Real speed, unit: 0.01rpm0-10-10R
d1.2860F60C10CMD_q_Buffq current command buffer0-2048-2047R
d1.292FF01800I_q_ArmsReal current in q axis, unit 0.1Arms0/R
d1.48 26800010 Warning_Wordwarning status word of the encoder:Bit 0: Battery WarningBit 1: Mixed WarningBit 2: Encoder Busy0 0-7 R
d1.4930440008Cur_IndexofTableRange: 0-31, current index in the position table0 0-31R

9.2 F002

This panel menu contains parameters for the control loop settings.

Controller->Panel Menu->Control Loop Setting(F002)

Table 9-2: Panel F002

Panel addressInternal addressNameDescriptionDefaultRangeRWS
d2.002FF00108Store_DataSave or init parameters1: save control parameters10: init control parameters0 0-255RW
d2.01 2FF00A10 Velocity_BWBandwidth of the velocity loop, unit: Hz./1-700RWS
d2.022FF01910Kvi_MixIntegral gain of the velocity loop, as a combination of 32*Kvi(60F9.02) + Kvi/32(60F9.07). When written, it sets Kvi(60F9.02)=0 and the value goes to Kvi/32(60F9.07)./0- 65535RWS
d2.03 60F90308 Notch_NNotch filter frequencyBW=Notch_N*10+100[Hz]450-127RWS
d2.0460F90408Notch_OnNotch filter enable00-1RWS
d2.05 60F90508 Speed_Fb_NBandwidth of velocity feedback filter BW=Speed_Fb_N*20+100[Hz]25 0-45RWS
d2.06 60F90608 Speed_ModeDefault: 0, means using 2^nd order low pass filter0: 2^nd order FB LPF1: No FB LPF2: Observer FB4: 1st order FB LPF10: 2nd LPF+SPD_CMD FT11: SPD_CMD FT12: SPD_CMD FT+Observer14: 1st LPF+Observer1 0-255RWS
d2.0760FB0110KppKp of position loop.unit:0.01Hz10000-32767RWS
d2.082FF01A10K_Velocity_FF‰Feedforward of position loop, unit: 0.1%0 0-1500RWS
d2.09 2FF01B10 K_Acc_FF‰Acceleration forward of position loop, unit: 0.1%0 0-1500RWS
d2.1260F60110KcpKp of current loop/1-32767RWS
d2.1360F60210KciKi of current loop/0-1000RWS
d2.14 2FF01C10 CMD_qMax_ArmsMaximum current command in q axis unit: 0.1Arms/ 0-32767RWS
d2.1560F60310Speed_Limit_FactorA factor for limiting max velocity in the torque mode10 0-1000RWS
d2.16 607E0008 Invert_DirInvert motion0: CCW is positive direction1: CW is positive direction0 0 - 1RWS
d2.2460800010Max_Speed_RPMMotor's max speed unit: rpm50000 - 15000RWS
d2.25 2FF00E10Max_Following_Error_16Max_Following_Error=100*Max_Following_Error_1652421 - 32767RWS
d2.2660FB0510Pos_Filter_NAverage filter parameter11 - 255RWS
d2.2720101810Zero_Speed_WindowDout function Zero_Speed is active eif the actual speed is equal or less than this valueunit: inc/ms0 0 - 65535 RWS

9.3 F003

This panel menu contains parameter for the configuration of analog and digital I/O functions. Controller->Panel Menu->F003 DI/DO & Operation Mode Setting(F003)

Table 9-3: Panel F003 parameters

Panel addressInternal addressNameDescriptionDefaultRangeRWS
d3.00 2FF00108 Store_DataSave or init parameters1: save control parameters10: init control parameters0 0-255RW
d3.0120100310Din1_FunctionSee chapter 6.1, table 6-10x00010-65535RWS
d3.0220100410Din2_FunctionSee chapter 6.1, table 6-10x00020-65535RWS
d3.0320100510Din3_FunctionSee chapter 6.1, table 6-10x20000-65535RWS
d3.0420100610Din4_FunctionSee chapter 6.1, table 6-10x00100-65535RWS
d3.0520100710Din5_FunctionSee chapter 6.1, table 6-10x00200-65535RWS
d3.0620100810Din6_FunctionSee chapter 6.1, table 6-100-65535RWS
d3.0720100910Din7_FunctionSee chapter 6.1, table 6-10x00400-65535RWS
d3.10 20000008 Switch_On_Auto0: no operation1: auto-enable when logic power-up.Can be set only if the DIN function enable is not defined.0 0-255RWS
d3.1120100F10Dout1_FunctionSee chapter 6.1, table 6-20x00010-65535RWS
d3.1220101010Dout2_FunctionSee chapter 6.1, table 6-20x00100-65535RWS
d3.1320101110Dout3_FunctionSee chapter 6.1, table 6-20x00040-65535RWS
d3.1420101210Dout4_FunctionSee chapter 6.1, table 6-20x00080-65535RWS
d3.1520101310Dout5_FunctionSee chapter 6.1, table 6-20x00020-65535RWS
d3.1620200D08Din_Mode0Operation mode channel 0: select via input port-4-128-127RWS
d3.1720200E08Din_Mode1Operation mode channel 1: select via input port-3-128-127RWS
d3.18 20200910 Din_Speed0_RPMSee chapter 6.2.2, table 6-8 unit: rpm0-32768-32767RWS
d3.1920200A10Din_Speed1_RPMSee chapter 6.2.2, table 6-8 unit: rpm0-32768-32767RWS
d3.2020200B10Din_Speed2_RPMSee chapter 6.2.2, table 6-8 unit: rpm0-32768-32767RWS
d3.2120200C10Din_Speed3_RPMSee chapter 6.2.2, table 6-8 unit: rpm0-32768-32767RWS
d3.2225020110Analog1_FilterFilter parameter of analog signal 151-127RWS
d3.232FF01D10Analog1_Dead_VUnit: 0.01V0-1000-1000RWS
d3.242FF01E10Analog1_Offset_VUnit: 0.01V0-1000-1000RWS
d3.2525020410Analog2_FilterFilter parameter of analog signal 251-127RWS
d3.262FF01F10Analog2_Dead_VUnit: 0.01V0-1000-1000RWS
d3.272FF02010Analog2_Offset_VUnit: 0.01V0-1000-1000RWS
d3.2825020708Analog_Speed_ConAnalog signal controls velocity, valid in operation mode 3 or -30: analog speed control OFF, velocity control via Target_Speed(60FF.00)1: velocity controlled by AIN12: velocity controlled by AIN20 0-255RWS
d3.2930410410EASY_Analog_SpeedAnalog speed factorunit: rpm/V/-32768-32767RWS
d3.3025020808Analog_Torque_ConAnalog signal control torque, valid in operation mode 40: Analog_Torque_control OFF, target torque is specified by Target_Torque% (6071.00)1: torque controlled by AIN12: torque controlled by AIN20 0-255RWS
d3.31 2FF02110Voltage_Torque_FactorAnalog torque factor,unit: mNM/V/-32768-32767RWS
d3.32 25020908Analog_MaxT_ConAnalog signal control max. torque0: not valid1: max. torque controlled by AIN12: max. torque controlled by AIN20 0-255RWS
d3.332FF02210Voltage_MaxT_FactorAnalog max. torque factor,unit: mNM/V/-32768-32767RWS
d3.3425080110Gear_Factor0Numerator of electronic gear1000-32768-32767RWS
d3.3525080210Gear_Divider0Denominator of electronic Gear10001-32767RWS
d3.36 25080308 PD_CWPulse control mode0: CW / CCW mode1: pulse direction mode2: incremental encoder mode1 0-255RWS
d3.3725080610PD_FilterFilter parameter of pulse input30-255RWS
d3.3825080810Frequency_CheckMaximum frequency of input pulse unit: pulse/ms6000-3000RWS
d3.39 25080910Target_Reach_Time_WindowTarget (position velocity) reached time window. unit: ms100-32767RWS
d3.4320200F10Din_ControlwordInput "enable" signal controls the Controlword setting0X2F0-65535RWS
d3.44 20201820 Din_Speed4_RPMSee chapter 6.2.2, table 6-8 unit: rpm0-32768-32767RWS
d3.45 20201920 Din_Speed5_RPMSee chapter 6.2.2, table 6-8 unit: rpm0-32768-32767RWS
d3.4620201A20Din_Speed6_RPMSee chapter 6.2.2, table 6-8 unit: rpm0-32768-32767RWS
d3.4720201B20Din_Speed7_RPMSee chapter 6.2.2, table 6-8 unit: rpm0-32768-32767RWS
d3.48 30450010 Enc_COMM_StateCheck the encoder communication state when the encoder is initialized0 0-65535R
d3.49 30460008 CPLD_FilterConfigure the filter in the CPLD.For 50% duty cycle signal:0: 125ns1: 156ns2: 250ns3: 313ns4: 1ms5: 1.5ms6: 2ms7: 4ms4 0-7 RWS
d3.50 30510110 Enc_ALMShow the full error state of the Nikon encoder.0 0-65535 R
d3.5126900008Encoder_Data_Reset1: Clear the fault state of encoder.2: Read the full fault state.3: Clear the fault state and the MT data.0 0-255 RW
d3.52 2FF02310 Jog_RPMSet Jog velocity.unit: RPM, not savable.30-32767-32768RW
d3.53 20100110 Din_PolarityDefine the polarity of Din signal, 0: normal closed; 1: normally openBit 0: Din1Bit 1: Din2Bit 2: Din3...65535 0-65535 RWS
d3.54 20100D10 Dout_PolarityDefine the polarity of Dout signal,0: normal closed;1: normally openBit 0: Dout1Bit 1: Dout2Bit 2: Dout3...65535 0-65535 RWS

9.4 F004

This panel menu contains motor related parameters. Controller->Panel Menu->Motor Setting(F004)

Table 9-4: Panel F004

Panel addressInternal addressNameDescriptionDefaultRangeRWS
d4.002FF00308Store_Motor_DataSave motor parameters1: save motor parameters0 0-255RW
d4.01 64100110 Motor_NumMotor code Motor type LEDYY EMMB-AS-40-01 5959Y0 EMMB-AS-60-02 3059Y1 EMMB-AS-60-04 3159Y2 EMMB-AS-80-07 32590 0-65535RWS
d4.0264100208Feedback_TypeType of encoderBit0: UVW wire checkBit1: Nikon multiturnBit2: Nikon singleturnBit4: ABZ wire checkBit5: wire saving encoder/ 0-255R
d4.0364100508Motor_PolesMotor pole pairsunit: 2p/ 0-255R
d4.0464100608Commu_ModeCommutation mode/0-255R
d4.05 64100710 Commu_CurrCurrent for commutationunit: dec/-2048-2047R
d4.06 64100810 Commu_DelayTime for commutationunit: ms/ 0-32767R
d4.07 64100910 Motor_IIIt_ICurrent of motor I2t protectionunit: 0.0707 Arms/ 1-1500R
d4.0864100A10Motor_IIIt_FilterTime const of motor I2t protectionunit : 0.256 s1002-32767R
d4.09 64100B10 Imax_MotorMaximum motor currentunit: 0.0707 Arms/ 0-32767R
d4.1064100C10L_MotorMotor winding inductanceunit: 0.1mH/ 1-32767R
d4.1164100D08R_MotorMotor winding resistance ofunit: 0.1ohm/ 0-32767R
d4.1264100E10Ke_Motorback EMF factor of motorunit: 0.1Vp/krpm/ 0-32767R
d4.13 64100F10 Kt_MotorTorque coefficient of motorunit: 0.01Nm/Arms/ 1-32767R
d4.14 64101010 Jr_MotorRotor inertiaunit: 0.01 kgcm2/ 2-32767R
d4.16 64101210 Brake_Delaydelay time for motor brakeunit: ms1500-32767R
d4.1864101610Motor_UsingCurrently utilised motor type/0-65535R
d4.2164100320Feedback_ResolutionFor EMMB motor encoders, this parameter is always 65536. For position control, the controller uses 65536/rev as it's resolution. Forvelocity control, the controller uses it's full resolution of 20bit./ 1-2^31-1 R
d4.2264100420Feedback_PeriodEncoder checking with Z signal/0-2^31-1R
d4.2364101510Motor_BWMotor current control loop bandwidth/500-2500R
d4.24 64101710 Addition_DeviceIndicates whether the motor has additional device;Bit 0: motor brake.Bit 0 = 0: motor without brakeBit 0 = 1: the motor has a brake, the controller continues functioning for Brake_Delay(d4.16) ms before the brake fully closes.0 0-65535 RW
d4.25 64101A10 Gain_FactorCurrent loop gain factor depends on real current16 16-127 R

9.5 F005

This panel menu contains miscellaneous controller parameters.

Controller->Panel Menu->Controller Setting(F005)

Table 9-5: Panel F005

Panel addressInternal addressNameDescriptionDefaultRangeRWS
d5.002FF00108Store_DataSave or init parameters1: save control parameters10: init control parameters0 0-255RW
d5.01100B0008Node_IDController ID10-255RWS
d5.022FE00010RS232_BaudrateSerial port baudrate540: 19200270: 38400185: 56000180: 57600Effective after reboot2700-65535RWS
d5.032FE10010U2BRGSerial port baudrate540: 19200270: 38400185: 56000180: 57600Effective immediately, can't be saved2700-65535RWS
d5.0460F70110Chop_ResistorResistance value of brake resistor unit: ohm0 0-32767RWS
d5.0560F70210Chop_Power_RatedNominal power of brake resistor unit: W0 0-32767RWS
d5.0660F70310Chop_FilterFor chop power calculation.601-32767RWS
d5.1565100B08RS232_Loop_EnableRS232 communication control0: 1 to 11: 1 to N0 0-255RWS
d5.162FFD0010Reserved

Chapter 10 Communication

The CMMB motor controller can be controlled, configured or monitored via a RS232 communication interface (X3) using the following interface and protocol description.

10.1 RS232 wiring

If the motor controller should be controlled by a programmable logic controller (PLC) or other controllers via the a RS485 communication interface, a RS485 to RS232 converterhas to be used.

10.1.1 Point to point connection

Festo CMMB-AS-02 - Point to point connection - 1

flowchart
graph LR
    A["PC-COM"] --> B["CMMB X3"]
    A --> C["RXD 2"]
    A --> D["TXD 3"]
    A --> E["GND 5"]
    B --> F["3 TXD"]
    B --> G["6 RXD"]
    B --> H["4 GND"]

Figure 10-1: Communication wiring between PC (DSub 9-pin) and CMMB controller

10.1.2 Multi-point connection

The communication protocol provides network operation with a host computer operating as a master and several CMMB controllers working as communication slaves (RS232_Loop_Enable(d5.15) must be set to 1, save and reboot the controller after setting). In that case the RS232 cabling must have a loop structure as follows:

Festo CMMB-AS-02 - Multi-point connection - 1

flowchart
graph TD
    PC["PC 2 RX\n5 GND\n3TX"] --> PC1["6 4 3\nX3\nID=1"]
    PC --> PC2["6 4 3\nX3\nID=2"]
    PC --> PCn["6 4 3\nX3\nID=n"]
    PC2 -.-> PCn

Figure 10-2: Communication wiring between PC (DSub 9-pin) and multiple CMMB controllers

10.2 Transport protocol

RS232 communication of the CMMB motor controller strictly follows master / slave protocol. The host computer send data to the CMMB controller. The controller checks the data regarding a checksum and the correct ID number, processes the data and returns an answer. Default communication settings for the CMMB motor controller are as follows:

Baud rate = 38,400 bps

Data bits = 8

Stop bits = 1

No parity check

The baud rate can be changed in RS232 BaudRate(d5.02). After changing the value it's necessary to save the setting and reboot the system.

The controller's ID can be changed in Node ID(d5.01).

The transport protocol uses a telegram with a fixed length of 10 bytes.

ID: The ID number of the slave

CHKS: Telegram checksum, CHKS = -SUM(byte 0 .... byte 8)

10.2.1 Point to point protocol

One host communicates with one controller, RS232_Loop_Enable(d5.15)=0)

The host sends:

The slave sends / The host receives

If the slave finds it's own ID in the host telegram, it checks the CHKS value. If the checksum does not match the slave would not generate an answer and the host telegram would be discarded.

10.2.2 Multi-point protocol

One host communicates with several controllers, RS232_Loop_Enable(d5.15)=1

The host sends:

The slave sends / The host receives (RS232_Loop_Enable(d5.15)=1):

If the host sends a telegram with an unused ID data will pass the RS232 loop but no slave answer will return.

The slave which finds it's own ID in the host telegram checks the CHKS value. If the checksum does not match the slave would not generate an answer and the host telegram would be discarded by that slave.

10.3 Data protocol

The data content of the transport protocol is the data protocol. It contains 8 bytes. The definition of the CMMB motor controller's RS232 data protocol is compatible with the CANopen SDO protocol, as well as the internal data organisation complies to the CANopen standard. All parameters, values and functions are accessible via a 24-bit address, built of a 16-bit index and 8-bit sub-index.

10.3.1 Download (from host to slave)

Download means that the host sends a command to write values to the objects in the slave, the slave generates an error message if when the value is downloaded to a non-existent object.

The host sends:

CMD: Specifies the direction of data transfer and the size of data.

23 (hex) Sends 4-byte data (bytes 4...7 contain 32 bits)

2b (hex) Sends 2-byte data (bytes 4 and 5 contain 16 bits)

2f (hex) Sends 1-byte data (bytes 4 contains 8 bits)

INDEX: Index in the object dictionary where data should be sent

SUB INDEX: Sub-index in object dictionary where data should be sent

DATA: 8, 16 or 32 bit value

The slave answers:

RES: Displays slave response:

60(hex) Data successfully sent

80(hex) Error, bytes 4...7 contain error cause

INDEX: 16-bit value, copy of index in host telegram

SUBINDEX: 8-bit value, copy of sub index in host telegram

RESERVED: Not used

10.3.2 Upload (from slave to host)

Upload means the master sends a command to read the object value from the slave. The slave generates an error if a non-existent object is requested.

The master sends:

CMD: Specifies the direction of data transfer

40(hex) always

INDEX: 16-bit value, index in the object dictionary where requested data reside.

SUBINDEX: 8-bit value, index, sub index in the object dictionary where requested data reside.

RESERVED: Bytes 4...7 not used

The slave answers:

RES: Displays slave response:
43(hex) bytes 4...7 contain 32-bit data
4B(hex) bytes 4 and 5 contain 16-bit data
4F(hex) byte 4 contains 8-bit data
80(hex) error, bytes 4 ... 7 contain error cause
INDEX: 16-bit value, copy of index in host telegram
SUBINDEX: 8-bit value, copy of subindex in host telegram
DATA: Data or error cause, depending on RES

10.4 RS232 telegram example

Following table shows the RS232 telegram example.

Table 10-1: RS232 telegram example

IDR/WIndexSub indexDataChecksumMeaning
012B40 60002F 00 00 0005Set Controlword = 0x2F, enable the controller
012F60 600006 00 00 000ASet Operation_Mode = 0x06
01237A 600050 C3 00 00EFSet Tearget_position = 50000
014041 600000 00 00 001ERead the Statusword

Chapter 11 Appendix

11.1 Multi-Turn Encoders supported by CMMB

The CMMB can support the matched EMMB motors with Single/Multi-Turn Encoder.

The Single-Turn Encoder can provide one revolution's absolute angle infomation and the Multi-Turn Encoder can additionally provide 65536 absolute revolutions.

Festo CMMB-AS-02 - Multi-Turn Encoders supported by CMMB - 1

Information

The Multi-Turn Encoder can only remember 65536 revolutions. If the 65536 rev. is exceeded, Example: 70000 revolutions moved and 4464 position is shown after next reboot. 70000 - 65536 = 4464

11.1.1 Hardware requirements

For the use of an EMMB motor with Multi-Turn Encoder you have to use the NEFM-REG6-K-0.5-B-REG6

adapter with a Battery box. The Battery will buffer the absolute Multi-Turn revolutions.

For more informations read the manual of the NEFM adapter.

11.1.2 Application scenarios

The Multi-Turn Encoder is typically used in the system which is not suitable to perform the homing action or if homing is too much time consuming and inefficient. In such case the control of the servo controller regarding positioning has to be done with (or in combination with) communication and/or Position Table. Pulse Train as command interface alone cannot command the drive to a designated absolute target position. For the CMMB the use of Multi-Turn Encoders requires the use of the PC software or other communication methods for configuration (no panel addresses for important values like Home_Offset or Pos_Shift).

11.1.3 Warning and Error

11.1.3.1 Warning

If the battery voltage is down to about 3.0V (typical value) the Multi-Turn Encoder generates a warning to remind the user to change the battery. CMMB LED display flashes with "0001" three times quickly every 10s. The warning will be cleared automatically when the battery voltage will become normal. Access to the object 0x2680.00 to get the battery warning information by communication.

To avoid the loss of encoder data the battery should be replaced while the Control power for logic is supplied to the controller.

11.1.3.2 Connection Error

Like for the Single-Turn Encoder also for a Multi-Turn Encoder the CMMB Controller generates the "Encoder not connected" error if the encoder connector is disconnected, the encoder cable is damaged or when communication is disturbed by noise. The CMMB LED display shows the error "000.2".

The error can be reset if the connection is correct and the disturbance eliminated.

11.1.3.3 Multi-Turn Error

If the battery voltage is lower than about 2.69V or the battery is disconnected, the Multi-Turn Encoder generates an internal error to remind the user that the absolute position is not credible. The CMMB LED display shows the error "000.4" and this error cannot be reset by the normal Error Reset. CMMB will try to clear such error automatically in the following 2 conditions:

  • When an Multi-Turn Encoder connected with a new CMMB controller or a CMMB controller at which the object 0x6410.01 was set to 0x3030.
  • When a CMMB controller is connected with an Multi-Turn Encoder now but was connected with a Single-Turn Encoder before.

Otherwise, to clear the error in the encoder internally first, the user must set the object 0x2690.00 to 1 by LED panel d3.51 or by communication (e.g. CMMB Configurator).

After that the CMMB controller error can be reset by the normal Error Reset.

Festo CMMB-AS-02 - Multi-Turn Error - 1

Note

After Multi-Turn Error the absolute position value is not credible any more and must be set again (see Absolute position definition).

11.1.4 Absolute position definition

Systems with Multi-Turn Encoder motors need to define the value of the actual position on a certain mechanical position. The CMMB motor controller supports two ways for that:

  • Via Homing, by following procedure:
  • Chose the right home method and related homing parameters, refer to chapter 6.6
  • The Home_Offset is the important value: the actual position will be set to (-Home_Offset) at the homing trigger point
  • Configure the related digit IO pins for the Homing Mode
  • Start the Homing
  • After the Homing is finished successfully, store the controller parameters
    After successful Homing, the CMMB sets an internal parameter Pos_Shift (object 0x60FB.07): Pos_Shift = Pos_Abs (object 0x6004.00) + Home_Offset at the homing trigger point.

  • Via writing to Pos_Shift directly while the CMMB operation is disabled: Pos_Shiftnew
    = Pos_Actual - Pos_Actualnew +Pos_Shift and storing of the controller parameters.

Table of contents Click a title to access it
Manual assistant
Powered by Anthropic
Waiting for your message
Product information

Brand : Festo

Model : CMMB-AS-02

Category : Regulator