EquipConfig.cs 11.2 KB
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace OnlineStore.LoadCSVLibrary
{
  public   class EquipConfig : BaseConfig
    {
        public EquipConfig()
            : base()
        {
            CompP2Map = new Lazy<Dictionary<int, int>>(() => LoadCompP2Map());
        }
        public EquipConfig(int id, string cid, string type, string filepath)
            : base(id, cid, type, filepath)
        {
            CompP2Map = new Lazy<Dictionary<int, int>>(() => LoadCompP2Map());
        }
         
        /// <summary>
        /// 气压检测IO关闭需要持续的时间(=3表示需要关闭三秒以上才算关闭)
        /// </summary>
        [ConfigProAttribute("AirCheckSeconds")]
        public int AirCheckSeconds { get; set; }

     


           /// <summary>
        ///    PRO,0,上料口工位1料架RFIDIP,RFID_IP1,192.168.103.11,,,,,,,,,,,,
        /// </summary>
        [ConfigProAttribute("RFID_IP1")]
        public string RFID_IP1 { get; set; }
        /// <summary>
        ///    PRO,0,上料口工位2料架RFIDIP,RFID_IP2,192.168.103.12,,,,,,,,,,,,
        /// </summary>
        [ConfigProAttribute("RFID_IP2")]
        public string RFID_IP2 { get; set; }
        /// <summary>
        ///    PRO,0,上料口工位3料架RFIDIP,RFID_IP3,192.168.103.13,,,,,,,,,,,,
        /// </summary>
        [ConfigProAttribute("RFID_IP3")]
        public string RFID_IP3 { get; set; } 

        /// <summary>
        /// PRO,0,上料口工位1AGV节点名称,AgvName1,D1,,,,,,,,,,,,
        /// </summary>
        [ConfigProAttribute("AgvName1")]
        public string  AgvName1 { get; set; }
         
        /// <summary>
        /// PRO,0,上料口工位2AGV节点名称,AgvName2,D2,,,,,,,,,,,, 
        /// </summary>
        [ConfigProAttribute("AgvName2")]
        public string  AgvName2 { get; set; }
         
        /// <summary>
        /// PRO,0,上料口工位3AGV节点名称,AgvName3,D3,,,,,,,,,,,, 
        /// </summary>
        [ConfigProAttribute("AgvName3")]
        public string AgvName3 { get; set; }


        /// <summary>
        ///  PRO	IO信号超时时间(毫秒)	IOSingle_TimerOut	5000
        /// </summary>
        [ConfigProAttribute("IOSingle_TimerOut", false)]
        public int IOSingle_TimerOut { get; set; }

        /// <summary>
        ///  AXIS,0,(轴一)旋转轴,Middle_Axis,4,HC,,100,1000,1000,5,50,3000,10,100,0,0
        /// </summary>
        [ConfigProAttribute("Middle_Axis")]
        public ConfigMoveAxis Middle_Axis { get; set; }
        /// <summary>
        ///  AXIS,0,(轴二)升降轴轴,UpDown_Axis,5,HC,,200,2000,2000,20,250,3000,10,100,0,0
        /// </summary>
        [ConfigProAttribute("UpDown_Axis")]
        public ConfigMoveAxis UpDown_Axis { get; set; }
        /// <summary>
        ///  AXIS,0,(轴三)进出轴,InOut_Axis,6,HC,,5000,5000,5000,200,800,5000,10,100,0,0
        /// </summary>
        [ConfigProAttribute("InOut_Axis")]
        public ConfigMoveAxis InOut_Axis { get; set; }
        /// <summary>
        ///  AXIS,0,(轴四)压紧轴,Comp_Axis,7,HC,,30000,15000,15000,3000,5000,10000,10,100,0,0
        /// </summary>
        [ConfigProAttribute("Comp_Axis")]
        public ConfigMoveAxis Comp_Axis { get; set; }
        /// <summary>
        ///  PRO,0,升降轴(轴2)进料口取料低点 P1,UpDownAxis_DoorL_P1,2720,,,,,,,,,,,, 
        /// </summary>
        [ConfigProAttribute("UpDownAxis_DoorL_P1")]
        public int UpDownAxis_DoorL_P1 { get; set; }
        /// <summary>
        ///  PRO,0,升降轴(轴2)进料口取料高点 P2,UpDownAxis_DoorH_P2,3050,,,,,,,,,,,, 
        /// </summary>
        [ConfigProAttribute("UpDownAxis_DoorH_P2")]
        public int UpDownAxis_DoorH_P2 { get; set; }
        /// <summary>
        ///  PRO,0,升降轴(轴2)NG口放料高点 P5,UpDownAxis_DoorH_P5,3050,,,,,,,,,,,, 
        /// </summary>
        [ConfigProAttribute("UpDownAxis_DoorH_P5")]
        public int UpDownAxis_DoorH_P5 { get; set; }
        /// <summary>
        ///  PRO,0,升降轴(轴2)NG口放料低点 P6,UpDownAxis_DoorH_P6,3050,,,,,,,,,,,, 
        /// </summary>
        [ConfigProAttribute("UpDownAxis_DoorH_P6")]
        public int UpDownAxis_DoorH_P6 { get; set; }
        /// <summary>
        ///  PRO,0,旋转轴(轴1)P1/取料点/待机原位点,MiddleAxis_P1,891,,,,,,,,,,,,
        /// </summary>
        [ConfigProAttribute("MiddleAxis_P1")]
        public int MiddleAxis_P1 { get; set; }
        /// <summary>
        ///  PRO,0,旋转轴(轴1)P3/NG口放料点,MiddleAxis_P3,891,,,,,,,,,,,,
        /// </summary>
        [ConfigProAttribute("MiddleAxis_P3")]
        public int MiddleAxis_P3 { get; set; }
        /// <summary>
        ///  PRO,0,进出轴(轴3)P1/待机原位点,InOutAxis_P1,100,,,,,,,,,,,,
        /// </summary>
        [ConfigProAttribute("InOutAxis_P1")]
        public int InOutAxis_P1 { get; set; }
        /// <summary>
        ///  PRO,0,进出轴(轴3)P3/NG口放料点,InOutAxis_P4,100,,,,,,,,,,,,
        /// </summary>
        [ConfigProAttribute("InOutAxis_P4")]
        public int InOutAxis_P4 { get; set; }
        /// <summary>
        ///  PRO,0,压紧轴(轴4)P1待机原位点,CompressAxis_P1,10000,,,,,,,,,,,,
        /// </summary>
        [ConfigProAttribute("CompressAxis_P1")]
        public int CompressAxis_P1 { get; set; }
        /// <summary>
        ///  PRO,0,升降轴(轴2)P1速度,UpDownAxis_P1_Speed,1000,,,,,,,,,,,,
        /// </summary>
        [ConfigProAttribute("UpDownAxis_P1_Speed")]
        public int UpDownAxis_P1_Speed { get; set; }
        /// <summary>
        ///  PRO,0,升降轴(轴2)P2速度,UpDownAxis_P2_Speed,500,,,,,,,,,,,,
        /// </summary>
        [ConfigProAttribute("UpDownAxis_P2_Speed")]
        public int UpDownAxis_P2_Speed { get; set; }
        /// <summary>
        ///  PRO,0,升降轴(轴2)P3速度,UpDownAxis_P3_Speed,1000,,,,,,,,,,,,
        /// </summary>
        [ConfigProAttribute("UpDownAxis_P3_Speed")]
        public int UpDownAxis_P3_Speed { get; set; }
        /// <summary>
        ///  PRO,0,升降轴(轴2)P4速度,UpDownAxis_P4_Speed,500,,,,,,,,,,,,
        /// </summary>
        [ConfigProAttribute("UpDownAxis_P4_Speed")]
        public int UpDownAxis_P4_Speed { get; set; }
        /// <summary>
        ///  PRO,0,升降轴(轴2)P5速度,UpDownAxis_P5_Speed,1000,,,,,,,,,,,,
        /// </summary>
        [ConfigProAttribute("UpDownAxis_P5_Speed")]
        public int UpDownAxis_P5_Speed { get; set; }
        /// <summary>
        ///  PRO,0,升降轴(轴2)P6速度,UpDownAxis_P6_Speed,500,,,,,,,,,,,,
        /// </summary>
        [ConfigProAttribute("UpDownAxis_P6_Speed")]
        public int UpDownAxis_P6_Speed { get; set; }
        /// <summary>
        ///  PRO,0,旋转轴(轴1)P1速度,MiddleAxis_P1_Speed,300,,,,,,,,,,,,
        /// </summary>
        [ConfigProAttribute("MiddleAxis_P1_Speed")]
        public int MiddleAxis_P1_Speed { get; set; }
        /// <summary>
        ///  PRO,0,旋转轴(轴1)P2速度,MiddleAxis_P2_Speed,300,,,,,,,,,,,,
        /// </summary>
        [ConfigProAttribute("MiddleAxis_P2_Speed")]
        public int MiddleAxis_P2_Speed { get; set; }
        /// <summary>
        ///  PRO	1	旋转轴(轴1)P3速度	MiddleAxis_P3_Speed	301 
        /// </summary>
        [ConfigProAttribute("MiddleAxis_P3_Speed")]
        public int MiddleAxis_P3_Speed { get; set; }
        /// <summary>
        ///  PRO,0,进出轴(轴3)P1速度,InOutAxis_P1_Speed,6000,,,,,,,,,,,,
        /// </summary>
        [ConfigProAttribute("InOutAxis_P1_Speed")]
        public int InOutAxis_P1_Speed { get; set; }
        /// <summary>
        ///  PRO,0,进出轴(轴3)P2速度,InOutAxis_P2_Speed,6000,,,,,,,,,,,,
        /// </summary>
        [ConfigProAttribute("InOutAxis_P2_Speed")]
        public int InOutAxis_P2_Speed { get; set; }
        /// <summary>
        ///  PRO,0,进出轴(轴3)P3速度,InOutAxis_P3_Speed,6000,,,,,,,,,,,,
        /// </summary>
        [ConfigProAttribute("InOutAxis_P3_Speed")]
        public int InOutAxis_P3_Speed { get; set; }
        /// <summary>
        ///  PRO	1	进出轴(轴3)P4速度	InOutAxis_P4_Speed	6001
        /// </summary>
        [ConfigProAttribute("InOutAxis_P4_Speed")]
        public int InOutAxis_P4_Speed { get; set; }
        /// <summary>
        ///  PRO,0,压紧轴(轴4)P1速度,CompAxis_P1_Speed,20000,,,,,,,,,,,,
        /// </summary>
        [ConfigProAttribute("CompAxis_P1_Speed")]
        public int CompAxis_P1_Speed { get; set; }
        /// <summary>
        ///  PRO,0,压紧轴(轴4)P2速度,CompAxis_P2_Speed,20000,,,,,,,,,,,,
        /// </summary>
        [ConfigProAttribute("CompAxis_P2_Speed")]
        public int CompAxis_P2_Speed { get; set; }
        /// <summary>
        ///  PRO,0,压紧轴(轴4)P3速度,CompAxis_P3_Speed,20000,,,,,,,,,,,,
        /// </summary>
        [ConfigProAttribute("CompAxis_P3_Speed")]
        public int CompAxis_P3_Speed { get; set; }
        /// <summary>
        ///  PRO,0,出入库多少次,会自动重置旋转轴,Box_ResetMCount,1000,,,,,,,,,,,,
        /// </summary>
        [ConfigProAttribute("Box_ResetMCount")]
        public int Box_ResetMCount { get; set; }
        /// <summary>
        ///  PRO,0,出入库多少次,会自动重置所有轴操作,Box_ResetACount,100,,,,,,,,,,,,
        /// </summary>
        [ConfigProAttribute("Box_ResetACount")]
        public int Box_ResetACount { get; set; }
        /// <summary>
        ///  PRO,0,是否使用料盘检测信号,IsUse_Tray_Check,1,,,,,,,,,,,,
        /// </summary>
        [ConfigProAttribute("IsUse_Tray_Check")]
        public int IsUse_Tray_Check { get; set; }
        /// <summary>
        ///  PRO,0,是否调试状态,ISDebug,0,,,,,,,,,,,, 
        /// </summary>
        [ConfigProAttribute("ISDebug")]
        public int ISDebug { get; set; }
        /// <summary>
        ///  PRO,0,压紧轴(轴4)P2压紧点列表,CompAxis_P2_List,8=385001;,,,,,,,,,,,,
        /// </summary>
        [ConfigProAttribute("CompAxis_P2_List", false)]
        public string CompAxis_P2_List { get; set; }

        public Lazy<Dictionary<int, int>> CompP2Map;

        private Dictionary<int, int> LoadCompP2Map()
        {
            Dictionary<int, int> dataMap = new Dictionary<int, int>();
            try
            {
                string[] arrayList = CompAxis_P2_List.Split(';');
                foreach (string str in arrayList)
                {
                    string[] arrStr = str.Split('=');
                    if (arrStr.Length == 2)
                    {
                        int height = Convert.ToInt32(arrStr[0].Trim());
                        int comp2 = Convert.ToInt32(arrStr[1].Trim());
                        dataMap.Add(height, comp2);
                    }
                }
            }
            catch (Exception ex)
            {

            }
            return dataMap;
        }
        public int GetCompP2(int height)
        { 
            if (CompP2Map.Value.ContainsKey(height))
            {
                return CompP2Map.Value[height];
            }
            return 0;
        }



        public ushort GetDOLength(string ioIp)
        {
            return 16;
        }

        public int GetDILength(string ip)
        {
            return 16;
        }
    }
}