Commit 9100311f 几米阳光

灯闪烁修改

1 个父辈 39e3851f
......@@ -6,5 +6,38 @@
4.增加模拟量IO
20181107
1.出库时等待10秒钟,或等待拿走料盘(高度=0)才算出库结束
20181108
// 机器状态 顶灯显示
// 绿 黄 红
//机器复位中 闪 灭 灭
//机器待机中 亮 灭 灭
//机器出入库中 闪 闪 灭
//温湿度超限报警中 亮 闪 灭
//温湿度超限报警中超过30分钟 亮 闪 闪
//机器未启动 灭 灭 灭
//机器设备故障(非温湿度)报警 亮 灭 闪
\ No newline at end of file
......@@ -104,9 +104,9 @@ namespace OnlineStore.DeviceLibrary
Thread.Sleep(300);
//默认三个灯都亮
KNDIOMove(IO_Type.Alarm_HddLed, IO_VALUE.HIGH);
KNDIOMove(IO_Type.AutoRun_HddLed, IO_VALUE.HIGH);
KNDIOMove(IO_Type.RunSign_HddLed, IO_VALUE.HIGH);
KNDIOMove(IO_Type.Alarm_HddLed, IO_VALUE.LOW);
KNDIOMove(IO_Type.AutoRun_HddLed, IO_VALUE.LOW);
KNDIOMove(IO_Type.RunSign_HddLed, IO_VALUE.LOW);
}
private void IoCheckTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
......@@ -772,63 +772,142 @@ namespace OnlineStore.DeviceLibrary
LogUtil.info("【" + info + "】 处理完成,耗时:" + (DateTime.Now - preProcessTime).ToString());
}
}
//private void LedProcess()
//{
//try
//{
// DateTime time = DateTime.Now;
// //黄灯
// if (IsNotScanCode || storeRunStatus.Equals(StoreRunStatus.HomeMoving) || storeRunStatus.Equals(StoreRunStatus.Reset))
// {
// //开机执行中时黄灯闪烁
// if (KNDIOValue(IO_Type.RunSign_HddLed).Equals(IO_VALUE.HIGH))
// {
// KNDIOMove(IO_Type.RunSign_HddLed, IO_VALUE.LOW);
// }
// else
// {
// KNDIOMove(IO_Type.RunSign_HddLed, IO_VALUE.HIGH);
// }
// }
// else
// {
// if (KNDIOValue(IO_Type.RunSign_HddLed).Equals(IO_VALUE.HIGH))
// {
// KNDIOMove(IO_Type.RunSign_HddLed, IO_VALUE.LOW);
// }
// }
// //路灯亮
// //出入库执行中,绿灯闪烁
// if ((StoreMove.MoveType.Equals(StoreMoveType.InStore) || StoreMove.MoveType.Equals(StoreMoveType.OutStore)) && KNDIOValue(IO_Type.AutoRun_HddLed).Equals(IO_VALUE.HIGH))
// {
// KNDIOMove(IO_Type.AutoRun_HddLed, IO_VALUE.LOW);
// }
// else
// {
// if (KNDIOValue(IO_Type.AutoRun_HddLed).Equals(IO_VALUE.LOW))
// {
// KNDIOMove(IO_Type.AutoRun_HddLed, IO_VALUE.HIGH);
// }
// }
// bool isNeedAlarmLed = false;
// //报警灯
// if (!alarmType.Equals(StoreAlarmType.None) || isNoAirCheck || isInSuddenDown)
// {
// isNeedAlarmLed = true;
// }
// if (isNeedAlarmLed)
// {
// if (KNDIOValue(IO_Type.Alarm_HddLed).Equals(IO_VALUE.LOW))
// {
// KNDIOMove(IO_Type.Alarm_HddLed, IO_VALUE.HIGH);
// }
// }
// else
// {
// if (KNDIOValue(IO_Type.Alarm_HddLed).Equals(IO_VALUE.HIGH))
// {
// KNDIOMove(IO_Type.Alarm_HddLed, IO_VALUE.LOW);
// }
// }
//}
//catch (Exception ex)
//{
// LOGGER.Error(StoreName + "灯处理定时器出错:", ex);
//}
//}
private void LedProcess()
{
try
{
// 机器状态 顶灯显示
// 绿 黄 红
//机器复位中 闪 灭 灭
//机器待机中 亮 灭 灭
//机器出入库中 闪 闪 灭
//温湿度超限报警中 亮 闪 灭
//温湿度超限报警中超过30分钟 亮 闪 闪
//机器未启动 灭 灭 灭
//机器设备故障(非温湿度)报警 亮 灭 闪
DateTime time = DateTime.Now;
//黄灯
if (IsNotScanCode || storeRunStatus.Equals(StoreRunStatus.HomeMoving) || storeRunStatus.Equals(StoreRunStatus.Reset))
bool isTemp30M = false;
if (TempOrHumidityIsAlarm)
{
//开机执行中时黄灯闪烁
if (KNDIOValue(IO_Type.RunSign_HddLed).Equals(IO_VALUE.HIGH))
{
KNDIOMove(IO_Type.RunSign_HddLed, IO_VALUE.LOW);
}
else
TimeSpan span = DateTime.Now - TempAlarmTime;
if (span.Minutes > 30)
{
KNDIOMove(IO_Type.RunSign_HddLed, IO_VALUE.HIGH);
isTemp30M = true;
}
}
else
bool isNeedAlarmLed = false;
//报警灯
if (!alarmType.Equals(StoreAlarmType.None) || isTemp30M)
{
if (KNDIOValue(IO_Type.RunSign_HddLed).Equals( IO_VALUE.HIGH))
{
KNDIOMove(IO_Type.RunSign_HddLed, IO_VALUE.LOW);
}
isNeedAlarmLed = true;
}
//路灯亮
//出入库执行中,绿灯闪烁
if ((StoreMove.MoveType.Equals(StoreMoveType.InStore) || StoreMove.MoveType.Equals(StoreMoveType.OutStore)) && KNDIOValue(IO_Type.AutoRun_HddLed).Equals(IO_VALUE.HIGH))
if (isNeedAlarmLed && KNDIOValue(IO_Type.Alarm_HddLed).Equals(IO_VALUE.LOW))
{
KNDIOMove(IO_Type.AutoRun_HddLed, IO_VALUE.LOW);
KNDIOMove(IO_Type.Alarm_HddLed, IO_VALUE.HIGH);
}
else
{
if (KNDIOValue(IO_Type.AutoRun_HddLed).Equals(IO_VALUE.LOW))
if (KNDIOValue(IO_Type.Alarm_HddLed).Equals(IO_VALUE.HIGH))
{
KNDIOMove(IO_Type.AutoRun_HddLed, IO_VALUE.HIGH);
KNDIOMove(IO_Type.Alarm_HddLed, IO_VALUE.LOW);
}
}
bool isNeedAlarmLed = false;
//报警灯
if (!alarmType.Equals(StoreAlarmType.None) || isNoAirCheck || isInSuddenDown )
//绿灯闪
if ((StoreMove.MoveType.Equals(StoreMoveType.InStore) || StoreMove.MoveType.Equals(StoreMoveType.OutStore)
|| storeRunStatus.Equals(StoreRunStatus.HomeMoving) || storeRunStatus.Equals(StoreRunStatus.Reset))
&& KNDIOValue(IO_Type.AutoRun_HddLed).Equals(IO_VALUE.HIGH))
{
isNeedAlarmLed = true;
KNDIOMove(IO_Type.AutoRun_HddLed, IO_VALUE.LOW);
}
if (isNeedAlarmLed)
else
{
//绿灯亮
KNDIOMove(IO_Type.AutoRun_HddLed, IO_VALUE.HIGH);
}
//黄灯
if (StoreMove.MoveType.Equals(StoreMoveType.InStore) || StoreMove.MoveType.Equals(StoreMoveType.OutStore) || TempOrHumidityIsAlarm || isTemp30M)
{
if (KNDIOValue(IO_Type.Alarm_HddLed).Equals( IO_VALUE.LOW))
if (KNDIOValue(IO_Type.RunSign_HddLed).Equals(IO_VALUE.HIGH))
{
KNDIOMove(IO_Type.Alarm_HddLed, IO_VALUE.HIGH);
KNDIOMove(IO_Type.RunSign_HddLed, IO_VALUE.LOW);
}
else
{
KNDIOMove(IO_Type.RunSign_HddLed, IO_VALUE.HIGH);
}
}
else
{
if (KNDIOValue(IO_Type.Alarm_HddLed).Equals( IO_VALUE.HIGH))
if (KNDIOValue(IO_Type.RunSign_HddLed).Equals(IO_VALUE.HIGH))
{
KNDIOMove(IO_Type.Alarm_HddLed, IO_VALUE.LOW);
KNDIOMove(IO_Type.RunSign_HddLed, IO_VALUE.LOW);
}
}
}
......@@ -1265,12 +1344,11 @@ namespace OnlineStore.DeviceLibrary
IsNotScanCode = false;
if (storeRunStatus.Equals(StoreRunStatus.Wait))
{
CodeMsg = "收到二维码【 " + message + "】,设备未启动,不需要发送服务器";
LogUtil.info(LOGGER, StoreName + "收到二维码【 " + message + "】,设备未启动,不需要发送服务器");
IsScanCode = false;
return;
}
CodeMsg = "收到二维码【 " + message + "】,发送给服务器获取入库PosID";
// CodeMsg = "收到二维码【 " + message + "】,发送给服务器获取入库PosID";
LogUtil.info(LOGGER, StoreName + "收到二维码【 " + message + "】,发送给服务器获取入库PosID");
//发送扫码内容到服务器进行入库操作
Operation operation = getLineBoxStatus();
......@@ -1280,7 +1358,7 @@ namespace OnlineStore.DeviceLibrary
Operation resultOperation = HttpHelper.Post(StoreManager.GetPostApi(server), operation, false);
if (resultOperation == null)
{
CodeMsg = "二维码【" + message + "】没有收到服务器反馈";
// CodeMsg = "二维码【" + message + "】没有收到服务器反馈";
LogUtil.info(LOGGER, StoreName + "二维码【" + message + "】没有收到服务器反馈!");
IsScanCode = false;
return;
......@@ -1419,8 +1497,23 @@ namespace OnlineStore.DeviceLibrary
public int GetSize()
{
return 7;
//double ai1Value = KNDAIManager.ConvertAI(KNDAIManager.GetAIValue(Config.AIDevice_IP, 1), Config.AIDI1_DefaultPosition);
//double ai2Value = KNDAIManager.ConvertAI(KNDAIManager.GetAIValue(Config.AIDevice_IP, 2), Config.AIDI2_DefaultPosition);
//double ai3Value = KNDAIManager.ConvertAI(KNDAIManager.GetAIValue(Config.AIDevice_IP, 3), Config.AIDI3_DefaultPosition);
//if (ai1Value > 14 && ai2Value > 14 && ai3Value > 14)
//{
// return 13;
//}
//return 7;
}
public int GetHeight()
{
int result = 0;
double Value = KNDAIManager.ConvertAI(KNDAIManager.GetAIValue(Config.AIDevice_IP, 3), Config.AIDI3_DefaultPosition);
double ai1Value = KNDAIManager.ConvertAI(KNDAIManager.GetAIValue(Config.AIDevice_IP, 1), Config.AIDI1_DefaultPosition);
double ai2Value = KNDAIManager.ConvertAI(KNDAIManager.GetAIValue(Config.AIDevice_IP, 2), Config.AIDI2_DefaultPosition);
double ai3Value = KNDAIManager.ConvertAI(KNDAIManager.GetAIValue(Config.AIDevice_IP, 3), Config.AIDI3_DefaultPosition);
double Value = Math.Round((ai1Value + ai2Value + ai3Value) / 3, 1);
if (Value > 14)
{
result = 16;
......@@ -1437,24 +1530,57 @@ namespace OnlineStore.DeviceLibrary
{
result = 0;
}
if (result > 0)
{
return 13;
}else
{
return 7;
}
}
public int GetHeight()
{
int result = 0;
double ai1Value = KNDAIManager.ConvertAI(KNDAIManager.GetAIValue(Config.AIDevice_IP, 1), Config.AIDI1_DefaultPosition);
double ai2Value = KNDAIManager.ConvertAI(KNDAIManager.GetAIValue(Config.AIDevice_IP, 2), Config.AIDI2_DefaultPosition);
double ai3Value = KNDAIManager.ConvertAI(KNDAIManager.GetAIValue(Config.AIDevice_IP, 3), Config.AIDI3_DefaultPosition);
double Value = Math.Round((ai1Value + ai2Value +ai3Value) / 3, 1);
return result;
//List<double> list = new List<double>() { ai1Value,ai2Value,ai3Value};
//double pingjValue = (ai3Value + ai2Value + ai1Value) / 3;
//// ,8-11为第0区间,11-14 为第1区间,14-15为第2区间,>=15为第3区间
//List<int> qujianList = new List<int>() {0,0,0,0,0,0 };
//foreach (double d in list)
//{
// if (d < 11)
// {
// qujianList[0]++;
// } else if (d <= 14)
// {
// qujianList[1]++;
// } else if (d <= 15)
// {
// qujianList[2]++;
// } else
// {
// qujianList[3]++;
// }
//}
//if (qujianList[0] >= 2)
//{
// result = 0;
//}
//else if (qujianList[1].Equals(3))
//{
// result = 8;
//}
//else if (qujianList[1] >= 1 && (qujianList[1] + qujianList[2] + qujianList[3] >= 3))
//{
// result = 12;
//}
//else
//{
// if (pingjValue < 10)
// {
// result = 0;
// }
// else if (pingjValue > 18)
// {
// result = 16;
// }
// else
// {
// result = 12;
// }
//}
//return result;
//int radValue =(int) ( Value / 4);
//double mValue = (Value % 4);
//if (mValue > 1)
......@@ -1465,24 +1591,7 @@ namespace OnlineStore.DeviceLibrary
//{
// result = radValue * 4;
//}
if (Value > 14)
{
result = 16;
}
else if (Value >= 10)
{
result = 12;
}
else if (Value >= 4)
{
result = 8;
}
else
{
result = 0;
}
return result;
}
#endregion
......@@ -1502,6 +1611,7 @@ namespace OnlineStore.DeviceLibrary
private DateTime preLogTime = DateTime.Now;
private bool TempOrHumidityIsAlarm = false;
private DateTime TempAlarmTime = DateTime.Now;
private float StartBlowValue = (float)ConfigAppSettings.GetNumValue(Setting_Init.StartBlowValue);
private float StopBlowValue = (float)ConfigAppSettings.GetNumValue(Setting_Init.StopBlowValue);
......@@ -1572,7 +1682,8 @@ namespace OnlineStore.DeviceLibrary
//如果开始吹气并且当前达到报警值
if (IsInBlowing.Equals(true) && humidity > Max_Humidity)
{
TempOrHumidityIsAlarm = true;
TempAlarmTime = DateTime.Now;
TempOrHumidityIsAlarm = true;
}
else
{
......@@ -1583,6 +1694,7 @@ namespace OnlineStore.DeviceLibrary
if (temp > Max_Temperature && Max_Temperature > 0)
{
LOGGER.Info("当前温度【" + param.Temperate + "】超过最高温度【" + Max_Temperature + "】,开始报警!");
TempAlarmTime = DateTime.Now;
TempOrHumidityIsAlarm = true;
//Thread.Sleep(100);
KNDIOMove(IO_Type.StartOrStopBlow, IO_VALUE.LOW);
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!