|
@@ -19,6 +19,7 @@ using System.Net.NetworkInformation;
|
|
|
using System.Diagnostics.PerformanceData;
|
|
|
using Newtonsoft.Json.Linq;
|
|
|
using System.Reflection;
|
|
|
+using System.Security.Cryptography;
|
|
|
|
|
|
namespace HEIDENHAIN
|
|
|
{
|
|
@@ -345,11 +346,13 @@ namespace HEIDENHAIN
|
|
|
IJHDataEntry2List ToolList = dataAccess.GetDataEntry2(ToolNumberAccessor, DNC_DATA_UNIT_SELECT.DNC_DATA_UNIT_SELECT_METRIC, false).GetChildList();
|
|
|
|
|
|
//报警期限
|
|
|
- toolsInfo.warnLife = ToolList[10].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA).ToString();
|
|
|
+ toolsInfo.warnLife = ToolList[11].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA).ToString();
|
|
|
//刀具寿命目标值
|
|
|
- toolsInfo.targetLife = ToolList[11].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA).ToString();
|
|
|
+ toolsInfo.targetLife = ToolList[12].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA).ToString();
|
|
|
//Cur_Time使用时间
|
|
|
- toolsInfo.curTime = ToolList[12].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA).ToString();
|
|
|
+ toolsInfo.curTime = ToolList[13].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA).ToString();
|
|
|
+ // 刀具锁定状态,
|
|
|
+ toolsInfo.tl = ToolList[8].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA).ToString();
|
|
|
|
|
|
toolsList.Add(toolsInfo);
|
|
|
}
|
|
@@ -363,8 +366,8 @@ namespace HEIDENHAIN
|
|
|
|
|
|
//机外对刀仪数据
|
|
|
JObject jsonObject = JObject.Parse(hdhBody.CutterData);
|
|
|
-
|
|
|
-
|
|
|
+ // 返回的结果,数据
|
|
|
+ var returnData = new Dictionary<string, object>();
|
|
|
|
|
|
JHDataAccess dataAccess = Machine.GetInterface(HeidenhainDNCLib.DNC_INTERFACE_OBJECT.DNC_INTERFACE_JHDATAACCESS);
|
|
|
dataAccess.SetAccessMode(DNC_ACCESS_MODE.DNC_ACCESS_MODE_TABLEDATAACCESS, "");
|
|
@@ -378,58 +381,192 @@ namespace HEIDENHAIN
|
|
|
IJHDataEntry2List ToolLines = ToolTable.GetChildList();
|
|
|
|
|
|
|
|
|
- //设置刀具名
|
|
|
- ToolLines[1].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.GetValue("cutterName"), false);
|
|
|
- //刀具长度
|
|
|
- ToolLines[2].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.GetValue("cutterZl"), false);
|
|
|
- //刀具半径
|
|
|
- ToolLines[3].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.GetValue("cutterXl"), false);
|
|
|
- //刀具寿命
|
|
|
- ToolLines[11].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.GetValue("cutterTime2"), false);
|
|
|
- //刀具类型
|
|
|
- ToolLines[13].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.GetValue("cutterTypDnc"), false);
|
|
|
- //PLC状态
|
|
|
- ToolLines[15].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.GetValue("cutterPlcBit"), false);
|
|
|
- //刀具使用寿命,不允许吧超过该值
|
|
|
- ToolLines[45].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.GetValue("cutterOverTime"), false);
|
|
|
-
|
|
|
- /*车刀表数据设置更新*/
|
|
|
- //车刀表数据查询语句
|
|
|
- string CheDaoColumnNamesAccessor = @"\TABLE\TOOLTURN\T\" + jsonObject.GetValue("cutterT");
|
|
|
- // 查询表数据
|
|
|
- IJHDataEntry2 CheDaoTable = dataAccess.GetDataEntry2(CheDaoColumnNamesAccessor, DNC_DATA_UNIT_SELECT.DNC_DATA_UNIT_SELECT_METRIC, false);
|
|
|
- // 获取字段列表
|
|
|
- IJHDataEntry2List CheDaoLines = CheDaoTable.GetChildList();
|
|
|
-
|
|
|
- // 设置刀具名
|
|
|
- CheDaoLines[1].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.GetValue("cutterName"), false);
|
|
|
- // 设置刀具长度
|
|
|
- CheDaoLines[2].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.GetValue("cutterZl"), false);
|
|
|
- // 车刀X方向半径
|
|
|
- CheDaoLines[3].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.GetValue("cutterXl"), false);
|
|
|
- // 车刀方向
|
|
|
- CheDaoLines[10].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.GetValue("cutterTo"), false);
|
|
|
- // 主轴定向角
|
|
|
- CheDaoLines[11].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.GetValue("cutterOri"), false);
|
|
|
- // 设置车刀类型
|
|
|
- CheDaoLines[17].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.GetValue("cutterTypDncSub"), 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);
|
|
|
+
|
|
|
+ //刀具类型 - 对应机床TYP
|
|
|
+ var data2 = ToolLines[13].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
+ returnData.Add("cutterTypDnc", data2);
|
|
|
+ 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);
|
|
|
+ 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);
|
|
|
+
|
|
|
+ //刀具寿命 - 对应机床time1
|
|
|
+ var data5 = ToolLines[10].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
+ returnData.Add("cutterTime1", data5);
|
|
|
+ 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);
|
|
|
+ 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);
|
|
|
+ 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);
|
|
|
+ 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);
|
|
|
+ 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);
|
|
|
+ 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);
|
|
|
+ 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);
|
|
|
+ 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);
|
|
|
+ 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);
|
|
|
+ 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))
|
|
|
+ {
|
|
|
+ /*车刀表数据设置更新*/
|
|
|
+ // 车刀表数据查询语句
|
|
|
+ string CheDaoColumnNamesAccessor = @"\TABLE\TOOLTURN\T\" + jsonObject.GetValue("cutterT");
|
|
|
+ // 查询表数据
|
|
|
+ IJHDataEntry2 CheDaoTable = dataAccess.GetDataEntry2(CheDaoColumnNamesAccessor, DNC_DATA_UNIT_SELECT.DNC_DATA_UNIT_SELECT_METRIC, false);
|
|
|
+ // 获取字段列表
|
|
|
+ IJHDataEntry2List CheDaoLines = CheDaoTable.GetChildList();
|
|
|
+
|
|
|
+ // 设置刀具名-对应机床表name
|
|
|
+ CheDaoLines[1].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("cutterName", out JToken cutterName_cd) ? jsonObject.GetValue("cutterName") : "", false);
|
|
|
+
|
|
|
+ // 设置刀具在Z轴方向上的长度 - 对应机床 ZL
|
|
|
+ var cdData1 = CheDaoLines[2].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
+ returnData["cutterZl"] = cdData1;
|
|
|
+ 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;
|
|
|
+ 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;
|
|
|
+ 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;
|
|
|
+ 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;
|
|
|
+ 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;
|
|
|
+ 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;
|
|
|
+ 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;
|
|
|
+ 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;
|
|
|
+ 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;
|
|
|
+ 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;
|
|
|
+ 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;
|
|
|
+ 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);
|
|
|
+
|
|
|
+ // 刀尖角
|
|
|
+ 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);
|
|
|
+
|
|
|
+ // 切槽刀的切削长度
|
|
|
+ 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);
|
|
|
+
|
|
|
+ // 切槽刀的切削长度
|
|
|
+ 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);
|
|
|
|
|
|
+ }
|
|
|
|
|
|
/*刀位表数据设置更新*/
|
|
|
//刀位表数据查询语句
|
|
|
+
|
|
|
+ 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");
|
|
|
+ }
|
|
|
// 查询表数据
|
|
|
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.GetValue("cutterT"), false);
|
|
|
-
|
|
|
+ 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.GetValue("cutterName"), false);
|
|
|
+ DaoWeiLines[2].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.TryGetValue("cutterT", out JToken cutterName_dw) ? jsonObject.GetValue("cutterName") : "", false);
|
|
|
|
|
|
responseBody.msg = "数据设置成功";
|
|
|
+ responseBody.returnData = JsonConvert.SerializeObject(returnData);
|
|
|
responseBody.result = true;
|
|
|
}
|
|
|
else if (hdhBody.Type == ActionTypeEnum.WriteDeviationValue.ToString())
|
|
@@ -448,7 +585,14 @@ namespace HEIDENHAIN
|
|
|
// 获取字段列表
|
|
|
IJHDataEntry2List ToolLines = ToolTable.GetChildList();
|
|
|
|
|
|
- //设置偏差值
|
|
|
+ //设置偏差值,先设置偏差值为零
|
|
|
+ ToolLines[1].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, 0, false);
|
|
|
+ ToolLines[2].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, 0, false);
|
|
|
+ ToolLines[3].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, 0, false);
|
|
|
+ ToolLines[4].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, 0, false);
|
|
|
+ ToolLines[5].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, 0, false);
|
|
|
+ ToolLines[6].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, 0, false);
|
|
|
+
|
|
|
ToolLines[1].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.GetValue("exactXaxisOffset"), false);
|
|
|
ToolLines[2].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.GetValue("exactYaxisOffset"), false);
|
|
|
ToolLines[3].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.GetValue("exactZaxisOffset"), false);
|
|
@@ -456,8 +600,40 @@ namespace HEIDENHAIN
|
|
|
ToolLines[5].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.GetValue("exactBaxisOffset"), false);
|
|
|
ToolLines[6].SetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA, jsonObject.GetValue("exactCaxisOffset"), false);
|
|
|
|
|
|
- responseBody.msg = "数据设置成功";
|
|
|
- responseBody.result = true;
|
|
|
+ // 校验偏差值
|
|
|
+ Thread.Sleep(50);
|
|
|
+
|
|
|
+ Boolean checkThrough = true;
|
|
|
+ string isreason = null;
|
|
|
+
|
|
|
+ var data1 = ToolLines[1].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
+ if (data1 != Convert.ToDouble(jsonObject.GetValue("exactXaxisOffset"))) { checkThrough = false; isreason = "exactXaxisOffset"; }
|
|
|
+
|
|
|
+ var data2 = ToolLines[2].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
+ if (data2 != Convert.ToDouble(jsonObject.GetValue("exactYaxisOffset"))) { checkThrough = false; isreason = "exactYaxisOffset"; }
|
|
|
+
|
|
|
+ var data3 = ToolLines[3].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
+ if (data3 != Convert.ToDouble(jsonObject.GetValue("exactZaxisOffset"))) { checkThrough = false; isreason = "exactZaxisOffset"; }
|
|
|
+
|
|
|
+ var data4 = ToolLines[4].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
+ if (data4 != Convert.ToDouble(jsonObject.GetValue("exactAaxisOffset"))) { checkThrough = false; isreason = "exactAaxisOffset"; }
|
|
|
+
|
|
|
+ var data5 = ToolLines[5].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
+
|
|
|
+ if (data5 != Convert.ToDouble(jsonObject.GetValue("exactBaxisOffset"))) { checkThrough = false; isreason = "exactBaxisOffset"; }
|
|
|
+ var data6 = ToolLines[6].GetPropertyValue(DNC_DATAENTRY_PROPKIND.DNC_DATAENTRY_PROPKIND_DATA);
|
|
|
+
|
|
|
+ if (data6 != Convert.ToDouble(jsonObject.GetValue("exactCaxisOffset"))) { checkThrough = false; isreason = "exactCaxisOffset"; }
|
|
|
+
|
|
|
+ if (!checkThrough)
|
|
|
+ {
|
|
|
+ responseBody.msg = "数据校验不成功,异常字段"+ isreason;
|
|
|
+ responseBody.result = false;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ responseBody.msg = "数据设置成功";
|
|
|
+ responseBody.result = true;
|
|
|
+ }
|
|
|
}
|
|
|
else if (hdhBody.Type == ActionTypeEnum.ReadProbeData.ToString())
|
|
|
{
|