Beispiel #1
0
        public bool InitCard()
        {
            try
            {
                short rtn;
                lock (cardActLock)
                {
                    //连接控制器
                    rtn = GT400.GT_Open();
                    Error("打开控制卡", rtn);
                    if (0 != rtn)
                    {
                        isLink = false;
                        return(false);
                    }

                    rtn = GT400.GT_Reset();
                    runningError("控制卡复位", rtn);
                    if (0 != rtn)
                    {
                        isLink = false;
                        return(false);
                    }

                    ushort sense = 0xffff;
                    rtn = GT400.GT_LmtSns(sense);     //设置限位开关触发电平
                    runningError("设置限位开关电平", rtn);
                    if (0 != rtn)
                    {
                        isLink = false;
                        return(false);
                    }
                }
                for (int i = 0; i < axisNum; i++)
                {
                    lock (cardActLock)
                    {
                        //设置轴参数
                        rtn = GT400.GT_Axis((ushort)(i + 1));     //切换到测试轴
                        runningError("设置当前轴", rtn);
                        if (0 != rtn)
                        {
                            isLink = false;
                            return(false);
                        }
                        rtn = GT400.GT_ClrSts();           //清除不正常状态
                        runningError("GT_ClrSts", rtn);
                        if (0 != rtn)
                        {
                            isLink = false;
                            return(false);
                        }
                        rtn = GT400.GT_StepDir();          //脉冲方式为‘脉冲+方向’,必须与驱动器的设置一致
                        runningError("GT_StepDir", rtn);
                        if (0 != rtn)
                        {
                            isLink = false;
                            return(false);
                        }
                        //闭环模式下必须设置PID


                        rtn = GT400.GT_AxisOn();           //伺服使能,如果驱动器没有上伺服,请检查:1、测试轴是否是axis 1,2、端子板及驱动器是否上电
                        runningError("GT_AxisOn", rtn);
                        if (0 != rtn)
                        {
                            isLink = false;
                            return(false);
                        }

                        rtn = GT400.GT_PrflS();
                        //rtn = GT400.GT_PrflT();  //T曲线
                        runningError("当前轴设定为S曲线", rtn);
                        if (0 != rtn)
                        {
                            isLink = false;
                            return(false);
                        }
                    }
                }

                isLink = true;
                return(true);
            }
            catch (Exception ex)
            {
                Util.Notify("控制卡打开失败 错误原因" + ex.Message);
                //Notify("控制卡打开失败 错误原因" + ex.Message);
                CloseCom();
                isLink = false;
                return(false);
            }
        }