User Manual
Table Of Contents
- Cover
- Revision History
- Table of Contents
- Introduction
- Refer to the Datasheet for Hardware-Specific Issues
- User Manual Structure and Use
- SECTION 1 Connecting Power and Motors to the Controller
- SECTION 2 Safety Recommendations
- SECTION 3 Connecting Sensors and Actuators to Input/Outputs
- SECTION 4 I/O Configuration and Operation
- SECTION 5 Magnetic Sensor
- SECTION 6 Command Modes
- SECTION 7 Motor Operating Features and Options
- SECTION 8 Brushless Motor Connections and Operation
- SECTION 9 AC Induction MotorOperation
- SECTION 10 Closed Loop Speed and Speed Position Modes
- SECTION 11 Closed Loop Relative and Tracking Position Modes
- SECTION 12 Closed Loop Count Position Mode
- SECTION 13 Closed Loop Torque Mode
- SECTION 14 Serial (RS232/RS485/USB/TCP) Operation
- SECTION 15 Commands Reference
- Section1: ConnectingPower and Motors to the Controller
- Power Connections
- Controller Power
- Controller Powering Schemes
- Mandatory Connections
- Connection for Safe Operation with Discharged Batteries (note 1)
- Use precharge Resistor to prevent switch arcing (note 2)
- Protection against Damage due to Regeneration (notes 3 and 4)
- Connect Case to Earth if connecting AC equipment (note 5)
- Avoid Ground loops when connecting I/O devices (note 6)
- Connecting the Motors
- Single Channel Operation
- Power Fuses
- Wire Length Limits
- Electrical Noise Reduction Techniques
- Battery Current vs. Motor Current
- Measured and Calculated Currents
- Power Regeneration Considerations
- Using the Controller with a Power Supply
- Section 2: Safety Recommendations
- Section 3: Connecting Sensors and Actuators to Input/Outputs
- Controller Connections
- Controller’s Inputs and Outputs
- Connecting devices to Digital Outputs
- Connecting Resistive Loads to Outputs
- Connecting Inductive loads to Outputs
- Connecting Switches or Devices to Inputs shared with Outputs
- Connecting a Voltage Source to Analog Inputs
- Connecting Tachometer to Analog Inputs
- Connecting External Thermistor to Analog Inputs
- Using the Analog Inputs to Monitor External Voltages
- Connecting SSI Sensors
- Connecting Optical Encoders
- Connecting the Encoder
- Connecting Switches or Devices to direct Digital Inputs
- Connecting a Voltage Source to Analog Inputs
- Section 4: I/O Configuration and Operation
- Basic Operation
- Section 5: Roboteq Products Connection and Operation
- Section 6: Command Modes
- Input Command Modes and Priorities
- Operating the Controller in RC mode
- Using Sensors with PWM Outputs for Commands
- Operating the Controller In Analog Mode
- Monitoring and Telemetry in RC or Analog Modes
- Using the Controller with a Spektrum Satellite Receiver
- Using the Controller in Serial (USB/RS232/RS485/TCP) Mode
- Section 7: Motor Operating Features and Options
- Section 8: Brushless Motor Connections and Operation
- Section 9: AC Induction Motor Operation
- Section 10: Closed Loop Speed and Speed-Position Modes
- Section 11: Closed Loop Relative and Tracking Position Modes
- Modes Description
- Selecting the Position Modes
- Position Feedback Sensor Selection
- Sensor Mounting
- Feedback Sensor Range Setting
- Adding Safety Limit Switches
- Using Current Trigger as Protection
- Operating in Closed Loop Relative Position Mode
- Operating in Closed Loop Tracking Mode
- Position Mode Relative Control Loop Description
- PID tuning in Position Mode
- PID Tuning Differences between Position Relative and Position Tracking
- Loop Error Detection and Protection
- Section 12: Closed Loop Count Position Mode
- Section 13: Closed Loop Torque Mode
- Section 14: Serial(RS232/RS485/USB/TCP)Operation
- Section 15: CommandsReference
- Commands Types
- Runtime Commands
- AC - Set Acceleration
- AX - Next Acceleration
- B - Set User Boolean Variable
- BND - Spectrum Bind
- C - Set Encoder Counters
- CB - Set Brushless Counter
- CG - Set Motor Command via CAN
- CS - CAN Send
- CSS - Set SSI Sensor Counter
- D0 - Reset Individual Digital Out bits
- D1 - Set Individual Digital Out bits
- DC - Set Deceleration
- DS - Set all Digital Out bits
- DX - Next Deceleration
- EES - Save Configuration in EEPROM
- EX - Emergency Stop
- G - Go to Speed or to Relative Position
- GIQ - Go to Torque Amps
- GID - Go to Torque Amps
- H - Load Home counter
- MG - Emergency Stop Release
- MS - Stop in all modes
- P - Go to Absolute Desired Position
- PR - Go to Relative Desired Position
- PRX - Next Go to Relative Desired Position
- PX - Next Go to Absolute Desired Position
- R - MicroBasic Run
- RC - Set Pulse Out
- S - Set Motor Speed
- STT - STO Self-Test
- SX - Next Velocity
- VAR - Set User Variable
- DS402 Runtime Commands
- CW – Control Word (DS402)
- Profile Position Mode
- Velocity Mode
- PAC – Profile Acceleration (DS402)
- PDC – Profile Deceleration (DS402)
- POS – Target Position (DS402)
- PSP – Profile Velocity (DS402)
- ROM – Modes of Operation (DS402)
- S – Target Velocity (DS402)
- SAC – Velocity Acceleration (DS402)
- SDC – Velocity Deceleration (DS402)
- SPL – Velocity Min/Max Amount (DS402)
- TC – Target Torque (DS402)
- TSL – Torque Slope (DS402)
- Runtime Queries
- A - Read Motor Amps
- AI - Read Analog Inputs
- AIC - Read Analog Input after Conversion
- ANG - Read Rotor Angle
- ASI - Read Raw Sin/Cos sensor
- B - Read User Boolean Variable
- BA - Read Battery Amps
- BCR - Read Brushless Count Relative
- BMC - Read BMS State Of Charge in AmpHours
- BMF - Read BMS status flags
- BMS - Read BMS switch states
- BS - Read BL Motor Speed in RPM
- BSC - Read BMS State of Charge in percentage
- BSR - Read BL Motor Speed as 1/1000 of Max RPM
- C - Read Encoder Counter Absolute
- CAN - Read Raw CAN frame
- CB - Read Absolute Brushless Counter
- CF - Read Raw CAN Received Frames Count
- CIA - Read Converted Analog Command
- CIP - Read Internal Pulse Command
- CIS - Read Internal Serial Command
- CL - Read RoboCAN Alive Nodes Map
- CR - Read Encoder Count Relative
- CSR - Read Relative SSI Sensor Counter
- CSS - Read Absolute SSI Sensor Counter
- D - Read Digital Inputs
- DI - Read Individual Digital Inputs
- DO - Read Digital Output Status
- DPA - Read DC/Peak Amps
- DR - Read Destination Reached
- E - Read Closed Loop Error
- F - Read Feedback
- FC - Read FOC Angle Adjust
- FLW - Read Flow Sensor Counter
- FF - Read Fault Flags
- FID - Read Firmware ID
- FIN - Read Firmware ID (numerical)
- FM - Read Runtime Status Flag
- FS - Read Status Flags
- HS - Read Hall Sensor States
- ICL - Is RoboCAN Node Alive
- K - Read Spektrum Receiver
- LK - Read Lock status
- M - Read Motor Command Applied
- MA - Read Field Oriented Control Motor Amps
- MGD - Read Magsensor Track Detect
- MGM - Read Magsensor Markers
- MGS - Read Magsensor Status
- MGT - Read Magsensor Track Position
- MGY - Read Magsensor Gyroscope
- MGX - Read MagSensor Tape Cross Detection
- P - Read Motor Power Output Applied
- PHA - Read Phase Amps
- PI - Read Pulse Inputs
- PIC - Read Pulse Input after Conversion
- S - Read Encoder Motor Speed in RPM
- SCC - Read Script Checksum
- SNA - Read Sensor Angle
- SR - Read Encoder Speed Relative
- SS - Read SSI Sensor Motor Speed in RPM
- SSR - Read SSI Sensor Speed Relative
- STT - STO Self-Test Result
- T - Read Temperature
- TM - Read Time
- TR - Read Position Relative Tracking
- TRN - Read Control Unit type and Controller Model
- UID - Read MCU Id
- V - Read Volts
- VAR - Read User Integer Variable
- SL - Read Slip Frequency
- DS402 Runtime Queries
- AOM – Modes of Operation Display (DS402)
- CW – Control Word (DS402)
- F – Velocity/Position Actual Value (DS402)
- PAC – Profile Acceleration (DS402)
- PDC – Profile Deceleration (DS402)
- POS – Target Position (DS402)
- PSP – Profile Velocity (DS402)
- RMP – VL Velocity Demand (DS402)
- ROM – Modes of Operation (DS402)
- S – Target Velocity (DS402)
- SAC – Velocity Acceleration (DS402)
- SDC – Velocity Deceleration (DS402)
- SDM – Supported Drive Modes (DS402)
- SPL – Velocity Min/Max Amount (DS402)
- SW – Status Word (DS402)
- TC – Target Torque (DS402)
- TRQ – Target Torque (DS402)
- TSL – Profile Acceleration (DS402)
- VNM – Version Number (DS402)
- Query History Commands
- Maintenance Commands
- CLMOD – Motor/Sensor Setup
- CLRST - Reset configuration to factory defaults
- CLSAV - Save calibrations to Flash
- DFU - Update Firmware via USB
- EELD - Load Parameters from EEPROM
- EELOG - Dump Flash Log Data
- EERST - Reset Factory Defaults
- EESAV - Save Configuration in EEPROM
- ERASE - Erase Flash Log Data
- LK - Lock Configuration Access
- RESET - Reset Controller
- SLD - Script Load
- STIME - Set Time
- UK - Unlock Configuration Access
- Set/Read Configuration Commands
- General Configuration and Safety
- ACS - Analog Center Safety
- AMS - Analog within Min & Max Safety
- BEE - User Storage in Battery Backed RAM
- BRUN - MicroBasic Auto Start
- CLIN - Command Linearity
- CPRI - Command Priorities
- DFC - Default Command value
- DMOD – Modbus Mode
- ECHOF - Enable/Disable Serial Echo
- EE - Store User Data in Flash
- MDAL – Modbus Data Alignment
- MNOD – Modbus Node ID
- RSBR - Set RS232 bit rate
- RS485 - Enable RS485
- RWD - Serial Data Watchdog
- SCRO - Select Print output port for scripting
- SKCTR - Spektrum Center
- SKDB - Spektrum Deadband
- SKLIN - Spektrum Linearity
- SKMAX - Spektrum Max
- SKMIN - Spektrum Min
- SKUSE - Assign Spektrum port to motor command
- STO – STO Enable
- TELS - Telemetry String
- Analog, Digital, Pulse IO Configurations
- ACTR - Set Analog Input Center (0) Level
- ADB - Analog Deadband
- AINA - Analog Input Use
- ALIN - Analog Linearity
- AMAX - Set Analog Input Max Range
- AMAXA - Action at Analog Max
- AMIN - Set Analog Input Min Range
- AMINA - Action at Analog Min
- AMOD - Enable and Set Analog Input Mode
- APOL - Analog Input Polarity
- DINA - Digital Input Action
- DINL - Digital Input Active Level
- DOA - Digital Output Action
- DOL - Digital Outputs Active Level
- PCTR - Pulse Center Range
- PDB - Pulse Input Deadband
- PINA - Pulse Input Use
- PLIN - Pulse Linearity
- PMAX - Pulse Max Range
- PMAXA - Action on Pulse Max
- PMIN - Pulse Min Range
- PMINA - Action on Pulse Min
- PMOD - Pulse Mode Select
- PPOL - Pulse Input Polarity
- Motor Configurations
- ALIM - Amp Limit
- ATGA - Amps Trigger Action
- ATGD - Amps Trigger Delay
- ATRIG - Amps Trigger Level
- BKD - Brake activation delay in ms
- BLFB - Encoder or Hall Sensor Feedback for closed loop
- BLSTD - Stall Detection
- CLERD - Close Loop Error Detection
- EDEC - Fault Motor Deceleration Rate
- EHL - Encoder High Count Limit
- EHLA - Encoder High Limit Action
- EHOME - Encoder Counter Load at Home Position
- ELL - Encoder Low Count Limit
- ELLA - Encoder Low Limit Action
- EMOD - Encoder Usage
- EPPR - Encoder PPR Value
- ICAP - PID Integral Cap
- KD - PID Differential Gain
- KI - PID Integral Gain
- KP - PID Proportional Gain
- MAC - Motor Acceleration Rate
- MDEC - Motor Deceleration Rate
- MLX - Molex Input
- MDIR - Motor Direction
- MMOD - Operating Mode
- MVEL - Default Position Velocity
- MXMD - Separate or Mixed Mode Select
- MXPF - Motor Max Power Forward
- MXPR - Motor Max Power Reverse
- MXRPM - Max RPM Value
- MXTRN - Number of turns between limits
- OVH - Overvoltage hysteresis
- OVL - Overvoltage Cutoff Limit
- OTL - Over Temperature Cutoff Limit
- PWMF - PWM Frequency
- SCPR - SSI Sensor CPR Value
- SHL - SSI Sensor High Count Limit
- SHLA - SSI Sensor High Limit Action
- SHOME - SSI Sensor Counter Load at Home Position
- SLL - SSI Sensor Low Count Limit
- SLLA - SSI Sensor Low Limit Action
- SMOD - SSI Sensor Usage
- THLD - Short Circuit Detection Threshold
- TNM - Motor Torque Constant
- UVL - Undervoltage Limit
- Brushless Specific Commands
- BADJ - Brushless zero angle
- BADV - Brushless timing angle adjust
- BECC – BEMF Coupling Constant
- BFBK - Brushless feedback sesnor
- BHL - Brushless Counter High Limit
- BHLA - Brushless Counter High Limit Action
- BHOME - Brushless Counter Load at Home Position
- BLL - Brushless Counter Low Limit
- BLLA - Brushless Counter Low Limit Action
- BMOD - Brushless operating mode
- BPOL - Number of Pole Pairs and Speed Polarity of Brushless Motor
- BZPW - Brushless zero seek power level
- HPO - Hall Sensor Position
- HSM - Hall Sensor Map
- KIF - FOC PID Integral Gain
- KPF - FOC PID Proportional Gain
- PSA - Phase Shift Angle
- SPOL - Sin/Cos, Resolver or SSI sensor number of poles
- SSF – Sensorless Start-Up Frequency
- SVT – BEMF Integrator Limit
- SWD - Swap Windings
- TID - FOC Target Id
- ZSMC - SinCos Calibration
- AC Induction Specific Commands
- VPH - AC Induction Volts per Hertz
- ILM - Mutual Inductance
- ILLR - Rotor Leakage Inductance
- IRR - Rotor Resistance
- MPW - Minimum Power
- MXS - Optimal Slip Frequency
- RFC - Rotor Flux Current
- CAN Communication Commands
- TCP Communication Commands
PID Tuning in Speed Position Mode
Advanced Digital Motor Controller User Manual 143
In the case where the load moved by the motor is not fixed, tune the PID with the mini-
mum expected load and tune it again with the maximum expected load. Then try to find
values that will work in both conditions. If the disparity between minimal and maximal
possible loads is large, it may not be possible to find satisfactory tuning values. In this
case, consider changing the PID gains on the fly during motor operation with serial/CAN
commands of with a MicroBasic script
In slow systems, use the integrator limit parameter to prevent the integrator to reach sat-
uration prematurely and create overshoots. Beware to set speeds that can physically be
reached by the motor under load. If the motor is not physically able, there will be a loop
error, which if it becomes too large, will cause a fault to be detected and the motor to be
stopped.
PID Tuning in Speed Position Mode
As discussed, in Closed Loop Speed Position mode, every millisecond, the controller com-
putes a successive desired position. The PID then works to make the motor follow the
computed trajectory. This mode works much better than the regular Closed Loop Speed
mode when the motor must operate at very low speed. When the motor is stopped, it
will maintain its position even if pulled, as for example on a robot stopped downhill.
The PID therefore must be tuned for position mode. In position mode, most of the work
is done by the proportional gain. It acts essentially as an imaginary rubber belt between
the controller’s internal destination counter and the motor: the higher the difference, the
more the belt is stretched, and the stronger the motor will turn. Once the imaginary belt
has stiffened the motor will run at the desired speed.
Try initially with only a small amount of P gain
P = 2
I = 0
D = 0
With the controller configured in Speed Position mode and the motor stopped, do a first
check of the PID’s stiffness by attempting to rotate the motor by hand. It should feel
increasingly hard to rotate away from the rest position. With a higher P gain, it will be-
come harder to move than lower gains. As a rule of thumb, on a mobile robot, use a gain
that makes it very hard to move the wheel more than a quarter turn away from the rest
position. Test then by applying a speed command and verifying the motor runs smoothly
under all load conditions.
The I and D gain can generally be omitted in Speed Position mode.
Beware to set speeds that can physically be reached by the motor under load. The Closed
Loop Speed Position mode relies on the fact that the motor will actually be able to follow
the computed trajectory. If the motor is not able, the controller will pause updating the
destination counter until the motor caught up. This will result in inaccurate speed and can
be a problem in mobile robot applications depending on precise control of their left and
right side motor.