|
@@ -132,6 +132,8 @@ namespace HEIDENHAIN
|
|
|
ResponseBody responseBody = new ResponseBody();
|
|
|
string body = null;
|
|
|
RequestBody hdhBody =null;
|
|
|
+ // 给机床写入数据的时候,判断写入到第几个
|
|
|
+ String writePar = "";
|
|
|
try
|
|
|
{
|
|
|
Stream stream = context.Request.InputStream;
|
|
@@ -320,7 +322,7 @@ namespace HEIDENHAIN
|
|
|
JHDataAccess dataAccess = Machine.GetInterface(HeidenhainDNCLib.DNC_INTERFACE_OBJECT.DNC_INTERFACE_JHDATAACCESS);
|
|
|
dataAccess.SetAccessMode(DNC_ACCESS_MODE.DNC_ACCESS_MODE_TABLEDATAACCESS, "");
|
|
|
//string ToolColumnNamesAccessor = @"\TABLE\TOOL\T\('1'-'50')"; // see Init()
|
|
|
- string ToolColumnNamesAccessor = @"\TABLE\TOOL_P\T\('1'-'50')";
|
|
|
+ string ToolColumnNamesAccessor = @"\TABLE\TOOL_P\P\('1.1'-'1.50')";
|
|
|
IJHDataEntry2 ToolTable = dataAccess.GetDataEntry2(ToolColumnNamesAccessor, DNC_DATA_UNIT_SELECT.DNC_DATA_UNIT_SELECT_METRIC, false);
|
|
|
IJHDataEntry2List ToolLines = ToolTable.GetChildList();
|
|
|
int ToolLinesCount = ToolLines.Count >= 50 ? 50 : ToolLines.Count;
|
|
@@ -376,86 +378,107 @@ namespace HEIDENHAIN
|
|
|
|
|
|
/*刀具表数据修改*/
|
|
|
//刀具表查询语句
|
|
|
+ writePar = "刀具表写入开始";
|
|
|
string ToolColumnNamesAccessor = @"\TABLE\TOOL\T\" + jsonObject.GetValue("cutterT");
|
|
|
//刀具表数据
|
|
|
IJHDataEntry2 ToolTable = dataAccess.GetDataEntry2(ToolColumnNamesAccessor, DNC_DATA_UNIT_SELECT.DNC_DATA_UNIT_SELECT_METRIC, false);
|
|
|
// 获取字段列表
|
|
|
IJHDataEntry2List ToolLines = ToolTable.GetChildList();
|
|
|
|
|
|
+ // 换刀标识移除
|
|
|
+ returnData.Add("doc", "");
|
|
|
+ writePar = "doc";
|
|
|
+ ToolLines[14].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, "", false);
|
|
|
|
|
|
//设置刀具名-对应机床表name
|
|
|
var data1 = ToolLines[1].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
returnData.Add("cutterName", data1);
|
|
|
- ToolLines[1].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("cutterName", out JToken cutterName) ? jsonObject.GetValue("cutterName") : "" , false);
|
|
|
+ writePar = "cutterName";
|
|
|
+ ToolLines[1].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("cutterName", out JToken cutterName) ? jsonObject.GetValue("cutterName") : "", false);
|
|
|
|
|
|
//刀具类型 - 对应机床TYP
|
|
|
var data2 = ToolLines[13].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
returnData.Add("cutterTypDnc", data2);
|
|
|
+ writePar = "cutterTypDnc";
|
|
|
ToolLines[13].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("cutterTypDnc", out JToken cutterTypDnc) ? jsonObject.GetValue("cutterTypDnc") : "0", false);
|
|
|
|
|
|
//刀具长度 - 对应机床 L
|
|
|
var data3 = ToolLines[2].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
returnData.Add("cutterZl", data3);
|
|
|
+ writePar = "cutterZl";
|
|
|
ToolLines[2].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("cutterZl", out JToken cutterZl) ? jsonObject.GetValue("cutterZl") : "0", false);
|
|
|
|
|
|
//刀具半径 - 对应机床R
|
|
|
var data4 = ToolLines[3].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
returnData.Add("cutterXl", data4);
|
|
|
- ToolLines[3].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("cutterXl", out JToken cutterXl) ? jsonObject.GetValue("cutterXl") : "0", false);
|
|
|
+ writePar = "cutterXl";
|
|
|
+ ToolLines[3].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("cutterXl", out JToken cutterXl) ? jsonObject.GetValue("cutterXl") : "0", false);
|
|
|
|
|
|
//刀具寿命 - 对应机床time1
|
|
|
var data5 = ToolLines[10].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
returnData.Add("cutterTime1", data5);
|
|
|
+ writePar = "cutterTime1";
|
|
|
ToolLines[10].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("cutterTime1", out JToken cutterTime1) ? jsonObject.GetValue("cutterTime1") : "0", false);
|
|
|
|
|
|
//刀具寿命 - 对应机床time2
|
|
|
var data6 = ToolLines[11].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
returnData.Add("cutterTime2", data6);
|
|
|
+ writePar = "cutterTime2";
|
|
|
ToolLines[11].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("cutterTime2", out JToken cutterTime2) ? jsonObject.GetValue("cutterTime2") : "0", false);
|
|
|
|
|
|
//PLC状态 - 对应机床
|
|
|
var data7 = ToolLines[15].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
returnData.Add("cutterPlcBit", data7);
|
|
|
+ writePar = "cutterPlcBit";
|
|
|
ToolLines[15].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("cutterPlcBit", out JToken cutterPlcBit) ? jsonObject.GetValue("cutterPlcBit") : "0", false);
|
|
|
|
|
|
//刀具使用寿命,不允许超过该值 -- 对应机床
|
|
|
var data8 = ToolLines[45].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
returnData.Add("cutterOverTime", data8);
|
|
|
+ writePar = "cutterOverTime";
|
|
|
ToolLines[45].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("cutterOverTime", out JToken cutterOverTime) ? jsonObject.GetValue("cutterOverTime") : "0", false);
|
|
|
|
|
|
//在刀具轴方向上的刀齿长
|
|
|
var data9 = ToolLines[16].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
returnData.Add("lcuts", data9);
|
|
|
+ writePar = "lcuts";
|
|
|
ToolLines[16].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("lcuts", out JToken lcuts) ? jsonObject.GetValue("lcuts") : "0", false);
|
|
|
|
|
|
//准确定义刀具的切削刃正面宽度
|
|
|
var data10 = ToolLines[46].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
returnData.Add("rcuts", data10);
|
|
|
+ writePar = "rcuts";
|
|
|
ToolLines[46].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("rcuts", out JToken rcuts) ? jsonObject.GetValue("rcuts") : "0", false);
|
|
|
|
|
|
//准确定义刀具的刀具可用长度
|
|
|
var data11 = ToolLines[17].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
returnData.Add("lu", data11);
|
|
|
+ writePar = "lu";
|
|
|
ToolLines[17].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("lu", out JToken lu) ? jsonObject.GetValue("lu") : "0", false);
|
|
|
|
|
|
//准确定义刀具的刀颈半径
|
|
|
var data12 = ToolLines[18].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
returnData.Add("rn", data12);
|
|
|
+ writePar = "rn";
|
|
|
ToolLines[18].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("rn", out JToken rn) ? jsonObject.GetValue("rn") : "0", false);
|
|
|
|
|
|
//最大的切入角度
|
|
|
var data13 = ToolLines[19].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
returnData.Add("angle", data13);
|
|
|
+ writePar = "angle";
|
|
|
ToolLines[19].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("angle", out JToken angle) ? jsonObject.GetValue("angle") : "0", false);
|
|
|
|
|
|
var data14 = ToolLines[31].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
returnData.Add("nmax", data14);
|
|
|
+ writePar = "nmax";
|
|
|
ToolLines[31].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("nmax", out JToken nmax) ? jsonObject.GetValue("nmax") : "0", false);
|
|
|
|
|
|
|
|
|
// 如果没有子车刀类型,不需要往车刀表添加
|
|
|
- if (jsonObject.TryGetValue("cutterTypSubDnc", out JToken value))
|
|
|
+ if (!string.IsNullOrEmpty(jsonObject.GetValue("cutterTypSubDnc").ToString())
|
|
|
+ && jsonObject.TryGetValue("cutterTypSubDnc", out JToken value) && value != null)
|
|
|
{
|
|
|
+ writePar = "车刀表写入开始";
|
|
|
/*车刀表数据设置更新*/
|
|
|
// 车刀表数据查询语句
|
|
|
string CheDaoColumnNamesAccessor = @"\TABLE\TOOLTURN\T\" + jsonObject.GetValue("cutterT");
|
|
@@ -470,102 +493,137 @@ namespace HEIDENHAIN
|
|
|
// 设置刀具在Z轴方向上的长度 - 对应机床 ZL
|
|
|
var cdData1 = CheDaoLines[2].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
returnData["cutterZl"] = cdData1;
|
|
|
+ writePar = "cutterZl";
|
|
|
CheDaoLines[2].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("cutterZl", out JToken cutterZl_cd) ? jsonObject.GetValue("cutterZl") : "0", false);
|
|
|
|
|
|
// 车刀在X轴方向上的长度 - 对应机床XL
|
|
|
var cdData2 = CheDaoLines[3].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
returnData["cutterXl"] = cdData2;
|
|
|
+ writePar = "cutterXl";
|
|
|
CheDaoLines[3].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("cutterXl", out JToken cutterXl_cd) ? jsonObject.GetValue("cutterXl") : "0", false);
|
|
|
|
|
|
// 车刀在y轴方向上的长度 - 对应机床yL
|
|
|
var cdData3 = CheDaoLines[4].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
returnData["cutterYl"] = cdData3;
|
|
|
+ writePar = "cutterYl";
|
|
|
CheDaoLines[4].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("cutterYl", out JToken cutterYl_cd) ? jsonObject.GetValue("cutterYl") : "0", false);
|
|
|
|
|
|
// 切削刃半径 - 对应机床rs
|
|
|
var cdData4 = CheDaoLines[8].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
returnData["cutterRs"] = cdData4;
|
|
|
+ writePar = "cutterRs";
|
|
|
CheDaoLines[8].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("cutterRs", out JToken cutterRs_cd) ? jsonObject.GetValue("cutterRs") : "0", false);
|
|
|
|
|
|
// 设置车刀子类型
|
|
|
var cdData5 = CheDaoLines[18].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
returnData["cutterTypSubDnc"] = cdData5;
|
|
|
+ writePar = "cutterTypSubDnc";
|
|
|
CheDaoLines[18].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("cutterTypSubDnc", out JToken cutterTypSubDnc_cd) ? jsonObject.GetValue("cutterTypSubDnc") : "", false);
|
|
|
|
|
|
// 车刀方向 TO 刀具定向?
|
|
|
var cdData6 = CheDaoLines[10].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
returnData["cutterTo"] = cdData6;
|
|
|
+ writePar = "cutterTo";
|
|
|
CheDaoLines[10].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("cutterTo", out JToken cutterTo_cd) ? jsonObject.GetValue("cutterTo") : "0", false);
|
|
|
|
|
|
//刀具长度1的差值
|
|
|
var cdData7 = CheDaoLines[5].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
returnData["dzl"] = cdData7;
|
|
|
+ writePar = "dzl";
|
|
|
CheDaoLines[5].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("dzl", out JToken dzl_cd) ? jsonObject.GetValue("dzl") : "0", false);
|
|
|
|
|
|
//刀具长度2的差值
|
|
|
var cdData8 = CheDaoLines[6].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
returnData["dxl"] = cdData8;
|
|
|
+ writePar = "dxl";
|
|
|
CheDaoLines[6].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("dxl", out JToken dxl_cd) ? jsonObject.GetValue("dxl") : "0", false);
|
|
|
|
|
|
//刀具长度3的差值
|
|
|
var cdData9 = CheDaoLines[7].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
returnData["dyl"] = cdData9;
|
|
|
+ writePar = "dyl";
|
|
|
CheDaoLines[7].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("dyl", out JToken dyl_cd) ? jsonObject.GetValue("dyl") : "0", false);
|
|
|
|
|
|
//刀具半径的差值
|
|
|
var cdData10 = CheDaoLines[9].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
returnData["drs"] = cdData10;
|
|
|
+ writePar = "drs";
|
|
|
CheDaoLines[9].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("drs", out JToken drs_cd) ? jsonObject.GetValue("drs") : "0", false);
|
|
|
|
|
|
//开槽刀宽度的差值
|
|
|
var cdData11 = CheDaoLines[17].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
returnData["dcw"] = cdData11;
|
|
|
+ writePar = "dcw";
|
|
|
CheDaoLines[17].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("dcw", out JToken dcw_cd) ? jsonObject.GetValue("dcw") : "0", false);
|
|
|
|
|
|
// 主轴定向角 0ri
|
|
|
var cdData12 = CheDaoLines[11].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
returnData["cutterOri"] = cdData12;
|
|
|
+ writePar = "cutterOri";
|
|
|
CheDaoLines[11].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("cutterOri", out JToken cutterOri_cd) ? jsonObject.GetValue("cutterOri") : "0", false);
|
|
|
|
|
|
// 下刀角
|
|
|
var cdData13 = CheDaoLines[16].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
returnData["tangle"] = cdData13;
|
|
|
- CheDaoLines[16].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("tangle", out JToken tangle_cd) ? jsonObject.GetValue("tangle") : "0", false);
|
|
|
+ writePar = "tangle";
|
|
|
+ CheDaoLines[14].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("tangle", out JToken tangle_cd) ? jsonObject.GetValue("tangle") : "0", false);
|
|
|
|
|
|
// 刀尖角
|
|
|
var cdData14 = CheDaoLines[15].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
returnData["pangle"] = cdData14;
|
|
|
- CheDaoLines[15].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("pangle", out JToken pangle_cd) ? jsonObject.GetValue("pangle") : "0", false);
|
|
|
+ writePar = "pangle";
|
|
|
+ CheDaoLines[13].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("pangle", out JToken pangle_cd) ? jsonObject.GetValue("pangle") : "0", false);
|
|
|
|
|
|
// 切槽刀的切削长度
|
|
|
var cdData15 = CheDaoLines[17].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
returnData["cutlength"] = cdData15;
|
|
|
- CheDaoLines[17].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("cutlength", out JToken cutlength_cd) ? jsonObject.GetValue("cutlength") : "0", false);
|
|
|
+ writePar = "cutlength";
|
|
|
+ CheDaoLines[15].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("cutlength", out JToken cutlength_cd) ? jsonObject.GetValue("cutlength") : "0", false);
|
|
|
|
|
|
// 切槽刀的切削长度
|
|
|
var cdData16 = CheDaoLines[18].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
returnData["cutwidth"] = cdData16;
|
|
|
- CheDaoLines[18].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("cutwidth", out JToken cutwidth_cd) ? jsonObject.GetValue("cutwidth") : "0", false);
|
|
|
+ writePar = "cutwidth";
|
|
|
+ CheDaoLines[16].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("cutwidth", out JToken cutwidth_cd) ? jsonObject.GetValue("cutwidth") : "0", false);
|
|
|
|
|
|
}
|
|
|
|
|
|
/*刀位表数据设置更新*/
|
|
|
//刀位表数据查询语句
|
|
|
-
|
|
|
+ writePar = "刀位表写入开始";
|
|
|
string writeOrDel = jsonObject.GetValue("writeOrDel").ToString();
|
|
|
- string DaoWeiColumnNamesAccessor = @"\TABLE\TOOL_P\P\" + jsonObject.GetValue("cutterP");
|
|
|
- if (writeOrDel == "2") {
|
|
|
- DaoWeiColumnNamesAccessor = @"\TABLE\TOOL_P\T\" + jsonObject.GetValue("cutterT");
|
|
|
+ string DaoWeiColumnNamesAccessor = "";
|
|
|
+
|
|
|
+ if (jsonObject.GetValue("cutterP").ToString().Contains("1."))
|
|
|
+ {
|
|
|
+ DaoWeiColumnNamesAccessor = @"\TABLE\TOOL_P\P\" + jsonObject.GetValue("cutterP");
|
|
|
}
|
|
|
+ else
|
|
|
+ {
|
|
|
+
|
|
|
+ DaoWeiColumnNamesAccessor = @"\TABLE\TOOL_P\P\1." + jsonObject.GetValue("cutterP");
|
|
|
+ }
|
|
|
+
|
|
|
// 查询表数据
|
|
|
IJHDataEntry2 DaoWeiTable = dataAccess.GetDataEntry2(DaoWeiColumnNamesAccessor, DNC_DATA_UNIT_SELECT.DNC_DATA_UNIT_SELECT_METRIC, false);
|
|
|
// 获取字段列表
|
|
|
IJHDataEntry2List DaoWeiLines = DaoWeiTable.GetChildList();
|
|
|
|
|
|
- // 设置刀号
|
|
|
- DaoWeiLines[1].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("cutterT", out JToken cutterT_dw) ? jsonObject.GetValue("cutterT") : "0", false);
|
|
|
// 设置刀具名
|
|
|
- DaoWeiLines[2].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("cutterT", out JToken cutterName_dw) ? jsonObject.GetValue("cutterName") : "", false);
|
|
|
+ writePar = "cutterName";
|
|
|
+ DaoWeiLines[2].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("cutterName", out JToken cutterName_dw) ? jsonObject.GetValue("cutterName") : "", false);
|
|
|
+
|
|
|
+ // 设置刀号
|
|
|
+ writePar = "cutterT";
|
|
|
+
|
|
|
+ if (writeOrDel == "2")
|
|
|
+ {
|
|
|
+ DaoWeiLines[1].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, 1000, false);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ DaoWeiLines[1].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("cutterT", out JToken cutterT_dw) ? jsonObject.GetValue("cutterT") : "0", false);
|
|
|
+ }
|
|
|
|
|
|
responseBody.msg = "数据设置成功";
|
|
|
responseBody.returnData = JsonConvert.SerializeObject(returnData);
|
|
@@ -629,10 +687,11 @@ namespace HEIDENHAIN
|
|
|
|
|
|
if (!checkThrough)
|
|
|
{
|
|
|
- responseBody.msg = "数据校验不成功,异常字段"+ isreason;
|
|
|
+ responseBody.msg = "数据校验不成功,异常字段" + isreason;
|
|
|
responseBody.result = false;
|
|
|
}
|
|
|
- else {
|
|
|
+ else
|
|
|
+ {
|
|
|
responseBody.msg = "数据设置成功";
|
|
|
responseBody.result = true;
|
|
|
}
|
|
@@ -670,6 +729,60 @@ namespace HEIDENHAIN
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+ else if (hdhBody.Type == ActionTypeEnum.WriteTakeCutter.ToString()) { // 给机床写入取刀标识
|
|
|
+ //机外对刀仪数据
|
|
|
+ JObject jsonObject = JObject.Parse(hdhBody.CutterData);
|
|
|
+
|
|
|
+ JHDataAccess dataAccess = Machine.GetInterface(HeidenhainDNCLib.DNC_INTERFACE_OBJECT.DNC_INTERFACE_JHDATAACCESS);
|
|
|
+ dataAccess.SetAccessMode(DNC_ACCESS_MODE.DNC_ACCESS_MODE_TABLEDATAACCESS, "");
|
|
|
+
|
|
|
+ // 需要判定,写入标识的刀柄号,是否再用
|
|
|
+ string DaoWeiColumnNamesAccessor = @"\TABLE\TOOL_P\P\0.0";
|
|
|
+ // 查询表数据
|
|
|
+ IJHDataEntry2 DaoWeiTable = dataAccess.GetDataEntry2(DaoWeiColumnNamesAccessor, DNC_DATA_UNIT_SELECT.DNC_DATA_UNIT_SELECT_METRIC, false);
|
|
|
+ // 获取字段列表
|
|
|
+ IJHDataEntry2List DaoWeiLines = DaoWeiTable.GetChildList();
|
|
|
+ var tcode = DaoWeiLines[1].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
+
|
|
|
+ if (jsonObject.GetValue("cutterT") == tcode.ToString()) {
|
|
|
+ responseBody.msg = "数据设置失败,主轴正在使用此刀";
|
|
|
+ responseBody.result = false;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ string ToolColumnNamesAccessor = @"\TABLE\TOOL\T\" + jsonObject.GetValue("cutterT");
|
|
|
+ //刀具表数据
|
|
|
+ IJHDataEntry2 ToolTable = dataAccess.GetDataEntry2(ToolColumnNamesAccessor, DNC_DATA_UNIT_SELECT.DNC_DATA_UNIT_SELECT_METRIC, false);
|
|
|
+ // 获取字段列表
|
|
|
+ IJHDataEntry2List ToolLines = ToolTable.GetChildList();
|
|
|
+
|
|
|
+ ToolLines[14].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.GetValue("doc"), false);
|
|
|
+
|
|
|
+ responseBody.msg = "数据设置成功";
|
|
|
+ responseBody.result = true;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ else if (hdhBody.Type == ActionTypeEnum.BindingInfo.ToString()) { // 给机床写入绑定信息
|
|
|
+
|
|
|
+ //机外对刀仪数据
|
|
|
+ JObject jsonObject = JObject.Parse(hdhBody.BindInfo);
|
|
|
+
|
|
|
+ JHDataAccess dataAccess = Machine.GetInterface(HeidenhainDNCLib.DNC_INTERFACE_OBJECT.DNC_INTERFACE_JHDATAACCESS);
|
|
|
+ dataAccess.SetAccessMode(DNC_ACCESS_MODE.DNC_ACCESS_MODE_TABLEDATAACCESS, "");
|
|
|
+
|
|
|
+ // 需要判定,写入标识的刀柄号,是否再用
|
|
|
+ string DaoWeiColumnNamesAccessor = @"\TABLE\QR\NR\2";
|
|
|
+ // 查询表数据
|
|
|
+ IJHDataEntry2 DaoWeiTable = dataAccess.GetDataEntry2(DaoWeiColumnNamesAccessor, DNC_DATA_UNIT_SELECT.DNC_DATA_UNIT_SELECT_METRIC, false);
|
|
|
+ // 获取字段列表
|
|
|
+ IJHDataEntry2List DaoWeiLines = DaoWeiTable.GetChildList();
|
|
|
+ DaoWeiLines[2].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.GetValue("uniqueCode"), false);
|
|
|
+ DaoWeiLines[3].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.GetValue("trayCode"), false);
|
|
|
+
|
|
|
+ responseBody.msg = "数据设置成功";
|
|
|
+ responseBody.result = true;
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -685,9 +798,12 @@ namespace HEIDENHAIN
|
|
|
catch (Exception opcex)
|
|
|
{
|
|
|
YG.Log.Instance.WriteLogAdd($"海德汉响应异常--->>" + opcex.Message);
|
|
|
- AddList(DateTime.Now.ToString(), "POST", request.Url.ToString(), "响应异常:" + opcex.Message);
|
|
|
+ if (writePar.Length > 0) {
|
|
|
+ writePar = "写入数据报错位置:" + writePar;
|
|
|
+ }
|
|
|
+ AddList(DateTime.Now.ToString(), "POST", request.Url.ToString(), "响应异常:" + opcex.Message+ writePar);
|
|
|
responseBody.result = false;
|
|
|
- responseBody.msg = opcex.Message;
|
|
|
+ responseBody.msg = opcex.Message + writePar;
|
|
|
//发生异常,清空数组,重新连接
|
|
|
deviceList = new Dictionary<string, DNC_STATE>();
|
|
|
machineList = new Dictionary<string, JHMachineInProcess>();
|