Example #1
0
        private short MoveHSpeedSearch(int nAxisNo, bool bPositive)
        {
            nAxisNo += 1;
            short sRtn = 0;

            sRtn |= gts.mc.GT_Stop((short)m_nCardIndex, 1 << (nAxisNo - 1), 0);
            sRtn |= gts.mc.GT_PrfTrap((short)m_nCardIndex, (short)nAxisNo);
            gts.mc.TTrapPrm trap = new gts.mc.TTrapPrm();
            trap.acc        = m_HomePrm[nAxisNo - 1].AccH; //3;
            trap.dec        = m_HomePrm[nAxisNo - 1].DccH; //3;
            trap.velStart   = 0;
            trap.smoothTime = 20;                          //20;
            gts.mc.GT_SetTrapPrm((short)m_nCardIndex, (short)nAxisNo, ref trap);
            sRtn |= gts.mc.GT_SetVel((short)m_nCardIndex, (short)nAxisNo, m_HomePrm[nAxisNo - 1].VelH);
            int extPos = 0;

            gts.mc.GT_GetPos((short)m_nCardIndex, (short)nAxisNo, out extPos);
            if (bPositive)//m_HomePrm[nAxisNo - 1]._bHomeDir
            {
                sRtn |= gts.mc.GT_SetPos((short)m_nCardIndex, (short)nAxisNo,
                                         extPos + (int)m_HomePrm[nAxisNo - 1]._iSeachDistancePluse);
            }
            else
            {
                sRtn |= gts.mc.GT_SetPos((short)m_nCardIndex, (short)nAxisNo,
                                         extPos - (int)m_HomePrm[nAxisNo - 1]._iSeachDistancePluse);
            }
            sRtn |= gts.mc.GT_Update((short)m_nCardIndex, 1 << (nAxisNo - 1));
            return(sRtn);
        }
        public override bool AbsMove(int nAxisNo, double nPos, double nSpeed)
        {
            short rtn = 0;

            nAxisNo += 1;
            uint axisMark = (uint)1 << (nAxisNo - 1);

            rtn |= gts.mc.GT_SetAxisBand((short)m_nCardIndex, (short)nAxisNo, 20, 10);// 5);
            gts.mc.TTrapPrm trap  = new gts.mc.TTrapPrm();
            double          speed = nSpeed;
            double          Acc   = 0;
            double          Dcc   = 0;

            TranMMToPluse(nAxisNo, ref speed, ref Acc, ref Dcc);

            trap.acc        = Acc;                                //3;
            trap.dec        = Dcc;                                //3;
            trap.velStart   = 0;
            trap.smoothTime = (short)m_nSmoothTimes[nAxisNo - 1]; //20;
            rtn            |= gts.mc.GT_ClrSts((short)m_nCardIndex, (short)nAxisNo, 8);
            rtn            |= gts.mc.GT_PrfTrap((short)m_nCardIndex, (short)nAxisNo);
            rtn            |= gts.mc.GT_SetTrapPrm((short)m_nCardIndex, (short)nAxisNo, ref trap);
            rtn            |= gts.mc.GT_SetVel((short)m_nCardIndex, (short)nAxisNo, (double)nSpeed);
            rtn            |= gts.mc.GT_SetPos((short)m_nCardIndex, (short)nAxisNo, (int)nPos);
            rtn            |= gts.mc.GT_Update((short)m_nCardIndex, 1 << (nAxisNo - 1));
            if (rtn == 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Example #3
0
        public override bool RelativeMove(int nAxisNo, double nPos, double nSpeed)
        {
            nAxisNo += 1;
            uint   axisMark    = (uint)1 << (nAxisNo - 1);
            short  nRtn        = 0;
            uint   clk         = 0;
            double dAxisCurPos = 0;

            // nRtn |= gts.mc.GT_GetEncPos((short)m_nCardIndex, (short)nAxisNo, out dAxisCurPos, 1, out clk);s
            gts.mc.GT_SetAxisBand((short)m_nCardIndex, (short)nAxisNo, 20, 10);// 5);
            double speed = nSpeed;
            double Acc   = m_MovePrm[nAxisNo - 1].AccH;
            double Dcc   = m_MovePrm[nAxisNo - 1].AccL;

            switch (nSpeed)
            {
            case 0:
                Acc   = m_MovePrm[nAxisNo - 1].AccH;
                Dcc   = m_MovePrm[nAxisNo - 1].DccH;
                speed = m_MovePrm[nAxisNo - 1].VelH;
                break;

            case 1:
                Acc   = m_MovePrm[nAxisNo - 1].AccM;
                Dcc   = m_MovePrm[nAxisNo - 1].DccM;
                speed = m_MovePrm[nAxisNo - 1].VelM;
                break;

            case 2:
                Acc   = m_MovePrm[nAxisNo - 1].AccL;
                Dcc   = m_MovePrm[nAxisNo - 1].DccL;
                speed = m_MovePrm[nAxisNo - 1].VelL;
                break;
                break;
            }
            gts.mc.TTrapPrm trap = new gts.mc.TTrapPrm();
            trap.acc        = Acc;                                //3;
            trap.dec        = Dcc;                                //3;
            trap.velStart   = 0;
            trap.smoothTime = (short)m_nSmoothTimes[nAxisNo - 1]; //20;
            int extPos = 0;

            if (0 == gts.mc.GT_ClrSts((short)m_nCardIndex, (short)nAxisNo, 8) &&
                0 == gts.mc.GT_PrfTrap((short)m_nCardIndex, (short)nAxisNo) &&
                0 == gts.mc.GT_SetTrapPrm((short)m_nCardIndex, (short)nAxisNo, ref trap) &&
                0 == gts.mc.GT_SetVel((short)m_nCardIndex, (short)nAxisNo, (double)speed) &&
                0 == gts.mc.GT_GetPos((short)m_nCardIndex, (short)nAxisNo, out extPos) &&
                0 == gts.mc.GT_SetPos((short)m_nCardIndex, (short)nAxisNo, extPos + (int)nPos) &&
                0 == gts.mc.GT_Update((short)m_nCardIndex, 1 << (nAxisNo - 1))
                )
            {
                return(true);
            }

            return(false);
        }
Example #4
0
        public override bool AbsMove(int nAxisNo, double nPos, double nSpeed)
        {
            short rtn = 0;

            nAxisNo += 1;
            uint axisMark = (uint)1 << (nAxisNo - 1);

            rtn |= gts.mc.GT_SetAxisBand((short)m_nCardIndex, (short)nAxisNo, 20, 10);// 5);
            gts.mc.TTrapPrm trap  = new gts.mc.TTrapPrm();
            double          speed = nSpeed;
            double          Acc   = m_MovePrm[nAxisNo - 1].AccH;
            double          Dcc   = m_MovePrm[nAxisNo - 1].AccL;

            switch (nSpeed)
            {
            case 0:
                Acc   = m_MovePrm[nAxisNo - 1].AccH;
                Dcc   = m_MovePrm[nAxisNo - 1].DccH;
                speed = m_MovePrm[nAxisNo - 1].VelH;
                break;

            case 1:
                Acc   = m_MovePrm[nAxisNo - 1].AccM;
                Dcc   = m_MovePrm[nAxisNo - 1].DccM;
                speed = m_MovePrm[nAxisNo - 1].VelM;
                break;

            case 2:
                Acc   = m_MovePrm[nAxisNo - 1].AccL;
                Dcc   = m_MovePrm[nAxisNo - 1].DccL;
                speed = m_MovePrm[nAxisNo - 1].VelL;
                break;
            }
            trap.acc        = Acc;                                //3;
            trap.dec        = Dcc;                                //3;
            trap.velStart   = 0;
            trap.smoothTime = (short)m_nSmoothTimes[nAxisNo - 1]; //20;
            rtn            |= gts.mc.GT_ClrSts((short)m_nCardIndex, (short)nAxisNo, 8);
            rtn            |= gts.mc.GT_PrfTrap((short)m_nCardIndex, (short)nAxisNo);
            rtn            |= gts.mc.GT_SetTrapPrm((short)m_nCardIndex, (short)nAxisNo, ref trap);
            rtn            |= gts.mc.GT_SetVel((short)m_nCardIndex, (short)nAxisNo, (double)nSpeed);
            rtn            |= gts.mc.GT_SetPos((short)m_nCardIndex, (short)nAxisNo, (int)nPos);
            rtn            |= gts.mc.GT_Update((short)m_nCardIndex, 1 << (nAxisNo - 1));
            if (rtn == 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        public override bool RelativeMove(int nAxisNo, double nPos, double nSpeed)
        {
            nAxisNo += 1;
            uint   axisMark    = (uint)1 << (nAxisNo - 1);
            short  nRtn        = 0;
            uint   clk         = 0;
            double dAxisCurPos = 0;

            // nRtn |= gts.mc.GT_GetEncPos((short)m_nCardIndex, (short)nAxisNo, out dAxisCurPos, 1, out clk);s
            gts.mc.GT_SetAxisBand((short)m_nCardIndex, (short)nAxisNo, 20, 10);// 5);
            double speed = nSpeed;
            double Acc   = 0;
            double Dcc   = 0;

            TranMMToPluse(nAxisNo, ref speed, ref Acc, ref Dcc);

            gts.mc.TTrapPrm trap = new gts.mc.TTrapPrm();
            speed           = (1 * speed / m_MovePrm[nAxisNo - 1].AxisLeadRange) * m_MovePrm[nAxisNo - 1].PlusePerRote / 1000;
            Acc             = (1 * Acc / m_MovePrm[nAxisNo - 1].AxisLeadRange) * m_MovePrm[nAxisNo - 1].PlusePerRote / 1000000;
            Dcc             = (1 * Dcc / m_MovePrm[nAxisNo - 1].AxisLeadRange) * m_MovePrm[nAxisNo - 1].PlusePerRote / 1000000;
            trap.acc        = Acc;                                //3;
            trap.dec        = Dcc;                                //3;
            trap.velStart   = 0;
            trap.smoothTime = (short)m_nSmoothTimes[nAxisNo - 1]; //20;
            int extPos = 0;

            if (0 == gts.mc.GT_ClrSts((short)m_nCardIndex, (short)nAxisNo, 8) &&
                0 == gts.mc.GT_PrfTrap((short)m_nCardIndex, (short)nAxisNo) &&
                0 == gts.mc.GT_SetTrapPrm((short)m_nCardIndex, (short)nAxisNo, ref trap) &&
                0 == gts.mc.GT_SetVel((short)m_nCardIndex, (short)nAxisNo, (double)speed) &&
                0 == gts.mc.GT_GetPos((short)m_nCardIndex, (short)nAxisNo, out extPos) &&
                0 == gts.mc.GT_SetPos((short)m_nCardIndex, (short)nAxisNo, extPos + (int)nPos) &&
                0 == gts.mc.GT_Update((short)m_nCardIndex, 1 << (nAxisNo - 1))
                )
            {
                return(true);
            }

            return(false);
        }