diff --git a/Libs/CMS_CORE_Library.dll b/Libs/CMS_CORE_Library.dll index 2a57a932..c9cfeedc 100644 Binary files a/Libs/CMS_CORE_Library.dll and b/Libs/CMS_CORE_Library.dll differ diff --git a/Step.Database/Controllers/NcToolManagerController.cs b/Step.Database/Controllers/NcToolManagerController.cs index b2d58559..43e116e6 100644 --- a/Step.Database/Controllers/NcToolManagerController.cs +++ b/Step.Database/Controllers/NcToolManagerController.cs @@ -594,6 +594,7 @@ namespace Step.Database.Controllers if (families.FirstOrDefault(x => x.FamilyId == family.FamilyId) == null) { dbCtx.Families.Add(family); + // Set status importStatus.Add(new DTOImportStatusModel() { Id = family.FamilyId, @@ -603,6 +604,7 @@ namespace Step.Database.Controllers } else { + // Set duplicated status importStatus.Add(new DTOImportStatusModel() { Id = family.FamilyId, @@ -669,5 +671,6 @@ namespace Step.Database.Controllers return importStatus; } + } } \ No newline at end of file diff --git a/Step.Model/Constants.cs b/Step.Model/Constants.cs index 03e7462c..915cf881 100644 --- a/Step.Model/Constants.cs +++ b/Step.Model/Constants.cs @@ -257,6 +257,7 @@ namespace Step.Model public const string ID_ALREADY_EXIST = "error_id_already_exist"; public const string PASSWORD_IS_INVALID = "error_password_is_invalid"; public const string IMPORT_FILE_NOT_VALID = "error_import_file_not_valid"; + public const string OPTION_NOT_CONSISTENT = "error_option_not_consistent"; } // File paths diff --git a/Step.Model/DTOModels/ToolModels/DTONcShankModel.cs b/Step.Model/DTOModels/ToolModels/DTONcShankModel.cs index 5e3c623e..43dad4a4 100644 --- a/Step.Model/DTOModels/ToolModels/DTONcShankModel.cs +++ b/Step.Model/DTOModels/ToolModels/DTONcShankModel.cs @@ -66,7 +66,7 @@ namespace Step.Model.DTOModels.ToolModels return new DTONcShankModel() { Id = obj.ShankId, - Balluf = (ushort)obj.Balluf, + Balluf = (ushort?)obj.Balluf, MagazinePositionType = obj.MagazinePositionType, MagazineId = obj.MagazineId, PositionId = obj.PositionId, diff --git a/Step.Model/DatabaseModels/NcFamilyModel.cs b/Step.Model/DatabaseModels/NcFamilyModel.cs index 6b50ceab..13a95049 100644 --- a/Step.Model/DatabaseModels/NcFamilyModel.cs +++ b/Step.Model/DatabaseModels/NcFamilyModel.cs @@ -97,5 +97,30 @@ namespace Step.Model.DatabaseModels ReviveDelta = (ushort)obj.ReviveDelta }; } + + public static explicit operator DbNcFamilyModel(NcFamilyModel obj) + { + return new DbNcFamilyModel() + { + FamilyId = (short)obj.FamilyId, + ToolType = obj.ToolType, + RightSize = obj.RightSize, + LeftSize = obj.LeftSize, + TcpTable = obj.TcpTable, + Gamma = obj.Gamma, + CoolingByte = obj.CoolingByte, + RotationType = obj.RotationType, + MaxLoad = obj.MaxLoad, + MaxSpeed = obj.MaxSpeed, + MinLoadPctAutoload = obj.MinLoadPctAutoload, + MaxLoadPctAutoload = obj.MaxLoadPctAutoload, + MinLoadDynamicCompensation = obj.MinLoadDynamicCompensation, + MaxLoadDynamicCompensation = obj.MaxLoadDynamicCompensation, + DynamicCompensation = (byte)obj.DynamicCompensation, + LifeType = obj.LifeType, + NominalLife = obj.NominalLife, + ReviveDelta = obj.ReviveDelta + }; + } } } \ No newline at end of file diff --git a/Step.Model/DatabaseModels/NcShankModel.cs b/Step.Model/DatabaseModels/NcShankModel.cs index efbc4534..d962a311 100644 --- a/Step.Model/DatabaseModels/NcShankModel.cs +++ b/Step.Model/DatabaseModels/NcShankModel.cs @@ -57,5 +57,19 @@ namespace Step.Model.DatabaseModels OriginPositionId = obj.OriginPositionId == null ? (ushort)0 : (ushort)obj.OriginPositionId.Value, }; } + + public static explicit operator DbNcShankModel(NcShankModel obj) + { + return new DbNcShankModel() + { + ShankId = (short)obj.ShankId, + Balluf = obj.Balluf == 0 ? null : (ushort?)obj.Balluf, + MagazineId = obj.MagazineId == 0 ? null : (byte?)obj.MagazineId, + PositionId = obj.PositionId == 0 ? null : (ushort?)obj.PositionId, + MagazinePositionType = obj.MagazinePositionType, + OriginMagazineId = obj.OriginMagazineId == 0 ? null : (byte?)obj.OriginMagazineId, + OriginPositionId = obj.OriginPositionId == 0 ? null : (ushort?)obj.OriginPositionId, + }; + } } } \ No newline at end of file diff --git a/Step.Model/DatabaseModels/NcToolModel.cs b/Step.Model/DatabaseModels/NcToolModel.cs index 8f0c496c..45034f91 100644 --- a/Step.Model/DatabaseModels/NcToolModel.cs +++ b/Step.Model/DatabaseModels/NcToolModel.cs @@ -70,5 +70,22 @@ namespace Step.Model.DatabaseModels OffsetId3 = (ushort)(obj.OffsetId3 == null ? 0 : obj.OffsetId3.Value) }; } + + public static explicit operator DbNcToolModel(NcToolModel obj) + { + return new DbNcToolModel() + { + ToolId = obj.ToolId, + FamilyId = obj.FamilyId, + OffsetLength = obj.OffsetLength, + ResidualLife = (ushort)obj.ResidualLife, + Status = obj.Status, + ResidualRevive = (ushort)obj.ResidualRevive, + ShankId = obj.ShankId == 0 ? null : (short?)obj.ShankId, + OffsetId1 = obj.OffsetId1 == 0 ? null : (short?)obj.OffsetId1, + OffsetId2 = obj.OffsetId2 == 0 ? null : (short?)obj.OffsetId2, + OffsetId3 = obj.OffsetId3 == 0 ? null : (short?)obj.OffsetId3 + }; + } } } \ No newline at end of file diff --git a/Step.NC/NcToolTableHandler.cs b/Step.NC/NcToolTableHandler.cs index 89dc7680..488fbf56 100644 --- a/Step.NC/NcToolTableHandler.cs +++ b/Step.NC/NcToolTableHandler.cs @@ -8,7 +8,8 @@ using System.Data.Entity; using System.Linq; using static CMS_CORE_Library.Models.DataStructures; using static Step.Config.ServerConfig; - +using static Step.Model.Constants; + namespace Step.NC { public class NcToolTableHandler : NcHandler @@ -120,7 +121,7 @@ namespace Step.NC // Populate updated tool with offset data cmsError = GetToolData(dbTool, ref toolWithOffsets); - if (cmsError.IsError()) + if (cmsError.IsError()) { dbContextTransaction.Rollback(); return cmsError; @@ -137,20 +138,20 @@ namespace Step.NC { startIsActive = true; // Create backup of data stored on the NC and block memory/files accesses - cmsError = numericalControl.TOOLS_WStartEditData(); + cmsError = numericalControl.TOOLS_WStartEditData(); if (cmsError.IsError()) { ManageErrorAndTransaction(cmsError, dbContextTransaction, startIsActive); return cmsError; - } - - // If family option is not active, update NC data - //if (!ToolManagerConfig.FamilyOpt) - //{ - // Update Nc families - cmsError = UpdateNcFamily(toolsManager); - if (cmsError.IsError()) - ManageErrorAndTransaction(cmsError, dbContextTransaction, true); + } + + // If family option is not active, update NC data + //if (!ToolManagerConfig.FamilyOpt) + //{ + // Update Nc families + cmsError = UpdateNcFamily(toolsManager); + if (cmsError.IsError()) + ManageErrorAndTransaction(cmsError, dbContextTransaction, true); //} // Update tool @@ -547,286 +548,339 @@ namespace Step.NC public CmsError SetupNcToolManager() { - CmsError cmsError = UpdateMagazinePositionConf(); + CmsError cmsError = UpdateMagazinePositionConf(out bool newDb); if (cmsError.IsError()) return cmsError; cmsError = WriteOption(); if (cmsError.IsError()) - return cmsError; - - return NO_ERROR; - } - - public CmsError UpdateMagazinePositionConf() - { - using (NcToolManagerController toolsManager = new NcToolManagerController()) - { - // Get database configured positions - List dbPositions = toolsManager.FindMagazinesPositions(); - if (dbPositions.Count <= 0) - { - CmsError cmsError = GetMagazineConfiguration(out List config); - if (cmsError.IsError()) - return cmsError; - - // 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 position - fromConfigPosition.Add(new DbNcMagazinePositionModel() - { - MagazineId = conf.Id, - PositionId = i, - Disabled = false, - Type = 0 - }); - } - } - - // Update database - toolsManager.SetupMagazinePositions(fromConfigPosition); - - return cmsError; - } - - return NO_ERROR; - } - } - - public CmsError WriteOption() - { - ToolManagerOptionsModel options = new ToolManagerOptionsModel(); - SupportFunctions.CopyProperties(ToolManagerConfig, options); - - return numericalControl.TOOLS_WOptions(options); - } - - public CmsError GetMagazineConfiguration(out List config) - { - config = new List(); - // Read configuration - return numericalControl.TOOLS_RMagazineConfig(ref config); - } - - public CmsError StartEditData() - { - return numericalControl.TOOLS_WStartEditData(); - } - - public CmsError StopEditData() - { - return numericalControl.TOOLS_WStopEditData(); - } - - public CmsError StartEditTooling(int magazineId) - { - return numericalControl.TOOLS_WStartEditTooling(magazineId); - } - - public CmsError StopEditTooling(int magazineId) - { - using (NcToolManagerController toolsManager = new NcToolManagerController()) - { - // Get mounted shanks - List shanks = toolsManager - .FindShanks() - .Where(x => x.MagazineId != null) - .Select(x => (NcShankModel)x) - .ToList(); - // Update shanks - CmsError cmsError = numericalControl.TOOLS_WUpdateShanks(shanks); - if (cmsError.IsError()) - return cmsError; - - // Get magazine positions - List positions = toolsManager.FindMagazinesPositions() - .Select(x => (NcMagazinePositionModel)x) - .ToList(); - // Update positions - cmsError = numericalControl.TOOLS_WUpdateMagazinePositions(positions); - if (cmsError.IsError()) - return cmsError; - - // Get tools - List tools = toolsManager - .FindTools() - .Select(x => (NcToolModel)x) - .Where(x => shanks.Any(y => y.ShankId == x.ShankId)) // Find only mounted tools - .ToList(); - - // Update tools - cmsError = numericalControl.TOOLS_WUpdateTools(tools); - if (cmsError.IsError()) - return cmsError; - - // Get families - List families = toolsManager - .FindFamilies() - .Select(x => (NcFamilyModel)x) - .Where(x => tools.Any(y => y.FamilyId == x.FamilyId)) // Find only families of mounted tools - .ToList(); - - // Update families - cmsError = numericalControl.TOOLS_WUpdateFamilies(families); - if (cmsError.IsError()) - return cmsError; - } - - return numericalControl.TOOLS_WStopEditTooling(magazineId); - } - - public CmsError GetUpdatedToolsData(out Dictionary updatedStatus, out Dictionary updatedLives) - { - updatedStatus = new Dictionary(); - updatedLives = new Dictionary(); - return numericalControl.TOOLS_RUpdatedToolsData(ref updatedStatus, ref updatedLives); - } - - public CmsError CheckIfShankCanFit(int magazineId, int positionId, DbNcShankModel shankToBeLoaded) - { - CmsError cmsError = GetMagazineConfiguration(out List magazinesConfig); - if (cmsError.IsError()) - return cmsError; - - NcMagazineConfigModel magConfig = magazinesConfig.FirstOrDefault(x => x.Id == magazineId);// Get only current magazine config - if (magConfig == null) - return INCORRECT_PARAMETERS_ERROR; - - using (NcToolManagerController toolsManager = new NcToolManagerController()) - { - List magazineMountedTools = toolsManager.GetMountedTools(); - - // Check if there is a tool already mounted in magazineId and positionId - var toolAlreadyMounted = magazineMountedTools.FirstOrDefault(x => x.Shank.MagazineId == magazineId && x.Shank.PositionId == positionId); - if (toolAlreadyMounted != null) - return MAGAZINE_POSITION_OCCUPIED_ERROR; - - // Get shank occupied space - toolsManager.GetShankMaxSpaceOccupied(shankToBeLoaded.ShankId, out int maxRight, out int maxLeft); - - // 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 != NC_MAGAZINE_TYPE.BOX_MAGAZINE) - { - decPosition = decPosition < positionId ? decPosition + magConfig.MaxPositions : decPosition; - incPosition = incPosition > positionId ? incPosition - magConfig.MaxPositions : incPosition; - } - - // Right check - if (positionId < decPosition) - { - if (!(magConfig.Type == NC_MAGAZINE_TYPE.BOX_MAGAZINE && mountedTool.Shank.PositionId == 1)) - { - // 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 + (maxRight / 2.0); - if (leftMounted < rightToBeMount) - return MAGAZINE_POSITION_OCCUPIED_ERROR; - } - } - - // Left check - if (positionId > incPosition) - { - if (!(magConfig.Type == NC_MAGAZINE_TYPE.BOX_MAGAZINE && mountedTool.Shank.PositionId == magConfig.MaxPositions)) - { - // 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 - (maxLeft / 2.0); - if (rightMounted > leftToBeMounted) - return MAGAZINE_POSITION_OCCUPIED_ERROR; - } - } - } - } - } - - return NO_ERROR; - } - - public CmsError GetNcMagazineStatus(out Dictionary status) - { - status = new Dictionary(); - return numericalControl.TOOLS_RMagazineStatus(ref status); - } - - public CmsError StartAssistedToolingProcedure(ushort toolId, ushort familyId, ushort shankId, ushort magazineId, ushort positionId, ASSISTED_TOOLING_ACTION action) - { - return numericalControl.PLC_WAssistedToolingCmd(toolId, familyId, shankId, magazineId, positionId, action); - } - - public CmsError ReadAssistedToolingProcedure(out DTOAssistedToolingEndValueModel data) - { - data = new DTOAssistedToolingEndValueModel(); - AssistedToolingModel tmpData = new AssistedToolingModel(); - CmsError cmsError = numericalControl.PLC_RAssistedToolingData(ref tmpData); - if (cmsError.IsError()) - return cmsError; - - data = new DTOAssistedToolingEndValueModel(tmpData); - - return cmsError; - } - - public CmsError TerminateAssistedProcedure(int magazineId, bool writeData) - { - if (writeData) - { - CmsError cmsError = StartEditTooling(magazineId); - if (!cmsError.IsError()) - { - // Write tool table new data - cmsError = StopEditTooling(magazineId); - if (!cmsError.IsError()) - { - // Close procedure - return numericalControl.PLC_WTerminateAssistedToolingProcedure(); - } - } - return cmsError; - } - else - { - return numericalControl.PLC_WTerminateAssistedToolingProcedure(); - } - } - - public CmsError GetSelfAdaptiveStep(out DTOSelfAdaptiveModel step) + return cmsError; + + using (NcToolManagerController toolManager = new NcToolManagerController()) + { + // If database was empty read data from NC and update database + if (newDb) + { + List tools = new List(); + List families = new List(); + List shanks = new List(); + + // Read data from Nc memory + cmsError = numericalControl.TOOLS_RStoredData(ref tools, ref families, ref shanks); + if (cmsError.IsError()) + return cmsError; + + // Check if there are data + if (tools.Count() > 0 || families.Count() > 0 || shanks.Count() > 0) + { + // Populate import object + DTOExportToolTableModel exp = new DTOExportToolTableModel() + { + Tools = tools.Select(x => (DbNcToolModel)x).ToList(), + Families = families.Select(x => + { + var fam = (DbNcFamilyModel)x; + fam.Name = "Fam" + fam.FamilyId.ToString(); + return fam; + }).ToList(), + Shanks = shanks.Select(x => (DbNcShankModel)x).ToList() + }; + + // Import + toolManager.ImportData(exp); + } + } + + + //List databaseTool = toolManager.GetTools(); + + //// Check option consistency + //bool exist = databaseTool.Exists(x => + // (!ToolManagerConfig.FamilyOpt && x.FamilyId != x.Id) || // Check family + // (!ToolManagerConfig.ShankOpt && x.ShankId != x.Id) || // Check shanks + // (!ToolManagerConfig.OffsetOpt && x.OffsetId1 != x.Id && x.OffsetId2 != null && x.OffsetId3 != null) // Check offsets + //); + //if (exist) + // ExceptionManager.Manage(ERROR_LEVEL., ); + + } + + return NO_ERROR; + } + + public CmsError UpdateMagazinePositionConf(out bool newDb) + { + newDb = false; + using (NcToolManagerController toolsManager = new NcToolManagerController()) + { + // Get database configured positions + List dbPositions = toolsManager.FindMagazinesPositions(); + if (dbPositions.Count <= 0) + { + // THe software is using a new database + newDb = true; + + CmsError cmsError = GetMagazineConfiguration(out List config); + if (cmsError.IsError()) + return cmsError; + + // 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 position + fromConfigPosition.Add(new DbNcMagazinePositionModel() + { + MagazineId = conf.Id, + PositionId = i, + Disabled = false, + Type = 0 + }); + } + } + + // Update database + toolsManager.SetupMagazinePositions(fromConfigPosition); + + return cmsError; + } + + return NO_ERROR; + } + } + + public CmsError WriteOption() + { + ToolManagerOptionsModel options = new ToolManagerOptionsModel(); + SupportFunctions.CopyProperties(ToolManagerConfig, options); + + return numericalControl.TOOLS_WOptions(options); + } + + public CmsError GetMagazineConfiguration(out List config) + { + config = new List(); + // Read configuration + return numericalControl.TOOLS_RMagazineConfig(ref config); + } + + public CmsError StartEditData() + { + return numericalControl.TOOLS_WStartEditData(); + } + + public CmsError StopEditData() + { + return numericalControl.TOOLS_WStopEditData(); + } + + public CmsError StartEditTooling(int magazineId) + { + return numericalControl.TOOLS_WStartEditTooling(magazineId); + } + + public CmsError StopEditTooling(int magazineId) + { + using (NcToolManagerController toolsManager = new NcToolManagerController()) + { + // Get mounted shanks + List shanks = toolsManager + .FindShanks() + .Where(x => x.MagazineId != null) + .Select(x => (NcShankModel)x) + .ToList(); + // Update shanks + CmsError cmsError = numericalControl.TOOLS_WUpdateShanks(shanks); + if (cmsError.IsError()) + return cmsError; + + // Get magazine positions + List positions = toolsManager.FindMagazinesPositions() + .Select(x => (NcMagazinePositionModel)x) + .ToList(); + // Update positions + cmsError = numericalControl.TOOLS_WUpdateMagazinePositions(positions); + if (cmsError.IsError()) + return cmsError; + + // Get tools + List tools = toolsManager + .FindTools() + .Select(x => (NcToolModel)x) + .Where(x => shanks.Any(y => y.ShankId == x.ShankId)) // Find only mounted tools + .ToList(); + + // Update tools + cmsError = numericalControl.TOOLS_WUpdateTools(tools); + if (cmsError.IsError()) + return cmsError; + + // Get families + List families = toolsManager + .FindFamilies() + .Select(x => (NcFamilyModel)x) + .Where(x => tools.Any(y => y.FamilyId == x.FamilyId)) // Find only families of mounted tools + .ToList(); + + // Update families + cmsError = numericalControl.TOOLS_WUpdateFamilies(families); + if (cmsError.IsError()) + return cmsError; + } + + return numericalControl.TOOLS_WStopEditTooling(magazineId); + } + + public CmsError GetUpdatedToolsData(out Dictionary updatedStatus, out Dictionary updatedLives) + { + updatedStatus = new Dictionary(); + updatedLives = new Dictionary(); + return numericalControl.TOOLS_RUpdatedToolsData(ref updatedStatus, ref updatedLives); + } + + public CmsError CheckIfShankCanFit(int magazineId, int positionId, DbNcShankModel shankToBeLoaded) + { + CmsError cmsError = GetMagazineConfiguration(out List magazinesConfig); + if (cmsError.IsError()) + return cmsError; + + NcMagazineConfigModel magConfig = magazinesConfig.FirstOrDefault(x => x.Id == magazineId);// Get only current magazine config + if (magConfig == null) + return INCORRECT_PARAMETERS_ERROR; + + using (NcToolManagerController toolsManager = new NcToolManagerController()) + { + List magazineMountedTools = toolsManager.GetMountedTools(); + + // Check if there is a tool already mounted in magazineId and positionId + var toolAlreadyMounted = magazineMountedTools.FirstOrDefault(x => x.Shank.MagazineId == magazineId && x.Shank.PositionId == positionId); + if (toolAlreadyMounted != null) + return MAGAZINE_POSITION_OCCUPIED_ERROR; + + // Get shank occupied space + toolsManager.GetShankMaxSpaceOccupied(shankToBeLoaded.ShankId, out int maxRight, out int maxLeft); + + // 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 != NC_MAGAZINE_TYPE.BOX_MAGAZINE) + { + decPosition = decPosition < positionId ? decPosition + magConfig.MaxPositions : decPosition; + incPosition = incPosition > positionId ? incPosition - magConfig.MaxPositions : incPosition; + } + + // Right check + if (positionId < decPosition) + { + if (!(magConfig.Type == NC_MAGAZINE_TYPE.BOX_MAGAZINE && mountedTool.Shank.PositionId == 1)) + { + // 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 + (maxRight / 2.0); + if (leftMounted < rightToBeMount) + return MAGAZINE_POSITION_OCCUPIED_ERROR; + } + } + + // Left check + if (positionId > incPosition) + { + if (!(magConfig.Type == NC_MAGAZINE_TYPE.BOX_MAGAZINE && mountedTool.Shank.PositionId == magConfig.MaxPositions)) + { + // 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 - (maxLeft / 2.0); + if (rightMounted > leftToBeMounted) + return MAGAZINE_POSITION_OCCUPIED_ERROR; + } + } + } + } + } + + return NO_ERROR; + } + + public CmsError GetNcMagazineStatus(out Dictionary status) + { + status = new Dictionary(); + return numericalControl.TOOLS_RMagazineStatus(ref status); + } + + public CmsError StartAssistedToolingProcedure(ushort toolId, ushort familyId, ushort shankId, ushort magazineId, ushort positionId, ASSISTED_TOOLING_ACTION action) + { + return numericalControl.PLC_WAssistedToolingCmd(toolId, familyId, shankId, magazineId, positionId, action); + } + + public CmsError ReadAssistedToolingProcedure(out DTOAssistedToolingEndValueModel data) + { + data = new DTOAssistedToolingEndValueModel(); + AssistedToolingModel tmpData = new AssistedToolingModel(); + CmsError cmsError = numericalControl.PLC_RAssistedToolingData(ref tmpData); + if (cmsError.IsError()) + return cmsError; + + data = new DTOAssistedToolingEndValueModel(tmpData); + + return cmsError; + } + + public CmsError TerminateAssistedProcedure(int magazineId, bool writeData) + { + if (writeData) + { + CmsError cmsError = StartEditTooling(magazineId); + if (!cmsError.IsError()) + { + // Write tool table new data + cmsError = StopEditTooling(magazineId); + if (!cmsError.IsError()) + { + // Close procedure + return numericalControl.PLC_WTerminateAssistedToolingProcedure(); + } + } + return cmsError; + } + else + { + return numericalControl.PLC_WTerminateAssistedToolingProcedure(); + } + } + + public CmsError GetSelfAdaptiveStep(out DTOSelfAdaptiveModel step) { step = new DTOSelfAdaptiveModel(); - byte intStep = 0; - - //Get the value - CmsError cmsError = numericalControl.TOOLS_RAdatpivePathStep(ref intStep); - step.Step = intStep; - return cmsError; - } - - public CmsError SetSelfAdaptiveStep(DTOSelfAdaptiveModel step) - { - //Limit Value - if (step.Step > 100) - step.Step = 100; - if (step.Step < 0) - step.Step = 0; - - //Set the value - return numericalControl.TOOLS_WAdatpivePathStep(step.Step); - } - + byte intStep = 0; + + //Get the value + CmsError cmsError = numericalControl.TOOLS_RAdatpivePathStep(ref intStep); + step.Step = intStep; + return cmsError; + } + + public CmsError SetSelfAdaptiveStep(DTOSelfAdaptiveModel step) + { + //Limit Value + if (step.Step > 100) + step.Step = 100; + if (step.Step < 0) + step.Step = 0; + + //Set the value + return numericalControl.TOOLS_WAdatpivePathStep(step.Step); + } + public CmsError RestoreTableLock() { List ids = new List(); @@ -834,10 +888,10 @@ namespace Step.NC CmsError cmsError = numericalControl.TOOLS_RMagazineBlock(ref ids); if (cmsError.IsError()) return cmsError; - - if(ids.Count() > 0) + + if (ids.Count() > 0) { - // Update tables + // Update tables cmsError = StopEditTooling(ids.FirstOrDefault()); if (cmsError.IsError()) return cmsError; @@ -846,6 +900,6 @@ namespace Step.NC } return NO_ERROR; - } - } + } + } } \ No newline at end of file diff --git a/Step/Controllers/WebApi/NcToolManagerController.cs b/Step/Controllers/WebApi/NcToolManagerController.cs index b5161df4..c46d2d7f 100644 --- a/Step/Controllers/WebApi/NcToolManagerController.cs +++ b/Step/Controllers/WebApi/NcToolManagerController.cs @@ -842,7 +842,6 @@ namespace Step.Controllers.WebApi return Ok(importStatus); } - } [Route("selfadaptivepathstep"), HttpGet] diff --git a/Step/program.cs b/Step/program.cs index 7900efbe..ab0dc96e 100644 --- a/Step/program.cs +++ b/Step/program.cs @@ -29,14 +29,13 @@ namespace Step LogInfo("Application started"); //Check if is already running an instance of this application - String AppName = System.IO.Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetEntryAssembly().Location); + string AppName = System.IO.Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetEntryAssembly().Location); if (System.Diagnostics.Process.GetProcessesByName(AppName).Length > 1) { MessageBox.Show("Only one istance of "+ AppName +" can be executed!", AppName, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } - - + // Create unhandled exception handler AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(ExceptionHandler); diff --git a/Step/wwwroot/assets/styles/base/scada.less b/Step/wwwroot/assets/styles/base/scada.less index 3adb8b44..28b53080 100644 --- a/Step/wwwroot/assets/styles/base/scada.less +++ b/Step/wwwroot/assets/styles/base/scada.less @@ -136,7 +136,8 @@ input[type=number]{ - border: solid 1px #ccc; + border: solid 1px #ccc; + padding: 0px; } input[type=number]:disabled{ border: solid 1px #FFFFFF; diff --git a/Step/wwwroot/assets/styles/style.css b/Step/wwwroot/assets/styles/style.css index 23115b8f..1edfd3f9 100644 --- a/Step/wwwroot/assets/styles/style.css +++ b/Step/wwwroot/assets/styles/style.css @@ -19657,6 +19657,7 @@ footer .container button.big:before { } .scada-container .scada-box .scada-box-body input[type=number] { border: solid 1px #ccc; + padding: 0px; } .scada-container .scada-box .scada-box-body input[type=number]:disabled { border: solid 1px #FFFFFF; diff --git a/Step/wwwroot/src/app_modules/scada/components/scada.vue b/Step/wwwroot/src/app_modules/scada/components/scada.vue index 274382a1..5d63e06d 100644 --- a/Step/wwwroot/src/app_modules/scada/components/scada.vue +++ b/Step/wwwroot/src/app_modules/scada/components/scada.vue @@ -76,7 +76,9 @@ textAlign: item.label.textAlign, backgroundColor: item.label.backgroundColor, color: item.label.textColor, - fontSize: `${item.label.textSize}px` + fontSize: `${item.label.textSize}px`, + display: 'flex', + alignItems: 'center' }" >{{item.label.textContent}}