Difference between revisions of "Sys.MotionMargin"

From SoftMC-Wiki
Jump to: navigation, search
(expla)
m
 
(12 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
= Sys.MotionMargin =
 
= Sys.MotionMargin =
  
System motion property of type double. Default value is 2.0 Accessible from Terminal or Task.
+
* System motion property of type double.  
 +
* Default value is 3.0  
 +
* Accessible from Terminal or Task.
  
 
= Usage =
 
= Usage =
  
  
if an individual axis' acceleration exceeds value of amax*Sys.MotionMargin the axis and the group to which axis belongs will be stopped. The stop profile will be generated with the initial value of acceleration equal to amax*Sys.MotionMargin and '''not''' the original acceleration command value that caused the error.
+
if an individual axis' acceleration exceeds value of ''amax*Sys.MotionMargin'' the axis and the group to which axis belongs will be stopped. The stop profile will be generated with the initial value of acceleration equal to ''amax*Sys.MotionMargin'' and '''not''' the original acceleration command value that caused the error '''in addition''' to the notes:
 
 
'''in addition''' to the notes:
 
  
  
Line 20: Line 20:
  
  
This further means that there will be jump of the acceleration profile at that moment.
+
The stopping will be done in '''immediate''' stoptype mode, which means all the axes would stop independently. So the robot will '''not follow''' it's original path during stopping. During that stopping process ''following'', ''torque'' and ''vospd'' errors will be '''not''' checked.
 +
 
 +
This further means that there will be jump of the acceleration profile at that moment. But in any case the high original commanded acceleration was not executed so in reality the jump does not exist. All this is to assure relatively short stopping path of the following-error stop that would probably come later.
 +
 
 +
So the '''stop profile''' of each axis in the group will be done according:
  
 +
'' Initial values: ''
 +
 +
* position = '''<''axis''>.pcmd'''
 +
* velocity = '''<''axis''>.vcmd'''
 +
* accleration = '''sign*min( abs(AccelCmd), amax*Sys.MotionMargin )'''
 +
 +
'' Limits: ''
 +
* accleration = '''<''axis''>.DecStop'''
 +
* jerk = '''<''axis''>.JerkMax'''
  
 
For background of this topic see [[AXY:Sys.MotionMargin/Explanation]]
 
For background of this topic see [[AXY:Sys.MotionMargin/Explanation]]
 +
 +
Se also: [[Speed Picker Y Limit]]
 +
 +
--[[User:Miborich|Mirko]] 13:12, 5 October 2010 (CEST)
 +
[[Category:Motion Control]]

Latest revision as of 12:37, 22 May 2014

Sys.MotionMargin

  • System motion property of type double.
  • Default value is 3.0
  • Accessible from Terminal or Task.

Usage

if an individual axis' acceleration exceeds value of amax*Sys.MotionMargin the axis and the group to which axis belongs will be stopped. The stop profile will be generated with the initial value of acceleration equal to amax*Sys.MotionMargin and not the original acceleration command value that caused the error in addition to the notes:


Error 3312: MOT_NOT_EXC_ACC (0x0138) "Acceleration exceeds it's maximum."

Error 3311: MOT_NOT_EXC_ACC_CT(0x0137) "Acceleration exceeds it's maximum during CT."

Error 3310: MOT_NOT_EXC_ACC_SP(0x0136) "Acceleration exceeds it's maximum during blending."

Error 3314: MOT_NOT_EXC_ACC_AI(0x0140) "Acceleration exceeds it's maximum during AI."


The stopping will be done in immediate stoptype mode, which means all the axes would stop independently. So the robot will not follow it's original path during stopping. During that stopping process following, torque and vospd errors will be not checked.

This further means that there will be jump of the acceleration profile at that moment. But in any case the high original commanded acceleration was not executed so in reality the jump does not exist. All this is to assure relatively short stopping path of the following-error stop that would probably come later.

So the stop profile of each axis in the group will be done according:

Initial values:

  • position = <axis>.pcmd
  • velocity = <axis>.vcmd
  • accleration = sign*min( abs(AccelCmd), amax*Sys.MotionMargin )

Limits:

  • accleration = <axis>.DecStop
  • jerk = <axis>.JerkMax

For background of this topic see AXY:Sys.MotionMargin/Explanation

Se also: Speed Picker Y Limit

--Mirko 13:12, 5 October 2010 (CEST)