C# 固高点位运动

    技术2022-07-12  73

    #region 点位运动 /// <summary> /// 点位运动 /// </summary> /// <param name="axis">轴号</param> /// <param name="acc">加速度 </param> /// <param name="dec">减速度</param> /// <param name="vel">目标速度</param> /// <param name="velStart">起跳速度 默认值为 0</param> /// <param name="smooth">平滑时间 [0, 50]</param> /// <param name="pos">目标位置</param> public void PointMovement(short axis, double acc, double dec, double vel = 50, double velStart = 0, short smooth = 25, int pos = 0) { int sts; uint pClock; TTrapPrm _trapPrm; //清除轴的报警和限位 GT_ClrSts(_cardNum, axis, 1); //伺服使能 GT_AxisOn(_cardNum, axis); //设置点位模式 GT_PrfTrap(_cardNum, axis); GT_GetTrapPrm(_cardNum, axis, out _trapPrm); _trapPrm.acc = acc;//加速度 _trapPrm.dec = dec;//减速度 _trapPrm.velStart = velStart;// _trapPrm.smoothTime = smooth; GT_SetTrapPrm(_cardNum, axis, ref _trapPrm); GT_SetPos(_cardNum, axis, pos); GT_SetVel(_cardNum, axis, vel); GT_Update(_cardNum, (1 << (axis - 1))); do { // 读取AXIS轴的状态 GT_GetSts(_cardNum, axis, out sts, 1, out pClock); /* // 读取AXIS轴的规划位置 GT_GetPrfPos(_cardNum, axis,, 1,out pClock);*/ } while (Convert.ToBoolean(sts & 0x400));// 等待AXIS轴规划停止 GT_Stop(_cardNum, axis, axis); } #endregion

     

    Processed: 0.029, SQL: 9