ABB机器人之LOADDATA
loaddata是用来描述连接到机器人机械接口的负载(机器人的安装法兰)。loaddata数据通常定义有效载荷或负荷(通过指令gripload设置机器人抓手负载 或mechunitload指令设置变位机负载。loaddata通常也作为tooldata的一部分,用来描述描工具负载。(loaddata一般用于搬运机器人,用来优化伺服驱动器的PID参数,带焊枪的焊接机器人由于焊枪质量偏小,一般不需要设定此参数)
指定的荷载被用来建立一个机器人的动力学模型,使机器人以最好的方式控制运动。loaddata是确定机器人实际负载大小的重要工具(例如一个搬运机器人抓手上的夹紧部分)。不正确的负载数据可以导致机器人的机械结构超载。当指定不正确的数据时,往往会导致以下结果:
机器人不会使用它的最大容量。
受影响的路径精度包括过冲的风险(当伺服电机的惯量匹配不恰当时,所引起的伺服电机PID闭环超调震荡)。
机械单元过载的风险。
Load Identify这是ABB机器人工具和载重的重量和重心数据的识别功能。你只需要执行一下这个程序,你就可以轻松设定TOOLDATA和LOADDATA了。为机器人设定正确的TOOLDATA和LOADDATA是非常重要的,这是因为有了正确的数据设定以后,机器人在进行运动运算时,能更好地进行各轴扭矩的控制。有防地防止了输出功率的过大或过小,而造成机器人电机和机构的异常损坏。
ABB机器人的loaddata数据结构定义如下:
loaddata
mass
数据类型: num
负载的公斤数,单位是KG。
cog
重心
数据类型: pos
以毫米表示的有效载荷重心在工具坐标系的表达,如果机器人夹持工具来表示。
如果使用了固定工具然后重心由夹持器保持的有效载荷被表达的工作对象坐标系统由机器人移动的对象的帧中。
aom
轴力矩 axes of moment
The orientation of the axes of moment. These are the principal axes of the payload
moment of inertia with origin in cog. If the robot is holding the tool, the axes of
moment are expressed in the tool coordinate system.
The figure shows the center of gravity and inertial axes of the payload.
ManLoadIdProc - Load identification of IRBP manipulators | <- | -> |
- |
Usage | ManLoadIdProc (Manipulator Load Identification Procedure) is used for load identification of payload for external manipulators by executing a user defined RAPID program. This instruction can only be used in the main task T_ROB1 or, if in a MultiMove system, in Motion tasks. | |||||||||||||||
| ||||||||||||||||
Basic examples | Basic examples of the instruction ManLoadIdProc are illustrated below. PERS loaddata myload := [6,[0,0,0],[1,0,0,0],0,0,0]; VAR bool defined; ActUnit STN1; ManLoadIdProc \ParIdType := IRBP_L \MechUnit := STN1 \PayLoad := myload \ConfigAngle := 60 \AlreadyActive \DefinedFlag := defined; DeactUnit STN1; Load identification of payload myload mounted on the mechanical unit STN1. The external manipulator is of type IRBP-L. The configuration angle is set to 60 degrees. The manipulator is activated before the load identification and deactivated after. After the identification myload has been updated and defined it is set to TRUE. | |||||||||||||||
Arguments | ManLoadIdProc [\ParIdType] [\MechUnit] | [\MechUnitName] [\AxisNumber] [\PayLoad] [\ConfigAngle] [\DeactAll] | [\AlreadyActive] [DefinedFlag] [DoExit] [ \ ParIdType ] Data type: paridnum Type of parameter identification. Predefined constants are found under the datatype paridnum. [ \ MechUnit ] Data type: mecunit Mechanical unit used for the load identification. Can not be used together with argument \MechUnitName. [ \ MechUnitName ] Data type: string Mechanical unit used for the load identification given as a string. Can not be used together with argument \MechUnit. [ \ AxisNumber ] Data type: num Axis number within the mechanical unit, which holds the load to be identified. [ \ PayLoad ] Data type: loaddata Variable for the payload to be identified. The component mass must be specified. This variable will be updated after the identification is done. [ \ ConfigAngle ] Data type: num Specification of a specific configuration angle ± degrees to be used for the parameter identification. Min. + or - 30 degrees. Optimum + or - 90 degrees. [ \ DeactAll ] Data type: switch If this switch is used all mechanical units in the system will be deactivated before identification is done. The mechanical unit to identify will then be activated. It cannot be used together with argument \AlreadyActive. [ \ AlreadyActive ] Data type: switch This switch is used if the mechanical unit to identify is active. It cannot be used together with argument \DeactAll. [ \ DefinedFlag ] Data type: bool This argument will be set to TRUE if the identification has been made, FALSE otherwise. [ \ DoExit] Data type: bool If set to TRUE the load identification will end up with an EXIT command to force the user to set PP to main before continuing the execution. If not present or set to FALSE no EXIT will be done. Note that ManLoadIdProc always clears the current path. | |||||||||||||||
Program execution | All arguments are optional. If an argument is not given the user will be asked for the value from the FlexPendant (except for \DoExit). The user will always be asked to give the mass and if the manipulator is of type IRBP R, z in mm. The mechanical unit will carry out a large number of relative small transport and measurement movements. After all measurements, movements, and load calculations the load data is returned in argument Payload if used. The following load data is calculated.
The calculated data will be displayed on the FlexPendant. | |||||||||||||||
Limitations | Usually load identification of load for the external manipulator is done with the service routine ManLoadIdentify. It is also possible to do this identification with this RAPID instruction ManLoadIdProc. Any path in progress will be cleared before the load identification. The program pointer will be lost after the load identification if argument \DoExit:=TRUE is used. It is not possible to restart the load identification movements after any type of stop, such as program stop, emergency stop, or power failure. The load identification movements must be again restarted from the beginning. | |||||||||||||||
Error handling | At any error during execution of the RAPID NOSTEPIN routine ManLoadIdProc the system variable ERRNO is set to ERR_PID_MOVESTOP, ERR_PID_RAISE_PP, or ERR_LOADID_FATAL and the program pointer is raised to the user call of ManLoadIdProc. | |||||||||||||||
Syntax | ManLoadIdProc [ '\'ParIdType ':=' <expression (IN) of paridnum>] [ '\'MechUnit ':=' <variable (VAR) of mecunit> ] | ['\' MechUnitName ':=' <expression (IN) of string>] [ '\' AxisNumber ':=' <expression (IN) of num> ] [ '\' PayLoad ':=' <var or pers (INOUT) of loaddata> [ '\' ConfigAngle ':=' <expression (IN) of num>] [ '\' DeactAll] | [ '\' AlreadyActive] [ '\' DefinedFlag ':=' <variable (VAR) of bool> ] [ '\' DoExit ':=' <expression (IN) of bool> ] ';' |