### ZCUSTOM -- 运动参数计算

类型 | 数学函数
描述 | 计算各种运动指令中的参数，详细功能请看下方语法功能描述。
语法 | 功能 2：计算空间圆弧或直线上一定距离后的点的位置。 Table 表参数按三点画圆模式填写其他两个点参数。 填写相对坐标，返回也是相对的位置。 语法：ZCUSTOM(2,tableend,tablemid,tableout,mode,vectdis) tableend：存储圆弧终点的 table 索引 tablemid：存储圆弧中间点的 table 索引, 与当前点一起构成圆弧的 3 个点 tableout；输出计算数据的 table 索引 mode：模式
值 | 描述
1 | 相对起点的空间圆弧弧长
2 | 相对终点的空间圆弧弧长
3 | 相对起点的直线距离，此时 tablemid 不起作用
4 | 相对终点的直线距离，此时 tablemid 不起作用
5 | 相对计算空间圆弧的圆心，此时 vectdis 无效。此时 tableout 依次输出 xyz 圆心，弧度范围，弧长
vectdis：要计算的点相对 mode 的距离, 负数表示往前。圆弧模式时，正数表示顺时针，负数表示逆时针 功能 6：计算空间圆弧的起点和终点的切线角度方向，弧度单位。 填写相对坐标，返回也是相对的位置。 语法：ZCUSTOM(6,tableend,tablemid,tableout) tableend：存储圆弧终点的 table 索引 tablemid：存储圆弧中间点的 table 索引, 与当前点一起构成圆弧的 3 个点 tableout：输出计算数据的 table 索引，依次输出:起点 xy 方向，起点 Z 方向，终点 xy 方向，终点 Z 方向，角度弧度单位 功能 7：输入速度比例，计算 MOVESLINK 的从轴位置，主轴位置。 语法：ZCUSTOM(7, distance, link dist, start sp, end sp, 速度比例, tableout) distance：从连接开始到结束，跟随轴移动的距离，采用 units 单位 link dist：参考轴在连接的整个过程中移动的绝对距离，采用 units 单位 star sp：启动时跟随轴和参考轴的速度比例，units/units 单位，负数表示跟随轴负向运动 end sp：结束时跟随轴和参考轴的速度比例，units/units 单位，负数表示跟随轴负向运动 速度比例：需要计算的点的速度比例，与参数里面的起始结束点比例意义相同 tableout：正向找的从轴距离，正向找的主轴距离，从反向找的从轴距离，反向找主轴距离，占用 4 个 TABLE（一段曲线，速度比例可能会有多个解） 功能 8：MOVESLINK 输入从轴位置，反算主轴的位置。 语法：ZCUSTOM(8,distance,link dist,start sp,end sp,distancemoved, tableout) distance：从连接开始到结束，跟随轴移动的距离 link dist：从连接开始到结束，主轴移动的绝对距离 start sp：起始脉冲速度比例 end sp：结束脉冲速度比例 distancemoved：从轴已经运动距离 tableout：输出 table 索引，输出对应主轴的位置，如多个解返回第一个 功能 9：FLEXLINK 输入从轴位置，反算主轴的位置。 语法：ZCUSTOM (9, base_dist, excite_dist, link_dist, base_in, base_out, excite_acc, excite_dec, distancemoved, tableout) base_dist：跟随轴匀速运动距离 excite_dist：跟随轴激励运动距离，这个与 base_dist 相反的时候无法反算 link_dist：整个指令过程，跟随轴运动完成，主轴移动的距离 base_in：激励开始前，跟随轴运动距离占 base_dist 的百分比 base_out：激励完成后，跟随轴剩余运动距离占 base_dist 的百分比，两者相加不要超过 100% excite_acc：激励过程中，跟随轴加速阶段运动距离占 excite_dist 的百分比，excite_dist 为负值时，为减速阶段 excite_dec：激励过程中，跟随轴减速阶段运动距离占 excite_dist 的百分比，excite_dist 为负值时，为加速阶段 distancemoved：从轴已经运动脉冲数 tableout：输出 Table 索引，输出对应主轴的位置，如多个解返回第一个 功能 10：从工件坐标上的三点在原来坐标系上的坐标来计算 FRAME_ROTATE 旋转转换的参数，每个点要存储 xyz 的三个方向的坐标。 语法：ZCUSTOM (10, dtzero, dtx, dty, dtout) dtzero：工件零点在原来坐标系上的位置 dtx：工件坐标系 X 轴上的点在原来坐标系上的位置 dty：工件坐标系 Y 轴上的点在原来坐标系上的位置 dtout：输出 TABLE 索引，分别存储：X，Y，Z，RX，RY，RZ
适用控制器 | 通用
例子 | 例一 功能 2 使用 TABLE(0,50,-50,0) '设置终点坐标，相对位置 TABLE(3,50,50,0) '设置中间点坐标，相对位置 '模式 1，相对起点 ZCUSTOM(2,0,3,10,1,78.54) '相对起点位置顺时针弧长为 78.54 的圆上点 ?TABLE(10),TABLE(11),TABLE(12) '输出相对坐标为 0,0,0 ZCUSTOM(2,0,3,10,1,-78.54) '相对起点位置逆时针弧长为 78.54 的圆上点 ?TABLE(10),TABLE(11),TABLE(12) '输出相对坐标为 50,-50,0 '模式 2，相对终点 ZCUSTOM(2,0,3,10,2,78.54) '相对终点位置顺时针弧长为 78.54 的圆上点 ?TABLE(10),TABLE(11),TABLE(12) '输出坐标为 50,-50,0 ZCUSTOM(2,0,3,10,2,-78.54) '相对终点位置逆时针弧长为 78.54 的圆上点 ?TABLE(10),TABLE(11),TABLE(12) '输出坐标为 100,0,0 '模式 5，计算此时三点画圆的圆心、弧度、弧长 ZCUSTOM(2,0,3,10,5,0) '此时距离参数不起作用 ?TABLE(10),TABLE(11),TABLE(12) '输出坐标为 50,0,0 ?TABLE(13),TABLE(14) '输出弧度 4.712，弧长 235.62 例二 功能 6，计算圆弧起点和终点的切线弧度 TABLE(0,50,-50,0) '设置终点坐标，相对位置 TABLE(3,50,50,0) '设置中间点坐标，相对位置 ZCUSTOM(6,0,3,10) '计算当前点和终点切线的弧度 ?TABLE(10),TABLE(11) '输出当前点 1.571,0 (1.571=90*PI/180) ?TABLE(12),TABLE(13) '输出终点-3.142,0 (-3.142=-180*PI/180) 例三 功能 8，反算 MOVESLINK 主轴位置 BASE(0,1) DPOS=0,0 UNITS=100,100 SPEED=100,100 ACCEL=1000,1000 TRIGGER MOVESLINK(50,100,0,1,1) '建立 MOVESLINK 连接 MOVEABS(100) AXIS(1) ZCUSTOM(8,50,100,0,1,25,10) '根据建立连接的参数，计算从轴运动 25 时主轴的位置 ?TABLE(10) '输出主轴位置 73.801 运动轨迹 DPOS(0)垂直刻度 100 DPOS(1)垂直刻度 100