Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
李娜
/
AutoCountMachine
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 6811af88
由
LN
编写于
2020-09-09 09:19:06 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
逻辑优化。
1 个父辈
5cda5bea
隐藏空白字符变更
内嵌
并排
正在显示
9 个修改的文件
包含
168 行增加
和
100 行删除
RC1266-AutoCountMachine/dll/CodeLibrary.dll
RC1266-AutoCountMachine/source/DeviceLibrary/bean/InputEquip.cs
RC1266-AutoCountMachine/source/DeviceLibrary/bean/InputEquip_InStore.cs
RC1266-AutoCountMachine/source/DeviceLibrary/bean/OutputEquip.cs
RC1266-AutoCountMachine/source/DeviceLibrary/bean/OutputEquip_Partial.cs
RC1266-AutoCountMachine/source/DeviceLibrary/bean/OutputEquip_Shelf.cs
RC1266-AutoCountMachine/source/DeviceLibrary/bean/X_RAY_Equip.cs
RC1266-AutoCountMachine/source/DeviceLibrary/bean/X_RAY_Equip_Partial.cs
RC1266-AutoCountMachine/source/DeviceLibrary/model/RobotMoveInfo.cs
RC1266-AutoCountMachine/dll/CodeLibrary.dll
查看文件 @
6811af8
此文件类型无法预览
RC1266-AutoCountMachine/source/DeviceLibrary/bean/InputEquip.cs
查看文件 @
6811af8
...
...
@@ -194,7 +194,7 @@ namespace OnlineStore.DeviceLibrary
if
(!
LeftBatchMove
.
MoveInfo
.
MoveType
.
Equals
(
RobotMoveType
.
None
)
&&
(!
LeftBatchMove
.
MoveInfo
.
MoveType
.
Equals
(
RobotMoveType
.
Working
)))
{
WarnMsg
=
Name
+
"等待"
+
LeftBatchMove
.
Name
+
"复位完成超时["
+
MoveInfo
.
TimeOutSeconds
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
MoveInfo
.
ErrorLogType
);
LogUtil
.
error
(
WarnMsg
,
MoveInfo
.
ErrorLogType
,
MoveInfo
.
logSeconds
()
);
Alarm
(
AlarmType
.
IoSingleTimeOut
);
}
else
...
...
RC1266-AutoCountMachine/source/DeviceLibrary/bean/InputEquip_InStore.cs
查看文件 @
6811af8
...
...
@@ -183,7 +183,7 @@ namespace OnlineStore.DeviceLibrary
else
if
(
MoveInfo
.
IsTimeOut
(
60
))
{
WarnMsg
=
Name
+
"等待"
+
moveBean
.
Name
+
"测高结束超时["
+
MoveInfo
.
TimeOutSeconds
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
MoveInfo
.
ErrorLogType
);
LogUtil
.
error
(
WarnMsg
,
MoveInfo
.
ErrorLogType
,
MoveInfo
.
logSeconds
()
);
Alarm
(
AlarmType
.
IoSingleTimeOut
);
}
}
...
...
@@ -249,7 +249,7 @@ namespace OnlineStore.DeviceLibrary
if
(
MoveInfo
.
IsTimeOut
(
120
))
{
WarnMsg
=
Name
+
"等待"
+
MoveInfo
.
MoveParam
.
WareCode
+
"验证是否测值 超时["
+
MoveInfo
.
TimeOutSeconds
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
MoveInfo
.
ErrorLogType
);
LogUtil
.
error
(
WarnMsg
,
MoveInfo
.
ErrorLogType
,
MoveInfo
.
logSeconds
()
);
Alarm
(
AlarmType
.
IoSingleTimeOut
);
}
}
...
...
@@ -344,8 +344,9 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IW44_MiddleToP2
))
{
TimeSpan
span
=
DateTime
.
Now
-
MoveInfo
.
MoveStartTime
;
MoveInfo
.
EndMove
();
WorkLog
(
"放料完成"
);
WorkLog
(
"放料完成
,耗时("
+
FormUtil
.
GetSpanStr
(
span
)
+
")
"
);
}
}
...
...
RC1266-AutoCountMachine/source/DeviceLibrary/bean/OutputEquip.cs
查看文件 @
6811af8
...
...
@@ -205,7 +205,8 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
OMR05_TakeT_Clamping_Relax
))
{
WorkLog
(
" 取料模块复位完成"
);
TimeSpan
span
=
DateTime
.
Now
-
MoveInfo
.
MoveStartTime
;
WorkLog
(
" 取料模块复位完成,耗时("
+
FormUtil
.
GetSpanStr
(
span
)
+
")"
);
MoveInfo
.
EndMove
();
ResetStatusPro
();
}
...
...
@@ -268,7 +269,8 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
SecMoveInfo
.
IsStep
(
StepEnum
.
OLR08_LabelRToP1
))
{
SecWorkLog
(
" 贴标模块复位完成"
);
TimeSpan
span
=
DateTime
.
Now
-
SecMoveInfo
.
MoveStartTime
;
SecWorkLog
(
" 贴标模块复位完成, 耗时("
+
FormUtil
.
GetSpanStr
(
span
)
+
")"
);
SecMoveInfo
.
EndMove
();
ResetStatusPro
();
}
...
...
@@ -360,15 +362,17 @@ namespace OnlineStore.DeviceLibrary
}
else
{
TimeSpan
span
=
DateTime
.
Now
-
ShelfMoveInfo
.
MoveStartTime
;
ShelfMoveInfo
.
EndMove
();
ShelfWorkLog
(
"批量轴模块复位完成"
);
ShelfWorkLog
(
"批量轴模块复位完成
,耗时("
+
FormUtil
.
GetSpanStr
(
span
)
+
")
"
);
ResetStatusPro
();
}
}
else
if
(
ShelfMoveInfo
.
IsStep
(
StepEnum
.
OBR08_BatchAxisToP1
))
{
TimeSpan
span
=
DateTime
.
Now
-
ShelfMoveInfo
.
MoveStartTime
;
ShelfMoveInfo
.
EndMove
();
ShelfWorkLog
(
"批量轴模块复位完成"
);
ShelfWorkLog
(
"批量轴模块复位完成
,耗时("
+
FormUtil
.
GetSpanStr
(
span
)
+
")
"
);
ResetStatusPro
();
}
}
...
...
RC1266-AutoCountMachine/source/DeviceLibrary/bean/OutputEquip_Partial.cs
查看文件 @
6811af8
...
...
@@ -47,7 +47,8 @@ namespace OnlineStore.DeviceLibrary
}
#
region
取料
private
bool
IsStartLabel
=
false
;
//当前取的料盘是否开始打印标签
public
override
bool
StartWorking
(
WorkParam
param
)
{
if
(
MoveInfo
.
MoveType
.
Equals
(
RobotMoveType
.
None
).
Equals
(
false
))
...
...
@@ -70,11 +71,12 @@ namespace OnlineStore.DeviceLibrary
if
(
IOValue
(
IO_Type
.
Out_TrayCheck
).
Equals
(
IO_VALUE
.
HIGH
)
&&
IOValue
(
IO_Type
.
X_OLine_Run
).
Equals
(
IO_VALUE
.
LOW
))
{
IsStartLabel
=
false
;
MoveInfo
.
NewMove
(
RobotMoveType
.
Working
,
StepEnum
.
OT01_WaitCheck
);
if
(
param
.
PlateW
>
0
&&
param
.
PlateH
>
0
)
{
MoveInfo
.
MoveParam
=
param
;
WorkLog
(
" 检测到XRay出口料盘["
+
param
.
OutStr
()
+
"],准备开始取料"
);
WorkLog
(
" 检测到XRay出口料盘["
+
param
.
OutStr
()
+
"],准备开始取料
,重置 IsStartLabel = false
"
);
}
else
{
...
...
@@ -86,7 +88,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo
.
MoveParam
.
SetReelInfo
(
reelInfo
);
WorkLog
(
" 检测到XRay出口料盘["
+
reelInfo
.
ToStr
()
+
"],准备开始取料"
);
WorkLog
(
" 检测到XRay出口料盘["
+
reelInfo
.
ToStr
()
+
"],准备开始取料
,重置 IsStartLabel = false
"
);
}
if
(
MoveInfo
.
MoveParam
.
PlateW
<=
0
||
MoveInfo
.
MoveParam
.
PlateH
<=
0
||
...
...
@@ -101,6 +103,38 @@ namespace OnlineStore.DeviceLibrary
}
return
false
;
}
private
bool
CheckStartLabel
(
bool
needAlarm
=
false
)
{
if
(
MoveInfo
.
MoveParam
.
IsNgReel
)
{
return
false
;
}
if
(
IsStartLabel
)
{
return
true
;
}
//TODO 记录信息,判断贴标模块当前空闲,此时可以打印标签(取码气缸前进,打印标签,取码气缸后退)
if
(
SecMoveInfo
.
MoveType
.
Equals
(
RobotMoveType
.
None
))
{
WorkLog
(
"取料: 贴标模块开始打印标签"
);
//TODO
bool
result
=
StartLabelling
(
MoveInfo
.
MoveParam
);
if
(
result
)
{
IsStartLabel
=
true
;
return
true
;
}
}
else
if
(
needAlarm
&&
MoveInfo
.
IsTimeOut
(
120
))
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveStep
+
"]"
+
"等待贴标模块空闲 超时["
+
FormUtil
.
GetSpanStr
(
MoveInfo
.
StepSpan
())
+
"]"
;
LogUtil
.
error
(
WarnMsg
,
MoveInfo
.
ErrorLogType
,
MoveInfo
.
logSeconds
());
Alarm
(
AlarmType
.
IoSingleTimeOut
);
}
return
false
;
}
protected
override
void
WorkingProcess
()
{
if
(
MoveInfo
.
IsInWait
)
...
...
@@ -115,13 +149,13 @@ namespace OnlineStore.DeviceLibrary
if
(
MoveInfo
.
IsStep
(
StepEnum
.
OT01_WaitCheck
))
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
OT02_MoveZToP1
);
WorkLog
(
"取料:取料Z轴到P1 "
,
0
);
WorkLog
(
"取料:取料Z轴到P1 "
,
0
);
MoveZAxis
.
AbsMove
(
MoveInfo
,
Config
.
MoveZ_P1
,
Config
.
MoveZ_P1Speed
);
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
OT02_MoveZToP1
))
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
OT03_MoveXToP2
);
WorkLog
(
"取料:取料X轴到P2 "
,
0
);
WorkLog
(
"取料:取料X轴到P2 "
,
0
);
MoveXAxis
.
AbsMove
(
MoveInfo
,
Config
.
GetMoveXP2
(
MoveInfo
.
MoveParam
.
PlateW
),
Config
.
MoveX_P2Speed
);
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
OT03_MoveXToP2
))
...
...
@@ -131,49 +165,56 @@ namespace OnlineStore.DeviceLibrary
if
(
MoveInfo
.
MoveParam
.
IsNgReel
)
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
OT07_MoveZToP2
);
WorkLog
(
"取料:取料Z轴到P2 "
,
0
);
WorkLog
(
"取料:取料Z轴到P2 "
,
0
);
MoveZAxis
.
AbsMove
(
MoveInfo
,
Config
.
GetMoveZP2
(
MoveInfo
.
MoveParam
.
PlateH
),
Config
.
MoveZ_P2Speed
);
}
else
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
OT05_GetImage
);
WorkLog
(
"取料:["
+
Config
.
CameraName
+
"]拍照并开始识别 ,等待100
0
ms"
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
100
0
));
WorkLog
(
"取料:["
+
Config
.
CameraName
+
"]拍照并开始识别 ,等待100ms"
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
100
));
}
}
//else if (MoveInfo.IsStep(StepEnum.OT04_CheckNeedImage))
//{
//}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
OT05_GetImage
))
{
//TODO 记录信息,判断贴标模块当前空闲,此时可以打印标签(取码气缸前进,打印标签,取码气缸后退)
if
(
SecMoveInfo
.
MoveType
.
Equals
(
RobotMoveType
.
None
))
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
OT06_MoveXToP2
);
WorkLog
(
"取料:取料X轴运动到P2 , 贴标模块开始打印标签"
);
MoveXAxis
.
AbsMove
(
MoveInfo
,
Config
.
GetMoveXP2
(
MoveInfo
.
MoveParam
.
PlateW
),
Config
.
MoveX_P2Speed
);
//TODO
StartLabelling
(
MoveInfo
.
MoveParam
);
}
else
if
(
MoveInfo
.
IsTimeOut
(
120
))
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveStep
+
"]"
+
"等待贴标模块空闲 超时["
+
FormUtil
.
GetSpanStr
(
MoveInfo
.
StepSpan
())
+
"]"
;
LogUtil
.
error
(
WarnMsg
,
MoveInfo
.
ErrorLogType
);
Alarm
(
AlarmType
.
IoSingleTimeOut
);
}
MoveInfo
.
NextMoveStep
(
StepEnum
.
OT06_MoveXToP2
);
WorkLog
(
"取料:取料X轴运动到P2 "
);
MoveXAxis
.
AbsMove
(
MoveInfo
,
Config
.
GetMoveXP2
(
MoveInfo
.
MoveParam
.
PlateW
),
Config
.
MoveX_P2Speed
);
CheckStartLabel
();
////TODO 记录信息,判断贴标模块当前空闲,此时可以打印标签(取码气缸前进,打印标签,取码气缸后退)
//if (SecMoveInfo.MoveType.Equals(RobotMoveType.None))
//{
// IsStartLabel = true;
// WorkLog("取料:取料X轴运动到P2 , 贴标模块开始打印标签");
// //TODO
// StartLabelling(MoveInfo.MoveParam);
//}
//else if (MoveInfo.IsTimeOut(120))
//{
// WarnMsg = MoveInfo.Name + "[" + MoveInfo.MoveStep + "]" + "等待贴标模块空闲 超时[" + FormUtil.GetSpanStr(MoveInfo.StepSpan()) + "]";
// LogUtil.error(WarnMsg, MoveInfo.ErrorLogType);
// Alarm(AlarmType.IoSingleTimeOut);
//}
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
OT06_MoveXToP2
))
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
OT07_MoveZToP2
);
WorkLog
(
"取料:取料Z轴到P2 "
,
0
);
WorkLog
(
"取料:取料Z轴到P2 "
,
0
);
MoveZAxis
.
AbsMove
(
MoveInfo
,
Config
.
GetMoveZP2
(
MoveInfo
.
MoveParam
.
PlateH
),
Config
.
MoveZ_P2Speed
);
CheckStartLabel
();
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
OT07_MoveZToP2
))
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
OT08_Clamping_Work
);
WorkLog
(
"取料:取料气缸夹紧 "
,
0
);
WorkLog
(
"取料:取料气缸夹紧 "
,
0
);
CylinderMove
(
MoveInfo
,
IO_Type
.
TakeT_Clamping_Relax
,
IO_Type
.
TakeT_Clamping_Work
);
CheckStartLabel
();
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
OT08_Clamping_Work
))
{
...
...
@@ -181,27 +222,28 @@ namespace OnlineStore.DeviceLibrary
WorkLog
(
"取料:取料Z轴返回P1 ,验证Out_TrayCheck消失"
,
0
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Out_TrayCheck
,
IO_VALUE
.
LOW
));
MoveZAxis
.
AbsMove
(
MoveInfo
,
Config
.
MoveZ_P1
,
Config
.
MoveZ_P1Speed
);
CheckStartLabel
();
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
OT09_MoveZToP1
))
{
if
(
MoveInfo
.
MoveParam
.
IsNgReel
)
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
OT21_NG_MoveXToP1
);
WorkLog
(
"NG料:取料X轴到P1 "
,
0
);
WorkLog
(
"NG料:取料X轴到P1 "
,
0
);
MoveXAxis
.
AbsMove
(
MoveInfo
,
Config
.
MoveX_P1
,
Config
.
MoveX_P1Speed
);
}
else
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
OT11_WaitShelfOk
);
WorkLog
(
"取料完成,等待料串可放料 "
);
CheckStartLabel
();
}
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
OT11_WaitShelfOk
))
{
bool
shelfOk
=
ShelfMoveInfo
.
MoveType
.
Equals
(
RobotMoveType
.
ShelfPro
)
&&
ShelfMoveInfo
.
IsStep
(
StepEnum
.
OS_18_ShelfReady
);
bool
debugOk
=
ShelfMoveInfo
.
MoveType
.
Equals
(
RobotMoveType
.
None
)
&&
MoveInfo
.
MoveParam
.
IsTest
;
bool
debugOk
=
ShelfMoveInfo
.
MoveType
.
Equals
(
RobotMoveType
.
None
)
&&
MoveInfo
.
MoveParam
.
IsTest
;
if
(
shelfOk
||
debugOk
)
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
OT12_MoveXToP3
);
...
...
@@ -224,9 +266,10 @@ namespace OnlineStore.DeviceLibrary
else
if
(
MoveInfo
.
IsTimeOut
(
120
))
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveStep
+
"]"
+
"等待出料料串准备完成(OS_18_ShelfReady)超时["
+
FormUtil
.
GetSpanStr
(
MoveInfo
.
StepSpan
())
+
"]"
;
LogUtil
.
error
(
WarnMsg
,
MoveInfo
.
ErrorLogType
);
LogUtil
.
error
(
WarnMsg
,
MoveInfo
.
ErrorLogType
,
MoveInfo
.
logSeconds
()
);
Alarm
(
AlarmType
.
IoSingleTimeOut
);
}
CheckStartLabel
();
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
OT12_MoveXToP3
))
{
...
...
@@ -241,21 +284,23 @@ namespace OnlineStore.DeviceLibrary
else
if
(
MoveInfo
.
IsTimeOut
(
60
))
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveStep
+
"]"
+
"等待出料料串可放料(OS_22_WaitTray)超时["
+
FormUtil
.
GetSpanStr
(
MoveInfo
.
StepSpan
())
+
"]"
;
LogUtil
.
error
(
WarnMsg
,
MoveInfo
.
ErrorLogType
);
LogUtil
.
error
(
WarnMsg
,
MoveInfo
.
ErrorLogType
,
MoveInfo
.
logSeconds
()
);
Alarm
(
AlarmType
.
IoSingleTimeOut
);
}
CheckStartLabel
();
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
OT13_MoveZToP3
))
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
OT14_Clamping_Relax
);
WorkLog
(
"放料:取料气缸放松 "
,
0
);
WorkLog
(
"放料:取料气缸放松 "
,
0
);
CylinderMove
(
MoveInfo
,
IO_Type
.
TakeT_Clamping_Work
,
IO_Type
.
TakeT_Clamping_Relax
);
CheckStartLabel
();
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
OT14_Clamping_Relax
))
{
bool
shelfOk
=
ShelfMoveInfo
.
MoveType
.
Equals
(
RobotMoveType
.
ShelfPro
)
&&
ShelfMoveInfo
.
IsStep
(
StepEnum
.
OS_22_WaitTray
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
OT15_MoveZToP1
);
WorkLog
(
"放料:取料Z轴回到P1 "
,
0
);
WorkLog
(
"放料:取料Z轴回到P1 "
,
0
);
MoveZAxis
.
AbsMove
(
MoveInfo
,
Config
.
MoveZ_P1
,
Config
.
MoveZ_P1Speed
);
if
(
shelfOk
)
{
...
...
@@ -264,18 +309,29 @@ namespace OnlineStore.DeviceLibrary
ShelfMoveInfo
.
NextMoveStep
(
StepEnum
.
OS_23_TrayOK
);
ShelfWorkLog
(
"料盘已放入料串,累积出料 【"
+
OutReelHeight
+
"】盘共 "
+
OutReelHeight
+
" mm"
);
}
CheckStartLabel
();
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
OT15_MoveZToP1
))
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
OT16_MoveXToP2
);
WorkLog
(
"放料:取料X轴回到P2 "
,
0
);
WorkLog
(
"放料:取料X轴回到P2 "
,
0
);
MoveXAxis
.
AbsMove
(
MoveInfo
,
Config
.
GetMoveXP2
(
MoveInfo
.
MoveParam
.
PlateW
),
Config
.
MoveX_P2Speed
);
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
OT16_MoveXToP2
))
{
MoveInfo
.
EndMove
();
WorkLog
(
"放料完成"
);
}
TimeSpan
span
=
DateTime
.
Now
-
MoveInfo
.
MoveStartTime
;
if
(
IsStartLabel
)
{
MoveInfo
.
EndMove
();
WorkLog
(
"放料完成,耗时("
+
FormUtil
.
GetSpanStr
(
span
)
+
")"
);
}
bool
startOk
=
CheckStartLabel
(
true
);
if
(
startOk
)
{
MoveInfo
.
EndMove
();
WorkLog
(
"放料完成,耗时("
+
FormUtil
.
GetSpanStr
(
span
)
+
")"
);
}
}
#
region
NG
料
...
...
@@ -306,8 +362,9 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
OT25_NG_NGBack
))
{
TimeSpan
span
=
DateTime
.
Now
-
MoveInfo
.
MoveStartTime
;
MoveInfo
.
EndMove
();
WorkLog
(
"放料完成"
);
WorkLog
(
"放料完成
,耗时("
+
FormUtil
.
GetSpanStr
(
span
)
+
")
"
);
}
#
endregion
...
...
@@ -391,7 +448,7 @@ namespace OnlineStore.DeviceLibrary
else
if
(
MoveInfo
.
IsTimeOut
(
120
))
{
WarnMsg
=
SecMoveInfo
.
Name
+
"["
+
SecMoveInfo
.
MoveStep
+
"]"
+
"等待 打印标签完成(OL03_PrintLabel) 超时["
+
FormUtil
.
GetSpanStr
(
SecMoveInfo
.
StepSpan
())
+
"]"
;
LogUtil
.
error
(
WarnMsg
,
SecMoveInfo
.
ErrorLogType
);
LogUtil
.
error
(
WarnMsg
,
SecMoveInfo
.
ErrorLogType
,
SecMoveInfo
.
logSeconds
()
);
Alarm
(
AlarmType
.
IoSingleTimeOut
);
}
...
...
@@ -415,13 +472,13 @@ namespace OnlineStore.DeviceLibrary
else
if
(
SecMoveInfo
.
IsStep
(
StepEnum
.
OL07_Nozzle_Work
))
{
SecMoveInfo
.
NextMoveStep
(
StepEnum
.
OL08_ZToP1
);
SecWorkLog
(
"贴标: Z轴到P1点"
);
SecWorkLog
(
"贴标: Z轴到P1点"
,
0
);
LabelZAxis
.
AbsMove
(
SecMoveInfo
,
Config
.
LabelZ_P1
,
Config
.
LabelZ_P1Speed
);
}
else
if
(
SecMoveInfo
.
IsStep
(
StepEnum
.
OL08_ZToP1
))
{
SecMoveInfo
.
NextMoveStep
(
StepEnum
.
OL09_YToP1
);
SecWorkLog
(
"贴标: Y轴到P1点"
);
SecWorkLog
(
"贴标: Y轴到P1点"
,
0
);
LabelYAxis
.
AbsMove
(
SecMoveInfo
,
Config
.
LabelY_P1
,
Config
.
LabelY_P1Speed
);
}
else
if
(
SecMoveInfo
.
IsStep
(
StepEnum
.
OL09_YToP1
))
...
...
@@ -448,7 +505,7 @@ namespace OnlineStore.DeviceLibrary
else
if
(
SecMoveInfo
.
IsTimeOut
(
120
))
{
WarnMsg
=
SecMoveInfo
.
Name
+
"["
+
SecMoveInfo
.
MoveStep
+
"]"
+
"等待 料盘可贴标(OS_25_WaitLabel) 超时["
+
FormUtil
.
GetSpanStr
(
SecMoveInfo
.
StepSpan
())
+
"]"
;
LogUtil
.
error
(
WarnMsg
,
SecMoveInfo
.
ErrorLogType
);
LogUtil
.
error
(
WarnMsg
,
SecMoveInfo
.
ErrorLogType
,
SecMoveInfo
.
logSeconds
()
);
Alarm
(
AlarmType
.
IoSingleTimeOut
);
}
}
...
...
@@ -509,7 +566,7 @@ namespace OnlineStore.DeviceLibrary
if
(
canLabel
)
{
ShelfMoveInfo
.
NextMoveStep
(
StepEnum
.
OS_26_LabelOk
);
LogUtil
.
info
(
SecMoveInfo
.
Name
+
" 贴标结束
"
);
ShelfWorkLog
(
"贴标完成
"
);
}
}
else
if
(
SecMoveInfo
.
IsStep
(
StepEnum
.
OL18_LableBack
))
...
...
@@ -523,7 +580,8 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
SecMoveInfo
.
IsStep
(
StepEnum
.
OL19_XYRBackToP2
))
{
LogUtil
.
info
(
SecMoveInfo
.
Name
+
" 贴标结束"
);
TimeSpan
span
=
DateTime
.
Now
-
SecMoveInfo
.
MoveStartTime
;
LogUtil
.
info
(
SecMoveInfo
.
Name
+
" 贴标结束, 耗时("
+
FormUtil
.
GetSpanStr
(
span
)
+
")"
);
SecMoveInfo
.
EndMove
();
}
...
...
RC1266-AutoCountMachine/source/DeviceLibrary/bean/OutputEquip_Shelf.cs
查看文件 @
6811af8
...
...
@@ -258,7 +258,7 @@ namespace OnlineStore.DeviceLibrary
else
if
(
SecMoveInfo
.
IsTimeOut
(
120
))
{
WarnMsg
=
SecMoveInfo
.
Name
+
"["
+
SecMoveInfo
.
MoveStep
+
"]"
+
"等待 贴标结束 超时["
+
FormUtil
.
GetSpanStr
(
SecMoveInfo
.
StepSpan
())
+
"]"
;
LogUtil
.
error
(
WarnMsg
,
SecMoveInfo
.
ErrorLogType
);
LogUtil
.
error
(
WarnMsg
,
SecMoveInfo
.
ErrorLogType
,
SecMoveInfo
.
logSeconds
()
);
Alarm
(
AlarmType
.
IoSingleTimeOut
);
}
}
...
...
@@ -325,10 +325,11 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
ShelfMoveInfo
.
IsStep
(
StepEnum
.
OS_38_LineRun
))
{
TimeSpan
span
=
DateTime
.
Now
-
ShelfMoveInfo
.
MoveStartTime
;
ShelfMoveInfo
.
EndMove
();
IOMove
(
IO_Type
.
O_WLine_Run
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
O_WLine_WorkStop
,
IO_VALUE
.
LOW
);
ShelfWorkLog
(
"送出料串完成,链条停止转动,阻挡上升 "
);
ShelfWorkLog
(
"送出料串完成,链条停止转动,阻挡上升
, 耗时("
+
FormUtil
.
GetSpanStr
(
span
)
+
")
"
);
}
#
endregion
...
...
RC1266-AutoCountMachine/source/DeviceLibrary/bean/X_RAY_Equip.cs
查看文件 @
6811af8
...
...
@@ -241,7 +241,8 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
XR05_DoorClose
))
{
WorkLog
(
" XRay复位 :完成!"
);
TimeSpan
span
=
DateTime
.
Now
-
MoveInfo
.
MoveStartTime
;
WorkLog
(
" XRay复位 :完成,耗时("
+
FormUtil
.
GetSpanStr
(
span
)
+
")"
);
MoveInfo
.
EndMove
();
runStatus
=
RobotRunStatus
.
Runing
;
}
...
...
RC1266-AutoCountMachine/source/DeviceLibrary/bean/X_RAY_Equip_Partial.cs
查看文件 @
6811af8
...
...
@@ -96,21 +96,21 @@ namespace OnlineStore.DeviceLibrary
if
(
MoveInfo
.
IsStep
(
StepEnum
.
XW01_WaitInReel
))
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
XW02_InDoorOpen
);
WorkLog
(
"料盘处理:左侧门打开,挡停下降"
);
WorkLog
(
"料盘处理:左侧门打开,挡停下降"
,
0
);
CylinderMove
(
MoveInfo
,
IO_Type
.
X_InDoor_Up
,
IO_Type
.
X_InDoor_Down
);
CylinderMove
(
MoveInfo
,
IO_Type
.
X_StopCylinder_Up
,
IO_Type
.
X_StopCylinder_Down
);
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
XW02_InDoorOpen
))
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
XW04_InLineRun
);
WorkLog
(
"料盘处理:入口和中间皮带线转动,"
);
WorkLog
(
"料盘处理:入口和中间皮带线转动,"
,
0
);
IOMove
(
IO_Type
.
X_InLine_Run
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
X_MLine_Run
,
IO_VALUE
.
HIGH
);
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
XW04_InLineRun
))
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
XW05_WaitMCheck
);
WorkLog
(
"料盘处理:等待扫描区域信号检测"
);
WorkLog
(
"料盘处理:等待扫描区域信号检测"
,
0
);
IOMove
(
IO_Type
.
X_InLine_Run
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
X_MLine_Run
,
IO_VALUE
.
HIGH
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
X_ReelCheck
,
IO_VALUE
.
HIGH
));
...
...
@@ -147,7 +147,7 @@ namespace OnlineStore.DeviceLibrary
Work_ReelInfo
.
IsNgReel
=
true
;
Work_ReelInfo
.
NgMsg
=
"无有效条码"
;
}
MoveInfo
.
MoveParam
.
SetReelInfo
(
In_ReelInfo
);
//
MoveInfo.MoveParam.SetReelInfo(In_ReelInfo);
//判断是否需要点料
if
(
Work_ReelInfo
.
IsNgReel
)
{
...
...
@@ -196,7 +196,7 @@ namespace OnlineStore.DeviceLibrary
else
if
(
MoveInfo
.
IsTimeOut
(
120
))
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveStep
+
"]"
+
"等待 X互锁信号打开 超时["
+
FormUtil
.
GetSpanStr
(
MoveInfo
.
StepSpan
())
+
"]"
;
LogUtil
.
error
(
WarnMsg
,
SecMoveInfo
.
ErrorLogType
);
LogUtil
.
error
(
WarnMsg
,
SecMoveInfo
.
ErrorLogType
,
SecMoveInfo
.
logSeconds
()
);
Alarm
(
AlarmType
.
IoSingleTimeOut
);
}
}
...
...
@@ -216,7 +216,7 @@ namespace OnlineStore.DeviceLibrary
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveStep
+
"]"
+
"等待 X互锁信号打开 超时["
+
FormUtil
.
GetSpanStr
(
MoveInfo
.
StepSpan
())
+
"]"
;
}
LogUtil
.
error
(
WarnMsg
,
SecMoveInfo
.
ErrorLogType
);
LogUtil
.
error
(
WarnMsg
,
SecMoveInfo
.
ErrorLogType
,
SecMoveInfo
.
logSeconds
()
);
Alarm
(
AlarmType
.
IoSingleTimeOut
);
}
}
...
...
@@ -246,27 +246,27 @@ namespace OnlineStore.DeviceLibrary
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
XW21_WaitOutNoReel
);
MoveInfo
.
TimeOutSeconds
=
120
;
WorkLog
(
"料盘处理:等待出口无料盘"
);
WorkLog
(
"料盘处理:等待出口无料盘"
,
0
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Out_TrayCheck
,
IO_VALUE
.
LOW
));
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
XW21_WaitOutNoReel
))
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
XW22_OutDoorOpen
);
WorkLog
(
"料盘处理:右侧门打开,挡停放行"
);
WorkLog
(
"料盘处理:右侧门打开,挡停放行"
,
0
);
CylinderMove
(
MoveInfo
,
IO_Type
.
X_OutDoor_Up
,
IO_Type
.
X_OutDoor_Down
);
CylinderMove
(
MoveInfo
,
IO_Type
.
X_StopCylinder_Down
,
IO_Type
.
X_StopCylinder_Up
);
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
XW22_OutDoorOpen
))
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
XW23_OutLineRun
);
WorkLog
(
"料盘处理:中间皮带线,出口皮带线转动"
);
WorkLog
(
"料盘处理:中间皮带线,出口皮带线转动"
,
0
);
IOMove
(
IO_Type
.
X_MLine_Run
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
X_OLine_Run
,
IO_VALUE
.
HIGH
);
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
XW23_OutLineRun
))
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
XW24_WaitOutCheck
);
WorkLog
(
"料盘处理:等待出口皮带线检测到料盘"
);
WorkLog
(
"料盘处理:等待出口皮带线检测到料盘"
,
0
);
IOMove
(
IO_Type
.
X_MLine_Run
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
X_OLine_Run
,
IO_VALUE
.
HIGH
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Out_TrayCheck
,
IO_VALUE
.
HIGH
));
...
...
@@ -300,17 +300,11 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
XW27_OutDoorClose
))
{
TimeSpan
span
=
DateTime
.
Now
-
MoveInfo
.
MoveStartTime
;
runStatus
=
RobotRunStatus
.
Runing
;
MoveInfo
.
EndMove
();
WorkLog
(
"料盘处理:料盘处理结束"
);
// MoveInfo.NextMoveStep(StepEnum.XW28_EndPro);
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
XW28_EndPro
))
{
MoveInfo
.
EndMove
();
runStatus
=
RobotRunStatus
.
Runing
;
}
WorkLog
(
"料盘处理:料盘处理结束,耗时("
+
FormUtil
.
GetSpanStr
(
span
)
+
")"
);
}
}
private
void
XW12_XRayStart
()
...
...
RC1266-AutoCountMachine/source/DeviceLibrary/model/RobotMoveInfo.cs
查看文件 @
6811af8
...
...
@@ -11,14 +11,15 @@ namespace OnlineStore.DeviceLibrary
{
public
class
RobotMoveInfo
{
internal
DateTime
MoveStartTime
=
DateTime
.
Now
;
private
static
int
MaxMoveId
=
1
;
/// <summary>
/// 超时时间
/// </summary>
public
int
TimeOutSeconds
=
60
;
public
string
Name
=
""
;
public
bool
ShelfNoTray
=
false
;
public
int
MoveID
=
0
;
internal
int
TimeOutSeconds
=
60
;
internal
string
Name
=
""
;
internal
bool
ShelfNoTray
=
false
;
internal
int
MoveID
=
0
;
public
RobotMoveInfo
(
string
name
)
{
this
.
Name
=
name
;
...
...
@@ -40,7 +41,7 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// =true表示满足一个等待条件,就可以完成此步骤的等待
/// </summary>
public
bool
OneWaitCanEndStep
=
false
;
internal
bool
OneWaitCanEndStep
=
false
;
private
RobotMoveType
moveType
;
...
...
@@ -51,29 +52,29 @@ namespace OnlineStore.DeviceLibrary
}
public
WorkParam
MoveParam
{
get
;
set
;
}
/// <summary>
/// 是否再当前步骤等待中
/// </summary>
public
bool
IsInWait
{
get
;
set
;
}
internal
bool
IsInWait
{
get
;
set
;
}
/// <summary>
/// 可以循环运动的次数(轴卡运动才需要)
/// </summary>
public
int
CanWhileCount
=
0
;
internal
int
CanWhileCount
=
0
;
private
StepEnum
moveStep
;
public
StepEnum
MoveStep
internal
StepEnum
MoveStep
{
get
{
return
moveStep
;
}
}
public
bool
IsStep
(
StepEnum
step
)
internal
bool
IsStep
(
StepEnum
step
)
{
return
MoveStep
.
Equals
(
step
);
}
public
bool
IsTimeOut
(
int
timeOutSeconds
=
60
)
internal
bool
IsTimeOut
(
int
timeOutSeconds
=
60
)
{
TimeSpan
span
=
DateTime
.
Now
-
LastSetpTime
;
if
(
span
.
TotalSeconds
>
timeOutSeconds
)
...
...
@@ -82,12 +83,27 @@ namespace OnlineStore.DeviceLibrary
}
return
false
;
}
public
TimeSpan
StepSpan
()
internal
int
logSeconds
()
{
TimeSpan
span
=
DateTime
.
Now
-
LastSetpTime
;
int
second
=
10
;
second
=
(
int
)(
TimeOutSeconds
/
span
.
TotalSeconds
)
*
10
;
if
(
second
>
120
)
{
second
=
120
;
}
else
if
(
second
<
10
)
{
second
=
10
;
}
return
second
;
}
internal
TimeSpan
StepSpan
()
{
TimeSpan
span
=
DateTime
.
Now
-
LastSetpTime
;
return
span
;
}
public
void
NextMoveStep
(
StepEnum
step
)
internal
void
NextMoveStep
(
StepEnum
step
)
{
moveStep
=
step
;
LastSetpTime
=
DateTime
.
Now
;
...
...
@@ -99,7 +115,7 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 当前步骤执行完成
/// </summary>
public
void
EndStepWait
()
internal
void
EndStepWait
()
{
IsInWait
=
false
;
WaitList
=
new
List
<
WaitResultInfo
>();
...
...
@@ -112,15 +128,8 @@ namespace OnlineStore.DeviceLibrary
LastSetpTime
=
DateTime
.
Now
;
WaitList
=
new
List
<
WaitResultInfo
>();
MoveNum
++;
MoveStartTime
=
DateTime
.
Now
;
}
//public void NewMove(RobotMoveType type, WorkParam param, StepEnum step= StepEnum.Wait)
//{
// moveStep = step;
// this.moveType = type;
// this.MoveParam = param;
// LastSetpTime = DateTime.Now;
// WaitList = new List<WaitResultInfo>();
//}
public
void
EndMove
()
{
this
.
moveType
=
RobotMoveType
.
None
;
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论