BoardInfo.cs 8.3 KB
using URSoldering.Common;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;

using System.Windows.Forms;

namespace URSoldering.DeviceLibrary
{
    public class BoardInfo
    {
        /// <summary>
        /// 平均焊接时间
        /// </summary>
        public TimeSpan WeldTime = new TimeSpan(0);
       //public SProgramInfo getProgram()
       // {
       //     return SProgramManager.getByPartNum(PartNumber);
       // }
        /// <summary>
        /// 电路板ID
        /// </summary>
        public int boardId { get; set; }

        /// <summary>
        /// 条码
        /// </summary>
        public string WareCode { get; set; }
        /// <summary>
        /// 机器人焊接时Z轴的高点
        /// </summary>
        public double  ZHighValue { get; set; }
       
        /// <summary>
        /// 工位编号,夹具编号(每一个程序需要配置四个夹具的位置,防止位置偏差)
        /// </summary>
        public int StationNum { get; set; }
     
        /// <summary>
        /// 料号 
        /// </summary>
        public string PartNumber { get; set; }
        /// <summary>
        /// 电路板名称
        /// </summary>
        public string boardName { get; set; }
        
        /// <summary>
        /// 宽度
        /// </summary>
        public int boardWidth { get; set; }
        /// <summary>
        /// 长度
        /// </summary>
        public int boardLength { get; set; }
        /// <summary>
        /// 焊点列表
        /// </summary>
        public List<WeldPointInfo> pointList { get; set; }
        /// <summary>
        /// 原点坐标X
        /// </summary>
        public double originX { get; set; }
        /// <summary>
        /// 原点坐标Y
        /// </summary>
        public double originY { get; set; }
        /// <summary>
        /// 图片名称
        /// </summary>
        public string imgName { get; set; }
        /// <summary>
        /// 焊接预估时间
        /// </summary>
        public double planNeedTime { get; set; }
        /// <summary>
        /// 固定原点的位置,1=左上角,2=左下角,3=右上角,4=右下角
        /// </summary>
        public int orgType { get; set; }
        /// <summary>
        /// 已经焊接次数,每次修改板子都会重置
        /// </summary>
        public int solderingCount { get; set; } 
        /// <summary>
        /// 焊接的时间,每次修改板子都会重置
        /// </summary>
        public double  solderingTime { get; set; }
        /// <summary>
        /// 已经焊接次数,不重置
        /// </summary>
        public int solderCount { get; set; }
        /// <summary>
        /// 焊接的时间,不重置
        /// </summary>
        public double solderTime { get; set; }
        public Image myImage = null;
        public string GetDes()
        {
            return " 长度:" + boardLength + ",宽度:" + boardWidth + ",焊点数量:" + this.pointList.Count;
        
        }
        public Image GetImage()
        {
            if (myImage == null)
            {
                string path = ConfigAppSettings.GetValue(Setting_Init.BOARD_IMAGE_PATH);
                string imagePath = Application.StartupPath + "/" + path + "/" + imgName;
                string defaultImg = ConfigAppSettings.GetValue(Setting_Init.BOARD_IMAGE_DEFAULT);
                if (imgName != null && File.Exists(imagePath))
                {
                    System.Drawing.Image img = System.Drawing.Image.FromFile(imagePath);
                    System.Drawing.Image bmp = new System.Drawing.Bitmap(img);
                    img.Dispose();
                    myImage = bmp;
                }
                else
                {
                    return BoardManager.defaultImage;
                }
            }
            if (myImage == null)
            {
                return BoardManager.defaultImage;
            }
            else
            {
                return myImage;
            }

        }

        public double getImageOrgX()
        {
            double orgX = originX;
            if (orgType == 2)
            {
                orgX = originX + boardLength;
            }

            else if (orgType == 4)
            {
                orgX = originX + boardLength;
            }
            return orgX;
        }

        public double getImageOrgY()
        {
            double orgY = originY;

            if (orgType == 3)
            {
                orgY = originY - boardWidth;
            }
            else if (orgType == 4)
            {
                orgY = originY - boardWidth;
            }
            return orgY;
        }
    }

    /// <summary>
    /// 焊点信息
    /// </summary>
    public class WeldPointInfo
    {
        public WeldPointInfo()
        {
            isNeedClear = false;
            pointType = 0;
        }
        public WeldPointInfo(int hand)
        {
            this.HandDirection = hand;
        }

        /// <summary>
        /// 焊点编号
        /// </summary>
        public int pointNum { get; set; }

        /// <summary>
        /// 焊点名字
        /// </summary>
        public string pointName { get; set; }

        /// <summary>
        /// x坐标
        /// </summary>
        public double PositionX { get; set; }
        /// <summary>
        /// y坐标
        /// </summary>
        public double PositionY { get; set; }
        /// <summary>
        /// u坐标
        /// </summary>
        public double PositionU { get; set; }
        /// <summary>
        /// z坐标
        /// </summary>
        public double PositionZ { get; set; }
        /// <summary>
        /// 手臂方向,2=左臂L,1=右臂R
        /// </summary>
        public int HandDirection { get; set; }

        /// <summary>
        /// 预热温度
        /// </summary>
        public int preheatTemperature { get; set; }

        /// <summary>
        /// 预热温度上限
        /// </summary>
        public int preheatTemperatureMax { get; set; }

        /// <summary>
        /// 预热温度下限
        /// </summary>
        public int preheatTemperatureMin { get; set; }


        /// <summary>
        /// 预热时间(秒)
        /// </summary>
        public double preheatTime { get; set; }
        /// <summary>
        /// 焊接温度
        /// </summary>
        public int weldTemperature { get; set; }
        /// <summary>
        /// 焊接温度上限
        /// </summary>
        public int weldTemperatureMax { get; set; }
        /// <summary>
        /// 焊接温度下限
        /// </summary>
        public int weldTemperatureMin { get; set; }
        /// <summary>
        /// 焊接时间(秒)
        /// </summary>
        public double weldTime { get; set; }
        /// <summary>
        /// 起始送丝速度
        /// </summary>
        public double startSendWireSpeed { get; set; }

        /// <summary>
        /// 起始送丝时间(秒)
        /// </summary>
        public double startSendWireTime { get; set; }
        /// <summary>
        /// 送丝速度
        /// </summary>
        public double sendWireSpeed { get; set; }

        /// <summary>
        /// 送丝时间(秒)
        /// </summary>
        public double sendWireTime { get; set; }

        /// <summary>
        /// 焊点类型,0=普通焊点,必须要焊接,1=左侧焊点,起始运行模式不焊接。2=右侧焊点,排料模式不焊接
        /// </summary>
        public int pointType { get; set; }
        /// <summary>
        /// 是否需要清洗烙铁头
        /// </summary>
        public bool isNeedClear { get; set; }
        /// <summary>
        /// 清洗时间,毫秒数
        /// </summary>
        public int ClearTime { get; set; }

        public string HandValue
        {
            get
            {
                if (HandDirection == 0)
                {
                    return "自动";
                }
                else if (HandDirection == 1)
                {
                    return "右臂";
                }
                else if (HandDirection == 2)
                {
                    return "左臂";
                }
        
                return "";
            }
            set
            {
            }
        }
    }
}