using MaterialTraceability.Entity.DAO;
using MaterialTraceability.SqlSugar.ServiceImpl;
using MaterialTraceability.SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MaterialTraceability.Entity.DTO;
using MaterialTraceability.WebService;
using MaterialTraceability.Common;
using MaterialTraceability.Entity.Enum;
using MaterialTraceability.WebService.GetParametricValueServiceService;
using MaterialTraceability.WebService.MachineIntegrationServiceService;
using MaterialTraceability.WebService.Param;
using System.Linq.Expressions;
using System.Security.Cryptography;
namespace MaterialTraceability.Business
{
///
/// 物料特征逻辑
///
public class MaterialFeatureBusiness
{
//卷轴信息
private IBaseServices shaftInfoServices = new BaseServices();
//收卷记录
private IBaseServices downRecordServices = new BaseServices();
//上料记录
private IBaseServices upRecordServices = new BaseServices();
//Mes WebService接口
private IMesWebServices MesWebServices = new MesWebServicesImpl();
private AppConfigDto appConfig = AppConfigDto.Instance;
private INIFile inifile = new INIFile(System.Environment.CurrentDirectory + "/MesConfig/App.InI");
private static readonly Lazy lazy = new Lazy(() => new MaterialFeatureBusiness());
public static MaterialFeatureBusiness Instance
{
get
{
return lazy.Value;
}
}
private MaterialFeatureBusiness() { }
///
/// 获取模切物料重量特征
///
/// 放卷膜卷号
/// 收卷位置
///
public async Task GetMQMaterialWeight(string bindSfc, int position,string ccdLableAmount)
{
try
{
string logStr = this.Which_Mq(position);
//获取放卷方向-放卷开始时读取PLC地址将内容存入绑定信息:false(0)为顺时针,True(1)为逆时针
//根据收卷轴绑定的SFC获取放卷轴
Expression> exp = s1 => true;
exp = exp.And(x => x.bindSfc == bindSfc);
Expression> order = s1 => s1.bindTime;
ProShaftInfo upShaftInfo = await shaftInfoServices.QueryFirst(exp, order, false);
if (upShaftInfo == null)
{
LogHelper.Info(String.Format("{0}上传数据获取放卷绑定信息为空", logStr));
return null;
}
string upDirection = upShaftInfo.endFlag == 0 ? "顺时针" : "逆时针";
int downDirectionNumber = GetDirections_Mq(StringChange.ParseToInt(upShaftInfo.positionId));
//获取收卷方向-收卷开始时读取PLC地址将内容存入绑定信息
string downDirection = downDirectionNumber == 0 ? "顺时针" : "逆时针";
//是否首检,根据下料记录统计是否为换班后收卷料
bool isFirst = await IsFirstFlag_Mq();
LogHelper.Info(String.Format("{0}收卷结束,当前卷放卷方向:{1};收卷方向:{2};是否首检:{3}", logStr, upDirection, downDirection, isFirst));
//upLoadBusiness.SaveLogRecord(position, String.Format("{0}收卷结束,当前卷放卷方向:{1};收卷方向:{2};是否首检:{3}", logStr, upDirection, downDirection, isFirst));
//根据上料记录获取冷压特征数据
Expression> upExp = s1 => true;
upExp = upExp.And(x => x.Sfc == upShaftInfo.bindSfc);
Expression> upOrder = s1 => s1.RecordTime;
ProUpRecord upRecord = await upRecordServices.QueryFirst(upExp, upOrder, false);
if (upRecord == null)
{
LogHelper.Info(String.Format("{0}上传数据获取放卷信息为空", logStr));
//upLoadBusiness.SaveLogRecord(position, String.Format("{0}上传数据获取放卷信息为空", logStr));
return null;
}
var lyMaterialCharacter = JsonChange.JsonToMode(upRecord.UpMaterialId);
LogHelper.Info("获取冷压重量特征数据:" + lyMaterialCharacter);
//upLoadBusiness.SaveLogRecord(position, "获取冷压重量特征数据:" + lyMaterialCharacter);
//获取冷压重量特征数据,如果数据库中为空则通过MES重新获取并存入数据库 Add by wenjy 2022-11-15
if (lyMaterialCharacter == null)
{
GetParametricValueRequestData[] parametricValueRequestDatas = new GetParametricValueRequestData[] {
new GetParametricValueRequestData { parameter= "LY_WLMX" },
new GetParametricValueRequestData { parameter= "LY_S_X01" },
new GetParametricValueRequestData { parameter= "LY_S_X02" },
new GetParametricValueRequestData { parameter= "LY_B_X01" },
new GetParametricValueRequestData { parameter= "LY_B_X02" },
new GetParametricValueRequestData { parameter= "S_TARGETCW" },
};
lyMaterialCharacter = GetLyMaterialCharacter_Mq(upShaftInfo.bindSfc, parametricValueRequestDatas); //获取冷压特征数据
string lyMaterialCharacterJsonStr = JsonChange.ModeToJson(lyMaterialCharacter);
LogHelper.Info(String.Format("数据库中冷压物料特征数据为空,通过MES获取{0}的物料特征数据:{1}", upShaftInfo.bindSfc, lyMaterialCharacterJsonStr));
//upLoadBusiness.SaveLogRecord(position, String.Format("数据库中冷压物料特征数据为空,通过MES获取{0}的物料特征数据:{1}", upShaftInfo.bindSfc, lyMaterialCharacterJsonStr));
upRecord.UpMaterialId = lyMaterialCharacterJsonStr;
await upRecordServices.Update(upRecord);
}
//物料面向
string mqMaterialFace = "";
string stargetcwStr = "";
var lyMaterialFace = lyMaterialCharacter.paramValues.Where(x => x.parameter == "LY_WLMX").FirstOrDefault();
var S_TARGETCW = lyMaterialCharacter.paramValues.Where(x => x.parameter == "S_TARGETCW").FirstOrDefault();
if (lyMaterialFace != null)
{
mqMaterialFace = MaterialFaceStr_Mq(lyMaterialFace.value, upShaftInfo.endFlag, downDirectionNumber);
}
if(S_TARGETCW != null){
stargetcwStr = S_TARGETCW.value;
}else{
LogHelperBusiness.LogInfo("手动完工获取模切数据S_TARGETCW为null");
}
LogHelper.Info(String.Format("冷压物料面向:{0};模切物料面向:{1}", lyMaterialFace, mqMaterialFace));
//upLoadBusiness.SaveLogRecord(position, String.Format("冷压物料面向:{0};模切物料面向:{1}", lyMaterialFace, mqMaterialFace));
string jrDirection = "";//卷绕理论方向
string S_CW = "";//模切S面某膜区某特征值
string B_CW = "";//模切B面某膜区某特征值
if (position % 2 != 0)
{
jrDirection = downDirection;
var LY_S_X01 = lyMaterialCharacter.paramValues.Where(x => x.parameter == "LY_S_X01").FirstOrDefault();
var LY_B_X01 = lyMaterialCharacter.paramValues.Where(x => x.parameter == "LY_B_X01").FirstOrDefault();
if (LY_S_X01 != null) S_CW = LY_S_X01.value;
if (LY_B_X01 != null) B_CW = LY_B_X01.value;
}
else
{
jrDirection = downDirectionNumber == 0 ? "逆时针" : "顺时针";
var LY_S_X02 = lyMaterialCharacter.paramValues.Where(x => x.parameter == "LY_S_X02").FirstOrDefault();
var LY_B_X02 = lyMaterialCharacter.paramValues.Where(x => x.parameter == "LY_B_X02").FirstOrDefault();
if (LY_S_X02 != null) S_CW = LY_S_X02.value;
if (LY_B_X02 != null) B_CW = LY_B_X02.value;
}
LogHelper.Info(String.Format("卷绕理论方向:{0};S面特征值:{1};B面特征值:{1}", jrDirection, S_CW, B_CW));
machineIntegrationParametricData[] data = {
new machineIntegrationParametricData() {name ="MQ_FJFX",dataType=ParameterDataType.TEXT, value= StringExtension.IsBlank(upDirection) ? "0" : upDirection},
new machineIntegrationParametricData() {name ="MQ_SJFX",dataType=ParameterDataType.TEXT, value= StringExtension.IsBlank(downDirection) ? "0" :downDirection},
new machineIntegrationParametricData() {name ="MQ_SJZ",dataType=ParameterDataType.TEXT, value= StringExtension.IsBlank(logStr) ? "0" :logStr},
new machineIntegrationParametricData() {name ="FIRST ARTICLE",dataType=ParameterDataType.TEXT, value= isFirst == true ? "OK" : "NG"},
new machineIntegrationParametricData() {name ="MQ_WLMX",dataType=ParameterDataType.TEXT, value= StringExtension.IsBlank(mqMaterialFace) ? "0" :mqMaterialFace},
new machineIntegrationParametricData() {name ="MQ_JRLLFX",dataType=ParameterDataType.TEXT, value= StringExtension.IsBlank(jrDirection) ? "0" :jrDirection},
new machineIntegrationParametricData() {name ="S_CW",dataType=ParameterDataType.TEXT, value=StringExtension.IsBlank(S_CW) ? "0" : S_CW},
new machineIntegrationParametricData() {name ="B_CW",dataType=ParameterDataType.TEXT, value=StringExtension.IsBlank(B_CW) ? "0" : B_CW},
new machineIntegrationParametricData() {name ="CCD",dataType=ParameterDataType.TEXT, value=StringExtension.IsBlank(ccdLableAmount) ? "0" : ccdLableAmount},
new machineIntegrationParametricData() {name ="S_TARGETCW",dataType=ParameterDataType.TEXT, value=StringExtension.IsBlank(stargetcwStr) ? "0" : stargetcwStr},
};
return data;
}
catch (Exception ex)
{
LogHelper.Info("模切物料特征数据获取异常:" + ex.Message);
LogHelper.Error("模切物料特征数据获取异常",ex);
return null;
}
}
#region 模切物料特征数据统计
///
/// 获取放卷、收卷运行方向
///
///
private int GetDirections_Mq(int position)
{
string logStr = this.Which_Mq(position);
LogHelper.Info(String.Format("读取{0}轴运行方向", logStr));
//false(0)为顺时针,True(1)为逆时针
int directions = 0;
if (position > 4)
{
directions = Convert.ToInt32(PlcBusiness.readBoolPlc(appConfig.mqAddress.放卷方向));
}
else
{
if (position % 2 != 0) //上轴
{
directions = Convert.ToInt32(PlcBusiness.readBoolPlc(appConfig.mqAddress.上轴方向));
}
else //下轴
{
directions = Convert.ToInt32(PlcBusiness.readBoolPlc(appConfig.mqAddress.下轴方向));
}
}
return directions;
}
///
/// 是否首件
///
///
private async Task IsFirstFlag_Mq()
{
bool result = false;
try
{
DateTime dayShift = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 12:00:00"));
DateTime nightShift = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 00:00:00"));
LogHelper.Info(String.Format("判断当前物料是否为首件,白班时间{0},夜班时间{1}", dayShift, nightShift));
Expression> exp = s1 => true;
if (DateTime.Now > dayShift && DateTime.Now < nightShift)
{
exp = exp.And(x => Convert.ToDateTime(x.RecordTime) > dayShift);
}
else if (DateTime.Now > nightShift && DateTime.Now < dayShift.AddDays(1))
{
exp = exp.And(x => Convert.ToDateTime(x.RecordTime) > nightShift);
}
else
{
//次日凌晨直接返回
return false;
}
List downRecords = await downRecordServices.Query(exp);
if (downRecords.Count < 2)
{
result = true;
}
else
{
result = false;
}
}
catch (Exception ex)
{
LogHelper.Info("判断当前物料是否为首件异常:" + ex.Message);
result = false;
}
return result;
}
///
/// 获取冷压物料面向
///
///
private TBParametricValueResult GetLyMaterialCharacter_Mq(string sfc, GetParametricValueRequestData[] parameters)
{
TBDataServiceParam tbServiceParam = new TBDataServiceParam()
{
url = inifile.IniReadValue("TBParametricValueParam", "url"),
site = inifile.IniReadValue("TBParametricValueParam", "site"),
sfc = sfc,
memberlist = parameters
};
var lyresult = MesWebServices.findTBData(tbServiceParam);
return lyresult;
}
///
/// 根据冷压面向、膜区收放卷放卷判断膜区面向
///
///
///
///
///
private string MaterialFaceStr_Mq(string lyMaterialFace, int upDirections, int downDirections)
{
string mqMaterialFace = "";
if (StringExtension.IsBlank(lyMaterialFace))
{
return mqMaterialFace;
}
if (lyMaterialFace == "S面")
{
if (upDirections == downDirections)
{
mqMaterialFace = "S面";
}
else
{
mqMaterialFace = "B面";
}
}
else if (lyMaterialFace == "B面")
{
if (upDirections == downDirections)
{
mqMaterialFace = "B面";
}
else
{
mqMaterialFace = "S面";
}
}
return mqMaterialFace;
}
///
///判断当前是哪个轴
///
///
private string Which_Mq(int position)
{
string logStr = "";
if (appConfig.machineId == 3)
{
if (position == 3) logStr = "上收卷左";
if (position == 1) logStr = "上收卷右";
if (position == 4) logStr = "下收卷左";
if (position == 2) logStr = "下收卷右";
if (position == 5) logStr = "右放卷";
if (position == 6) logStr = "左放卷";
}
else
{
if (position == 1) logStr = "上收卷左";
if (position == 3) logStr = "上收卷右";
if (position == 2) logStr = "下收卷左";
if (position == 4) logStr = "下收卷右";
if (position == 5) logStr = "左放卷";
if (position == 6) logStr = "右放卷";
}
return logStr;
}
#endregion
///
/// 获取冷压物料特征数据
///
/// 收卷轴名称
/// 收卷轴位置编号
/// 放卷位膜卷号
/// 拆分后的膜卷号
///
public async Task GetLYMaterialWeight(string shaftName,string positionId, string upMaterialSfc, string splitSfc)
{
try
{
string LY_SJFX = string.Empty;//收卷轴方向
string LY_FJFX = string.Empty;//放卷轴方向
string LY_SJZ = shaftName;//收卷轴1A轴小天线
string LY_HXMQ = string.Empty;//横向膜区方向
int LY_ZXMQ = 0;//L2 SFC拆分第几轮
string LY_WLMX = string.Empty;//物料面向 小轴方向
double LY_S_X01 = 0.00;//冷压S面某膜区特征值-01
double LY_S_X02 = 0.00;//冷压S面某膜区特征值-02
double LY_B_X01 = 0.00;//冷压B面某膜区特征值-01
double LY_B_X02 = 0.00;//冷压B面某膜区特征值-02
double S_TARGETCW = 0.00;
//根据放卷位SFC获取放卷记录,取出涂布来料膜卷号
Expression> exp = s1 => true;
exp = exp.And(x => x.Sfc == upMaterialSfc);
Expression> order = x => x.RecordTime;
ProUpRecord upRecord = await upRecordServices.QueryFirst(exp, order, false);
if (upRecord != null)
{
upMaterialSfc = upRecord.UpMaterialId;
}
LogHelper.Info($"收卷轴:{LY_SJZ}");
#region 横向膜区
//1、判断轴的方向
LY_FJFX = PlcBusiness.readPlc(appConfig.LyAddress.放卷方向) == 0 ? "顺时针" : "逆时针";
LogHelper.Info($"放卷轴方向:{LY_FJFX}");
if (positionId == "1" || positionId == "2") LY_SJFX = PlcBusiness.readPlc(appConfig.LyAddress.收卷1A方向) == 0 ? "顺时针" : "逆时针";
if (positionId == "3" || positionId == "4") LY_SJFX = PlcBusiness.readPlc(appConfig.LyAddress.收卷1B方向) == 0 ? "顺时针" : "逆时针";
if (positionId == "5" || positionId == "6") LY_SJFX = PlcBusiness.readPlc(appConfig.LyAddress.收卷2A方向) == 0 ? "顺时针" : "逆时针";
if (positionId == "7" || positionId == "8") LY_SJFX = PlcBusiness.readPlc(appConfig.LyAddress.收卷2B方向) == 0 ? "顺时针" : "逆时针";
LogHelper.Info($"收卷轴方向:{LY_SJFX}");
//2、 根据posttion判断料是左中右那个膜区
string tagAmount = ConfigHelper.GetConfig("tagAmount");
if (tagAmount == "3")
{
//顺时针
if (LY_SJFX == "顺时针" && positionId == "1") LY_HXMQ = "右";
if (LY_SJFX == "顺时针" && positionId == "2") LY_HXMQ = "左";
if (LY_SJFX == "顺时针" && positionId == "3") LY_HXMQ = "左";
if (LY_SJFX == "顺时针" && positionId == "4") LY_HXMQ = "右";
if (LY_SJFX == "顺时针" && positionId == "5") LY_HXMQ = "中";
if (LY_SJFX == "顺时针" && positionId == "6") LY_HXMQ = "中";
if (LY_SJFX == "顺时针" && positionId == "7") LY_HXMQ = "中";
if (LY_SJFX == "顺时针" && positionId == "8") LY_HXMQ = "中";
//逆时针
if (LY_SJFX == "逆时针" && positionId == "1") LY_HXMQ = "左";
if (LY_SJFX == "逆时针" && positionId == "2") LY_HXMQ = "右";
if (LY_SJFX == "逆时针" && positionId == "3") LY_HXMQ = "右";
if (LY_SJFX == "逆时针" && positionId == "4") LY_HXMQ = "左";
if (LY_SJFX == "逆时针" && positionId == "5") LY_HXMQ = "中";
if (LY_SJFX == "逆时针" && positionId == "6") LY_HXMQ = "中";
if (LY_SJFX == "逆时针" && positionId == "7") LY_HXMQ = "中";
if (LY_SJFX == "逆时针" && positionId == "8") LY_HXMQ = "中";
LogHelper.Info($"横向膜区:{LY_HXMQ}");
}
else
{
//顺时针
if (LY_SJFX == "顺时针" && positionId == "1") LY_HXMQ = "右";
if (LY_SJFX == "顺时针" && positionId == "2") LY_HXMQ = "左";
if (LY_SJFX == "顺时针" && positionId == "3") LY_HXMQ = "左";
if (LY_SJFX == "顺时针" && positionId == "4") LY_HXMQ = "右";
if (LY_SJFX == "顺时针" && positionId == "5") LY_HXMQ = "右";
if (LY_SJFX == "顺时针" && positionId == "6") LY_HXMQ = "左";
if (LY_SJFX == "顺时针" && positionId == "7") LY_HXMQ = "左";
if (LY_SJFX == "顺时针" && positionId == "8") LY_HXMQ = "右";
//逆时针
if (LY_SJFX == "逆时针" && positionId == "1") LY_HXMQ = "左";
if (LY_SJFX == "逆时针" && positionId == "2") LY_HXMQ = "右";
if (LY_SJFX == "逆时针" && positionId == "3") LY_HXMQ = "右";
if (LY_SJFX == "逆时针" && positionId == "4") LY_HXMQ = "左";
if (LY_SJFX == "逆时针" && positionId == "5") LY_HXMQ = "左";
if (LY_SJFX == "逆时针" && positionId == "6") LY_HXMQ = "右";
if (LY_SJFX == "逆时针" && positionId == "7") LY_HXMQ = "右";
if (LY_SJFX == "逆时针" && positionId == "8") LY_HXMQ = "左";
LogHelper.Info($"膜区:{LY_HXMQ}");
}
//3、物料面向
if (LY_SJFX == "顺时针" && LY_FJFX == "顺时针")
{
LY_WLMX = "S面";
}
if (LY_SJFX == "顺时针" && LY_FJFX == "逆时针")
{
LY_WLMX = "B面";
}
if (LY_SJFX == "逆时针" && LY_FJFX == "顺时针")
{
LY_WLMX = "B面";
}
if (LY_SJFX == "逆时针" && LY_FJFX == "逆时针")
{
LY_WLMX = "S面";
}
LogHelper.Info($"物料面向:{LY_WLMX}");
#endregion
#region 纵向膜区 update by wenjy 2022-11-11
//4、根据膜卷号和配置文件中的tagAmount,再根据膜卷号从数据库中查询条数、与tagAmount比较判断是第几轮
var df = splitSfc.Substring(splitSfc.IndexOf("-") + 1, 2);
int recordAmount = StringChange.ParseToInt(df);
var tag = Convert.ToInt32(ConfigHelper.GetConfig("tagAmount"));
var splitAmount = Math.Ceiling(Convert.ToDouble(recordAmount) / Convert.ToDouble(tag));
LogHelper.Info($"纵向膜区第几轮:{splitAmount}");
LY_ZXMQ = Convert.ToInt32(splitAmount);
#endregion
#region 从mes中获取值
GetParametricValueRequestData[] t = null;
if (LY_HXMQ == "左" && LY_ZXMQ == 1)
{
t = new GetParametricValueRequestData[] {
new GetParametricValueRequestData { parameter= "S_EIGENVALUE_1_1" },
new GetParametricValueRequestData { parameter= "S_EIGENVALUE_1_2" },
new GetParametricValueRequestData { parameter= "B_EIGENVALUE_1_1" },
new GetParametricValueRequestData { parameter= "B_EIGENVALUE_1_2" },
new GetParametricValueRequestData { parameter= "S_TARGETCW" }
};
}
if (LY_HXMQ == "中" && LY_ZXMQ == 1)
{
t = new GetParametricValueRequestData[] {
new GetParametricValueRequestData { parameter= "S_EIGENVALUE_2_1" },
new GetParametricValueRequestData { parameter= "S_EIGENVALUE_2_2" },
new GetParametricValueRequestData { parameter= "B_EIGENVALUE_2_1" },
new GetParametricValueRequestData { parameter= "B_EIGENVALUE_2_2" },
new GetParametricValueRequestData { parameter= "S_TARGETCW" }
};
}
if (LY_HXMQ == "右" && LY_ZXMQ == 1)
{
t = new GetParametricValueRequestData[] {
new GetParametricValueRequestData { parameter= "S_EIGENVALUE_3_1" },
new GetParametricValueRequestData { parameter= "S_EIGENVALUE_3_2" },
new GetParametricValueRequestData { parameter= "B_EIGENVALUE_3_1" },
new GetParametricValueRequestData { parameter= "B_EIGENVALUE_3_2" },
new GetParametricValueRequestData { parameter= "S_TARGETCW" }
};
}
if (LY_HXMQ == "左" && LY_ZXMQ != 1)
{
t = new GetParametricValueRequestData[] {
new GetParametricValueRequestData { parameter= "S_EIGENVALUE_4_1" },
new GetParametricValueRequestData { parameter= "S_EIGENVALUE_4_2" },
new GetParametricValueRequestData { parameter= "B_EIGENVALUE_4_1" },
new GetParametricValueRequestData { parameter= "B_EIGENVALUE_4_2" },
new GetParametricValueRequestData { parameter= "S_TARGETCW" }
};
}
if (LY_HXMQ == "中" && LY_ZXMQ != 1)
{
t = new GetParametricValueRequestData[] {
new GetParametricValueRequestData { parameter= "S_EIGENVALUE_5_1" },
new GetParametricValueRequestData { parameter= "S_EIGENVALUE_5_2" },
new GetParametricValueRequestData { parameter= "B_EIGENVALUE_5_1" },
new GetParametricValueRequestData { parameter= "B_EIGENVALUE_5_2" },
new GetParametricValueRequestData { parameter= "S_TARGETCW" }
};
}
if (LY_HXMQ == "右" && LY_ZXMQ != 1)
{
t = new GetParametricValueRequestData[] {
new GetParametricValueRequestData { parameter= "S_EIGENVALUE_6_1" },
new GetParametricValueRequestData { parameter= "S_EIGENVALUE_6_2" },
new GetParametricValueRequestData { parameter= "B_EIGENVALUE_6_1" },
new GetParametricValueRequestData { parameter= "B_EIGENVALUE_6_2" },
new GetParametricValueRequestData { parameter= "S_TARGETCW" }
};
}
TBDataServiceParam tbServiceParam = new TBDataServiceParam()
{
//url = "http://lymesa.catlbattery.com:8103/atlmeswebservice/GetParametricValueServiceService?wsdl",
//site = "2100",
//sfc = upMaterialSfc, //使用涂布膜卷号获取涂布重量特征数据
//memberlist = t
url = inifile.IniReadValue("TBParametricValueParam", "url"),
site = inifile.IniReadValue("TBParametricValueParam", "site"),
sfc = upMaterialSfc, //使用涂布膜卷号获取涂布重量特征数据
memberlist = t
};
try
{
var tbresult = MesWebServices.findTBData(tbServiceParam);
LogHelper.Info($"从mes中获取涂布数据:{JsonChange.ModeToJson(tbresult)}");
foreach (var item in tbresult.paramValues)
{
if (LY_HXMQ == "左" && LY_ZXMQ == 1)
{
if (item.parameter == "S_EIGENVALUE_1_1") LY_S_X01 = Convert.ToDouble((item.value));
if (item.parameter == "S_EIGENVALUE_1_2") LY_S_X02 = Convert.ToDouble((item.value));
if (item.parameter == "B_EIGENVALUE_1_1") LY_B_X01 = Convert.ToDouble((item.value));
if (item.parameter == "B_EIGENVALUE_1_2") LY_B_X02 = Convert.ToDouble((item.value));
if (item.parameter == "S_TARGETCW") S_TARGETCW = Convert.ToDouble((item.value));
}
if (LY_HXMQ == "中" && LY_ZXMQ == 1)
{
if (item.parameter == "S_EIGENVALUE_2_1") LY_S_X01 = Convert.ToDouble((item.value));
if (item.parameter == "S_EIGENVALUE_2_2") LY_S_X02 = Convert.ToDouble((item.value));
if (item.parameter == "B_EIGENVALUE_2_1") LY_B_X01 = Convert.ToDouble((item.value));
if (item.parameter == "B_EIGENVALUE_2_2") LY_B_X02 = Convert.ToDouble((item.value));
if (item.parameter == "S_TARGETCW") S_TARGETCW = Convert.ToDouble((item.value));
}
if (LY_HXMQ == "右" && LY_ZXMQ == 1)
{
if (item.parameter == "S_EIGENVALUE_3_1") LY_S_X01 = Convert.ToDouble((item.value));
if (item.parameter == "S_EIGENVALUE_3_2") LY_S_X02 = Convert.ToDouble((item.value));
if (item.parameter == "B_EIGENVALUE_3_1") LY_B_X01 = Convert.ToDouble((item.value));
if (item.parameter == "B_EIGENVALUE_2_2") LY_B_X02 = Convert.ToDouble((item.value));
if (item.parameter == "S_TARGETCW") S_TARGETCW = Convert.ToDouble((item.value));
}
if (LY_HXMQ == "左" && LY_ZXMQ != 1)
{
if (item.parameter == "S_EIGENVALUE_4_1") LY_S_X01 = Convert.ToDouble((item.value));
if (item.parameter == "S_EIGENVALUE_4_2") LY_S_X02 = Convert.ToDouble((item.value));
if (item.parameter == "B_EIGENVALUE_4_1") LY_B_X01 = Convert.ToDouble((item.value));
if (item.parameter == "B_EIGENVALUE_4_2") LY_B_X02 = Convert.ToDouble((item.value));
if (item.parameter == "S_TARGETCW") S_TARGETCW = Convert.ToDouble((item.value));
}
if (LY_HXMQ == "中" && LY_ZXMQ != 1)
{
if (item.parameter == "S_EIGENVALUE_5_1") LY_S_X01 = Convert.ToDouble((item.value));
if (item.parameter == "S_EIGENVALUE_5_2") LY_S_X02 = Convert.ToDouble((item.value));
if (item.parameter == "B_EIGENVALUE_5_1") LY_B_X01 = Convert.ToDouble((item.value));
if (item.parameter == "B_EIGENVALUE_5_2") LY_B_X02 = Convert.ToDouble((item.value));
if (item.parameter == "S_TARGETCW") S_TARGETCW = Convert.ToDouble((item.value));
}
if (LY_HXMQ == "右" && LY_ZXMQ != 1)
{
if (item.parameter == "S_EIGENVALUE_6_1") LY_S_X01 = Convert.ToDouble((item.value));
if (item.parameter == "S_EIGENVALUE_6_2") LY_S_X02 = Convert.ToDouble((item.value));
if (item.parameter == "B_EIGENVALUE_6_1") LY_B_X01 = Convert.ToDouble((item.value));
if (item.parameter == "B_EIGENVALUE_6_2") LY_B_X02 = Convert.ToDouble((item.value));
if (item.parameter == "S_TARGETCW") S_TARGETCW = Convert.ToDouble((item.value));
}
}
LogHelper.Info(String.Format("涂布特征数据:LY_S_X01:{0};LY_S_X02:{1};LY_B_X01:{2};LY_B_X02:{3},S_TARGETCW:{4}", LY_S_X01, LY_S_X02, LY_B_X01, LY_B_X02, S_TARGETCW));
}
catch (Exception ex)
{
LogHelper.Info("从mes中获取涂布数据异常:" + ex.Message);
}
#endregion
LogHelper.Info($"冷压物料特征数据:LY_FJFX:{LY_FJFX}-LY_SJFX:{LY_SJFX}-LY_SJZ:{LY_SJZ}-LY_HXMQ:{LY_HXMQ}-:LY_ZXMQ{LY_ZXMQ}-LY_WLMX:{LY_WLMX}-LY_S_X01:{LY_S_X01}-LY_S_X02:{LY_S_X02}-LY_B_X01:{LY_B_X01}-LY_B_X02:{LY_B_X02}-S_TARGETCW:{S_TARGETCW}");
machineIntegrationParametricData[] data = {
new machineIntegrationParametricData() {name ="LY_FJFX",dataType=ParameterDataType.TEXT, value=string.IsNullOrEmpty(LY_FJFX.ToString())?"0":LY_FJFX.ToString()},
new machineIntegrationParametricData() {name ="LY_SJFX",dataType=ParameterDataType.TEXT, value=string.IsNullOrEmpty(LY_SJFX.ToString())?"0":LY_SJFX.ToString()},
new machineIntegrationParametricData() {name ="LY_SJZ",dataType=ParameterDataType.TEXT, value=string.IsNullOrEmpty(LY_SJZ.ToString())?"0":LY_SJZ.ToString()},
new machineIntegrationParametricData() {name ="LY_HXMQ",dataType=ParameterDataType.TEXT, value=string.IsNullOrEmpty(LY_HXMQ.ToString())?"0":LY_HXMQ.ToString()},
new machineIntegrationParametricData() {name ="LY_ZXMQ",dataType=ParameterDataType.NUMBER, value=LY_ZXMQ.ToString()},
new machineIntegrationParametricData() {name ="LY_WLMX",dataType=ParameterDataType.TEXT, value=string.IsNullOrEmpty(LY_WLMX.ToString())?"0":LY_WLMX.ToString()},
new machineIntegrationParametricData() {name ="LY_S_X01",dataType=ParameterDataType.NUMBER, value=string.IsNullOrEmpty(LY_S_X01.ToString())?"0":LY_S_X01.ToString()},
new machineIntegrationParametricData() {name ="LY_S_X02",dataType=ParameterDataType.NUMBER, value=string.IsNullOrEmpty(LY_S_X02.ToString())?"0":LY_S_X02.ToString()},
new machineIntegrationParametricData() {name ="LY_B_X01",dataType=ParameterDataType.NUMBER, value=string.IsNullOrEmpty(LY_B_X01.ToString())?"0":LY_B_X01.ToString()},
new machineIntegrationParametricData() {name ="LY_B_X02",dataType=ParameterDataType.NUMBER, value=string.IsNullOrEmpty(LY_B_X02.ToString())?"0":LY_B_X02.ToString()},
new machineIntegrationParametricData() {name ="S_TARGETCW",dataType=ParameterDataType.NUMBER, value=string.IsNullOrEmpty(S_TARGETCW.ToString())?"0":S_TARGETCW.ToString()},
};
return data;
}
catch (Exception ex)
{
LogHelper.Info("冷压物料特征数据获取异常:" + ex.Message);
return null;
}
}
}
}