/// <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); }
/// <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); }