AxisMoveControl.cs 6.1 KB
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using OnlineStore.DeviceLibrary;
using OnlineStore.Common;
using System.Threading;
using OnlineStore.LoadCSVLibrary;

namespace OnlineStore.AssemblyLine
{
    public partial class AxisMoveControl : UserControl
    {
        private List<ConfigMoveAxis> axisList = new List<ConfigMoveAxis>();
        private EquipBase equipBase = null;
        private string PortName = "";
        private int SlvAddr = 0;
      
        public AxisMoveControl( )
        { 
            InitializeComponent(); 
        }
        public void LoadData(EquipBase equipBase, params ConfigMoveAxis[] moveAxis)
        {
            this.equipBase = equipBase;
            axisList = new List<ConfigMoveAxis>(moveAxis);

            if (axisList.Count > 0)
            { 
                comboBox1.Items.Clear();
                foreach (ConfigMoveAxis a in axisList)
                {
                    comboBox1.Items.Add(a.Explain);
                }
                comboBox1.SelectedIndex = 0;

                PortName = moveAxis[0].DeviceName;
                SlvAddr = moveAxis[0].GetAxisValue();
                txtAxisDeviceName.Text = PortName;
                txtAxisValue.Text = SlvAddr.ToString(); 
            }
        }
        private void btnOpenAxis_Click(object sender, EventArgs e)
        {
            //string portName = txtAxisDeviceName.Text;
            //short SlvAddr = FormUtil.GetShortValue(txtAxisValue);
            //ACServerManager.OpenPort(portName); 
            //ACServerManager.AlarmClear(portName, SlvAddr);
            //Thread.Sleep(100);
            //ACServerManager.ServoOn(portName, SlvAddr);

            LogUtil.info("点击【打开伺服】,端口号【" + PortName + "】地址【" + SlvAddr + "】 ");
            equipBase.OpenAxis(axisList[comboBox1.SelectedIndex]);
        }

        private void btnCloseAxis_Click(object sender, EventArgs e)
        {
            LogUtil.info("点击【关闭伺服】,端口号【" + PortName + "】地址【" + SlvAddr + "】 ");
            //   ACServerManager.ServoOff(PortName, SlvAddr); 
            equipBase.CloseAxis(axisList[comboBox1.SelectedIndex]);
        }

        private void btnAxisAMove_Click(object sender, EventArgs e)
        {
            int position = FormUtil.GetIntValue(txtAPosition);
            int speed = FormUtil.GetIntValue(txtASpeed);
            LogUtil.info("点击【绝对运动】,端口号【" + PortName + "】地址【" + SlvAddr + "】位置【" + position + "】速度【" + speed + "】");
            ACServerManager.AbsMove(PortName, SlvAddr, position, speed);
        }

        private void btnAxisRMove_Click(object sender, EventArgs e)
        {
            int position = FormUtil.GetIntValue(txtAPosition);
            int speed = FormUtil.GetIntValue(txtASpeed);
            LogUtil.info("点击【相对运动】,端口号【" + PortName + "】地址【" + SlvAddr + "】位置【" + position + "】速度【" + speed + "】");
            ACServerManager.RelMove(PortName, SlvAddr, position, speed);
        }

        private void btnAxisVMove_Click(object sender, EventArgs e)
        {
            int speed = FormUtil.GetIntValue(txtASpeed);

            LogUtil.info("点击【匀速运动】,端口号【" + PortName + "】地址【" + SlvAddr + "】 速度【" + speed + "】");
            ACServerManager.SpeedMove(PortName, SlvAddr, speed);
        }

        private void btnAxisStop_Click(object sender, EventArgs e)
        {
            LogUtil.info("点击【停止运动】,端口号【" + PortName + "】地址【" + SlvAddr + "】 ");
            ACServerManager.SuddenStop(PortName, SlvAddr);
        }

        private void btnComAlarmClear_Click(object sender, EventArgs e)
        {
            LogUtil.info("点击【清理报警】,端口号【" + PortName + "】地址【" + SlvAddr + "】 ");
            ACServerManager.AlarmClear(PortName, SlvAddr);
            Thread.Sleep(100);
            ACServerManager.ServoOn(PortName, SlvAddr);
        }

        private void btnAxisReturnHome_Click(object sender, EventArgs e)
        {
            int speed = FormUtil.GetIntValue(txtASpeed);
            LogUtil.info("点击【原点返回】,端口号【" + PortName + "】地址【" + SlvAddr + "】 速度【" + speed + "】");
            ACServerManager.HomeMove(PortName, SlvAddr, speed);
        }

        private void btnGetAlarm_Click(object sender, EventArgs e)
        {
            int value = ACServerManager.GetAlarmStatus(PortName, SlvAddr);
            this.txtAlarmStatus.Text = value.ToString();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int value = ACServerManager.GetBusyStatus(PortName, SlvAddr);
            this.txtBusyStatus.Text = value.ToString();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            int value = ACServerManager.GetHomeEndStatus(PortName, SlvAddr);
            this.txtHomeStatus.Text = value.ToString();
        }

        private void btnReadHomeSingle_Click(object sender, EventArgs e)
        {
            int value = ACServerManager.GetHomeSingle(PortName, SlvAddr);
            this.txtHomeSingle.Text = value.ToString();
        }

        private void btnReadPosition_Click(object sender, EventArgs e)
        {
            lblOutPulse.Text = ACServerManager.GetTargetPosition(PortName, SlvAddr).ToString();
            lblCountPulse.Text = ACServerManager.GetActualtPosition(PortName, SlvAddr).ToString();
        } 
        

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (comboBox1.SelectedIndex > 0)
            { 
                ConfigMoveAxis axis = axisList[comboBox1.SelectedIndex];
                PortName = axis.DeviceName;
                SlvAddr = axis.GetAxisValue();
                txtAxisDeviceName.Text = PortName;
                txtAxisValue.Text = SlvAddr.ToString();

            }
        }
    }
}