void _machineEquipment_ProductionDataReadEvent(object sender, PLCEquipment.Model.PLCProductionDataArgs e) { //如果處于暫停狀態時,不響應此事件 if (this._isPause) { return; } //if (this._isPLCDisconnect) //{ // this.OnMachineConnectionStatus(CommonDefine.ConnectionStatus.Connecting); // this._isPLCDisconnect = false; //} if (this._isPLCMachineHalting != 0) { this.OnMachineProductionSignal(CustEnum.ProjectStatus.PROD_IN); this._isPLCMachineHalting = 0; this.FunctionEnableSetting(CustEnum.ProjectStatus.PROD_IN); } if (this.ProductionData != null && this.ProductionData.ShiftProjectData != null) { if (this.ProductionData.ShiftProjectData.PLCPrecedeQty <= 0) { this.ProductionData.ShiftProjectData.PLCPrecedeQty = e.ProductionQty; } this.ProductionData.ShiftProjectData.ProductionSpeed = (int)e.MachineSpeed; this.ProductionData.ShiftProjectData.MachineSpeed = (int)e.MachineSpeed; this._currentProductionSpeed = (int)e.MachineSpeed * 60; int increment = 0; int timeLag = 0; decimal speed = 0; increment = e.ProductionQty - this.ProductionData.ShiftProjectData.PLCPrecedeQty; if (this.ProductionData.ShiftProjectData.PLCPrecedeQtyDatetime != null) { timeLag = (int)(DateTime.Now - this.ProductionData.ShiftProjectData.PLCPrecedeQtyDatetime.Value).TotalSeconds; } if (timeLag > 0) { speed = increment / timeLag; } if (increment > 0 && speed < 6) { this.ProductionData.ShiftProjectData.spl_iPLCQTY += increment; } this.ProductionData.ShiftProjectData.PLCPrecedeQty = e.ProductionQty; this.ProductionData.ShiftProjectData.PLCPrecedeQtyDatetime = DateTime.Now; //if (this._sw != null) //{ // this._sw.WriteLine(e.ProductionQty.ToString().Trim() + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ---時間差:" + timeLag.ToString().Trim() + "---產量差:" + increment.ToString().Trim() + "--生產速度:" + speed.ToString().Trim())); //} } }
void _machineEquipment_ConnectStatusChangedEvent(object sender, PLCEquipment.Model.PLCConnectStatusArgs e) { if (e != null) { if (e.IsConnected) { this.OnMachineConnectionStatus(CommonDefine.ConnectionStatus.Connecting); } else { this.OnMachineConnectionStatus(CommonDefine.ConnectionStatus.Disconnect); } } }
void _machineEquipment_ExceptionThrownEvent(object sender, PLCEquipment.Model.PLCExceptionArgs e) { this._currentProductionSpeed = 0; //如果處于暫停狀態時,不響應此事件 if (this._isPause) { return; } if (!this._isPLCDisconnect) { this.OnMachineConnectionStatus(CommonDefine.ConnectionStatus.Disconnect); this._isPLCDisconnect = true; } this.MachineHaltInform();//停機通知 }
public async Task testAsync() { var plant = _plantService.Query(p => p.Ident == "SIAPM01").FirstOrDefault(); if (plant == null) { plant = new Plant() { Ident = "SIAPM01", Name = "Hybrid Pack plant 01", Deleted = false }; try { _plantService.Insert(plant); await _plantService.SaveChangesAsync(); } catch (Exception ex) { System.Console.WriteLine(ex.Message); } } var line1 = _lineService.Query(p => p.Ident == "ModuleLineHP1").FirstOrDefault(); if (line1 == null) { line1 = new Line() { Ident = "ModuleLineHP1", Name = "Hybrid Pack ModuleLine HP1", Deleted = false, PlantId = plant.Id }; try { _lineService.Insert(line1); await _lineService.SaveChangesAsync(); } catch (Exception ex) { System.Console.WriteLine(ex.Message); } } var sections = new List <Section>(); var section1 = _sectionService.Query(s => s.Ident == "S001").FirstOrDefault(); if (section1 == null) { section1 = new Section() { Ident = "S001", Name = "2D X-Ray", Status = LineStatus.Default, Index = 0, LineId = line1.Id }; sections.Add(section1); } var section2 = _sectionService.Query(s => s.Ident == "S003").FirstOrDefault(); if (section2 == null) { section2 = new Section() { Ident = "S003", Name = "Frame Mouting", Status = LineStatus.Default, Index = 1, LineId = line1.Id }; sections.Add(section2); } var section3 = _sectionService.Query(s => s.Ident == "S003").FirstOrDefault(); if (section3 == null) { section3 = new Section() { Ident = "S004", Name = "Final Test", Status = LineStatus.Default, Index = 2, LineId = line1.Id }; sections.Add(section3); } if (sections.Count > 0) { _sectionService.InsertRange(sections); await _sectionService.SaveChangesAsync(); } var processes = new List <Process>(); var process1 = _processService.Query(s => s.Ident == "SystemSodlering").FirstOrDefault(); if (process1 == null) { process1 = new Process() { Ident = "SystemSodlering", Name = "Manual Assembly", Status = LineStatus.Default, }; processes.Add(process1); } var process2 = _processService.Query(s => s.Ident == "Vadu").FirstOrDefault(); if (process2 == null) { process2 = new Process() { Ident = "Vadu", Name = "Vadu", Status = LineStatus.Default, }; processes.Add(process2); } var process3 = _processService.Query(s => s.Ident == "2DXRay").FirstOrDefault(); if (process3 == null) { process3 = new Process() { Ident = "2DXRay", Name = "2DXRay", Status = LineStatus.Default, }; processes.Add(process3); } var process4 = _processService.Query(s => s.Ident == "ZBV").FirstOrDefault(); if (process4 == null) { process4 = new Process() { Ident = "ZBV", Name = "ZBV", Status = LineStatus.Default, }; processes.Add(process4); } var process5 = _processService.Query(s => s.Ident == "WireBonding").FirstOrDefault(); if (process5 == null) { process5 = new Process() { Ident = "WireBonding", Name = "WireBonding", Status = LineStatus.Default, }; processes.Add(process5); } var process6 = _processService.Query(s => s.Ident == "VI01").FirstOrDefault(); if (process6 == null) { process6 = new Process() { Ident = "VI01", Name = "VI01", Status = LineStatus.Default, }; processes.Add(process6); } var process7 = _processService.Query(s => s.Ident == "Potting").FirstOrDefault(); if (process7 == null) { process7 = new Process() { Ident = "Potting", Name = "Potting", Status = LineStatus.Default, }; processes.Add(process7); } var process8 = _processService.Query(s => s.Ident == "FinalTest").FirstOrDefault(); if (process8 == null) { process8 = new Process() { Ident = "FinalTest", Name = "FinalTest", Status = LineStatus.Default, }; processes.Add(process8); } if (processes.Count > 0) { _processService.InsertRange(processes); await _processService.SaveChangesAsync(); } //var process1Section = new ProcessSection() //{ // SectionId = section1.Id, // ProcessId = process1.Id, // Index = 0 //}; //var process2Section = new ProcessSection() //{ // SectionId = section1.Id, // ProcessId = process2.Id, // Index = 1 //}; //var process3Section = new ProcessSection() //{ // SectionId = section1.Id, // ProcessId = process3.Id, // Index = 2 //}; //var process4Section = new ProcessSection() //{ // SectionId = section2.Id, // ProcessId = process4.Id, // Index = 0 //}; //var process5Section = new ProcessSection() //{ // SectionId = section2.Id, // ProcessId = process5.Id, // Index = 1 //}; //var process6Section = new ProcessSection() //{ // SectionId = section2.Id, // ProcessId = process6.Id, // Index = 2 //}; //var process7Section = new ProcessSection() //{ // SectionId = section2.Id, // ProcessId = process7.Id, // Index = 3 //}; //var process8Section = new ProcessSection() //{ // SectionId = section3.Id, // ProcessId = process8.Id, // Index = 0 //}; //var processSections = new List<ProcessSection>(); //processSections.Add(process1Section); //processSections.Add(process2Section); //processSections.Add(process3Section); //processSections.Add(process4Section); //processSections.Add(process5Section); //processSections.Add(process6Section); //processSections.Add(process7Section); //processSections.Add(process8Section); //_processSectionService.InsertRange(processSections); //await _processSectionService.SaveChangesAsync(); var equip1 = new Equipment() { Ident = "Sodlering", Name = "Sodlering", Type = EquipType.Dummy, Index = 0, ProcessId = process1.Id }; var equip2 = new SCESEquipment() { Ident = "Vadu", Name = "Vadu", Type = EquipType.SECSGEM, Index = 0, ProcessId = process2.Id }; var equip3 = new SCESEquipment() { Ident = "2DXRay", Name = "2DXRay", Index = 0, Status = LineStatus.Default, Type = EquipType.SECSGEM, ProcessId = process3.Id }; var equip4 = new SCESEquipment() { Ident = "ZBV", Name = "ZBV", Index = 0, Status = LineStatus.Default, Type = EquipType.SECSGEM, ProcessId = process4.Id }; var equip5 = new Equipment() { Ident = "WireBonding", Name = "WireBonding", Index = 0, Status = LineStatus.Default, Type = EquipType.Dummy, ProcessId = process5.Id }; var equip6 = new Equipment() { Ident = "VI01", Name = "VI01", Index = 0, Status = LineStatus.Default, Type = EquipType.Dummy, ProcessId = process6.Id }; var equip7 = new PLCEquipment() { Ident = "Potting", Name = "Potting", Index = 0, Status = LineStatus.Default, Type = EquipType.PLC, ProcessId = process7.Id }; var equip8 = new Equipment() { Ident = "FlowerPower", Name = "FlowerPower", Index = 0, Status = LineStatus.Default, Type = EquipType.Dummy, ProcessId = process8.Id }; var equipments = new List <Equipment>(); equipments.Add(equip1); equipments.Add(equip5); equipments.Add(equip6); equipments.Add(equip8); _equipmentService.InsertRange(equipments); await _equipmentService.SaveChangesAsync(); var sCESEquipments = new List <SCESEquipment>(); sCESEquipments.Add(equip2); sCESEquipments.Add(equip3); sCESEquipments.Add(equip4); _sCESEquipmentService.InsertRange(sCESEquipments); await _sCESEquipmentService.SaveChangesAsync(); var pLCEquipments = new List <PLCEquipment>(); pLCEquipments.Add(equip7); _pLCEquipmentService.InsertRange(pLCEquipments); await _pLCEquipmentService.SaveChangesAsync(); //var line2 = _lineService.Find("ModuleLineHP2"); //if (line2 == null) //{ // line2 = new Line() // { // Ident = "ModuleLineHP2", // Name = "Hybrid Pack ModuleLine HP2", // Deleted = false // }; // try // { // _lineService.Insert(line2); // } // catch (Exception ex) // { // System.Console.WriteLine(ex.Message); // } //} //var section4 = new Section() //{ // Ident = "S002", // Name = "3D X-Ray", // Status = LineStatus.Default, // Index = 0, // LineId = line2.Id //}; //_sectionService.Insert(section4); //_plantSvc.Insert(plant); //_unitOfwork.SaveChanges(); }