NRL Teach Configuration File

Configurations are the key to establishing the NRL syntax associated with V5 activities and profiles. The different types of configurations that are available are described in this task.

Instructions for creating an NRL Teach dialog are provided in Using the NRL Teach Configuration File.

 

Configurations

Example: ACCURACYPROFILE_CONFIGURATION - used to setup a V5 accuracy profile name that complies with the NRL being used.

ACCURACYPROFILE_CONFIGURATION = <accType> <accValue>
If the accType is "CNT" and the accValue is 100 then
AccuracyProfile.ProfileName = "CNT100"
 

Example: BUTTON_CONFIGURATION - used to setup a user-defined NRL interface button. The output of this button is an NRL statement.

BUTTON_CONFIGURATION = "MOVE TO" <tagName>
If the tagName is "t1" then the NRL statement for this button is
MOVE TO t1
 

Example: MOTIONPROFILE_CONFIGURATION - used to setup a V5 motion profile name that complies with the NRL being used.

MOTIONPROFILE_CONFIGURATION = <speedValue> "%"
If the speedValue is 100 then
MotionProfile.ProfileName = "100%"
 

Example: OBJECTFRAMEPROFILE_CONFIGURATION - used to setup a V5 objectframe profile name that complies with the NRL being used.

OBJECTFRAMEPROFILE_CONFIGURATION = "UFRAME_NUM = " <objIndex>
If the objIndex is 2 then
ObjectFrameProfile.ProfileName="UFRAME_NUM = 2"
 

Example: POS_REG_CONFIGURATION - used to setup a user-defined NRL position register name.

POS_REG_CONFIGURATION = "PR[" <tagIndex> "]"
If the tagIndex is 4 then
DNBRobotMotionActivity.PositionRegister="PR[4]"
 

Example: SIGNALINPUT_CONFIGURATION - used to setup a V5 input signal name that complies with the NRL being used.

SIGNALINPUT_CONFIGURATION = <signalType> "[" <portNumber> "]"
If the signalType is RI and the portNumber is 10 then
DNBWaitSignalActivity.SignalName = "RI[10]"
 

Example: SIGNALOUTPUT_CONFIGURATION - used to setup a V5 output signal name that complies with the NRL being used.

SIGNALOUTPUT_CONFIGURATION = <signalType> "[" <portNumber> "]"
If the signalType is WO and the portNumber is 11 then
DNBSetSignalActivity.SignalName = "WO[11]"
 

Example: TAG_NAME_CONFIGURATION - used to setup a user-defined NRL tag name.

TAG_NAME_CONFIGURATION = <moveType> "[" <tagIndex> "]"
If the moveType is "P" and the tagIndex is 6 then
DNBRobotMotionActivity.TagName="P[6]"
 

Example: TOOLPROFILE_CONFIGURATION - used to setup a V5 tool profile name that complies with the NRL being used.

TOOLPROFILE_CONFIGURATION = "UTOOL_NUM = " <toolIndex>
If the toolIndex is 3 then
ToolProfile.ProfileName="UTOOL_NUM = 3"

 V5 Entities

  The following V5 entities are reserved Elements. They have special meaning in CCF and must not be used as identifiers. These entities allow information to be sent back and forth between the robot task in the PPR tree and the NRL program.
 

Reserved Elements

  AccuracyProfile
AccuracyType   type distance or speed within AccuracyProfile
AccuracyValue   accuracy value of type distance or speed within AccuracyProfile
FlyByMode   accuracy fly by on or off
ProfileName   name of referenced profile based on ACCURACYPROFILE_CONFIGURATION
    Note: see CONSTANTS section for items that can be used to set AccuracyType and FlyByMode
DelayActivity  
  ActivityName
WaitTime delay time
DNBClearZoneActivity  
  ActivityName
ClearZoneName - name of zone
ClearZoneResource - resource(s) for zon
ClearZoneParent - parent(s) of resource(s)
 
DNBEnterZoneActivity  
  ActivityName
EnterZoneName - name of zone
EnterZoneResource - resource(s) for zon
EnterZoneParent - parent(s) of resource(s)
 
DNBIgpCallRobotTask  
  ActivityName
CallName - name of current call task
 
DNBIgpMountActivity  
  ActivityName
MountTool - name of tool to mount
MountToolProfile - tool profile associated with the mounted tool
 
DNBIgpUnMountActivity  
  ActivityName
UnMountTool - name of tool to unmount
UnMountToolProfile - name of tool to switch to following unmount
 
DNBRobotMotionActivity  
  ActivityName
AccuracyProfile - all accuracy profile properties as defined above
CartesianPosition - X,Y,Z,YAW,PITCH,ROLL position of tag/target relative to
robot kinematic base
JointPosition - J1, J2, J3, etc of robot and all auxiliary devices…at tag/target
location.
MotionProfile - all motion profile properties as defined below
    MotionType - joint, linear, circular or circular_via
OrientMode - 1_axis, 2_axis, 3_axis, wrist
IsViaPoint - true or false
TagName - name of tag based on TAG_NAME_CONFIGURATION
TargetType - "cartesian" or "joint"
ConfigName
TurnNumber1
TurnNumber4
TurnNumber5
TurnNumber6
Turnsign1
Turnsign4
Turnsign5
Turnsign6
 
ObjectFrameProfile objectframe profile properties as defined below
ToolProfile tool profile properties as defined below
UserProfile user profile properties as defined below
  Note: see constants section for item that can be used to set TargetType
DNBSetSignalActivity  
  ActivityName
SignalName current signal to set
PortNumber output port number
SignalValue on/off
SetSignalDuration time signal is set
DNBWaitSignalActivity  
  ActivityName
SignalName name of current wait signal
PortNumber input port number
SignalValue on/off
WaitSignalMaxTime maximum wait time
FollowPathActivity  
  ActivityName
NodeNumber - current node number
NodePosition - X,Y,Z,YAW,PITCH, ROLL value relative to robot kinematic base
MotionProfile - motion profile based on MOTIONPROFILE_CONFIGURATION
MotionType - joint, linear, circular or circular_via
OrientMode - 1_axis, 2_axis, 3_axis, wrist
ConfigName
TurnNumber1
TurnNumber4
TurnNumber5
TurnNumber6
Turnsign1
Turnsign4
Turnsign5
Turnsign6
 
ObjectFrameProfile objectframe profile properties as described below
ToolProfile tool profile properties as described below
GrabActivity  
  ActivityName
GrabbingObject - name of grabbing resource
GrabbingObjectParent - parent of grabbing resource
GrabbedObject - resource(s) to grab
GrabbedObjectParent - parents(s) of resource(s) to grab
 
MoveHomeActivity  
  ActivityName
MoveToHome
MotionTime
 
MotionProfile motion profile based on MOTIONPROFILE_CONFIGURATION
AccelValue acceleration percentage within MotionProfile
AngularAccel angular acceleration percentage within MotionProfile
AngularSpeed angular speed percentage within MotionProfile
MotionBasis percent, speed or time based motion within MotionProfil
SpeedValue value in percent, m/sec or sec within MotionProfile
  Note: see CONSTANTS section for items that can be used to set MotionType and MotionBasis.
ObjectFrameProfile  
  ReferenceFrame - frame define relative to "world" or "robot"
ApplyOffsetsToTags - "on" or "off"
CartesianPosition - X,Y,Z,YAW,PITCH,ROLL of objectframe relative to specified
frame
ProfileName - objectframe profile based on  OBJECTFRAME_PROFILE_CONFIGURATION
  Note: see CONSTANTS section for items that can be used to set ReferenceFrame and ApplyOffsetsToTags.
Operation empty operation
ReleaseActivity  
  ActivityName
ReleasedObject - resource(s) to release
ReleasedObjectParent - parents(s) of resource(s) to release
 
ToolProfile  
  ToolType - stationary or on-robot
CartesianPosition - X,Y,Z,YAW,PITCH, ROLL of tool relative to mount plate (for
on-robot) or robot kinematic base (for stationary).
Profilename - tool profile based on TOOL_PROFILE_CONFIGURATION
ToolMass - tool mass
ToolCentroid - Cx, Cy and Cz of tool
ToolInertia - Ixx, Ixy, Iyy, Iyz, Izx, Izz of tool

Note: see CONSTANTS section for items that can be used to set ToolType.

UserAction for user actions such as TPESpotPick, TPEToolDro
UserProfile name of the user profile (i.e. ArcStart)
<ProfileName>.<Instance Name> (i.e. ArcStart.ArcStart[1]
 

Constants

  The following are Elements which are constants. Use of these is recommended when mapping or assigning V5 entities. See examples below for more information.
 
  ACCURACY_TYPE_DISTANCE="distance"
ACCURACY_TYPE_DISTANCE_OFF="distance_off"
ACCURACY_TYPE_SPEED="speed"
ACCURACY_TYPE_SPEED_OFF="speed_off"
FALSE = "false"
MOTION_BASIS_ABSOLUTE="absolute"
MOTION_BASIS_PERCENT="percent"
MOTION_BASIS_TIME="time"
MOTION_TYPE_JOINT="joint"
MOTION_TYPE_LINEAR="linear"
MOTION_TYPE_CIRCULAR="circular"
MOTION_TYPE_CIRCULAR_VIA="circular_via"
ORIENT_MODE_1_AXIS="1_axis"
ORIENT_MODE_2_AXIS="2_axis"
ORIENT_MODE_3_AXIS="3_axis"
ORIENT_MODE_WRIST="wrist"
OFF = "off"
ON = "on"
REFERENCE_FRAME_ROBOT="robot"
REFERENCE_FRAME_WORLD="world"
TARGETTYPE_CARTESIAN="cartesian"
TARGETTYPE_JOINT="joint"
TOOLTYPE_ONROBOT="onrobot"
TOOLTYPE_STATIONARY="stationary"
TRUE = "true"
UNITS_DISTANCE_MM="mm"
UNITS_DISTANCE_CM="cm"
UNITS_DISTANCE_INCH="inch"
UNITS_DISTANCE_METER="meter"
UNITS_PERCENT = "%"
UNITS_SPEED_CM_MIN="cm/min"
UNITS_SPEED_INCH_MIN = "in/min"
UNITS_SPEED_METER_SEC="m/sec"
UNITS_SPEED_MM_SEC="mm/sec"
UNITS_SPEED_SEC="sec"
 

Functions

  The following are Elements which can be used as button functions.
 
CREATE_TOOL_PROFILE   allows setup of a new tool profile from a button
CREATE_OBJECTFRAME_PROFILE   allows setup of a new objectframe profile from a button.
PERFORM_PAUSE   halts run
PERFORM_RUN   runs from current location to end of program
PERFORM_STEP_BACKWARD   steps backward 1 step from current location
PERFORM_STEP_FORWARD   steps forward 1 step from current location
USE_MOTION_OPTIONS   uses Motion Option setup to jog robot or move to a tag/fastener after a button invocation.

example:
BUTTON = "STEP GO"
BUTTON_CONFIGURATION = PERFORM_STEP_FORWARD

 

Groups and Buttons

  The following are Group and Button setup elements. See examples below for more information.
 
BUTTON   sets the current button

Example
BUTTON= "J"
BUTTON_END   end button definition
BUTTON_LOCATION   establish row and column of current button within the teach interface

Example
BUTTON_LOCATION=(1,1)
GROUP   used to set the current GROUP

Example
GROUP="Motion Instructions"
GROUP_END   end group definition
GROUP_LOCATION   establish row and column of current group within the teach interface

Example
GROUP_LOCATION=(1,1)
 

Tag and Profile Indexes

  The following are elements used for incrementing mapped tag and/or profile values. See examples below for more information.
 
ACCURACYPROFILE_INDEX_INC   sets up the current accuracy profile increment
MOTIONPROFILE_INDEX_INC   sets up the current motion profile increment
OBJECTFRAMEPROFILE_INDEX_INC   sets up the current objectframe increment
TAG_NAME_INDEX_INC   sets up the current tag increment
TOOLPROFILE_INDEX_INC   sets up the current tool increment
 

Declarations

  The following are declaration elements used to setup variable and enumeration identifiers as well as map them to V5 entities. See examples below for more information.
 
ENUM   used to declare and map an enumeration

Example
ENUM termtype={"FINE","CNT", "CD"):AccuracyProfile.FlybyMode{OFF, ON, ON}
In this case the following V5 entity mapping is created
termtype="FINE" FlybyMode=OFF
termtype="CNT" FlybyMode=ON
termtype="CD" FlybyMode=ON
VARIABLE   used to declare and map a variable

Example
VARIABLE weldspeed1=375.0:UserProfile.Arc Start[1].1@WeldSpeed
(instance) (attribute)
VARIABLE weldspeed2=500.0:UserProfile.Arc Start[2].2@WeldSpeed

 

Miscellaneous

  The following are miscellaneous elements.
 
DOWNLOAD_EXECUTABLE   location of the dressup downloader which will read the
files created during download and generate a valid robot
program.

Example
DOWNLOAD_EXECUTABLE = "c:/tmp/fanucdressup.jar"
Arguments to the dressup downloader include the full path to the NRL program and
the full path to the motion V5 entities file (motParam.tmp).
OBJECTFRAMEPROFILE_LABEL   sets a label for the ObjectFrameProfile selection
in the motion options dialog for creation of a robot
motion command.

Example
OBJECTFRAMEPROFILE_LABEL = "Uframe"
TOOLPROFILE_LABEL   sets a label for the ToolProfile selection in the motion options
dialog for creation of a robot motion command.

Example
TOOLPROFILE_LABEL = "Utool"
 

Identifiers

  Identifiers are used to name variables and enumerations.

Example
VARIABLE <identifier>=<default value>:<reserved V5 entity>

ENUM <identifier>={<value1>, <value2>, <value3>}:<reserved V5
entity>{<value4>, <value5>, <value6>}

The first character in an identifier must be a letter. The other characters can be letters, digits or underscores.

 

Values

  The following types of values can be used in declaring identifiers.
 
Integer   -4, 200, 3E6
Real   -4.2, 200.75, 3.5E-4
String   "this is my string"
"this #!$* string contains control chars"
Boolean   TRUE, FALSE, ON, OFF
 

Comments

  Any line which starts with an # is considered a comment and will be ignored. This is useful for documenting the CCF file.

Example
# the following line defines ENUM TermType and
# associates it with V5 entity FlybyMode
ENUM TermType={"FINE", "CNT"}:FlybyMode

 

Operators

  The following operators are used in CCF:
 
#   marks a comment line
@   references an attribute
.   references a V5 sub-entity (i.e., MotionProfile.ProfileName)
=   assigns a value
:   references a V5 entity
==   equivalent symbol used in condition
!=   not equivalent symbol used in condition
?   condition for BUTTON_CONFIGURATION
<   delimits left side of VARIABLE or ENUM in CONFIGURATION string
>   delimits right side of VARIABLE or ENUM in CONFIGURATION string
*, -, /, +    mathematical operators
 

Program Syntax

  The following is the CCF program syntax:
 
program:   statement
| program statement
statement:   acc_profile_config
| enum_decl
| group_decl
| variable_decl
| mot_profile_config
| obj_profile_config
| obj_profile_label
| tag_name_config
| tag_name_index_inc
| accuracy_profile_index_inc
| tool_profile_index_inc
| objectframe_profile_index_inc
| motion_profile_index_inc
| tool_profile_config
| tool_profile_label
acc_profile_config:   ACCURACYPROFILE_CONFIGURATION '=' expression
group_decl:   group_def button_decl GROUP_END
group_def:   GROUP '=' string GROUP_LOCATION '=' location
button_decl:   button_def button_config BUTTON_END
| button_decl button_def button_config BUTTON_END
button_def:   BUTTON '=' string BUTTON_LOCATION '=' location
button_config:   BUTTON_CONFIGURATION '=' expression
| button_config expression
| button_config V5Entity '=' value
| button_config function
location:   '(' number ',' number ')'
enum_decl:   ENUM identifier '=' constant_array
| enum_decl ':' V5entity constant_array
identifier:   UNDEF
constant_array:   '{' array_value
| constant_array ',' array_value
| constant_array '}'
array_value:    string
| constant
| V5Entity
expression:   value
| '<' identifier '>'
| expression value
| expression '<' identifier '>'
| expression condition
condition:   '?' identifier compare value
compare:   GT
| LT
| EQ
| GE
| LE
| NE
value:   number
| string
| constant
| V5Entity
number:   INTEGER
| NUM
constant:   ACCURACY_TYPE_SPEED
| ACCURACY_TYPE_SPEED_OFF
| ACCURACY_TYPE_DISTANCE
| ACCURACY_TYPE_DISTANCE_OFF
| MOTION_BASIS_ABSOLUTE
| MOTION_BASIS_PERCENT
| MOTION_BASIS_TIME
| MOTION_TYPE_JOINT
| MOTION_TYPE_LINEAR
| MOTION_TYPE_CIRCULAR
| MOTION_TYPE_CIRCULAR_VIA
| ORIENT_MODE_1_AXIS
| ORIENT_MODE_2_AXIS
| ORIENT_MODE_3_AXIS
| ORIENT_MODE_4_AXIS
| REFERENCEFRAME_ROBOT
| REFERENCEFRAME_WORLD
| TOOLTYPE_STATIONARY
| TOOLTYPE_ONROBOT
| UNITS_DISTANCE_MM
| UNITS_DISTANCE_CM
| UNITS_DISTANCE_INCH
| UNITS_DISTANCE_METER
| UNITS_PERCENT
| UNITS_SPEED_METER_SEC
| UNITS_SPEED_MM_SEC
| UNITS_SPEED_INCH_MIN
| UNITS_SPEED_CM_MIN
| UNITS_SPEED_SEC
| FALSE
| TRUE
| ON
| OFF
function:   CREATETOOL_PROFILE
| CREATEOBJECTFRAME_PROFILE
| PERFORM_RUN
| PERFORM_PAUSE
| PERFORM_STEP_FORWARD
| PERFORM_STEP_BACKWARD
| USE_MOTION_OPTIONS
V5entity:   delay_stmt
| clear_zone_stmt
| enter_zone_stmt
| call_task_stmt
| mount_tool_stmt
| unmount_tool_stmt
| robot_motion_stmt |
| set_signal_stmt
| wait_signal_stmt
| follow_path_stmt
| grab_stmt
| move_home_stmt
| operation_stmt
| release_stmt
| user_action_stmt
| user_profile_stmt
| motion_profile_stmt
| accuracy_profile_stmt
| tool_profile_stmt
| objectframe_profile_stmt
| TagIndex
accuracy_profile_stmt:   AccuracyProfile
| AccuracyProfile '.' AccuracyType
| AccuracyProfile '.' AccuracyValue
| AccuracyProfile '.' FlyByMode
delay_stmt:   DelayActivity
| DelayActivity '@' String
| DelayActivity '.' ActivityName
| DelayActivity '.' WaitTime
clear_zone_stmt:   DNBClearZoneActivity
| DNBClearZoneActivity '@' String
| DNBClearZoneActivity '.' ActivityName
| DNBClearZoneActivity '.' ClearZoneName
| DNBClearZoneActivity '.' ClearZoneResource
| DNBClearZoneActivity '.' ClearZoneParent
enter_zone_stmt:   DNBEnterZoneActivity
| DNBEnterZoneActivity '@' String
| DNBEnterZoneActivity '.' ActivityName
| DNBEnterrZoneActivity '.' EnterZoneName
| DNBEnterrZoneActivity '.' EnterZoneResource
| DNBEnterrZoneActivity '.' EnterZoneParent
call_task_stmt:   DNBIgpCallRobotTask
| DNBIgpCallRobotTask '@' String
| DNBIgpCallRobotTask '.' ActivityName
| DNBIgpCallRobotTask '.' CallName
mount_tool_stmt:   DNBIgpMountActivity
| DNBIgpMountActivity '@' String
| DNBIgpMountActivity '.' ActivityName
| DNBIgpMountActivity '.' MountTool
| DNBIgpMountActivity '.' MountToolProfile
unmount_tool_stmt:   DNBIgpUnMountActivity
| DNBIgpUnMountActivity '@' String
| DNBIgpUnMountActivity '.' ActivityName
| DNBIgpUnMountActivity '.' UnMountTool
| DNBIgpUnMountActivity '.' UnMountToolProfile
robot_motion_stmt:   DNBRobotMotionActivity
| DNBRobotMotionActivity '@' String
| DNBRobotMotionActivity '.' ActivityName
| DNBRobotMotionActivity '.' TagName
| DNBRobotMotionActivity '.' IsViaPoint
| DNBRobotMotionActivity '.' TargetType
| DNBRobotMotionActivity '.' accuracy_profile_stmt
| DNBRobotMotionActivity '.' CartesianPosition
| DNBRobotMotionActivity '.' JointPosition
| DNBRobotMotionActivity '.' motion_profile_stmt
| DNBRobotMotionActivity '.' MotionType
| DNBRobotMotionActivity '.' objectframe_profile_stmt
| DNBRobotMotionActivity '.' OrientMode
| DNBRobotMotionActivity '.' tool_profile_stmt
| DNBRobotMotionActivity '.' ConfigName
| DNBRobotMotionActivity '.' TurnNumber1
| DNBRobotMotionActivity '.' TurnNumber4
| DNBRobotMotionActivity '.' TurnNumber5
| DNBRobotMotionActivity '.' TurnNumber6
| DNBRobotMotionActivity '.' Turnsign1
| DNBRobotMotionActivity '.' Turnsign4
| DNBRobotMotionActivity '.' Turnsign5
| DNBRobotMotionActivity '.' Turnsign6
| DNBRobotMotionActivity '.' user_profile_stmt
set_signal_stmt:   DNBSetSignalActivity
| DNBSetSignalActivity '@' String
| DNBSetSignalActivity '.' ActivityName
| DNBSetSignalActivity '.' SignalName
| DNBSetSignalActivity '.' PortNumber
| DNBSetSignalActivity '.' SignalValue
| DNBSetSignalActivity '.' SetSignalDuration
wait_signal_stmt:   DNBWaitSignalActivity
| DNBWaitSignalActivity '@' String
| DNBWaitSignalActivity '.' ActivityName
| DNBWaitSignalActivity '.' SignalName
| DNBWaitSignalActivity '.' PortNumber
| DNBWaitSignalActivity '.' SignalValue
| DNBWaitSignalActivity '.' WaitSignalMaxTime
follow_path_stmt:   FollowPathActivity
| FollowPathActivity '@' String
| FollowPathActivity '.' ActivityName
| FollowPathActivity '.' NodeNumber
| FollowPathActivity '.' NodePosition
| FollowPathActivity '.' motion_profile_stmt
| FollowPathActivity '.' accuracy_profile_stmt
| FollowPathActivity '.' tool_profile_stmt
| FollowPathActivity '.' objectframe_profile_stmt
| FollowPathActivity '.' OrientMode
| FollowPathActivity '.' MotionType
| FollowPathActivity '.' ConfigName
| FollowPathActivity '.' TurnNumber1
| FollowPathActivity '.' TurnNumber4
| FollowPathActivity '.' TurnNumber5
| FollowPathActivity '.' TurnNumber6
| FollowPathActivity '.' Turnsign1
| FollowPathActivity '.' Turnsign4
| FollowPathActivity '.' Turnsign5
| FollowPathActivity '.' Turnsign6
grab_stmt:   GrabActivity
| GrabActivity '@' String
| GrabActivity '.' ActivityName
| GrabActivity '.' GrabbingObject
| GrabActivity '.' GrabbingObjectParent
| GrabActivity '.' GrabbedObject
| GrabActivity '.' GrabbedObjectParent
move_home_stmt:   MoveHomeActivity
| MoveHomeActivity '@' String
| MoveHomeActivity '.' ActivityName
| MoveHomeActivity '.' MoveToHome
motion_profile_stmt:   MotionProfile
| MotionProfile '.' AccelValue
| MotionProfile '.' AngularAccel
| MotionProfile '.' AngularSpeed
| MotionProfile '.' MotionBasis
| MotionProfile '.' SpeedValue
objectframe_profile_stmt:   ObjectFrameProfile
| ObjectFrameProfile '.' ReferenceFrame
| ObjectFrameProfile '.' CartesianPosition
| ObjectFrameProfile '.' ApplyOffsetsToTags
operation_stmt:   Operation
| Operation '@' String
release_stmt:   ReleaseActivity
| ReleaseActivity '@' String
| ReleaseActivity '.' ActivityName
| ReleaseActivity '.' ReleasedObject
| ReleaseActivity '.' ReleasedObjectParent
tool_profile_stmt:   ToolProfile
| ToolProfile '.' ToolType
| ToolProfile '.' CartesianPosition
| ToolProfile '.' ToolMass
| ToolProfile '.' ToolCentroid
| ToolProfile '.' ToolInertia
user_action_stmt:   UserAction
| user_action_stmt '.' identifier
| user_action_stmt '@' String
user_profile_stmt:   UserProfile
| user_profile_stmt '.' identifier
| user_profile_stmt '@' String
variable_decl:   VARIABLE identifier '=' value ':' V5entity math_expression
math_expression:   '*' number
| '+' number
| '-' number
| '/' number
mot_profile_config:   MOTIONPROFILE_CONFIGURATION '=' expression
obj_profile_config:   OBJECTFRAMEPROFILE_CONFIGURATION '=' expression
obj_profile_label:   OBJECTFRAMEPROFILE_LABEL '=' string
tag_name_config:   TAG_NAME_CONFIGURATION '=' expression
tag_name_index_inc:   TAG_NAME_INDEX_INC '=' INTEGER
tool_profile_index_inc:   TOOLPROFILE_INDEX_INC '=' INTEGER
objectframe_profile_index_inc:   OBJECTFRAMEPROFILE_INDEX_INC '=' INTEGER
accuracy_profile_index_inc:   ACCURACYPROFILE_INDEX_INC '=' INTEGER
motion_profile_index_inc:   MOTIONPROFILE_INDEX_INC '=' INTEGER
tool_profile_config:   TOOLPROFILE_CONFIGURATION '=' expression
tool_profile_label:   TOOLPROFILE_LABEL '=' expression