private void InitAxises()
        {
            if (!VsmdController.GetVsmdController().IsInitialized())
            {
                StatusBar.DisplayMessage(MessageType.Error, "设备未连接!");
                DisableAllControls();
                return;
            }

            VsmdInfoSync ax = VsmdController.GetVsmdController().GetAxis(VsmdAxis.X);

            txtCidX.Text   = ax.Cid.ToString();
            txtPosX.Text   = ax.curPos.ToString();
            txtSpeedX.Text = ax.GetAttributeValue(VsmdAttribute.Spd).ToString();
            txtZsdX.Text   = ax.GetAttributeValue(VsmdAttribute.Zsd).ToString();

            VsmdInfoSync ay = VsmdController.GetVsmdController().GetAxis(VsmdAxis.Y);

            txtCidY.Text   = ay.Cid.ToString();
            txtPosY.Text   = ay.curPos.ToString();
            txtSpeedY.Text = ay.GetAttributeValue(VsmdAttribute.Spd).ToString();
            txtZsdY.Text   = ay.GetAttributeValue(VsmdAttribute.Zsd).ToString();

            VsmdInfoSync az = VsmdController.GetVsmdController().GetAxis(VsmdAxis.Z);

            txtCidZ.Text   = az.Cid.ToString();
            txtPosZ.Text   = az.curPos.ToString();
            txtSpeedZ.Text = az.GetAttributeValue(VsmdAttribute.Spd).ToString();
            txtZsdZ.Text   = az.GetAttributeValue(VsmdAttribute.Zsd).ToString();
        }
        private async void  GoHome()
        {
            VsmdInfoSync ax     = VsmdController.GetVsmdController().GetAxis(VsmdAxis.X);
            var          speedX = ax.GetAttributeValue(VsmdAttribute.Spd);
            var          zsdX   = ax.GetAttributeValue(VsmdAttribute.Zsd);

            VsmdInfoSync ay     = VsmdController.GetVsmdController().GetAxis(VsmdAxis.Y);
            var          speedY = ay.GetAttributeValue(VsmdAttribute.Spd);
            var          zsdY   = ay.GetAttributeValue(VsmdAttribute.Zsd);

            VsmdInfoSync az     = VsmdController.GetVsmdController().GetAxis(VsmdAxis.Z);
            var          speedZ = az.GetAttributeValue(VsmdAttribute.Spd);
            var          zsdZ   = az.GetAttributeValue(VsmdAttribute.Zsd);

            await VsmdController.GetVsmdController().SetZsd(VsmdAxis.Z, zsdZ);

            await VsmdController.GetVsmdController().ZeroStart(VsmdAxis.Z);

            await VsmdController.GetVsmdController().SetZsd(VsmdAxis.X, zsdX);

            VsmdController.GetVsmdController().ZeroStart(VsmdAxis.X);

            await VsmdController.GetVsmdController().SetZsd(VsmdAxis.Y, zsdY);

            await VsmdController.GetVsmdController().ZeroStart(VsmdAxis.Y);

            //set positive limit register
            ax.cfgPsr(3);
            ay.cfgPsr(3);
            az.cfgPsr(3);
        }
Beispiel #3
0
 public void Dispose()
 {
     if (m_vsmd != null)
     {
         m_axisX = null;
         m_axisY = null;
         m_axisZ = null;
         m_vsmd.closeSerialPort();
         m_initialized = false;
     }
 }
Beispiel #4
0
        public VsmdInfoSync GetAxis(VsmdAxis axis)
        {
            VsmdInfoSync ret = null;

            switch (axis)
            {
            case VsmdAxis.X:
                ret = m_axisX;
                break;

            case VsmdAxis.Y:
                ret = m_axisY;
                break;

            case VsmdAxis.Z:
                ret = m_axisZ;
                break;

            default:
                break;
            }
            return(ret);
        }
Beispiel #5
0
        public async Task <InitResult> Init(string port, int baudrate)
        {
            if (m_initialized && port == m_port && baudrate == m_baudrate)
            {
                return(new InitResult()
                {
                    Message = "设备连接成功!", IsSuccess = true
                });
            }

            m_port     = port;
            m_baudrate = baudrate;
            if (m_initialized)
            {
                m_vsmd.closeSerialPort();
            }

            m_vsmd = new VsmdSync();
            bool ret = m_vsmd.openSerialPort(port, baudrate);

            if (!ret)
            {
                return(new InitResult()
                {
                    Message = "打开串口失败!", IsSuccess = false
                });
            }
            m_vsmd.OutputCommandLog    = GeneralSettings.GetInstance().OutputCommandLog;
            m_vsmd.OutputStsCommandLog = GeneralSettings.GetInstance().OutputStsCommandLog;

            List <string> errAxis = new List <string>();

            m_axisX = m_vsmd.createVsmdInfo(1);
            await m_axisX.CheckAxisIsOnline();

            if (m_axisX.isOnline)
            {
                await m_axisX.enable();

                m_axisX.flgAutoUpdate = true;
                await m_axisX.cfg();
            }
            else
            {
                errAxis.Add("X");
            }

            m_axisY = m_vsmd.createVsmdInfo(2);
            await m_axisY.CheckAxisIsOnline();

            if (m_axisY.isOnline)
            {
                await m_axisY.enable();

                m_axisY.flgAutoUpdate = true;
                await m_axisY.cfg();
            }
            else
            {
                errAxis.Add("Y");
            }

            m_axisZ = m_vsmd.createVsmdInfo(3);
            await m_axisZ.CheckAxisIsOnline();

            if (m_axisY.isOnline)
            {
                await m_axisZ.enable();

                m_axisZ.flgAutoUpdate = true;
                m_axisZ.SetMaxWaitTimeForMove(3);
                await m_axisZ.cfg();
            }
            else
            {
                errAxis.Add("Z");
            }

            if (errAxis.Count <= 0)
            {
                m_initialized = true;
            }

            string errMsg = "";

            if (errAxis.Count > 0)
            {
                errMsg = "设备 ";
                for (int i = 0; i < errAxis.Count; i++)
                {
                    if (i > 0)
                    {
                        errMsg += ", ";
                    }
                    errMsg += errAxis[i];
                }
                errMsg += "连接失败!";
            }
            if (!m_initialized)
            {
                m_vsmd.closeSerialPort();
                m_vsmd = null;
            }

            return(new InitResult()
            {
                IsSuccess = m_initialized, Message = errMsg
            });
        }