读取KUKAC4.8.3系统机器人轴参数!

描述

读取KUKAC4.8.3系统机器人轴参数!用于测量电极的磨损量.

函数

GLOBALDEF SGL_GET_CONTACT_POS()

SWITCH SG_ExtaxActive  选择轴号

CASE 1 

SG_AxisContactPosGrad = SGL_GSD("DRIVE","E1","ContactPosition")* 1E-6

CASE 2

SG_AxisContactPosGrad = SGL_GSD("DRIVE","E2","ContactPosition")* 1E-6

CASE 3

SG_AxisContactPosGrad = SGL_GSD("DRIVE","E3","ContactPosition")* 1E-6

CASE 4

SG_AxisContactPosGrad = SGL_GSD("DRIVE","E4","ContactPosition")* 1E-6

CASE 5

SG_AxisContactPosGrad = SGL_GSD("DRIVE","E5","ContactPosition")* 1E-6

CASE 6

SG_AxisContactPosGrad = SGL_GSD("DRIVE","E6","ContactPosition")* 1E-6

ENDSWITCH

SG_AxisContactPosAct_MM = SG_AxisContactPosGrad * SG_MmGrad[SG_ActiveGunNumber]

SG_AxisContactPosAct_MM 轴位置的获得换算

SG_MMGrad[1]=0.0166666666666667

IF($ERR.INTERPRETER == #S_INT)THEN

; SG_ActGunPosGrad仅在提交解释器的调试过程中有效         SG_ForceDeltaPosGrad = SG_ActGunPosGrad - SG_AxisContactPosGrad

ENDIF

;ENDFOLD

END   获得轴的位置

GLOBALDEFFCTREAL SGL_GSD(OWNER_NAME[]:IN, OWNER_AXNAME[]:IN, VAR_NAME[]:IN)

;FOLD SGL_GSD

CHAR OWNER_NAME[]

CHAR OWNER_AXNAME[]

CHAR VAR_NAME[]

REAL VALUE

INT RET_STATUS

RET_STATUS =-1

ON_ERROR_PROCEED

VALUE = GET_SYSTEM_DATA(OWNER_NAME[], OWNER_AXNAME[], VAR_NAME[], RET_STATUS) 获得KUAK机器人的系统轴的参数

IF((RET_STATUS <> 0) or ($err.number <> 0))then

如果函数返回状态不是0 或者故障码不等于0

VALUE =-1.0反馈-1

SGL_SSD_ERROR(OWNER_NAME[], OWNER_AXNAME[], VAR_NAME[], VALUE, RET_STATUS)  提示驱动程序和轴的故障提示

ERR_RAISE($ERR)

ENDIF

RETURN VALUE

;ENDFOLD

ENDFCT

GET_SYSTEM_DATA(OWNER_NAME[], OWNER_AXNAME[], VAR_NAME[], RET_STATUS)  系统函数: "获得系统数据"

"DRIVE" , "E1"  , "ContactPosition" -----获得E1轴的接触位置

DRIVE:驱动设备 

E1: 外部轴

ContactPosition:接触位置

可以读取系统变量(轴对称控制器参数)

STATUS  状态: 类型INT  是否以成功执行或出现了什么错误

0 成功

1 收件人姓名不详

2 对应的轴不存在

3 驱动程序不知道变量名

4 变量是写保护的

5 传输值超出了该参数的值范围

OWNER_NAME[]  类型:字符串  ---所有者名称

函数调用的收件人或变量的所有者。最初,只有值驱动器是允许的。

OWNER_AXNAME[]类型:字符串  ---所有者轴名称

写入轴的名称

A1---A6表示机器人轴

E1---E6表示外部轴

从轴可以通过这个后缀来寻址。和轴的索引,例如E1轴的第二个从驱动器的E1.S2

解耦得轴也可以被寻址.

对于非特定于axis的数据,这里传输一个空字符串.

VAR_NAME[]类型:字符串 写入参数名称

电伺服外部轴的其他应用: 

USER_VelGain    = SGL_GSD("DRIVE", TEST_AXIS[],"VelGain.PTP")驱动设备PTP速度增益

USER_VelIntTime = SGL_GSD("DRIVE", TEST_AXIS[],"VelIntTime.PTP")驱动设备PTP 速度时间

USER_PosGain    = SGL_GSD("DRIVE", TEST_AXIS[],"PosGain.PTP")驱动设备PTP位置值

SG_LogbookCurrent.ContactStrategy = SGL_GSD("DRIVE", axisstring[],"DetectContactInfo") 驱动设备的检测联系方式

SG_LogbookCurrent.Threshold = SGL_GSD("DRIVE", axisstring[],"DetectThreshold")检测阈值

SG_LogbookCurrent.ForceOffset = SGL_GSD("DRIVE", axisstring[],"ForceOffset")力偏移

USER_ForceGain    =SGL_GSD("DRIVE", TEST_AXIS[],"ForceGain")力的增益

审核编辑 :李倩

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分