예제 #1
0
        /// <summary>
        /// 查找并初始化系统里面所有的 PCI-9014
        /// </summary>
        /// <returns></returns>
        public override int Init()
        {
            int rc;
            int boarkCount = 0;

            int[] card_id = new int[16];
            //初始化运动轴;
            rc = CPci9014.p9014_initial(ref boarkCount, card_id);
            if (rc != 0)
            {
                Log.GetInstance().ErrorWrite("Initialize PCI-9014 fail");

                return(1);
            }
            //PCI9014的数目;
            //boarkCount = 1;
            if (boarkCount < 1)
            {
                Log.GetInstance().ErrorWrite("Find No PCI-9014 device");
                return(1);
            }
            //获取运动轴的参数
            if (!GetParameter())
            {
                return(1);
            }
            else
            {
                Log.GetInstance().NormalWrite("获取运动轴参数成功!!");
            }
            foreach (var Axis in Global.LstAxis)
            {
                //设置运动参数
                //Alarm 0:低有效  1: 高有效
                rc &= CPci9014.p9014_set_alarm(Axis.No, 0, 1);

                //0:PULSE/DIR  1: CW/CCW
                rc &= CPci9014.p9014_set_pls_outmode(Axis.No, 0);

                //0:PULSE/DIR  1:4X AB
                rc &= CPci9014.p9014_set_pls_iptmode(Axis.No, 0);

                //EL Level 0:低有效  1: 高有效
                rc &= CPci9014.p9014_set_el_level(Axis.No, 0);

                //mode(0:ORG Only  1:ORG+EZ)
                //ORG Level(0:低有效  1: 高有效)
                //EZ  Level(0:低有效  1: 高有效)
                rc &= CPci9014.p9014_home_config(Axis.No, 0, 0, 0);

                //设置T Profile 下的速度,加速度等参数
                rc &= CPci9014.p9014_set_t_profile(Axis.No, Axis.startSpeed, Axis.maxSpeed, Axis.AccTime, Axis.DecTime);
            }
            //关闭所有输出
            SetAllOutBit(false);
            return(rc);
        }
예제 #2
0
        /// <summary>
        /// 设定限位信号有效电平,可以为高电平有效,也可以为低电平有效,默认为低电平有效
        /// </summary>
        /// <param name="axinfo"></param>
        /// <param name="flg"></param>
        /// <returns></returns>
        public override int SetLimitLevel(PCI9014AxisInfo axinfo, int flg)
        {
            int re = CPci9014.p9014_set_el_level(axinfo.No, flg);

            return(re);
        }