--主程序PROGRAM CreatUsFrame--变量定义VARprm_type : INTEGERAR_Value : INTEGER --AR变量AR1_Value : INTEGER --pose1存储PR地址AR2_Value : INTEGER --pose2存储PR地址AR3_Value : INTEGER --pose3存储PR地址AR4_Value : INTEGER --pose4存储PR地址prm_real : REALprm_strg : STRING[12]indx : INTEGERSTATUS:INTEGER posn_type : INTEGERnum_axes : INTEGER POSEO : XYZWPRPOSEX : XYZWPRPOSEY : XYZWPRposeFrame : XYZWPR F_POSEO : POSITIONF_POSEX : POSITIONF_POSEY : POSITIONF_poseFrame : POSITION --引用%INCLUDE klevccdf --程序执行部分BEGIN--数据初始化prm_type = 0AR_Value = 0prm_real = 0prm_strg = ''STATUS=0 --清屏WRITE(CHR(cc_clear_win),CHR(cc_home)) --读取4个AR参数 FOR indx = 1 TO 4 DO --获取AR参数的类型和值 GET_TPE_PRM(indx,prm_type,AR_Value,prm_real,prm_strg,STATUS) IF STATUS<>0 THEN WRITE('Failed to get tp parameter',CR) RETURN ENDIF --判断AR参数类型,如果不是INTEGER类型,进行提示 IF prm_type<>1 THEN WRITE('Failed to get tp parameter',CR) RETURN ENDIF --将读取到的AR变量值传递 SELECT indx OF CASE (1): AR1_Value=AR_Value WRITE('AR1_Value=',AR1_Value,CR) CASE (2): AR2_Value=AR_Value WRITE('AR2_Value=',AR2_Value,CR) CASE (3): AR3_Value=AR_Value WRITE('AR3_Value=',AR3_Value,CR) CASE (4): AR4_Value=AR_Value WRITE('AR4_Value=',AR4_Value,CR) ENDSELECT ENDFOR --读取PR变量的值 POS_REG_TYPE(AR1_Value,1, posn_type, num_axes, STATUS) WRITE ('posn_type=', posn_type, CR) IF posn_type=2 THEN--判断PR数为XYZWPR类型 POSEO=GET_POS_REG(AR1_Value,STATUS) WRITE('poseO ok',CR) ELSE WRITE('数据类型错误',CR) ENDIF POS_REG_TYPE(AR2_Value,1,posn_type,num_axes,STATUS) WRITE ('posn_type=',posn_type,CR) IF posn_type=2 THEN--判断PR数为XYZWPR类型 POSEX=GET_POS_REG(AR2_Value,STATUS) WRITE('poseX ok',CR) ELSE WRITE('数据类型错误',CR) ENDIF POS_REG_TYPE(AR3_Value,1,posn_type,num_axes,STATUS) WRITE ('posn_type=',posn_type,CR) IF posn_type=2 THEN--判断PR数为XYZWPR类型 POSEY=GET_POS_REG(AR3_Value,STATUS) WRITE('poseY ok',CR) ELSE WRITE('数据类型错误',CR) ENDIF F_POSEO=POSEO F_POSEX=POSEX F_POSEY=POSEY -- 三点建立坐标 F_poseFrame=FRAME(F_POSEO, F_POSEX, F_POSEY) poseFrame=F_poseFrame --将坐标值传入AR4指定的PR变量 SET_POS_REG(AR4_Value,poseFrame,STATUS) END CreatUsFrame