Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
ACSingleStore
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 9100311f
由
几米阳光
编写于
2018-11-09 14:57:01 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
灯闪烁修改
1 个父辈
39e3851f
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
216 行增加
和
71 行删除
source/ACSingleStore/记录.txt
source/DeviceLibrary/acSingleStore/AC_SA_BoxBean.cs
source/ACSingleStore/记录.txt
查看文件 @
9100311
...
...
@@ -6,5 +6,38 @@
4.增加模拟量IO
20181107
1.出库时等待10秒钟,或等待拿走料盘(高度=0)才算出库结束
20181108
// 机器状态 顶灯显示
// 绿 黄 红
//机器复位中 闪 灭 灭
//机器待机中 亮 灭 灭
//机器出入库中 闪 闪 灭
//温湿度超限报警中 亮 闪 灭
//温湿度超限报警中超过30分钟 亮 闪 闪
//机器未启动 灭 灭 灭
//机器设备故障(非温湿度)报警 亮 灭 闪
\ No newline at end of file
source/DeviceLibrary/acSingleStore/AC_SA_BoxBean.cs
查看文件 @
9100311
...
...
@@ -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
.
A
utoRun_HddLed
,
IO_VALUE
.
LOW
);
KNDIOMove
(
IO_Type
.
A
larm_HddLed
,
IO_VALUE
.
HIGH
);
}
else
{
if
(
KNDIOValue
(
IO_Type
.
A
utoRun_HddLed
).
Equals
(
IO_VALUE
.
LOW
))
if
(
KNDIOValue
(
IO_Type
.
A
larm_HddLed
).
Equals
(
IO_VALUE
.
HIGH
))
{
KNDIOMove
(
IO_Type
.
A
utoRun_HddLed
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
IO_Type
.
A
larm_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!
Cancel
请
注册
或
登录
后发表评论