Fix fanuc tool table
This commit is contained in:
@@ -136,23 +136,16 @@ namespace CMS_CORE_Application
|
||||
Stopwatch st = new Stopwatch();
|
||||
sw.Restart();
|
||||
|
||||
//cmsError = N.PROC_RActiveAlarms(1, ref ncAlarms);
|
||||
//if (cmsError.IsError())
|
||||
//{
|
||||
// error = true;
|
||||
// SetError(Lines, cmsError);
|
||||
//}
|
||||
MessageBox.Show("START");
|
||||
cmsError = N.AXES_RAxesNames(1, ref axes);
|
||||
|
||||
TXTAlm.Text = "1\n" + String.Join(" ", axes.Select(x => x.Name.ToString() + "-" + x.Id.ToString() + "\n"));
|
||||
|
||||
axes.Clear();
|
||||
cmsError = N.AXES_RAxesNames(2, ref axes);
|
||||
|
||||
TXTMsg.Text = "2\n" + String.Join(" ", axes.Select(x => x.Name.ToString() + "-" + x.Id.ToString() + "\n"));
|
||||
|
||||
MessageBox.Show("STOP");
|
||||
cmsError = N.PROC_RActiveAlarms(1, ref ncAlarms);
|
||||
if (cmsError.IsError())
|
||||
{
|
||||
error = true;
|
||||
SetError(Lines, cmsError);
|
||||
}
|
||||
ActiveProgramDataModel active = new ActiveProgramDataModel();
|
||||
cmsError = N.FILES_RActiveProgramData(1, ref active);
|
||||
InfoFile file = new InfoFile();
|
||||
cmsError = N.FILES_RGetFileInfo(active.Path, ref file);
|
||||
|
||||
Console.WriteLine("ICON" + sw.ElapsedMilliseconds);
|
||||
sw.Stop();
|
||||
@@ -231,8 +224,8 @@ namespace CMS_CORE_Application
|
||||
{
|
||||
TXTip.Enabled = true;
|
||||
TXTport.Enabled = true;
|
||||
TXTip.Text = "192.168.139.1";
|
||||
// TXTip.Text = "10.69.36.33";
|
||||
// TXTip.Text = "192.168.139.1";
|
||||
TXTip.Text = "10.69.36.33";
|
||||
TXTport.Text = "8193";
|
||||
}
|
||||
else if (NcCombo.SelectedItem.ToString().Equals("Osai"))
|
||||
|
||||
@@ -325,6 +325,11 @@ namespace CMS_CORE_Library.Demo
|
||||
|
||||
#region PLC High-level data
|
||||
|
||||
public override CmsError PLC_RWManageWatchdog()
|
||||
{
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
public override CmsError PLC_RActiveMessages(ref List<PlcAlarmModel> alarms)
|
||||
{
|
||||
alarms.Clear();
|
||||
|
||||
+220
-118
@@ -448,7 +448,34 @@ namespace CMS_CORE_Library.Fanuc
|
||||
|
||||
#region PLC High-level data
|
||||
|
||||
//Get the PMC Messages
|
||||
public override CmsError PLC_RWManageWatchdog()
|
||||
{
|
||||
bool plcWatchdog = false;
|
||||
CmsError cmsError = MEM_RWBoolean(R, 0, NC_WATCHDOG.MemType, NC_WATCHDOG.Address, 1, ref plcWatchdog);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
if (plcWatchdog)
|
||||
{
|
||||
plcWatchdog = false;
|
||||
cmsError = MEM_RWBoolean(W, 0, NC_WATCHDOG.MemType, NC_WATCHDOG.Address, 1, ref plcWatchdog);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
|
||||
cmsError = MEM_RWBoolean(R, 0, ACTIVE_WATCHDOG.MemType, ACTIVE_WATCHDOG.Address, 1, ref plcWatchdog);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
}
|
||||
else
|
||||
{
|
||||
return PLC_NOT_RUNNING_ERROR;
|
||||
}
|
||||
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
// Get PMC Messages
|
||||
public override CmsError PLC_RActiveMessages(ref List<PlcAlarmModel> alarms)
|
||||
{
|
||||
alarms.Clear();
|
||||
@@ -897,25 +924,25 @@ namespace CMS_CORE_Library.Fanuc
|
||||
// Add Alarm in List
|
||||
alarms.Clear();
|
||||
if (count >= 1 && Messg.msg1.type != 15)
|
||||
AddAlarmToList(Messg.msg1.alm_no, Messg.msg1.alm_msg.Substring(0, Messg.msg1.msg_len), pathNumber, DateTime.Now, alarms);
|
||||
AddAlarmToList( Messg.msg1.alm_no, Messg.msg1.axis, Messg.msg1.alm_msg.Substring(0, Messg.msg1.msg_len), pathNumber, DateTime.Now, alarms);
|
||||
if (count >= 2 && Messg.msg2.type != 15)
|
||||
AddAlarmToList(Messg.msg2.alm_no, Messg.msg2.alm_msg.Substring(0, Messg.msg2.msg_len), pathNumber, DateTime.Now, alarms);
|
||||
AddAlarmToList(Messg.msg2.alm_no, Messg.msg2.axis, Messg.msg2.alm_msg.Substring(0, Messg.msg2.msg_len), pathNumber, DateTime.Now, alarms);
|
||||
if (count >= 3 && Messg.msg3.type != 15)
|
||||
AddAlarmToList(Messg.msg3.alm_no, Messg.msg3.alm_msg.Substring(0, Messg.msg3.msg_len), pathNumber, DateTime.Now, alarms);
|
||||
AddAlarmToList(Messg.msg3.alm_no, Messg.msg3.axis, Messg.msg3.alm_msg.Substring(0, Messg.msg3.msg_len), pathNumber, DateTime.Now, alarms);
|
||||
if (count >= 4 && Messg.msg4.type != 15)
|
||||
AddAlarmToList(Messg.msg4.alm_no, Messg.msg4.alm_msg.Substring(0, Messg.msg4.msg_len), pathNumber, DateTime.Now, alarms);
|
||||
AddAlarmToList(Messg.msg4.alm_no, Messg.msg4.axis, Messg.msg4.alm_msg.Substring(0, Messg.msg4.msg_len), pathNumber, DateTime.Now, alarms);
|
||||
if (count >= 5 && Messg.msg5.type != 15)
|
||||
AddAlarmToList(Messg.msg5.alm_no, Messg.msg5.alm_msg.Substring(0, Messg.msg5.msg_len), pathNumber, DateTime.Now, alarms);
|
||||
AddAlarmToList(Messg.msg5.alm_no, Messg.msg5.axis, Messg.msg5.alm_msg.Substring(0, Messg.msg5.msg_len), pathNumber, DateTime.Now, alarms);
|
||||
if (count >= 6 && Messg.msg6.type != 15)
|
||||
AddAlarmToList(Messg.msg6.alm_no, Messg.msg6.alm_msg.Substring(0, Messg.msg6.msg_len), pathNumber, DateTime.Now, alarms);
|
||||
AddAlarmToList(Messg.msg6.alm_no, Messg.msg6.axis, Messg.msg6.alm_msg.Substring(0, Messg.msg6.msg_len), pathNumber, DateTime.Now, alarms);
|
||||
if (count >= 7 && Messg.msg7.type != 15)
|
||||
AddAlarmToList(Messg.msg7.alm_no, Messg.msg7.alm_msg.Substring(0, Messg.msg7.msg_len), pathNumber, DateTime.Now, alarms);
|
||||
AddAlarmToList(Messg.msg7.alm_no, Messg.msg7.axis, Messg.msg7.alm_msg.Substring(0, Messg.msg7.msg_len), pathNumber, DateTime.Now, alarms);
|
||||
if (count >= 8 && Messg.msg8.type != 15)
|
||||
AddAlarmToList(Messg.msg8.alm_no, Messg.msg8.alm_msg.Substring(0, Messg.msg8.msg_len), pathNumber, DateTime.Now, alarms);
|
||||
AddAlarmToList(Messg.msg8.alm_no, Messg.msg8.axis, Messg.msg8.alm_msg.Substring(0, Messg.msg8.msg_len), pathNumber, DateTime.Now, alarms);
|
||||
if (count >= 9 && Messg.msg9.type != 15)
|
||||
AddAlarmToList(Messg.msg9.alm_no, Messg.msg9.alm_msg.Substring(0, Messg.msg9.msg_len), pathNumber, DateTime.Now, alarms);
|
||||
AddAlarmToList(Messg.msg9.alm_no, Messg.msg9.axis, Messg.msg9.alm_msg.Substring(0, Messg.msg9.msg_len), pathNumber, DateTime.Now, alarms);
|
||||
if (count >= 10 && Messg.msg10.type != 15)
|
||||
AddAlarmToList(Messg.msg10.alm_no, Messg.msg10.alm_msg.Substring(0, Messg.msg10.msg_len), pathNumber, DateTime.Now, alarms);
|
||||
AddAlarmToList(Messg.msg10.alm_no, Messg.msg10.axis, Messg.msg10.alm_msg.Substring(0, Messg.msg10.msg_len), pathNumber, DateTime.Now, alarms);
|
||||
|
||||
return NO_ERROR;
|
||||
}
|
||||
@@ -1690,7 +1717,7 @@ namespace CMS_CORE_Library.Fanuc
|
||||
ActualEndIndex = ActualStartIndex + FANUC_MAXNVAR - 1;
|
||||
|
||||
// Set the variables-numbers to iterate
|
||||
ActualNumber = (ActualEndIndex - ActualStartIndex + 1);
|
||||
ActualNumber = (ActualEndIndex - ActualStartIndex + 1);
|
||||
// Set the variables-number Fanuc
|
||||
FanucNumber = ActualNumber + 8;
|
||||
|
||||
@@ -1838,7 +1865,7 @@ namespace CMS_CORE_Library.Fanuc
|
||||
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
|
||||
// Write a Short-Value-List inside the NC. In writing-mode the field "Number" is not required
|
||||
public override CmsError MEM_RWShortList(bool bWrite, int Process, MEMORY_TYPE MemType, int MemIndex, int Number, ref List<short> Value)
|
||||
{
|
||||
@@ -2186,7 +2213,31 @@ namespace CMS_CORE_Library.Fanuc
|
||||
|
||||
public override CmsError FILES_RGetFileInfo(string path, ref InfoFile fileInfo)
|
||||
{
|
||||
IDBPDFADIR funcInput = new IDBPDFADIR();
|
||||
ODBPDFADIR fileData = new ODBPDFADIR();
|
||||
ODBPDFNFIL fil = new ODBPDFNFIL();
|
||||
|
||||
// Setup input data
|
||||
funcInput.path = path;
|
||||
funcInput.type = 1;
|
||||
funcInput.size_kind = 1;
|
||||
funcInput.dummy = 0;
|
||||
|
||||
short maxDir = 1;
|
||||
funcInput.req_num = 1; // Update file index
|
||||
|
||||
// Read file data
|
||||
short nReturn = Focas1.cnc_rdpdf_subdirn(nLibHandle[0], path, fil);
|
||||
if (nReturn != 0)
|
||||
return GetNcError(nReturn);
|
||||
|
||||
// Add to list read data
|
||||
fileInfo = new InfoFile()
|
||||
{
|
||||
AbsolutePath = path + fileData.d_f,
|
||||
Name = fileData.d_f,
|
||||
Content = new List<string>()
|
||||
};
|
||||
|
||||
return NO_ERROR;
|
||||
}
|
||||
@@ -2461,7 +2512,7 @@ namespace CMS_CORE_Library.Fanuc
|
||||
Id = x.Id,
|
||||
Type = ConvertToSiemensMagazineType(x.Type),
|
||||
Name = x.Id.ToString(),
|
||||
LoadingIsActive = magazineStatus[x.Id],
|
||||
LoadingIsActive = true,// magazineStatus[x.Id],
|
||||
MaxPositions = x.MaxPositions
|
||||
}).ToList();
|
||||
|
||||
@@ -2694,12 +2745,6 @@ namespace CMS_CORE_Library.Fanuc
|
||||
|
||||
public override CmsError TOOLS_WOffset(short offsetId, OffsetModel offset)
|
||||
{
|
||||
List<NcToolModel> offsets = new List<NcToolModel>()
|
||||
{
|
||||
new NcToolModel(){FamilyId = 88, OffsetId1 = 0, OffsetId2 = 0, OffsetId3 = 0, OffsetLength = 0, ResidualLife = 5, ResidualRevive = 2, ShankId = 66, Status = 1, ToolId = 33}
|
||||
};
|
||||
TOOLS_WObjectInMemory(offsets, 12000, 1);
|
||||
|
||||
if (offsetId > MAX_OFFSET_NUM)
|
||||
return INCORRECT_PARAMETERS_ERROR;
|
||||
|
||||
@@ -2729,17 +2774,79 @@ namespace CMS_CORE_Library.Fanuc
|
||||
|
||||
public override CmsError TOOLS_WStartEditData()
|
||||
{
|
||||
//Check if the NC is Connected
|
||||
CmsError cmsError = CheckConnection();
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
ushort status = 0;
|
||||
// Read tool manager status
|
||||
cmsError = MEM_RWWord(R, 0, TOOL_MANAGER_STATUS.MemType, TOOL_MANAGER_STATUS.Address, ref status);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
bool[] bits = new bool[16];
|
||||
|
||||
// Convert int into to true/false array
|
||||
bits = IntToBits(status);
|
||||
// 1 = Non-editable tables, 2 = reading in progess
|
||||
if (!bits[1] || bits[2])
|
||||
return MAGAZINE_BUSY_ERROR;
|
||||
|
||||
// Write busy tool manager status
|
||||
bool bitToWrite = true;
|
||||
cmsError = MEM_RWBoolean(W, 0, TOOL_MANAGER_COMMAND.MemType, TOOL_MANAGER_COMMAND.Address, 1, ref bitToWrite);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
//cmsError = CreateBackup();
|
||||
//if (cmsError.IsError())
|
||||
// return cmsError;
|
||||
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
public override CmsError TOOLS_WStopEditData()
|
||||
{
|
||||
//Check if the NC is Connected
|
||||
CmsError cmsError = CheckConnection();
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
//cmsError = DeleteBackup();
|
||||
//if (cmsError.IsError())
|
||||
// return cmsError;
|
||||
|
||||
// Release tool manager status
|
||||
bool bitToWrite = false;
|
||||
cmsError = MEM_RWBoolean(W, 0, TOOL_MANAGER_COMMAND.MemType, TOOL_MANAGER_COMMAND.Address, 1, ref bitToWrite);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
//// Set reload command
|
||||
//cmsError = PLC_WStrobe(TOOL_MANAGER_STATUS, TOOL_MANAGER_COMMAND, 1);
|
||||
//if (cmsError.IsError())
|
||||
// return cmsError;
|
||||
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
public override CmsError TOOLS_WUpdateTools(List<NcToolModel> list)
|
||||
public override CmsError TOOLS_WUpdateTools(List<NcToolModel> toolsList)
|
||||
{
|
||||
return NO_ERROR;
|
||||
foreach (NcToolModel tool in toolsList)
|
||||
{
|
||||
// Get the offset of the id in the memory
|
||||
CmsError cmsError = TOOLS_RPositionId(tool.ToolId, TOOL_TABLE_INDEX.Address, out int offset);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
// Write object in memory
|
||||
cmsError = TOOLS_WObjectInMemory(tool, TOOL_TABLE_INDEX.Address, offset);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
}
|
||||
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
public override CmsError TOOLS_WUpdateFamilies(List<NcFamilyModel> familyList)
|
||||
@@ -2786,7 +2893,7 @@ namespace CMS_CORE_Library.Fanuc
|
||||
CmsError cmsError = TOOLS_RPositionId(pos.PositionId, SHANK_TABLE_INDEX.Address, out int offset);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
|
||||
// Write object in memory
|
||||
cmsError = TOOLS_WObjectInMemory(pos, SHANK_TABLE_INDEX.Address, offset);
|
||||
if (cmsError.IsError())
|
||||
@@ -2798,11 +2905,58 @@ namespace CMS_CORE_Library.Fanuc
|
||||
|
||||
public override CmsError TOOLS_WStartEditTooling(int magazineId)
|
||||
{
|
||||
// Check if the NC is Connected
|
||||
CmsError cmsError = CheckConnection();
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
// Read tool manager status
|
||||
bool status = false;
|
||||
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
|
||||
if (!status)
|
||||
return MAGAZINE_BUSY_ERROR;
|
||||
|
||||
// Write busy
|
||||
bool bitToWrite = true;
|
||||
cmsError = MEM_RWBoolean(W, 0, MAGAZINES_TOOLING_CMD.MemType, MAGAZINES_TOOLING_CMD.Address, magazineId - 1, ref bitToWrite);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
//// Create backup files
|
||||
//cmsError = CreateBackup();
|
||||
//if (cmsError.IsError())
|
||||
// return cmsError;
|
||||
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
public override CmsError TOOLS_WStopEditTooling(int magazineId)
|
||||
{
|
||||
// Check if the NC is Connected
|
||||
CmsError cmsError = CheckConnection();
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
// Set magazine as free
|
||||
bool write = false;
|
||||
cmsError = MEM_RWBoolean(W, 0, MAGAZINES_TOOLING_CMD.MemType, MAGAZINES_TOOLING_CMD.Address, magazineId - 1, ref write);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
//// Delete backup files
|
||||
//cmsError = DeleteBackup();
|
||||
//if (cmsError.IsError())
|
||||
// return cmsError;
|
||||
|
||||
// Set reload command
|
||||
cmsError = PLC_WStrobe(TOOL_MANAGER_STATUS, TOOL_MANAGER_COMMAND, 1);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
@@ -2823,16 +2977,34 @@ namespace CMS_CORE_Library.Fanuc
|
||||
|
||||
public override CmsError TOOLS_RMagazineStatus(ref Dictionary<int, bool> magazineStatus)
|
||||
{
|
||||
//Check if the NC is Connected
|
||||
CmsError cmsError = CheckConnection();
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
// Read tool manager status
|
||||
int status = 0;
|
||||
cmsError = MEM_RWInteger(R, 0, MAGAZINES_ENABLED_CMD.MemType, MAGAZINES_ENABLED_CMD.Address, ref status);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
bool[] bits = IntToBits(status);
|
||||
|
||||
for (int i = 0; i < bits.Length; i++)
|
||||
{
|
||||
magazineStatus.Add(i + 1, bits[i]);
|
||||
}
|
||||
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
|
||||
private CmsError TOOLS_RPositionId(int id, int startIndex, out int offset)
|
||||
{
|
||||
offset = 0;
|
||||
|
||||
// Read 300 bytes
|
||||
List<int> ints = new List<int>();
|
||||
CmsError cmsError = MEM_RWIntegerList(false, 0, Nc.MEMORY_TYPE.Fanuc_R, startIndex, 150, ref ints);
|
||||
CmsError cmsError = MEM_RWIntegerList(false, 0, Nc.MEMORY_TYPE.Fanuc_D, startIndex, 150, ref ints);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
@@ -2842,6 +3014,15 @@ namespace CMS_CORE_Library.Fanuc
|
||||
// Find id
|
||||
offset = Array
|
||||
.FindIndex(bytes, x => x == id);
|
||||
|
||||
// if not found, get last number
|
||||
if(offset == -1)
|
||||
{
|
||||
offset = 0;
|
||||
for (int i = 0; i < bytes.Count(); i++)
|
||||
if (bytes[i] != 0)
|
||||
offset = i + 1;
|
||||
}
|
||||
|
||||
return NO_ERROR;
|
||||
}
|
||||
@@ -2867,7 +3048,7 @@ namespace CMS_CORE_Library.Fanuc
|
||||
case 1:
|
||||
{
|
||||
byte b = Convert.ToByte(property.GetValue(item));
|
||||
cmsError = MEM_RWByte(W, 0, MEMORY_TYPE.Fanuc_R, currentFieldIndex, 0, ref b);
|
||||
cmsError = MEM_RWByte(W, 0, MEMORY_TYPE.Fanuc_D, currentFieldIndex, 0, ref b);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
}
|
||||
@@ -2875,7 +3056,7 @@ namespace CMS_CORE_Library.Fanuc
|
||||
case 2:
|
||||
{
|
||||
ushort u = Convert.ToUInt16(property.GetValue(item));
|
||||
cmsError = MEM_RWWord(W, 0, MEMORY_TYPE.Fanuc_R, currentFieldIndex, ref u);
|
||||
cmsError = MEM_RWWord(W, 0, MEMORY_TYPE.Fanuc_D, currentFieldIndex, ref u);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
}
|
||||
@@ -2883,7 +3064,7 @@ namespace CMS_CORE_Library.Fanuc
|
||||
case 4:
|
||||
{
|
||||
uint w = Convert.ToUInt32(property.GetValue(item));
|
||||
cmsError = MEM_RWDWord(W, 0, MEMORY_TYPE.Fanuc_R, currentFieldIndex, ref w);
|
||||
cmsError = MEM_RWDWord(W, 0, MEMORY_TYPE.Fanuc_D, currentFieldIndex, ref w);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
}
|
||||
@@ -3486,13 +3667,10 @@ namespace CMS_CORE_Library.Fanuc
|
||||
{
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
{
|
||||
return GetNcError(nReturn);
|
||||
}
|
||||
break;
|
||||
}
|
||||
} while ((nReturn == (short)Focas1.focas_ret.EW_OK || nReturn == (short)Focas1.focas_ret.EW_BUFFER) && !fileEnded);
|
||||
|
||||
@@ -3506,7 +3684,7 @@ namespace CMS_CORE_Library.Fanuc
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
//Manage the Exception Launch
|
||||
// Manage the Exception Launch
|
||||
private CmsError ManageException(Exception ex)
|
||||
{
|
||||
Connected = false;
|
||||
@@ -3566,6 +3744,9 @@ namespace CMS_CORE_Library.Fanuc
|
||||
internal static class MEMORY_ADDRESS
|
||||
{
|
||||
internal const int STARTING_ADDRESS = 50000;
|
||||
|
||||
internal static MEMORY_CELL NC_WATCHDOG = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, STARTING_ADDRESS, 1);
|
||||
internal static MEMORY_CELL ACTIVE_WATCHDOG = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, STARTING_ADDRESS + 2, 1);
|
||||
internal static MEMORY_CELL FUNCTION_ACCESS = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 50005, 8);
|
||||
|
||||
internal static MEMORY_CELL PRE_POST_POWER_ON = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 52573, 2);
|
||||
@@ -3608,17 +3789,17 @@ namespace CMS_CORE_Library.Fanuc
|
||||
internal static MEMORY_CELL HEADS_STROBE_DECREMENT = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 52927, 4);
|
||||
|
||||
// Tool manager areas
|
||||
internal static MEMORY_CELL TOOL_MANAGER_COMMAND = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 13000, 2);
|
||||
internal static MEMORY_CELL TOOL_MANAGER_COMMAND = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 53000, 2);
|
||||
|
||||
internal static MEMORY_CELL TOOL_MANAGER_STATUS = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 13001, 2);
|
||||
internal static MEMORY_CELL TOOL_MANAGER_STATUS = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 53002, 2);
|
||||
|
||||
internal static MEMORY_CELL TOOL_MANAGER_OPTIONS = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 13002, 2);
|
||||
internal static MEMORY_CELL TOOL_MANAGER_OPTIONS = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 53004, 2);
|
||||
|
||||
internal static MEMORY_CELL MAGAZINE_TYPES = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 13062, 4);
|
||||
internal static MEMORY_CELL MAGAZINE_POSITIONS_NUMBER = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 13072, 4);
|
||||
internal static MEMORY_CELL MAGAZINE_TYPES = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 53062, 4);
|
||||
internal static MEMORY_CELL MAGAZINE_POSITIONS_NUMBER = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 53082, 4);
|
||||
|
||||
internal static MEMORY_CELL MAGAZINES_ENABLED_CMD = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 13082, 2);
|
||||
internal static MEMORY_CELL MAGAZINES_TOOLING_CMD = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 13084, 2);
|
||||
internal static MEMORY_CELL MAGAZINES_ENABLED_CMD = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 53102, 2);
|
||||
internal static MEMORY_CELL MAGAZINES_TOOLING_CMD = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 53106, 2);
|
||||
|
||||
internal static MEMORY_CELL TOOL_STATUS_UPDATED_CMD = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 13003, 2);
|
||||
internal static MEMORY_CELL TOOL_LIFE_UPDATED_CMD = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 13005, 2);
|
||||
@@ -3641,83 +3822,4 @@ namespace CMS_CORE_Library.Fanuc
|
||||
internal static MEMORY_CELL OPERATOR_INPUT_NEEDED = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 0, 1);
|
||||
internal static MEMORY_CELL MTCONNECT_DATA_NEEDED = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 0, 1);
|
||||
}
|
||||
|
||||
//internal static class MEMORY_ADDRESS
|
||||
//{
|
||||
// internal const int STARTING_ADDRESS = 50000;
|
||||
// internal static MEMORY_CELL FUNCTION_ACCESS = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 50005, 8);
|
||||
|
||||
// internal static MEMORY_CELL PRE_POST_POWER_ON = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 12000, 2);
|
||||
// internal static MEMORY_CELL PRE_POST_POWER_ON_CLICKABLE = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 12002, 2);
|
||||
// internal static MEMORY_CELL PRE_POST_POWER_ON_ACK = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 12004, 2);
|
||||
// internal static MEMORY_CELL PRE_POST_POWER_ON_CLICKED = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 12006, 2);
|
||||
|
||||
// internal static MEMORY_CELL AXIS_RESET_PROCEDURE = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 52607, 7, 1);
|
||||
|
||||
// internal static MEMORY_CELL PROCESS_STATUS = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 12000, 0, 24);
|
||||
// internal static MEMORY_CELL SELECTED_PROCESS = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 12000, 2, 24);
|
||||
// internal static MEMORY_CELL SELECT_PROCESS = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 52605, 1);
|
||||
|
||||
// internal static MEMORY_CELL COUNTERS = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 0, 0, 40);
|
||||
|
||||
// internal static MEMORY_CELL SELECTED_AXIS = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 52624, 0, 1);
|
||||
// internal static MEMORY_CELL SELECT_AXIS = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 52625, 1, 1);
|
||||
|
||||
// internal static MEMORY_CELL NC_SOFTKEYS_VALUE = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 52608, 0, 4);
|
||||
// internal static MEMORY_CELL NC_SOFTKEYS_CLICKABLE = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 52612, 0, 4);
|
||||
// internal static MEMORY_CELL NC_SOFT_KEYS_ACK = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 52616, 4);
|
||||
// internal static MEMORY_CELL NC_SOFT_KEYS_CLICKED = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 52620, 4);
|
||||
|
||||
// internal static MEMORY_CELL USER_SOFTKEYS_VALUE = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 52626, 0, 16);
|
||||
// internal static MEMORY_CELL USER_SOFTKEYS_CLICKABLE = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 52642, 0, 16);
|
||||
// internal static MEMORY_CELL USER_SOFT_KEYS_ACK = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 52658, 16);
|
||||
// internal static MEMORY_CELL USER_SOFT_KEYS_CLICKED = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 52674, 16);
|
||||
|
||||
// internal static MEMORY_CELL ALARMS_STATUS = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 12000, 128);
|
||||
// internal static MEMORY_CELL ALARMS_DATA = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 12128, 1024);
|
||||
|
||||
// internal static MEMORY_CELL ALARM_ACK = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 2152, 128);
|
||||
// internal static MEMORY_CELL ALARM_RESTORATION_STROBE = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 2280, 128);
|
||||
// internal static MEMORY_CELL ALARM_REFRESH_STROBE = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 2408, 128);
|
||||
|
||||
// internal static MEMORY_CELL HEADS_DATA = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 52690, 240);
|
||||
|
||||
// internal static MEMORY_CELL HEADS_ACK = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 52921, 4);
|
||||
// internal static MEMORY_CELL HEADS_STROBE_INCREMENT = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 52924, 4);
|
||||
// internal static MEMORY_CELL HEADS_STROBE_DECREMENT = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 52927, 4);
|
||||
|
||||
// // Tool manager areas
|
||||
// internal static MEMORY_CELL TOOL_MANAGER_COMMAND = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 13000, 2);
|
||||
|
||||
// internal static MEMORY_CELL TOOL_MANAGER_STATUS = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 13001, 2);
|
||||
|
||||
// internal static MEMORY_CELL TOOL_MANAGER_OPTIONS = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 13002, 2);
|
||||
|
||||
// internal static MEMORY_CELL MAGAZINE_TYPES = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 13062, 4);
|
||||
// internal static MEMORY_CELL MAGAZINE_POSITIONS_NUMBER = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 13072, 4);
|
||||
|
||||
// internal static MEMORY_CELL MAGAZINES_ENABLED_CMD = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 13082, 2);
|
||||
// internal static MEMORY_CELL MAGAZINES_TOOLING_CMD = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 13084, 2);
|
||||
|
||||
// internal static MEMORY_CELL TOOL_STATUS_UPDATED_CMD = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 13003, 2);
|
||||
// internal static MEMORY_CELL TOOL_LIFE_UPDATED_CMD = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 13005, 2);
|
||||
// internal static MEMORY_CELL TOOL_STATUS_UPDATED_ACK = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 13007, 2);
|
||||
// internal static MEMORY_CELL TOOL_LIFE_UPDATED_ACK = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 13009, 2);
|
||||
|
||||
// internal static MEMORY_CELL TOOL_STATUS_UPDATED_DATA = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 13011, 10);
|
||||
// internal static MEMORY_CELL TOOL_LIFE_UPDATED_DATA = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 13022, 40);
|
||||
|
||||
// // Tool table indexes
|
||||
// internal static MEMORY_CELL TOOL_TABLE_INDEX = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 35000, 6900);
|
||||
// internal static MEMORY_CELL FAMILY_TABLE_INDEX = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 42000, 7500);
|
||||
// internal static MEMORY_CELL SHANK_TABLE_INDEX = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 49600, 2100);
|
||||
// internal static MEMORY_CELL MAG_POS_TABLE_INDEX = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 51800, 900);
|
||||
|
||||
// internal static MEMORY_CELL COUNTERS_DATA = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 0, 64);
|
||||
// internal static MEMORY_CELL COUNTERS_ACK = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 0, 2);
|
||||
// internal static MEMORY_CELL COUNTERS_STROBE = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 0, 2);
|
||||
|
||||
// internal static MEMORY_CELL OPERATOR_INPUT_NEEDED = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 0, 1);
|
||||
// internal static MEMORY_CELL MTCONNECT_DATA_NEEDED = new MEMORY_CELL(MEMORY_TYPE.Fanuc_R, 0, 1);
|
||||
//}
|
||||
}
|
||||
@@ -54,6 +54,7 @@
|
||||
MAGAZINE_OCCUPIED = 19,
|
||||
TOOL_IS_MOUNTED = 20,
|
||||
TOOL_AND_POSITION_NOT_MATCHING = 21,
|
||||
FILE_NOT_FOUND = 22
|
||||
FILE_NOT_FOUND = 22,
|
||||
PLC_NOT_RUNNING = 23
|
||||
}
|
||||
}
|
||||
@@ -361,7 +361,8 @@ namespace CMS_CORE_Library.Models
|
||||
public static CmsError MAGAZINE_BUSY_ERROR = new CmsError(CMS_ERROR_CODES.MAGAZINE_OCCUPIED, "error_magazine_occupied");
|
||||
public static CmsError TOOL_IS_MOUNTED_ERROR = new CmsError(CMS_ERROR_CODES.TOOL_IS_MOUNTED, "error_tool_mounted");
|
||||
public static CmsError TOOL_AND_POSITION_NOT_MATCHING_ERROR = new CmsError(CMS_ERROR_CODES.TOOL_IS_MOUNTED, "error_tool_and_position_not_matching");
|
||||
public static CmsError FILE_NOT_FOUND_ERROR = new CmsError(CMS_ERROR_CODES.FILE_NOT_FOUND, "error_file_not_found");
|
||||
public static CmsError FILE_NOT_FOUND_ERROR = new CmsError(CMS_ERROR_CODES.FILE_NOT_FOUND, "error_file_not_found");
|
||||
public static CmsError PLC_NOT_RUNNING_ERROR = new CmsError(CMS_ERROR_CODES.PLC_NOT_RUNNING, "error_plc_not_running");
|
||||
|
||||
#endregion Cms Errors Codes
|
||||
|
||||
|
||||
@@ -30,9 +30,9 @@ namespace CMS_CORE_Library.Models
|
||||
|
||||
public class NcShankModel
|
||||
{
|
||||
public int ShankId { get; set; }
|
||||
public ushort ShankId { get; set; }
|
||||
|
||||
public int Balluf { get; set; }
|
||||
public ushort Balluf { get; set; }
|
||||
|
||||
public byte MagazineId { get; set; }
|
||||
|
||||
@@ -43,50 +43,31 @@ namespace CMS_CORE_Library.Models
|
||||
|
||||
public class NcToolModel
|
||||
{
|
||||
[FanucOrder(1)]
|
||||
[OsaiOrder(1)]
|
||||
public short ToolId { get; set; }
|
||||
|
||||
[FanucOrder(2)]
|
||||
[OsaiOrder(2)]
|
||||
public short FamilyId { get; set; }
|
||||
|
||||
[FanucOrder(3)]
|
||||
[OsaiOrder(3)]
|
||||
public short ShankId { get; set; }
|
||||
|
||||
[FanucOrder(4)]
|
||||
[OsaiOrder(4)]
|
||||
public byte Status { get; set; }
|
||||
|
||||
[FanucOrder(5)]
|
||||
[OsaiOrder(5)]
|
||||
public short OffsetLength { get; set; }
|
||||
|
||||
[FanucOrder(6)]
|
||||
[OsaiOrder(6)]
|
||||
public int ResidualLife { get; set; }
|
||||
|
||||
[FanucOrder(7)]
|
||||
[OsaiOrder(7)]
|
||||
public uint ResidualRevive { get; set; }
|
||||
|
||||
[FanucOrder(8)]
|
||||
[OsaiOrder(8)]
|
||||
public ushort OffsetId1 { get; set; }
|
||||
|
||||
[FanucOrder(9)]
|
||||
[OsaiOrder(9)]
|
||||
public ushort OffsetId2 { get; set; }
|
||||
|
||||
[FanucOrder(10)]
|
||||
[OsaiOrder(10)]
|
||||
public ushort OffsetId3 { get; set; }
|
||||
|
||||
public uint ResidualRevive { get; set; }
|
||||
|
||||
}
|
||||
|
||||
public class NcFamilyModel
|
||||
{
|
||||
public int FamilyId { get; set; }
|
||||
public ushort FamilyId { get; set; }
|
||||
|
||||
public byte ToolType { get; set; }
|
||||
|
||||
|
||||
@@ -362,6 +362,8 @@ namespace CMS_CORE_Library
|
||||
|
||||
#region PLC High-level data (to override)
|
||||
|
||||
public abstract CmsError PLC_RWManageWatchdog();
|
||||
|
||||
/**
|
||||
* <summary>
|
||||
* Read PMC active Messages
|
||||
@@ -1837,11 +1839,12 @@ namespace CMS_CORE_Library
|
||||
});
|
||||
}
|
||||
|
||||
internal void AddAlarmToList(int id, string message, int process, DateTime dateTime, List<AlarmModel> alarms)
|
||||
internal void AddAlarmToList(int id, short axisId, string message, int process, DateTime dateTime, List<AlarmModel> alarms)
|
||||
{
|
||||
|
||||
alarms.Add(new AlarmModel()
|
||||
{
|
||||
Id = (uint)id,
|
||||
Id = Convert.ToUInt32((id & 0xffff) | (axisId << 24)),
|
||||
Message = message,
|
||||
IsWarning = false,
|
||||
Process = process,
|
||||
|
||||
@@ -415,6 +415,31 @@ namespace CMS_CORE_Library.Osai
|
||||
#region PLC High-level data
|
||||
|
||||
//Get the PLC Active Alarms
|
||||
|
||||
public override CmsError PLC_RWManageWatchdog()
|
||||
{
|
||||
bool plcWatchdog = false;
|
||||
CmsError cmsError = MEM_RWBoolean(R, 0, NC_WATCHDOG.MemType, NC_WATCHDOG.Address, 1, ref plcWatchdog);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
if (plcWatchdog)
|
||||
{
|
||||
plcWatchdog = false;
|
||||
cmsError = MEM_RWBoolean(W, 0, NC_WATCHDOG.MemType, NC_WATCHDOG.Address, 1, ref plcWatchdog);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
|
||||
cmsError = MEM_RWBoolean(R, 0, ACTIVE_WATCHDOG.MemType, ACTIVE_WATCHDOG.Address, 1, ref plcWatchdog);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
}
|
||||
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
|
||||
public override CmsError PLC_RActiveMessages(ref List<PlcAlarmModel> alarms)
|
||||
{
|
||||
try
|
||||
@@ -2600,8 +2625,8 @@ namespace CMS_CORE_Library.Osai
|
||||
return MAGAZINE_BUSY_ERROR;
|
||||
|
||||
// Write busy tool manager status
|
||||
bool write = true;
|
||||
cmsError = MEM_RWBoolean(W, 0, TOOL_MANAGER_COMMAND.MemType, TOOL_MANAGER_COMMAND.Address, 1, ref write);
|
||||
bool bitToWrite = true;
|
||||
cmsError = MEM_RWBoolean(W, 0, TOOL_MANAGER_COMMAND.MemType, TOOL_MANAGER_COMMAND.Address, 1, ref bitToWrite);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
@@ -2624,8 +2649,8 @@ namespace CMS_CORE_Library.Osai
|
||||
return cmsError;
|
||||
|
||||
// Release tool manager status
|
||||
bool write = false;
|
||||
cmsError = MEM_RWBoolean(W, 0, TOOL_MANAGER_COMMAND.MemType, TOOL_MANAGER_COMMAND.Address, 1, ref write);
|
||||
bool bitToWrite = false;
|
||||
cmsError = MEM_RWBoolean(W, 0, TOOL_MANAGER_COMMAND.MemType, TOOL_MANAGER_COMMAND.Address, 1, ref bitToWrite);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
@@ -2677,8 +2702,8 @@ namespace CMS_CORE_Library.Osai
|
||||
return MAGAZINE_BUSY_ERROR;
|
||||
|
||||
// Write busy
|
||||
bool write = true;
|
||||
cmsError = MEM_RWBoolean(W, 0, MAGAZINES_TOOLING_CMD.MemType, MAGAZINES_TOOLING_CMD.Address, magazineId - 1, ref write);
|
||||
bool bitToWrite = true;
|
||||
cmsError = MEM_RWBoolean(W, 0, MAGAZINES_TOOLING_CMD.MemType, MAGAZINES_TOOLING_CMD.Address, magazineId - 1, ref bitToWrite);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
@@ -2692,7 +2717,7 @@ namespace CMS_CORE_Library.Osai
|
||||
|
||||
public override CmsError TOOLS_WStopEditTooling(int magazineId)
|
||||
{
|
||||
//Check if the NC is Connected
|
||||
// Check if the NC is Connected
|
||||
CmsError cmsError = CheckConnection();
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
@@ -3077,8 +3102,8 @@ namespace CMS_CORE_Library.Osai
|
||||
.Select(x => x.Split(';'))
|
||||
.Select(x => new NcShankModel
|
||||
{
|
||||
ShankId = int.Parse(x[0]),
|
||||
Balluf = int.Parse(x[1]),
|
||||
ShankId = ushort.Parse(x[0]),
|
||||
Balluf = ushort.Parse(x[1]),
|
||||
MagazineId = byte.Parse(x[2]),
|
||||
PositionId = byte.Parse(x[3]),
|
||||
MagazinePositionType = byte.Parse(x[4])
|
||||
@@ -3749,6 +3774,10 @@ namespace CMS_CORE_Library.Osai
|
||||
internal static class MEMORY_ADDRESS
|
||||
{
|
||||
internal const int STARTING_ADDRESS = 12000;
|
||||
|
||||
internal static MEMORY_CELL NC_WATCHDOG = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, STARTING_ADDRESS, 1);
|
||||
internal static MEMORY_CELL ACTIVE_WATCHDOG = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, STARTING_ADDRESS + 2, 1);
|
||||
|
||||
internal static MEMORY_CELL MATR_MACCH_OSAI = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 3403, 0, 1);
|
||||
internal static MEMORY_CELL FUNCTION_ACCESS = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 12003, 8);
|
||||
|
||||
|
||||
@@ -76,7 +76,7 @@ namespace CMS_CORE_Library.Siemens
|
||||
|
||||
// Tool table listeners
|
||||
private static ToolMngmntSvc SiemensToolSvc = null;
|
||||
|
||||
|
||||
private static DataSvc MagazinePositionSvc = null;
|
||||
private static DataSvc MagazineActionsSvc = null;
|
||||
|
||||
@@ -498,13 +498,13 @@ namespace CMS_CORE_Library.Siemens
|
||||
// Set the Nc Active Page of the NC
|
||||
public override CmsError NC_SetScreenVisible(SCREEN_PAGE screen)
|
||||
{
|
||||
Console.WriteLine(Infrastructure.CurrentActiveArea);
|
||||
string area = ConvertStepToSiemensScreen(screen);
|
||||
if (string.IsNullOrEmpty(area))
|
||||
return INCORRECT_PARAMETERS_ERROR;
|
||||
|
||||
if (Infrastructure.CurrentActiveArea != area)
|
||||
Infrastructure.SwitchToArea(area);
|
||||
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
@@ -514,6 +514,29 @@ namespace CMS_CORE_Library.Siemens
|
||||
|
||||
#region PLC High-level data
|
||||
|
||||
public override CmsError PLC_RWManageWatchdog()
|
||||
{
|
||||
bool plcWatchdog = false;
|
||||
CmsError cmsError = MEM_RWBoolean(R, 0, NC_WATCHDOG.MemType, NC_WATCHDOG.Address, NC_WATCHDOG.SubAddress, 1, ref plcWatchdog);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
if (plcWatchdog)
|
||||
{
|
||||
plcWatchdog = false;
|
||||
cmsError = MEM_RWBoolean(W, 0, NC_WATCHDOG.MemType, NC_WATCHDOG.Address, NC_WATCHDOG.SubAddress, 1, ref plcWatchdog);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
plcWatchdog = true;
|
||||
cmsError = MEM_RWBoolean(R, 0, ACTIVE_WATCHDOG.MemType, ACTIVE_WATCHDOG.Address, ACTIVE_WATCHDOG.SubAddress, 1, ref plcWatchdog);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
}
|
||||
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
public override CmsError PLC_RActiveMessages(ref List<PlcAlarmModel> alarms)
|
||||
{
|
||||
bool[] statusBits;
|
||||
@@ -1433,6 +1456,7 @@ namespace CMS_CORE_Library.Siemens
|
||||
{
|
||||
Dictionary<string, double> axes = new Dictionary<string, double>();
|
||||
List<AxisModel> axesConf = new List<AxisModel>();
|
||||
|
||||
CmsError cmsError = AXES_RAxesNames(channel, ref axesConf);
|
||||
|
||||
foreach (var conf in axesConf)
|
||||
@@ -5235,6 +5259,9 @@ namespace CMS_CORE_Library.Siemens
|
||||
{
|
||||
internal const int TABLE = 258;
|
||||
|
||||
internal static MEMORY_CELL NC_WATCHDOG = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, TABLE, 0, 1);
|
||||
internal static MEMORY_CELL ACTIVE_WATCHDOG = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, TABLE, 2, 1);
|
||||
|
||||
internal static MEMORY_CELL FUNCTION_ACCESS = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, TABLE, 6, 8);
|
||||
|
||||
internal static MEMORY_CELL PRE_POST_POWER_ON = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, TABLE, 2574, 2);
|
||||
|
||||
Reference in New Issue
Block a user