Commit 8f4fffc6 几米阳光

灯状态修改

1 个父辈 a8dda7d4
......@@ -53,13 +53,13 @@
3.扫码不需要每次都关闭相机。
增加功能:
20190305增加功能:
1,复位时增加料盘感应功能,感应到料盘时给提示且增加出库功能
2,出库完成时,通过料仓窗口高度感应检测出料有无料盘,无料盘提示报警。
20190306修改
通电和待机白灯亮,出入库过程中绿灯亮,报警黄灯亮2秒灭掉后红灯亮
......
......@@ -274,7 +274,7 @@ namespace OnlineStore.DeviceLibrary
CurrInOutACount = 0;
KNDIOMove(IO_Type.Alarm_HddLed, IO_VALUE.LOW);
KNDIOMove(IO_Type.AutoRun_HddLed, IO_VALUE.HIGH);
KNDIOMove(IO_Type.AutoRun_HddLed, IO_VALUE.LOW);
KNDIOMove(IO_Type.RunSign_HddLed, IO_VALUE.LOW);
//复位之前先停止运行
if (isNeedClearAuto)
......@@ -778,7 +778,7 @@ namespace OnlineStore.DeviceLibrary
LogUtil.info(LOGGER, StoreName + ",停止运行,总运行时间:" + span.ToString());
}
private DateTime LastAlarmTime = DateTime.Now;
public override void Alarm(StoreAlarmType alarmType, string alarmDetial, string alarmMsg, StoreMoveType storeMoveType)
{
SaveAlarmInfo(alarmType, alarmDetial, alarmMsg, storeMoveType);
......@@ -789,7 +789,8 @@ namespace OnlineStore.DeviceLibrary
return;
}
LogUtil.error(LOGGER, StoreName + " 报警,报警类型:" + alarmType);
LastAlarmTime = DateTime.Now;
this.alarmType = alarmType;
if (alarmType.Equals(StoreAlarmType.AxisAlarm) | alarmType.Equals(StoreAlarmType.AxisMoveError))
{
......@@ -874,49 +875,67 @@ namespace OnlineStore.DeviceLibrary
{
try
{
// 灯状态修改:
// 红灯:报警故障时常亮
// 黄灯:待机时闪烁
// 绿灯:正常运行或待机时常亮
//20190306修改:通电和待机白灯亮,出入库过程中绿灯亮,报警黄灯亮2秒灭掉后红灯亮
if (alarmType.Equals(StoreAlarmType.None))
{
//黄灯常亮
if (KNDIOValue(IO_Type.AutoRun_HddLed).Equals(IO_VALUE.LOW))
{
KNDIOMove(IO_Type.AutoRun_HddLed, IO_VALUE.HIGH);
}
//空闲中黄灯闪
if ((StoreMove.MoveType.Equals(StoreMoveType.None)))
//出入库过程中绿灯亮,其他情况下绿灯灭
if (StoreMove.MoveType.Equals(StoreMoveType.InStore) || StoreMove.MoveType.Equals(StoreMoveType.OutStore))
{
if (KNDIOValue(IO_Type.RunSign_HddLed).Equals(IO_VALUE.HIGH))
if (KNDIOValue(IO_Type.AutoRun_HddLed).Equals(IO_VALUE.LOW))
{
KNDIOMove(IO_Type.RunSign_HddLed, IO_VALUE.LOW);
KNDIOMove(IO_Type.AutoRun_HddLed, IO_VALUE.HIGH);
}
else
}
else
{
if (KNDIOValue(IO_Type.AutoRun_HddLed).Equals(IO_VALUE.HIGH))
{
KNDIOMove(IO_Type.RunSign_HddLed, IO_VALUE.HIGH);
KNDIOMove(IO_Type.AutoRun_HddLed, IO_VALUE.LOW);
}
}
//红灯黄灯关闭
if (KNDIOValue(IO_Type.Alarm_HddLed).Equals(IO_VALUE.HIGH))
{
KNDIOMove(IO_Type.Alarm_HddLed, IO_VALUE.LOW);
}
if (KNDIOValue(IO_Type.RunSign_HddLed).Equals(IO_VALUE.HIGH))
{
KNDIOMove(IO_Type.AutoRun_HddLed, IO_VALUE.LOW);
}
}
else
{
//报警 红灯亮,绿灯黄灯灭
if (KNDIOValue(IO_Type.Alarm_HddLed).Equals(IO_VALUE.LOW))
{
KNDIOMove(IO_Type.Alarm_HddLed, IO_VALUE.HIGH);
}
//报警关闭绿灯
if (KNDIOValue(IO_Type.AutoRun_HddLed).Equals(IO_VALUE.HIGH))
{
KNDIOMove(IO_Type.AutoRun_HddLed, IO_VALUE.LOW);
}
if (KNDIOValue(IO_Type.RunSign_HddLed).Equals(IO_VALUE.HIGH))
//判断报警时间,报警前两秒黄灯亮,后面绿灯亮
TimeSpan span = DateTime.Now - LastAlarmTime;
if (span.TotalSeconds > 2)
{
KNDIOMove(IO_Type.AutoRun_HddLed, IO_VALUE.LOW);
//红灯亮
if (KNDIOValue(IO_Type.Alarm_HddLed).Equals(IO_VALUE.LOW))
{
KNDIOMove(IO_Type.Alarm_HddLed, IO_VALUE.HIGH);
}
if (KNDIOValue(IO_Type.RunSign_HddLed).Equals(IO_VALUE.HIGH))
{
KNDIOMove(IO_Type.RunSign_HddLed, IO_VALUE.LOW);
}
}
else
{
if (KNDIOValue(IO_Type.RunSign_HddLed).Equals(IO_VALUE.LOW))
{
KNDIOMove(IO_Type.RunSign_HddLed, IO_VALUE.HIGH);
}
if (KNDIOValue(IO_Type.Alarm_HddLed).Equals(IO_VALUE.HIGH))
{
KNDIOMove(IO_Type.Alarm_HddLed, IO_VALUE.LOW);
}
}
}
}
catch (Exception ex)
......@@ -928,89 +947,49 @@ namespace OnlineStore.DeviceLibrary
//{
// try
// {
// // 机器状态 顶灯显示
// // 绿 黄 红
// //机器复位中 闪 灭 灭
// //机器待机中 亮 灭 灭
// //机器出入库中 闪 闪 灭
// //温湿度超限报警中 亮 闪 灭
// //温湿度超限报警中超过30分钟 亮 闪 闪
// //机器未启动 灭 灭 灭
// //机器设备故障(非温湿度)报警 亮 灭 闪
// //报警时只需要亮红灯
// DateTime time = DateTime.Now;
// bool isTemp30M = false;
// if (TempOrHumidityIsAlarm)
// //20190306修改:通电和待机白灯亮,出入库过程中绿灯亮,报警黄灯亮2秒灭掉后红灯亮
// // 灯状态修改:
// // 红灯:报警故障时常亮
// // 黄灯:待机时闪烁
// // 绿灯:正常运行或待机时常亮
// if (alarmType.Equals(StoreAlarmType.None))
// {
// TimeSpan span = DateTime.Now - TempAlarmTime;
// if (span.Minutes > 30)
// //黄灯常亮
// if (KNDIOValue(IO_Type.AutoRun_HddLed).Equals(IO_VALUE.LOW))
// {
// isTemp30M = true;
// KNDIOMove(IO_Type.AutoRun_HddLed, IO_VALUE.HIGH);
// }
// }
// bool isNeedAlarmLed = false;
// //报警灯
// if (!alarmType.Equals(StoreAlarmType.None) || isTemp30M)
// {
// isNeedAlarmLed = true;
// }
// if (isNeedAlarmLed && 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))
// //空闲中黄灯闪
// if ((StoreMove.MoveType.Equals(StoreMoveType.None)))
// {
// KNDIOMove(IO_Type.Alarm_HddLed, IO_VALUE.LOW);
// }
// }
// //报警时绿灯和黄灯灭
// if (isNeedAlarmLed)
// {
// if (KNDIOValue(IO_Type.AutoRun_HddLed).Equals(IO_VALUE.HIGH))
// {
// KNDIOMove(IO_Type.AutoRun_HddLed, IO_VALUE.LOW);
// 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);
// }
// }
// if (KNDIOValue(IO_Type.RunSign_HddLed).Equals(IO_VALUE.HIGH))
// if (KNDIOValue(IO_Type.Alarm_HddLed).Equals(IO_VALUE.HIGH))
// {
// KNDIOMove(IO_Type.AutoRun_HddLed, IO_VALUE.LOW);
// KNDIOMove(IO_Type.Alarm_HddLed, IO_VALUE.LOW);
// }
// return;
// }
// //绿灯闪
// 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))
// {
// KNDIOMove(IO_Type.AutoRun_HddLed, IO_VALUE.LOW);
// }
// 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.RunSign_HddLed).Equals(IO_VALUE.HIGH))
// //报警 红灯亮,绿灯黄灯灭
// if (KNDIOValue(IO_Type.Alarm_HddLed).Equals(IO_VALUE.LOW))
// {
// KNDIOMove(IO_Type.RunSign_HddLed, IO_VALUE.LOW);
// KNDIOMove(IO_Type.Alarm_HddLed, IO_VALUE.HIGH);
// }
// else
// if (KNDIOValue(IO_Type.AutoRun_HddLed).Equals(IO_VALUE.HIGH))
// {
// KNDIOMove(IO_Type.RunSign_HddLed, IO_VALUE.HIGH);
// KNDIOMove(IO_Type.AutoRun_HddLed, IO_VALUE.LOW);
// }
// }
// else
// {
// if (KNDIOValue(IO_Type.RunSign_HddLed).Equals(IO_VALUE.HIGH))
// {
// KNDIOMove(IO_Type.RunSign_HddLed, IO_VALUE.LOW);
// KNDIOMove(IO_Type.AutoRun_HddLed, IO_VALUE.LOW);
// }
// }
// }
......@@ -1019,6 +998,7 @@ namespace OnlineStore.DeviceLibrary
// LOGGER.Error(StoreName + "灯处理定时器出错:", ex);
// }
//}
private IO_VALUE lastAutoRun = IO_VALUE.LOW;
private IO_VALUE lastAirValue = IO_VALUE.LOW;
public void IoCheckProcess()
......
......@@ -729,6 +729,11 @@ namespace OnlineStore.DeviceLibrary
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P1, Config.UpDownAxis_P1_Speed);
CloseDoorAndWait();
//把料盘放到门口时出库完成
string posId = StoreMove.MoveParam != null ? StoreMove.MoveParam.PositionNum : "";
lastPosId = posId;
lastPosIdStatus = StoreStatus.OutStoreEnd;
storeStatus = StoreStatus.OutStoreEnd;
}
else if (StoreMove.MoveStep == StoreMoveStep.SO_13_GoBack)
{
......
......@@ -103,7 +103,12 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 重置中(原点返回和重置都发此状态)
/// </summary>
ResetMove=13,
ResetMove=13,
/// <summary>
/// 出库完成,叉子从门口退回之后更新为此状态
/// </summary>
OutStoreEnd = 14,
}
/// <summary>
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!