Fix SIemens Tools & Edges reading
This commit is contained in:
@@ -1996,14 +1996,15 @@ namespace CMS_CORE_Library.Siemens
|
||||
|
||||
try
|
||||
{
|
||||
Item[] items = new Item[6]
|
||||
Item[] items = new Item[7]
|
||||
{
|
||||
new Item { Path = "/Channel/State/actTNumber[u" + processId + ",1]" }, // ActiveToolId
|
||||
new Item { Path = "/Channel/State/actDNumber[u" + processId + ",1]" }, // OffsetId
|
||||
new Item { Path = "/Channel/State/actFrameIndex[u" + processId + "]" }, // Origin
|
||||
new Item { Path = "DB21.DBB4"}, // Work override
|
||||
new Item { Path = "DB21.DBB5"}, // Rapid override,
|
||||
new Item { Path = "/Channel/State/actFeedRateIpo[u" + processId + ", 1]"}
|
||||
new Item { Path = "/Channel/State/actFeedRateIpo[u" + processId + ", 1]"},
|
||||
new Item { Path = "/Nck/Configuration/numCuttEdgeParams[1]"}, // Cutt Edge Params
|
||||
};
|
||||
|
||||
// Read data
|
||||
@@ -2021,25 +2022,77 @@ namespace CMS_CORE_Library.Siemens
|
||||
}
|
||||
|
||||
OffsetModel offset = new OffsetModel();
|
||||
if (Convert.ToInt16(items[1].Value) != 0)
|
||||
|
||||
//Read the ID of the Tool & Edge
|
||||
short actualToolId = Convert.ToInt16(items[0].Value);
|
||||
short actualEdgeId = Convert.ToInt16(items[1].Value);
|
||||
short numCuttEdgeParams = Convert.ToInt16(items[6].Value);
|
||||
int offsetEdge = (actualEdgeId - 1) * numCuttEdgeParams;
|
||||
|
||||
if (actualToolId != 0 && actualEdgeId != 0)
|
||||
{
|
||||
//Setup the items for the tools. Must be read only this value
|
||||
Item[] itemsToolEdge = new Item[4]
|
||||
{
|
||||
new Item { Path = "/Tool/Compensation/edgeData[u1,c"+ actualToolId +","+ (offsetEdge + 3) + "]" }, // $TC_DP3
|
||||
new Item { Path = "/Tool/Compensation/edgeData[u1,c"+ actualToolId +","+ (offsetEdge + 6) + "]" }, // $TC_DP6
|
||||
new Item { Path = "/Tool/Compensation/edgeData[u1,c"+ actualToolId +","+ (offsetEdge + 12) + "]" }, // $TC_DP12
|
||||
new Item { Path = "/Tool/Compensation/edgeData[u1,c"+ actualToolId +","+ (offsetEdge + 15) + "]" } // $TC_DP15
|
||||
};
|
||||
|
||||
dataSvc.Read(itemsToolEdge);
|
||||
|
||||
offset = new OffsetModel()
|
||||
{
|
||||
Id = actualEdgeId,
|
||||
Length = Convert.ToDouble(itemsToolEdge[0].Value),
|
||||
Radius = Convert.ToDouble(itemsToolEdge[1].Value),
|
||||
WearLength = Convert.ToDouble(itemsToolEdge[2].Value),
|
||||
WearRadius = Convert.ToDouble(itemsToolEdge[3].Value),
|
||||
RealLength = Convert.ToDouble(itemsToolEdge[0].Value) + Convert.ToDouble(itemsToolEdge[2].Value),
|
||||
RealRadius = Convert.ToDouble(itemsToolEdge[1].Value) + Convert.ToDouble(itemsToolEdge[3].Value)
|
||||
};
|
||||
|
||||
/* Other Method. Find it in the Database of the Tools... Too SLow? (Nicola Carminati 08/08/19)
|
||||
// Find edge
|
||||
EdgeModel edge = ToolTableData.Where(x => x.Id == Convert.ToInt16(items[0].Value))
|
||||
.FirstOrDefault()
|
||||
.EdgesData.Where(x => x.Id == Convert.ToInt16(items[1].Value))
|
||||
.FirstOrDefault();
|
||||
|
||||
// Convert edgeModel to offsetModel
|
||||
offset = new OffsetModel()
|
||||
|
||||
//Find the Type of the Tool
|
||||
SiemensEdgesConfiguration toolEdgesConfig = new SiemensEdgesConfiguration();
|
||||
List<EdgeConfigModel> toolTypeConfig = toolEdgesConfig.EdgesConfig[
|
||||
ToolTableData.Where(x => x.Id == Convert.ToInt16(items[0].Value)).FirstOrDefault().ToolType
|
||||
];
|
||||
|
||||
if(toolTypeConfig != null && toolTypeConfig.Count > 0)
|
||||
{
|
||||
Id = (short)edge.Id,
|
||||
Length = edge.EdgeAdditionalParams["lenght"],
|
||||
Radius = edge.EdgeAdditionalParams["radius"],
|
||||
WearLength = edge.EdgeAdditionalParams["wearLenght"],
|
||||
WearRadius = edge.EdgeAdditionalParams["wearRadius"],
|
||||
RealLength = edge.EdgeAdditionalParams["lenght"] + edge.EdgeAdditionalParams["wearLenght"],
|
||||
RealRadius = edge.EdgeAdditionalParams["radius"] + edge.EdgeAdditionalParams["wearRadius"]
|
||||
};
|
||||
//Read Names of the parameters
|
||||
String lenghtName = toolTypeConfig.Where(x => x.Path == "$TC_DP3[").FirstOrDefault().Name;
|
||||
String radiusName = toolTypeConfig.Where(x => x.Path == "$TC_DP6[").FirstOrDefault().Name;
|
||||
String wearLenghtName = toolTypeConfig.Where(x => x.Path == "$TC_DP12[").FirstOrDefault().Name;
|
||||
String wearRadiusName = toolTypeConfig.Where(x => x.Path == "$TC_DP15[").FirstOrDefault().Name;
|
||||
|
||||
if(!String.IsNullOrEmpty(wearLenghtName) && !String.IsNullOrEmpty(wearRadiusName) && !String.IsNullOrEmpty(lenghtName) && !String.IsNullOrEmpty(radiusName))
|
||||
{
|
||||
// Convert edgeModel to offsetModel
|
||||
offset = new OffsetModel()
|
||||
{
|
||||
Id = (short)edge.Id,
|
||||
Length = edge.EdgeAdditionalParams[lenghtName],
|
||||
Radius = edge.EdgeAdditionalParams[radiusName],
|
||||
WearLength = edge.EdgeAdditionalParams[wearLenghtName],
|
||||
WearRadius = edge.EdgeAdditionalParams[wearRadiusName],
|
||||
RealLength = edge.EdgeAdditionalParams[lenghtName] + edge.EdgeAdditionalParams[wearLenghtName],
|
||||
RealRadius = edge.EdgeAdditionalParams[radiusName] + edge.EdgeAdditionalParams[wearRadiusName]
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
}*/
|
||||
|
||||
}
|
||||
|
||||
// Creata return model
|
||||
|
||||
@@ -5,6 +5,14 @@ namespace CMS_CORE_Library.Siemens
|
||||
{
|
||||
internal class SiemensEdgesConfiguration
|
||||
{
|
||||
|
||||
//This Parameter must be present for every tooltype!!!!
|
||||
//
|
||||
// $TC_DP3
|
||||
// $TC_DP6
|
||||
// $TC_DP12
|
||||
// $TC_DP15
|
||||
|
||||
public Dictionary<int, List<EdgeConfigModel>> EdgesConfig = new Dictionary<int, List<EdgeConfigModel>>()
|
||||
{
|
||||
{
|
||||
@@ -105,7 +113,7 @@ namespace CMS_CORE_Library.Siemens
|
||||
new EdgeConfigModel{ Name = "vector1", Path = "$TC_DPV3[", Number = 28},
|
||||
new EdgeConfigModel{ Name = "vector2", Path = "$TC_DPV4[", Number = 29},
|
||||
new EdgeConfigModel{ Name = "vector3", Path = "$TC_DPV5[", Number = 30},
|
||||
new EdgeConfigModel{ Name = "teeth", Path = "$TC_DPNT[", Number = 34 }
|
||||
new EdgeConfigModel{ Name = "teeth", Path = "$TC_DPNT[", Number = 34 },
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -115,8 +123,9 @@ namespace CMS_CORE_Library.Siemens
|
||||
new EdgeConfigModel{ Name = "lenght", Path = "$TC_DP3[", Number = 3},
|
||||
new EdgeConfigModel{ Name = "radius", Path = "$TC_DP6[", Number = 6},
|
||||
new EdgeConfigModel{ Name = "outsideRadius", Path = "$TC_DP7[", Number = 7},
|
||||
new EdgeConfigModel{ Name = "ToolAngle", Path = "$TC_DP11[", Number = 11},
|
||||
new EdgeConfigModel{ Name = "teeth", Path = "$TC_DPNT[", Number = 34 }
|
||||
new EdgeConfigModel{ Name = "toolAngle", Path = "$TC_DP11[", Number = 11},
|
||||
new EdgeConfigModel{ Name = "wearLenght", Path = "$TC_DP12[", Number = 12},
|
||||
new EdgeConfigModel{ Name = "wearRadius", Path = "$TC_DP15[", Number = 15},
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -321,9 +330,9 @@ namespace CMS_CORE_Library.Siemens
|
||||
new EdgeConfigModel{ Name = "geomWearLenght1", Path = "$TC_DP12[", Number = 12},
|
||||
new EdgeConfigModel{ Name = "geomWearLenght2", Path = "$TC_DP13[", Number = 13},
|
||||
new EdgeConfigModel{ Name = "geomWearLenght3", Path = "$TC_DP14[", Number = 14},
|
||||
new EdgeConfigModel{ Name = "WearDiameter", Path = "$TC_DP15[", Number = 15},
|
||||
new EdgeConfigModel{ Name = "WearSlotWdth", Path = "$TC_DP16[", Number = 16},
|
||||
new EdgeConfigModel{ Name = "WearGeomPrjection", Path = "$TC_DP17[", Number = 17},
|
||||
new EdgeConfigModel{ Name = "wearDiameter", Path = "$TC_DP15[", Number = 15},
|
||||
new EdgeConfigModel{ Name = "wearSlotWdth", Path = "$TC_DP16[", Number = 16},
|
||||
new EdgeConfigModel{ Name = "wearGeomPrjection", Path = "$TC_DP17[", Number = 17},
|
||||
new EdgeConfigModel{ Name = "adapterLenght1", Path = "$TC_DP21[", Number = 21},
|
||||
new EdgeConfigModel{ Name = "adapterLenght2", Path = "$TC_DP22[", Number = 22},
|
||||
new EdgeConfigModel{ Name = "adapterLenght3", Path = "$TC_DP23[", Number = 23}
|
||||
|
||||
Reference in New Issue
Block a user