| | |
| | | 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 |
| | |
| | | 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(); |
| | |
| | | } |
| | | 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; |
| | | } |
| | | } |
| | | } |