Added function that read updated tool life and status

This commit is contained in:
Lucio Maranta
2018-07-24 15:53:43 +00:00
parent ba59dd441f
commit 963431ac1f
7 changed files with 290 additions and 136 deletions
+6 -4
View File
@@ -208,10 +208,12 @@ namespace CMS_CORE_Application
error = true;
SetError(Lines, cmsError);
}
cmsError = N.TOOLS_WStopEditTooling(1);
List<NcMagazineConfigModel> config = new List<NcMagazineConfigModel>();
cmsError = N.TOOLS_RMagazineConfig(ref config);
Dictionary<int, byte> updatedStatus = null;
Dictionary<int, uint> updatedLives = null;
// cmsError = N.TOOLS_WStopEditTooling(1);
// List<NcMagazineConfigModel> config = new List<NcMagazineConfigModel>();
//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();
+4 -4
View File
@@ -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
}
}
+4
View File
@@ -2522,6 +2522,10 @@ namespace CMS_CORE.Demo
{
return NO_ERROR;
}
public override CmsError TOOLS_RUpdatedToolsData(ref Dictionary<int, byte> updatedStatus, ref Dictionary<int, uint> updatedLives)
{
return NO_ERROR;
}
#endregion Nc Tool Manager
+5
View File
@@ -1855,6 +1855,11 @@ namespace CMS_CORE.Fanuc
return NO_ERROR;
}
public override CmsError TOOLS_RUpdatedToolsData(ref Dictionary<int, byte> updatedStatus, ref Dictionary<int, uint> updatedLives)
{
return NO_ERROR;
}
#endregion Nc Tool Manager
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+1
View File
@@ -1545,6 +1545,7 @@ namespace CMS_CORE
public abstract CmsError TOOLS_RMagazineConfig(ref List<NcMagazineConfigModel> config);
public abstract CmsError TOOLS_RUpdatedToolsData(ref Dictionary<int, byte> updatedStatus, ref Dictionary<int, uint> updatedLives);
#endregion Nc Tool Manager
+264 -128
View File
@@ -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<int, string> 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<NcMagazineConfigModel>();
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<T>(string filePath, List<T> 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<string> lines = new List<string>();
// 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<T>(List<T> 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<int, byte> updatedStatus, ref Dictionary<int, uint> updatedLives)
{
//Check if the NC is Connected
CmsError cmsError = CheckConnection();
if (cmsError.IsError())
return cmsError;
updatedStatus = new Dictionary<int, byte>();
updatedLives = new Dictionary<int, uint>();
// Read 20 bit of status, read 20 bit of tool life
List<int> readInt = new List<int>();
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<bool>().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<T>(string filePath, List<T> objs) where T : class
{
//Check if the NC is Connected
CmsError cmsError = CheckConnection();
if (cmsError.IsError())
return cmsError;
List<string> lines = new List<string>();
// 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<T>(List<T> 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
+6
View File
@@ -2932,6 +2932,12 @@ namespace CMS_CORE.Siemens
return FUNCTION_NOT_ALLOWED_ERROR;
}
public override CmsError TOOLS_RUpdatedToolsData(ref Dictionary<int, byte> updatedStatus, ref Dictionary<int, uint> updatedLives)
{
return NO_ERROR;
}
#endregion Nc Tool Manager
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////