From 963431ac1f7dafaac4dc34a89c0c71c3fbd75964 Mon Sep 17 00:00:00 2001 From: Lucio Maranta Date: Tue, 24 Jul 2018 15:53:43 +0000 Subject: [PATCH] Added function that read updated tool life and status --- CMS_CORE_Application/Form1.cs | 10 +- CMS_CORE_Library/DataStructures.cs | 8 +- CMS_CORE_Library/Demo/Nc_Demo.cs | 4 + CMS_CORE_Library/Fanuc/Nc_Fanuc.cs | 5 + CMS_CORE_Library/Nc.cs | 1 + CMS_CORE_Library/Osai/Nc_Osai.cs | 392 +++++++++++++++++-------- CMS_CORE_Library/Siemens/Nc_Siemens.cs | 6 + 7 files changed, 290 insertions(+), 136 deletions(-) diff --git a/CMS_CORE_Application/Form1.cs b/CMS_CORE_Application/Form1.cs index d2e5bd9..ea5d40c 100644 --- a/CMS_CORE_Application/Form1.cs +++ b/CMS_CORE_Application/Form1.cs @@ -208,10 +208,12 @@ namespace CMS_CORE_Application error = true; SetError(Lines, cmsError); } - - cmsError = N.TOOLS_WStopEditTooling(1); - List config = new List(); - cmsError = N.TOOLS_RMagazineConfig(ref config); + Dictionary updatedStatus = null; + Dictionary updatedLives = null; + // cmsError = N.TOOLS_WStopEditTooling(1); + // List config = new List(); + //cmsError = N.TOOLS_RMagazineConfig(ref config); + N.TOOLS_RUpdatedToolsData(ref updatedStatus, ref updatedLives); // N.TOOLS_WStartEditData(); // cmsError = N.TOOLS_WStartEditTooling(1); // cmsError = N.TOOLS_WRestoreBackup(); diff --git a/CMS_CORE_Library/DataStructures.cs b/CMS_CORE_Library/DataStructures.cs index 5c901f7..1d13f10 100644 --- a/CMS_CORE_Library/DataStructures.cs +++ b/CMS_CORE_Library/DataStructures.cs @@ -340,7 +340,7 @@ namespace CMS_CORE_Library TOOL_AND_POSITION_NOT_MATCHING = 21 } - internal static CmsError NO_ERROR = new CmsError(CMS_ERROR_CODES.OK, ""); + public static CmsError NO_ERROR = new CmsError(CMS_ERROR_CODES.OK, ""); internal static CmsError NOT_CONNECTED_ERROR = new CmsError(CMS_ERROR_CODES.NOT_CONNECTED, "error_not_connected"); internal static CmsError PROC_NOT_FOUND_ERROR = new CmsError(CMS_ERROR_CODES.FUNCTION_NOT_ALLOWED, "error_process_not_found"); internal static CmsError FUNCTION_NOT_ALLOWED_ERROR = new CmsError(CMS_ERROR_CODES.FUNCTION_NOT_ALLOWED, "error_function_not_allowed"); @@ -702,7 +702,7 @@ namespace CMS_CORE_Library public double WearLength { get; set; } public double WearRadius { get; set; } } - + public class NcToolModel { public ushort Id { get; set; } @@ -777,7 +777,7 @@ namespace CMS_CORE_Library public ushort ReviveDelta { get; set; } } - + internal class NcFamilyFileModel { public ushort Id { get; set; } @@ -849,6 +849,6 @@ namespace CMS_CORE_Library public byte Disabled { get; set; } } - #endregion + #endregion Nc Tool Manager Models } } \ No newline at end of file diff --git a/CMS_CORE_Library/Demo/Nc_Demo.cs b/CMS_CORE_Library/Demo/Nc_Demo.cs index f5c22e6..899d15a 100644 --- a/CMS_CORE_Library/Demo/Nc_Demo.cs +++ b/CMS_CORE_Library/Demo/Nc_Demo.cs @@ -2522,6 +2522,10 @@ namespace CMS_CORE.Demo { return NO_ERROR; } + public override CmsError TOOLS_RUpdatedToolsData(ref Dictionary updatedStatus, ref Dictionary updatedLives) + { + return NO_ERROR; + } #endregion Nc Tool Manager diff --git a/CMS_CORE_Library/Fanuc/Nc_Fanuc.cs b/CMS_CORE_Library/Fanuc/Nc_Fanuc.cs index 743435d..b746d06 100644 --- a/CMS_CORE_Library/Fanuc/Nc_Fanuc.cs +++ b/CMS_CORE_Library/Fanuc/Nc_Fanuc.cs @@ -1855,6 +1855,11 @@ namespace CMS_CORE.Fanuc return NO_ERROR; } + public override CmsError TOOLS_RUpdatedToolsData(ref Dictionary updatedStatus, ref Dictionary updatedLives) + { + return NO_ERROR; + } + #endregion Nc Tool Manager /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/CMS_CORE_Library/Nc.cs b/CMS_CORE_Library/Nc.cs index 6737fed..0630bee 100644 --- a/CMS_CORE_Library/Nc.cs +++ b/CMS_CORE_Library/Nc.cs @@ -1545,6 +1545,7 @@ namespace CMS_CORE public abstract CmsError TOOLS_RMagazineConfig(ref List config); + public abstract CmsError TOOLS_RUpdatedToolsData(ref Dictionary updatedStatus, ref Dictionary updatedLives); #endregion Nc Tool Manager diff --git a/CMS_CORE_Library/Osai/Nc_Osai.cs b/CMS_CORE_Library/Osai/Nc_Osai.cs index 4a7806a..bbe8f51 100644 --- a/CMS_CORE_Library/Osai/Nc_Osai.cs +++ b/CMS_CORE_Library/Osai/Nc_Osai.cs @@ -6,7 +6,6 @@ using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; -using System.Diagnostics; using System.Globalization; using System.IO; using System.Linq; @@ -37,7 +36,10 @@ namespace CMS_CORE.Osai private BasicHttpBinding HttpBinding; private static Dictionary PlcMessages; - private const string TOOL_MANAGER_DIRECTORY_PATH = @"TEST\\SYS\\STEP\\"; + // private const string TOOL_MANAGER_DIRECTORY_PATH = @"TEST\\SYS\\STEP\\"; + private const string TOOL_MANAGER_DIRECTORY_PATH = @"test\OEM\CMS\SYS\STEP\"; + + private const string TOOL_MANAGER_BACKUP_DIRECTORY_PATH = @"C:\CMS\STEP\TMP\"; private const string FAMILIES_FILE_NAME = @"Families"; private const string FAM_SIZE_FILE_NAME = @"Fam_Sizes"; private const string MAG_POSITION_FILE_NAME = @"Mag_Positions"; @@ -2140,9 +2142,9 @@ namespace CMS_CORE.Osai types = readShorts.SelectMany(BitConverter.GetBytes).ToList(); config = new List(); - for(int i = 0; i < 10; i++) + for (int i = 0; i < 10; i++) { - if(types[i + 20] > 0) + if (types[i + 20] > 0) config.Add(new NcMagazineConfigModel() { Id = (byte)(i + 1), @@ -2181,15 +2183,10 @@ namespace CMS_CORE.Osai if (cmsError.IsError()) return cmsError; - Stopwatch sw = new Stopwatch(); - sw.Start(); - cmsError = CreateBackup(); if (cmsError.IsError()) return cmsError; - Console.WriteLine("Backup" + sw.ElapsedMilliseconds); - return NO_ERROR; } @@ -2221,7 +2218,7 @@ namespace CMS_CORE.Osai // Read tool manager status bool status = false; - cmsError = MEM_RWBoolean(R, 0, MAGAZINES_ENABLED_COMMAND.MemType, MAGAZINES_ENABLED_COMMAND.Address, magazineId - 1, ref status); + cmsError = MEM_RWBoolean(R, 0, MAGAZINES_ENABLED_CMD.MemType, MAGAZINES_ENABLED_CMD.Address, magazineId - 1, ref status); if (cmsError.IsError()) return cmsError; // If magazine is busy @@ -2230,7 +2227,7 @@ namespace CMS_CORE.Osai // Write busy bool write = true; - cmsError = MEM_RWBoolean(W, 0, MAGAZINES_TOOLING_COMMAND.MemType, MAGAZINES_TOOLING_COMMAND.Address, magazineId - 1, ref write); + cmsError = MEM_RWBoolean(W, 0, MAGAZINES_TOOLING_CMD.MemType, MAGAZINES_TOOLING_CMD.Address, magazineId - 1, ref write); if (cmsError.IsError()) return cmsError; @@ -2251,7 +2248,7 @@ namespace CMS_CORE.Osai // Set magazine as free bool write = false; - cmsError = MEM_RWBoolean(W, 0, MAGAZINES_TOOLING_COMMAND.MemType, MAGAZINES_TOOLING_COMMAND.Address, magazineId - 1, ref write); + cmsError = MEM_RWBoolean(W, 0, MAGAZINES_TOOLING_CMD.MemType, MAGAZINES_TOOLING_CMD.Address, magazineId - 1, ref write); if (cmsError.IsError()) return cmsError; @@ -2268,55 +2265,6 @@ namespace CMS_CORE.Osai return NO_ERROR; } - private CmsError CreateBackup() - { - string filePath = TOOL_MANAGER_DIRECTORY_PATH + "{0}.csv"; - string backupFilePath = TOOL_MANAGER_DIRECTORY_PATH + "{0}_bak.csv"; - - // Create tool manager backup file - CmsError cmsError = FILES_CopyProgram(string.Format(filePath, FAMILIES_FILE_NAME), string.Format(backupFilePath, FAMILIES_FILE_NAME), false); - if (cmsError.IsError()) - return cmsError; - - cmsError = FILES_CopyProgram(string.Format(filePath, FAM_SIZE_FILE_NAME), string.Format(backupFilePath, FAM_SIZE_FILE_NAME), false); - if (cmsError.IsError()) - return cmsError; - - cmsError = FILES_CopyProgram(string.Format(filePath, MAG_POSITION_FILE_NAME), string.Format(backupFilePath, MAG_POSITION_FILE_NAME), false); - if (cmsError.IsError()) - return cmsError; - - cmsError = FILES_CopyProgram(string.Format(filePath, SHANKS_FILE_NAME), string.Format(backupFilePath, SHANKS_FILE_NAME), false); - if (cmsError.IsError()) - return cmsError; - - return FILES_CopyProgram(string.Format(filePath, TOOLS_FILE_NAME), string.Format(backupFilePath, TOOLS_FILE_NAME), false); - } - - private CmsError DeleteBackup() - { - string backupFilePath = "{0}_bak.csv"; - - // Delete tool manager backup file - CmsError cmsError = FILES_DeleteProgram(TOOL_MANAGER_DIRECTORY_PATH, string.Format(backupFilePath, FAMILIES_FILE_NAME)); - if (cmsError.IsError()) - return cmsError; - - cmsError = FILES_DeleteProgram(TOOL_MANAGER_DIRECTORY_PATH, string.Format(backupFilePath, FAM_SIZE_FILE_NAME)); - if (cmsError.IsError()) - return cmsError; - - cmsError = FILES_DeleteProgram(TOOL_MANAGER_DIRECTORY_PATH, string.Format(backupFilePath, MAG_POSITION_FILE_NAME)); - if (cmsError.IsError()) - return cmsError; - - cmsError = FILES_DeleteProgram(TOOL_MANAGER_DIRECTORY_PATH, string.Format(backupFilePath, SHANKS_FILE_NAME)); - if (cmsError.IsError()) - return cmsError; - - return FILES_DeleteProgram(TOOL_MANAGER_DIRECTORY_PATH, string.Format(backupFilePath, TOOLS_FILE_NAME)); - } - public override CmsError TOOLS_WRestoreBackup() { //Check if the NC is Connected @@ -2325,29 +2273,54 @@ namespace CMS_CORE.Osai return cmsError; string filePath = TOOL_MANAGER_DIRECTORY_PATH + "{0}.csv"; - string backupFilePath = TOOL_MANAGER_DIRECTORY_PATH + "{0}_bak.csv"; + string backupFilePath = TOOL_MANAGER_BACKUP_DIRECTORY_PATH + "{0}.csv"; - // Create tool manager backup file - cmsError = FILES_CopyProgram(string.Format(backupFilePath, FAMILIES_FILE_NAME), string.Format(filePath, FAMILIES_FILE_NAME), false); + // Restore tool manager backup + string fileContent = File.ReadAllText(string.Format(backupFilePath, FAMILIES_FILE_NAME)); + cmsError = FILES_WProgram(string.Format(filePath, FAMILIES_FILE_NAME), fileContent); if (cmsError.IsError()) return cmsError; - // FamilySize - cmsError = FILES_CopyProgram(string.Format(backupFilePath, FAM_SIZE_FILE_NAME), string.Format(filePath, FAM_SIZE_FILE_NAME), false); + + fileContent = File.ReadAllText(string.Format(backupFilePath, FAM_SIZE_FILE_NAME)); + cmsError = FILES_WProgram(string.Format(filePath, FAM_SIZE_FILE_NAME), fileContent); if (cmsError.IsError()) return cmsError; - // Mag positions - cmsError = FILES_CopyProgram(string.Format(backupFilePath, MAG_POSITION_FILE_NAME), string.Format(filePath, MAG_POSITION_FILE_NAME), false); + + fileContent = File.ReadAllText(string.Format(backupFilePath, MAG_POSITION_FILE_NAME)); + cmsError = FILES_WProgram(string.Format(filePath, MAG_POSITION_FILE_NAME), fileContent); if (cmsError.IsError()) return cmsError; - // Shanks - cmsError = FILES_CopyProgram(string.Format(backupFilePath, SHANKS_FILE_NAME), string.Format(filePath, SHANKS_FILE_NAME), false); + + fileContent = File.ReadAllText(string.Format(backupFilePath, SHANKS_FILE_NAME)); + cmsError = FILES_WProgram(string.Format(filePath, SHANKS_FILE_NAME), fileContent); if (cmsError.IsError()) return cmsError; - // Tools - cmsError = FILES_CopyProgram(string.Format(backupFilePath, TOOLS_FILE_NAME), string.Format(filePath, TOOLS_FILE_NAME), false); + + fileContent = File.ReadAllText(string.Format(backupFilePath, TOOLS_FILE_NAME)); + cmsError = FILES_WProgram(string.Format(filePath, TOOLS_FILE_NAME), fileContent); if (cmsError.IsError()) return cmsError; + //cmsError = FILES_CopyProgram(string.Format(backupFilePath, FAMILIES_FILE_NAME), string.Format(filePath, FAMILIES_FILE_NAME), false); + //if (cmsError.IsError()) + // return cmsError; + //// FamilySize + //cmsError = FILES_CopyProgram(string.Format(backupFilePath, FAM_SIZE_FILE_NAME), string.Format(filePath, FAM_SIZE_FILE_NAME), false); + //if (cmsError.IsError()) + // return cmsError; + //// Mag positions + //cmsError = FILES_CopyProgram(string.Format(backupFilePath, MAG_POSITION_FILE_NAME), string.Format(filePath, MAG_POSITION_FILE_NAME), false); + //if (cmsError.IsError()) + // return cmsError; + //// Shanks + //cmsError = FILES_CopyProgram(string.Format(backupFilePath, SHANKS_FILE_NAME), string.Format(filePath, SHANKS_FILE_NAME), false); + //if (cmsError.IsError()) + // return cmsError; + //// Tools + //cmsError = FILES_CopyProgram(string.Format(backupFilePath, TOOLS_FILE_NAME), string.Format(filePath, TOOLS_FILE_NAME), false); + //if (cmsError.IsError()) + // return cmsError; + return DeleteBackup(); } @@ -2428,60 +2401,6 @@ namespace CMS_CORE.Osai return NO_ERROR; } - private CmsError UpdateToolManagerFile(string filePath, List objs) where T : class - { - //Check if the NC is Connected - CmsError cmsError = CheckConnection(); - if (cmsError.IsError()) - return cmsError; - - Stopwatch sw = new Stopwatch(); sw.Start(); - - List lines = new List(); - - // Convert data in a csv string - string csvContent = GenerateModelCsv(objs); - lines.Add(csvContent); - - // Write into local file - File.WriteAllLines("C:\\test.csv", lines); - - // Update file - using (FileStream fileStream = new FileStream("C:\\test.csv", FileMode.OpenOrCreate)) - { - // Write NcFile - cmsError = FILES_WProgramFromFile(filePath, fileStream); - if (cmsError.IsError()) - return cmsError; - } - - Console.WriteLine("Scrivere tool: " + sw.ElapsedMilliseconds); - - return NO_ERROR; - } - - public string GenerateModelCsv(List items) where T : class - { - var output = ""; - var delimiter = ';'; - var properties = typeof(T).GetProperties(); - - using (var sw = new StringWriter()) - { - foreach (var item in items) - { - var row = properties - .Select(n => n.GetValue(item, null)) - .Select(n => n?.ToString()) - .Aggregate((a, b) => a + delimiter + b); - - sw.WriteLine(row); - } - output = sw.ToString(); - } - return output; - } - public override CmsError TOOLS_ROffset(short offsetId, ref OffsetModel offset) { //Check if the NC is Connected @@ -2548,6 +2467,214 @@ namespace CMS_CORE.Osai return NO_ERROR; } + public override CmsError TOOLS_RUpdatedToolsData(ref Dictionary updatedStatus, ref Dictionary updatedLives) + { + //Check if the NC is Connected + CmsError cmsError = CheckConnection(); + if (cmsError.IsError()) + return cmsError; + + updatedStatus = new Dictionary(); + updatedLives = new Dictionary(); + + // Read 20 bit of status, read 20 bit of tool life + List readInt = new List(); + cmsError = MEM_RWIntegerList(R, 0, TOOL_STATUS_UPDATED_CMD.MemType, TOOL_STATUS_UPDATED_CMD.Address, 2, ref readInt); + if (cmsError.IsError()) + return cmsError; + + // Convert int into to true/false array + bool[] bits = new BitArray(readInt.ToArray()).Cast().ToArray(); + ushort toolId = 0; + byte status = 0; + uint life = 0; + + for(int i = 0; i < bits.Length; i++) + { + if (bits[i]) + { + int bitIndex = i; + if (i >= 32) // 32 status bit and 32 lives bit + bitIndex -= 32; + + // First tool id + actual head index + int headIndex = (HEADS_DATA.Address + 2) + (bitIndex * 5); + cmsError = MEM_RWWord(R, 0, HEADS_DATA.MemType, headIndex, ref toolId); + + if(i < 32) + { + // Read new status value + int statusBitIndex = i % 2; + int statusIndex = TOOL_STATUS_UPDATED_DATA.Address + (i / 2);// Index = starting address + (headIndex / 2) -> because Osai uses 16bit format + cmsError = MEM_RWByte(R, 0, HEADS_DATA.MemType, statusIndex, statusBitIndex, ref status); + if (cmsError.IsError()) + return cmsError; + + // Insert into the list + updatedStatus.Add(toolId, status); + } + else + { + // Read new life value + int lifeIndex = TOOL_LIFE_UPDATED_DATA.Address + ((i - 32) * 2); // Index = starting address + (headIndex * 2) -> because Osai uses 16bit format + cmsError = MEM_RWDWord(R, 0, HEADS_DATA.MemType, lifeIndex, ref life); + if (cmsError.IsError()) + return cmsError; + + // Insert into the new lives list + updatedLives.Add(toolId, life); + } + } + } + + return NO_ERROR; + } + + private CmsError UpdateToolManagerFile(string filePath, List objs) where T : class + { + //Check if the NC is Connected + CmsError cmsError = CheckConnection(); + if (cmsError.IsError()) + return cmsError; + + List lines = new List(); + + // Convert data in a csv string + string csvContent = GenerateModelCsv(objs); + lines.Add(csvContent); + + // Write into local file + File.WriteAllLines("C:\\test.csv", lines); + + // Update file + using (FileStream fileStream = new FileStream("C:\\test.csv", FileMode.OpenOrCreate)) + { + // Write NcFile + cmsError = FILES_WProgramFromFile(filePath, fileStream); + if (cmsError.IsError()) + return cmsError; + } + + return NO_ERROR; + } + + public string GenerateModelCsv(List items) where T : class + { + var output = ""; + var delimiter = ';'; + var properties = typeof(T).GetProperties(); + + using (var sw = new StringWriter()) + { + foreach (var item in items) + { + var row = properties + .Select(n => n.GetValue(item, null)) + .Select(n => n?.ToString()) + .Aggregate((a, b) => a + delimiter + b); + + sw.WriteLine(row); + } + output = sw.ToString(); + } + return output; + } + + private CmsError CreateBackup() + { + string filePath = TOOL_MANAGER_DIRECTORY_PATH + "{0}.csv"; + string backupFilePath = TOOL_MANAGER_BACKUP_DIRECTORY_PATH + "{0}.csv"; + + // Create tool manager backup + string fileContent = ""; + // Read Nc file + CmsError cmsError = FILES_RProgram(string.Format(filePath, FAMILIES_FILE_NAME), ref fileContent); + if (cmsError.IsError()) + return cmsError; + // Copy Nc file content into local backup + File.WriteAllText(string.Format(backupFilePath, FAMILIES_FILE_NAME), fileContent); + + cmsError = FILES_RProgram(string.Format(filePath, FAM_SIZE_FILE_NAME), ref fileContent); + if (cmsError.IsError()) + return cmsError; + File.WriteAllText(string.Format(backupFilePath, FAM_SIZE_FILE_NAME), fileContent); + + cmsError = FILES_RProgram(string.Format(filePath, MAG_POSITION_FILE_NAME), ref fileContent); + if (cmsError.IsError()) + return cmsError; + File.WriteAllText(string.Format(backupFilePath, MAG_POSITION_FILE_NAME), fileContent); + + cmsError = FILES_RProgram(string.Format(filePath, SHANKS_FILE_NAME), ref fileContent); + if (cmsError.IsError()) + return cmsError; + File.WriteAllText(string.Format(backupFilePath, SHANKS_FILE_NAME), fileContent); + + cmsError = FILES_RProgram(string.Format(filePath, TOOLS_FILE_NAME), ref fileContent); + if (cmsError.IsError()) + return cmsError; + File.WriteAllText(string.Format(backupFilePath, TOOLS_FILE_NAME), fileContent); + + //CmsError cmsError = FILES_CopyProgram(string.Format(filePath, FAMILIES_FILE_NAME), string.Format(backupFilePath, FAMILIES_FILE_NAME), false); + //if (cmsError.IsError()) + // return cmsError; + + //cmsError = FILES_CopyProgram(string.Format(filePath, FAM_SIZE_FILE_NAME), string.Format(backupFilePath, FAM_SIZE_FILE_NAME), false); + //if (cmsError.IsError()) + // return cmsError; + + //cmsError = FILES_CopyProgram(string.Format(filePath, MAG_POSITION_FILE_NAME), string.Format(backupFilePath, MAG_POSITION_FILE_NAME), false); + //if (cmsError.IsError()) + // return cmsError; + + //cmsError = FILES_CopyProgram(string.Format(filePath, SHANKS_FILE_NAME), string.Format(backupFilePath, SHANKS_FILE_NAME), false); + //if (cmsError.IsError()) + // return cmsError; + + //return FILES_CopyProgram(string.Format(filePath, TOOLS_FILE_NAME), string.Format(backupFilePath, TOOLS_FILE_NAME), false); + + return cmsError; + } + + private CmsError DeleteBackup() + { + string backupFilePath = TOOL_MANAGER_BACKUP_DIRECTORY_PATH + "{0}.csv"; + + if (File.Exists(string.Format(backupFilePath, FAMILIES_FILE_NAME))) + File.Delete(string.Format(backupFilePath, FAMILIES_FILE_NAME)); + + if (File.Exists(string.Format(backupFilePath, FAM_SIZE_FILE_NAME))) + File.Delete(string.Format(backupFilePath, FAM_SIZE_FILE_NAME)); + + if (File.Exists(string.Format(backupFilePath, MAG_POSITION_FILE_NAME))) + File.Delete(string.Format(backupFilePath, MAG_POSITION_FILE_NAME)); + + if (File.Exists(string.Format(backupFilePath, SHANKS_FILE_NAME))) + File.Delete(string.Format(backupFilePath, SHANKS_FILE_NAME)); + + if (File.Exists(string.Format(backupFilePath, TOOLS_FILE_NAME))) + File.Delete(string.Format(backupFilePath, TOOLS_FILE_NAME)); + + return NO_ERROR; + //// Delete tool manager backup file + //CmsError cmsError = FILES_DeleteProgram(TOOL_MANAGER_DIRECTORY_PATH, string.Format(backupFilePath, FAMILIES_FILE_NAME)); + //if (cmsError.IsError()) + // return cmsError; + + //cmsError = FILES_DeleteProgram(TOOL_MANAGER_DIRECTORY_PATH, string.Format(backupFilePath, FAM_SIZE_FILE_NAME)); + //if (cmsError.IsError()) + // return cmsError; + + //cmsError = FILES_DeleteProgram(TOOL_MANAGER_DIRECTORY_PATH, string.Format(backupFilePath, MAG_POSITION_FILE_NAME)); + //if (cmsError.IsError()) + // return cmsError; + + //cmsError = FILES_DeleteProgram(TOOL_MANAGER_DIRECTORY_PATH, string.Format(backupFilePath, SHANKS_FILE_NAME)); + //if (cmsError.IsError()) + // return cmsError; + + //return FILES_DeleteProgram(TOOL_MANAGER_DIRECTORY_PATH, string.Format(backupFilePath, TOOLS_FILE_NAME)); + } + #endregion Nc Tool Manager /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -3040,16 +3167,25 @@ namespace CMS_CORE.Osai internal static MEMORY_CELL HEADS_ACK = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 12953, 4); internal static MEMORY_CELL HEADS_STROBE_INCREMENT = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 12955, 4); internal static MEMORY_CELL HEADS_STROBE_DECREMENT = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 12957, 4); + // Tool manager areas internal static MEMORY_CELL TOOL_MANAGER_STATUS = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 13001, 2); + internal static MEMORY_CELL TOOL_MANAGER_COMMAND = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 13000, 2); internal static MEMORY_CELL MAGAZINE_TYPES = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 13062, 4); internal static MEMORY_CELL MAGAZINE_POSITIONS_NUMBER = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 13072, 4); - internal static MEMORY_CELL MAGAZINES_ENABLED_COMMAND = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 13082, 4); - internal static MEMORY_CELL MAGAZINES_TOOLING_COMMAND = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 13084, 4); + internal static MEMORY_CELL MAGAZINES_ENABLED_CMD = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 13082, 2); + internal static MEMORY_CELL MAGAZINES_TOOLING_CMD = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 13084, 2); + internal static MEMORY_CELL TOOL_STATUS_UPDATED_CMD = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 13003, 2); + internal static MEMORY_CELL TOOL_LIFE_UPDATED_CMD = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 13005, 2); + internal static MEMORY_CELL TOOL_STATUS_UPDATED_ACK = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 13007, 2); + internal static MEMORY_CELL TOOL_LIFE_UPDATED_ACK = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 13009, 2); + + internal static MEMORY_CELL TOOL_STATUS_UPDATED_DATA = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 13011, 10); + internal static MEMORY_CELL TOOL_LIFE_UPDATED_DATA = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 13022, 40); } #endregion Memory addresses diff --git a/CMS_CORE_Library/Siemens/Nc_Siemens.cs b/CMS_CORE_Library/Siemens/Nc_Siemens.cs index 6107a30..d46158b 100644 --- a/CMS_CORE_Library/Siemens/Nc_Siemens.cs +++ b/CMS_CORE_Library/Siemens/Nc_Siemens.cs @@ -2932,6 +2932,12 @@ namespace CMS_CORE.Siemens return FUNCTION_NOT_ALLOWED_ERROR; } + public override CmsError TOOLS_RUpdatedToolsData(ref Dictionary updatedStatus, ref Dictionary updatedLives) + { + return NO_ERROR; + } + + #endregion Nc Tool Manager ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////