分支自 SuZhouGuanHong/TaiYuanTaiZhong

dengjunjie
2024-06-18 f3493a6f6f9958cea100ad596fa84239a6e2e962
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/Common/equipment/GetWheelDate.cs
@@ -3,8 +3,10 @@
using System.Linq;
using System.Reflection;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using WIDESEA_Comm;
using WIDESEA_Core.Extensions;
using WIDESEA_WCS.WCSClient;
namespace WIDESEA_WCS
@@ -12,13 +14,13 @@
    public class GetDate
    {
        /// <summary>
        /// èŽ·å–è½¦è½®æ•°æ®
        /// èŽ·å–è½¦è½®æ•°æ®ä¿¡æ¯
        /// </summary>
        public static List<WheelDBItem> GetWheelDate(PLCClient client)
        {
            List<WheelDBItem> wheelDBItems = new List<WheelDBItem>();
            PropertyInfo[] propertyInfos = typeof(WheelDBItem).GetProperties();
            var groups = client.itemGroups.OrderBy(x => x.Methods).ThenBy(x => x.name).GroupBy(x => x.Methods).ToList();
            var groups = client.itemGroups.Where(x => x.opratortype == "wheel").OrderBy(x => x.Methods).ThenBy(x => x.name).GroupBy(x => x.Methods).ToList();
            foreach (var key in groups)
            {
                WheelDBItem StackerDBItem = new WheelDBItem();
@@ -56,5 +58,344 @@
            }
            return wheelDBItems;
        }
        /// <summary>
        /// èŽ·å–VK状态信息
        /// </summary>
        /// <param name="client"></param>
        /// <returns></returns>
        public static List<VKDBItem> GetVKDate(PLCClient client)
        {
            List<VKDBItem> vKDBItems = new List<VKDBItem>();
            PropertyInfo[] propertyInfos = typeof(VKDBItem).GetProperties();
            var groups = client.itemGroups.Where(x => x.opratortype == "VK").OrderBy(x => x.Methods).ThenBy(x => x.name).GroupBy(x => x.Methods).ToList();
            foreach (var key in groups)
            {
                VKDBItem StackerDBItem = new VKDBItem();
                foreach (var propertyInfo in propertyInfos)
                {
                    if (propertyInfo.Name == "Name")
                    {
                        StackerDBItem.Name = key.Key;
                    }
                    else
                    {
                        DBItemGroup group = key.FirstOrDefault(x => x.name == propertyInfo.Name);
                        if (group != null)
                        {
                            var readData = DBExtension.Read(group, client);
                            switch (propertyInfo.Name)
                            {
                                case "power_on":
                                    StackerDBItem.power_on = Convert.ToBoolean(readData);
                                    break;
                                case "ready_for_operate":
                                    StackerDBItem.ready_for_operate = Convert.ToBoolean(readData);
                                    break;
                                case "ready_for_auto_start":
                                    StackerDBItem.ready_for_auto_start = Convert.ToBoolean(readData);
                                    break;
                                case "VK_Fault":
                                    StackerDBItem.VK_Fault = Convert.ToBoolean(readData);
                                    break;
                                case "bag_out_1_Fault":
                                    StackerDBItem.bag_out_1_Fault = Convert.ToBoolean(readData);
                                    break;
                                case "bag_in_1_Fault":
                                    StackerDBItem.bag_in_1_Fault = Convert.ToBoolean(readData);
                                    break;
                                case "bag_out_2_Fault":
                                    StackerDBItem.bag_out_2_Fault = Convert.ToBoolean(readData);
                                    break;
                                case "bag_in_2_Fault":
                                    StackerDBItem.bag_in_2_Fault = Convert.ToBoolean(readData);
                                    break;
                                case "safety_OK":
                                    StackerDBItem.safety_OK = Convert.ToBoolean(readData);
                                    break;
                                case "state_JOG_bag1":
                                    StackerDBItem.state_JOG_bag1 = Convert.ToBoolean(readData);
                                    break;
                                case "state_AUTO_bag1":
                                    StackerDBItem.state_AUTO_bag1 = Convert.ToBoolean(readData);
                                    break;
                                case "state_JOG_bag2":
                                    StackerDBItem.state_JOG_bag2 = Convert.ToBoolean(readData);
                                    break;
                                case "state_AUTO_bag2":
                                    StackerDBItem.state_AUTO_bag2 = Convert.ToBoolean(readData);
                                    break;
                                case "state_JOG_bag3":
                                    StackerDBItem.state_JOG_bag3 = Convert.ToBoolean(readData);
                                    break;
                                case "state_AUTO_bag3":
                                    StackerDBItem.state_AUTO_bag3 = Convert.ToBoolean(readData);
                                    break;
                                case "state_JOG_bag4":
                                    StackerDBItem.state_JOG_bag4 = Convert.ToBoolean(readData);
                                    break;
                                case "state_AUTO_bag4":
                                    StackerDBItem.state_AUTO_bag4 = Convert.ToBoolean(readData);
                                    break;
                                case "safetydoor_1_closed":
                                    StackerDBItem.safetydoor_1_closed = Convert.ToBoolean(readData);
                                    break;
                                case "safetydoor_2_closed":
                                    StackerDBItem.safetydoor_2_closed = Convert.ToBoolean(readData);
                                    break;
                                case "safetydoor_3_closed":
                                    StackerDBItem.safetydoor_3_closed = Convert.ToBoolean(readData);
                                    break;
                                case "safetydoor_4_closed":
                                    StackerDBItem.safetydoor_4_closed = Convert.ToBoolean(readData);
                                    break;
                                case "safetydoor_5_closed":
                                    StackerDBItem.safetydoor_5_closed = Convert.ToBoolean(readData);
                                    break;
                                case "safetydoor_6_closed":
                                    StackerDBItem.safetydoor_6_closed = Convert.ToBoolean(readData);
                                    break;
                                case "safetydoor_7_closed":
                                    StackerDBItem.safetydoor_7_closed = Convert.ToBoolean(readData);
                                    break;
                                case "safetydoor_8_closed":
                                    StackerDBItem.safetydoor_8_closed = Convert.ToBoolean(readData);
                                    break;
                                case "safetydoor_9_closed":
                                    StackerDBItem.safetydoor_9_closed = Convert.ToBoolean(readData);
                                    break;
                                case "vk_state":
                                    StackerDBItem.vk_state = Convert.ToInt16(readData);
                                    break;
                            }
                        }
                    }
                }
                vKDBItems.Add(StackerDBItem);
            }
            return vKDBItems;
        }
        /// <summary>
        /// èŽ·å–æœºåºŠçŠ¶æ€ä¿¡æ¯
        /// </summary>
        /// <param name="client"></param>
        /// <returns></returns>
        public static List<MachineDBItem> GetMachineDate(PLCClient client)
        {
            List<MachineDBItem> machineDBItems = new List<MachineDBItem>();
            PropertyInfo[] propertyInfos = typeof(MachineDBItem).GetProperties();
            var groups = client.itemGroups.Where(x => x.opratortype == "machine").OrderBy(x => x.Methods).ThenBy(x => x.name).GroupBy(x => x.Methods).ToList();
            foreach (var key in groups)
            {
                MachineDBItem StackerDBItem = new MachineDBItem();
                foreach (var propertyInfo in propertyInfos)
                {
                    if (propertyInfo.Name == "Name")
                    {
                        StackerDBItem.Name = key.Key;
                    }
                    else
                    {
                        DBItemGroup group = key.FirstOrDefault(x => x.name == propertyInfo.Name);
                        if (group != null)
                        {
                            var readData = DBExtension.Read(group, client);
                            switch (propertyInfo.Name)
                            {
                                case "Power_on":
                                    StackerDBItem.Power_on = Convert.ToBoolean(readData);
                                    break;
                                case "Ready_for_operate":
                                    StackerDBItem.Ready_for_operate = Convert.ToBoolean(readData);
                                    break;
                                case "Ready_for_Auto_start":
                                    StackerDBItem.Ready_for_Auto_start = Convert.ToBoolean(readData);
                                    break;
                                case "state_JOG":
                                    StackerDBItem.state_JOG = Convert.ToBoolean(readData);
                                    break;
                                case "state_MDA":
                                    StackerDBItem.state_MDA = Convert.ToBoolean(readData);
                                    break;
                                case "state_AUTO":
                                    StackerDBItem.state_AUTO = Convert.ToBoolean(readData);
                                    break;
                                case "Safetydoors_closed":
                                    StackerDBItem.Safetydoors_closed = Convert.ToBoolean(readData);
                                    break;
                                case "Spindel_running":
                                    StackerDBItem.Spindel_running = Convert.ToBoolean(readData);
                                    break;
                                case "Kommunikation_IO":
                                    StackerDBItem.Kommunikation_IO = Convert.ToBoolean(readData);
                                    break;
                                case "Hydraulik_fault":
                                    StackerDBItem.Hydraulik_fault = Convert.ToBoolean(readData);
                                    break;
                                case "feeddrive_fault":
                                    StackerDBItem.feeddrive_fault = Convert.ToBoolean(readData);
                                    break;
                                case "Maindrive_fault":
                                    StackerDBItem.Maindrive_fault = Convert.ToBoolean(readData);
                                    break;
                                case "Machine_fault":
                                    StackerDBItem.Machine_fault = Convert.ToBoolean(readData);
                                    break;
                                case "Coolant_fault":
                                    StackerDBItem.Coolant_fault = Convert.ToBoolean(readData);
                                    break;
                                case "Chipremoval_fault":
                                    StackerDBItem.Chipremoval_fault = Convert.ToBoolean(readData);
                                    break;
                                case "Coolant_ready_operate":
                                    StackerDBItem.Coolant_ready_operate = Convert.ToBoolean(readData);
                                    break;
                                case "Chipremoval_ready_operat":
                                    StackerDBItem.Chipremoval_ready_operat = Convert.ToBoolean(readData);
                                    break;
                                case "Emergency_Stop_machine":
                                    StackerDBItem.Emergency_Stop_machine = Convert.ToBoolean(readData);
                                    break;
                                case "Breakdown_repair":
                                    StackerDBItem.Breakdown_repair = Convert.ToBoolean(readData);
                                    break;
                                case "Breakdown_maintenance":
                                    StackerDBItem.Breakdown_maintenance = Convert.ToBoolean(readData);
                                    break;
                                case "Breakdown_Toolchange":
                                    StackerDBItem.Breakdown_Toolchange = Convert.ToBoolean(readData);
                                    break;
                                case "Breakdown_changeover":
                                    StackerDBItem.Breakdown_changeover = Convert.ToBoolean(readData);
                                    break;
                                case "Programm_running":
                                    StackerDBItem.Programm_running = Convert.ToBoolean(readData);
                                    break;
                                case "Prog_sel_side_1":
                                    StackerDBItem.Prog_sel_side_1 = Convert.ToBoolean(readData);
                                    break;
                                case "Prog_sel_side_2":
                                    StackerDBItem.Prog_sel_side_2 = Convert.ToBoolean(readData);
                                    break;
                                case "programm_side_1_finished":
                                    StackerDBItem.programm_side_1_finished = Convert.ToBoolean(readData);
                                    break;
                                case "load_side_1_finished":
                                    StackerDBItem.load_side_1_finished = Convert.ToBoolean(readData);
                                    break;
                                case "programm_side_2_finished":
                                    StackerDBItem.programm_side_2_finished = Convert.ToBoolean(readData);
                                    break;
                                case "load_side_2_finished":
                                    StackerDBItem.load_side_2_finished = Convert.ToBoolean(readData);
                                    break;
                                case "Toolchange_magazine_1":
                                    StackerDBItem.Toolchange_magazine_1 = Convert.ToBoolean(readData);
                                    break;
                                case "Toolchange_magazine_2":
                                    StackerDBItem.Toolchange_magazine_2 = Convert.ToBoolean(readData);
                                    break;
                                case "Changed_tool_mag_1":
                                    StackerDBItem.Changed_tool_mag_1 = Convert.ToInt16(readData);
                                    break;
                                case "Dupl_tool_mag_1":
                                    StackerDBItem.Dupl_tool_mag_1 = Convert.ToInt16(readData);
                                    break;
                                case "Changed_tool_mag_2":
                                    StackerDBItem.Changed_tool_mag_2 = Convert.ToInt16(readData);
                                    break;
                                case "Dupl_tool_mag_2":
                                    StackerDBItem.Dupl_tool_mag_2 = Convert.ToInt16(readData);
                                    break;
                                case "Parttype":
                                    StackerDBItem.Parttype = Convert.ToInt16(readData);
                                    break;
                                case "partcounter":
                                    StackerDBItem.partcounter = Convert.ToInt32(readData);
                                    break;
                                case "operator_ID":
                                    StackerDBItem.operator_ID = Convert.ToInt16(readData);
                                    break;
                                case "machine_state":
                                    StackerDBItem.machine_state = Convert.ToInt16(readData);
                                    break;
                            }
                        }
                    }
                }
                machineDBItems.Add(StackerDBItem);
            }
            return machineDBItems;
        }
        /// <summary>
        /// èŽ·å–æ¡æž¶æœºæ¢°æ‰‹çŠ¶æ€ä¿¡æ¯
        /// </summary>
        /// <param name="client"></param>
        /// <returns></returns>
        public static List<GantryDBItem> GetGantryDate(PLCClient client)
        {
            List<GantryDBItem> gantryDBItems = new List<GantryDBItem>();
            PropertyInfo[] propertyInfos = typeof(GantryDBItem).GetProperties();
            var groups = client.itemGroups.Where(x => x.opratortype == "Gantry").OrderBy(x => x.Methods).ThenBy(x => x.name).GroupBy(x => x.Methods).ToList();
            foreach (var key in groups)
            {
                GantryDBItem StackerDBItem = new GantryDBItem();
                foreach (var propertyInfo in propertyInfos)
                {
                    if (propertyInfo.Name == "Name")
                    {
                        StackerDBItem.Name = key.Key;
                    }
                    else
                    {
                        DBItemGroup group = key.FirstOrDefault(x => x.name == propertyInfo.Name);
                        if (group != null)
                        {
                            var readData = DBExtension.Read(group, client);
                            switch (propertyInfo.Name)
                            {
                                case "power_on":
                                    StackerDBItem.power_on = Convert.ToBoolean(readData);
                                    break;
                                case "ready_for_operate":
                                    StackerDBItem.ready_for_operate = Convert.ToBoolean(readData);
                                    break;
                                case "ready_for_auto_start":
                                    StackerDBItem.ready_for_auto_start = Convert.ToBoolean(readData);
                                    break;
                                case "state_JOG":
                                    StackerDBItem.state_JOG = Convert.ToBoolean(readData);
                                    break;
                                case "state_MDA":
                                    StackerDBItem.state_MDA = Convert.ToBoolean(readData);
                                    break;
                                case "state_AUTO":
                                    StackerDBItem.state_AUTO = Convert.ToBoolean(readData);
                                    break;
                                case "communication_IO":
                                    StackerDBItem.communication_IO = Convert.ToBoolean(readData);
                                    break;
                                case "drive_fault":
                                    StackerDBItem.drive_fault = Convert.ToBoolean(readData);
                                    break;
                                case "portal_fault":
                                    StackerDBItem.portal_fault = Convert.ToBoolean(readData);
                                    break;
                                case "emergency_stop_portal":
                                    StackerDBItem.emergency_stop_portal = Convert.ToBoolean(readData);
                                    break;
                                case "programm_running":
                                    StackerDBItem.programm_running = Convert.ToBoolean(readData);
                                    break;
                                case "gantry_state":
                                    StackerDBItem.gantry_state = Convert.ToInt16(readData);
                                    break;
                            }
                        }
                    }
                }
                gantryDBItems.Add(StackerDBItem);
            }
            return gantryDBItems;
        }
    }
}