Added Read process data

This commit is contained in:
Lucio Maranta
2018-02-05 15:07:27 +00:00
parent 18b4e5452b
commit 1af30e3e15
15 changed files with 311 additions and 141 deletions
+4 -3
View File
@@ -82,7 +82,6 @@ namespace CMS_CORE_Application
while (true)
{
sw.Restart();
cmsError = N.PROC_RMode(1, ref mode);
if (cmsError.IsError())
{
@@ -133,8 +132,10 @@ namespace CMS_CORE_Application
// error = true;
// SetError(Lines, cmsError);
//}
ProcessPartProgramData process = new ProcessPartProgramData();
cmsError = N.PROC_RPartProgramData(1, ref process);
ProcessData process = new ProcessData();
sw.Restart();
cmsError = N.PROC_RStatus(1, ref process);
sw.Stop();
cmsError = N.NC_RDateTime(ref NcTime);
if (cmsError.IsError())
{
+5 -2
View File
@@ -111,12 +111,15 @@ namespace CMS_CORE_Library
public int process;
}
public class ProcessPartProgramData
public class ProcessData
{
public ushort Id;
public string Type;
public bool IsInAlarm;
public string PartProgramName;
public PROC_STATUS Status;
public string Status;
public bool Visible;
public byte Reps;
}
#endregion
+3
View File
@@ -44,6 +44,9 @@ namespace Nc_Demo_Application.Server.Service
[WebGet(UriTemplate = "process/{id}/status/", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)]
void GetProcessStatus(string id, out int status);
[WebGet(UriTemplate = "process/{id}/part_program_name/", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)]
void GetProcessPartProgram(string id, out string partProgramName);
[WebGet(UriTemplate = "process/{id}/mode/", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)]
void GetProcessMode(string id, out int mode);
@@ -13,5 +13,6 @@ namespace CMS_CORE.Demo.Models
public int status;
public int mode;
public int enabled;
public string partProgramName { get; set; }
}
}
+55 -12
View File
@@ -432,7 +432,7 @@ namespace CMS_CORE.Demo
}
// Get process part program data
public override CmsError PROC_RPartProgramData(ushort procNumber, ref ProcessPartProgramData processData)
public override CmsError PROC_RStatus(ushort procNumber, ref ProcessData processData)
{
processData.Id = procNumber;
// Read part program name
@@ -440,15 +440,40 @@ namespace CMS_CORE.Demo
if (cmsError.IsError())
return cmsError;
// Read process status
cmsError = PROC_RStatus(procNumber, ref processData.Status);
ushort readValue = 0;
// Read processes status from memory
cmsError = MEM_RWWord(R, 0, MEMORY_ADDRESS.PRE_POWER_ON.MemType, MEMORY_ADDRESS.PROCESS_STATUS.Address + 2 * (procNumber - 1), ref readValue);
if (cmsError.IsError())
return cmsError;
// Read part program info visibility
processData.Visible = true;
byte[] bytes = BitConverter.GetBytes(readValue);
// Convert Byte into true/false array
BitArray bits = new BitArray(new byte[] { bytes[0] }); //1st byte -> 0 : Proccess type (AUX-WORK), 1: Process in alarm status, 2: Run, 3: Hold, 4: Read, 5: PartProgramVisible
// Populate response structure
processData.Type = bits[0] ? "WORK" : "AUX";
processData.IsInAlarm = bits[1];
// Choose process status
if (bits[2])
processData.Status = "RUN";
else
{
if (bits[3])
processData.Status = "HOLD";
else
processData.Status = "READY";
}
// Get Reps from 2nd byte
processData.Reps = bytes[1];
// Get part program info visibility
processData.Visible = bits[5];
return NO_ERROR;
}
#endregion
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -1141,7 +1166,22 @@ namespace CMS_CORE.Demo
public override CmsError PROC_RPPName(ushort ProcNumber, ref string Name)
{
return FUNCTION_NOT_ALLOWED_ERROR;
// Check if the NC Demo is Connected
CmsError cmsError = CheckConnection();
if (cmsError.IsError())
return cmsError;
try
{
// Get status from server
serverService.GetProcessPartProgram(ProcNumber.ToString(), out Name);
}
catch (Exception ex)
{
return ManageException(ex);
}
return NO_ERROR;
}
// Create and return CmsError object
@@ -1157,13 +1197,16 @@ namespace CMS_CORE.Demo
{
internal const int STARTING_ADDRESS = 0;
internal static MEMORY_CELL PRE_POWER_ON = new MEMORY_CELL(MEMORY_Type.Demo, 13, 0, 1);
internal static MEMORY_CELL PRE_POWER_ON_CLICKABLE = new MEMORY_CELL(MEMORY_Type.Demo, 14, 0, 1);
internal static MEMORY_CELL PRE_POWER_ON = new MEMORY_CELL(MEMORY_Type.Demo, 29, 0, 1);
internal static MEMORY_CELL PRE_POWER_ON_CLICKABLE = new MEMORY_CELL(MEMORY_Type.Demo, 30, 0, 1);
internal static MEMORY_CELL POST_POWER_ON = new MEMORY_CELL(MEMORY_Type.Demo, 15, 0, 1);
internal static MEMORY_CELL POST_POWER_ON_CLICKABLE = new MEMORY_CELL(MEMORY_Type.Demo, 16, 0, 1);
internal static MEMORY_CELL POST_POWER_ON = new MEMORY_CELL(MEMORY_Type.Demo, 31, 0, 1);
internal static MEMORY_CELL POST_POWER_ON_CLICKABLE = new MEMORY_CELL(MEMORY_Type.Demo, 32, 0, 1);
internal static MEMORY_CELL PRE_POWER_ON_CLICKED = new MEMORY_CELL(MEMORY_Type.Demo, 33, 0, 1);
internal static MEMORY_CELL POST_POWER_ON_CLICKED = new MEMORY_CELL(MEMORY_Type.Demo, 34, 0, 1);
internal static MEMORY_CELL PROCESS_STATUS = new MEMORY_CELL(MEMORY_Type.Demo, 37, 0, 1);
internal static MEMORY_CELL PRE_POWER_ON_CLICKED = new MEMORY_CELL(MEMORY_Type.Demo, 17, 0, 1);
internal static MEMORY_CELL POST_POWER_ON_CLICKED = new MEMORY_CELL(MEMORY_Type.Demo, 18, 0, 1);
}
}
+35 -12
View File
@@ -507,20 +507,43 @@ namespace CMS_CORE.Fanuc
}
// Get process part program data
public override CmsError PROC_RPartProgramData(ushort procNumber, ref ProcessPartProgramData processData)
public override CmsError PROC_RStatus(ushort procNumber, ref ProcessData processData)
{
processData.Id = procNumber;
// Read part program name
CmsError cmsError = PROC_RPPName(procNumber, ref processData.PartProgramName);
if (cmsError.IsError())
return cmsError;
//processData.Id = procNumber;
//// Read part program name
//CmsError cmsError = PROC_RPPName(procNumber, ref processData.PartProgramName);
//if (cmsError.IsError())
// return cmsError;
// Read process status
cmsError = PROC_RStatus(procNumber, ref processData.Status);
if (cmsError.IsError())
return cmsError;
// Read part program info visibility
processData.Visible = true;
//ushort readValue = 0;
//// Read processes status from memory
//cmsError = MEM_RWWord(R, 0, MEMORY_ADDRESS.PRE_POWER_ON.MemType, MEMORY_ADDRESS.PROCESS_STATUS.Address + 2 * (procNumber - 1), ref readValue);
//if (cmsError.IsError())
// return cmsError;
//byte[] bytes = BitConverter.GetBytes(readValue);
//// Convert Byte into true/false array
//BitArray bits = new BitArray(new byte[] { bytes[0] }); //1st byte -> 0 : Proccess type (AUX-WORK), 1: Process in alarm status, 2: Run, 3: Hold, 4: Read, 5: PartProgramVisible
//// Populate response structure
//processData.Type = bits[0] ? "WORK" : "AUX";
//processData.IsInAlarm = bits[1];
//// Choose process status
//if (bits[2])
// processData.Status = "RUN";
//else
//{
// if (bits[3])
// processData.Status = "HOLD";
// else
// processData.Status = "READY";
//}
//// Get Reps from 2nd byte
//processData.Reps = bytes[1];
//// Get part program info visibility
//processData.Visible = bits[5];
return NO_ERROR;
}
+1 -1
View File
@@ -494,7 +494,7 @@ namespace CMS_CORE
* <param name="processData">Reference to part program data structure</param>
* </summary>
**/
public abstract CmsError PROC_RPartProgramData(ushort procNumber, ref ProcessPartProgramData processData);
public abstract CmsError PROC_RStatus(ushort procNumber, ref ProcessData processData);
#endregion
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+35 -12
View File
@@ -620,20 +620,43 @@ namespace CMS_CORE.Osai
}
// Get process part program data
public override CmsError PROC_RPartProgramData(ushort procNumber, ref ProcessPartProgramData processData)
public override CmsError PROC_RStatus(ushort procNumber, ref ProcessData processData)
{
processData.Id = procNumber;
// Read part program name
CmsError cmsError = PROC_RPPName(procNumber, ref processData.PartProgramName);
if (cmsError.IsError())
return cmsError;
//processData.Id = procNumber;
//// Read part program name
//CmsError cmsError = PROC_RPPName(procNumber, ref processData.PartProgramName);
//if (cmsError.IsError())
// return cmsError;
// Read process status
cmsError = PROC_RStatus(procNumber, ref processData.Status);
if (cmsError.IsError())
return cmsError;
// Read part program info visibility
processData.Visible = true;
//ushort readValue = 0;
//// Read processes status from memory
//cmsError = MEM_RWWord(R, 0, MEMORY_ADDRESS.PRE_POWER_ON.MemType, MEMORY_ADDRESS.PROCESS_STATUS.Address + 2 * (procNumber - 1), ref readValue);
//if (cmsError.IsError())
// return cmsError;
//byte[] bytes = BitConverter.GetBytes(readValue);
//// Convert Byte into true/false array
//BitArray bits = new BitArray(new byte[] { bytes[0] }); //1st byte -> 0 : Proccess type (AUX-WORK), 1: Process in alarm status, 2: Run, 3: Hold, 4: Read, 5: PartProgramVisible
//// Populate response structure
//processData.Type = bits[0] ? "WORK" : "AUX";
//processData.IsInAlarm = bits[1];
//// Choose process status
//if (bits[2])
// processData.Status = "RUN";
//else
//{
// if (bits[3])
// processData.Status = "HOLD";
// else
// processData.Status = "READY";
//}
//// Get Reps from 2nd byte
//processData.Reps = bytes[1];
//// Get part program info visibility
//processData.Visible = bits[5];
return NO_ERROR;
}
+35 -12
View File
@@ -481,20 +481,43 @@ namespace CMS_CORE.Siemens
}
// Get process part program data
public override CmsError PROC_RPartProgramData(ushort procNumber, ref ProcessPartProgramData processData)
public override CmsError PROC_RStatus(ushort procNumber, ref ProcessData processData)
{
processData.Id = procNumber;
// Read part program name
CmsError cmsError = PROC_RPPName(procNumber, ref processData.PartProgramName);
if (cmsError.IsError())
return cmsError;
//processData.Id = procNumber;
//// Read part program name
//CmsError cmsError = PROC_RPPName(procNumber, ref processData.PartProgramName);
//if (cmsError.IsError())
// return cmsError;
// Read process status
cmsError = PROC_RStatus(procNumber, ref processData.Status);
if (cmsError.IsError())
return cmsError;
// Read part program info visibility
processData.Visible = true;
//ushort readValue = 0;
//// Read processes status from memory
//cmsError = MEM_RWWord(R, 0, MEMORY_ADDRESS.PRE_POWER_ON.MemType, MEMORY_ADDRESS.PROCESS_STATUS.Address + 2 * (procNumber - 1), ref readValue);
//if (cmsError.IsError())
// return cmsError;
//byte[] bytes = BitConverter.GetBytes(readValue);
//// Convert Byte into true/false array
//BitArray bits = new BitArray(new byte[] { bytes[0] }); //1st byte -> 0 : Proccess type (AUX-WORK), 1: Process in alarm status, 2: Run, 3: Hold, 4: Read, 5: PartProgramVisible
//// Populate response structure
//processData.Type = bits[0] ? "WORK" : "AUX";
//processData.IsInAlarm = bits[1];
//// Choose process status
//if (bits[2])
// processData.Status = "RUN";
//else
//{
// if (bits[3])
// processData.Status = "HOLD";
// else
// processData.Status = "READY";
//}
//// Get Reps from 2nd byte
//processData.Reps = bytes[1];
//// Get part program info visibility
//processData.Visible = bits[5];
return NO_ERROR;
}
@@ -194,7 +194,8 @@ namespace Nc_Demo_Application.Database
id = Convert.ToInt32(row["id"]),
name = row["name"].ToString(),
status = Convert.ToInt32(row["status"]),
mode = Convert.ToInt32(row["mode"])
mode = Convert.ToInt32(row["mode"]),
partProgramName = row["part_program_name"].ToString()
};
// Add tmp to return list
processes.Add(tmpProcess);
@@ -12,5 +12,6 @@ namespace Nc_Demo_Application.Database.Models
public string name { get; set; }
public int status;
public int mode;
public string partProgramName { get; set; }
}
}
@@ -45,6 +45,9 @@ namespace Nc_Demo_Application.Server.Service
[WebGet(UriTemplate = "process/{id}/status/", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)]
void ProcessStatus(string id, out int status);
[WebGet(UriTemplate = "process/{id}/part_program_name/", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)]
void ProcessPartProgram(string id, out string partProgramName);
[WebGet(UriTemplate = "process/{id}/mode/", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)]
void ProcessMode(string id, out int mode);
@@ -70,18 +70,31 @@ namespace Nc_Demo_Application.Server.Service
public void ProcessStatus(string id, out int status)
{
CheckProcess(Convert.ToInt32(id));
List<NcProcessModel> ncProcessesData = DatabaseController.getInstance().GetNcProcesses();
status = ncProcessesData.Find(i => i.id == Convert.ToInt32(id)).status;
}
public void ProcessPartProgram(string id, out string partProgramName)
{
CheckProcess(Convert.ToInt32(id));
List<NcProcessModel> ncProcessesData = DatabaseController.getInstance().GetNcProcesses();
partProgramName = ncProcessesData.Find(i => i.id == Convert.ToInt32(id)).partProgramName;
}
public void ProcessMode(string id, out int mode)
{
CheckProcess(Convert.ToInt32(id));
List<NcProcessModel> ncProcessesData = DatabaseController.getInstance().GetNcProcesses();
mode = ncProcessesData.Find(i => i.id == Convert.ToInt32(id)).mode;
}
public void ProcessAlarms(string id, out List<NcAlarmModel> alarms)
{
CheckProcess(Convert.ToInt32(id));
List<NcAlarmModel> ncAlarmsData = DatabaseController.getInstance().GetNcAlarms();
alarms = ncAlarmsData.FindAll(i => i.processId == Convert.ToInt32(id));
}
@@ -89,6 +102,14 @@ namespace Nc_Demo_Application.Server.Service
{
alarms = DatabaseController.getInstance().GetNcAlarms();
}
private void CheckProcess(int processId)
{
ProcessNumber(out ushort processNumber);
if( processId > processNumber)
throw new WebFaultException(HttpStatusCode.BadRequest);
}
public void GetAxesActualPosition(string id, out List<NcAxisModel> axes)
{
List<NcAxisModel> ncAxesModel = DatabaseController.getInstance().GetNcAxes();
@@ -55,10 +55,6 @@
this.toolStrip1 = new System.Windows.Forms.ToolStrip();
this.saveNcProcessData = new System.Windows.Forms.ToolStripButton();
this.ncProcessGridView = new System.Windows.Forms.DataGridView();
this.ncProcessIdColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.ncProcessNameColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.ncProcessStatusColumn = new System.Windows.Forms.DataGridViewComboBoxColumn();
this.ncProcessModeColumn = new System.Windows.Forms.DataGridViewComboBoxColumn();
this.alarms = new System.Windows.Forms.TabPage();
this.toolStrip3 = new System.Windows.Forms.ToolStrip();
this.saveNcAlarmsButton = new System.Windows.Forms.ToolStripButton();
@@ -99,6 +95,11 @@
this.newFileNameTextBox = new System.Windows.Forms.ToolStripTextBox();
this.fileTreeView = new System.Windows.Forms.TreeView();
this.stopServer = new System.Windows.Forms.Button();
this.ncProcessIdColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.ProcessPartProgram = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.ncProcessNameColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.ncProcessStatusColumn = new System.Windows.Forms.DataGridViewComboBoxColumn();
this.ncProcessModeColumn = new System.Windows.Forms.DataGridViewComboBoxColumn();
this.ncDataPage.SuspendLayout();
this.toolStrip5.SuspendLayout();
this.ncTabControl.SuspendLayout();
@@ -374,6 +375,7 @@
this.ncProcessGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.ncProcessGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.ncProcessIdColumn,
this.ProcessPartProgram,
this.ncProcessNameColumn,
this.ncProcessStatusColumn,
this.ncProcessModeColumn});
@@ -383,33 +385,6 @@
this.ncProcessGridView.TabIndex = 4;
this.ncProcessGridView.DataError += new System.Windows.Forms.DataGridViewDataErrorEventHandler(this.ncProcessGridView_DataError);
//
// ncProcessIdColumn
//
this.ncProcessIdColumn.DataPropertyName = "id";
this.ncProcessIdColumn.HeaderText = "Process Id";
this.ncProcessIdColumn.Name = "ncProcessIdColumn";
this.ncProcessIdColumn.ReadOnly = true;
//
// ncProcessNameColumn
//
this.ncProcessNameColumn.DataPropertyName = "name";
this.ncProcessNameColumn.HeaderText = "Name";
this.ncProcessNameColumn.Name = "ncProcessNameColumn";
//
// ncProcessStatusColumn
//
this.ncProcessStatusColumn.DataPropertyName = "status";
this.ncProcessStatusColumn.HeaderText = "Status";
this.ncProcessStatusColumn.Name = "ncProcessStatusColumn";
this.ncProcessStatusColumn.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.ncProcessStatusColumn.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
//
// ncProcessModeColumn
//
this.ncProcessModeColumn.DataPropertyName = "mode";
this.ncProcessModeColumn.HeaderText = "Mode";
this.ncProcessModeColumn.Name = "ncProcessModeColumn";
//
// alarms
//
this.alarms.Controls.Add(this.toolStrip3);
@@ -797,6 +772,39 @@
this.stopServer.UseVisualStyleBackColor = true;
this.stopServer.Click += new System.EventHandler(this.StopServer_Click);
//
// ncProcessIdColumn
//
this.ncProcessIdColumn.DataPropertyName = "id";
this.ncProcessIdColumn.HeaderText = "Process Id";
this.ncProcessIdColumn.Name = "ncProcessIdColumn";
this.ncProcessIdColumn.ReadOnly = true;
//
// ProcessPartProgram
//
this.ProcessPartProgram.DataPropertyName = "part_program_name";
this.ProcessPartProgram.HeaderText = "Part Program Name";
this.ProcessPartProgram.Name = "ProcessPartProgram";
//
// ncProcessNameColumn
//
this.ncProcessNameColumn.DataPropertyName = "name";
this.ncProcessNameColumn.HeaderText = "Name";
this.ncProcessNameColumn.Name = "ncProcessNameColumn";
//
// ncProcessStatusColumn
//
this.ncProcessStatusColumn.DataPropertyName = "status";
this.ncProcessStatusColumn.HeaderText = "Status";
this.ncProcessStatusColumn.Name = "ncProcessStatusColumn";
this.ncProcessStatusColumn.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.ncProcessStatusColumn.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
//
// ncProcessModeColumn
//
this.ncProcessModeColumn.DataPropertyName = "mode";
this.ncProcessModeColumn.HeaderText = "Mode";
this.ncProcessModeColumn.Name = "ncProcessModeColumn";
//
// DemoApplicationForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@@ -872,10 +880,6 @@
private System.Windows.Forms.ToolStrip toolStrip1;
private System.Windows.Forms.ToolStripButton saveNcProcessData;
private System.Windows.Forms.DataGridView ncProcessGridView;
private System.Windows.Forms.DataGridViewTextBoxColumn ncProcessIdColumn;
private System.Windows.Forms.DataGridViewTextBoxColumn ncProcessNameColumn;
private System.Windows.Forms.DataGridViewComboBoxColumn ncProcessStatusColumn;
private System.Windows.Forms.DataGridViewComboBoxColumn ncProcessModeColumn;
private System.Windows.Forms.TabPage alarms;
private System.Windows.Forms.ToolStrip toolStrip3;
private System.Windows.Forms.ToolStripButton saveNcAlarmsButton;
@@ -916,6 +920,11 @@
private System.Windows.Forms.ToolStripTextBox newFileNameTextBox;
private System.Windows.Forms.TreeView fileTreeView;
private System.Windows.Forms.Button stopServer;
private System.Windows.Forms.DataGridViewTextBoxColumn ncProcessIdColumn;
private System.Windows.Forms.DataGridViewTextBoxColumn ProcessPartProgram;
private System.Windows.Forms.DataGridViewTextBoxColumn ncProcessNameColumn;
private System.Windows.Forms.DataGridViewComboBoxColumn ncProcessStatusColumn;
private System.Windows.Forms.DataGridViewComboBoxColumn ncProcessModeColumn;
}
}
@@ -135,45 +135,33 @@
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>542, 56</value>
</metadata>
<metadata name="ncProcessIdColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ProcessPartProgram.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ncProcessNameColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ncProcessStatusColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ncProcessModeColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="toolStrip3.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>647, 56</value>
</metadata>
<metadata name="toolStrip4.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>752, 56</value>
</metadata>
<metadata name="axisIdColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="axisNameColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="axisActualColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="axisProgrammedColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="axisMachinePositionColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="axisDistanceToGoColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="axisProcessColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="followErrorProcessColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="toolStrip2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 95</value>
</metadata>
<metadata name="toolStrip6.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>122, 95</value>
</metadata>
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>542, 56</value>
</metadata>
<data name="saveNcProcessData.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
@@ -182,30 +170,6 @@
SUVORK5CYII=
</value>
</data>
<metadata name="ncProcessIdColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ncProcessNameColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ncProcessStatusColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ncProcessModeColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ncProcessIdColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ncProcessNameColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ncProcessStatusColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ncProcessModeColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="toolStrip3.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>647, 56</value>
</metadata>
@@ -241,6 +205,9 @@
<metadata name="ncAlarmIdColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="toolStrip4.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>752, 56</value>
</metadata>
<data name="saveNcAxesButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
@@ -249,6 +216,54 @@
SUVORK5CYII=
</value>
</data>
<metadata name="axisIdColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="axisNameColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="axisActualColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="axisProgrammedColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="axisMachinePositionColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="axisDistanceToGoColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="axisProcessColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="followErrorProcessColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="axisIdColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="axisNameColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="axisActualColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="axisProgrammedColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="axisMachinePositionColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="axisDistanceToGoColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="axisProcessColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="followErrorProcessColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="toolStrip2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 95</value>
</metadata>