读取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")力的增益
责任编辑:xj
原文标题:SGL_GSD读取系统参数
文章出处:【微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。
全部0条评论
快来发表一下你的评论吧 !