Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
刘韬
/
1069_MIMO_PlUS
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 71a400ab
由
张东亮
编写于
2023-12-30 23:41:12 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
入库异常处理优化
1 个父辈
420c1605
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
119 行增加
和
80 行删除
DeviceLibrary/theMachine/BoxTransport.cs
DeviceLibrary/theMachine/MainMachine_Clamp.cs
DeviceLibrary/theMachine/MainMachine_Store.cs
DeviceLibrary/theMachine/BoxTransport.cs
查看文件 @
71a400a
...
...
@@ -188,7 +188,7 @@ namespace DeviceLibrary
break
;
case
MoveStep
.
StoreTS09
:
RobotManage
.
CameraA
.
CameraGrabOne
(
RobotManage
.
CameraA
.
GetFixtureStateFilename
(
From
.
posid
,
WareCode
,
storeMoveType
,
FixtureState
.
FromOut
));
if
(
!
IgnoreX09
&&
IOManager
.
IOValue
(
IO_Type
.
TrayCheck_Fixture
).
Equals
(
IO_VALUE
.
LOW
))
if
(
IOManager
.
IOValue
(
IO_Type
.
TrayCheck_Fixture
).
Equals
(
IO_VALUE
.
LOW
))
{
if
(
Common
.
IsManualHandleReelInFix
()
&&
Common
.
IsInstore
(
storeMoveType
))
{
...
...
@@ -217,6 +217,8 @@ namespace DeviceLibrary
InOutEndProcess
(
StoreMoveType
.
OutStore
,
From
.
posid
);
}
break
;
#
region
校准库位
case
MoveStep
.
StoreFIX01
:
MoveInfo
.
NextMoveStep
(
MoveStep
.
StoreFIX02
);
RobotManage
.
PutReelInFixPos
(
MoveInfo
.
MoveParam
);
...
...
@@ -335,6 +337,9 @@ namespace DeviceLibrary
MoveInfo
.
log
(
$
"{storeMoveType}:料叉取到料"
);
}
break
;
#
endregion
case
MoveStep
.
StoreTS10
:
MoveInfo
.
NextMoveStep
(
MoveStep
.
StoreTS11
);
RobotManage
.
ClearReelInFixPos
();
...
...
@@ -342,7 +347,6 @@ namespace DeviceLibrary
MoveInfo
.
log
(
$
"{storeMoveType}:旋转轴去取料点P2[{To.Middle_P2}]"
);
UpDown_Axis
.
AbsMove
(
MoveInfo
,
To
.
UpDown_PH
,
Config
.
UpDown_P1_speed
);
MoveInfo
.
log
(
$
"{storeMoveType}:上下轴去取料高点[{To.UpDown_PH}]"
);
break
;
case
MoveStep
.
StoreTS11
:
if
(
To
.
posid
==
BoxStorePosition
.
strings
)
...
...
@@ -361,6 +365,7 @@ namespace DeviceLibrary
}
else
if
(
To
.
posid
==
BoxStorePosition
.
ngdoor
)
{
if
(
mainMachine
.
ClampMoveInfo
.
MoveStep
!=
MoveStep
.
Wait
)
{
//if (MoveInfo.IsTimeOut(20))
...
...
@@ -371,20 +376,16 @@ namespace DeviceLibrary
}
else
{
if
(
storeMoveType
.
Equals
(
StoreMoveType
.
InStore
))
if
(
storeMoveType
.
Equals
(
StoreMoveType
.
InStore
))
{
if
(
!
IgnoreX09
&&
IOManager
.
IOValue
(
IO_Type
.
TrayCheck_Fixture
).
Equals
(
IO_VALUE
.
LOW
))
if
(
IOManager
.
IOValue
(
IO_Type
.
TrayCheck_Fixture
).
Equals
(
IO_VALUE
.
LOW
))
{
if
(
Common
.
IsManualHandleReelInFix
()
&&
Common
.
IsInstore
(
storeMoveType
))
{
IsNGReel
=
true
;
MoveInfo
.
log
(
$
"{storeMoveType}:到库位前料叉机构料盘检测X30灭,去单料口"
);
MoveInfo
.
EndMove
();
ErrMsgTxt
=
""
;
return
false
;
}
else
Msg
.
add
(
crc
.
GetString
(
L
.
out_store_not_detect_material
,
"取料后料叉X30没有检测到有物料无法继续,请检查."
),
MsgLevel
.
alarm
,
ErrInfo
.
X09_BoxNotDetect
);
IsNGReel
=
true
;
MoveInfo
.
log
(
$
"{storeMoveType}:到库位前料叉机构料盘检测X30灭,去单料口"
);
MoveInfo
.
EndMove
();
ErrMsgTxt
=
""
;
return
false
;
}
else
{
...
...
@@ -393,7 +394,22 @@ namespace DeviceLibrary
}
}
}
if
(
To
.
posid
==
BoxStorePosition
.
ngdoor
)
{
CodeManager
.
TestHasRight
=
true
;
var
h1
=
mainMachine
.
NGDoor_Tray_Test_Reel
;
if
(!
h1
.
HasValue
)
{
Msg
.
add
(
crc
.
GetString
(
L
.
x29_low_no_reel
,
"检测相机打开失败."
),
MsgLevel
.
alarm
);
}
else
if
(
h1
.
Value
)
{
Msg
.
add
(
crc
.
GetString
(
L
.
please_take_ngdoor_reel
,
"等待取走单料口料盘"
),
MsgLevel
.
alarm
);
RobotManage
.
UserPause
(
crc
.
GetString
(
"please_take_ngdoor_reel"
,
"等待取走单口料盘"
));
}
}
MoveInfo
.
NextMoveStep
(
MoveStep
.
StoreTS12
);
break
;
case
MoveStep
.
StoreTS12
:
MoveInfo
.
NextMoveStep
(
MoveStep
.
StoreTS13
);
...
...
@@ -416,9 +432,9 @@ namespace DeviceLibrary
break
;
case
MoveStep
.
StoreTS15
:
RobotManage
.
CameraA
.
CameraGrabOne
(
RobotManage
.
CameraA
.
GetFixtureStateFilename
(
To
.
posid
,
WareCode
,
storeMoveType
,
FixtureState
.
ToOut
));
if
(
!
IgnoreX09
&&
IOManager
.
IOValue
(
IO_Type
.
TrayCheck_Fixture
).
Equals
(
IO_VALUE
.
HIGH
))
if
(
IOManager
.
IOValue
(
IO_Type
.
TrayCheck_Fixture
).
Equals
(
IO_VALUE
.
HIGH
))
{
if
(
Common
.
Is
ManualHandleReelInFix
()
&&
Common
.
Is
Instore
(
storeMoveType
))
if
(
Common
.
IsInstore
(
storeMoveType
))
{
IsNGReel
=
true
;
MoveInfo
.
log
(
$
"{storeMoveType}:放完料后料叉机构料盘检测X30亮,去单料口"
);
...
...
@@ -429,7 +445,6 @@ namespace DeviceLibrary
}
else
Msg
.
add
(
crc
.
GetString
(
L
.
in_store_detect_material
,
"放料后料叉X30上仍然检测到物料,请检查."
),
MsgLevel
.
alarm
,
ErrInfo
.
X09_BoxNotDetect
);
//RobotManage.UserPause("入库后料叉X30上任然检测到物料,请检查");
}
else
{
...
...
DeviceLibrary/theMachine/MainMachine_Clamp.cs
查看文件 @
71a400a
...
...
@@ -32,6 +32,10 @@ namespace DeviceLibrary
{
ClampMoveInfo
.
NextMoveStep
(
MoveStep
.
ReelTaked
);
}
/// <summary>
/// NG料盘已经放置完成
/// </summary>
/// <param name="msg"></param>
public
void
NGPuted
(
string
msg
)
{
ClampMoveInfo
.
NextMoveStep
(
MoveStep
.
NGOUT_01
);
...
...
@@ -85,7 +89,7 @@ namespace DeviceLibrary
{
if
(
IsGetReelReady
&&
StoreMoveInfo
.
MoveStep
==
MoveStep
.
Wait
&&
OutSingleJobList
.
Count
==
0
)
{
if
(
!
boxTransport
.
IgnoreX09
&&
IOManager
.
IOValue
(
IO_Type
.
TrayCheck_Fixture
).
Equals
(
IO_VALUE
.
HIGH
))
if
(
IOManager
.
IOValue
(
IO_Type
.
TrayCheck_Fixture
).
Equals
(
IO_VALUE
.
HIGH
))
{
StoreMoveInfo
.
NextMoveStep
(
MoveStep
.
StoreInNG_02
);
CloseFlipDoor
(
StoreMoveInfo
);
...
...
@@ -185,7 +189,7 @@ namespace DeviceLibrary
Msg
.
add
(
crc
.
GetString
(
"r_flipDoor_no_work"
,
"右侧翻板水平信号未亮"
),
MsgLevel
.
alarm
);
RobotManage
.
UserPause
(
crc
.
GetString
(
"r_flipDoor_no_work"
,
"右侧翻板水平信号未亮"
));
}
else
else
//翻板水平
{
ClampMoveInfo
.
NextMoveStep
(
MoveStep
.
ReelClamp_10
);
if
(
RobotManage
.
InoutDebugMode
)
...
...
@@ -275,12 +279,12 @@ namespace DeviceLibrary
ClampMoveInfo
.
log
(
$
"料盘已取走"
);
OpenFlipDoor
(
ClampMoveInfo
);
break
;
case
MoveStep
.
NGOUT_00
:
ClampMoveInfo
.
NextMoveStep
(
MoveStep
.
NGOUT_01
);
//ClampMoveInfo.log("打开单料口门
");
CloseFlipDoor
(
ClampMoveInfo
);
break
;
case
MoveStep
.
NGOUT_01
:
//
case MoveStep.NGOUT_00:
//
ClampMoveInfo.NextMoveStep(MoveStep.NGOUT_01);
// ClampMoveInfo.log("关闭翻板
");
//
CloseFlipDoor(ClampMoveInfo);
//
break;
case
MoveStep
.
NGOUT_01
:
//料盘已放到托盘
ClampMoveInfo
.
NextMoveStep
(
MoveStep
.
NGOUT_02
);
ClampMoveInfo
.
log
(
"打开单料口门"
);
//CylinderMove(null, IO_Type.NGDoor_Close, IO_Type.NGDoor_Open, IO_VALUE.HIGH);
...
...
@@ -289,49 +293,52 @@ namespace DeviceLibrary
break
;
case
MoveStep
.
NGOUT_02
:
ClampMoveInfo
.
NextMoveStep
(
MoveStep
.
NGOUT_03
);
if
(
ConfigHelper
.
Config
.
Get
(
"CamTestReel_Ability"
,
false
))
{
var
h1
=
NGDoor_Tray_Test_Reel
;
if
(!
h1
.
HasValue
)
{
Msg
.
add
(
crc
.
GetString
(
L
.
x29_low_no_reel
,
"检测相机打开失败."
),
MsgLevel
.
alarm
);
}
else
if
(!
h1
.
Value
)
{
Msg
.
add
(
crc
.
GetString
(
L
.
x29_low_no_reel
,
"传感器X29未检测到单料口料盘."
),
MsgLevel
.
alarm
);
Msg
.
add
(
ClampMoveInfo
.
MoveParam
.
NgMsg
,
MsgLevel
.
warning
);
//RobotManage.UserPause(crc.GetString("Res0005", "传感器X29未检测到单料口料盘"));
}
}
//
if (ConfigHelper.Config.Get("CamTestReel_Ability", false))
//
{
//
var h1 = NGDoor_Tray_Test_Reel;
//
if (!h1.HasValue)
//
{
//
Msg.add(crc.GetString(L.x29_low_no_reel, "检测相机打开失败."), MsgLevel.alarm);
//
}
//
else
//
if (!h1.Value)
//
{
//
Msg.add(crc.GetString(L.x29_low_no_reel, "传感器X29未检测到单料口料盘."), MsgLevel.alarm);
//
Msg.add(ClampMoveInfo.MoveParam.NgMsg, MsgLevel.warning);
//
//RobotManage.UserPause(crc.GetString("Res0005", "传感器X29未检测到单料口料盘"));
//
}
//
}
SingleDoor
.
ToHigh
(
ClampMoveInfo
);
Msg
.
add
(
crc
.
GetString
(
L
.
please_take_ngdoor_reel
,
"等待取走单料口料盘"
),
MsgLevel
.
alarm
);
RobotManage
.
UserPause
(
crc
.
GetString
(
"please_take_ngdoor_reel"
,
"等待取走单口料盘"
));
break
;
case
MoveStep
.
NGOUT_03
:
Msg
.
add
(
ClampMoveInfo
.
MoveParam
.
NgMsg
,
MsgLevel
.
warning
);
var
h
=
NGDoor_Tray_Test_Reel
;
if
(!
h
.
HasValue
)
{
Msg
.
add
(
crc
.
GetString
(
L
.
x29_low_no_reel
,
"检测相机打开失败."
),
MsgLevel
.
alarm
);
}
else
if
(
h
.
Value
)
{
Msg
.
add
(
crc
.
GetString
(
L
.
please_take_ngdoor_reel
,
"等待取走单料口料盘"
),
MsgLevel
.
alarm
);
if
(
ConfigHelper
.
Config
.
Get
(
"CamTestReel_Ability"
,
false
))
{
//ClampMoveInfo.LastSetpTime = DateTime.Now;
//ClampMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
if
(
ConfigHelper
.
Config
.
Get
(
"Device_ManualCloseSingleDoor"
,
false
))
RobotManage
.
UserPause
(
crc
.
GetString
(
"please_take_ngdoor_reel"
,
"等待取走单口料盘"
));
}
else
{
if
(!
ConfigHelper
.
Config
.
Get
(
"CamTestReel_Ability"
,
false
))
ClampMoveInfo
.
NextMoveStep
(
MoveStep
.
NGOUT_04
);
RobotManage
.
UserPause
(
crc
.
GetString
(
"please_take_ngdoor_reel"
,
"等待取走单口料盘"
));
}
}
else
//Msg.add(ClampMoveInfo.MoveParam.NgMsg, MsgLevel.warning);
// var h = NGDoor_Tray_Test_Reel;
//if (!h.HasValue)
//{
// Msg.add(crc.GetString(L.x29_low_no_reel, "检测相机打开失败."), MsgLevel.alarm);
//}
//else if (h.Value)
//{
// ClampMoveInfo.NextMoveStep(MoveStep.NGOUT_04);
// Msg.add(crc.GetString(L.please_take_ngdoor_reel, "等待取走单料口料盘"), MsgLevel.alarm);
// RobotManage.UserPause(crc.GetString("please_take_ngdoor_reel", "等待取走单口料盘"));
// //if (ConfigHelper.Config.Get("CamTestReel_Ability", false))
// //{
// // //ClampMoveInfo.LastSetpTime = DateTime.Now;
// // //ClampMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
// // // if (ConfigHelper.Config.Get("Device_ManualCloseSingleDoor", false))
// //}
// //else
// //{
// // if (!ConfigHelper.Config.Get("CamTestReel_Ability", false))
// // ClampMoveInfo.NextMoveStep(MoveStep.NGOUT_04);
// // RobotManage.UserPause(crc.GetString("please_take_ngdoor_reel", "等待取走单口料盘"));
// //}
//}
//else
{
ClampMoveInfo
.
NextMoveStep
(
MoveStep
.
NGOUT_04
);
ClampMoveInfo
.
log
(
"料盘已取走"
);
...
...
@@ -348,13 +355,13 @@ namespace DeviceLibrary
}
break
;
case
MoveStep
.
NGOUT_05
:
h
=
NGDoor_Tray_Test_Reel
;
if
(!
h
.
HasValue
)
{
Msg
.
add
(
crc
.
GetString
(
L
.
x29_low_no_reel
,
"检测相机打开失败."
),
MsgLevel
.
alarm
);
}
else
if
(
IOValue
(
IO_Type
.
SafetyLightCurtains
).
Equals
(
IO_VALUE
.
HIGH
)
&&
!
h
.
Value
)
//
h = NGDoor_Tray_Test_Reel;
//
if (!h.HasValue)
//
{
//
Msg.add(crc.GetString(L.x29_low_no_reel, "检测相机打开失败."), MsgLevel.alarm);
//
}
//
else
if
(
IOValue
(
IO_Type
.
SafetyLightCurtains
).
Equals
(
IO_VALUE
.
HIGH
)
)
// && !h.Value
{
ClampMoveInfo
.
NextMoveStep
(
MoveStep
.
NGOUT_06
);
ClampMoveInfo
.
log
(
"关门NG口门"
);
...
...
@@ -391,7 +398,7 @@ namespace DeviceLibrary
ClampMoveInfo
.
MoveParam
.
PlateW
=
7
;
ClampMoveInfo
.
MoveParam
.
PlateH
=
100
;
h
=
NGDoor_Tray_Test_Reel
;
var
h
=
NGDoor_Tray_Test_Reel
;
if
(!
h
.
HasValue
)
{
Msg
.
add
(
crc
.
GetString
(
L
.
x29_low_no_reel
,
"检测相机打开失败."
),
MsgLevel
.
alarm
);
...
...
@@ -410,7 +417,7 @@ namespace DeviceLibrary
break
;
}
}
bool
?
NGDoor_Tray_Test_Reel
public
bool
?
NGDoor_Tray_Test_Reel
{
get
{
...
...
DeviceLibrary/theMachine/MainMachine_Store.cs
查看文件 @
71a400a
...
...
@@ -168,17 +168,37 @@ namespace DeviceLibrary
{
StoreMoveInfo
.
NextMoveStep
(
MoveStep
.
StoreInNG_02
);
CloseFlipDoor
(
StoreMoveInfo
);
CodeManager
.
TestHasRight
=
true
;
StoreMoveInfo
.
log
(
$
"取消[{StoreMoveInfo.MoveParam.WareCode}]入库任务"
);
}
break
;
case
MoveStep
.
StoreInNG_02
:
StoreMoveInfo
.
NextMoveStep
(
MoveStep
.
StoreInNG_03
);
// var outFrom = CSVPositionReader<ACStorePosition>.GetPositon(StoreMoveInfo.MoveParam.PosID);
var
h1
=
NGDoor_Tray_Test_Reel
;
if
(!
h1
.
HasValue
)
{
Msg
.
add
(
crc
.
GetString
(
L
.
x29_low_no_reel
,
"检测相机打开失败."
),
MsgLevel
.
alarm
);
}
else
if
(
h1
.
Value
)
{
StoreMoveInfo
.
NextMoveStep
(
MoveStep
.
StoreInNG_03
);
StoreMoveInfo
.
log
(
$
"单料口有料盘,系统暂停"
);
Msg
.
add
(
crc
.
GetString
(
L
.
please_take_ngdoor_reel
,
"等待取走单料口料盘"
),
MsgLevel
.
alarm
);
RobotManage
.
UserPause
(
crc
.
GetString
(
"please_take_ngdoor_reel"
,
"等待取走单口料盘"
));
}
else
{
StoreMoveInfo
.
NextMoveStep
(
MoveStep
.
StoreInNG_03
);
StoreMoveInfo
.
log
(
$
"单料口无料盘"
);
}
break
;
case
MoveStep
.
StoreInNG_03
:
StoreMoveInfo
.
NextMoveStep
(
MoveStep
.
StoreInNG_04
);
BoxStorePosition
tar
=
new
BoxStorePosition
(
Config
,
StoreSide
.
NGDoor
,
StoreMoveInfo
.
MoveParam
);
boxTransport
.
Start
(
null
,
tar
,
StoreMoveType
.
InStore
);
StoreMoveInfo
.
log
(
$
"开始转运料盘到单料口"
);
break
;
case
MoveStep
.
StoreInNG_0
3
:
case
MoveStep
.
StoreInNG_0
4
:
if
(
boxTransport
.
IsPutOnOut
)
{
StoreMoveInfo
.
log
(
$
"料盘已到达单料口"
);
...
...
@@ -186,9 +206,6 @@ namespace DeviceLibrary
StoreMoveInfo
.
EndMove
();
}
break
;
case
MoveStep
.
StoreInNG_04
:
break
;
case
MoveStep
.
StoreInNG_05
:
break
;
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论