Difference between revisions of "OperationalModes"

From SoftMC-Wiki
Jump to: navigation, search
(AXY: new links)
Line 9: Line 9:
 
Command will change the drive  (and axis!) opmode to the given value using the opmode bits of the SERCOS drive status word.  
 
Command will change the drive  (and axis!) opmode to the given value using the opmode bits of the SERCOS drive status word.  
  
* Default state is POSITIONMODE (as today). All the standard deviation thresholds are checked: '''pe < pemax''','''vfb < vospd''', '''te < terrmax''', '''acmd < amax''' and '''[[AXY:MC-Basic:axis.TORQUECOMMAND|tcmd]] < tmax'''.
+
* Default state is POSITIONMODE (as today). All the standard deviation thresholds are checked: '''pe < pemax''','''vfb < vospd''', '''te < terrmax''', '''acmd < amax''' and '''[[MC-Basic:element.TORQUECOMMAND|tcmd]] < tmax'''.
  
 
* In VELOCITYMODE  axis will '''NOT''' check '''position-error''', but will check:  '''vfb < vospd''', '''te < terrmax''', '''acmd < amax''' and '''tcmd < tmax'''.
 
* In VELOCITYMODE  axis will '''NOT''' check '''position-error''', but will check:  '''vfb < vospd''', '''te < terrmax''', '''acmd < amax''' and '''tcmd < tmax'''.
  
* In TORQUEMODE  axis will '''NOT''' check  '''position-error''' or acceleration max, but will check: '''vfb < vospd''', '''te < terrmax''' and '''[[AXY:MC-Basic:axis.TORQUECOMMAND|tcmd]] < tmax'''.
+
* In TORQUEMODE  axis will '''NOT''' check  '''position-error''' or acceleration max, but will check: '''vfb < vospd''', '''te < terrmax''' and '''[[MC-Basic:element.TORQUECOMMAND|tcmd]] < tmax'''.
 
* In '''Master-Slave''' - if the master or the slave is in TORQUEMODE or VELOCITYMODE - [[MC-Basic:axis.SLAVEDEVIATION|SLAVEDEVIATION ]] value is '''NOT''' checked.
 
* In '''Master-Slave''' - if the master or the slave is in TORQUEMODE or VELOCITYMODE - [[MC-Basic:axis.SLAVEDEVIATION|SLAVEDEVIATION ]] value is '''NOT''' checked.
  
Line 28: Line 28:
 
* STOP command in TORQUEMODE mode will '''''forcibly switch drive opmode to VELOCTYMODE''''' producing the deceleration profile from the current VFB value t zero. The same behavior will be implemend for both user-entred stop command and the system-generated stop commands like:  velocity-over speed error,  tcmd > tmax, te>temax.
 
* STOP command in TORQUEMODE mode will '''''forcibly switch drive opmode to VELOCTYMODE''''' producing the deceleration profile from the current VFB value t zero. The same behavior will be implemend for both user-entred stop command and the system-generated stop commands like:  velocity-over speed error,  tcmd > tmax, te>temax.
  
* New command [[MC-Basic:HOLD|HOLD <''axis''>]] will cause axis to stop interpolating torque. New property [[MC-Basic:axis.HOLDTYPE|<''axis''>.HoldType]] will give the user option to select between keeping the stopped [[AXY:MC-Basic:axis.TORQUECOMMAND|TCMD]] value or reducing it to zero. In bot cases the original TORQUEMODE will be not changed.
+
* New command [[MC-Basic:HOLD|HOLD <''axis''>]] will cause axis to stop interpolating torque. New property [[MC-Basic:axis.HOLDTYPE|<''axis''>.HoldType]] will give the user option to select between keeping the stopped [[MC-Basic:element.TORQUECOMMAND|TCMD]] value or reducing it to zero. In bot cases the original TORQUEMODE will be not changed.
  
 
<pre>
 
<pre>
Line 56: Line 56:
  
  
*MOVE <''axis''> and JOG <''axis''> commands are producing [[AXY:MC-Basic:axis.POSITIONCOMMAND|PCMD]],[[AXY:MC-Basic:axis.VELOCITYCOMMAND|VCMD]]and [[MC-Basic:axis.TORQUEADDCOMMAND|TADDCMD]] (if DynamicModel is turned on). The TCMD value during these types of motion remains unchanged.<br>
+
*MOVE <''axis''> and JOG <''axis''> commands are producing [[MC-Basic:element.POSITIONCOMMAND|PCMD]],[[MC-Basic:element.VELOCITYCOMMAND|VCMD]]and [[MC-Basic:axis.TORQUEADDCOMMAND|TADDCMD]] (if DynamicModel is turned on). The TCMD value during these types of motion remains unchanged.<br>
  
  
*[MC-Basic:TORQUE|TORQUE <''axis''>]] command is affecting [[AXY:MC-Basic:axis.POSITIONCOMMAND|PCMD]], [[AXY:MC-Basic:axis.VELOCITYCOMMAND|VCMD]], [[MC-Basic:axis.TORQUEADDCOMMAND|TADDCMD]] values of the axis (their values are kept unchanged).Only the [[AXY:MC-Basic:axis.TORQUECOMMAND|TCMD]] is interpolated.<br>   
+
*[MC-Basic:TORQUE|TORQUE <''axis''>]] command is affecting [[MC-Basic:element.POSITIONCOMMAND|PCMD]], [[MC-Basic:element.VELOCITYCOMMAND|VCMD]], [[MC-Basic:axis.TORQUEADDCOMMAND|TADDCMD]] values of the axis (their values are kept unchanged).Only the [[MC-Basic:element.TORQUECOMMAND|TCMD]] is interpolated.<br>   
  
  
*It is assumed that the drive adds the [[AXY:MC-Basic:axis.TORQUECOMMAND|TCMD]](IDN80) and [[MC-Basic:axis.TORQUEADDCOMMAND|TADDCMD]](IDN81) in all OPMODEs. In case it is not so <''axis''>.[[MC-Basic:axis.SUMTORQUE|SumTorque]]<nowiki>=1</nowiki> will cause the value of [[MC-Basic:axis.TORQUEADDCOMMAND|TADDCMD]] to be added to [[AXY:MC-Basic:axis.TORQUECOMMAND|TCMD]]:  <br/>
+
*It is assumed that the drive adds the [[MC-Basic:element.TORQUECOMMAND|TCMD]](IDN80) and [[MC-Basic:axis.TORQUEADDCOMMAND|TADDCMD]](IDN81) in all OPMODEs. In case it is not so <''axis''>.[[MC-Basic:axis.SUMTORQUE|SumTorque]]<nowiki>=1</nowiki> will cause the value of [[MC-Basic:axis.TORQUEADDCOMMAND|TADDCMD]] to be added to [[MC-Basic:element.TORQUECOMMAND|TCMD]]:  <br/>
:[[AXY:MC-Basic:axis.TORQUECOMMAND|TCMD]] <nowiki>=</nowiki> [[AXY:MC-Basic:axis.TORQUECOMMAND|TCMD]] + [[MC-Basic:axis.TORQUEADDCOMMAND|TADDCMD]]<br>
+
:[[MC-Basic:element.TORQUECOMMAND|TCMD]] <nowiki>=</nowiki> [[MC-Basic:element.TORQUECOMMAND|TCMD]] + [[MC-Basic:element.TORQUEADDCOMMAND|TADDCMD]]<br>
  
  
Line 80: Line 80:
 
* [[MC-Basic:axis.HOLDTYPE|HOLDTYPE ]]
 
* [[MC-Basic:axis.HOLDTYPE|HOLDTYPE ]]
 
* [[MC-Basic:axis.SUMTORQUE|SUMTORQUE]]
 
* [[MC-Basic:axis.SUMTORQUE|SUMTORQUE]]
* [[AXY:MC-Basic:axis.TORQUECOMMAND| TORQUECOMMAND]]
+
* [[MC-Basic:element.TORQUECOMMAND| TORQUECOMMAND]]
 
* [[MC-Basic:axis.TORQUEADDCOMMAND| TORQUEADDCOMMAND]]
 
* [[MC-Basic:axis.TORQUEADDCOMMAND| TORQUEADDCOMMAND]]
 
* [[MC-Basic:axis.DRIVEOPMODE| DRIVEOPMODE ]]
 
* [[MC-Basic:axis.DRIVEOPMODE| DRIVEOPMODE ]]
* [[AXY:MC-Basic:axis.DYNAMICMODEL|DYNAMICMODEL]]
+
* [[MC-Basic:element.DYNAMICMODEL|DYNAMICMODEL]]
  
 
[[Category:OperationalModes]]
 
[[Category:OperationalModes]]

Revision as of 10:43, 13 September 2017

Language: [[::OperationalModes|English]]  • [[::OperationalModes/zh-hans|中文(简体)‎]]

Selecting Drive Operation Modes

User selects the operation-mode using the OpMode command.

<''axis''>.OpMode = {POSITIONMODE|VELOCITYMODE|TORQUEMODE} 


Command will change the drive (and axis!) opmode to the given value using the opmode bits of the SERCOS drive status word.

  • Default state is POSITIONMODE (as today). All the standard deviation thresholds are checked: pe < pemax,vfb < vospd, te < terrmax, acmd < amax and tcmd < tmax.
  • In VELOCITYMODE axis will NOT check position-error, but will check: vfb < vospd, te < terrmax, acmd < amax and tcmd < tmax.
  • In TORQUEMODE axis will NOT check position-error or acceleration max, but will check: vfb < vospd, te < terrmax and tcmd < tmax.
  • In Master-Slave - if the master or the slave is in TORQUEMODE or VELOCITYMODE - SLAVEDEVIATION value is NOT checked.

Torque Interpolation

New torque interpolation command will be implemented:

TORQUE <axis>  tfinal
  • This command interpolate the tcmd from its initial value to the given tfinal according to the profile parameters defined.
  • In case TORQUE command is issued in POSITIONMODE or in VELOCITYMODE a note will be thrown and the TORQUE command will continue as usual interpolating TCMD (with probably no effects - as the drive is not in TORQUEMODE).

Stopping

  • STOP command in TORQUEMODE mode will forcibly switch drive opmode to VELOCTYMODE producing the deceleration profile from the current VFB value t zero. The same behavior will be implemend for both user-entred stop command and the system-generated stop commands like: velocity-over speed error, tcmd > tmax, te>temax.
  • New command HOLD <axis> will cause axis to stop interpolating torque. New property <axis>.HoldType will give the user option to select between keeping the stopped TCMD value or reducing it to zero. In bot cases the original TORQUEMODE will be not changed.
HOLD <axis> {HoldType = <value>}


Mode:
Stop
Hold
Position
Regular
In case the torque command is executing at that time it will be aborted (immediately) and the TCMD left at the current value.
calls STOP

HoldType value ignored!
Velocity
Regular
In case the torque command is executing at that time it will be aborted (immediately) and the TCMD left at the current value.
calls STOP

HoldType value ignored!
Torque first switches into velocityMode with vcmd = vfb
then executes motion profile from the vcmd to 0 according the given StopType
HoldTyepe = 0 immediately(no profile) brakes TORQUE command and sets TCMD = 0
HoldTyepe = 1 immediately(no profile) brakes TORQUE command and keeps tha last value of TCMD

Limitations and Side Effects

  • Opmode changes are allowed in disabled drive state only.


  • If an axis belongs to a group its opmode can not be changed separately.This means:
  1. opmode change is not allowed if an axis belongs to an attached group
  2. a group can not be attached (implicitly or explicitly) if it consist of axes with different opmodes.


  • MOVE <axis> and JOG <axis> commands are producing PCMD,VCMDand TADDCMD (if DynamicModel is turned on). The TCMD value during these types of motion remains unchanged.


  • [MC-Basic:TORQUE|TORQUE <axis>]] command is affecting PCMD, VCMD, TADDCMD values of the axis (their values are kept unchanged).Only the TCMD is interpolated.


  • It is assumed that the drive adds the TCMD(IDN80) and TADDCMD(IDN81) in all OPMODEs. In case it is not so <axis>.SumTorque=1 will cause the value of TADDCMD to be added to TCMD:
TCMD = TCMD + TADDCMD


  • TORQUEMODE of an axis is not influencing camming/gearing operation.
The interpolated torque values of a master axis will be NOT transferred to slave axes.
Slave that is in TORQUEMODE continues to be slaved affecting only its PCMD and VCMD values.

See Also