Commit a9caaaa9 几米阳光

温湿度处理修改

1 个父辈 0aff01d6
...@@ -241,15 +241,7 @@ namespace OnlineStore.ACSingleStore ...@@ -241,15 +241,7 @@ namespace OnlineStore.ACSingleStore
lblWarnMsg.Text = store.WarnMsg; lblWarnMsg.Text = store.WarnMsg;
if (store.Config.IsHasDoorLimit.Equals(1)) if (store.Config.IsHasDoorLimit.Equals(1))
{ {
//if (store.KNDIOValue(IO_Type.Left_Door_LimitSingle).Equals(IO_VALUE.LOW))
//{
// lblWarnMsg.Text = lblWarnMsg.Text + " 左侧门未关";
//}
//if (store.KNDIOValue(IO_Type.Right_Door_LimitSingle).Equals(IO_VALUE.LOW))
//{
// lblWarnMsg.Text = lblWarnMsg.Text + " 右侧门未关";
//}
if (store.KNDIOValue(IO_Type.Door_LimitSingle).Equals(IO_VALUE.LOW)) if (store.KNDIOValue(IO_Type.Door_LimitSingle).Equals(IO_VALUE.LOW))
{ {
lblWarnMsg.Text = lblWarnMsg.Text + " 前门未关"; lblWarnMsg.Text = lblWarnMsg.Text + " 前门未关";
...@@ -260,6 +252,10 @@ namespace OnlineStore.ACSingleStore ...@@ -260,6 +252,10 @@ namespace OnlineStore.ACSingleStore
{ {
lblWarnMsg.Text = lblWarnMsg.Text + " 叉子料盘检测有料,请检查"; lblWarnMsg.Text = lblWarnMsg.Text + " 叉子料盘检测有料,请检查";
} }
if (store.TempOrHumidityIsAlarm)
{
lblWarnMsg.Text = lblWarnMsg.Text + " 温湿度报警["+store.TempAlarmTime .ToLongTimeString()+ "]";
}
if (store.autoNext) if (store.autoNext)
{ {
string msg = store.autoMsg; string msg = store.autoMsg;
......
...@@ -30,6 +30,7 @@ namespace OnlineStore.Common ...@@ -30,6 +30,7 @@ namespace OnlineStore.Common
/// 1扫码入库(扫码成功后发送给服务器), /// 1扫码入库(扫码成功后发送给服务器),
/// 2 出库(服务器发送),3表示错误信息 ) /// 2 出库(服务器发送),3表示错误信息 )
/// 4,发送给服务表示二维码扫码入库,收到开始扫码 /// 4,发送给服务表示二维码扫码入库,收到开始扫码
/// 5=表示温湿度报警值
/// </summary> /// </summary>
public int op { get; set; } public int op { get; set; }
/// <summary> /// <summary>
......
...@@ -68,8 +68,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -68,8 +68,8 @@ namespace OnlineStore.DeviceLibrary
this.Config = config; this.Config = config;
this.DIList = config.StoreDIList; this.DIList = config.StoreDIList;
this.DOList = config.StoreDOList; this.DOList = config.StoreDOList;
Max_Humidity = config.Max_Humidity; //Max_Humidity = config.Max_Humidity;
Max_Temperature = config.Max_Temperature; //Max_Temperature = config.Max_Temperature;
moveAxisList = new List<ConfigMoveAxis>(); moveAxisList = new List<ConfigMoveAxis>();
MoveAxisConfig(); MoveAxisConfig();
List<ACStorePosition> positionList = CSVPositionReader<ACStorePosition>.getPositionList(); List<ACStorePosition> positionList = CSVPositionReader<ACStorePosition>.getPositionList();
...@@ -1416,7 +1416,28 @@ namespace OnlineStore.DeviceLibrary ...@@ -1416,7 +1416,28 @@ namespace OnlineStore.DeviceLibrary
return; return;
} }
IsScanCode = false; IsScanCode = false;
ReviceInStoreProcess(message, resultOperation);
if (resultOperation.data != null)
{
ProcessHumidityCMD(resultOperation);
}
if (resultOperation.op.Equals(2))
{
ReviceOutStoreProcess(resultOperation);
}
else if (resultOperation.op.Equals(1))
{
ReviceInStoreProcess(message, resultOperation);
}
//else if (resultOperation.op.Equals(5))
//{
// ProcessHumidityCMD(resultOperation);
//}
else
{
LogUtil.error("收到服务器命令:op=" + resultOperation.op + ",未找到对应处理");
}
} }
catch (Exception ex) catch (Exception ex)
{ {
...@@ -1693,8 +1714,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -1693,8 +1714,8 @@ namespace OnlineStore.DeviceLibrary
private DateTime LastEndBlowTime = new DateTime(1997, 1, 1); private DateTime LastEndBlowTime = new DateTime(1997, 1, 1);
private DateTime preLogTime = DateTime.Now; private DateTime preLogTime = DateTime.Now;
private bool TempOrHumidityIsAlarm = false; public bool TempOrHumidityIsAlarm = false;
private DateTime TempAlarmTime = DateTime.Now; public DateTime TempAlarmTime = DateTime.Now;
private float StartBlowValue = (float)ConfigAppSettings.GetNumValue(Setting_Init.StartBlowValue); private float StartBlowValue = (float)ConfigAppSettings.GetNumValue(Setting_Init.StartBlowValue);
private float StopBlowValue = (float)ConfigAppSettings.GetNumValue(Setting_Init.StopBlowValue); private float StopBlowValue = (float)ConfigAppSettings.GetNumValue(Setting_Init.StopBlowValue);
...@@ -1743,8 +1764,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -1743,8 +1764,7 @@ namespace OnlineStore.DeviceLibrary
if (IsInBlowing && stopBlowHumidity > currMaxHumidity) if (IsInBlowing && stopBlowHumidity > currMaxHumidity)
{ {
LOGGER.Info("当前最大湿度:" + currMaxHumidity.ToString() + ",停止吹气湿度:" + stopBlowHumidity + ",停止吹气!"); LOGGER.Info("当前最大湿度:" + currMaxHumidity.ToString() + ",停止吹气湿度:" + stopBlowHumidity + ",停止吹气!");
IsInBlowing = false; IsInBlowing = false;
//Thread.Sleep(100);
KNDIOMove(IO_Type.StartOrStopBlow, IO_VALUE.LOW); KNDIOMove(IO_Type.StartOrStopBlow, IO_VALUE.LOW);
LastEndBlowTime = DateTime.Now; LastEndBlowTime = DateTime.Now;
} }
...@@ -1761,24 +1781,16 @@ namespace OnlineStore.DeviceLibrary ...@@ -1761,24 +1781,16 @@ namespace OnlineStore.DeviceLibrary
LastEndBlowTime = DateTime.Now; LastEndBlowTime = DateTime.Now;
} }
} }
bool needAlarm = false;
//如果开始吹气并且当前达到报警值 //如果开始吹气并且当前达到报警值
if (IsInBlowing.Equals(true) && humidity > Max_Humidity) if (IsInBlowing && humidity > Max_Humidity)
{ {
TempAlarmTime = DateTime.Now; needAlarm = true;
TempOrHumidityIsAlarm = true;
} }
else else if (temp > Max_Temperature && Max_Temperature > 0)
{
TempOrHumidityIsAlarm = false;
}
//如果湿度没有报警,温度达到范围也需要报警
if (temp > Max_Temperature && Max_Temperature > 0)
{ {
LOGGER.Info("当前温度【" + param.Temperate + "】超过最高温度【" + Max_Temperature + "】,开始报警!"); LOGGER.Info("当前温度【" + param.Temperate + "】超过最高温度【" + Max_Temperature + "】,开始报警!");
TempAlarmTime = DateTime.Now; needAlarm = true;
TempOrHumidityIsAlarm = true;
//Thread.Sleep(100); //Thread.Sleep(100);
KNDIOMove(IO_Type.StartOrStopBlow, IO_VALUE.LOW); KNDIOMove(IO_Type.StartOrStopBlow, IO_VALUE.LOW);
} }
...@@ -1791,6 +1803,14 @@ namespace OnlineStore.DeviceLibrary ...@@ -1791,6 +1803,14 @@ namespace OnlineStore.DeviceLibrary
//Thread.Sleep(100); //Thread.Sleep(100);
KNDIOMove(IO_Type.StartOrStopBlow, IO_VALUE.LOW); KNDIOMove(IO_Type.StartOrStopBlow, IO_VALUE.LOW);
} }
}
if (needAlarm)
{
HTAlarm();
}
else
{
TempOrHumidityIsAlarm = false;
} }
} }
} }
...@@ -1799,6 +1819,15 @@ namespace OnlineStore.DeviceLibrary ...@@ -1799,6 +1819,15 @@ namespace OnlineStore.DeviceLibrary
LOGGER.Error(StoreName + "HumidityProcess出错:" + ex.ToString()); LOGGER.Error(StoreName + "HumidityProcess出错:" + ex.ToString());
} }
} }
private void HTAlarm()
{
if (TempOrHumidityIsAlarm)
{
return;
}
TempAlarmTime = DateTime.Now;
TempOrHumidityIsAlarm = true;
}
#endregion #endregion
#region 与服务器通信定时器,每1秒向服务器通知一次状态,同时执行出库操作 #region 与服务器通信定时器,每1秒向服务器通知一次状态,同时执行出库操作
...@@ -1927,7 +1956,12 @@ namespace OnlineStore.DeviceLibrary ...@@ -1927,7 +1956,12 @@ namespace OnlineStore.DeviceLibrary
DateTime time = DateTime.Now; DateTime time = DateTime.Now;
//构建发送给服务器的对象 //构建发送给服务器的对象
Operation lineOperation = getLineBoxStatus(); Operation lineOperation = getLineBoxStatus();
//如果还没湿度范围,先获取
if (Max_Humidity <= 0 || (Max_Temperature <= 0))
{
lineOperation.op = 5;
LogUtil.info(LOGGER, StoreName + "没有湿度预警范围,需要从服务器获取,发送OP=" + lineOperation.op);
}
string server = ConfigAppSettings.GetValue(Setting_Init.http_server); string server = ConfigAppSettings.GetValue(Setting_Init.http_server);
Operation resultOperation = HttpHelper.Post(StoreManager.GetPostApi(server), lineOperation, false); Operation resultOperation = HttpHelper.Post(StoreManager.GetPostApi(server), lineOperation, false);
//增加报警处理 //增加报警处理
...@@ -1947,11 +1981,20 @@ namespace OnlineStore.DeviceLibrary ...@@ -1947,11 +1981,20 @@ namespace OnlineStore.DeviceLibrary
} }
} }
//发送状态信息到服务器 //发送状态信息到服务器
if (resultOperation == null || (resultOperation.op <= 0)) if (resultOperation == null )
{ {
//判断服务端是否返回出库操作 //判断服务端是否返回出库操作
return; return;
} }
if (resultOperation.data != null)
{
ProcessHumidityCMD(resultOperation);
}
if ((resultOperation.op <= 0))
{
return;
}
if (resultOperation.op.Equals(2)) if (resultOperation.op.Equals(2))
{ {
ReviceOutStoreProcess(resultOperation); ReviceOutStoreProcess(resultOperation);
...@@ -1959,6 +2002,10 @@ namespace OnlineStore.DeviceLibrary ...@@ -1959,6 +2002,10 @@ namespace OnlineStore.DeviceLibrary
{ {
ReviceInStoreProcess("", resultOperation); ReviceInStoreProcess("", resultOperation);
} }
//else if (resultOperation.op.Equals(5))
//{
// ProcessHumidityCMD(resultOperation);
//}
else else
{ {
LogUtil.error("收到服务器命令:op=" + resultOperation.op + ",未找到对应处理"); LogUtil.error("收到服务器命令:op=" + resultOperation.op + ",未找到对应处理");
...@@ -1969,7 +2016,27 @@ namespace OnlineStore.DeviceLibrary ...@@ -1969,7 +2016,27 @@ namespace OnlineStore.DeviceLibrary
LogUtil.info(StoreName + "执行TimerProcess 共处理了【" + span.TotalMilliseconds + "】毫秒"); LogUtil.info(StoreName + "执行TimerProcess 共处理了【" + span.TotalMilliseconds + "】毫秒");
} }
} }
private void ProcessHumidityCMD(Operation resultOperation)
{
Dictionary<string, string> data = resultOperation.data;
if (data != null && data.ContainsKey(ParamDefine.maxHumidity) && data.ContainsKey(ParamDefine.maxTemperature))
{
string maxHumidity = data[ParamDefine.maxHumidity];
string maxTemp = data[ParamDefine.maxTemperature];
LogUtil.info(LOGGER, "收到服务器温湿度预警值:maxHumidity=" + maxHumidity + ",maxTemperature=" + maxTemp);
try
{
this.Max_Humidity = (float)Convert.ToDouble(maxHumidity);
this.Max_Temperature = (float)Convert.ToDouble(maxTemp);
LogUtil.info(LOGGER, "保存温湿度预警值:Max_Humidity=" + Max_Humidity + ",Max_Temperature=" + Max_Temperature);
}
catch (Exception ex)
{
LogUtil.error("转换温湿度失败:" + ex.ToString());
}
}
}
private void ReviceOutStoreProcess(Operation resultOperation) private void ReviceOutStoreProcess(Operation resultOperation)
{ {
try try
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!