Difference between revisions of "Firmware Parameter Configuration"

From Wiki
Line 15: Line 15:
 
The parameter files contain a set of parameter for each joint of the robot:
 
The parameter files contain a set of parameter for each joint of the robot:
  
<code>
+
<code><Joint0 ID="16" ComTimeOut="2000" MaxCurrent="200" MaxLag="5000" PosP="1.000" PosI="0.000" PosD="0.000" PosAWU="30.000"  
        <Joint0 ID="16" ComTimeOut="2000" MaxCurrent="200" MaxLag="5000" PosP="1.000" PosI="0.000" PosD="0.000" PosAWU="30.000"  
+
Encoder="True" SwapEncoderDirection="False" EndSwitchRising="True" StopOnEndSwitch="False"
        Encoder="True" SwapEncoderDirection="False" EndSwitchRising="True" StopOnEndSwitch="False"
+
RefStraight="False" RefSinus="False" RefHalf="True" SinusRefTics="2000" SinusRefMaxCycles="6"
        RefStraight="False" RefSinus="False" RefHalf="True" SinusRefTics="2000" SinusRefMaxCycles="6"
+
Offset="0" RefSpeed="50" RefSpeedSlow="10" RefFromBothSides="True"
        Offset="0" RefSpeed="50" RefSpeedSlow="10" RefFromBothSides="True"
+
SGThreshold="2" CSLoad="20" CSStart="20" CSIdle="6" CSRef="18" StartArea="200"
        SGThreshold="2" CSLoad="20" CSStart="20" CSIdle="6" CSRef="18" StartArea="200"
+
MinSupplyVoltage="500" MaxTemperature="500" Microstepping="128"/></code>
        MinSupplyVoltage="500" MaxTemperature="500" Microstepping="128"
 
        />
 
</code>
 
  
 
Floating point values have to be separated by '.', not by ','!
 
Floating point values have to be separated by '.', not by ','!
  
 
The most important parameter are:
 
The most important parameter are:
* Offset: This value defines the offset between reference position and zero position. The unit is encoder tics.
+
* Offset: This value defines the offset between reference position and zero position. The unit is encoder tics. In the c:/CPRog/Data/Robots/ folder you can find a .xlsx sheet for translation degree <-> encoder tics.
 
* CSLoad: Defines the motor current while running. Values from 1 (minimum) and 31 (maximum) are allowed.
 
* CSLoad: Defines the motor current while running. Values from 1 (minimum) and 31 (maximum) are allowed.
 
* CSStart: Defines the motor current while starting (low rpm). Values from 1 (minimum) and 31 (maximum) are allowed.
 
* CSStart: Defines the motor current while starting (low rpm). Values from 1 (minimum) and 31 (maximum) are allowed.

Revision as of 14:32, 4 October 2018

This section applies for: robolink DCI, robolink, drylin gantry or drytech delta with modular control, both via USB and embedded. It does not apply for the Mover robots.

CPRog allows to set all firmware parameter of the motor controller. This is done either directly using the USB-CAN-Adapter, or via Ethernet and the TinyCtrl software on the embedded Linux board.


General Procedure

  • Make a backup of the current firmware parameter
  • Adapt the values in the backup file
  • Upload the file again


Parameter File

The parameter files contain a set of parameter for each joint of the robot:

<Joint0 ID="16" ComTimeOut="2000" MaxCurrent="200" MaxLag="5000" PosP="1.000" PosI="0.000" PosD="0.000" PosAWU="30.000" Encoder="True" SwapEncoderDirection="False" EndSwitchRising="True" StopOnEndSwitch="False" RefStraight="False" RefSinus="False" RefHalf="True" SinusRefTics="2000" SinusRefMaxCycles="6" Offset="0" RefSpeed="50" RefSpeedSlow="10" RefFromBothSides="True" SGThreshold="2" CSLoad="20" CSStart="20" CSIdle="6" CSRef="18" StartArea="200" MinSupplyVoltage="500" MaxTemperature="500" Microstepping="128"/>

Floating point values have to be separated by '.', not by ','!

The most important parameter are:

  • Offset: This value defines the offset between reference position and zero position. The unit is encoder tics. In the c:/CPRog/Data/Robots/ folder you can find a .xlsx sheet for translation degree <-> encoder tics.
  • CSLoad: Defines the motor current while running. Values from 1 (minimum) and 31 (maximum) are allowed.
  • CSStart: Defines the motor current while starting (low rpm). Values from 1 (minimum) and 31 (maximum) are allowed.
  • CSIdle: Defines the motor current while not running. Values from 1 (minimum) and 31 (maximum) are allowed.
  • CSRef: Defines the motor current while referencing. Values from 1 (minimum) and 31 (maximum) are allowed.

The following parameter should only be changed when you are aware of the usage:

  • PosP: Proportional parameter of the position PID control. Around 1.0 for robots with motor encoder

The files are stored in two locations:

  • c:/CPRog/Data/Backup/filewithdateandtime.dat for the backup files from your robot
  • e.g. c:/CPRog/Data/Robots/igus_5DOF_BV/igus_5DOF_BV_DiscHalfRef_AmpParameter.dat for general presets based on the robot type


Detailed Procedure

  • Open CPRog
  • Connect to the robot via USB-CAN-Adapter or Ethernet
  • Open the circle menu in the left upper corner
  • Select /Configuration/Amp Config/Backup current config
  • Now a backup file is written in c:/CPRog/Data/Backup
  • Change the file according to your requirements, e.g. adapting the offsets
  • Select /Configuration/Amp Config/Set new config
  • Choose the updated .dat file
  • Wait until all parameters are written, approx 20s
  • For some parameter, e.g. the encoder direction, the control needs a cold restart
  • Test if the changes result in a better performance.


For questions please get in contact!