From e8c9c9104d6cdc7ddf6584d8f2016a961d5afe3c Mon Sep 17 00:00:00 2001 From: Lucio Maranta Date: Thu, 26 Jul 2018 13:25:12 +0200 Subject: [PATCH] WIP Check right&left before loading a tool --- Libs/CMS_CORE_Library.dll | Bin 9054208 -> 9054208 bytes Step.Core/ThreadsHandler.cs | 2 +- .../Controllers/NcToolManagerController.cs | 28 ++++++ .../DTOModels/ToolModels/DTONcToolModel.cs | 7 +- Step.NC/NcHandler.cs | 89 +++++++++++++----- .../WebApi/NcToolManagerController.cs | 42 ++++++--- Step/program.cs | 37 ++++---- 7 files changed, 150 insertions(+), 55 deletions(-) diff --git a/Libs/CMS_CORE_Library.dll b/Libs/CMS_CORE_Library.dll index d3ca44fd0411f218404144d1d3c4158c496dcb4e..606bfcbaeb69d5281740c2a9c80616202f777891 100644 GIT binary patch delta 122954 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 delta 122944 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 RunningThreadsList = new List(); diff --git a/Step.Database/Controllers/NcToolManagerController.cs b/Step.Database/Controllers/NcToolManagerController.cs index 6124e0ce..ca2dee1e 100644 --- a/Step.Database/Controllers/NcToolManagerController.cs +++ b/Step.Database/Controllers/NcToolManagerController.cs @@ -77,6 +77,15 @@ namespace Step.Database.Controllers return tools; } + public List FindToolsByShankIdWithDependencies(int shankId) + { + List tools = FindToolsWithDependencies() + .Where(x => x.ShankId == shankId) + .ToList(); + + return tools; + } + public List FindTools() { List tools = dbCtx @@ -105,6 +114,16 @@ namespace Step.Database.Controllers return shanks; } + public DbNcShankModel FindShanksByPositions(int magazineId, int positionId) + { + DbNcShankModel shank = FindShanks() + .Where(x => x.MagazineId == magazineId && x.PositionId == positionId) + .FirstOrDefault(); + + return shank; + } + + public List GetShanks() { // Get shank from database @@ -200,6 +219,15 @@ namespace Step.Database.Controllers return dtoShanks; } + public List GetMountedTools() + { + List tools = FindToolsWithDependencies() + .Where(x => x.Shank.MagazineId != null) + .ToList(); + + return tools; + } + public List GetAvailableShanks() { List dtoShanks = GetShanks() diff --git a/Step.Model/DTOModels/ToolModels/DTONcToolModel.cs b/Step.Model/DTOModels/ToolModels/DTONcToolModel.cs index 11bd7a73..c9183093 100644 --- a/Step.Model/DTOModels/ToolModels/DTONcToolModel.cs +++ b/Step.Model/DTOModels/ToolModels/DTONcToolModel.cs @@ -21,14 +21,19 @@ namespace Step.Model.DTOModels.ToolModels // Foreign keys public int FamilyId { get; set; } + [Required] public bool Disabled { get; set; } - + + [Required] public bool Broken { get; set; } + [Required] public bool Measured { get; set; } + [Required] public bool ClockwiseRotation { get; set; } + [Required] public bool CounterClockwiseRotation { get; set; } public int? ShankId { get; set; } diff --git a/Step.NC/NcHandler.cs b/Step.NC/NcHandler.cs index 845b6e38..6924aa89 100644 --- a/Step.NC/NcHandler.cs +++ b/Step.NC/NcHandler.cs @@ -1347,26 +1347,26 @@ namespace Step.NC } - public DTONcMagazinePositionModel LoadToolInMagazine(byte magazineId, byte positionId, DbNcShankModel shank) - { - using (NcToolManagerController toolsManager = new NcToolManagerController()) - { - // Update shank data - DTONcMagazinePositionModel magPos = (DTONcMagazinePositionModel)toolsManager.LoadShankInMagazine(magazineId, positionId, shank); - // Set magazineId - magPos.ShankId = shank.ShankId; + //public DTONcMagazinePositionModel LoadToolInMagazine(byte magazineId, byte positionId, DbNcShankModel shank) + //{ + // using (NcToolManagerController toolsManager = new NcToolManagerController()) + // { + // // Update shank data + // DTONcMagazinePositionModel magPos = (DTONcMagazinePositionModel)toolsManager.LoadShankInMagazine(magazineId, positionId, shank); + // // Set magazineId + // magPos.ShankId = shank.ShankId; - return magPos; - } - } + // return magPos; + // } + //} - public DTONcShankModel UnloadToolInMagazine(byte magazineId, byte positionId, DbNcShankModel shank) - { - using (NcToolManagerController toolsManager = new NcToolManagerController()) - { - return toolsManager.UnloadShankInMagazine(magazineId, positionId, shank); - } - } + //public DTONcShankModel UnloadToolInMagazine(byte magazineId, byte positionId, DbNcShankModel shank) + //{ + // using (NcToolManagerController toolsManager = new NcToolManagerController()) + // { + // return toolsManager.UnloadShankInMagazine(magazineId, positionId, shank); + // } + //} public DTONcShankModel LoadIntoShank(DbNcToolModel tool, int shankId) { @@ -1402,19 +1402,17 @@ namespace Step.NC List dbPositions = toolsManager.FindMagazinePositions(); if (dbPositions.Count <= 0) { - List config = new List(); - // Read configuration - CmsError cmsError = numericalControl.TOOLS_RMagazineConfig(ref config); + CmsError cmsError = GetMagazineConfiguration(out List config); if (cmsError.IsError()) return cmsError; - // Setup new positions list + // Setup new positions list in order to be saved in the database List fromConfigPosition = new List(); foreach (var conf in config) { for (byte i = 1; i <= conf.MaxPositions; i++) { - // Create new positions + // Create new position fromConfigPosition.Add(new DbNcMagazinePositionModel() { MagazineId = conf.Id, @@ -1435,6 +1433,13 @@ namespace Step.NC } } + public CmsError GetMagazineConfiguration(out List config) + { + config = new List(); + // Read configuration + return numericalControl.TOOLS_RMagazineConfig(ref config); + } + public CmsError StartEditData() { return numericalControl.TOOLS_WStartEditData(); @@ -1506,6 +1511,44 @@ namespace Step.NC return numericalControl.TOOLS_RUpdatedToolsData(ref updatedStatus,ref updatedLives); } + public CmsError CheckIfShankCanFit(int magazineId, int positionId, DbNcShankModel shankToBeLoaded, List magazineMountedTools, NcMagazineConfigModel magConfig) + { + // Check if tool can fit in the position considering other tools + foreach (var mountedTool in magazineMountedTools) + { + // Check if is not the same position && if is different check if the position is on the same magazine + if (mountedTool.Shank.PositionId != positionId && mountedTool.Shank.MagazineId == magazineId) + { + int decPosition, incPosition; + decPosition = incPosition = mountedTool.Shank.PositionId.Value; + // if it is a circular magazine move position before ( for left case ) or after ( right case ) the location you want to mount the tool + if (magConfig.Type != MAGAZINE_TYPE.BOX_MAGAZINE) + { + decPosition = decPosition < shankToBeLoaded.PositionId ? decPosition + magConfig.MaxPositions : decPosition; + incPosition = incPosition > shankToBeLoaded.PositionId ? incPosition - magConfig.MaxPositions : incPosition; + } + + // Right check + // Calculate left space occupied (with mounted shank) + double leftMounted = decPosition - (mountedTool.Family.LeftSize / 2.0); + // Calculate right space needed (with shank to be loaded) + double rightToBeMount = positionId + (mountedTool.Family.RightSize / 2.0); + if (leftMounted < rightToBeMount) + return MAGAZINE_POSITION_OCCUPIED_ERROR; + + // Left check + // Calculate right space occupied (with mounted shank) + double rightMounted = incPosition + (mountedTool.Family.RightSize / 2.0); + // Calculate left space needed (with shank to be loaded) + double leftToBeMounted = positionId - (mountedTool.Family.LeftSize / 2.0); + if (rightMounted > leftToBeMounted) + return MAGAZINE_POSITION_OCCUPIED_ERROR; + } + } + + return NO_ERROR; + } + #endregion Osai/Fanuc Tools #endregion Write data diff --git a/Step/Controllers/WebApi/NcToolManagerController.cs b/Step/Controllers/WebApi/NcToolManagerController.cs index 3c457522..c4ccdfa3 100644 --- a/Step/Controllers/WebApi/NcToolManagerController.cs +++ b/Step/Controllers/WebApi/NcToolManagerController.cs @@ -388,6 +388,7 @@ namespace Step.Controllers.WebApi // Check if shank exists shank = toolsManager.FindShank(shankId.ToolId); if (shank == null) + return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS); // Check if shank is already loaded somewhere if (shank.MagazineId != null) @@ -400,16 +401,37 @@ namespace Step.Controllers.WebApi // Check if the mag pos is disabled if(magPos.Disabled == true) return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS); - } - using (NcHandler ncHandler = new NcHandler()) - { - ncHandler.Connect(); - DTONcMagazinePositionModel magazinePos = ncHandler.LoadToolInMagazine(magazineId, positionId, shank); + using (NcHandler ncHandler = new NcHandler()) + { + // Get Configuration + ncHandler.Connect(); + CmsError cmsError = ncHandler.GetMagazineConfiguration(out List magConfig); + if (cmsError.IsError()) + return BadRequest(cmsError.localizationKey); + + // Check if shank can fit + cmsError = ncHandler.CheckIfShankCanFit( + magazineId, + positionId, + shank, + toolsManager.GetMountedTools(), // Get mounted tools + magConfig.Where(x => x.Id == magazineId).FirstOrDefault() // Get only current magazine config + ); + + if (cmsError.IsError()) + return BadRequest(cmsError.localizationKey); + } + + // Update shank data + DTONcMagazinePositionModel magazinePos = (DTONcMagazinePositionModel)toolsManager.LoadShankInMagazine(magazineId, positionId, shank); + // Set shankId + magazinePos.ShankId = shank.ShankId; return Ok(magazinePos); } + } [Route("magazine/{magazineId:int}/unload/position/{positionId:int}"), HttpPut] @@ -436,20 +458,18 @@ namespace Step.Controllers.WebApi // Check if the mag pos is disabled if (magPos.Disabled == true) return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS); + // Check if magazine position is occupied - DbNcShankModel shankMounted = toolsManager.FindShanks().Where(x => x.MagazineId == magazineId && x.PositionId == positionId).FirstOrDefault(); + DbNcShankModel shankMounted = toolsManager.FindShanksByPositions(magazineId, positionId); if (shankMounted != null) return BadRequest(API_ERROR_KEYS.MAGAZINE_POSITION_OCCUPIED); - } - using (NcHandler ncHandler = new NcHandler()) - { - ncHandler.Connect(); - DTONcShankModel responseShank = ncHandler.UnloadToolInMagazine(magazineId, positionId, shank); + DTONcShankModel responseShank = toolsManager.UnloadShankInMagazine(magazineId, positionId, shank); return Ok(responseShank); } } + [Route("shank/{shankId:int}/load/tool/{toolId:int}"), HttpPut] public IHttpActionResult LoadToolIntoShank(int shankId, int toolId) diff --git a/Step/program.cs b/Step/program.cs index 571fdbbf..bd2bf7a7 100644 --- a/Step/program.cs +++ b/Step/program.cs @@ -1,27 +1,26 @@ using Microsoft.Owin.Hosting; -using Step.UI; -using System.Threading; -using TeamDev.SDK.MVVM; using Step.Config; -using static Step.Config.ServerConfig; -using static Step.Utils.StepLogger; -using static Step.Model.Constants; -using Step.Database; using Step.Core; +using Step.Database; using Step.Listeners; -using System; +using Step.NC; +using Step.UI; using Step.Utils; -using System.Net.NetworkInformation; +using System; using System.Net; using System.Net.Sockets; -using Step.NC; +using System.Threading; +using TeamDev.SDK.MVVM; +using static Step.Config.ServerConfig; +using static Step.Model.Constants; +using static Step.Utils.StepLogger; namespace Step { public class Application { - public static readonly ManualResetEvent StopRequest = new ManualResetEvent(false); + //Set the Mutef of GUID private static Mutex CmsStepMutex = new Mutex(true, "{689e76ce-b845-49f0-919c-c26491079fca}"); @@ -30,7 +29,7 @@ namespace Step public static void Main() { LogInfo("Application started"); - + //Check if is already running an instance of this application if (!CmsStepMutex.WaitOne(TimeSpan.Zero, true)) ExceptionManager.Manage(ERROR_LEVEL.FATAL, "Only one istance of Step-Server can be executed!"); @@ -52,14 +51,14 @@ namespace Step }); // Setup Osai/fanuc toolManager - using(NcHandler handler = new NcHandler()) + using (NcHandler handler = new NcHandler()) { handler.Connect(); handler.SetupNcToolManager(); } // Start server services - if(!ValidateAddress(ServerStartupConfig.ServerAddress)) + if (!ValidateAddress(ServerStartupConfig.ServerAddress)) ExceptionManager.Manage(ERROR_LEVEL.FATAL, "IP Address not valid (must be one configured in Windows-OS)!"); StartOptions opt = new StartOptions(); @@ -71,7 +70,6 @@ namespace Step using (WebApp.Start(opt)) { - // Start Threads ThreadsHandler.Start(); // Start listeners @@ -79,7 +77,7 @@ namespace Step // Wait interrupt from client StopRequest.WaitOne(); - LogInfo("Application closed"); + LogInfo("Application closed"); } // Stop Threads ThreadsHandler.Close(); @@ -89,11 +87,12 @@ namespace Step ServerControlWindow.Stop(); } - private static bool ValidateAddress(String Addr) { + private static bool ValidateAddress(String Addr) + { //If is an asterisk is OK if (String.IsNullOrWhiteSpace(Addr) || Addr == "*") return true; - + //Find an IP Address foreach (IPAddress ipAddr in Array.FindAll(Dns.GetHostEntry(string.Empty).AddressList, a => a.AddressFamily == AddressFamily.InterNetwork)) { @@ -104,4 +103,4 @@ namespace Step return false; } } -} +} \ No newline at end of file