Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
张东亮
/
SO1057-XLRStore
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 3350a450
由
张东亮
编写于
2025-04-26 15:56:52 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
报警添加、异常处理
1 个父辈
d1886a64
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
18 个修改的文件
包含
363 行增加
和
94 行删除
source/DeviceLibrary/baan/AxisBean.cs
source/DeviceLibrary/manager/model/DeviceBase.cs
source/DeviceLibrary/manager/model/DeviceMoveInfo.cs
source/DeviceLibrary/storeBean/EquipBase.cs
source/DeviceLibrary/storeBean/XLRStoreBean.cs
source/DeviceLibrary/storeBean/boxBean/BoxEquip.cs
source/DeviceLibrary/storeBean/boxBean/BoxEquip_ConnectServerTimer.cs
source/DeviceLibrary/storeBean/boxBean/BoxEquip_InExecute.cs
source/DeviceLibrary/storeBean/boxBean/BoxEquip_OutExecute.cs
source/DeviceLibrary/storeBean/boxBean/BoxEquip_OutExecute_Partial.cs
source/DeviceLibrary/storeBean/boxBean/BoxEquip_Partial.cs
source/DeviceLibrary/storeBean/inputBean/BatchMoveBean.cs
source/DeviceLibrary/storeBean/inputBean/InputEquip.cs
source/DeviceLibrary/storeBean/inputBean/InputEquip_InStore.cs
source/XLRStoreClient/FrmXLRStore.Designer.cs
source/XLRStoreClient/FrmXLRStore.cs
source/XLRStoreClient/boxForm/FrmBoxEquip.Designer.cs
source/XLRStoreClient/inputForm/FrmBatchMove.cs
source/DeviceLibrary/baan/AxisBean.cs
查看文件 @
3350a45
...
@@ -131,7 +131,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -131,7 +131,7 @@ namespace OnlineStore.DeviceLibrary
{
{
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitAxis
(
Config
,
targetPosition
,
targetSpeed
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitAxis
(
Config
,
targetPosition
,
targetSpeed
));
Config
.
TargetPosition
=
targetPosition
;
Config
.
TargetPosition
=
targetPosition
;
rtn
=
AxisManager
.
instance
.
AbsMove
(
Config
.
DeviceName
,
Config
.
GetAxisValue
(),
targetPosition
,
targetSpeed
,
Config
.
AddSpeed
,
Config
.
DelSpeed
);
rtn
=
AxisManager
.
instance
.
AbsMove
(
Config
.
DeviceName
,
Config
.
GetAxisValue
(),
targetPosition
,
targetSpeed
,
Config
.
AddSpeed
,
Config
.
DelSpeed
);
LogUtil
.
info
(
$
"{this.AxisName} AbsMove To [{targetPosition}] [speed={targetSpeed}][{rtn}]"
);
LogUtil
.
info
(
$
"{this.AxisName} AbsMove To [{targetPosition}] [speed={targetSpeed}][{rtn}]"
);
}
}
}
}
...
@@ -148,7 +148,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -148,7 +148,7 @@ namespace OnlineStore.DeviceLibrary
bool
isOk
=
AxisManager
.
instance
.
GetBusyStatus
(
deviceName
,
axisNo
).
Equals
(
0
)
&&
AxisManager
.
instance
.
GetInPositionSingle
(
deviceName
,
axisNo
).
Equals
(
1
);
bool
isOk
=
AxisManager
.
instance
.
GetBusyStatus
(
deviceName
,
axisNo
).
Equals
(
0
)
&&
AxisManager
.
instance
.
GetInPositionSingle
(
deviceName
,
axisNo
).
Equals
(
1
);
int
outCount
=
AxisManager
.
instance
.
GetActualtPosition
(
deviceName
,
axisNo
);
int
outCount
=
AxisManager
.
instance
.
GetActualtPosition
(
deviceName
,
axisNo
);
int
targetCount
=
AxisManager
.
instance
.
GetTargetPosition
(
deviceName
,
axisNo
);
int
targetCount
=
AxisManager
.
instance
.
GetTargetPosition
(
deviceName
,
axisNo
);
int
errorCount
=
Math
.
Abs
(
outCount
-
targetPosition
);
int
errorCount
=
Math
.
Abs
(
outCount
-
targetPosition
);
if
(
isOk
)
if
(
isOk
)
{
{
string
state
=
AxisManager
.
instance
.
GetStatus
(
deviceName
,
axisNo
);
string
state
=
AxisManager
.
instance
.
GetStatus
(
deviceName
,
axisNo
);
...
@@ -203,6 +203,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -203,6 +203,7 @@ namespace OnlineStore.DeviceLibrary
}
}
return
false
;
return
false
;
}
}
static
Dictionary
<
string
,
int
>
axisPrePulse
=
new
Dictionary
<
string
,
int
>();
public
static
bool
HomeMoveIsEnd
(
DeviceMoveInfo
MoveInfo
,
ConfigMoveAxis
axis
,
out
string
msg
)
public
static
bool
HomeMoveIsEnd
(
DeviceMoveInfo
MoveInfo
,
ConfigMoveAxis
axis
,
out
string
msg
)
{
{
msg
=
""
;
msg
=
""
;
...
@@ -238,6 +239,18 @@ namespace OnlineStore.DeviceLibrary
...
@@ -238,6 +239,18 @@ namespace OnlineStore.DeviceLibrary
LogUtil
.
error
(
msg
);
LogUtil
.
error
(
msg
);
}
}
}
}
//var curPulse = AxisManager.instance.GetActualtPosition(axis.DeviceName, axis.GetAxisValue());
//if (axisPrePulse.ContainsKey(axis.DeviceName))
//{
// if (axisPrePulse[axis.DeviceName] != curPulse)//在运行
// {
// return true;
// }
//}
//else
//{
// axisPrePulse[axis.DeviceName] = curPulse;
//}
return
false
;
return
false
;
}
}
...
@@ -285,7 +298,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -285,7 +298,7 @@ namespace OnlineStore.DeviceLibrary
/// <param name="high"></param>
/// <param name="high"></param>
/// <param name="canErrorMax"></param>
/// <param name="canErrorMax"></param>
/// <returns></returns>
/// <returns></returns>
public
bool
WithinRange
(
int
low
,
int
high
,
int
canErrorMax
=
0
)
public
bool
WithinRange
(
int
low
,
int
high
,
int
canErrorMax
=
0
)
{
{
if
(
canErrorMax
<=
0
)
if
(
canErrorMax
<=
0
)
{
{
...
@@ -316,7 +329,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -316,7 +329,7 @@ namespace OnlineStore.DeviceLibrary
{
{
targetSpeed
=
Config
.
TargetSpeed
*
targetSpeed
;
targetSpeed
=
Config
.
TargetSpeed
*
targetSpeed
;
}
}
return
AxisManager
.
instance
.
AbsMove
(
Config
.
DeviceName
,
Config
.
GetAxisValue
(),
targetPos
,
(
int
)
targetSpeed
,
Config
.
AddSpeed
,
Config
.
DelSpeed
);
return
AxisManager
.
instance
.
AbsMove
(
Config
.
DeviceName
,
Config
.
GetAxisValue
(),
targetPos
,
(
int
)
targetSpeed
,
Config
.
AddSpeed
,
Config
.
DelSpeed
);
}
}
public
void
SuddenStop
()
public
void
SuddenStop
()
...
@@ -361,7 +374,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -361,7 +374,7 @@ namespace OnlineStore.DeviceLibrary
private
bool
IsInProcess
=
false
;
private
bool
IsInProcess
=
false
;
private
void
CheckTimer_Elapsed
(
object
sender
,
System
.
Timers
.
ElapsedEventArgs
e
)
private
void
CheckTimer_Elapsed
(
object
sender
,
System
.
Timers
.
ElapsedEventArgs
e
)
{
{
if
(
IsInProcess
)
{
return
;
}
if
(
IsInProcess
)
{
return
;
}
try
try
{
{
...
...
source/DeviceLibrary/manager/model/DeviceBase.cs
查看文件 @
3350a45
...
@@ -4,11 +4,13 @@ using OnlineStore.DeviceLibrary.deviceLibrary;
...
@@ -4,11 +4,13 @@ using OnlineStore.DeviceLibrary.deviceLibrary;
using
OnlineStore.LoadCSVLibrary
;
using
OnlineStore.LoadCSVLibrary
;
using
System
;
using
System
;
using
System.Collections.Generic
;
using
System.Collections.Generic
;
using
System.Configuration
;
using
System.Drawing
;
using
System.Drawing
;
using
System.Linq
;
using
System.Linq
;
using
System.Text
;
using
System.Text
;
using
System.Threading
;
using
System.Threading
;
using
System.Threading.Tasks
;
using
System.Threading.Tasks
;
using
System.Web.ModelBinding
;
namespace
OnlineStore.DeviceLibrary
namespace
OnlineStore.DeviceLibrary
{
{
...
@@ -224,39 +226,56 @@ namespace OnlineStore.DeviceLibrary
...
@@ -224,39 +226,56 @@ namespace OnlineStore.DeviceLibrary
public
abstract
bool
StartOutstore
(
InOutParam
param
);
public
abstract
bool
StartOutstore
(
InOutParam
param
);
protected
abstract
void
OutstoreProcess
();
protected
abstract
void
OutstoreProcess
();
/// <summary>
/// 设置警告并上报
/// </summary>
/// <param name="msg"></param>
public
void
SetWarnMsg
(
string
msg
=
""
)
public
void
SetWarnMsg
(
string
msg
=
""
)
{
{
if
(
String
.
IsNullOrEmpty
(
msg
).
Equals
(
false
))
if
(
String
.
IsNullOrEmpty
(
msg
).
Equals
(
false
))
{
{
if
(
WarnMsg
.
Equals
(
msg
))
if
(
!
WarnMsg
.
Equals
(
msg
))
{
{
if
(
msg
.
StartsWith
(
Name
))
if
(
msg
.
StartsWith
(
Name
))
{
{
LogUtil
.
error
(
msg
,
801
);
LogUtil
.
error
(
msg
);
}
}
else
else
{
{
LogUtil
.
error
(
Name
+
msg
,
801
);
LogUtil
.
error
(
Name
+
msg
);
}
}
}
}
}
}
else
WarnMsg
=
msg
;
if
(!
string
.
IsNullOrEmpty
(
WarnMsg
))
{
{
if
(
msg
.
StartsWith
(
Name
))
Msg
.
add
(
WarnMsg
,
MsgLevel
.
alarm
);
{
}
LogUtil
.
error
(
msg
);
}
}
public
void
SetCriticalMsg
(
string
msg
=
""
)
else
{
if
(
String
.
IsNullOrEmpty
(
msg
).
Equals
(
false
))
{
if
(!
WarnMsg
.
Equals
(
msg
))
{
{
LogUtil
.
error
(
Name
+
msg
);
if
(
msg
.
StartsWith
(
Name
))
{
LogUtil
.
error
(
msg
);
}
else
{
LogUtil
.
error
(
Name
+
msg
);
}
}
}
}
}
WarnMsg
=
msg
;
WarnMsg
=
msg
;
if
(!
string
.
IsNullOrEmpty
(
WarnMsg
))
if
(!
string
.
IsNullOrEmpty
(
WarnMsg
))
{
{
Msg
.
add
(
WarnMsg
,
MsgLevel
.
alarm
);
Msg
.
add
(
WarnMsg
,
MsgLevel
.
critical
);
}
}
}
}
public
string
GetRunStr
(
)
public
string
GetRunStr
(
)
{
{
string
sta
=
"运行中"
;
string
sta
=
"运行中"
;
...
@@ -401,10 +420,33 @@ namespace OnlineStore.DeviceLibrary
...
@@ -401,10 +420,33 @@ namespace OnlineStore.DeviceLibrary
{
{
LogUtil
.
debug
(
Name
+
logInfo
);
LogUtil
.
debug
(
Name
+
logInfo
);
}
}
string
errormsg
=
""
;
public
void
LogError
(
string
logInfo
)
{
if
(
string
.
IsNullOrEmpty
(
logInfo
))
{
return
;
}
if
(!
logInfo
.
Equals
(
errormsg
))
{
errormsg
=
logInfo
;
LogUtil
.
error
(
Name
+
logInfo
);
}
}
public
void
LogInfo
(
string
logInfo
)
public
void
LogInfo
(
string
logInfo
)
{
{
StepMsg
=
logInfo
;
if
(
string
.
IsNullOrEmpty
(
logInfo
))
LogUtil
.
info
(
Name
+
logInfo
);
{
return
;
}
if
(!
logInfo
.
Equals
(
StepMsg
))
{
StepMsg
=
logInfo
;
LogUtil
.
info
(
Name
+
logInfo
);
}
}
}
protected
void
MoveLog
(
string
msg
)
protected
void
MoveLog
(
string
msg
)
{
{
...
...
source/DeviceLibrary/manager/model/DeviceMoveInfo.cs
查看文件 @
3350a45
...
@@ -17,7 +17,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -17,7 +17,7 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// <summary>
/// 超时时间
/// 超时时间
/// </summary>
/// </summary>
public
int
TimeOutSeconds
=
6
0
;
public
int
TimeOutSeconds
=
12
0
;
public
string
Name
=
""
;
public
string
Name
=
""
;
public
bool
ShelfNoTray
=
false
;
public
bool
ShelfNoTray
=
false
;
public
DeviceMoveInfo
(
int
storeId
,
string
name
)
public
DeviceMoveInfo
(
int
storeId
,
string
name
)
...
...
source/DeviceLibrary/storeBean/EquipBase.cs
查看文件 @
3350a45
...
@@ -82,6 +82,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -82,6 +82,7 @@ namespace OnlineStore.DeviceLibrary
{
{
if
(
MoveStop
)
if
(
MoveStop
)
{
{
Msg
.
add
(
Name
+
" 暂停运动中"
,
MsgLevel
.
critical
);
return
;
return
;
}
}
if
(
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
RHome
))
if
(
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
RHome
))
...
@@ -201,8 +202,9 @@ namespace OnlineStore.DeviceLibrary
...
@@ -201,8 +202,9 @@ namespace OnlineStore.DeviceLibrary
else
if
(
runStatus
.
Equals
(
RunStatus
.
Runing
)
&&
alarmType
.
Equals
(
AlarmType
.
None
))
else
if
(
runStatus
.
Equals
(
RunStatus
.
Runing
)
&&
alarmType
.
Equals
(
AlarmType
.
None
))
{
{
//设备处于空闲时且无异常,清空异常缓存
//设备处于空闲时且无异常,清空异常缓存
if
(
WarnMsg
!=
""
)
if
(!
MoveStop
)
SetWarnMsg
(
""
);
if
(
WarnMsg
!=
""
)
SetWarnMsg
(
""
);
}
}
}
}
catch
(
Exception
ex
)
catch
(
Exception
ex
)
...
@@ -491,11 +493,12 @@ namespace OnlineStore.DeviceLibrary
...
@@ -491,11 +493,12 @@ namespace OnlineStore.DeviceLibrary
public
virtual
string
GetMoveStr
()
public
virtual
string
GetMoveStr
()
{
{
string
msg
=
""
;
string
msg
=
""
;
msg
+=
"runS: "
+
runStatus
+
"\n"
;
msg
+=
"运行状态: "
+
runStatus
+
"\n"
;
msg
+=
"alarm: "
+
alarmType
+
" "
+
LastAlarmTime
.
ToLongTimeString
()
+
"\n"
;
msg
+=
"报警: "
+
alarmType
+
" "
+
LastAlarmTime
.
ToLongTimeString
()
+
"\n"
;
msg
+=
"MoveT:"
+
MoveInfo
.
MoveType
+
"\n"
;
msg
+=
"类型:"
+
MoveInfo
.
MoveType
+
"\n"
;
msg
+=
"MoveS :"
+
MoveInfo
.
MoveStep
+
"\n"
;
msg
+=
"步骤 :"
+
MoveInfo
.
MoveStep
+
"\n"
;
msg
+=
"StepMsg :"
+
StepMsg
+
"\n"
;
msg
+=
"消息 :"
+
StepMsg
+
"\n"
;
msg
+=
"暂停 :"
+
(
MoveStop
?
"是"
:
"否"
)
+
"\n"
;
return
msg
;
return
msg
;
}
}
...
...
source/DeviceLibrary/storeBean/XLRStoreBean.cs
查看文件 @
3350a45
...
@@ -251,9 +251,9 @@ namespace OnlineStore.DeviceLibrary
...
@@ -251,9 +251,9 @@ namespace OnlineStore.DeviceLibrary
AgvClient
.
SetCancelState
(
AgvClient
.
CurrCancelState
);
AgvClient
.
SetCancelState
(
AgvClient
.
CurrCancelState
);
LogUtil
.
info
(
Name
+
"复位完成 ["
+
FormUtil
.
GetSpanStr
(
span
)
+
"]"
);
LogUtil
.
info
(
Name
+
"复位完成 ["
+
FormUtil
.
GetSpanStr
(
span
)
+
"]"
);
}
}
else
if
(
span
.
TotalSeconds
>
12
0
)
else
if
(
span
.
TotalSeconds
>
24
0
)
{
{
WarnMsg
=
Name
+
"["
+
MoveInfo
.
MoveStep
+
"]["
+
msg
+
"]已等待超过
2
分钟"
;
WarnMsg
=
Name
+
"["
+
MoveInfo
.
MoveStep
+
"]["
+
msg
+
"]已等待超过
4
分钟"
;
LogUtil
.
error
(
WarnMsg
,
MoveInfo
.
ErrorLogType
);
LogUtil
.
error
(
WarnMsg
,
MoveInfo
.
ErrorLogType
);
Alarm
(
AlarmType
.
IoSingleTimeOut
);
Alarm
(
AlarmType
.
IoSingleTimeOut
);
}
}
...
...
source/DeviceLibrary/storeBean/boxBean/BoxEquip.cs
查看文件 @
3350a45
...
@@ -767,7 +767,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -767,7 +767,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo
.
MoveParam
.
PosInfo
.
IsNG
=
true
;
MoveInfo
.
MoveParam
.
PosInfo
.
IsNG
=
true
;
MoveInfo
.
MoveParam
.
MoveP
=
new
LineMoveP
(
Config
,
MoveInfo
.
MoveParam
.
PosInfo
.
PosId
);
MoveInfo
.
MoveParam
.
MoveP
=
new
LineMoveP
(
Config
,
MoveInfo
.
MoveParam
.
PosInfo
.
PosId
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
SO_14_GetReels_Ready
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
SO_14_GetReels_Ready
);
// MoveAxisToP1();
// MoveAxisToP1();
PullAxis_UpdownToP1
();
PullAxis_UpdownToP1
();
UpdownAxisTo_P4_P10
();
UpdownAxisTo_P4_P10
();
//BuffAreaOutstoreDoor(true);
//BuffAreaOutstoreDoor(true);
...
@@ -808,7 +808,8 @@ namespace OnlineStore.DeviceLibrary
...
@@ -808,7 +808,8 @@ namespace OnlineStore.DeviceLibrary
int
SigLastTime
=
7
;
//5秒
int
SigLastTime
=
7
;
//5秒
protected
override
void
OnTimerProcess
()
protected
override
void
OnTimerProcess
()
{
{
if
(
ExecuteOutListProcess
())
bool
isRunning
=
runStatus
.
Equals
(
RunStatus
.
Runing
);
if
(
isRunning
&&
ExecuteOutListProcess
())
{
{
LogInfo
(
"优先出库执行"
);
LogInfo
(
"优先出库执行"
);
return
;
return
;
...
@@ -861,7 +862,8 @@ namespace OnlineStore.DeviceLibrary
...
@@ -861,7 +862,8 @@ namespace OnlineStore.DeviceLibrary
ClearSpecifiedAlarm
(
"B下出料暂存区有料盘,但信号未亮"
);
ClearSpecifiedAlarm
(
"B下出料暂存区有料盘,但信号未亮"
);
errUnderB
=
DateTime
.
Now
;
errUnderB
=
DateTime
.
Now
;
}
}
if
(!
runStatus
.
Equals
(
RunStatus
.
Runing
))
return
;
if
(
IOValue
(
IO_Type
.
FeedingA_Instore_UpperArea_ReelCheck
).
Equals
(
IO_VALUE
.
HIGH
)
&&
BufferDataManager
.
AInStoreInfo
!=
null
if
(
IOValue
(
IO_Type
.
FeedingA_Instore_UpperArea_ReelCheck
).
Equals
(
IO_VALUE
.
HIGH
)
&&
BufferDataManager
.
AInStoreInfo
!=
null
&&
IOValue
(
IO_Type
.
FeedingB_Instore_UpperArea_ReelCheck
).
Equals
(
IO_VALUE
.
HIGH
)
&&
BufferDataManager
.
BInStoreInfo
!=
null
&&
IOValue
(
IO_Type
.
FeedingB_Instore_UpperArea_ReelCheck
).
Equals
(
IO_VALUE
.
HIGH
)
&&
BufferDataManager
.
BInStoreInfo
!=
null
&&
(
BufferDataManager
.
AInStoreInfo
.
PlateW
==
BufferDataManager
.
BInStoreInfo
.
PlateW
&&
BufferDataManager
.
AInStoreInfo
.
PlateH
==
BufferDataManager
.
BInStoreInfo
.
PlateH
))
&&
(
BufferDataManager
.
AInStoreInfo
.
PlateW
==
BufferDataManager
.
BInStoreInfo
.
PlateW
&&
BufferDataManager
.
AInStoreInfo
.
PlateH
==
BufferDataManager
.
BInStoreInfo
.
PlateH
))
...
...
source/DeviceLibrary/storeBean/boxBean/BoxEquip_ConnectServerTimer.cs
查看文件 @
3350a45
...
@@ -129,7 +129,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -129,7 +129,7 @@ namespace OnlineStore.DeviceLibrary
}
}
public
void
ProcessMsg
(
List
<
Msg
>
msg
)
public
void
ProcessMsg
(
List
<
Msg
>
msg
)
{
{
uploadMsg
=
string
.
Join
(
"
,
"
,
msg
.
Select
(
x
=>
uploadMsg
=
string
.
Join
(
"
\r\n
"
,
msg
.
Select
(
x
=>
{
{
//if (x.msgLevel == MsgLevel.warning || x.msgLevel == MsgLevel.alarm)
//if (x.msgLevel == MsgLevel.warning || x.msgLevel == MsgLevel.alarm)
{
{
...
@@ -414,7 +414,8 @@ namespace OnlineStore.DeviceLibrary
...
@@ -414,7 +414,8 @@ namespace OnlineStore.DeviceLibrary
if
(
position
==
null
)
if
(
position
==
null
)
{
{
//出入库没有找到服务器发送的库位,需要打印日志方便查询原因
//出入库没有找到服务器发送的库位,需要打印日志方便查询原因
Msg
.
add
(
Name
+
"未找到库位:【"
+
inoutParam
.
PosInfo
.
ToStr
()
+
"】"
,
MsgLevel
.
warning
);
WarnMsg
=
Name
+
"未找到库位:【"
+
inoutParam
.
PosInfo
.
ToStr
()
+
"】"
;
Msg
.
add
(
WarnMsg
,
MsgLevel
.
warning
);
LogUtil
.
error
(
WarnMsg
);
LogUtil
.
error
(
WarnMsg
);
continue
;
continue
;
}
}
...
...
source/DeviceLibrary/storeBean/boxBean/BoxEquip_InExecute.cs
查看文件 @
3350a45
...
@@ -272,15 +272,14 @@ namespace OnlineStore.DeviceLibrary
...
@@ -272,15 +272,14 @@ namespace OnlineStore.DeviceLibrary
case
StepEnum
.
SI_05_GetReel
:
case
StepEnum
.
SI_05_GetReel
:
if
(!
CheckReel
(
true
))
if
(!
CheckReel
(
true
))
{
{
WarnMsg
=
$
"未检测到{MoveInfo.MoveParam.PosInfo.GetPosSide()}面料叉上的料盘,请检查"
;
WarnMsg
=
$
"未检测到{MoveInfo.MoveParam.PosInfo.GetPosSide()}面料叉上的料盘,请检查"
;
Msg
.
add
(
WarnMsg
,
MsgLevel
.
critical
);
Msg
.
add
(
WarnMsg
,
MsgLevel
.
critical
);
return
;
return
;
}
}
ignoreCurFork
=
false
;
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_06_InOutBackToP1FromBuff
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_06_InOutBackToP1FromBuff
);
LogInfo
(
$
"入库 {MoveInfo.SLog}:移栽X轴到待机点P1,行走机构到待机点P1[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]"
);
LogInfo
(
$
"入库 {MoveInfo.SLog}:移栽X轴到待机点P1,行走机构到待机点P1[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]"
);
ignoreCurFork
=
false
;
XAxis_To_P1
();
XAxis_To_P1
();
MoveAxisToP1
();
MoveAxisToP1
();
break
;
break
;
...
@@ -338,26 +337,27 @@ namespace OnlineStore.DeviceLibrary
...
@@ -338,26 +337,27 @@ namespace OnlineStore.DeviceLibrary
case
StepEnum
.
SI_08_ToPosition
:
case
StepEnum
.
SI_08_ToPosition
:
if
(!
CheckReel
(
true
))
if
(!
CheckReel
(
true
))
{
{
WarnMsg
=
$
"未检测到{MoveInfo.MoveParam.PosInfo.GetPosSide()}面料叉上的料盘,请检查"
;
SetCriticalMsg
(
$
"未检测到{MoveInfo.MoveParam.PosInfo.GetPosSide()}面料叉上的料盘,请检查"
);
Msg
.
add
(
WarnMsg
,
MsgLevel
.
critical
);
return
;
return
;
}
}
ignoreCurFork
=
false
;
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_08_ToPosition1
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_08_ToPosition1
);
ignoreCurFork
=
false
;
LogInfo
(
$
"入库 {MoveInfo.SLog}:运行到库位,行走机构到存储库位取放点位P3,"
+
LogInfo
(
$
"入库 {MoveInfo.SLog}:运行到库位,行走机构到存储库位取放点位P3,"
+
$
"[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]"
);
$
"[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]"
);
MoveAxisToP3
();
MoveAxisToP3
();
ForkCheckWhenRunning
();
break
;
break
;
case
StepEnum
.
SI_08_ToPosition1
:
case
StepEnum
.
SI_08_ToPosition1
:
StopForkCheck
();
if
(!
CheckReel
(
true
))
if
(!
CheckReel
(
true
))
{
{
WarnMsg
=
$
"未检测到{MoveInfo.MoveParam.PosInfo.GetPosSide()}面料叉上的料盘,请检查"
;
SetCriticalMsg
(
$
"未检测到{MoveInfo.MoveParam.PosInfo.GetPosSide()}面料叉上的料盘,请检查"
);
Msg
.
add
(
WarnMsg
,
MsgLevel
.
critical
);
return
;
return
;
}
}
ignoreCurFork
=
false
;
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_09_ToTray
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_09_ToTray
);
ignoreCurFork
=
false
;
LogInfo
(
$
"入库 {MoveInfo.SLog}:到抽屉提取点,料斗拉取进出轴到抽屉提取点P2/P4[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]"
);
LogInfo
(
$
"入库 {MoveInfo.SLog}:到抽屉提取点,料斗拉取进出轴到抽屉提取点P2/P4[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]"
);
PullAxis_Inout_To_P2_P4
();
PullAxis_Inout_To_P2_P4
();
break
;
break
;
...
@@ -396,12 +396,12 @@ namespace OnlineStore.DeviceLibrary
...
@@ -396,12 +396,12 @@ namespace OnlineStore.DeviceLibrary
case
StepEnum
.
SI_12_MiddleToP3
:
case
StepEnum
.
SI_12_MiddleToP3
:
if
(!
CheckReel
(
true
))
if
(!
CheckReel
(
true
))
{
{
WarnMsg
=
$
"未检测到{MoveInfo.MoveParam.PosInfo.GetPosSide()}面料叉上的料盘,请检查"
;
SetCriticalMsg
(
$
"未检测到{MoveInfo.MoveParam.PosInfo.GetPosSide()}面料叉上的料盘,请检查"
);
Msg
.
add
(
WarnMsg
,
MsgLevel
.
critical
);
return
;
return
;
}
}
ignoreCurFork
=
false
;
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_13_GetReel
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_13_GetReel
);
ignoreCurFork
=
false
;
LogInfo
(
$
"入库 {MoveInfo.SLog}:进入库位中,移栽升降轴到抽屉取放点P7/P13[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]"
);
LogInfo
(
$
"入库 {MoveInfo.SLog}:进入库位中,移栽升降轴到抽屉取放点P7/P13[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]"
);
UpdownAxisToP7_P13
();
UpdownAxisToP7_P13
();
break
;
break
;
...
@@ -503,11 +503,11 @@ namespace OnlineStore.DeviceLibrary
...
@@ -503,11 +503,11 @@ namespace OnlineStore.DeviceLibrary
case
StepEnum
.
SI_19_InoutBack
:
case
StepEnum
.
SI_19_InoutBack
:
if
(!
CheckReel
(
false
))
if
(!
CheckReel
(
false
))
{
{
WarnMsg
=
"检测到料叉上有料盘,请检查"
;
SetCriticalMsg
(
"检测到料叉上有料盘,请检查"
)
;
return
;
return
;
}
}
ignoreCurFork
=
false
;
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_19_InoutBack_1
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_19_InoutBack_1
);
ignoreCurFork
=
false
;
MiddleAxis_To_P2
();
MiddleAxis_To_P2
();
LogInfo
(
$
"入库 {MoveInfo.SLog}:移栽旋转轴到水平点[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]"
);
LogInfo
(
$
"入库 {MoveInfo.SLog}:移栽旋转轴到水平点[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]"
);
break
;
break
;
...
...
source/DeviceLibrary/storeBean/boxBean/BoxEquip_OutExecute.cs
查看文件 @
3350a45
...
@@ -175,12 +175,12 @@ namespace OnlineStore.DeviceLibrary
...
@@ -175,12 +175,12 @@ namespace OnlineStore.DeviceLibrary
case
StepEnum
.
SO_13_InoutBack_1
:
case
StepEnum
.
SO_13_InoutBack_1
:
if
(!
CheckReel
(
true
))
if
(!
CheckReel
(
true
))
{
{
WarnMsg
=
$
"未检测到{MoveInfo.MoveParam.PosInfo.GetPosSide()}面料叉上的料盘,请检查"
;
SetCriticalMsg
(
$
"未检测到{MoveInfo.MoveParam.PosInfo.GetPosSide()}面料叉上的料盘,请检查"
);
Msg
.
add
(
WarnMsg
,
MsgLevel
.
critical
);
return
;
return
;
}
}
ignoreCurFork
=
false
;
MoveInfo
.
NextMoveStep
(
StepEnum
.
SO_13_InoutBack
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
SO_13_InoutBack
);
ignoreCurFork
=
false
;
LogInfo
(
$
"出库 {MoveInfo.SLog}:抽屉拉取进出轴已到达拍照点,移栽旋转轴到取放料水平点P2[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]"
);
LogInfo
(
$
"出库 {MoveInfo.SLog}:抽屉拉取进出轴已到达拍照点,移栽旋转轴到取放料水平点P2[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]"
);
MiddleAxis_To_P2
();
MiddleAxis_To_P2
();
break
;
break
;
...
@@ -243,28 +243,29 @@ namespace OnlineStore.DeviceLibrary
...
@@ -243,28 +243,29 @@ namespace OnlineStore.DeviceLibrary
LogInfo
(
$
"出库 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.ToStr()}][{MoveInfo.MoveParam.PosInfoBack.ToStr()}]取料完成,准备送往出料口,抽屉升降轴到P1点,移栽升降轴到下暂存区出库放料高点P4/P10"
);
LogInfo
(
$
"出库 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.ToStr()}][{MoveInfo.MoveParam.PosInfoBack.ToStr()}]取料完成,准备送往出料口,抽屉升降轴到P1点,移栽升降轴到下暂存区出库放料高点P4/P10"
);
break
;
break
;
case
StepEnum
.
SO_14_GetReels_Ready
:
case
StepEnum
.
SO_14_GetReels_Ready
:
if
(!
CheckReel
(
true
))
//if (!CheckReel(true))
{
//{
WarnMsg
=
$
"未检测到{MoveInfo.MoveParam.PosInfo.GetPosSide()}面料叉上的料盘,请检查"
;
// SetCriticalMsg($"未检测到{MoveInfo.MoveParam.PosInfo.GetPosSide()}面料叉上的料盘,请检查");
Msg
.
add
(
WarnMsg
,
MsgLevel
.
critical
);
// return;
return
;
//}
}
ignoreCurFork
=
false
;
MoveInfo
.
NextMoveStep
(
StepEnum
.
SO_14_GetReels_Ready1
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
SO_14_GetReels_Ready1
);
MoveAxisToP1
();
MoveAxisToP1
();
ignoreCurFork
=
false
;
LogInfo
(
$
"出库 {MoveInfo.SLog}:准备送往出料口。行走机构到待机点P1"
);
LogInfo
(
$
"出库 {MoveInfo.SLog}:准备送往出料口。行走机构到待机点P1"
);
ForkCheckWhenRunning
();
break
;
break
;
case
StepEnum
.
SO_14_GetReels_Ready1
:
case
StepEnum
.
SO_14_GetReels_Ready1
:
if
(!
CheckReel
(
true
))
//if (!CheckReel(true))
{
//{
WarnMsg
=
$
"未检测到{MoveInfo.MoveParam.PosInfo.GetPosSide()}面料叉上的料盘,请检查"
;
// SetCriticalMsg($"未检测到{MoveInfo.MoveParam.PosInfo.GetPosSide()}面料叉上的料盘,请检查");
Msg
.
add
(
WarnMsg
,
MsgLevel
.
critical
);
// return;
return
;
//}
}
ignoreCurFork
=
false
;
//已出一边的料,切换到另一边
//已出一边的料,切换到另一边
MoveInfo
.
NextMoveStep
(
StepEnum
.
SO_15_ToBufferArea
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
SO_15_ToBufferArea
);
StopForkCheck
();
ignoreCurFork
=
false
;
//LogInfo($"出库 {MoveInfo.SLog}:到暂存区出料口," +
//LogInfo($"出库 {MoveInfo.SLog}:到暂存区出料口," +
// $"行走机构到进出料机构取放点P2[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]");
// $"行走机构到进出料机构取放点P2[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]");
break
;
break
;
...
@@ -308,7 +309,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -308,7 +309,7 @@ namespace OnlineStore.DeviceLibrary
case
StepEnum
.
SO_18_PutReel
:
case
StepEnum
.
SO_18_PutReel
:
if
(!
StoreManager
.
XLRStore
.
boxEquip
.
SendStoreState
(
MoveInfo
.
MoveParam
.
PosInfo
.
PosId
,
MoveInfo
.
MoveParam
.
PosInfo
.
barcode
,
DeviceStatus
.
OutStoreBoxEnd
))
if
(!
StoreManager
.
XLRStore
.
boxEquip
.
SendStoreState
(
MoveInfo
.
MoveParam
.
PosInfo
.
PosId
,
MoveInfo
.
MoveParam
.
PosInfo
.
barcode
,
DeviceStatus
.
OutStoreBoxEnd
))
return
;
return
;
Msg
.
add
(
$
"出库完成:【{MoveInfo.MoveParam.PosInfo.PosId}】【{MoveInfo.MoveParam.PosInfo.barcode}】【{DeviceStatus.OutStoreBoxEnd}】"
,
MsgLevel
.
info
);
Msg
.
add
(
$
"出库完成:【{MoveInfo.MoveParam.PosInfo.PosId}】【{MoveInfo.MoveParam.PosInfo.barcode}】【{DeviceStatus.OutStoreBoxEnd}】"
,
MsgLevel
.
info
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
SO_19_InOutBackFromBuff
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
SO_19_InOutBackFromBuff
);
LogInfo
(
$
"出库 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.ToStr()}]出库完成[耗时:{(DateTime.Now - startTime).TotalSeconds.ToString("
f2
")}秒],移栽X轴到待机点P1,行走机构到待机点P1[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]"
);
LogInfo
(
$
"出库 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.ToStr()}]出库完成[耗时:{(DateTime.Now - startTime).TotalSeconds.ToString("
f2
")}秒],移栽X轴到待机点P1,行走机构到待机点P1[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]"
);
XAxis_To_P1
();
XAxis_To_P1
();
...
@@ -331,7 +332,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -331,7 +332,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo
.
MoveParam
.
PosInfo
=
MoveInfo
.
MoveParam
.
PosInfoBack
.
ToCopy
();
MoveInfo
.
MoveParam
.
PosInfo
=
MoveInfo
.
MoveParam
.
PosInfoBack
.
ToCopy
();
MoveInfo
.
MoveParam
.
MoveP
=
new
LineMoveP
(
Config
,
MoveInfo
.
MoveParam
.
PosInfoBack
.
PosId
);
MoveInfo
.
MoveParam
.
MoveP
=
new
LineMoveP
(
Config
,
MoveInfo
.
MoveParam
.
PosInfoBack
.
PosId
);
MoveInfo
.
MoveParam
.
PosInfoBack
=
null
;
MoveInfo
.
MoveParam
.
PosInfoBack
=
null
;
// MoveAxisToP1();
// MoveAxisToP1();
PullAxis_UpdownToP1
();
PullAxis_UpdownToP1
();
UpdownAxisTo_P4_P10
();
UpdownAxisTo_P4_P10
();
}
}
...
...
source/DeviceLibrary/storeBean/boxBean/BoxEquip_OutExecute_Partial.cs
查看文件 @
3350a45
...
@@ -28,7 +28,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -28,7 +28,7 @@ namespace OnlineStore.DeviceLibrary
//MoveAxisToP1();
//MoveAxisToP1();
PullAxis_UpdownToP1
();
PullAxis_UpdownToP1
();
UpdownAxisTo_P4_P10
();
UpdownAxisTo_P4_P10
();
// BuffAreaOutstoreDoor(true);
// BuffAreaOutstoreDoor(true);
break
;
break
;
case
StepEnum
.
SOB_14_GetReels_Ready1
:
case
StepEnum
.
SOB_14_GetReels_Ready1
:
...
@@ -38,14 +38,15 @@ namespace OnlineStore.DeviceLibrary
...
@@ -38,14 +38,15 @@ namespace OnlineStore.DeviceLibrary
Msg
.
add
(
WarnMsg
,
MsgLevel
.
critical
);
Msg
.
add
(
WarnMsg
,
MsgLevel
.
critical
);
return
;
return
;
}
}
ignoreCurFork
=
false
;
//两侧已有同尺寸的料
//两侧已有同尺寸的料
MoveInfo
.
NextMoveStep
(
StepEnum
.
SOB_15_ToBufferArea
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
SOB_15_ToBufferArea
);
ignoreCurFork
=
false
;
LogInfo
(
$
"出库 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.barcode}]取料完成,准备送往出料口。行走机构到待机点P1"
);
LogInfo
(
$
"出库 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.barcode}]取料完成,准备送往出料口。行走机构到待机点P1"
);
MoveAxisToP1
();
MoveAxisToP1
();
//PullAxis_UpdownToP1();
//PullAxis_UpdownToP1();
// UpdownAxisTo_P4_P10();
// UpdownAxisTo_P4_P10();
BuffAreaOutstoreDoor
(
true
);
BuffAreaOutstoreDoor
(
true
);
ForkCheckWhenRunning
();
break
;
break
;
case
StepEnum
.
SOB_15_ToBufferArea
:
case
StepEnum
.
SOB_15_ToBufferArea
:
if
(!
BothOutDoorCheck
(
MoveInfo
.
MoveParam
))
if
(!
BothOutDoorCheck
(
MoveInfo
.
MoveParam
))
...
@@ -56,6 +57,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -56,6 +57,7 @@ namespace OnlineStore.DeviceLibrary
{
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
SOB_16_VerifyBufferState
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
SOB_16_VerifyBufferState
);
BuffAreaOutstoreDoor
(
true
);
BuffAreaOutstoreDoor
(
true
);
StopForkCheck
();
LogInfo
(
$
"出库 {MoveInfo.SLog}:出料口无料盘确认,打开出料防护门,准备放料[barcode={MoveInfo.MoveParam.PosInfo.barcode}][barcode={MoveInfo.MoveParam.PosInfoBack.barcode}]"
);
LogInfo
(
$
"出库 {MoveInfo.SLog}:出料口无料盘确认,打开出料防护门,准备放料[barcode={MoveInfo.MoveParam.PosInfo.barcode}][barcode={MoveInfo.MoveParam.PosInfoBack.barcode}]"
);
}
}
break
;
break
;
...
@@ -94,11 +96,10 @@ namespace OnlineStore.DeviceLibrary
...
@@ -94,11 +96,10 @@ namespace OnlineStore.DeviceLibrary
case
StepEnum
.
SOB_19_InOutBackFromBuff
:
case
StepEnum
.
SOB_19_InOutBackFromBuff
:
if
(!
CheckBothReel
(
false
))
if
(!
CheckBothReel
(
false
))
{
{
WarnMsg
=
$
"两面料叉上还能检测到料盘,请检查"
;
SetCriticalMsg
(
$
"两面料叉上还能检测到料盘,请检查"
);
Msg
.
add
(
WarnMsg
,
MsgLevel
.
critical
);
return
;
return
;
}
}
ignoreCurFork
=
false
;
//出库料盘放置成功,将料盘信息写入对应出料口
//出库料盘放置成功,将料盘信息写入对应出料口
if
(
CheckASide
())
if
(
CheckASide
())
{
{
...
@@ -112,6 +113,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -112,6 +113,7 @@ namespace OnlineStore.DeviceLibrary
}
}
MoveInfo
.
NextMoveStep
(
StepEnum
.
SOB_20_Finish
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
SOB_20_Finish
);
BuffAreaOutstoreDoor
(
false
);
BuffAreaOutstoreDoor
(
false
);
ignoreCurFork
=
false
;
LogInfo
(
$
"出库 {MoveInfo.SLog}:关闭出料防护门,出库结束"
);
LogInfo
(
$
"出库 {MoveInfo.SLog}:关闭出料防护门,出库结束"
);
break
;
break
;
...
...
source/DeviceLibrary/storeBean/boxBean/BoxEquip_Partial.cs
查看文件 @
3350a45
using
CodeLibrary
;
using
CodeLibrary
;
using
log4net.Util
;
using
log4net.Util
;
using
OnlineStore.Common
;
using
OnlineStore.Common
;
using
OnlineStore.DeviceLibrary.deviceLibrary
;
using
OnlineStore.LoadCSVLibrary
;
using
OnlineStore.LoadCSVLibrary
;
using
System
;
using
System
;
using
System.Collections.Generic
;
using
System.Collections.Generic
;
...
@@ -12,11 +13,152 @@ using System.Text;
...
@@ -12,11 +13,152 @@ using System.Text;
using
System.Threading
;
using
System.Threading
;
using
System.Threading.Tasks
;
using
System.Threading.Tasks
;
using
System.Windows.Forms.VisualStyles
;
using
System.Windows.Forms.VisualStyles
;
using
static
System
.
Windows
.
Forms
.
VisualStyles
.
VisualStyleElement
.
StartPanel
;
namespace
OnlineStore.DeviceLibrary
namespace
OnlineStore.DeviceLibrary
{
{
partial
class
BoxEquip
partial
class
BoxEquip
{
{
public
bool
IgnoreFortACheck
=
false
;
public
bool
ForkAChecking
=
false
;
public
bool
ForkBChecking
=
false
;
public
bool
IgnoreForkBCheck
=
false
;
public
bool
IsStopForkCheck
=
false
;
bool
enableForkCehck
{
get
{
return
ConfigHelper
.
Config
.
Get
(
"启用行走中料叉检测"
,
true
);
}
}
public
void
StopForkCheck
()
{
ForkAChecking
=
false
;
ForkBChecking
=
false
;
IsStopForkCheck
=
true
;
IgnoreFortACheck
=
false
;
IgnoreForkBCheck
=
false
;
if
(!
enableForkCehck
)
return
;
LogUtil
.
info
(
$
"{Name}-停止料叉监控"
);
}
public
void
ForkACheck
()
{
if
(!
enableForkCehck
)
return
;
ForkAChecking
=
true
;
IsStopForkCheck
=
false
;
Task
.
Run
(()
=>
{
try
{
Task
.
Delay
(
200
).
Wait
();
IgnoreFortACheck
=
false
;
DateTime
highTime
=
DateTime
.
Now
;
LogUtil
.
info
(
$
"{Name}-开始料叉{IO_Type.ForkA_Tray_Check}监控"
);
while
(!
IsStopForkCheck
&&
!
IgnoreFortACheck
)
{
if
(
MoveStop
)
{
Task
.
Delay
(
50
).
Wait
();
highTime
=
DateTime
.
Now
;
SetCriticalMsg
(
$
"料叉A监控到料盘信号丢失"
);
continue
;
}
bool
check
=
IOValue
(
IO_Type
.
ForkA_Tray_Check
).
Equals
(
IO_VALUE
.
HIGH
);
if
(
check
)
{
highTime
=
DateTime
.
Now
;
}
var
highinterval
=
(
DateTime
.
Now
-
highTime
).
TotalSeconds
;
if
(
highinterval
>=
1
)
{
UserPause
(
true
,
$
"料叉{IO_Type.ForkA_Tray_Check}检测到灭了{highinterval}秒"
);
Thread
.
Sleep
(
500
);
MoveAxis
.
SuddenStop
();
LogUtil
.
error
(
$
"料叉{IO_Type.ForkA_Tray_Check}检测到灭了{highinterval}秒,行走机构停止"
);
}
Task
.
Delay
(
50
).
Wait
();
}
LogUtil
.
info
(
$
"{Name}-结束料叉{IO_Type.ForkA_Tray_Check}监控,停止状态={IsStopForkCheck},忽略状态={IgnoreFortACheck}"
);
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"ForkACheck error"
,
ex
);
}
});
}
void
ForkCheckWhenRunning
()
{
if
(
IOValue
(
IO_Type
.
ForkA_Tray_Check
).
Equals
(
IO_VALUE
.
HIGH
))
{
ForkACheck
();
}
if
(
IOValue
(
IO_Type
.
ForkB_Tray_Check
).
Equals
(
IO_VALUE
.
HIGH
))
{
ForkBCheck
();
}
}
public
void
ForkBCheck
()
{
if
(!
enableForkCehck
)
return
;
ForkAChecking
=
true
;
IsStopForkCheck
=
false
;
Task
.
Run
(()
=>
{
try
{
Task
.
Delay
(
200
).
Wait
();
IgnoreForkBCheck
=
false
;
DateTime
highTime
=
DateTime
.
Now
;
LogUtil
.
info
(
$
"{Name}-开始料叉{IO_Type.ForkB_Tray_Check}监控"
);
while
(!
IsStopForkCheck
&&
!
IgnoreForkBCheck
)
{
if
(
MoveStop
)
{
Task
.
Delay
(
50
).
Wait
();
highTime
=
DateTime
.
Now
;
SetCriticalMsg
(
$
"料叉A监控到料盘信号丢失"
);
continue
;
}
bool
check
=
IOValue
(
IO_Type
.
ForkB_Tray_Check
).
Equals
(
IO_VALUE
.
HIGH
);
if
(
check
)
{
highTime
=
DateTime
.
Now
;
}
var
highinterval
=
(
DateTime
.
Now
-
highTime
).
TotalSeconds
;
if
(
highinterval
>=
1
)
{
UserPause
(
true
,
$
"料叉{IO_Type.ForkB_Tray_Check}检测到灭了{highinterval}秒"
);
Thread
.
Sleep
(
500
);
MoveAxis
.
SuddenStop
();
LogUtil
.
error
(
$
"料叉{IO_Type.ForkB_Tray_Check}检测到灭了{highinterval}秒,行走机构停止"
);
}
Task
.
Delay
(
50
).
Wait
();
}
LogUtil
.
info
(
$
"{Name}-结束料叉{IO_Type.ForkB_Tray_Check}监控,停止状态={IsStopForkCheck},忽略状态={IgnoreFortACheck}"
);
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"ForkBCheck error"
,
ex
);
}
});
}
public
void
UserPause
(
bool
pause
,
string
msg
)
{
if
(!
enableForkCehck
)
{
return
;
}
if
(
pause
)
{
LogUtil
.
info
(
$
"{Name}-用户停止:{msg}"
);
}
else
{
LogUtil
.
info
(
$
"{Name}-用户继续:{msg}"
);
}
MoveStop
=
pause
;
}
protected
override
bool
CheckWaitResult
(
DeviceMoveInfo
moveInfo
,
WaitResultInfo
wait
)
protected
override
bool
CheckWaitResult
(
DeviceMoveInfo
moveInfo
,
WaitResultInfo
wait
)
{
{
return
false
;
return
false
;
...
@@ -595,6 +737,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -595,6 +737,7 @@ namespace OnlineStore.DeviceLibrary
return
IOValue
(
IO_Type
.
ForkB_Tray_Check
).
Equals
(
hasReel
?
IO_VALUE
.
HIGH
:
IO_VALUE
.
LOW
);
return
IOValue
(
IO_Type
.
ForkB_Tray_Check
).
Equals
(
hasReel
?
IO_VALUE
.
HIGH
:
IO_VALUE
.
LOW
);
}
}
}
}
bool
CheckBothReel
(
bool
hasReel
)
bool
CheckBothReel
(
bool
hasReel
)
{
{
if
(
ignoreFork
)
if
(
ignoreFork
)
...
...
source/DeviceLibrary/storeBean/inputBean/BatchMoveBean.cs
查看文件 @
3350a45
...
@@ -75,7 +75,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -75,7 +75,7 @@ namespace OnlineStore.DeviceLibrary
{
{
if
(
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
None
))
if
(
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
None
))
{
{
WarnMsg
=
""
;
WarnMsg
=
""
;
if
(
Robot
.
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
Reset
)
||
Robot
.
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
RHome
))
if
(
Robot
.
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
Reset
)
||
Robot
.
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
RHome
))
{
{
}
}
...
...
source/DeviceLibrary/storeBean/inputBean/InputEquip.cs
查看文件 @
3350a45
...
@@ -590,7 +590,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -590,7 +590,7 @@ namespace OnlineStore.DeviceLibrary
else
if
(
posInfo
.
IsNG
)
else
if
(
posInfo
.
IsNG
)
{
{
InOutParam
param
=
new
InOutParam
(
posInfo
.
ToCopy
());
InOutParam
param
=
new
InOutParam
(
posInfo
.
ToCopy
());
LogInfo
(
$
"{posType}物料{param.PosInfo.ToStr()},准备出库到NG箱"
);
LogInfo
(
$
"{posType}物料{param.PosInfo.ToStr()},准备出库到NG箱"
);
return
StartOutstore
(
param
);
return
StartOutstore
(
param
);
}
}
}
}
...
@@ -598,7 +598,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -598,7 +598,7 @@ namespace OnlineStore.DeviceLibrary
{
{
return
false
;
return
false
;
}
}
else
if
(
posInfo
.
IsNG
)
else
if
(
posInfo
.
IsNG
)
{
{
return
false
;
return
false
;
}
}
...
@@ -627,7 +627,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -627,7 +627,7 @@ namespace OnlineStore.DeviceLibrary
{
{
InOutParam
param
=
new
InOutParam
(
posInfo
.
ToCopy
());
InOutParam
param
=
new
InOutParam
(
posInfo
.
ToCopy
());
param
.
ShelfType
=
moveBean
.
ShelfType
;
param
.
ShelfType
=
moveBean
.
ShelfType
;
if
(
StartOutstore
(
param
))
if
(
StartOutstore
(
param
))
{
{
LogInfo
(
$
"{posType}物料{param.PosInfo.ToStr()},准备出库到料串{param.ShelfType}"
);
LogInfo
(
$
"{posType}物料{param.PosInfo.ToStr()},准备出库到料串{param.ShelfType}"
);
}
}
...
@@ -681,7 +681,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -681,7 +681,7 @@ namespace OnlineStore.DeviceLibrary
{
{
return
false
;
return
false
;
}
}
else
if
(
posInfo
.
singleOut
)
else
if
(
posInfo
.
singleOut
)
{
{
return
false
;
return
false
;
}
}
...
@@ -707,7 +707,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -707,7 +707,7 @@ namespace OnlineStore.DeviceLibrary
{
{
InOutParam
param
=
new
InOutParam
(
posInfo
.
ToCopy
());
InOutParam
param
=
new
InOutParam
(
posInfo
.
ToCopy
());
param
.
ShelfType
=
moveBean
.
ShelfType
;
param
.
ShelfType
=
moveBean
.
ShelfType
;
if
(
StartOutstore
(
param
))
if
(
StartOutstore
(
param
))
{
{
LogInfo
(
$
"{posType}物料{param.PosInfo.ToStr()},准备出库到料串{param.ShelfType}"
);
LogInfo
(
$
"{posType}物料{param.PosInfo.ToStr()},准备出库到料串{param.ShelfType}"
);
}
}
...
@@ -989,6 +989,10 @@ namespace OnlineStore.DeviceLibrary
...
@@ -989,6 +989,10 @@ namespace OnlineStore.DeviceLibrary
}
}
if
(
StoreManager
.
DisSecurityAccess
)
if
(
StoreManager
.
DisSecurityAccess
)
{
{
if
(
CurrSecurityAccess
.
Equals
(
1
))
{
SecurityAccessReset
();
}
}
}
else
if
(
IOValue
(
IO_Type
.
Feeding_LDoor_Limit
).
Equals
(
IO_VALUE
.
LOW
))
else
if
(
IOValue
(
IO_Type
.
Feeding_LDoor_Limit
).
Equals
(
IO_VALUE
.
LOW
))
{
{
...
@@ -1000,14 +1004,27 @@ namespace OnlineStore.DeviceLibrary
...
@@ -1000,14 +1004,27 @@ namespace OnlineStore.DeviceLibrary
}
}
else
if
(
IOValue
(
IO_Type
.
SafetyRasterSignal
).
Equals
(
IO_VALUE
.
LOW
))
else
if
(
IOValue
(
IO_Type
.
SafetyRasterSignal
).
Equals
(
IO_VALUE
.
LOW
))
{
{
SecurityAccessStop
(
"光栅被遮挡"
);
bool
enable
=
ConfigHelper
.
Config
.
Get
(
"启用入料口光栅"
,
false
);
if
(
enable
)
SecurityAccessStop
(
"光栅被遮挡"
);
}
}
}
}
else
if
(
CurrSecurityAccess
.
Equals
(
1
))
else
if
(
CurrSecurityAccess
.
Equals
(
1
))
{
{
if
(
IOValue
(
IO_Type
.
SafetyRasterSignal
).
Equals
(
IO_VALUE
.
HIGH
))
bool
enable
=
ConfigHelper
.
Config
.
Get
(
"启用入料口光栅"
,
false
);
if
(
enable
)
{
if
(
IOValue
(
IO_Type
.
SafetyRasterSignal
).
Equals
(
IO_VALUE
.
HIGH
))
{
SecurityAccessReset
();
}
}
else
{
{
SecurityAccessReset
();
if
(
IOValue
(
IO_Type
.
Feeding_LDoor_Limit
).
Equals
(
IO_VALUE
.
HIGH
)
&&
IOValue
(
IO_Type
.
Feeding_RDoor_Limit
).
Equals
(
IO_VALUE
.
HIGH
))
{
SecurityAccessReset
();
;
}
}
}
}
}
...
...
source/DeviceLibrary/storeBean/inputBean/InputEquip_InStore.cs
查看文件 @
3350a45
...
@@ -281,7 +281,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -281,7 +281,7 @@ namespace OnlineStore.DeviceLibrary
}
}
else
if
(
MoveInfo
.
IsTimeOut
(
60
))
else
if
(
MoveInfo
.
IsTimeOut
(
60
))
{
{
MoveTimeOut
(
MoveInfo
,
"
"
+
moveBean
.
Name
+
"获取料盘高度超时"
);
SetWarnMsg
(
Name
+
"
"
+
moveBean
.
Name
+
"获取料盘高度超时"
);
}
}
}
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
II13_GetPosId
))
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
II13_GetPosId
))
...
@@ -305,7 +305,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -305,7 +305,7 @@ namespace OnlineStore.DeviceLibrary
}
}
else
if
(
MoveInfo
.
IsTimeOut
(
15
))
else
if
(
MoveInfo
.
IsTimeOut
(
15
))
{
{
MoveTimeOut
(
MoveInfo
,
"获取库位号超时 "
+
getPosIdMsg
);
SetWarnMsg
(
"获取库位号超时 "
+
getPosIdMsg
);
}
}
}
}
...
@@ -341,7 +341,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -341,7 +341,7 @@ namespace OnlineStore.DeviceLibrary
}
}
else
if
(
MoveInfo
.
IsTimeOut
(
60
))
else
if
(
MoveInfo
.
IsTimeOut
(
60
))
{
{
MoveTimeOut
(
MoveInfo
,
"A上暂存区物料拿走"
);
SetWarnMsg
(
"A上暂存区物料拿走"
);
}
}
}
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
II43_InoutToP2
))
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
II43_InoutToP2
))
...
@@ -432,7 +432,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -432,7 +432,7 @@ namespace OnlineStore.DeviceLibrary
}
}
else
if
(
MoveInfo
.
IsTimeOut
(
60
))
else
if
(
MoveInfo
.
IsTimeOut
(
60
))
{
{
MoveTimeOut
(
MoveInfo
,
"B上暂存区物料拿走"
);
SetWarnMsg
(
"B上暂存区物料拿走"
);
}
}
}
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
II63_InoutToP3
))
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
II63_InoutToP3
))
...
@@ -473,7 +473,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -473,7 +473,7 @@ namespace OnlineStore.DeviceLibrary
}
}
else
if
(
MoveInfo
.
IsTimeOut
(
20
))
else
if
(
MoveInfo
.
IsTimeOut
(
20
))
{
{
MoveTimeOut
(
MoveInfo
,
"等待"
+
BatchMove_B
.
Name
+
"扫码结束"
);
SetWarnMsg
(
"等待"
+
BatchMove_B
.
Name
+
"扫码结束"
);
}
}
}
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
II67_MiddleToP1
))
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
II67_MiddleToP1
))
...
@@ -831,7 +831,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -831,7 +831,7 @@ namespace OnlineStore.DeviceLibrary
{
{
if
(!
NoAlarm
())
if
(!
NoAlarm
())
{
{
Log
Info
(
"报警中,无法开始出库:"
+
param
.
PosInfo
.
ToStr
());
Log
Error
(
"报警中,无法开始出库:"
+
param
.
PosInfo
.
ToStr
());
return
false
;
return
false
;
}
}
if
(
AxisInWorkingArea
(
new
int
[]
{
1
,
2
,
3
,
4
}))
if
(
AxisInWorkingArea
(
new
int
[]
{
1
,
2
,
3
,
4
}))
...
@@ -1121,7 +1121,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -1121,7 +1121,7 @@ namespace OnlineStore.DeviceLibrary
}
}
else
if
(
MoveInfo
.
IsTimeOut
(
30
))
else
if
(
MoveInfo
.
IsTimeOut
(
30
))
{
{
MoveTimeOut
(
MoveInfo
,
"等待料串可放料"
);
SetWarnMsg
(
"等待料串可放料"
);
}
}
}
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IO23_MiddleToP2
))
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IO23_MiddleToP2
))
...
...
source/XLRStoreClient/FrmXLRStore.Designer.cs
查看文件 @
3350a45
此文件的差异被折叠,
点击展开。
source/XLRStoreClient/FrmXLRStore.cs
查看文件 @
3350a45
...
@@ -170,6 +170,7 @@ namespace OnlineStore.XLRStore
...
@@ -170,6 +170,7 @@ namespace OnlineStore.XLRStore
DialogResult
result
=
MessageBox
.
Show
(
"确定清除A上暂存区物料:"
+
BufferDataManager
.
AInStoreInfo
.
ToStr
(),
""
,
MessageBoxButtons
.
OKCancel
);
DialogResult
result
=
MessageBox
.
Show
(
"确定清除A上暂存区物料:"
+
BufferDataManager
.
AInStoreInfo
.
ToStr
(),
""
,
MessageBoxButtons
.
OKCancel
);
if
(
result
.
Equals
(
DialogResult
.
OK
))
if
(
result
.
Equals
(
DialogResult
.
OK
))
{
{
SServerManager
.
cancelPutInTask
(
Name
,
BufferDataManager
.
AInStoreInfo
.
barcode
);
LogUtil
.
info
(
Name
+
"手动清除A上暂存区物料:"
+
BufferDataManager
.
AInStoreInfo
.
ToStr
());
LogUtil
.
info
(
Name
+
"手动清除A上暂存区物料:"
+
BufferDataManager
.
AInStoreInfo
.
ToStr
());
BufferDataManager
.
AInStoreInfo
=
null
;
BufferDataManager
.
AInStoreInfo
=
null
;
}
}
...
@@ -197,6 +198,7 @@ namespace OnlineStore.XLRStore
...
@@ -197,6 +198,7 @@ namespace OnlineStore.XLRStore
DialogResult
result
=
MessageBox
.
Show
(
"确定清除B上暂存区物料:"
+
BufferDataManager
.
BInStoreInfo
.
ToStr
(),
""
,
MessageBoxButtons
.
OKCancel
);
DialogResult
result
=
MessageBox
.
Show
(
"确定清除B上暂存区物料:"
+
BufferDataManager
.
BInStoreInfo
.
ToStr
(),
""
,
MessageBoxButtons
.
OKCancel
);
if
(
result
.
Equals
(
DialogResult
.
OK
))
if
(
result
.
Equals
(
DialogResult
.
OK
))
{
{
SServerManager
.
cancelPutInTask
(
Name
,
BufferDataManager
.
BInStoreInfo
.
barcode
);
LogUtil
.
info
(
Name
+
"手动清除B上暂存区物料:"
+
BufferDataManager
.
BInStoreInfo
.
ToStr
());
LogUtil
.
info
(
Name
+
"手动清除B上暂存区物料:"
+
BufferDataManager
.
BInStoreInfo
.
ToStr
());
BufferDataManager
.
BInStoreInfo
=
null
;
BufferDataManager
.
BInStoreInfo
=
null
;
}
}
...
@@ -553,6 +555,34 @@ namespace OnlineStore.XLRStore
...
@@ -553,6 +555,34 @@ namespace OnlineStore.XLRStore
{
{
lbldiancifa
.
Text
=
"干燥机电磁阀关闭"
;
lbldiancifa
.
Text
=
"干燥机电磁阀关闭"
;
}
}
if
(
StoreManager
.
XLRStore
?.
boxEquip
?.
MoveStop
??
false
)
{
设备恢复
ToolStripMenuItem
.
Visible
=
true
;
if
(
StoreManager
.
XLRStore
?.
boxEquip
?.
ForkAChecking
??
false
)
{
忽略行走机构运行期间
A
侧料叉
ToolStripMenuItem
.
Visible
=
true
;
}
else
{
忽略行走机构运行期间
A
侧料叉
ToolStripMenuItem
.
Visible
=
false
;
}
if
(
StoreManager
.
XLRStore
?.
boxEquip
?.
ForkBChecking
??
false
)
{
忽略行走机构运行期间
B
侧料叉
ToolStripMenuItem1
.
Visible
=
true
;
}
else
{
忽略行走机构运行期间
B
侧料叉
ToolStripMenuItem1
.
Visible
=
false
;
}
}
else
{
设备恢复
ToolStripMenuItem
.
Visible
=
false
;
忽略行走机构运行期间
B
侧料叉
ToolStripMenuItem1
.
Visible
=
false
;
忽略行走机构运行期间
A
侧料叉
ToolStripMenuItem
.
Visible
=
false
;
}
}
}
private
void
SetMenuS
(
ToolStripMenuItem
toolMenu
,
bool
isEn
)
private
void
SetMenuS
(
ToolStripMenuItem
toolMenu
,
bool
isEn
)
{
{
...
@@ -858,5 +888,21 @@ namespace OnlineStore.XLRStore
...
@@ -858,5 +888,21 @@ namespace OnlineStore.XLRStore
{
{
}
}
private
void
忽略行走机构运行期间
A
侧料叉
ToolStripMenuItem_Click
(
object
sender
,
EventArgs
e
)
{
StoreManager
.
XLRStore
.
boxEquip
.
IgnoreFortACheck
=
true
;
}
private
void
忽略行走机构运行期间
B
侧料叉
ToolStripMenuItem1_Click
(
object
sender
,
EventArgs
e
)
{
StoreManager
.
XLRStore
.
boxEquip
.
IgnoreForkBCheck
=
true
;
}
private
void
设备恢复
ToolStripMenuItem_Click
(
object
sender
,
EventArgs
e
)
{
StoreManager
.
XLRStore
.
boxEquip
.
UserPause
(
false
,
"用户点击恢复"
);
}
}
}
}
}
source/XLRStoreClient/boxForm/FrmBoxEquip.Designer.cs
查看文件 @
3350a45
...
@@ -168,7 +168,7 @@
...
@@ -168,7 +168,7 @@
this
.
chbMoveStop
.
TabIndex
=
262
;
this
.
chbMoveStop
.
TabIndex
=
262
;
this
.
chbMoveStop
.
Text
=
"暂停运动"
;
this
.
chbMoveStop
.
Text
=
"暂停运动"
;
this
.
chbMoveStop
.
UseVisualStyleBackColor
=
true
;
this
.
chbMoveStop
.
UseVisualStyleBackColor
=
true
;
this
.
chbMoveStop
.
C
lick
+=
new
System
.
EventHandler
(
this
.
chbMoveStop_CheckedChanged
);
this
.
chbMoveStop
.
C
heckedChanged
+=
new
System
.
EventHandler
(
this
.
chbMoveStop_CheckedChanged
);
//
//
// lblName
// lblName
//
//
...
...
source/XLRStoreClient/inputForm/FrmBatchMove.cs
查看文件 @
3350a45
...
@@ -50,8 +50,7 @@ namespace OnlineStore.XLRStore
...
@@ -50,8 +50,7 @@ namespace OnlineStore.XLRStore
else
else
{
{
btnReset
.
Enabled
=
true
;
btnReset
.
Enabled
=
true
;
}
}
text
+=
"\r\n"
+
moveBean
.
MoveInfo
.
MoveType
+
"_"
+
moveBean
.
MoveInfo
.
MoveStep
;
text
+=
"\r\n"
+
moveBean
.
MoveInfo
.
MoveType
+
"_"
+
moveBean
.
MoveInfo
.
MoveStep
;
text
+=
"\r\n"
+
moveBean
.
CurrShelf
?.
ToStr
();
text
+=
"\r\n"
+
moveBean
.
CurrShelf
?.
ToStr
();
lblAgvInfo
.
Text
=
text
;
lblAgvInfo
.
Text
=
text
;
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论