Esempio n. 1
0
        public int SetHomeParam(int axis, JFHomeParam hp)
        {
            _CheckAxisEnable(axis, "SetHomeParam");
            HTM.AXIS_INFO axInfo;
            int           opt = HTM.GetAxisInfo(axis, out axInfo);

            if (opt != 0)
            {
                throw new Exception("SetHomeParam() Failed By: HTM.GetAxisInfo() return errorCode = " + opt);
            }

            axInfo.homeMode  = (sbyte)hp.mode;
            axInfo.homeDir   = (byte)(hp.dir ? 1 : 0);
            axInfo.homeEZA   = (byte)(hp.eza ? 1 : 0);
            axInfo.homeAcc   = hp.acc;
            axInfo.homeVm    = hp.vm;
            axInfo.homeVo    = hp.vo;
            axInfo.homeShift = hp.shift;
            opt = HTM.SetAxisInfo(axis, ref axInfo);
            if (0 != opt)
            {
                return((int)ErrorDef.InvokeFailed);
            }
            return((int)ErrorDef.Success);
        }
Esempio n. 2
0
        /// <summary>单轴回零参数</summary>
        public int GetHomeParam(int axis, out JFHomeParam pm)
        {
            _CheckAxisEnable(axis, "GetHomeParam");
            HTM.AXIS_INFO axInfo;
            int           errCode = HTM.GetAxisInfo(axis, out axInfo);

            if (errCode != 0)
            {
                pm = new JFHomeParam();
                return((int)ErrorDef.InvokeFailed);
            }
            pm = new JFHomeParam()
            {
                mode   = axInfo.homeMode,
                dir    = axInfo.homeDir != 0,
                eza    = axInfo.homeEZA != 0,
                acc    = axInfo.homeAcc,
                vm     = axInfo.homeVm,
                vo     = axInfo.homeVo,
                va     = axInfo.homeVo,
                shift  = axInfo.homeShift,
                offset = 0
            };
            return((int)ErrorDef.Success);
        }
Esempio n. 3
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);
            }
            JFHomeParam hp = (JFHomeParam)GetInitParamValue("轴归零参数");

            /*
             * 归零模式  0:使用Org(原点)作为归零参考   1:使用限位信号作为归零参考   2:仅使用EZ信号作为归零参考
             */
            if (hp.mode != 0 && hp.mode != 1 && hp.mode != 2 && hp.mode != -1 && hp.mode != -2)
            {
                errorInfo = "归零模式设置错误,mode=" + hp.mode;
                SetOutputParamValue("执行结果", JFWorkCmdResult.ActionError);
                return(false);
            }

            if (hp.acc <= 0)
            {
                errorInfo = "加速度/减速度acc <= 0";
                SetOutputParamValue("执行结果", JFWorkCmdResult.ActionError);
                return(false);
            }

            if (hp.vm <= 0)
            {
                errorInfo = "最大速度参数vm <= 0";
                SetOutputParamValue("执行结果", JFWorkCmdResult.ActionError);
                return(false);
            }

            if (hp.vo <= 0)
            {
                errorInfo = "寻找原点速度vo <= 0";
                SetOutputParamValue("执行结果", JFWorkCmdResult.ActionError);
                return(false);
            }

            if (hp.va <= 0)
            {
                errorInfo = "接近速度va <= 0";
                SetOutputParamValue("执行结果", JFWorkCmdResult.ActionError);
                return(false);
            }

            if (hp.shift < 0)
            {
                errorInfo = "回零偏移量sift < 0";
                SetOutputParamValue("执行结果", JFWorkCmdResult.ActionError);
                return(false);
            }

            if (hp.offset < 0)
            {
                errorInfo = "回零补偿值offset < 0";
                SetOutputParamValue("执行结果", JFWorkCmdResult.ActionError);
                return(false);
            }

            IJFModule_Motion md = (dev as IJFDevice_MotionDaq).GetMc(ci.ModuleIndex);
            int errCode         = md.SetHomeParam(ci.ChannelIndex, hp);

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