Exemplo n.º 1
0
        private void btPY_MouseDown(object sender, MouseEventArgs e)
        {
            if (cbMoveMode.SelectedIndex != 1) //未选中连续模式
            {
                return;
            }
            string        errInfo;
            JFDevCellInfo ci = CheckAxisDevInfo(_axisNames[1], out errInfo);

            if (null == ci)
            {
                MessageBox.Show("Y轴正向连续运动失败!配置中没有通道信息,Name = \"" + _axisNames[1] + "\" ErrorInfo:" + errInfo);
                return;
            }
            IJFModule_Motion md = (JFHubCenter.Instance.InitorManager.GetInitor(ci.DeviceID) as IJFDevice_MotionDaq).GetMc(ci.ModuleIndex);
            int errCode         = md.VelMove(ci.ChannelIndex, _dVelParam, true);

            if (errCode != 0)
            {
                MessageBox.Show("Y轴正向连续运动失败!Name = \"" + _axisNames[1] + "\" ErrorInfo:" + errInfo);
                return;
            }
        }
Exemplo n.º 2
0
        protected override bool ActionGenuine(out string errorInfo)
        {
            IJFInitializable dev    = null;
            JFDevCellInfo    ci     = null;
            string           axisID = GetInitParamValue("轴ID") as string;

            if (!JFHubCenter.Instance.MDCellNameMgr.ContainAxisName(axisID))
            {
                errorInfo = "参数项:\"轴ID\" = " + axisID + " 在设备名称表中不存在";
                SetOutputParamValue("执行结果", JFWorkCmdResult.ActionError);
                return(false);
            }

            if (!JFCMFunction.CheckDevCellName(JFCMFunction.Axis, axisID, out dev, out ci, out errorInfo))
            {
                SetOutputParamValue("执行结果", JFWorkCmdResult.ActionError);
                return(false);
            }

            bool   isPositive = (bool)GetInitParamValue("正向移动");
            double velocity   = Convert.ToDouble(GetInitParamValue("移动速度"));

            IJFModule_Motion md = (dev as IJFDevice_MotionDaq).GetMc(ci.ModuleIndex);

            bool[] AxisStatus = null;
            int    err        = md.GetMotionStatus(ci.ChannelIndex, out AxisStatus);

            if (err != 0)
            {
                errorInfo = "开始运动前检测轴状态失败:" + md.GetErrorInfo(err);
                SetOutputParamValue("执行结果", JFWorkCmdResult.ActionError);
                return(false);
            }

            //if(md.IsSVO)
            if (!AxisStatus[md.MSID_SVO])
            {
                errorInfo = "轴伺服未上电";
                SetOutputParamValue("执行结果", JFWorkCmdResult.ActionError);
                return(false);
            }

            if (AxisStatus[md.MSID_ALM])
            {
                errorInfo = "轴伺服已报警";
                SetOutputParamValue("执行结果", JFWorkCmdResult.ActionError);
                return(false);
            }

            if (!AxisStatus[md.MSID_MDN])
            {
                errorInfo = "轴当前运动未完成";
                SetOutputParamValue("执行结果", JFWorkCmdResult.ActionError);
                return(false);
            }

            int errCode = md.VelMove(ci.ChannelIndex, velocity, isPositive);

            if (errCode < 0)
            {
                errorInfo = "SDK调用出错:" + md.GetErrorInfo(errCode);
                SetOutputParamValue("执行结果", JFWorkCmdResult.ActionError);
                return(false);
            }

            errorInfo = "Success";
            SetOutputParamValue("执行结果", JFWorkCmdResult.Success);
            return(true);
        }