| | |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using OfficeOpenXml.Drawing.Chart; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using WIDESEA_Comm; |
| | |
| | | public class ReadplcController : Controller |
| | | { |
| | | #region PCSå¹³é¢å¾ |
| | | public class SectionData //æ»åæ° |
| | | public class SectionData //éæåæ° |
| | | { |
| | | public int r_direction { get; set; } |
| | | public bool r_machine_nr { get; set; } |
| | |
| | | public string r_wheel_SN { get; set; } |
| | | public int r_wheel_type { get; set; } |
| | | public string stackerNo { get; set; } |
| | | public string Name { get; set; } |
| | | public int vk_state { get; set; } |
| | | } |
| | | |
| | | #region è¾é1 |
| | |
| | | { |
| | | var DBIems = WheelDBItem.VK4WheelDBItem; //è·åè¾éï¼è¾éçº¿ä¿¡æ¯ |
| | | var DBIems2 = VKDBItem.VK4DBItem; //VK4ç¶æä¿¡æ¯å¯¹è±¡éå |
| | | var DBIems3 = GantryDBItem.VK4GantryDBItem.Where(x => x.Name == "Gantry1").FirstOrDefault(); // VK4æ¡æ¶æºæ¢°æå¯¹è±¡éå |
| | | // VK4æ¡æ¶æºæ¢°æå¯¹è±¡éå |
| | | |
| | | if (DBIems.Count == 0) |
| | | { |
| | | List<SectionData> DBIemss = new List<SectionData>(); |
| | | for (int i = 0; i < 32; i++) |
| | | { |
| | | var seDataList = new SectionData |
| | | { |
| | | r_direction = 0, |
| | | r_machine_nr = false, |
| | | r_part_process = 1, |
| | | r_part_status = 0, |
| | | r_wheel_SN = "", |
| | | r_wheel_type = 3, |
| | | stackerNo = "4." + i.ToString(), |
| | | }; |
| | | switch (i) |
| | | { |
| | | case 27: |
| | | seDataList.stackerNo = "æºæ¢°æ1"; |
| | | break; |
| | | case 28: |
| | | seDataList.stackerNo = "10.11"; |
| | | break; |
| | | case 29: |
| | | seDataList.stackerNo = "10.12"; |
| | | break; |
| | | case 30: |
| | | seDataList.stackerNo = "10.5"; |
| | | break; |
| | | case 31: |
| | | seDataList.stackerNo = "10.6"; |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | DBIemss.Add(seDataList); |
| | | } |
| | | |
| | | |
| | | |
| | | List<WheelDBItem> convertedList = DBIemss.Select(sd => new WheelDBItem |
| | | { |
| | | StackerNo = sd.stackerNo, |
| | | }).ToList(); |
| | | |
| | | DBIems = convertedList; |
| | | } |
| | | |
| | | |
| | | var Section_one = DBIems.Where(x => IsInRange(x.StackerNo, 4, 13, 4, 24)).ToList(); |
| | | var Section_two = DBIems.Where(x => IsInRange(x.StackerNo, 4, 11, 4, 12)).ToList(); |
| | | var Section_three = DBIems.Where(x => IsInRange(x.StackerNo, 4, 9, 4, 10)).ToList(); |
| | | var Section_four = DBIems.Where(x => IsInRange(x.StackerNo, 4, 1, 4, 8)).ToList(); |
| | | |
| | | |
| | | var Section_six = DBIems.Where(x => IsInRange(x.StackerNo, 10, 1, 10, 2)).ToList(); //10.1-10.2 |
| | | var Section_seven = DBIems.Where(x => IsInRange(x.StackerNo, 10, 3, 10, 4)).ToList(); //10.3-10.4 |
| | | var Section_eight = DBIems.Where(x => IsInRange(x.StackerNo, 10, 7, 10, 8)).ToList(); //10.7-10.8 |
| | |
| | | |
| | | |
| | | |
| | | |
| | | #region |
| | | |
| | | //var Section_five = DBIems.Where(x => IsInRange(x.StackerNo, 10, 5, 10, 6) || IsInRange(x.StackerNo, 10, 11, 10, 12)).ToList(); |
| | | |
| | | var Section_five = DBIems |
| | | .Where(x => IsInRange(x.StackerNo, 10, 5, 10, 6) || IsInRange(x.StackerNo, 10, 11, 10, 12)) |
| | | .Select(x => CreateSectionFiveItem(x)) |
| | | .ToList(); |
| | | #endregion |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | //èæºæ¢°æ |
| | | var Section_ten = DBIems.Where(x => x.StackerNo == "æºæ¢°æ1") |
| | | .Select(x => new |
| | | { |
| | | stackerNo = x.StackerNo, |
| | | r_wheel_SN = x.R_wheel_SN, |
| | | r_wheel_type = x.R_wheel_type, |
| | | r_part_status = x.R_part_status, |
| | | r_part_process = x.R_part_process, |
| | | g_name = DBIems3.Name, |
| | | g_communication_IO = DBIems3.communication_IO, |
| | | g_drive_fault = DBIems3.drive_fault, |
| | | g_emergency_stop_portal = DBIems3.emergency_stop_portal, |
| | | g_gantry_state = DBIems3.gantry_state, |
| | | g_portal_fault = DBIems3.portal_fault, |
| | | g_power_on = DBIems3.power_on, |
| | | g_programm_running = DBIems3.programm_running, |
| | | g_ready_for_auto_start = DBIems3.ready_for_auto_start, |
| | | g_ready_for_operate = DBIems3.ready_for_operate, |
| | | g_state_AUTO = DBIems3.state_AUTO, |
| | | g_state_JOG = DBIems3.state_JOG, |
| | | g_state_MDA = DBIems3.state_MDA, |
| | | |
| | | }) |
| | | .Select(x => CreateSectionFiveItem4(x, 1)) |
| | | .ToList(); |
| | | |
| | | |
| | |
| | | r_wheel_type = x.R_wheel_type, |
| | | r_part_status = x.R_part_status, |
| | | r_part_process = x.R_part_process, |
| | | |
| | | |
| | | |
| | | }) |
| | | .ToList(); |
| | | |
| | |
| | | var Section_thirteen = DBIems.Where(x => x.StackerNo == "4.11").ToList(); //è§è§æ£æµå° |
| | | var Section_fourteen = DBIems.Where(x => x.StackerNo == "4.12").ToList(); //è§è§æ£æµå° |
| | | |
| | | |
| | | var Section_fifteen = DBIems2.ToList(); |
| | | if (DBIems2.Count == 0) |
| | | { |
| | | List<SectionData> sectDataList1 = new List<SectionData>(); |
| | | var seDataList1 = new SectionData |
| | | { |
| | | Name = "VK4", |
| | | vk_state = 0, |
| | | |
| | | }; |
| | | sectDataList1.Add(seDataList1); |
| | | List<VKDBItem> convertedList = sectDataList1.Select(sd => new VKDBItem |
| | | { |
| | | Name = sd.Name, |
| | | }).ToList(); |
| | | Section_fifteen = convertedList; |
| | | } |
| | | |
| | | var data = new |
| | | { |
| | |
| | | return Ok(data); |
| | | } |
| | | |
| | | private object CreateSectionFiveItem(WheelDBItem x) |
| | | private object CreateSectionFiveItem(WheelDBItem x) //è½¦åºæ°æ® |
| | | { |
| | | var stackerToMachineMap = new Dictionary<string, string> |
| | | { |
| | |
| | | { |
| | | return new |
| | | { |
| | | StackerNo = (string)null, |
| | | |
| | | stackerNo = x.StackerNo, |
| | | r_wheel_SN = x.R_wheel_SN, |
| | | r_wheel_type = x.R_wheel_type, |
| | | r_part_status = x.R_part_status, |
| | | r_part_process = x.R_part_process, |
| | | c_machine_state = 0, |
| | | }; |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | [HttpGet("Four_unit_plc")] |
| | | public IActionResult Four_unit_plc(string staname) |
| | |
| | | } |
| | | #endregion |
| | | |
| | | #region å
±ç¨æ¹æ³ï¼è¾é1-2ï¼ |
| | | private object CreateSectionFiveItem4(WheelDBItem x, int k) //æºæ¢°ææ°æ® |
| | | { |
| | | var DBIems3 = GantryDBItem.VK4GantryDBItem.Where(x => x.Name == "Gantry1").FirstOrDefault(); |
| | | if (k == 2) |
| | | { |
| | | DBIems3 = GantryDBItem.VK4GantryDBItem.Where(x => x.Name == "Gantry2").FirstOrDefault(); |
| | | } |
| | | if (DBIems3 == null) |
| | | { |
| | | return new |
| | | { |
| | | stackerNo = x.StackerNo, |
| | | r_wheel_SN = x.R_wheel_SN, |
| | | r_wheel_type = x.R_wheel_type, |
| | | r_part_status = x.R_part_status, |
| | | r_part_process = x.R_part_process, |
| | | g_name = false, |
| | | g_communication_IO = false, |
| | | g_drive_fault = false, |
| | | g_emergency_stop_portal = false, |
| | | g_gantry_state = false, |
| | | g_portal_fault = false, |
| | | g_power_on = false, |
| | | g_programm_running = false, |
| | | g_ready_for_auto_start = false, |
| | | g_ready_for_operate = false, |
| | | g_state_AUTO = false, |
| | | g_state_JOG = false, |
| | | g_state_MDA = false, |
| | | |
| | | }; |
| | | } |
| | | else |
| | | { |
| | | return new |
| | | { |
| | | stackerNo = x.StackerNo, |
| | | r_wheel_SN = x.R_wheel_SN, |
| | | r_wheel_type = x.R_wheel_type, |
| | | r_part_status = x.R_part_status, |
| | | r_part_process = x.R_part_process, |
| | | g_name = DBIems3.Name, |
| | | g_communication_IO = DBIems3.communication_IO, |
| | | g_drive_fault = DBIems3.drive_fault, |
| | | g_emergency_stop_portal = DBIems3.emergency_stop_portal, |
| | | g_gantry_state = DBIems3.gantry_state, |
| | | g_portal_fault = DBIems3.portal_fault, |
| | | g_power_on = DBIems3.power_on, |
| | | g_programm_running = DBIems3.programm_running, |
| | | g_ready_for_auto_start = DBIems3.ready_for_auto_start, |
| | | g_ready_for_operate = DBIems3.ready_for_operate, |
| | | g_state_AUTO = DBIems3.state_AUTO, |
| | | g_state_JOG = DBIems3.state_JOG, |
| | | g_state_MDA = DBIems3.state_MDA, |
| | | |
| | | }; |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | #region è¾é2 |
| | | [HttpPost("Two_unit_plc")] |
| | | public IActionResult Two_unit_plc() |
| | | { |
| | | var DBIems = WheelDBItem.VK4WheelDBItem; |
| | | var DBIems3 = GantryDBItem.VK4GantryDBItem.Where(x => x.Name == "Gantry2").FirstOrDefault(); |
| | | if (DBIems.Count == 0) |
| | | { |
| | | List<SectionData> DBIemss = new List<SectionData>(); |
| | | for (int i = 0; i < 32; i++) |
| | | { |
| | | var seDataList = new SectionData |
| | | { |
| | | r_direction = 0, |
| | | r_machine_nr = false, |
| | | r_part_process = 1, |
| | | r_part_status = 0, |
| | | r_wheel_SN = "", |
| | | r_wheel_type = 3, |
| | | stackerNo = "5." + i.ToString(), |
| | | }; |
| | | switch (i) |
| | | { |
| | | case 27: |
| | | seDataList.stackerNo = "æºæ¢°æ2"; |
| | | break; |
| | | case 28: |
| | | seDataList.stackerNo = "20.11"; |
| | | break; |
| | | case 29: |
| | | seDataList.stackerNo = "20.12"; |
| | | break; |
| | | case 30: |
| | | seDataList.stackerNo = "20.5"; |
| | | break; |
| | | case 31: |
| | | seDataList.stackerNo = "20.6"; |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | DBIemss.Add(seDataList); |
| | | } |
| | | |
| | | |
| | | |
| | | List<WheelDBItem> convertedList = DBIemss.Select(sd => new WheelDBItem |
| | | { |
| | | StackerNo = sd.stackerNo, |
| | | }).ToList(); |
| | | |
| | | DBIems = convertedList; |
| | | } |
| | | |
| | | |
| | | List<SectionData> DataList2 = new List<SectionData>(); |
| | | var Section_one = DBIems.Where(x => IsInRange(x.StackerNo, 5, 13, 5, 24)).ToList(); |
| | |
| | | |
| | | //èæºæ¢°æï¼æºåºä½ï¼ |
| | | var Section_ten = DBIems.Where(x => x.StackerNo == "æºæ¢°æ2") |
| | | .Select(x => new |
| | | { |
| | | stackerNo = x.StackerNo, |
| | | r_wheel_SN = x.R_wheel_SN, |
| | | r_wheel_type = x.R_wheel_type, |
| | | r_part_status = x.R_part_status, |
| | | r_part_process = x.R_part_process, |
| | | g_name = DBIems3.Name, |
| | | g_communication_IO = DBIems3.communication_IO, |
| | | g_drive_fault = DBIems3.drive_fault, |
| | | g_emergency_stop_portal = DBIems3.emergency_stop_portal, |
| | | g_gantry_state = DBIems3.gantry_state, |
| | | g_portal_fault = DBIems3.portal_fault, |
| | | g_power_on = DBIems3.power_on, |
| | | g_programm_running = DBIems3.programm_running, |
| | | g_ready_for_auto_start = DBIems3.ready_for_auto_start, |
| | | g_ready_for_operate = DBIems3.ready_for_operate, |
| | | g_state_AUTO = DBIems3.state_AUTO, |
| | | g_state_JOG = DBIems3.state_JOG, |
| | | g_state_MDA = DBIems3.state_MDA, |
| | | |
| | | }) |
| | | .Select(x => CreateSectionFiveItem4(x, 2)) |
| | | .ToList(); |
| | | |
| | | |
| | |
| | | { |
| | | return new |
| | | { |
| | | StackerNo = (string)null, |
| | | stackerNo = x.StackerNo, |
| | | r_wheel_SN = x.R_wheel_SN, |
| | | r_wheel_type = x.R_wheel_type, |
| | | r_part_status = x.R_part_status, |
| | | r_part_process = x.R_part_process, |
| | | c_machine_state = 0, |
| | | |
| | | }; |
| | | } |
| | |
| | | |
| | | var DBIems = WheelDBItem.VK5WheelDBItem; |
| | | var DBIems2 = VKDBItem.VK5DBItem; //VK4ç¶æä¿¡æ¯å¯¹è±¡éå |
| | | var DBIems3 = GantryDBItem.VK5GantryDBItem.Where(x => x.Name == "Gantry3").FirstOrDefault(); |
| | | |
| | | |
| | | if (DBIems.Count == 0) |
| | | { |
| | | List<SectionData> DBIemss = new List<SectionData>(); |
| | | for (int i = 0; i < 31; i++) |
| | | { |
| | | var seDataList = new SectionData |
| | | { |
| | | r_direction = 0, |
| | | r_machine_nr = false, |
| | | r_part_process = 0, |
| | | r_part_status = 0, |
| | | r_wheel_SN = "", |
| | | r_wheel_type = 0, |
| | | stackerNo = "6." + i.ToString(), |
| | | }; |
| | | switch (i) |
| | | { |
| | | case 25: |
| | | seDataList.stackerNo = "7.21"; |
| | | break; |
| | | case 26: |
| | | seDataList.stackerNo = "30.9"; |
| | | break; |
| | | case 27: |
| | | seDataList.stackerNo = "30.10"; |
| | | break; |
| | | case 28: |
| | | seDataList.stackerNo = "30.4"; |
| | | break; |
| | | case 29: |
| | | seDataList.stackerNo = "30.5"; |
| | | break; |
| | | case 30: |
| | | seDataList.stackerNo = "æºæ¢°æ3"; |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | DBIemss.Add(seDataList); |
| | | } |
| | | |
| | | |
| | | |
| | | List<WheelDBItem> convertedList = DBIemss.Select(sd => new WheelDBItem |
| | | { |
| | | StackerNo = sd.stackerNo, |
| | | }).ToList(); |
| | | |
| | | DBIems = convertedList; |
| | | } |
| | | |
| | | var Section_one = DBIems.Where(x => IsInRange(x.StackerNo, 6, 13, 6, 20) || x.StackerNo == "6.24" || x.StackerNo == "7.21").ToList(); |
| | | var Section_two = DBIems.Where(x => IsInRange(x.StackerNo, 6, 11, 6, 12)).ToList(); |
| | | var Section_three = DBIems.Where(x => IsInRange(x.StackerNo, 6, 9, 6, 10)).ToList(); |
| | |
| | | |
| | | //èæºæ¢°æï¼æºåºä½ï¼ |
| | | var Section_ten = DBIems.Where(x => x.StackerNo == "æºæ¢°æ3") |
| | | .Select(x => new |
| | | { |
| | | stackerNo = x.StackerNo, |
| | | r_wheel_SN = x.R_wheel_SN, |
| | | r_wheel_type = x.R_wheel_type, |
| | | r_part_status = x.R_part_status, |
| | | r_part_process = x.R_part_process, |
| | | g_name = DBIems3.Name, |
| | | g_communication_IO = DBIems3.communication_IO, |
| | | g_drive_fault = DBIems3.drive_fault, |
| | | g_emergency_stop_portal = DBIems3.emergency_stop_portal, |
| | | g_gantry_state = DBIems3.gantry_state, |
| | | g_portal_fault = DBIems3.portal_fault, |
| | | g_power_on = DBIems3.power_on, |
| | | g_programm_running = DBIems3.programm_running, |
| | | g_ready_for_auto_start = DBIems3.ready_for_auto_start, |
| | | g_ready_for_operate = DBIems3.ready_for_operate, |
| | | g_state_AUTO = DBIems3.state_AUTO, |
| | | g_state_JOG = DBIems3.state_JOG, |
| | | g_state_MDA = DBIems3.state_MDA, |
| | | |
| | | }) |
| | | .Select(x => CreateSectionFiveItem4(x)) |
| | | .ToList(); |
| | | var Section_twelve = DBIems.Where(x => x.StackerNo == "æºæ¢°æ3").ToList(); //æ°æºæ¢°æï¼ä¸æå£ä½ï¼ |
| | | |
| | |
| | | var Section_eleven = sectDataList7.ToList(); //æ¶æ²¹æº |
| | | |
| | | var Section_fifteen = DBIems2.ToList(); |
| | | if (DBIems2.Count == 0) |
| | | { |
| | | List<SectionData> sectDataList1 = new List<SectionData>(); |
| | | var seDataList1 = new SectionData |
| | | { |
| | | Name = "VK5", |
| | | vk_state = 0, |
| | | |
| | | }; |
| | | sectDataList1.Add(seDataList1); |
| | | List<VKDBItem> convertedList = sectDataList1.Select(sd => new VKDBItem |
| | | { |
| | | Name = sd.Name, |
| | | }).ToList(); |
| | | Section_fifteen = convertedList; |
| | | } |
| | | |
| | | var data = new |
| | | { |
| | |
| | | { |
| | | return new |
| | | { |
| | | StackerNo = (string)null, |
| | | stackerNo = x.StackerNo, |
| | | r_wheel_SN = x.R_wheel_SN, |
| | | r_wheel_type = x.R_wheel_type, |
| | | r_part_status = x.R_part_status, |
| | | r_part_process = x.R_part_process, |
| | | c_machine_state = 0 |
| | | |
| | | }; |
| | | } |
| | | } |
| | | private object CreateSectionFiveItem4(WheelDBItem x) //æºæ¢°ææ°æ® |
| | | { |
| | | var DBIems3 = GantryDBItem.VK5GantryDBItem.Where(x => x.Name == "Gantry3").FirstOrDefault(); |
| | | if (DBIems3 == null) |
| | | { |
| | | return new |
| | | { |
| | | stackerNo = x.StackerNo, |
| | | r_wheel_SN = x.R_wheel_SN, |
| | | r_wheel_type = x.R_wheel_type, |
| | | r_part_status = x.R_part_status, |
| | | r_part_process = x.R_part_process, |
| | | g_name = false, |
| | | g_communication_IO = false, |
| | | g_drive_fault = false, |
| | | g_emergency_stop_portal = false, |
| | | g_gantry_state = false, |
| | | g_portal_fault = false, |
| | | g_power_on = false, |
| | | g_programm_running = false, |
| | | g_ready_for_auto_start = false, |
| | | g_ready_for_operate = false, |
| | | g_state_AUTO = false, |
| | | g_state_JOG = false, |
| | | g_state_MDA = false, |
| | | |
| | | }; |
| | | } |
| | | else |
| | | { |
| | | return new |
| | | { |
| | | stackerNo = x.StackerNo, |
| | | r_wheel_SN = x.R_wheel_SN, |
| | | r_wheel_type = x.R_wheel_type, |
| | | r_part_status = x.R_part_status, |
| | | r_part_process = x.R_part_process, |
| | | g_name = DBIems3.Name, |
| | | g_communication_IO = DBIems3.communication_IO, |
| | | g_drive_fault = DBIems3.drive_fault, |
| | | g_emergency_stop_portal = DBIems3.emergency_stop_portal, |
| | | g_gantry_state = DBIems3.gantry_state, |
| | | g_portal_fault = DBIems3.portal_fault, |
| | | g_power_on = DBIems3.power_on, |
| | | g_programm_running = DBIems3.programm_running, |
| | | g_ready_for_auto_start = DBIems3.ready_for_auto_start, |
| | | g_ready_for_operate = DBIems3.ready_for_operate, |
| | | g_state_AUTO = DBIems3.state_AUTO, |
| | | g_state_JOG = DBIems3.state_JOG, |
| | | g_state_MDA = DBIems3.state_MDA, |
| | | |
| | | }; |
| | | } |
| | | } |
| | | |
| | | |
| | | [HttpGet("Four_unit_plc3")] |
| | | public IActionResult Four_unit_plc3(string staname) |
| | |
| | | |
| | | return Ok(data); |
| | | } |
| | | |
| | | |
| | | |
| | | #endregion |
| | | |
| | | |
| | |
| | | Idt_mes_headRepository db = new dt_mes_headRepository(volContext); |
| | | Idt_mes_detailRepository dbs = new dt_mes_detailRepository(volContext); |
| | | var data = db.Find(_ => true).Where(x => x.processCode == "28").OrderByDescending(x => x.CreateTime).Take(10).ToList(); |
| | | var dataList = data.Select(x => new { |
| | | var dataList = data.Select(x => new |
| | | { |
| | | jobID = x.jobID, |
| | | drawingNo = x.drawingNo, |
| | | quantity = x.quantity, |