using CCDCount.MODEL.ConfigModel;
using CCDCount.MODEL.PlcModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CCDCount.DLL
{
public static class FormulationClass
{
///
/// 初始化配方数据
///
///
///
///
public static FormulationConfigClass InitFormulation(CameraConfig cameraConfig, ShuLiConfigClass shuLiConfig, PlcParaModelClass plcParaModel)
{
var result = new FormulationConfigClass()
{
Channel = shuLiConfig.Channel,
ExposureTimeValue = cameraConfig.ExposureTimeValue,
AcquistionLineRateValue = cameraConfig.AcquistionLineRateValue,
DeviceName = cameraConfig.DeviceName,
FormulationName = string.Empty,
//IdentifyStartX = shuLiConfig.IdentifyStartX,
//IdentifyStopX = shuLiConfig.IdentifyStopX,
//IsIdentifyRoiOpen = shuLiConfig.IsIdentifyRoiOpen,
MaxArea = shuLiConfig.MaxArea,
MinArea = shuLiConfig.MinArea,
NoiseFilter_Threshold = shuLiConfig.NoiseFilter_Threshold,
PandingCode = shuLiConfig.PandingCode,
RegionThreshold = shuLiConfig.RegionThreshold,
MAX_GAP = shuLiConfig.MAX_GAP,
MAX_Object_LENGTH = shuLiConfig.MAX_Object_LENGTH,
MIN_Object_LENGTH = shuLiConfig.MIN_Object_LENGTH,
ScaleX = shuLiConfig.ScaleX,
ScaleY = shuLiConfig.ScaleY,
};
if(plcParaModel != null)
{
result.FillingMode = plcParaModel.FillingMode;
result.BeltsSpeed = plcParaModel.BeltsSpeed;
result.ShakeTable1H_FillingSpeed = plcParaModel.ShakeTable1H_FillingSpeed;
result.ShakeTable2H_FillingSpeed = plcParaModel.ShakeTable2H_FillingSpeed;
result.ShakeTable3H_FillingSpeed = plcParaModel.ShakeTable3H_FillingSpeed;
result.ShakeTable1M_FillingSpeed = plcParaModel.ShakeTable1M_FillingSpeed;
result.ShakeTable2M_FillingSpeed = plcParaModel.ShakeTable2M_FillingSpeed;
result.ShakeTable3M_FillingSpeed = plcParaModel.ShakeTable3M_FillingSpeed;
result.ShakeTable1L_FillingSpeed = plcParaModel.ShakeTable1L_FillingSpeed;
result.ShakeTable2L_FillingSpeed = plcParaModel.ShakeTable2L_FillingSpeed;
result.ShakeTable3L_FillingSpeed = plcParaModel.ShakeTable3L_FillingSpeed;
result.ShakeTable1H_CacheSpeed = plcParaModel.ShakeTable1H_CacheSpeed;
result.ShakeTable2H_CacheSpeed = plcParaModel.ShakeTable2H_CacheSpeed;
result.ShakeTable3H_CacheSpeed = plcParaModel.ShakeTable3H_CacheSpeed;
result.ShakeTable1M_CacheSpeed = plcParaModel.ShakeTable1M_CacheSpeed;
result.ShakeTable2M_CacheSpeed = plcParaModel.ShakeTable2M_CacheSpeed;
result.ShakeTable3M_CacheSpeed = plcParaModel.ShakeTable3M_CacheSpeed;
result.ShakeTable1L_CacheSpeed = plcParaModel.ShakeTable1L_CacheSpeed;
result.ShakeTable2L_CacheSpeed = plcParaModel.ShakeTable2L_CacheSpeed;
result.ShakeTable3L_CacheSpeed = plcParaModel.ShakeTable3L_CacheSpeed;
result.FillingH_SpeedRatio = plcParaModel.FillingH_SpeedRatio;
result.FillingM_SpeedRatio = plcParaModel.FillingM_SpeedRatio;
result.FillingL_SpeedRatio = plcParaModel.FillingL_SpeedRatio;
result.CacheH_SpeedRatio = plcParaModel.CacheH_SpeedRatio;
result.CacheM_SpeedRatio = plcParaModel.CacheM_SpeedRatio;
result.CacheL_SpeedRatio = plcParaModel.CacheL_SpeedRatio;
result.ScrewJogSpeed = plcParaModel.ScrewJogSpeed;
result.InBottleSpeed = plcParaModel.InBottleSpeed;
result.BottlePosSpeed = plcParaModel.BottlePosSpeed;
result.BottlePosPosition = plcParaModel.BottlePosPosition;
result.FillingValveOpenSpeed = plcParaModel.FillingValveOpenSpeed;
result.FillingValveOpenPosition = plcParaModel.FillingValveOpenPosition;
result.FillingValveCloseSpeed = plcParaModel.FillingValveCloseSpeed;
result.FillingValveClosePosition = plcParaModel.FillingValveClosePosition;
result.FillingValveCacheSpeed = plcParaModel.FillingValveCacheSpeed;
result.FillingValueCachePosition = plcParaModel.FillingValueCachePosition;
result.FillingValueJogSpeed = plcParaModel.FillingValueJogSpeed;
result.MachineDelayFunneDownTime = plcParaModel.MachineDelayFunneDownTime;
result.MachineDelayFunneUpTime = plcParaModel.MachineDelayFunneUpTime;
result.MachineDelayFillingValveOpenTime = plcParaModel.MachineDelayFillingValveOpenTime;
result.MachineDelayFillingValveCloseTime = plcParaModel.MachineDelayFillingValveCloseTime;
result.MachineDelayInBottleTime = plcParaModel.MachineDelayInBottleTime;
result.ValveDelytime = plcParaModel.ValveDelytime;
result.BottValueSet = plcParaModel.BottValueSet;
result.CacheShutdownValue = plcParaModel.CacheShutdownValue;
}
else
{
result = null;
}
return result;
}
///
/// 更新配方数据
///
///
///
///
public static void UpdateFormulation(ref FormulationConfigClass formulationConfig,CameraConfig cameraConfig, ShuLiConfigClass shuLiConfig)
{
formulationConfig.Channel = shuLiConfig.Channel;
formulationConfig.ExposureTimeValue = cameraConfig.ExposureTimeValue;
formulationConfig.AcquistionLineRateValue = cameraConfig.AcquistionLineRateValue;
formulationConfig.DeviceName = cameraConfig.DeviceName;
//formulationConfig.IdentifyStartX = shuLiConfig.IdentifyStartX;
//formulationConfig.IdentifyStopX = shuLiConfig.IdentifyStopX;
//formulationConfig.IsIdentifyRoiOpen = shuLiConfig.IsIdentifyRoiOpen;
formulationConfig.MaxArea = shuLiConfig.MaxArea;
formulationConfig.MinArea = shuLiConfig.MinArea;
formulationConfig.NoiseFilter_Threshold = shuLiConfig.NoiseFilter_Threshold;
formulationConfig.PandingCode = shuLiConfig.PandingCode;
formulationConfig.RegionThreshold = shuLiConfig.RegionThreshold;
formulationConfig.MAX_GAP = shuLiConfig.MAX_GAP;
formulationConfig.MAX_Object_LENGTH = shuLiConfig.MAX_Object_LENGTH;
formulationConfig.MIN_Object_LENGTH = shuLiConfig.MIN_Object_LENGTH;
formulationConfig.ScaleX = shuLiConfig.ScaleX;
formulationConfig.ScaleY = shuLiConfig.ScaleY;
}
}
}